Re: [閒聊] 近況 + JavaScript

看板mud_sanc (Sanctuary - 聖殿)作者 (揮淚斬馬雲)時間3年前 (2021/11/14 17:05), 3年前編輯推噓1(100)
留言1則, 1人參與, 3年前最新討論串10/10 (看更多)
tmi2_mudlib_v3_改 2014/06/30 版 https://drive.google.com/file/d/19GeXBEqi6uY_KR_K61Gb-giaq6d9dte_ 最近有人寫信跟我要這個,就順手把它放在網路硬碟上,大家 有興趣的話可以下載。 修改日誌如下,順便在 mud_sanc 板留個文字紀錄。 // Laechan@Sanc built in 2014/05/26 201405 26 bin 目錄下建立啟動 mud 捷徑、以及建立方式的圖片說明 /cmds 目錄下所有檔案的換行符號更換 /include 目錄下所有檔案的換行符號更換 /include/mudlib.h 增加 include "ansi.h" /include/ansi.h 增加 HIP 定義欄(=HIK) ===================初期取得 admin 權限的過程=================== (關鍵在一開始有 AUTO_WIZHOOD 時所增設的 wizard 參數) /adm/etc/groups 換行符號更換、增加 "laechan" 為 admin 然後才創角色 "laechan", 登入後 save 然後 quit mudos 關閉再重新啟動, login "laechan" 下指令 groups 確認 "laechan" 已屬於 admin 群組後 quit 編輯 /data/std/user/l/laechan.o,在 PATH 欄新增 /cmds/adm login "laechan", 執行 /cmds/adm 目錄下的指令確認可使用 ===================初期取得 admin 權限的方法=================== 亦可參閱 如何取得admin權限.txt 檔 27 將 /include/config.h 裡的 AUTO_WIZHOOD abort 掉 (從這時起創的新角色就全部不帶 wizard 及巫師相關權限) PS.要開放 mud 前務必移除這種暫行的做法,改以正規的做法去做 建立 /d/area 目錄,做為日後存放區域使用 └例如 /d/area/lodoss 代表 "lodoss" 這個區域 或是 /d/area/main 代表 "主大陸" (其子目錄為該大陸下的各區域) 或是 /d/area/laechan 代表 "laechan" 這個 wiz 的區域目錄 或是 /d/area/room/lodoss 代表 "lodoss" 這個區域的 "房間" 目錄 PS.開發初期就要規劃好要採取什麼樣的區域目錄樹狀配置 /d 目錄下所有檔案的換行符號更換 /adm 目錄下所有檔案的換行符號更換 /std 目錄下所有檔案的換行符號更換 /ftp 目錄下所有檔案的換行符號更換 /obj 目錄下所有檔案的換行符號更換 /www 目錄下所有檔案的換行符號更換 /student 目錄下所有檔案的換行符號更換 PS.剩下對 mudos 原始檔本身的換行符號更換 從死亡狀態(ghost)變回一般狀態的方法: 下指令 revive。 新增 /adm/daemons/chinesed.c,並加進 /adm/etc/preload 內 /adm/simul_efun/chinese.c,並加進 /adm/obj/simul_efun.c 內 /cmds/adm/_chinese.c,update 後做 rehash /cmds/adm 新增 /cmds/wiz/_running.c,update 後做 rehash /cmds/wiz 並新增 /open/tmp 目錄用來存放 running 的暫存檔 PS.有了 running 就可用來測試新增的 simul_efun =================以 running 測試 chinese 相關================= > running To end message type ".". To abort, type ~q. To view help, type ~h. __________________________________________________________________ write(chinese_number(123456789)+"\n"+ to_chinese("male")+"\n"+ (running code 區) skill_name("barefist")+"\n"); . <= 編輯結束 ========== 程式執行區 ========== 一億兩千三百四十五萬六千七百八十九 男性 (三個 simul_efun 皆正確執行) 空手搏鬥 ========== 程式執行區 ========== =================以 running 測試 chinese 相關================= /adm/daemons/logind.c、/adm/daemons/newuserd.c 初步中文化 /include/login.h 初步中文化 /adm/news/welcome、/adm/news/nplayer_intro 初步中文化 /adm/news/nplayer_news、/adm/news/news 初步中文化 28 新增 sanc 的 /cmds/std/_gps.c PS.補入後 update _gps.c 並下 rehash /cmds/std 指令,即可使用 gps 更動 /adm/etc/global_aliases 加進 map = gps PS.更動後 update /adm/daemons/ga_server.c,即可使用 map 新增 sanc 的 /cmds/wiz/_runmap.c (尚有問題) 更動 /include/mudlib.h 增加 #define DOOR_NOT_EXIST 定義 更動 /cmds/std/_go.c 修正 mapping tmp 的宣告錯誤,並增加上述定義 的作用範圍 更動 /cmds/std/_look.c 增加上述定義的作用範圍、做初步中文化 新增 sanc 的 /std/npc.c,所有 npc 皆 clone 自這個檔案 新增 /adm/daemons/recordd.c,初期用以支援儲存 npc 資料 └修改 /adm/etc/preload 增加預載 └修改 /include/daemons.h 增加 #define RECORD_D 定義項 新增 /cmds/wiz/_npc.c,初期用來管理現有的 npc 資料 修改 /std/room.c 增加 set_npcs 函數,用來生成 npc /d/area/wiz.c 有 npc 設定範例 新增 sanc 的 /d/area/wiz.c 房間(wiz 初始登入房間) 新增 sanc 的 /d/area/newbie/ 區域(新手村, 玩家初始登入房間) 修改 /include/daemons.h,改動 START 內容及新增 WIZ_START 修改 /std/user.c,區隔 wiz 與 ppl 的登入房間 修改 /adm/etc/global_aliases 增加 dep = deposit、wit = withdraw 新增 sanc 的 /d/area/shadow/1/ 區域(影子傳說區域, 暫不生怪) 新增 sanc 的 /d/area/sisdic/ 區域(西斯迪克港) 新增 sanc 的 /d/area/whitetile/ 區域(白瓦鎮) PS.這個區域包含舊型態與新型態(132.c 起)兩部份 29 重寫該 mud 專屬的 /adm/daemons/chinesed.c 的 chinese_number 函數 修改 /adm/simul_efun/format_string.c 新增 substr 函數 PS.新增後 update /adm/simul_efun/format_string.c 再 update /adm/obj/simul_efun.c 即可使用新的全域函數(或重啟 mud 亦可) 修改 /adm/etc/access,將 /d/area 設為 (all)[rw] PS./d/area/adm/d_master.c 可對 /d/area 目錄做存取限制 /d/area/whitetile/adm/d_master.c 可對 /d/area/whitetile 做存 取限制 建立 /open/cmds 目錄及相關各子目錄 修改 /cmds/wiz/_running.c 使其存取 /open/cmds/running 目錄 修改 /cmds/wiz/_runmap.c 使其存取 /open/cmds/runmap 目錄 新增 /cmds/std/_note.c 指令並使其存取 /open/cmds/note 目錄,儲存 檔設定為 /data/note.o PS.這樣就有公告指令可使用 新增 /cmds/std/_view.c 指令並採用 sanc style 修改 /include/commands.h 新增 CMD_VIEW = /cmds/std/_view 定義 PS.這樣就有物件資料觀看指令可使用 重寫 /std/shop.c、storeroom.c、eq_shop.c、wp_shop.c 修改 /include/mudlib.h 增加 SHOP、EQ_SHOP、WP_SHOP 等定義 PS.這樣就有基本的商店及指令 list/buy/sell/id 可使用 新增 /cmds/std/_run.c 指令 修改 /include/mudlib.h 新增 GMONSTER = /std/monster.c 定義、新增 SMONSTER = /std/monster.c 定義 PS.這只是暫時的,實際上它們在 sanc 並非都指向 monster.c 30 搜尋 lib/ 目錄下所有包含 hit_points、spell_points、max_hp、max_sp 這四個關鍵字的檔案,取代為 hp、sp、hp_src 及 sp_src。 修改 /adm/daemons/newuserd.c 將設定 hp_src 及 sp_src 的部份取消 MASTER_ONLY、LOCKED 的設定方式。 PS.上限值是可能變動的(比方被施以輔助法術後),基本上它們本身也是動 態數值,只是更動頻率沒有 hp、sp 那麼頻繁。 將 /data/std 下的所有使用者檔案除了 "laechan" 外其它均 abort 掉, 改為 .tmp 或是 .o~ 修改 /adm/etc/groups 將 root 設定為 "laechan" 並取消其它帳號 PS.架站者可將 "laechan" 改為自己想使用的 id 新增 /cmds/std/_chat.c 及 /cmds/std/_chatlog.c 兩個指令 修改 /include/commands.h 新增 CMD_CHAT = /cmds/std/_chat 定義 PS.這樣至少就有基本的 chat 頻道可用 拷貝 /cmds/file/_cd.c、_ls.c、_more.c、_goto.c 到 /cmds/std 目錄 PS.這樣未正式開站前可讓不具 wiz 身份的玩家至少可下這四個指令 新增 /cmds/std/_recall.c,讓 wiz 及玩家能 recall 回登入點 修改 /adm/etc/global_aliases 檔,讓 / = recall (sanc style) 31 搜尋 lib/ 下所有的 ob_data 及 tmp_ob_data "變數",更改為 data 及 temp_data。函數 query_ob_data 及 query_temp_ob_data 則不變。 下載 sanc 的 /doc/emote 目錄到 tmi2_v3_改 修改 /cmds/std/_chat.c 讓它能簡易讀取 /doc/emote 下的 semote 修改 /adm/etc/global_aliases 新增 ch = chat 及 chat* = chat *$* PS.這樣至少就能 chat *smile 及 chat* smile 了 修改 /cmds/std/_ls.c,讓它具有 sanc style。 └原始檔 /cmds/file/_ls.c 則不更動,wiz 會先執行到 /cmds/std 的 (依照 data me 所看到的 PATH 先後順序) 201406 01 修改 /std/attack.c 的 receive_damage 函數,暫時將扣 hp abort └這樣就能持續測試戰鬥系統而不會死亡 修改 /cmds/std/_look.c,更多中文化及去掉複數的 "s" └修改到這裡,基本的房間觀看就沒問題了 修改 /adm/etc/global_aliases,增加 k = kill $* 的定義 修改 /std/user.c、/std/body/attack.c、/cmds/std/_kill.c,更多戰 鬥訊息方面的中文化 └確認 TMI-2 的基本戰鬥流程是沒問題的,但是 kill_ob 會被呼叫三次 02 打薄 /tmi2_fluffos_v3_改 目錄下的一些圖檔讓它們檔案size小一點 修改 /adm/simul_efun/format_time.c 的 format_time 函數,中文化 並新增 Ctime 函數(sanc style) 重寫 /cmds/std/_who.c,採用 sanc style PS.這樣至少幾十~一百出頭的玩家在線時一頁顯示沒問題了(也有做分頁) 修改 /cmds/std/_note.c 加入日期 修改 /cmds/std/_chat.c 將 emote 部份函數化 修改 /cmds/std/_who.c,修正部份 bug 05 新增 /include/myfarm.h └下載自 sanc /u/l/laechan/skycastle/room/skyfarm.h 新增 /adm/daemons/myhomed.c,管理 myhome 修改 /include/daemons.h 新增 MYHOME_D = myhomed.c 的定義 修改 /cmds/std/_look.c,辨識 /x/x/xxx 與 /x/x/xx#編號 的不同 新增 /include/myhome.h、/cmds/std/_myhome.c 及 /std/myhome.c └玩家的自宅系統 新增 /std/myfarm.c,附屬於 myhome 的小型仿開○農場系統 PS.這樣至少就有玩家住宅及附屬的農場系統可玩 新增 /std/boat.c、/d/area/times_check.c,下載自 sanc └times_check.c 暫放 /d/area 目錄 修改 /include/mudlib.h,新增 BOAT、TIMES_CHECK_OB 等定義 修改 /adm/etc/preload,新增 /d/area/times_check 的 preload 修改 /adm/etc/global_aliases,新增 o = go out 新增 /d/area/test 目錄 新增 /d/area/test/boat.c、port1.c、port2.c,測試 boat 是否正常 boat 只需人工 start 過一次,之後就可靠 times_check 執行定期航線 PS.這樣至少就有定期航班型交通工具可以使用 指令初步中文化、部份訊息不顯示 /cmds/std/_go.c 06 搜尋 lib 目錄下所有包含 "wielded"、"equipped" 的字串,全部改成 "wear" 字串。 └/std/monster.c、/std/weapon.c、/cmds/std/_inventory.c、 /cmds/ghost/_look.c、/cmds/std/_look.c、/cmds/std/_steal.c、 /cmds/std/_unwield.c、/std/armor.c、/cmds/std/_unequip.c 修改 /std/armor.c、/std/weapon.c,新增 wear_ob 及 remove_ob 函數 新增 /cmds/std/_wear.c、/cmds/std/_remove.c 將 /cmds/std/_equip.c、/cmds/std/_wield.c、/cmds/std/_unequip.c 、/cmds/std/_unwield.c,四個指令去掉 .c 改為 .tmi2 修改 /adm/etc/global_aliases └新增 equip = wear $*、新增 wield = wear $* 新增 unequip = remove $*、新增 unwield = remove $* PS.這樣就能使用單一的 wear 指令穿脫防具,且舊指令格式依舊可使用 新增 /adm/daemons/channeld.c,拷貝自 /cmds/std/_chat.c 稍作修改 修改 /include/daemons.h,新增 CHANNEL_D 等於上述檔案的定義 修改 /std/user.c 將 chat、rumor、chatlog 指令加進 channeld.c 的 指令判斷範圍 搬移 /cmds/std/_chat.c 為 /cmds/std/chat.20140606 /cmds/std/_chatlog.c 為 /cmds/std/chatlog.20140606 PS.這樣公頻就正式納入 CHANNEL_D 的納管範圍並開放兩個基本的公頻 分別是 chat 及 rumor,未來還可加入國家、家族、職業等公頻 09 刪除 Win32 目錄下的 driver.exe (因為已拷貝一份至 bin 目錄下) └若 driver.exe 不小心遺失,只需下載 tmi2_v3_改 壓縮檔即可取得 搜尋 lib 目錄下所有關於 "Dexterity"、"Strength"、"Intelligence" 、"Constitution" 等關鍵字,改為 "dex","str","int","con"。 修改 /include/stats.h 檔,定義共多少屬性、讀取名稱及顯示順序 └該讀取名稱並不一定是玩家實際資料欄位名稱, 例如 "dex" 並不一定 是指玩家資料欄位的 "stat/dex",但一定是屬性讀取函數所使用的名 稱如 ppl->query_stat("dex") 修改 /adm/daemons/newuserd.c,初始屬性的名稱設定變更及 agi、mag 的追加設定 └但日後應呼叫 complete_setup 做設定 mud 重新啟動。 搬移 /data/std/user/l/laechan.o 為 laechan.o~ 搬移 /data/std/connection/l/laechan.o 為 laechan.o~ 重創 laechan 角色,save quit 後修改 wiz 相關參數 1.PATH 修改為 laechan.o~ 的 PATH 資料 2.wizard 設定為 1 3.複製 laechan.o~ 的 alias 欄位的相關資訊到 laechan.o 3.connection 下的 laechan.o 增加 wizard 1 的設定 再重新登入 laechan, laechan 即具有原本的 admin 權限 PS.這樣就能讓 tmi2_v3_改 創新角色時即具有基本的六個屬性。 新增 /adm/simul_efun/attack.c,戰鬥相關的全域讀取函數集合區 修改 /adm/obj/simul_efun.c,新增 include attack.c └修改重要系統檔案後最好重啟 mud 確認是可 work 的 修改 /std/body/attack.c,新增各種 query/set/add/del 函數 修改 /std/body/attack.c,重寫 kill_ob 函數 廢止 /std/user.c、/std/monster.c 的 continue_attack 函數 修改 /std/body/attack.c,重寫 int continue_attack() 函數 └宣告為 int 是因為有可能做物件的 remove 動作 mud 重新啟動,確認 user.c 的載入無問題 修改 /adm/simul_efun/attack.c,新增 normal_attack 函數、 新增 damage_str 函數 修改 /adm/simul_efun/tell_room.c,新增 show 函數 └各種 tell env 的相關函數都應寫在 tell_room.c 內 修改 /adm/obj/simul_efun.c,搬移 tell_room.c 的位置 └這樣 attack.c 才能呼叫寫在 tell_room.c 的 show 函數 mud 重新啟動,確認 user.c 的載入無問題 PS.這樣新寫的戰鬥系統就具有基本雛形 11 新增 /include/vobj.h,虛擬物品系統相關定義檔 新增 /adm/daemons/vobjd.c,虛擬物品及怪物掉落物資料管理檔 新增 /cmds/wiz/_vobj.c,虛擬物品及怪物掉落物設定及管理指令 修改 /adm/etc/preload,新增載入 /adm/daemons/vobjd.c 修改 /include/daemons.h,新增 VOBJ_D = vobjd.c 的定義 PS.這樣就有虛擬物品系統及怪物掉落物系統 新增 /cmds/std/_ob.c,直接下載 sanc 現用的並稍做修改 新增 /std/vobj.c,做為虛擬物品做 ob view 時的借殼物件 PS.這樣玩家就有 ob 指令及相關功能語法可使用 12 修改 /adm/simul_efun/format_string.c,新增兩個處理 ansi 顏 色的全域函數: get_ansi_color 及 no_ansi_color PS.這樣就能針對有帶 $XXX$ 這類 ansi color 的字串做一些處理 新增 /include/simul_intermud.h,定義一些 intermud 的東西 將 /include/net/ 目錄替換為 sanc 現用的 /include/net 目錄 └舊目錄更名為 /include/net.tmi2 修改 /std/user.c,新增 tmi2 頻道指令 修改 /adm/daemons/channeld.c,新增 intermud channel 的一些 設定,使 tmi2 頻道指令可發送遠端訊息 修改 /adm/daemons/logind.c,新增 intermud channel 的一些設 定,使遠端的 tmi2 頻道訊息可被 mud 接收 PS.這樣就有基本的遠端通訊頻道 tmi2 可使用 註冊遠端通訊可 mail 給 laechan.bbs@ptt.cc 提出申請 將 /cmds/file/_cd.c、_ls.c、_more.c 副檔名改為 .tmi2 將 /cmds/std/_cd.c、_ls.c、_more.c 搬移到 /cmds/file 目錄 新增 /cmds/std/_cd.c、_ls.c、_more.c,內容指向 /cmds/file 目錄下的這三個指令 └指令 goto 亦比照辦理(/cmds/wiz/_goto.c) 修改 /cmds/std/_wear.c,修正 cant_wear 函數的判斷錯誤段落 修改 /std/body/attack.c,修正當自己與戰鬥對象不在同一房間 時,戰鬥不會中止的問題 修改 /adm/daemons/newuserd.c,新增新玩家的等級與經驗值初始 化設定。 修改 /std/monster.c 的 die 函數,打死怪物時會觸發 vobjd.c 的 exec_mob_drop 函數。 PS.這樣就能設定及看到打死怪物時會得到哪些東西 修改 /cmds/std/_note.c,增加 mud_name 的判別 PS.這樣同一 lib 不同 port 的兩個 mud 就會看到不一樣的 mud name。一般來說最好只有其中一個 mud 做更動公告內容的動作 ,而不要兩區都做更動。 新增 /cmds/std/_attack2.c、_config2.c、_score2.c,做為日後 可參考的風格(正式指令是 attack、config、score)。 PS.類似的做法日後會持續採用,非正式指令後面都會有編號,並 且是可執行的,供使用者做為撰寫正式指令時的參考 13 備份 /std/user/autoload.c 為 autoload.20140613 重寫 /std/user/autoload.c 的兩個函數,load_autoload_obj 及 compute_autoload_array。 └想要設定哪些東西不應被儲存,就改這個檔案(目前全部會儲存) 修改 /std/user.c,修改 quit 函數對身上所帶物品所做的判斷 PS.這樣玩家 save 及 quit 時身上的東西應該被儲存的就會被儲存 ,login 時也會正常載入物品,而且也能做額外 sdata 的設定 修改 /std/body/attack.c,增加更多 query/set/add/del 函數 └varargs object query_wps(int n); └varargs string query_wp_types(int n); 當 n 給亂數 1~2 時,如果玩家只拿一把武器,有可能會傳回 "barefist" └將 query_attack_msg() 函數搬到 user.c 並建立函數雛形 修改 /std/monster.c,另外建立 query_attack_msg 函數 修改 /adm/etc/global_aliases,新增 rem = remove $* 定義 14 在 tmi2_fluffos_v3_改 目錄下建立 說明文件document 目錄,並 建立 系統/ 與 指令/ 等目錄,做為日後存放相關說明文件之用。 增加[系統]目錄內 虛擬物品系統 的說明文件。 15 增加[系統]目錄內 怪物掉落物系統 的說明文件。 16 新增 /adm/daemons/runnumd.c,數字圖防機系統 新增 /include/runnum.h,數字圖防機系統相關定義檔 修改 /adm/etc/preload,增加 /adm/daemons/runnumd 修改 /include/daemons.h,增加 RUNNUM_D = runnumd.c 的定義 修改 /std/user.c,修改 cmd_hook 函數增加數字圖防機的模擬段 ,該段落以 #ifdef ... #endif 包住 修改 /adm/daemons/logind.c,修改 get_name 函數增加數字圖防 機的模擬段,該段落亦以 #ifdef ... #endif 包住 PS.這樣就有基本的防機程式可使用 修改 /adm/daemons/channeld.c,增加 chat *xxx 目標1;目標2、 以及 chat *xxx 目標:要接的話 兩種公頻語法,以及髒話過濾 PS.這樣 semote 裡的 $T、$M 及 $W 以及 .mod 設定就有作用 修改 /std/user/tsh.c 的 process_input 函數,讓 alias 的指 令能被儲存在 history 裡頭(傳統是儲存完整指令而非 alias), 並讓 !指令 的語法同樣能適用在 alias 指令。 PS.這樣使用者在 !指令 時就不用給完整指令 修改 /std/user.c 的 cmd_hook 函數,增加呼叫 channeld.c 的 find_emote 函數判斷 修改 /adm/daemons/channeld.c,新增 find_emote 函數,並加入 幾個相關定義於檔頭 PS.這樣玩家下 semote 指令時就會有作用 (比 sanc 功能還強) 將 /cmds/std/_semote.c 更名為 /cmds/std/semote.tmi2 新增 /cmds/std/_semote.c 新增 /cmds/std/_semote_search.c,直接下載 sanc 使用的 修改 /adm/etc/global_aliases,新增 query_semote = semote_search $* 的定義 PS.這樣就有基本的 semote 指令與相關查詢指令可使用 17 將 /cmds/std/_help.c 更名為 help.c 新增 /cmds/std/_help.c,當使用者使用該指令不接字串時,會執行新的 功能;有接字串時,就呼叫 /cmds/std/help.c 執行原先 help 的功能。 PS.這樣就有樹狀式 help 指令可使用 新增 /cmds/wiz/_drawmap.c 指令,讓使用者可畫 x-x 地圖。 新增 /cmds/wiz/_makearea.c 指令,讓使用者可產生及讀入 x-x 地圖, 並可將 x-x 地圖存成數字編號地圖。 新增 /cmds/wiz/_trans.c 指令,讓使用者可依數字地圖與腳本檔的內容 ,依數字地圖的各房間檔名與路線配置產生出相對映的房間物件。 18 新增 /d/area/00 目錄,存放新型態區域所需的各範例檔,包含 area_room.c、area_room.h、map圖、script檔 新增 /d/area/01/01 目錄,做為示範區域 修改 /include/mudlib.h,新增幾個與區域相關的定義 新增 /cmds/wiz/_trans.c 指令,可將數字地圖轉成實際存在的房間 PS.這樣就能在 tmi2_v3_改 實作新型態區域 19 新增 /std/gmonster.c,群式怪物繼承檔,部份顯示與訊息 sanc style 修改 /std/body/attack.c,改良一些新增 function 的寫法 修改 /std/mudlib.h,新增 GMONSTER = /std/gmonster.c 的定義 PS.這樣至少就有群式怪物可用,而且 sanc 的群式怪物在 tmi2_v3_改 也能正常載入 修改 /std/user/history.c、/std/user/tsh.c,修正 數字 指令,以及 數字 !指令,以及 !指令 的使用 bug。 修改 /std/user.c 的 quit 函數,掉換 save_data 的位置 修改 /std/user.c 的 complete_setup 函數,建立數值初始化區 PS.這樣裝備武防的狀態不正常離線時,重新登入就會做部份數值初始化 修改 /adm/simul_efun/base_name.c,增加 explode_base_name 函數, 可將一 base_name 的檔名的最後一個 "/" 改成 "*" PS.這樣就可用 strsrch 去找出 * 的位置, * 之前就是 path, * 之後就 是 file,explode(str,"*") 就得到 ({path,file}) 20 修改 /adm/simul_efun/adminp.c,新增 int wiz_lv(string id) 函數 修改 /adm/daemons/logind.c,將 ppl 區與 wiz 分隔的判斷式 adminp 改成以 wiz_lv 去判斷並實測 ok PS.這樣就有一個可用 使用者id 來做是否為 wiz 的判斷用函數 wiz_lv 修改 /cmds/std/_help.c,增加虛擬目錄的功能 21 修改 /cmds/wiz/_tran.c,簡化 SET_ROOM_FILE 整合到 ROOM_EXITS, 並追加 set "room_end" 欄位 修改 /cmds/object/_update.c,新增 -n 起始編號-結束編號 語法,及 -p 對目錄下全部 .c 檔 update 的語法 > update -n 001-100 > update -p 22 新增 /adm/daemons/mapd.c,地圖管理系統 修改 /adm/etc/preload,新增 mapd.c 修改 /include/daemons.h,新增 MAP_D = /adm/daemons/mapd.c 定義 新增 /cmds/std/_map.c,修改秀圖結果以及新增 wiz 指令區 └取消 map = gps $* 的 alias 指令,_gps.c 暫時保留 新增 /cmds/wiz/_name.c,區域取名指令 └其衍生為怪物命名指令,做法類似 修改 /cmds/wiz/_trans.c,進一步修正 修改 /std/user.c,增加 map_records 函數,用來讀取及紀錄玩家走過 的地圖 PS.這樣就有 x-x 地圖觀看指令以及區域命名指令可使用,並可依據玩 家地圖的紀錄狀況,決定要顯示地圖到什麼程度,並可做地圖 share 23 新增 /cmds/std/_betla.c,線上 betla PS.這樣就能做 betla 新增 /cmds/std/_who2.c,仿卡○米亞的 who,做為使用者寫 who 的參 考。 新增 /cmds/std/_guild2.c,sanc 現用的 guild 指令,做為使用者撰寫 guild 列表指令的參考。 新增 /d/area/redant 目錄,下載 sanc 的新型態區域「炙蟻地獄」設定 PS.這個區域亦可做為新式區域的示範區域 變更 /d/area/00 目錄下的 area_room.c 的內容(參考 /d/area/01/01) └將來還可能再變更,因為功能會越來越齊 修改 /adm/etc/groups 檔,將 mudadm 加入 (root) 群組 修改 /adm/etc/groups 檔,將 laechan 降為 (admin) 群組 └這裡即示範了如何新增與移除 admin,只要改這個檔再重開 mud 即可 修改 /adm/daemons/logind.c,將 mudadm 設為只允許 127.0.0.1 登入 修改 /include/config.h,將 #define AUTO_WIZHOOD abort 掉 新增 "mudadm" 使用者,密碼 "mudadm",新增完之後 save 存檔離開, 然後關掉 mud 再重新啟動 mud,再登入 mudadm,它就有管理者權限 PS.這樣使用者至少有 mudadm 這個有管理者權限的帳號可使用 24~29 新增 /cmds/std/_quest.c 指令,任務進行及管理指令 新增 /include/quest.h,任務系統相關定義檔 修改 /adm/daemons/recordd.c,新增儲存 record_data["quest_npc"]資料 以及 record_quest、query_record_quest、quest_check 三個函數。 新增 /d/quest 目錄,存放任務腳本 新增 /d/quest/quest_ob.c,任務腳本物件繼承檔 新增 /d/quest/data 目錄,存放玩家任務資料存取物件 新增 /d/quest/data/quest_data.c,玩家任務資料主存取檔 新增 /d/quest/data/sample.c,各字頭玩家任務資料共通繼承檔 在說明文件資料夾內新增任務系統的說明 PS.這樣就有基本的腳本式任務系統可使用 在 tmi2_v3_改 目錄下新增 sanc.rar 壓縮檔,裡面放了一些 sanc 可釋出 的資料,有興趣的使用者可解開該壓縮檔自行觀看瀏覽。尚有部份資料需要 花時間挑選才能釋出,所以這個資料夾內的內容也會再擴充。 待修改備忘: /adm/daemons/systemd.c、/data/system.o、/adm/simul_efun/system.c、 /cmds/adm/_system.c 四位一體 newuserd.c 補上 complete_setup 相關 newuserd.c 把真實姓名的部份改為輸入中文暱稱及使用 chi_name └即 set_name 函數 要確認 newuserd.c 是否呼叫 user.c 的 complete_setup, 以及 玩家每次 login 時是否也呼叫 complete_setup 補上 /adm/simul_efun/new_and_count.c 穿脫武防加上屬性、抗性等加扣設計 陸續充實 view 的內容 makewiz、dewiz 及 wiz 設定的正規化 定時公告處理系統 who -l user.c 的 channel 判斷將來可改用 member_array 持續思考從 continue_attack 到實際攻擊應該將相關函數寫在哪 armor 及 weapon 的部份讀取函數化 新增 /adm/daemons/checkd.c 相關 check 都寫在這裡 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.66.104 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/mud_sanc/M.1636880704.A.187.html

11/15 21:11, 3年前 , 1F
不放到 GitHub 上嗎?
11/15 21:11, 1F
檔案太分散了,而且我只打算使用 gist,我比較有興趣寫單檔。 ※ 編輯: laechan (114.33.66.104 臺灣), 11/16/2021 00:16:15
文章代碼(AID): #1XaD5067 (mud_sanc)
文章代碼(AID): #1XaD5067 (mud_sanc)