作者laechan (小太保)
看板mud_sanc
标题Re: [闲聊] 新的虚拟物品系统
时间Thu Sep 23 10:15:20 2010
完成版的将於今日写好(已写了一半),先说明如下...
一、怪物设 set("mob_drop",({"L/001"}));
表示该怪会掉 /d/vobjs/L/001.c
二、怪物被杀时,怪物的 die 函数会跑机率,符合机率条件将
做底下动作...
mob_drop=query("mob_drop");
add_mob_drop(ppl,mob_drop,1); // 移动目标, 移动物, 数量
三、全域 simul_efun 写法
varargs void add_mob_drop(object ppl,mixed mob_drop,int n)
{
object ob;
string vid,files;
vid=mob_drop[random(sizeof(mob_drop))];
files=sprintf("/d/vobjs/%s.c",vid);
if(!file_exists(files)) return ;
if(!ob=present(vid,ppl))
{
if(catch(ob=clone_object(files)))
return ;
}
if(!n) n=1;
ob->add("virtual_number",n);
ob->set_short();
ob->move_to(ppl);
}
测试:
> i
你身上带有2 件物品. 负重 (2857190/89430)
(#)地 鸣 枪(Earth_Sound Lance).
(#)+1精链鎚(+1 Refine-Hammer).
九亿九千九百九十五万枚影特币。
注意: 现在按 i 将不显示已装备的武防, 请按 eq -me 观看.
杀死毒刺棘後
毒刺棘发出一声惨叫!!!
毒刺棘 慢慢的倒在地上死了...你得到 1674点的经验值。
> i
你身上带有3 件物品. 负重 (2857200/89430)
一个毒刺棘的树根(poison-tree's root).
再杀死一次
毒刺棘发出一声惨叫!!!
毒刺棘 慢慢的倒在地上死了...你得到 1701点的经验值。
> i
你身上带有3 件物品. 负重 (2857200/89430)
二个毒刺棘的树根(poison-tree's root).
第二阶段函数及相关配套物件写好会再行公告,各位 wiz 有
兴趣可先行找一只怪物试用,只需新增 mob_drop 栏位及新增
die 函数即可..
set("mob_drop",({"L/001"}));
int die()
{
add_mob_drop(this_player(),query("mob_drop"),1);
::die();
return 1;
}
因为我 id 是 L 开头所以使用 L 目录,各位可以此类推。
该计划的最终目标之一,是让各国大臣可设定国家怪物掉落物
并将其掉落物贩售至国家的收集品贩售中心。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 110.26.161.243
1F:推 justinj :兔子坏了...停一下吧.... 09/23 11:00
2F:推 pkhinet :兔子坏了 ,还有医院也会跑兔子 09/23 11:01