※ 引述《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