作者laechan (眼镜男)
看板mud_sanc
标题Re: [wizs]问题请教(二)
时间Mon Mar 5 21:44:02 2007
※ 引述《amosdeus (幽素)》之铭言:
: 问题一、请问如何写出不是poison又会持续扣血。(主要不被五毒珠影响)
毒主要是继承 /std/poison.c,你可以参考 /std/potion.c
然後自己写一个 potion.c 放在你的目录下,让你的"毒"去
继承它,这样,五毒珠对它就无效。
(不过,解毒术与治疗术则有效)
: 问题二、请问如何让盾类掉防御值而不是直接破盾。0(比如能量盾:防御强度(319XXX)
: ,如果mob使用技能护盾值後减少变成能量盾:防御强度(300XXX))
你先自己 cast powershield 後再 data 自己,就会看到一
个参数在 TEMP DATA 区...
shield2 : ({ 114170, 37, 房间(/d/spell/powershield),
玩家(laechan /std/user) })
先读取它...
mixed shield2 = ppl->query_temp("shield2");
这时 shield2 就等於 ({ 114170, 37, 房间(/d/spell/powershield)
玩家(laechan /std/user) })
shield2[0] = 114170 (int)
shield2[1] = 37 (int)
shield2[2] = 房间(/d/spell/powershield) (object)
shield2[3] = 玩家(laechan /std/user) (object)
所以修改 shield2[0], 例如让它扣 10000
int k = shield2[0];
shield2[0] = k - 10000;
之後再把 shield2 设回玩家身上...
ppl->set_temp("shield2",shield2);
也就是先把 shield2 读出来,改其中一个元素的值後,再
设回去就可。
: 问题三、请问要如何让玩家下kill时mob会呼叫小弟。(不写在特攻里避免麦理的天谴影响)
: 谢谢
: Plain@Sanc
你可以参考 /d/event/id4/carrier1.c
这只 mob 是先把 10 个 ufo 在 create() 函数叫出来後设
进 ufo 参数中,同时把 10 个 ufo 叫到 mob 身上。接着把
这只 mob 设成只要玩家进去就攻击,攻击前,把 10 个 ufo
叫到房间一起攻击。
mixed obs;
obs=all_inventory(this_object());
if(sizeof(obs)>0)
obs->move(environment(this_object()));
(模拟 sc 神族的太空船)
换言之,「怪物数」是固定的,一开始就叫出来放着,可以
固定,当然也可以不固定(固定比较好控管)。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.225.3.219