[wizs] 陽春型任務店的簡易做法

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間14年前 (2011/10/20 12:42), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/2 (看更多)
底下先貼出我今天試寫的腳本。 repeat=1## 當有這個參數時, 玩家執行該任務將不會被設定任何任務資料 而且會自動無視 times 的設定(預設可重覆解) (正常來說這不是正式的設定,所以日後還會再修改) 另外 stepX_check 跟 stepX_end 是可以在 others 區自訂的,只要 在寫腳本時不要給上面兩個參數即可。 那麼,因為是「陽春型」,所以不建議各位使用,只是如果你真的很 急的話就先用沒關係。正式版的殺怪型任務店腳本不會這麼長,有空 我就會寫出來。 最後,我的意思就是,新版 quest 系統可以做的事是很多的,要怎麼 使用它,完全依靠你的想像力跟創造力。我舉個例子,自體護盾就是 dfire/dragondoll 想出來的東西,依護盾的原設定 obj 欄放的應該 是「護盾物件」,將護盾物件改成「怪物本身」就是一種創意。 ================================================================== /open/cmds/quest/l/l005 ================================================================== title=小騎士的殺怪委託## date=2011/10/20## author=laechan## key=kill-rabbit;kill-worm;spot's quest## steps=1## test=1## repeat=1## step1_npc=/u/l/laechan/area/sisdic/room/020## step1_msg= 小騎士的殺怪委託任務一覽表:++ ================================================++ quest here to kill-rabbit 殺死邪惡兔子的委託++ quest here to kill-worm 殺死邪惡蟲蟲的委託++ ================================================## others= int step1_end(object ppl,object npc,string key); // 先宣告它讓 check 可呼叫 int step1_check(object ppl,object npc,string key) { // 傳 關鍵字 給 stepX_check, 則每一個 key 就可設定不同的結果 // 這樣就可以讓一個任務腳本實際上可依關鍵字多寡設立 n 個子任務 if(key=="spot's quest") { write(query_quest_msg(1,1)+"\n"); return 1; } // 玩家沒有 quest 過 kill-xxx 時會先執行底下 if(!ppl->query_temp("quest_temp/spot_l005_"+key+"_accept")) { ppl->set_temp("quest_temp/spot_l005_"+key+"_accept",1); write("你接受了小騎士委託的 "+key+" 任務.\n"); return 1; } // 玩家若 quest 過 kill-xxx 就會執行底下 if(key=="kill-rabbit") { // 當殺死的隻數未滿足時 if(ppl->query_temp("quest_temp/spot_l005_"+key)<30) write("小騎士: 這項任務你已經殺了 "+ ppl->query_temp("quest_temp/spot_l005_"+key)+" / 30 隻怪囉.\n"+ " 請繼續努力 ^_^\n"); // 當殺死的隻數滿足時 else step1_end(ppl,npc,key); return 1; } if(key=="kill-worm") { if(ppl->query_temp("quest_temp/spot_l005_"+key)<50) write("小騎士: 這項任務你已經殺了 "+ ppl->query_temp("quest_temp/spot_l005_"+key)+" / 50 隻怪囉.\n"+ " 請繼續努力 ^_^\n"); else step1_end(ppl,npc,key); return 1; } return 1; } int step1_end(object ppl,object npc,string key) { int exp; exp=ppl->query("lv_up_exp"); // 先消掉任務標記 ppl->delete_temp("quest_temp/spot_l005_"+key+"_accept"); ppl->delete_temp("quest_temp/spot_l005_"+key); // 再依關鍵字的不同設定不同的報酬 if(key=="kill-rabbit") { write("小騎士: 辛苦囉, 來, 這是給你的獎賞.\n"+ "[ 你得到了 10% 經驗值的獎勵. ]\n"); exp=exp/10; ppl->add_exp(exp); return 1; } if(key=="kill-worm") { write("小騎士: 辛苦囉, 來, 這是給你的獎賞.\n"+ "[ 你得到了 20% 經驗值的獎勵. ]\n"); exp=exp/5; ppl->add_exp(exp); return 1; } return 1; }## -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: laechan 來自: 101.13.186.111 (10/20 13:00) ※ 編輯: laechan 來自: 101.13.186.111 (10/20 16:02) ※ 編輯: laechan 來自: 101.13.186.111 (10/20 16:04)

10/25 14:27, , 1F
建議掛在 /dsessws 旅店下
10/25 14:27, 1F

10/25 15:30, , 2F
目前暫定在各區域的旅館、旅店、酒吧等地
10/25 15:30, 2F
文章代碼(AID): #1EdwR9dJ (mud_sanc)
文章代碼(AID): #1EdwR9dJ (mud_sanc)