Re: [閒聊] tmi2-mudlib 的更改

看板mud (網路地下城/文字遊戲)作者 (小太保)時間11年前 (2014/05/29 21:28), 11年前編輯推噓0(002)
留言2則, 1人參與, 最新討論串6/27 (看更多)
稍微聊一下 TMI-2 (LPMud) 的戰鬥流程,假設 ppl 與 mob 一對一單挑的話 ppl->kill_ob(mob); mob->set_heart_beat(1); ↓ ppl 的 heart_beat 呼叫 continue_attack 函數 mob 的 heart_beat 呼叫 continue_attack 函數 ↓ ppl 的 continue_attack 呼叫 execute_attack 函數 mob 的 continue_attack 呼叫 execute_attack 函數 戰鬥結束時,ppl 與 mob 會持續呼叫 continue_attack 但 是不會有作用: void continue_attack() { if (!any_attack) return; 那目前跑 /d/area 下的區域,與怪物戰鬥時會出問題,跟 monster.c 與 sanc 不同有關,在 TMI-2_v3 裡頭,代表著 hp 與 sp 的欄位分別是 hit_points 與 spell_points,而 不是 sanc 常用的 hp 與 sp,所以這些怪物一開始就沒有 hp 及 sp,一進入戰鬥自然就瞬死產生屍體,然後很怪的是 怪物也不會消失這樣。 下次發佈的版本主要解決這個問題,並把 hit_points 以及 spell_points 全面替換為 hp 及 sp,並導入等級的概念, 其它有問題會替換的東西包括: 修改 wield_weapon 函數 修改 equip_armor 函數 新增 wear_all() 函數 修改 max_hp、max_sp 參數為 hp_src、sp_src 參數 透過 level 及 race 參數,會自動生出 mob 的 hp、sp 等 數值。 PS.下次發佈新版本時這篇會刪除,並編入 tmi2_v3_改 裡 頭,不過我稍微評估了一下,要改的東西非常多,當初 sanc 的 Int 花了半年大改特改才改出 sanc 的雛形.. 所以要在今年內改出能拿來架的版本還是很困難的。 Laechan@Sanc -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.181.172 ※ 文章網址: http://www.ptt.cc/bbs/mud/M.1401370131.A.961.html 5/30 updated: 1.昨天有下載檔案放在 win7 跑,改 driver.exe 的兩個地方 a.與 xp sp3 相容 b.以管理員身份執行 2.在 winxp 下開始→搜尋→檔案或資料夾 a.搜尋目錄: d:\tmi2_fluffos_v3_改\lib b.搜尋「關鍵字」: hit_points http://imgur.com/OMQE83D.jpg
用記事本點開這 31 個檔案,編輯→取代,把 hit_points 改為 hp 後存檔。 (其實 /obj 下的可以不用改,因為以後不會用到這些 mob) 都改完後再重覆 2 確認所有的 hit_points 都改掉。 3.改搜尋 spell_points,重覆 2,共 16 個檔案 http://imgur.com/sKG4DeI.jpg
(這兩張圖片也會放進 tmi2_v3_改 資料夾內) 4.刪掉自己原先存在的兩個玩家檔 laechan.o 5.改好後重新啟動 mud 確認沒問題 a.啟動無問題 b.登入無問題 c.創新角色無問題 d.下指令 data 確認已改為 hp, sp http://imgur.com/DqDlu6D.jpg
5.仿 2-5 再修改 max_hp 及 max_sp 為 hp_src 與 sp_src, 那因為 hp_src 與 sp_src 是獨特字串,所以就不 log 圖 了(只要搜尋+取代,就能換成自己想用的字串) PS.hp_src 及 sp_src 為 sanc 使用的參數 6.把 /adm/daemons/newuserd.c 裡面的兩行改掉 player->set("hp_src", hp); // , MASTER_ONLY); player->set("sp_src", sp); // , LOCKED); 7.完成暫時的 chat 及 chatlog 指令 8.完成暫時的 recall 指令 9.目前下載檔已更換為 0530 這個版本 a.創了自己的角色後,修改 /include/config.h 把 AUTO_WIZHOOD 移除,之後新創的角色就不會帶 wiz 指令權限 b.修改 /adm/etc/groups 把 "laechan" 改成自己想用的 id 該 id 就能具有 root 權限(要在執行 a 之後做) c.call me;set;"wizard";1 d.重開 mud, 這樣自己的 id 就能具有 root 權限 ※ 編輯: laechan (210.61.157.53), 05/30/2014 12:00:25

05/30 12:12, , 1F
端午節後目標還是以戰鬥系統大改為主
05/30 12:12, 1F

05/30 16:40, , 2F
還有將ob_data替換為data,補入semote
05/30 16:40, 2F
文章代碼(AID): #1JXpOJbX (mud)
文章代碼(AID): #1JXpOJbX (mud)