[wizs] 陽春型任務店的簡易做法
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間14年前 (2011/10/20 12:42)推噓1(1推 0噓 1→)留言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
10/25 14:27, 1F
→
10/25 15:30, , 2F
10/25 15:30, 2F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
17
23