[wizs] 偷竊設定的簡易解決方式

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間15年前 (2010/05/20 16:59), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
這個我想拉 quest 一起做。 大致上是,/d/obj 會新增一個 steal.c 的東西,它會做 如下宣告.. mapping get_steal=([ "/d/crazy/1/mob/tree1":({錢,"虛擬物品ID" 或 "檔名",...}), . . ]); 當玩家發動 steal 指令對 tar 進行偷竊時.. files = base_name(tar); if(STEAL_D->check_steal(files)) { if(!steals=tar->query_temp("steals")) { steals=get_steal(files); // return ({錢,...}) tar->set_temp("steals",steals); // 初始設定 } if(判斷本次偷竊有得手) { switch random { case 拿到錢: money=steals[0]; money=money/2; steals[0]=money; tar->set_temp("steals",steals); 本次偷竊拿到 money; break; case 拿到物品: if(sizeof(steal)>1) // 表示還有物品可偷 { files=steals[1]; if(file_exists(files+".c")) // 基本判斷 { steals-=({files}); tar->set_temp("steals",steals); if(!catch(ob=clone_object(files))) { ob->move_to(me); 本次偷竊拿到物品; } } else if 判斷為虛擬物品 { 執行虛擬物品相關判斷; } } break; } return 1; } 本次偷竊失敗; } 這樣設的好處是.. 一、不必去更動怪物檔,只要改 steal.c 檔就可以在怪物   身上增加可偷竊的東西。 二、哪些怪物可偷東西,集中控管;可偷哪些東西,寫個指   令秀一下即可知道;還可以當 ask 類的情報點。 三、重要的是 虛擬物品的id。目前暫定用 "a001,b001,... ",將虛擬物品分成最多 26 類,每類最多 1000 種。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.225.161.234
文章代碼(AID): #1BzFduF4 (mud_sanc)
文章代碼(AID): #1BzFduF4 (mud_sanc)