mud_sanc 板


LINE

今天早上看的时候 debug.log 大小是 119,下午看的时候 变 145,有增肥情况,所以挑出来 debug 一下。 新的一年..最好临时站主机不要出什麽意外。 =================================================== 执行时段错误: *Bad argument 1 to lower_case() Expected: string Got: 0. 程式: d/ppl/quest/dark/room/c.c:113 物件: /d/ppl/quest/dark/room/c /d/ppl/quest/dark/room/c "gamble14" d/ppl/quest/dark/room/c.c:113 通常是 lower_case 里面接的东西没有被指定, 或者是做 物件 query 时根本没这物件存在造成的. quest 你可以检查看看 c.c 的第 113 行。 Expected: string or array or object Got: 0. ", "file" : "d/ppl/quest/dark/room/die.c", "trace" : ({ /* sizeof() == 1 */ ([ /* sizeof() == 7 */ "arguments" : ({ }), "line" : 22, "object" : /d/ppl/quest/dark/room/die, "function" : "die", "locals" : ({ /* sizeof() == 1 */ 0 }), "file" : "d/ppl/quest/dark/room/die.c", "program" : "d/ppl/quest/dark/room/die.c", ]) }), "program" : "d/ppl/quest/dark/room/die.c", ]),0) 会出现这种叙述是新版 mudos 支援的,即以前的 mudos 遇到这种障碍时不会吐讯息、or讯息吐的不清不楚。 上面的意思是 die.c 的第 22 行有问题。 我刚看了一下程式,因为 quest 在 init 里头呼叫 call_out ,然後被 call 的函数有定一个 object ppl=this_player() 问题:若触发的物件消失,die 函数会不会出现 bug? 答案是肯定的,因为有一行 ppl->die(); 若 ppl(即触发 init 的物件)消失,这行就会出问题。 物件消失的通常例子.. 一、玩家 quit 二、怪物被杀 执行时段错误: *Bad argument 1 to call_other() Expected: string or array or object Got: 0. 程式: adm/simul_efun/member_group.c(adm/obj/simul_efun.c):24 物件: /adm/obj/simul_efun /u/q/quest/objs/wizobj#548744 "cmd_moveall" u/q/quest/objs/wizobj.c:1271 /std/user#440774 "move_player" std/user.c:373 /std/user#440774 "move" std/ob/user.c:166 /std/ob/user_d "move" std/ob/user_d.c:49 /std/user#440774 "move_to" std/ob/user.c:172 /d/ppl/quest/dark/room/a "init" d/ppl/quest/dark/room/a.c:16 /adm/obj/simul_efun "wizardp" adm/simul_efun/member_group.c(adm/obj/simul_ efun.c):24 一般若出现 member_group 的错误,通常是 wiz 相关的判断 出问题造成的。 而 wizardp 函数里面接的则是物件,因此跟上面类似,通常 是该物件已消失,不然就是该物件被杀→destruct。 再从 debug 讯息来看,应该是某人使用了 wizobj 欲移动到 某处(a.c),触发了该地点的 init 函数.. void init(object ppl) { ppl=this_player(); input_to("choice",2,ppl); } 呃,我是不确定你这样写有没有问题,一般程式不会这样子写 ,目前已知有在 init 里面加 input_to 的只有各公会,就是 在选择是否设定主公会的判断部份。 很少这样子写的原因,是因为 init 函数的过大适用性─只要 有「物件」进入该房间,就触发 init 函数。 所以一般都会在 init 函数中设定过滤条件,例如.. void init() { object ppl=this_player(); if(!ppl || (ppl && !userp(ppl))) return ; // 只有玩家适用底下 ... } --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.225.162.109
1F:推 horry7 :以上一切都还在试验阶段,所以会有 a b c test 12/31 22:34
2F:→ laechan :其实像 init 搭配 input_to 的写法很少,如果有些有趣 01/01 23:30
3F:→ laechan :的元素可以透过这方式展现的话,你可以尽量try看看,但 01/01 23:30
4F:→ laechan :是一些能加上去过滤的判断也是能加就加,尽量减少负担 01/01 23:31







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

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

TOP