[wizs] 帶 npc 走來走去

作者: laechan (揮淚斬馬雲)   2017-07-22 15:56:24
我一直在思考,以目前 sanc 的 code 寫法,如何帶 npc 走來走去,
有時因應任務需要,要帶 npc 四處亂跑,還得預防 npc 被主動怪攻
擊的情況;或是有時候,也會有跟 npc 組隊的情況等等..
我目前有想到一種偷吃步的方法。
例如說,現在要帶 npc 移動了,先讀取 npc 的物件,然後把物件傳
給 this_player() 的某函數:
this_player()->set_follow_npcs(npc);
我預設它實際上會在玩家的 temp_data 區設定一個參數,例如:
temp_data["follow_npcs"]=({ ({ }), ({ }), .. });
它是以上的資料型態,log 了描述該 npc 的一些基本資訊,如 short
、chi_name、....
然後通常該 npc 物件就會被 remove,但 npc 資料會 log 在玩家的
temp_data 區。
然後該 npc 會出現在以下情況
look
玩家自己下 look 時會看到該 npc 正在跟著自己。
其它玩家下 look 時會看到該 npc 正在跟著你。
look 該 npc
我目前不打算寫這個。也可以說,這是偷吃步下的唯一缺點。它不
是做不到,而是初期不需要寫。基本上「自己看該 npc」是做得到
的,沒啥問題,但我比較傾向寫專門指令去看「目前正在跟隨自己
的 npc」。
party
我目前不打算讓 party 支援看 npc,因為玩家可能會解除隊伍,
我的想法是,名義上雖然 npc 是跟玩家組隊,但實際上他只是跟
隨玩家「不管玩家是不是組隊」。
移動
既然跟隨中的 npc 是這樣子的寫法,它最大的好處就是不管玩家
怎麼移動、不管跑去哪,npc 都會跟著玩家,直到它被呼叫了函數
解除跟隨狀態,或是玩家自己 quit,玩家一 quit,temp_data 會
被清空,這時自然 npc 就「自動消失」。
任務
任務除了 $N、$O 之外還可以自己打名字,沒啥問題。判斷玩家是
否帶著 npc 活動的參數也很好寫。
戰鬥
基本上,要讓怪物在戰鬥中可以打到 npc 是辦得到的。把 npc 的
hp/hp_max 設進 temp_data、再加進戰鬥中的判斷即可。
但是要在 npc 身上上盾

Links booklink

Contact Us: admin [ a t ] ucptt.com