作者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