mud_sanc 板


LINE

Heart beat in /d/ppl/highelf/west/3/mob/internet#302427 turned off. 执行时段错误: *Division by zero 程式: d/ppl/highelf/west/3/mob/hide.c:11 物件: /d/ppl/highelf/west/3/mob/hide#302578 /d/ppl/highelf/west/3/mob/internet#302427 "heart_beat" std/monster.c:116 /adm/daemons/mob_d "continue_attack" adm/daemons/mob_d.c:581 /adm/daemons/mob_d "execute_attack" adm/daemons/mob_d.c:656 /d/ppl/highelf/west/3/mob/internet#302427 "special_fun" d/ppl/highelf/west/3/mob /internet.c:149 /d/ppl/highelf/west/3/mob/hide#302578 "create" d/ppl/highelf/west/3/mob/hide.c:1 1 我刚看了一下 internet 的档案,set_living_name 的部份尽量小写 ,special 的设定部份最高设 9x 就好(也不要 99)。 void receive_damage(int damage) { if(damage < 60000 ) return 0; ::receive_damage(damage/9); } void 的宣告改用 return ; 即可。我刚看了一下 /std/mob/attack.c ,怪物原始的 receive_damage 是宣告为 int,自订的 receive_damage 最好也宣告为 int。即保留上面的 return 0,最底下加一行 return 1; void clone_mob() { say(HIW"正当魔法阵光芒亮起到最高点之时, 魔法阵招唤出来了一些远古时代的恐龙, 朝꜊A攻了过来.\n"NOR); clone_object (EM"mob")->move(environment(this_object())); call_out("end_clone",6); } 这 nobu 好像有提过若有用到 clone 的话最好宣告为 int 函数然後 return 1. (有用到 move, move_player 的必须这样做是确定的) 再来看 执行时段错误: *Division by zero 的部份 主要出现在 /d/ppl/highelf/west/3/mob/hide.c 第 11 行附近 inherit OBJECT ; object ppl=this_player(); void create() { set("id",({"潜透击"})); set("name",HIR"潜透击"NOR); set("prevent_auc",1); set("prevent_drop",1); set("prevent_auc",1); set("invis",100); set("hide",(["time":40000/(int)ppl->query("stat/air") ,"dam":50000000/(int)ppl->query("stat/con")])); } 会出现 *Division by zero 代表上面的 ppl 「不存在」 理论上如果这是在战斗中由怪物 Internet 的 special_fun 所呼 叫出来的时候,则 ppl 理论上会变成 Internet this_player() 并不绝对是指玩家,而是指呼叫或载入该物件的 主体object 是谁,正常我们写在房间的 void init 函数因为呼 叫与使用自订指令的多半是玩家,所以才会很经常判断 this_player() 为玩家. 我是觉得可能该怪物并无设定 air 或 con 才会出现除 数为 0 的情况 我刚 data 了一下 Internet stat : ([ "dex" : 7020, "str" : 7371, "fel" : 7020, "int" : 7020, "mag" : 7371, "con" : 7020 ]) 确定是没有 air 的,这里也可以顺便印证 this_player() 读到 的其实是 Internet。 执行时段错误: *Value being indexed is zero. 程式: d/ppl/highelf/west/3/mob/internet.c:169 物件: /d/ppl/highelf/west/3/mob/internet#295167 生物名: Internet /d/ppl/highelf/west/3/mob/internet#295167 "heart_beat" std/monster.c:116 /adm/daemons/mob_d "continue_attack" adm/daemons/mob_d.c:581 /adm/daemons/mob_d "execute_attack" adm/daemons/mob_d.c:656 /d/ppl/highelf/west/3/mob/internet#295167 "special_fun" d/ppl/highelf/west/3/mob /internet.c:169 Heart beat in /d/ppl/highelf/west/3/mob/internet#295167 turned off. 执行时段错误: *Illegal to move or destruct an object (/d/wiz/mob/lodao#4) defini ng actions from a verb function which returns zero. 程式: (0):0 物件: 0 通常出现 Value being indexed is zero. 代表字串 or 物件 or 阵列本身为空的情况居多。 169 行附近的程式码如下... ppl->set("ready_attack",2000); ppl->set("block_command_msg","你还被击飞在半空中, 还没落地.\n"); ppl->set("block_command",5); i=17+random(5); ppl->move_to(ER+i); } break; default : if(sizeof(all_inventory(mob))&&random(2)) out(1); else if((int)ppl->query("stat/dex")<2000+random(3000)) 所以可能的原因是.. 一、ppl 不见了 二、mob 不见了 以第二种情况为例你可以改用底下判断方式.. if(mob && sizeof(all_inventory(mob))&&random(2)) out(1); else if(ppl && (int)ppl->query("stat/dex")<2000+random(3000)) 或者.. if(!mob) return ; // 先一步判断底下要用到的 mob 是否存在 执行时段错误: *Bad argument 1 to call_other() Expected: string or array or object Got: 0. 程式: d/ppl/highelf/west/3/mob/guard.c:51 物件: /d/ppl/highelf/west/3/mob/guard#271903 生物名: guard /d/ppl/highelf/west/3/mob/guard#271903 "heart_beat" std/monster.c:116 /adm/daemons/mob_d "continue_attack" adm/daemons/mob_d.c:581 /adm/daemons/mob_d "execute_attack" adm/daemons/mob_d.c:656 /d/ppl/highelf/west/3/mob/guard#271903 "special_fun" d/ppl/highelf/west/3/mob/gu ard.c:51 出现 *Bad argument 1 to call_other() 通常原因有两种.. 1. 参数量给定不足 2. 参数型态给定错误 mob->shut(HIY"龙"HIR"*"HIY"操"HIR"*"HIY"翔"NOR, 400000+random(999),10000, ({"fire","physics"}), ob,5+random(5)); 我个人自己认为比较有可能出问题的在 ob 上面,也就是 ob 突 然消失的情况,因为你判断式是这麽写的... void special_fun(object mob,object ppl) { foreach(object ob in query_attackers()) { 通常我们会避免这样子写,因为 query_attackers() 的结果确实 有可能会在其中藏了几个 0。如果你要像上面那样子写的时候要 加一行判断.. foreach(object ob in query_attackers()) { if(!ob || (ob && !environment(ob))) continue; // 略掉这类的 ob locals were: "执行时段错误: *Bad argument 1 to call_other() Expected: string or array or object Got: 0. 程式: adm/daemons/room_d.c:60 物件: /adm/daemons/room_d /g/tales/room/rooms287 "reset" u/n/nobu/king/kroom.c:487 /g/tales/room/rooms287 "reset" std/ob/room.c:42 /adm/daemons/room_d "reset" adm/daemons/room_d.c:60 /adm/daemons/room_d "CATCH" adm/daemons/room_d.c:60 这纯粹是 room_d.c 的问题,下午再看。已知它会造成 tales 国 在载入 rooms287 这个房间时出问题。 Laechan --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.225.163.92
1F:→ HighElf :orz... 09/19 04:11







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

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

TOP