作者laechan (小太保)
看板mud_sanc
标题[wizs] 虚拟物品的观看买卖
时间Mon Mar 5 20:37:51 2012
这问题我已经思考非~~~~~~~~常久了。
今天定案。
首先,以1个字母+3位数字编号的方式,把物品分成最多26种,
每一种最多1000个。例如怪物掉落物就全部编到a这个种类,然
後把a~c配给怪物掉落物这样。
则在观看或买卖时,就假设如下..
> vobjs
1.XX的翅膀(99) 2.OO的尾巴(195) 3.**的牙齿(258) 4......
> vobjs 1
这是XX的翅膀,可以像收集品商人购买。
> vobjs sell 10 1
你将 10 个XX的翅膀卖给了收集品商人。
你得到 600 影特币。
这样一个指令就可以搞定,虚拟物品贩售商店只要 set 特殊参
数就可,全由 vobjs 指令来支援,可令 vi = vobjs,vi 即代
表「虚拟」的 inventory。
也就是说,玩家不会知道虚拟物品的实际ID,只有 wizs 知道。
接下来是重点,这也是今天定案的。
打区域时会打到虚拟物品,这些东西「不会储存」。
你要储存虚拟物品,就得回到自己的家,然後把这些东西丢进家
里的「储存箱」,这样物品才能储存。
这可以解决几个问题..
一、虚拟物品不需要储存在玩家身上,就不会占用玩家资料档的
储存空间。
二、虚拟物品储存在别处,则储存容量就可以设很大。
三、虚拟物品的买卖「可以直接隔空从储存箱提取」,也可以卖
身上的,只要写这项支援即可,玩家就不必冒着「为了买卖
而得先从箱子拿东西放身上,再到商店去卖掉」的这段时间
系统可能 crash 的风险。
EX: vobjs sell 100 1 from box
四、观看跟买卖全由 vobjs 指令支援,则ID与物品名称的对照就
可定义在同一个地方,写法就很弹性。
虚拟物品系统主要是 mob_drop.c,这个东西我最近会看过後就写
使用说明让各 wizs 可以方便使用,vobjs_d.c 则可能改写或废
弃重写一份,因为基本上已经不需要定义资料库,虚拟物品系统
的重要存在意义在於减少物件数,但是又不能因为如此而增大需
定义的资料量,这两者之间就会存在一个平衡点。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.117.7.33
1F:推 justinj :等完善了再来改我区域内的东东....amem 03/07 10:59
2F:→ laechan :你可以先想想你觉得怎麽设虚拟物品在怪物身上,让玩家 03/07 18:30
3F:→ laechan :打死怪就会掉这些东西,把你的想法写出来,大家讨论 03/07 18:30
4F:→ laechan :(像传统设物品是 set("objects",([xxxxxx...... 03/07 18:31