[wizs] /cmds/std/_quest.c 修改

看板mud_sanc (Sanctuary - 聖殿)作者 (揮淚斬馬雲)時間7年前 (2017/12/24 10:11), 編輯推噓0(002)
留言2則, 1人參與, 7年前最新討論串1/1
主要修改 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 函數類似----所以撰寫時也必須以這個來做為考 量,它跟 stepX_check 基本上是一起呼叫的,玩家不管執行到任務 的第幾步驟都會呼叫該函數,所以該函數的撰寫必須小心為之,只要 留意這一點,它其實就是很好用的函數。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.106.224 ※ 文章網址: https://www.ptt.cc/bbs/mud_sanc/M.1514081489.A.1A0.html

12/25 11:57, 7年前 , 1F
這函數的後續修改就是是否只允許在呼叫step1_check
12/25 11:57, 1F

12/25 11:57, 7年前 , 2F
時才呼叫,我後來想了一下應該是不用
12/25 11:57, 2F
文章代碼(AID): #1QFmpH6W (mud_sanc)
文章代碼(AID): #1QFmpH6W (mud_sanc)