[2017/02/09更新]
title=罗德斯教廷战争##
date=2017/02/07##
steps=11##
mobs=
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"##
header=
#define STONE "/d/stone/room/la13e4.c"
#define FELID "/u/l/laechan/special/room/felid_war.c"
#include "/d/map/isalon/path.h"##
step1_times=0##
step1_plans=
war_msg(HIR"西方的兽人大陆在亚斯德死后突然骚动起来...\n"+
"各路魔兽军团长纷纷赶回兽魔殿....一桩可怕的阴谋正酝酿着!\n"NOR);##
step2_times=10##
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",
}));##
step3_times=10##
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",
}));##
step4_times=20##
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",
}));##
step5_times=15##
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",
}));##
step6_times=15##
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",
}));##
step7_times=15##
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");##
step8_times=15##
step8_plans=
war_msg(HIG"一向与罗德斯教庭不合的菲里德王国,也南下大举进兵罗德斯!\n"+NOR+
HIG"菲里德国王道:根据协议书的内容,约定三面进兵一举攻下敌人的城池!\n"+NOR+
HIR"菲里德南征军最高指挥官说道:陛下!此事就交给我吧!我必不负所托!\n"+NOR+
HIR"菲里德国王道:如此甚好!快快派我国精锐的坦克部队前往!\n"+NOR);
FELID->felid_help_lodoos_war();##
step9_times=60##
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;
}##
step10_times=3##
step10_steps=
war_msg(HIY"圣殿教廷 VS 兽人军团战况胶着。\n"NOR+
HIR"血魔大帝:兽人们撤退!....再打下去也占不到人类便宜!\n"+
"血魔大帝:想不到人类命不该绝,只好再等待下一个机会了!\n"NOR);##
step11_times=3##
step11_steps=
war_end();##
说明:
header : 写在这里的东西会被放在档头
stepX_check: 从第 X-1 进入第 X step 前需通过的判断
return 1 代表无法通过判断
stepX_times: 从第 X-1 跳到第 X step 是几秒后
stepX_plans: 第 X step 的包含内容,一般里面至少会有
war_msg: 战争讯息广播
war_mob: 战争怪物投放
例如
// 60 秒后呼叫 step9
step9_times=60##
// 有 step9_check 函数时就自动进入 loop check 模式
// 若满足 if(step9_check()>1) 的条件时(如上例为 return 2)
// 在 step9_times=60 秒后会再重新呼叫一次 step9_check
// 反之若 if(step9_check()>0) 的条件不满足时
// 因为没有 step9_plan 就直接在 step10_times=3 秒后呼叫 step10
// (若有定义 step9_plan 则会执行 step9_plan)
// 也就是 stepX_check 函数其实就是 loop 用的控制函数
// 而所有 stepX_ 函数都默认最后会 return 1
step9_check=
if(mob_alive(balan) || mob_alive(mamo) || mob_alive(nola))
{
war_msgs=(({
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;
}##
step10_times=3##
step11_steps=
war_end();##
关键就在于 war_end 函数:
1.究竟需不需要传值给它
2.war_end 函数可被 wiz 自订到什么程度
(但其实我不太希望 wiz 自订,这样才能期望显示格式统一)
所以我会采取的做法是 war_end 不给任何值时,就完全套用默认值,
反之,有给值时,就是套用 wiz 所自订的一些东西。
因此传值的部份我预计会采 mixed 来统包并使用 varagrs 宣告。
战役脚本物件档本身也将充当战役控制档,因此它会有些以 static
宣告的内建变量,用来暂存一些资料用,这些资料在该物件被update
时将被 clean,但有些会被储存起来,且 times_check 也尚未停止
呼叫物件档,这时理论上:
1.战争将依该物件被 update 前的状态继续执行
2.但物件暂存资料将消失,系统接着就会直接结束战争
为了避免这种情况发生,但又同时为了避免频繁的储存,我通常会在
loop(check) 函数所在的区段才做 save_data,将“哪些怪物是哪些
玩家所杀”纪录起来。
这样至少当战争被系统直接结束时,还有办法做出部份统计。
以上。大概大部份的战役都能以这样的脚本档型式来运作,脚本档的
格式就先这样子定下来。我接下来会接着写 _war.c 来把脚本档变成
脚本物件档。
LAechan