[wizs] debug.log
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間15年前 (2010/07/21 09:56)推噓0(0推 0噓 3→)留言3則, 2人參與討論串6/17 (看更多)
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
→
07/21 10:15, , 1F
07/21 10:15, 1F
→
07/21 12:06, , 2F
07/21 12:06, 2F
→
07/21 12:21, , 3F
07/21 12:21, 3F
討論串 (同標題文章)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
60
119
37
77
50
91
47
143