作者:
laechan (揮淚斬馬雲)
2017-12-24 10:11:25主要修改 quest ooo about xxx 的部份,在大部份的判斷之前
增加以下兩行:
if(function_exists("step0_check",quest_ob))
quest_ob->step0_check(me,mob,key);
這部份可以在 /open/cmds/quest/l/l008 檔案內看到:
others=
int step0_check(object ppl,object npc,string keyword)
{
if(!ppl->query_temp("heal_time/2017聖誕buff"))
{
ppl->temp_several_same_mod(({"stat/fel","stat/str","stat/air","stat/mag",
"stat/int","stat/dex"}),99,"2017聖誕buff",30);
write(HIR"聖誕老人"NOR"幫你施了強力法術。「"HIW"聖誕節快樂唷 ^_^"NOR"」\n");
}
return 1;
}
只要任務腳本檔有 step0_check 這個函數,就會呼叫。
這可以讓 quest 所問的目標額外做一些處理,它不會受到已解次數
已到極限、或是寫在 step1_check 內的限制,例如以 l008 為例,
它有等級需大於 20 級才能解該任務的限制,但是 step0_check 可
跳過該限制。
需要先瞭解的一點是,step0_check 定位類似寫在 quest 目標物上
的 init 函數,不同的地方只是必須透過 quest 指令來觸發而已,
其它其實都跟 init 函數類似