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

請輸入看板名稱,例如:e-shopping站內搜尋

TOP