精華區beta mud_sanc 關於我們 聯絡資訊
#include "../forest.h" // 繼承某檔案 #define MOB_NAME HIR"鬼"HIB"魂"NOR // MOB NAME #define MOB_ID HIM"("HIP"Ghost"HIM")"NOR // MOB ID inherit GMONSTER; // 群體怪 static int kk = 0; // 防必中,需配減傷護盾使用。 void create() { int haemo,amount; haemo=1200000+60000*random(8); // 怪物血量 amount=10+random(20); // 怪物數量 set("level",105+5*random(6)); // 怪物等級 set("race","幽靈"); // 怪物種族 ::create(); seteuid(getuid(this_object())); // 一定要有就對了! set_living_name("ghost"); // 系統看得id,只能小寫。 set("id",({"ghost"})); // mob id set_name(MOB_NAME); // 怪物中文名 set("short",MOB_NAME+MOB_ID+" ["+amount+"個"+MOB_NAME+"]"); set("long",@NORR 鬼魂總是從你忽略的暗處出手攻擊,這些大多是想要擅入這片森 林的人死後的模樣,無法進入輪迴還終生困死在此。 NORR ); set("hp_src",haemo); // 與hp_max為一組,怪的最高血量。 set("hp_max",haemo); // 與hp_src為一組,怪的最高血量。 set("hp",haemo); // 怪的血量,統一改上面的血量定義就好了。 set("killer",1); // 自動攻擊, 0為不開啟 1為開啟。 set("unit","個"); // 怪物單位 set("ethic",-10000); // 怪物道德 set("gender","male"); // 怪物性別 set("skill",(["dodge":4000])); // 怪物技能 set("member",amount); // 怪物的數量 set("stat",(["str":6666,"dex":6666,"con":6666, // 怪物屬性,平常可不用設。 "air":6666,"mag":6666,"fel":6666]));// 數值全設6666為普攻必中。 set("special",80); // 特攻發動率。 enable_commands(); // 可使怪執行命令,固定設著就好了。 set_verbs(({"打向","砍向"})); // 怪物的普攻敘述。 set("no_pacify",1); // 不被安撫 set("no_sleep",1); // 不被沉睡 set("no_confine",1); // 不被束縛 set("no_ice",1); // 不被冰凍 set_temp("selfshield2",({500000,1,this_object(),this_object()})); // 自設減 傷護盾 } int special_fun(object frog,object ppl) // 特攻 { int j,r; r=random(3); switch(r) // 隨機選一種攻擊效果 { case 1: shut(HIY"暴風雨之夜襲"NOR,25000,5000); // 簡易式的特功,("敘述",殺傷,命中)。 shut(HIY"暴風雨之夜襲"NOR,20000,9999); // 命中範圍1~9999,9999為必中。 frog->shut("$N使出"HIY"滅卻"HIW"."HIG"魂"NOR"攻向$O",18000+5000*random(8), 499+500*random(20),({"dam","magic",2}),ppl,2+random(4)); // 複雜式的特功,("敘述",殺傷,命中,"種類",目標,攻擊次數)。 // 種類那欄 -> {"屬性","種類","等級強度(1-5)"} // 屬性:dam、fire、wind、earth、thunder、light、dark、ice、water // 種類:物理(physics)、魔法(magic)、必中穿刺(stick) break; case 2: frog->shut("$N使出"HIY"滅卻"HIW"."HIG"魂"NOR"攻向$O",18000+5000*random(8), 499+500*random(20),({"dam","magic",2}),ppl,2+random(4)); // 複雜式的特功,("敘述",殺傷,命中,"種類",目標,攻擊次數)。 // 種類那欄 -> {"屬性","種類","等級強度(1-5)"} // 屬性:dam、fire、wind、earth、thunder、light、dark、ice、water // 種類:物理(physics)、魔法(magic)、必中穿刺(stick) break; default: // 破盾功能 if(ppl->query_temp("shield2")) { show(frog,ppl,HIC"你的護盾因為受到巨大力量的衝擊,而徹底的崩潰了!\n"NOR); ppl->delete_temp("shield2"); ppl->delete_temp("attack"); return 1; } // 補血功能 if(random(4)==1&&query("hp")<50000000) { show(frog,ppl,"$N"HIC"吸收了海水的精華,使受創的傷口漸漸地恢復了\n\n"NOR); add("hp",(int)query("hp_src")/10); } // 定身功能 if(random(2)==1) { ppl->set("block_command_msg", "\n狂暴的雨勢,使你感到身體不堪負荷、全身無力,無法行動!!\n"); ppl->set("block_command",5); } break; } return 1; } int receive_damage(int damage) // 傳回傷害的設定,沒說明的地方請照抄。 { this_object()->delete_temp("time_record"); set_temp("selfshield2",({500000,1,this_object(),this_object()})); ::receive_damage(damage); // 傳回傷害(可修改,會讓實際傷害跟顯示傷害不一致) return 1; } string shield2_name() // 護盾名稱 { return HIW"水之障壁"NOR; } mixed shield(object me,object tar,int dam,string type) // 減傷設定 { if(type == "fire") dam=dam/15; else if(type == "thunder") dam=dam/3; else dam = dam / 8; return ({kk=dam,"$O受到大海的庇護削弱迎面而來的傷害!"}); // 若無防必中,把kk=dam改為dam即可。 } int die() { object ppl; ppl=this_player(); if((int)ppl->query_temp("virtue_robber")==1) // 判斷有無任務參數 { ppl->delete_temp("virtue_robber"); // 刪除任務參數 ppl->set_temp("virtue_robber",2); // 設置任務參數 } if((string)ppl->query("pri_guild")!="knight") // 如果主職業不等於騎士的話 { shout(HIG"\n\n\t"+ppl->query("chi_name")+ // shout為全sanc的人都看得到 HIM"費盡千辛萬苦終於殺死了這隻怪!\n\n"NOR); write(HIW"在此特別賞賜你聲望三百、"+ // write為只有殺死的人看得到 "道德兩萬、金錢一萬。\n"NOR); ppl->add_warexp(300); // 增加戰功 ppl->add_ethic(20000); // 增加道德 ppl->add("balance",10000); // 增加金錢一萬。 if(random(5)==1) { clone_object(VO"energy")->move_to(ppl); write(HIG"\n【 "HIC"你得到"HIC"贔屭"HIY"精血"HIC"!"HIG" 】\n"NOR); } if(random(3)==1) { ob=clone_object(VE"belt"); ob_set_names(ob,ppl,all_inventory(environment(frog))); // 團隊認主,可讓玩家自設。若要只認殺死的人為主,去除該行即可。 ob->move_to(ppl); } remove(); return 1; } return 1; }