mud_sanc 板


LINE

Heart beat in /std/user#2 turned off. 執行時段錯誤: *Error in loading object '/d/skill/basesk' 程式: adm/daemons/fight_d.c:919 物件: /adm/daemons/fight_d /std/user#3673 "heart_beat" std/user.c:951 /std/user#3673 "continue_attack" std/user.c:412 /adm/daemons/user_d "continue_attack" adm/daemons/user_d.c:1304 /adm/daemons/user_d "execute_attack" adm/daemons/user_d.c:1473 /adm/daemons/user_d "normal_attack" adm/daemons/user_d.c:1750 /adm/daemons/fight_d "defance" adm/daemons/fight_d.c:280 /adm/daemons/fight_d "dodge_defance" adm/daemons/fight_d.c:919 最近的一些無心跳案例應該都是由這個引起,大部份情況 下從 debug.log 都可以看到原因在哪。 919 行附近如下.. if(!mod=tar->query_temp("dodge")) { BASE_DEF->dodge(tar); <= 919 return "ERROR"; } 問題在於 BASE_DEF = /d/skill/basesk.c 無法載入,它 的發生原因對照現況來說的確是可能的。 不過也要請 hlead or quest 回憶一下最近是否有撰寫會 動到玩家or怪物的 temp_data["dodge"] 欄位的東西,或 者是否有更動 /d/skill/basesk.c。 今已將 /d/skill/basesk.c 納入 preload 體系,更動檔 案為 /adm/etc/preload, quest 可參照。原則上被納入 preload 的檔案將由系統本身做 upload 的動作。 執行時段錯誤: *Array index out of bounds. 程式: d/ppl/wide/virtue/event/control.c:62 物件: /d/ppl/wide/virtue/event/control /d/ppl/wide/virtue/event/control "event_1" d/ppl/wide/virtue/event/control.c:62 int event_1(int s) { object rooms; int i; if(s>6) return 1; for(i=0;i<6;i++) { rooms=find_object_or_load(TENGU_PATH+room[s][i]); <=- 第 62 行 room 是一個 4x9 的二維陣列,所以 s 不能大於 3,上面的 if(s>6) 應為誤判,已順手先更正避免 bug 重覆發生。 執行時段錯誤: *Bad argument 1 to userp() Expected: object Got: 1. 程式: cmds/std/_holybell.c:71 物件: /cmds/std/_holybell /std/user#1078 "cmd_hook" std/user.c:295 /cmds/std/_holybell "cmd_holybell" cmds/std/_holybell.c:71 ob->set_temp("holybell_times",t); if(userp(ob)) { if(ob->query_temp("holybell_check")<check) { ob->set_temp("holybell_check",check); if(ob->query_temp("shield2")) tell_object(ob,HIG"你的護盾受到聖潔鈴音的強化, 變得更加堅固了!!\n"NOR); } if(ob->query("block_command")>0) { if(env=ob->query_current_attacker() && !userp(env)) <= 第71行 { ob->delete("block_command"); ob->delete("block_command_msg"); tell_object(ob,HIM"你的定身狀態被聖潔鈴音解除了!!\n"NOR); } } } 這跟上次 justin 遇到的 bug 類似,使用 && 或 || 判定時,理論上若 if(env=ob->query_current_attacker() 先成立 ,則後面的 userp(env) 就不應再判斷到 no env 的情況。 但實際上卻有上述情況發生。 上面已改為兩段式判斷.. if(env=ob->query_current_attacker()) { if(!userp(env)) { ob->delete("block_command"); ob->delete("block_command_msg"); tell_object(ob,HIM"你的定身狀態被聖潔鈴音解除了!!\n"NOR); } } 執行時段錯誤: *Bad argument 1 to call_other() Expected: string or array or object Got: 0. 程式: u/l/laechan/special/mob/fingerwind1.c:108 物件: 0 /std/user#6292 "heart_beat" std/user.c:950 /std/user#6292 "force_me" std/user/body.c:90 /std/user#6292 "cmd_hook" std/user.c:295 /cmds/std/_force "cmd_force" cmds/std/_force.c:226 /d/force/phantom-strike "start_skill" d/force/phantom-strike.c:188 /std/user#6292 "shut" std/user/attack.c:142 /adm/daemons/shut_d "shut_tar" adm/daemons/shut_d.c:295 /adm/obj/simul_efun "show" adm/simul_efun/show.c(adm/obj/simul_efun.c):229 0 "receive_damage" std/mob/attack.c:29 0 "die" u/l/laechan/special/mob/fingerwind1.c:108 這是由 hmml 指稱的 fingerwind 問題。 但問題在於 laechan 已經於先前針對該 bug 做過補正 /std/mob/attack.c if ( data["hp"] < 0 && me) me->die(); 也就是說必須要有 me,它才會做 me->die() 的動作, 但即便如此仍被判斷到 0->die() 的情況。 上面同樣改成兩段式。 不過由於是 fingerwind 的錯誤,或許有其它原因也說 不定。 執行時段錯誤: *Bad argument 1 to call_other() Expected: string or array or object Got: 0. 程式: d/crazy/6/room/015.c:90 物件: /d/crazy/6/room/015 /d/crazy/6/room/015 "relife_over" d/crazy/6/room/015.c:90 corpse->remove(); 我猜是 relife 過程中 corpse 因故消失,已加上判斷 式避免此錯誤。 執行時段錯誤: *Value being indexed is zero. 程式: d/force/deadly-shiv.c:110 物件: /d/force/deadly-shiv /std/user#53760 "cmd_hook" std/user.c:295 /cmds/std/_force "cmd_force" cmds/std/_force.c:226 /d/force/deadly-shiv "start_skill" d/force/deadly-shiv.c:110 我猜該錯誤應該修補了(因為 110 行看到的已非上述錯誤段) ([ /* sizeof() == 7 */ "line" : 49, "object" : 0, "function" : "special_fun", "arguments" : ({ /* sizeof() == 2 */ 0, /std/user#6424 }), "file" : "d/ppl/laechan/聖魔大戰/yaria1.c", "locals" : ({ /* sizeof() == 3 */ 3, 16, ({ /* sizeof() == 16 */ /std/user#6500, /std/user#6424, /std/user#5970, /std/user#5056, /std/user#6061, /d/ppl/laechan/聖魔大戰/soldier1#201011, /d/ppl/laechan/聖魔大戰/soldier1#201010, /d/ppl/laechan/聖魔大戰/soldier1#201009, /d/ppl/laechan/聖魔大戰/soldier1#201008, /d/ppl/laechan/聖魔大戰/mage1#201007, /d/ppl/laechan/聖魔大戰/mage1#201006, /d/ppl/laechan/聖魔大戰/mage1#201004, /d/ppl/laechan/聖魔大戰/priest1#201003, /d/ppl/laechan/聖魔大戰/priest1#201002, 0, /d/ppl/laechan/聖魔大戰/door1#201000 }) }), "program" : "d/ppl/laechan/聖魔大戰/yaria1.c", ]) }), "program" : "d/ppl/laechan/聖魔大戰/yaria1.c", ]),0) obs=all_inventory(environment(frog)); j=sizeof(obs); for(i=0;i<j;i++) { if(!obs[i]) continue; if(!living(obs[i])) continue; if(obs[i]->query("inchora")) continue; frog->shut(HIM"神風"HIM"鳳激斬"NOR,100000+random(100),10000,"dam",obs[i]); } 上面已改成 foreach 寫法,可避免掉一些問題。 物件: /cmds/std/_checking /std/user#49923 "cmd_hook" std/user.c:295 /cmds/std/_checking "cmd_checking" cmds/std/_checking.c:444 if(wizardp(usr[i]) || usr[i]->query("no_checking") || usr[i]->query(kkk)<1) 上面 usr[i]->query(kkk)<1 的部份出問題,原因不明。 if(kkk!="@@count_damage" && kkk!="@@skill_num") { for(i=0;i<j;i++) { if(!usr[i]) continue; if(wizardp(usr[i]) || usr[i]->query("no_checking") || usr[i]->query(kkk)<1) continue; usr2+=({usr[i]}); } } 上面已增加一行判斷.. if(!usr[i]) continue; if(!intp(usr[i]->query(kkk))) continue; if(wizardp(usr[i]) || usr[i]->query("no_checking") || usr[i]->query(kkk)<1) 避免它的下一行的 <1 判斷錯誤。 本來還要加 log 的...因為這 bug 不只出現一次,加 log 就可以知道是誰執行該指令造成錯誤。 執行時段錯誤: *Bad argument 1 to call_other() Expected: string or array or object Got: 0. 程式: adm/daemons/party_d.c:439 物件: /adm/daemons/party_d /std/user#68076 "cmd_hook" std/user.c:295 /cmds/std/_party "cmd_party" cmds/std/_party.c:831 /cmds/std/_party "handle_kill" cmds/std/_party.c:114 /adm/daemons/party_d "party_kill" adm/daemons/party_d.c:439 這是 party kill 時發生的錯誤。 該 bug 已加上補強判斷。 全系統於 2010/07/21 10:00am 早上實施 shutdown,下午 我會再觀察一次 debug.log,將剩餘的 bug 解決。 Belldandy. --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.225.161.22
1F:→ laechan :順手做了全系統備份. 以後 shutdown 時有想到都會做 07/21 10:15
2F:→ nahceal :然後nahceal就掉eq了XD 07/21 12:06
3F:→ nahceal :quest已補 3Q 07/21 12:21







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燈, 水草

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

TOP