Re: [wizs] 問題
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間13年前 (2012/09/07 14:29)推噓2(2推 0噓 10→)留言12則, 2人參與討論串4/4 (看更多)
※ 引述《justinj (黑旋風)》之銘言:
: 因為突然想到將任務改成用quest寫
: 所以寫了一下發現幾個問題
: 1.是那些函數可以用
: 之前有找到幾個
: remove_obj(ppl,file) 如果我想要移除n個呢?
: give_obj(ppl,file,數量)
: add_v(ppl,變數,量) 加的是data區的資料,如果是想要加在temp區的呢
: 還有一個是打怪數量,那有沒有可以設定打怪所掉的虛擬物品的設定
: (當有接任務時,打某隻怪會掉某虛擬物(機率))
因為現在連不上所以也不確定。
google 只找到一篇。
http://www.ptt.cc/bbs/mud_sanc/M.1335412984.A.9EC.html
等系統重開,你可以視情況提出你的「需求」,如之前 norr
那樣,我就會將其編入。使用這些自訂函數的理由是方便中
文化,所以我們鼓勵 wizs 多多使用自訂函數。
(我也會在其它地方讓這些函數是可 view 到的)
至於打怪掉虛擬物品的部份,你可以參考 mob_drop 相關說明
,google 「mob_drop laechan site:ptt.cc/bbs/mud_sanc」
打怪數量的設計則參考這篇
http://www.ptt.cc/bbs/mud_sanc/M.1336715895.A.C22.html
相關的任務設計可以問 norr。(我自己還沒寫過)
而理論上,「任務的虛擬物品」跟「怪物會掉的物品」應該要
分開,我們之前的設計是以「殺死多少怪」為主,因為這其實
是類似的意義..
假設掉落機率100% 則 得到多少物品=殺死多少怪
假設掉落機率 50% 則 得到多少物品=殺死兩倍的怪
.
.
所以那時是「暫時」以殺死多少怪來決定。至於若是不想用殺
死而只是想用打敗or趕跑,則是請 wizs 自訂怪的 die 函數。
: 2.不知道是zmud的問題還是buf的問題
: 就是quest 人名 about KEY後
: 要再去下一個任務前,我在原地再按一次,是會出現提醒要去找誰,
: 但是,它不止出現這個,;還出現之前對話的最後一個對話句..(按了好幾次都一樣)
預設會出現最後一個對話句。
這是因為很多 rpg 也是這樣做,你跟某 npc 接了某任務時它
會跟你講一堆落落長的,可是當你接了任務後,在尚未完成時
又找它對話,它就會只跟你講一句or一兩句,我的設計就是讓
它 repeat 最後一句。因此我會建議 wizs 也把任務的關鍵句
擺在最後一句,比方說某任務最後一句就是..
「你可以去找羅德斯聖騎士─潘恩大人聊聊。」
: 3.$M代表是目標物,$N代表是自己,那有第3個人嗎例如$T
問題就在於如何判斷「第三人」?
因 quest ooo about xxx 代表著你「只」與 ooo 交流,自然
不會有第三人存在。
但你可以建議你認為有必要的 $XX,我也會用力地將它們全部
設進去。
: 4.如果我想要寫在第X步失敗
: 例如:
: step6_check=
: !present("Ichthyosaur",ppl)
: 你好像忘了一件事了,再不去辦就來不及了!
: !ppl->query_temp("dark_total_time/yuri_return") < time()
: 時間早就超過了。
: ##
: 那要怎麼將步驟清空,重來?
用 quest 的 other
http://www.ptt.cc/bbs/mud_sanc/M.1336496134.A.029.html
這裡有提到一個自訂 step6_check 的範例
other=
int step6_check(object ppl,object npc,string key)
{
// 代表玩家 quit 過, 這時就重設 mob_record
if(questing("mob_record","check","自訂標記",({ppl}))<1)
questing("mob_record","set","自訂標記",({ppl,
"怪物1",幾隻,"怪物2",幾隻,... }));
if(questing("mob_record","finish","自訂標記",({ppl}))<1)
{
任務尚未達成;
return 1;
}
任務已經達成;
return 0;
}##
自訂的 step6_check 就可以不受原先的 stepX_check 影響,
只要記得 return 0 代表成功,return 1 代表失敗(程式到這
裡中止)即可。這樣設的原因是因為失敗時必須有訊息,nobu
不建議在使用 write 的時候使用 return 0。
因此你可以在玩家失敗時在程式裡面清除玩家的任務標記,一
樣是呼叫 questing 來處理(語法忘了)。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.61.157.53
→
09/07 14:30, , 1F
09/07 14:30, 1F
→
09/07 14:30, , 2F
09/07 14:30, 2F
→
09/07 14:30, , 3F
09/07 14:30, 3F
推
09/07 16:14, , 4F
09/07 16:14, 4F
→
09/07 16:15, , 5F
09/07 16:15, 5F
→
09/07 16:16, , 6F
09/07 16:16, 6F
→
09/07 16:17, , 7F
09/07 16:17, 7F
→
09/07 16:18, , 8F
09/07 16:18, 8F
→
09/07 16:19, , 9F
09/07 16:19, 9F
那個「找解藥的第三人」並不需要寫進任務裡,你只要設定
任務的滿足條件是「找到實體解藥」即可,並不需要在意是
誰找到的。
反過來說,若你需要「是誰找到的」,那就在解藥這個實體
物件裡面 set("who_find",...),這樣就能讓 quest 能夠有
東西可以讀取。
那我的意思就是,你可以提供一個 $XX,當系統看到這個字
串時,它自動去讀取指定 ob 的 who_find 這樣。
(不過我不建議這樣做,最好是由你自己自定 other)
打死怪拿虛擬物品的部份,有需要我就會加上去,我記得以
前 norr 也有建議過,那時好像有討論出一個 obj_record
的設定,但我還是比較傾向以 mob_drop 的方式來輔助。
這確實是當初設計時沒有想過的盲點。so, obj_record 或
許是會做的,因為這跟節慶任務也有關係,RO 有這類任務
,我想這是值得做的。
※ 編輯: laechan 來自: 210.61.157.53 (09/07 16:26)
推
09/07 16:21, , 10F
09/07 16:21, 10F
→
09/07 16:22, , 11F
09/07 16:22, 11F
→
09/07 16:27, , 12F
09/07 16:27, 12F
討論串 (同標題文章)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章