[wizs] 戰役腳本物件檔 - 以羅德斯教廷戰爭為例

作者: laechan (揮淚斬馬雲)   2017-02-09 14:10:14
/open/cmds/war/laechan/test1 -> test1.c
以 war read test1 指令產生。
#define MOB ([\
"dragon":HUMAN_MOB+"dragon",\
"lionorc":HUMAN_MOB+"lionorc",\
"orc_1":HUMAN_MOB+"orc_1",\
"orc_2":HUMAN_MOB+"orc_2",\
"orc_3":HUMAN_MOB+"orc_3",\
"orc_leader1":HUMAN_MOB+"orc_leader1",\
"orc_leader2":HUMAN_MOB+"orc_leader2",\
"orc_leader3":HUMAN_MOB+"orc_leader3",\
"nola":HUMAN_MOB+"nola",\
"mamo":HUMAN_MOB+"mamo",\
"balan":HUMAN_MOB+"balan",\
])
#define STONE "/d/stone/room/la13e4.c"
#define FELID "/u/l/laechan/special/room/felid_war.c"
#include "/d/map/isalon/path.h"
#include "../war.h"
inherit WAR_SAMPLE;
void create()
{
::create();
seteuid(getuid(this_object()));
war_data=([]);
war_data["title"]="羅德斯教廷戰爭";
war_data["date"]="2017/02/07";
war_data["steps"]=11;
war_data["1"]=([]);
war_data["2"]=([]);
war_data["3"]=([]);
war_data["4"]=([]);
war_data["5"]=([]);
war_data["6"]=([]);
war_data["7"]=([]);
war_data["8"]=([]);
war_data["9"]=([]);
war_data["10"]=([]);
war_data["11"]=([]);
war_data["1"]["times"]=0;
war_data["2"]["times"]=10;
war_data["3"]["times"]=10;
war_data["4"]["times"]=20;
war_data["5"]["times"]=15;
war_data["6"]["times"]=15;
war_data["7"]["times"]=15;
war_data["8"]["times"]=15;
war_data["9"]["times"]=60;
war_data["10"]["times"]=3;
war_data["11"]["times"]=3;
}
int step1_plans()
{
war_msg(HIR"西方的獸人大陸在亞斯德死後突然騷動起來...\n"+
"各路魔獸軍團長紛紛趕回獸魔殿....一樁可怕的陰謀正醞釀著!\n"NOR);
return 1;
}
int step2_plans()
{
war_msg(HIR"血魔大帝:那個該死的賢者終於死了!大家報仇的時間到了!\n"+
HIM"軍團長-巴藍:大帝,請允許\屬下率兵當先鋒!殺他個措手不及!\n"+
"軍團長-瑪莫:大帝,讓我帶著精悍的魔龍軍團燒光人類的大陸吧!\n"+
"軍團長-諾拉:讓我來!我的獸戰騎軍團要踩平人類大陸!\n"+
HIR"哈哈哈~~~該死的人類~~~等著瞧吧!!\n"NOR);
war_mob(({
({"orc_leader3",1,"orc_3",3}),"/d/ppl/map/n5e5",
({"orc_leader3",1,"orc_3",3}),"/d/ppl/map/n5e6",
({"orc_leader3",1,"orc_3",3}),"/d/ppl/map/n5e7",
({"orc_leader3",1,"orc_3",3}),"/d/ppl/map/n5e8",
({"orc_leader3",1,"orc_3",3}),"/d/ppl/map/n5e9",
}));
return 1;
}
int step3_plans()
{
war_msg(HIR"巴藍,諾拉聽令!兩人為主力部隊,由海路進攻~即刻啟程!\n"+
"瑪莫聽令!你帶魔龍軍團直攻聖殿教廷!\n"+
HIM"眾人:大帝,屬下聽令!\n"NOR);
war_mob(({
({"orc_leader1",1,"orc_1",3,"lionorc",4}),"/d/ppl/map/n5e7",
({"orc_leader1",1,"orc_1",3,"lionorc",4}),"/d/map/lodoos/room/s-1-1",
({"orc_1",3,"lionorc",4}),"/d/map/lodoos/room/br-2",
({"orc_1",3,"lionorc",4}),"/d/map/lodoos/room/sward1",
}));
return 1;
}
int step4_plans()
{
war_msg(HIY"報~~~~~~~~ [一陣快馬急報驚動了教廷上下]\n"+
"獸人軍團分海陸兩路進兵蘭卡大陸了!!!\n"+
HIC"教皇:別慌, 通知各守軍緊急備戰,叫羅賓來見我!\n"+
HIY"報~~~~~~~~~~\n"+
"魔龍軍團飛越海岸朝教廷直進了!\n"+
HIC"教皇:叫所有人準備應戰!\n"NOR);
war_mob(({
({"orc_leader2",1,"orc_2",3,"dragon",4}),"/d/map/lodoos/room/ws-1",
({"orc_leader2",1,"orc_2",3,"dragon",4}),"/d/map/lodoos/room/ws-2",
({"orc_leader2",1,"orc_2",3,"dragon",4}),"/d/map/isalon/1-6",
({"balan",1,"orc_3",3}),"/d/ppl/map/n5e6",
}));
return 1;
}
int step5_plans()
{
war_msg(HIC"教皇:羅賓!魔獸軍團再度入侵!你看如何?\n"+
HIW"羅賓:教皇,屬下必率領劍士團死守教廷!\n"+
HIW"羅賓:屬下會招即各方正義之師聯手抗敵!\n"NOR);
war_mob(({
({"orc_leader2",1,"orc_2",3,"dragon",4}),HUMAN_ROOM+"1-7",
({"mamo",1,"orc_2",3,"dragon",4}),HUMAN_ROOM+"1-6",
}));
return 1;
}
int step6_plans()
{
war_msg(HIG"嘿嘿嘿嘿嘿~~~~[邪惡笑聲籠罩蘭卡大陸]\n"+
"來吧!拿起你的武器!對抗邪惡的獸人吧![ 羅賓急呼著 ]\n"+
"整個世界就靠我們一起掃平邪惡的獸人,為教皇效命吧!!"+
" [ 羅賓急呼著 ]\n"+
"一場大戰即將展開!!\n"NOR);
war_mob(({
({"nola",1,"orc_1",3,"lionorc",4}),"/d/map/lodoos/room/field-2",
({"orc_leader1",1,"orc_1",3,"lionorc",4}),
"/d/map/lodoos/room/field-3",
}));
return 1;
}
int step7_plans()
{
war_msg(HIR"石化國-外交大臣法蘭說道:陛下!我們報仇的機會來了!\n"+NOR+
HIR"石化國-外交大臣法蘭說道:血魔大帝送來了共同攻擊的協議書,"+
"要求我國幫忙助戰,以徹底毀滅小賤龍的國度!\n"+NOR);
STONE->wellie_groups("/d/map/lodoos/room/s-1-1");
STONE->man_groups("/d/map/lodoos/room/s-1-1");
STONE->fralan_groups("/d/ppl/map/n5e7");
STONE->man_groups("/d/ppl/map/n5e7");
STONE->yami_groups("/d/map/lodoos/room/field-3");
STONE->man_groups("/d/map/lodoos/room/field-3");
return 1;
}
int step8_plans()
{
war_msg(HIG"一向與羅德斯教庭不合的菲里德王國,也南下大舉進兵羅德斯!\n"+NOR+
HIG"菲里德國王道:根據協議書的內容,約定三面進兵一舉攻下敵人的城池!\n"+NOR+
HIR"菲里德南征軍最高指揮官說道:陛下!此事就交給我吧!我必不負所託!\n"+NOR+
HIR"菲里德國王道:如此甚好!快快派我國精銳的坦克部隊前往!\n"+NOR);
FELID->felid_help_lodoos_war();
return 1;
}
int step9_check()
{
if(mob_alive("balan") || mob_alive("mamo") || mob_alive("nola"))
{
war_msg(({
HIC"羅賓公爵大呼:同胞們!!拿出你的勇氣來,抵抗那邪惡的獸人吧!\n"NOR,
HIY"羅賓公爵率領劍士團,奮勇抵擋獸人的侵襲!!\n"NOR,
HIW"教皇:羅賓,依你看此戰是吉是凶!?\n"+
"羅賓公爵:屬下不敢輕易斷言?I\n"NOR,
HIW"教皇:我唐雲劍龍謹代表全體人類向各位英雄致意,"+
"此戰關乎人類氣數,絲毫大意不得!\n"NOR,
HIR"血魔大帝:我族英勇的戰士們,讓人類知道我們的厲害吧!哈哈哈~\n"NOR,
HIR"血魔大帝:哈哈哈~盡情的殺戮人類吧!!"+
"讓人類的鮮血來洗刷我們的仇恨!!\n"NOR,
HIW"教皇:唉~真是生靈塗炭呀!羅賓你盡力而為吧!\n羅賓公爵:是!\n"NOR,
}));
return 2;
}
return 1;
}
> update test1
/open/cmds/war/laechan/test1: 更新及載入了.
下午會對 war_sample.c 裡頭的 war_msg 及 war_mob 函數稍微寫個
雛形架構,然後做一些測試。那麼,因為每個腳本物件檔都是獨立的
,因此我會預留 wiz 就算不以 times_check 來套用,也能自己寫出
戰爭流控,例如使用 heart_beat 或 call_out 型式,不過這個nobu
不建議,使用這兩個形式時,應該是以測試為主要目的,正式開放時
還是應該套用 times_check。
Laechan

Links booklink

Contact Us: admin [ a t ] ucptt.com