精華區beta mud_sanc 關於我們 聯絡資訊
※ 引述《amosdeus (幽素)》之銘言: : 今天下午嘗試做了一個屬性技能,不過似乎沒有作用也不能連用兩個繼承 : 得把inherit MONSTER;刪除掉,這樣就會發生問題,當用到set_verbs(({"腳踹"})); : 會出現可怕的女孩一腳踹向你ERROR,刪掉又會出錯MOB會呆住請麻煩幫我看一下是 : 哪理出錯 謝謝 : MOB位置:/u/p/plain/wide/virtue/mob/zi.c : 技能位置:/u/p/plain/wide/predicable/character.c : 再請教一個問題能設置當玩家打NPC時他會移走自己remove();不讓玩家打嗎? : 謝謝 : Plain@Sanc /u/p/plain/wide/virtue/mob/zi.c 的部份 一、inherit "/u/p/plain/wide/predicable/character"; inherit 裡面接的檔名必須是全檔名,你上面少了 .c。 二、case x: { <= 多餘的 . . break; } <= 多餘的(因為有 break;) 三、set_living_name("Eldritch Babe"); 這樣寫也是錯的 1)set_living_name 裡面的字串不能有空格 2)set_living_name 裡面的字母都不能大寫 /u/p/plain/wide/predicable/character.c 的部份 一、你上面的 zi.c inherit GMONSTER; 是有問題的,因為你 的 zi.c 的怪物寫法是 MONSTER 的寫法,並不是 GMONSTER 的。 二、所有的 int 宣告的函數,都必須注意,要確保每一個判斷 都必須要有回傳值(return 整數),不然即使 update 沒有 錯誤,程式執行中也可能會有錯誤。例如底下函數... int DARK2(int dam,string type) { switch(type) { case "dam":dam=0;break; case "light": dam*=3;break; default:break; } 你漏掉了 return dam; } 打怪物,怪物馬上消失,寫法是在怪物裡頭自定 kill_ob 函數 void kill_ob(object ppl) { write(query("chi_name")+"叫道: 不要打偶啦~~~\n"+ query("chi_name")+"突然像煙一樣消失了。\n"); remove(); // 消失 return ; } 任何攻擊怪物的指令以及動作,全都會呼叫上面的 kill_ob 函 數。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.140.115.215