mud_sanc 板


LINE

hlead 你可以參考。 ※ 引述《hlead (希多)》之銘言: /std/mob/living.c varargs int shut(string msg,int damage,int chance,mixed kinds,object tar, int times) { if(!times) times=1; if(!kinds) MOB_D->shut(me, msg, damage, chance, ({"dam","physics"}), tar,times); else if(stringp(kinds)) MOB_D->shut(me, msg, damage, chance, ({kinds,"physics"}), tar,times); else MOB_D->shut(me, msg, damage, chance, kinds, tar,times); 上面簡單的說,怪物呼叫 shut 時會傳六個參數 mob->shut(殺傷敘述,傷害,命中,種類陣列,對象,連擊數); 連擊數就是上面的 times, 若沒有給 times 就自動設成 1。 然後 mob 的 shut 會呼叫 MOB_D 的 shut,並傳七個參數給它。 MOB_D->shut(把自己傳過去,殺傷敘述,傷害,命中,種類陣列,對象,連擊數); : /adm/daemons/mob_d.c的某段函式: : int shut(object me,string msg,int damage,int chance, : mixed kinds,object tar,int times) 所以這裡會看到七個參數。 : { : SHUT_D->shut_tar(me,tar,msg,damage,chance,kinds,times); 然後 MOB_D 的 shut 又會把七個參數傳給 SHUT_D : return 1; : } : 以前是 : SHUT_D->shut_tar(me,tar,msg,damage,chance,kinds,1); 1 有可能是刻意改的(然後忘記改回). 刻意的原因通常是因為系統 發生莫名奇妙的 lag 狀況, 為控制損害程度就先把怪物的連擊數 先改成 1。 (通常是不得已的情況才會這樣改, 而且通常也改了別的東西) : user_d.c的則是 : SHUT_D->shut_tar(me,tar,msg,damage,chance,kind); : 可是他莫名的是有效的...所以蠻好奇原因的... 你要先看 user.c, user.c 沒有定義 shut 時就去 /std/user 裡 面再找 shut > grep -n shut *.c [/std/user/attack.c] 126:varargs int shut(string msg,int damage,int chance, 在 attack.c 裡頭是這樣寫的.. if(!kinds) SHUT_D->shut_tar(me,tar,msg,damage,chance,({"dam","physics"}),times); else if(stringp(kinds)) SHUT_D->shut_tar(me,tar,msg,damage,chance,({kinds,"physics"}),times); else SHUT_D->shut_tar(me,tar,msg,damage,chance,kinds,times); 上面簡單的說就是在 attack.c 直接就 call SHUT_D。 user.c 跟 user_d.c 的差別,一般來說可以用一種例子來做說明 ,玩家物件基本上是 /std/user.c,所以如果某函數寫在 user.c 裡頭,則如果你修改了該函數的內容,你的更動並無法「即時」反 映,要嘛 shutdown,不然就是請玩家 quit(allquit 指令就是這 樣子來的),玩家 relogin 後才能套用更新後的函數。 但如果你這樣子寫... int xxx() { USER_D->xxx(); return 1; } 也就是說把 xxx 這個函數的本體寫在 user_d.c 的話,這樣你改 了 user_d.c 的 xxx 函數、然後 update user_d.c,這樣寫在 user.c 的 xxx 函數就會去呼叫「已更新的 xxx 函數」,這樣就 能達到即時更新的目的。 但是如果過了一段時間,你確定 xxx 函數不會再被更改、或者它 並不需要很頻繁地更動,而 xxx 函數卻經常 user 本身呼叫時, 最好就把 xxx 函數挪回 user.c 中,improve_skill 函數就有做 挪回,improve_skill 函數原先是寫在 user2_d.c 中。 Laechan --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.3.82
1F:推 hlead :soga..了解了.. 07/28 21:50







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP