作者laechan (小太保)
看板mud
标题[闲聊] D3 的拍卖系统
时间Tue Jun 19 18:24:41 2012
问题:那个拍卖系统有可能在 mud 实装吗?
首先假设每一个物件资料,与实际资料设定是一致的,
不一致的部份亦有一个系统储存机制(例如"精链值")。
那麽这个拍卖系统就分为三部份
一、拍卖物件储存系统
二、拍卖物件张贴及下标系统
三、拍卖物件搜寻系统
而且这三部份是互相相关的。
一般来说在定义储存格式时,会假设「拍卖系统」本身
是一个「玩家」,各位都知道在玩家的身上可以存放东
西,而在该玩家离线时这些东西可以被「储存」,所利
用的就是这种储存机制,把拍卖系统假设是玩家,则放
在拍卖系统「身上」的东西就可以被储存。以 mud来说
一般是这样子存的..
mapping auto_load=([
"路径/档名1#编号":(["额外储存资料1":xx1,"额外储存资料1":xx2,..]),
"路径/档名2#编号":(["额外储存资料1":xx1,"额外储存资料1":xx2,..]),
.
.
]);
那麽张贴时就很简单了...
ob=present("你指定张贴的物品id",this_player());
ob->move(拍卖系统);
this_player->save();
拍卖系统->save();
一般来说张贴的语法可以这样子设计...
auc -post 身上物品名 for 价钱
这时让系统给该物品拍卖编号,然後设计一个储存格
mapping auc_ob=([
"拍卖编号1":({"路径/档名1#编号",竞标价,直购价,结束时间}),
"拍卖编号2":({"路径/档名2#编号",竞标价,直购价,结束时间}),
.
.
]);
这样就可以设计底下的指令..
auc -set 拍卖编号 竞价价 = ooxx
auc -set 拍卖编号 直购价 = ooxx
auc -set 拍卖编号 结束时间 = 2012/xx/xx xx:xx
.
.
换言之,由拍卖编号可以找到物件编号,再由物件编
号就可找到实际被储存的物件资料。拍卖编号也是玩
家下标时的依据。
剩下的就是搜寻系统,设计玩家可以使用哪些条件来
搜寻,一般如果是我,指令会这样写..
auc -search type=ring,level>99,direct>50000,direct<100000
上面的意思是说,我要找的目标是 ring 类、等级大
於 99、直购价介於 50000~100000 之间的戒指。
// 先针对後面接的那一长串, 以 , 号做 explode
foreach(tmp in explode(tmps,","))
{
// 再去侦测 > < = 的位置
if(s=strstch(tmp,">")>0)
{
// 就能分离出 type,level,direct,.. 等
tmp1 = tmp[0..s-1];
tmp2 = tmp[s+1..strlen(tmp)];
switch(tmp1)
{
case "type":
.
.
case "level":
.
.
}
}
}
这样就能找出完全 match 的。
其它变化大同小异,我想「离线拍卖系统」理论上是做的
出来的,而越简单的系统,其物件资料的「变动资料设计
」会越单纯。
反过来说就是有精链或变动设计复杂的,越难写,而且其
错误或 bug,会经常发生在伺服器重开、或者是上 patch
的时候,像 D3 那样同样一个名字的蓝装,其掉宝率设定
、属性设定有时也会不同,这个就叫做变动资料,是必须
被拍卖系统额外储存的。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.157.53
※ 编辑: laechan 来自: 210.61.157.53 (06/19 18:25)
1F:推 dannielz:推 06/19 18:59
2F:→ laechan:其实最大的问题在於那个「仿玩家」的储存系统,依 D3 的规 06/19 19:10
3F:→ laechan:模,资料库档案大概会大到几十MB,不过在mud应该就还好 06/19 19:10
4F:推 loversii:有在MUD中看过 可行 06/19 19:16
5F:推 QQmother:小宝要抽15%(误 06/19 20:25
6F:→ laechan:这个在新的 mud 做比较适合. 06/19 20:30
7F:推 loversii:5F是Gay 06/19 20:39
8F:→ kruz:拍卖是还好.重点是要有足够的玩家群去支撑拍卖..要不然小猫两 06/19 23:59
9F:→ kruz:三只(或是都是机器人)是卖不出什麽名堂的.. 06/20 00:00
10F:推 lainhoter:auc horn 1 gold 06/20 00:52
11F:推 loversii:他说的是类似网拍巴 把东西放在商店类 人可以离线 06/20 02:07
12F:→ loversii:有在rw跟ww看过 06/20 02:08
13F:→ kruz:人离线不是重点啊.重点是有没有足够的人去打东西来卖,跟有没 06/20 02:39
14F:→ kruz:有足够的人去买东西.要不然撑不起来的.. 06/20 02:41
15F:→ kruz:有些东西要有够大的玩家群才可以撑得起来.很久以前有个mud就 06/20 02:42
16F:→ kruz:有一套玩家经济系统.玩家可以用mob的屍体去做药水类的东西,其 06/20 02:44
17F:→ kruz:他玩家可以去买,然後打mob可以用,这样刚好一圈.不过後来完的 06/20 02:44
18F:→ kruz:人变少以後这一圈就撑不太起来了.可能的解法大概是去"模拟"玩 06/20 02:45
19F:→ kruz:家..要不然玩家经济没有玩家会垮掉.. 06/20 02:46
20F:推 tawi:这个可以用机器人做吧..感觉这个圈圈用robot弄得起来 06/21 14:31
21F:→ kruz:对呀.用系统依照真实玩家数去仿虚拟玩家.. 06/22 05:10
22F:→ QQmother:6f最喜欢别人射在他脸上 06/24 13:10