征服者战役制作(实质就是战役编程,只不过不用写代码 — 全可视化编程)有很多专门的术语,如果我们理解了这些术语,就会对战役制作原理有所了解,从而对战役制作入门带来重要的帮助。战役剧本制作包括界面制作(创建地图和目标等)和触发设置,其中最核心的部分就是编程,即“触发”(子程序),所以在这里我们专门对触发编程的一些术语作一下解释。
1、触发(name)。从这几天初次接触战役制作的感觉来看,“触发”的意思大概就是通过一个或多个事件指令(在这里称为“条件”)引起一段战役程序的运作,这段战役程序我们可以称为“战役子程序”或“剧本子程序”,一个或多个战役子程序构成一个完整的战役程序,该程序文件的名称是“*.scx”,我们可以把scx程序文件(又称剧本文件)编译成cpx战役文件。scx程序文件可以在场景地图中运行,而cpx战役文件可以在定制战役中运行。从“触发”的字眼可以看出,战役子程序属于事件(条件)驱动型子程序,即需要有一个或多个条件,才能产生一个子程序,使子程序在一定的动作指令(效果)下运行,即所谓“一触即发”、“不触则不发”。这就是电脑的所谓“智慧”,要人类触动它,它才运行,各种触动方法即所谓“条件”。
2、条件(when、why)。从对“触发”的解释中可以看出“条件”的含义,意思就是在什么样的情况下,这段子程序会被触发运行,相当于传统编程的“事件”或“消息”、“触发指令”等含义。剧本编辑器里面预设有19种可用的条件放在组合框里供我们选择。
有些触发表面上不需要条件,但实质上不是这样,为什么?很简单,电脑还没有聪明到能自动运行,任何效果都需要触发及触发条件。AI表面上可以自己控制,但实际上,编制AI时也要用到触发及其条件,只不过AI编程没有“触发”或“条件”等术语,但“消息”、“事件”(实质就是触发)等概念一定要用到;而另外一些没有调用AI的触发好象也没有条件,但这些触发要依靠有条件的触发来触发,没有不依靠条件的触发。
3、效果(then、how)。“效果”的含义相当于传统编程所说的“命令”、“指令”、“函数”等,所谓“效果”就是一段子程序的具体运行方式,即怎样运行。比如“改变外交态度(起始玩家,对象玩家,外交状态)”、“送出聊天(声音文件,起始玩家,信息)”、“播放声音()”等等。一段战役子程序就是由“触发”、“条件”和“效果”所组成,意思是该段触发型子程序在某“条件”的“触发”下,完成某种程序运行“效果”。“条件”和“效果”都是指令,两者具有因果关系,效果指令由条件指令触发。剧本编辑器里面预设有29种可用的效果放在组合框里供我们选择。
4、参数(what)。在“条件”和“效果”中需要直接处理或附带的数据我们称为“参数”,不同的指令具有不同的参数。如“改变外交态度”效果包含“起始玩家”、“对象玩家”和“外交状态”等三个参数。理论上指令可以没有参数,但征服者剧本编辑器中的指令(包括条件指令和效果指令)差不多都有参数,如“播放声音”的参数当然是要播放的声音文件,没有声音文件就无法播放声音。在指令中,有些参数是必需的,要设置好的。而有些参数不是必需、可有可无的,我们可以将这两种参数分别称为“必需参数”和“可空参数”。
打个通俗比方,“吃饭”这个词语中,“吃”是指令,“饭”是“吃”指令的参数,用代码格式表示就是:吃(饭)。进一步添加其他参数就成为:吃(吃什么,吃的方式,......),具体指令如:吃(饭,用手抓着吃)。又如有一个函数叫“相加”,我们需要添加什么参数呢?很明显,“相加”命令需要直接处理的数据是“加数”和“被加数”,这两个参数都是必需的,否则就无法相加,所以“相加”命令我们可以设置为:相加(加数,被加数)。
巧妇难为无米之炊,如果将指令比喻为“炊”,那参数就是“米”了。如果指令缺少参数会怎样呢,那就是:巧嘴难为无饭之吃、巧算难为无数之加、巧兵难为无敌之杀、巧动难为无物之移了,呵呵。
5、触发型子程序。子程序又称“触发”,一段战役子程序由“触发名”(即“子程序名称”)、“条件”、“效果”及各种附带参数所组成。如果用代码格式(不过真正能用中文来做代码的只有汉语编程易语言)来表示子程序和整个剧本程序,可以如下面这样表示,用虚线或其他符号将各子程序隔开条理分明一点:
地狱战役.scx
-------------------------
触发名:触发1
条件0:把对象带到指定地域(士兵1,BBB地点)
效果0:改变外交态度(玩家1,哈哈玩家,敌对状态)
效果1:送出聊天(“哈哈玩家:你们不干净的人随意进入我们的圣地,是可忍孰不可忍!愚蠢的人类玩家,等着接受惩罚吧!”)
--------------------------
触发名:消解仇恨
条件0:把对象带到指定地域(美女2,CCC地点)
效果0:关闭(触发1)
效果1:送出聊天(“哈哈玩家:愚蠢的人类,你们以为送上美女就能消解仇恨吗?送上你们的人头来!”)
效果2:吃(饭)
上面两段子程序的大概意思是:触发1 — 当玩家1把自己的一个士兵(即士兵1)带到BBB地点时,程序会自动改变玩家1跟另一玩家(哈哈玩家)的态度为敌对,假如你不想制造敌对,就不要把对方讨厌的人带到禁区;消解仇恨 — 当把美女2带到CCC地点时,程序会关闭另一程序,并达到一定效果。
由上面可知,征服者剧本编辑器只为我们预设了19种条件和29种效果,所以我们也不难熟悉。如果想达到更多效果我们可以编制AI文件,至于AI编程方法可参看其他教程。
下节教程继续解释其他术语,包括一些参数术语,如:命令描述、对象、起始玩家、对象组、对象列表类型、对象列表、对象类型、开启、关闭等。
附本节教程的小例程下载:https://www.cccamu.net/bbs/viewfile.asp?ID=1244
[此贴子已经被作者于2003-12-20 10:41:27编辑过]
|