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

请输入看板名称,例如:iOS站内搜寻

TOP