计算机游戏者战略编写员教程




计算机游戏者战略编写员教程

人工智能专家参考文件

世纪帝国 II ®:征服者入侵

(繁体中文版)

原作:全效工作室

翻译暨校对:狂~剧情狂

 

游戏编辑设计公会.站长群之一

游戏编辑设计公会联盟.盟主

游戏编辑设计公会杂谈论坛.管理群之一

 

冻原工作室.成员

 

翔鹰战役制作小组.成员

阿木帝国战役网战役制作论坛《战役制作.战役制作技巧》.版主

阿木帝国战役网战役制作论坛《战役制作.人工智能专区》.版主

阿木帝国战役网战役制作论坛《战役制作.模块制作》.版主

阿木帝国战役网战役制作论坛《战役制作.联机场景》.版主

 

新彩战略论坛《「世纪帝国 II :征服者入侵」剧情系列》.板主

 

奇摩家族《世纪帝国之征服者(剧情玩家网)》.副家长

 

剧情一族讨论广场世纪区版主群.组长

剧情一族讨论广场《剧情制作研讨中心》.版面管理员

剧情一族讨论广场《模块及人工智能开发研究》.版面管理员

剧情一族讨论广场《世纪战略塔台》.版面管理员

剧情一族讨论广场《档案交流中心》.版面管理员

剧情一族讨论广场《世纪藏经阁》.版面管理员

 

如您发现本文件有任何错漏,敬希以电邮或访临上述各网站、联盟、家族或讨论区告知。

本文件仅在 游戏编辑设计公会  游戏编辑设计公会联盟  阿木帝国战役网战役制作论坛  Bear小站】.世纪帝国 II - 征服者入侵 1.0 开放下载,如你在其它地方下载到此文件,亦请告知本人。

此谢!


重要启示:「世纪帝国 II ®征服者入侵」授权您创造自己的自订战役、剧情、以及计算机游戏者脚本。您可以为游戏用途而分享这些自订战役、剧情、以及计算机游戏者脚本,但您不得以擅自以自订战役、剧情、以及计算机游戏者脚本作出售或其它的商业用途。Microsoft保留相关编辑器及档案所含之其它著作权。


COPYRIGHT NOTICE

 

This information contained in this publication/document (the “Information”) may be redistributed only as permitted by the text below and provided that such Information and this copyright notice remain intact. No part of the Information may in any form or by any electronic, mechanical, photocopied, recorded or any other means be reproduced, stored in a retrieval system,  broadcast or transmitted without the prior written permission of the publisher of the Information, Ensemble Studios Corporation. Neither the Information nor any portion thereof may be stored in a computer or other electronic storage device except for personal and non-commercial use.

 

Users of the Information must seek permission from Ensemble Studios Corporation for all uses that are not allowed by fair use and other provisions of the U. S. Copyright Act, as amended from time to time (the “Act”). This Information may not, under any circumstances, be resold or redistributed for compensation of any kind without the prior written permission of Ensemble Studios Corporation, 10440 N. Central Expressway, Suite 1600, Dallas, TX 75231. 

 

The Information may only be used as a source of data and may only be used for non-commercial purposes. Any copy of this Information or portion thereof must include this copyright notice.

 

Any published data contained in the Information, including URL and other Internet Web Site references, is subject to change from time to time without notice. 

 

The Information does not carry a warranty of any kind, whether express or implied. Although every effort is made to provide the most accurate and up-to-date information possible, Ensemble Studios Corporation acknowledges that this Information could include certain errors, including typographical errors and technical inaccuracies. Additions and changes will be made to the Information on an on-going basis; thus the Information contained herein is subject to change without prior notice. Complying with the Act and all other applicable federal or state copyright laws is the sole responsibility of the user.  The user hereby is deemed to assume all such copyright law compliance responsibility by his or her use of the Information.

 

Ensemble Studios Corporation may have U.S. federal and/or state patents, patent applications, trademarks, service marks, trade names, copyrights or other intellectual property rights covering subject matter in the Information. Except as expressly provided in any written license agreement from Ensemble Studios Corporation, the furnishing of the Information does not give the user any license to such patents, patent applications, trademarks, service marks, trade names, copyrights or other intellectual property rights, which are expressly retained by Ensemble Studios Corporation.

 


目录

简介 7

规则 8

事实 10

动作 11

Defrule (定义规则指令 12

Deconst (定义常数指令 13

Load (读取指令 14

Load Random (随机读取指令 15

条件性读取 16

技术性考虑 17

系统定义符号 17

例子 20

条件性读取与使用者定义常数 21

系统定义常数 22

事实 23

事实列表 23

恒等事实 27

事件检查事实 27

游戏事实 27

商业贸易事实 27

贡品检查事实 27

贡品资源事实 27

计算机游戏者物品计算事实 28

计算机游戏者资源事实 28

弒君游戏事实 28

计算机游戏者可行性事实 28

计算机游戏者其它事实 29

对手事实 29

作弊事实 29

事实详述 30

动作 48

动作列表 48

输出 / 输入动作 51

规则控制动作 51

事件动作 51

商业贸易动作 51

贡品动作 51

贡品资源动作 51

弒君模式动作 52

作弊动作 52

其它动作 52

动作详述 53

参数 63

参数列表 63

参数详述 64

百搭参数 80

难易度参数 84

「征服者入侵」人工智能游戏者之方针 85

「征服者入侵」的难易度 - 微操 86

变数 89

规则变量 89

定时器 91

定时器事实 91

定时器动作 91

例子 91

错误讯息 93

错误报告形式 93

错误码的简介 93

错误列表 93

替脚本有效除虫的提示 94

数据类型 95

字符串 95

符号 95

附件 A - 内部策略值 (SN) 参考文件 96

附件 B - 策略值 (SN) 默认值 114

附件 C - 「征服者入侵」字符串表参考文件 117

事实、动作及参数 (组合列表) 121

未归档例子 126

控制村民分配 126

如何贸易 127

如何正常地弃权 128

译者后记 131

 

 


简介

 

「世纪帝国 II :征服者入侵」采用了全新的人工智能专家系统来辅助计算机游戏者的决策,这个专家系统会对一系列的规则作出测定,并且执行不同的动作。在以下的部分里,您可以学习到如何设定人工智能遵从新的规则、如何检查游戏中的事实以触发这些规则、以及如何命令人工智能根据您的指示执行动作

 

人工智能档案是一个扩展名改为「*.per」的纯文字文件,这类档案包含有用来创建自订计算机游戏者的脚本指令群。您可以利用文字编辑器(具备显示行数功能的更佳)来设计自己的人工智能脚本,并且复制它们到您安装「世纪帝国 II」目录下的「AI」数据夹内。

 

您也要新增一个以「*.ai」作扩展名的空白纯文字文件以把新档案加入到计算机游戏者或剧情编辑器的名单中,游戏会在执行有关人工智能时自动侦测符合的「*.per」档案。因此,在您游戏下的AI数据夹中,您需要以下的二个档案:

 

C:\Program Files\Microsoft Games\Age of Empires II\AI\MyAI.ai (这是一个用来在游戏名单上显示名称的空白文件)

 

C:\Program Files\Microsoft Games\Age of Empires II\AI\MyAI.per (这是一个包含自订人工智能脚本的规则事实等的文件)

 

您必须同时具有相同名称的「*.per」及「*.ai」档案来使您的自订人工智能脚本生效!


规则

 

一个专家系统的基本就是规则。我们对于游戏世界、其它游戏者等层面上都有不同层面的认知,这就是所谓的事实。透过规则,我们可以检查一系列的事实;直到计算机游戏者符合我们所要求的条件后,它就会行动。动作就是其执行某种行动的命令,例子包括生产一个单位、研究一项科技、又或送出一个交谈讯息。 

规则的定义

 

在人工智能脚本中,规则是以「defrule」指令来定义的。如果该规则的条件成立,其中的指令就会被执行。但若该规则的条件是不成立的,这条规则就会被忽略。

 

一个「defrule」的例子:

 

(defrule  

(cheats-enabled)  

 => 

(设置一些动作) 

)

 

要注意的是规则前后的圆括号是必须的,而空白部分(空格键、跳位键等)则并不重要。

 

规则会一直不断的被估算,直到它被停止。这可以经由「disable-self」指令来达致:

(defrule 

(true) 

 => 

(disable-self) 

)

 

查阅全部规则的过程称为规则传读这是一个很有效的系统,每条规则在一秒间可以被检查达数次之多。

注释行句

 

在自订人工智能专家系统的脚本文件中,您也可以看到一些注释。这些注释会以一个分号为首。乞例如:

;这是一条注释

 

(defrule 

(food-amount greater-than 75)

 => 

(train villager)   ;还有一条位于行尾的脚注!

)

.

 

在该行中,任何于分号之后的文字都会被人工智能脚本视为注释和予以忽视。

 

一旦您完成对规则的定义,您就可以使用所提供的各种事实动作来作成各种使游戏出现不同行动的组合。

 


事实

 

事实就是那些在规则中被检查的状况。游戏者信息如黄金储存量、对手信息如积分、以及游戏信息如胜利条件都是其中的例子。

G213 

使用事实

 

事实可以用来启动一条规则。在以下的例子中,只要当游戏者有 50 个单位的食物时就会生产一个村民:

 

(defrule 

(food-amount greater-than 50)

 => 

(train villager)

)

 

请看:规则

 

测试事实

 

<关系运算子在很多的事实中都会应用到,它是用来比较运算子左边的值和右边的值之关系。例子包括当您想一条规则在游戏者收集到一定数量的木材后启动:

 

(defrule

(wood-amount greater-than 1000)  

 =>  

(chat-to-all “I have 1000 wood!”)

)

 

 

事实参数

 

有些事实可以被游戏直接检验。例如在您想检验游戏是否允许使用秘技时,可以设定一条如下的规则

 

(defrule  

(cheats-enabled)  

 => 

(chat-to-all ”开始使用秘技吧!” ) 

)

 

其它一些较复杂的事实就会要求您输入一些补充数据来检验,包括有数据如文明 <文明或地图大小 <地图大小等都在这些事实需要之列。所有列有参数 <数据类型事实均须要有这些参数才能顺利运作。

 

有关更多关于参数的数据,可以查阅本文件的《参数》章节。


动作

 

动作就是您在规则中要人工智能作出的行动。动作可以使人工智能游戏者建造一座建筑物、生产一个单位、送出交谈讯息予其它游戏者等等。在规则中,您可以透过动作命令计算机游戏者作出任何人类游戏者所能做到的行动。

 


Defrule (定义规则指令

 

这个指令可以创建一条新的规则

 

例子:

 

(defrule 

(game-time greater-than 30) 

 => 

(resign)

 )

 

 


Defconst (定义常数指令

 

这个指令可以创建一个使用者定义常数有关更多关于定义常数的资料,可以查阅本文件的《条件性读取与使用者定义常数》章节。

 

句法:

 

(defconst <常数名称> <数量>)

 

<常数名称> 是一个由使用者自行选择的名称。定义常数的时候,最好但不一定要利用类似于系统所使用的命名模式(如以破折号「-」分隔的字词)。

 

<数量> 是指一个符合 C++ 语言短整数类型的整数。(对于非程序工作人员来说,这表示其数目不能小于 -32768 或大于 32767。)

 

以下的例子定义了一个代表黑暗时代村民数量的常数,名为「num-dark-age-villagers」:

 

(defconst num-dark-age-villagers 22)

 

而以下的规则便有用到这个使用者定义常数

 

(defrule

        (civilian-population < num-dark-age-villagers)

        (can-train villager)

=>

        (train villager)

)

 

在为 <目标 <目标编号<定时器编号> <语音指令值等命名时,使用者定义常数是很方便的。如果不使用常数,上述参数都只会成为一堆没有名称的数值。

 

提示:在修改人工智能时,如果您把所有「defconst定义常数指令聚集在同一个档案中,您可以很容易的透过改变定义常数本身代表的值来进行编辑,而不用对档案中所有的有关变量都作出修改。在上述的例子中,如果您在您的人工智能经常有用到「num-dark-age-villagers」这个使用者定义常数,您便只需改变首个「defconst定义常数指令的值便可以了。

 


Load (读取指令

 

读取指令容许您指定文件名称以加入其它补充性的人工智能脚本档案,这样可以让您更容易进行整理的工作或将已编写的脚本另作他用。

 

脚本语言支持在人工智能脚本档案内读入其它人工智能脚本档案,被读取的档案在任何方面都和原脚本档无异。故此,所有的人工智能脚本档案被可被其它人工智能脚本档案读入。

 

句法:

 

(load "文件名称")

 

读取指令甚至可以加插在规则规则之间,例如:

 

(defrule ...........................)

(load "黑暗时代经济发展")

(defrule ...........................)

 

注意文件名称是不用输入完整路径或扩展名的,脚本译码器会自动为其加入路径与扩展名。被读取的脚本档案,应该放在和读取它的档案的同一个数据夹下。(如果您在该数据夹另行建立了副数据夹,并将被读取的脚本档案放入其中,则文件名称前面要输入「副数据夹名称\」。)

 

读取指令是实时执行的。当系统遇上一个读取指令时,原档案就会暂缓处理,直到读取指令完成为止。在那之后,读取指令以后的规则就会再延续剖析。

 

读取指令嵌套最高可以累积到十级(读入其它脚本档案)。 

 

读入高层脚本会令计算机游戏者变得模块化。只有在脚本档案本身没有任何重复的批判区域时,这种做法才有其价值。

 


Load Random (随机读取指令

 

随机读取指令是读取指令的变体,它容许您进行随机性的读入档案。这个指令可以作出比规则更高级的人工智能战略随机化。

 

句法:

 

(load-random  20 "文件名称1"

                     10 "文件名称2"

                     40 "文件名称3"

                     "文件名称4")

 

在上述的例子中, "文件名称1" 会有 20% 的机会被读取,而 "文件名称2"  10% 的机会, "文件名称3" 则有 40% 的机会;至于 "文件名称4" 将在这三个档案都没被读取时才被读入,故可谓是一个「预设档案」。 

 

由于每个档案共享同一组随机码,所以一个随机读取指令最多只会读取一个档案。

 

同时间,概率的和值绝对不可以超过 100 。当概率的和值为 100 时,「预设档案」会被忽略。

 

特殊案例 1

 

(load-random 

    20 "文件名称1"

    10 "文件名称2"

    40 "文件名称3"

)

 

虽然没有提供「预设档案」,可是这仍为一条有效句法。不过,这会导致有 30% 的机会下没有任何档案会被读取。

 

特殊案例 2

 

(load-random "文件名称")

 

虽然仅只提供「预设档案」,可是这仍为一条有效句法。由于系统每次执行此句法时都会读取这个「预设档案」,所以可以视之为读取指令的缓慢版本。

 


条件性读取

 

条件性读取使您可以基于游戏设定来读取不同的规则。这个系统和 C  C++ 语言译码器所提供的功能类似,而二者的分别在于:

 

a) 条件性读取机制与规则语法分析器在同一工作环境下进行,所以它并非一个译码器。

b) 条件性读取机制可以判断一条规则已被读取与否,但却不能判断它是否已经通过剖析。

 

后者的目标是要使句法检查工作能进行的更流畅;在任何的游戏设定下,单一脚本读取都会检查所有的句法错误。

 

系统提供了各种的符号来代表不同的游戏设定。透过检查这些符号,您可以更方便的决定人工智能脚本要读取哪一条的规则

 

条件性读取提供以下三种好处:

 

a) 能够组合各条针对不同游戏设定的规则到单一人工智能性格内。

b) 使规则可以更快被处理。例如对于一些只适用于海上地图的规则,系统不需要一直检查地图类型为何。 

c) 由于不附合相关游戏设定的规则将不会被读取,故可以节省内存空间。

 

 

条件性读取可以辨认以下四种指令:

 

   #load-if-defined <系统定义符号>(当 <系统定义符号成立时读取)

   #load-if-not-defined <系统定义符号>(当 <系统定义符号不成立时读取)

   #else(有别于上述状况时读取)

   #end-if条件性读取完结)

 

组合使用下,它们能筑成以下各种的架构:

 

架构 #1:

 

#load-if-defined <系统定义符号>

 

...... 于此定义规则

 

#end-if

 

架构 #2:

 

#load-if-not-defined <系统定义符号>

 

...... 于此定义规则

 

#end-if

 

架构 #3:

 

#load-if-defined <系统定义符号>

 

...... 于此定义规则

 

#else

 

...... 于此定义规则

 

#end-if

 

架构 #4:

 

#load-if-not-defined <系统定义符号>

 

...... define rules here

 

#else

 

...... define rules here

 

#end-if

 

以下例子会基于游戏难易度设定来读取一条规则:

 

#load-if-defined DIFFICULTY-EASIEST

(defrule

   (true)

   =>

   (chat-to-all "最易")

   (disable-self)

)

#end-if

技术性考虑

 

条件性读取指令最高可以筑成多至五十级的嵌套。

系统定义符号

 

系统定义符号分为以下两个种类:

 

1) 提供有关透过下拉式清单来选择的游戏设定之数据的符号。在这种情况下,符号群组内必定会有一个符号是符合定义的。例如在选择地图尺寸时,一定要从系统预先定义了的数种尺寸内选择一种。

 

2) 提供有关透过勾选方块来选择的游戏设定之数据的符号。在这种情况下,只有当勾选方块被勾选时,系统才会定义出一个相关的符号;否则的话,系统是不会定义符号的。例如在设定要否锁定队伍时,只可选择锁定队伍与否,没有第三个的选项。

 

每个系统定义符号都只会在某种范围内方可经作动:广域或内域。广域符号会由所有计算机游戏者共同分享使用,而内域符号则是由按游戏者来区分的。

 

广域符号的例子有「DEATH-MATCH」,当游戏种类设定为死斗模式时,所有计算机游戏者都可以侦测到它。

 

内域符号的例子有「JAPANESE-CIV」,只有在游戏者本身的文明为日本人时,它才会成立。

 

可用的系统定义符号计有:

 

游戏种类 

(广域,类型 1 

 

  DEATH-MATCH(死斗模式)

  REGICIDE(弒君游戏)

  KING-OF-THE-HILL(至尊王)

  WONDER-RACE(世界奇观竞赛)

  DEFEND-THE-WONDER(防御世界奇观)

 

开始时代

(广域,类型 1 

 

  DARK-AGE-START(黑暗时代)

  FEUDAL-AGE-START(封建时代)

  CASTLE-AGE-START(城堡时代)

  IMPERIAL-AGE-START(帝王时代)

  POST-IMPERIAL-AGE-START(后帝王时代)

 

开始资源

(广域,类型 1 

 

  LOW-RESOURCES-START(低)

  MEDIUM-RESOURCES-START(中)

  HIGH-RESOURCES-START(高)

 

地图尺寸 

(广域,类型 1 

 

  TINY-MAP(超小型 (2 名游戏者)

  SMALL-MAP(小型 (3 名游戏者)

  MEDIUM-MAP(中型 (4 名游戏者)

  NORMAL-MAP(一般型 (6 名游戏者)

  LARGE-MAP(大型 (8 名游戏者)

  GIANT-MAP(巨大)

 

地图类型

(广域,类型 1 

 

  ARABIA-MAP(阿拉伯)

  ARCHIPELAGO-MAP(爱琴海)

  ARENA-MAP(围城)

  BALTIC-MAP(波罗的海)

  BLACK-FOREST-MAP(黑森林)

  COASTAL-MAP(沿海地型)

  CONTINENTAL-MAP(大陆)

  CRATER-LAKE-MAP(火山湖)

  FORTRESS-MAP(要塞)

  GHOST-LAKE-MAP(幽灵湖)

  GOLD-RUSH-MAP(淘金潮)

  HIGHLAND-MAP(高原地型)

  ISLANDS-MAP(岛屿)

  MEDITERRANEAN-MAP(地中海)

  MIGRATION-MAP(移民)

  MONGOLIA-MAP(蒙古高原)

  NOMAD-MAP(牧地)

  OASIS-MAP (绿洲)

  REAL-WORLD-BYZANTIUM-MAP(真实世界:拜占庭)

  REAL-WORLD-CARIBBEAN-MAP(真实世界:中美洲)

  REAL-WORLD-ENGLAND-MAP(真实世界:不列颠)

  REAL-WORLD-FRANCE-MAP(真实世界:法兰西)

  REAL-WORLD-ITALY-MAP(真实世界:意大利)

  REAL-WORLD-JUTLAND-MAP(真实世界:挪威)

  REAL-WORLD-MIDEAST-MAP(真实世界:中东)

  REAL-WORLD-NIPPON-MAP(真实世界:日本海 (东海)

  REAL-WORLD-SPAIN-MAP(真实世界:伊比利亚)

  REAL-WORLD-TEXAS-MAP(真实世界:得克萨斯)

  RIVERS-MAP(河流)

  SALT-MARSH-MAP(盐沼地)

  SCANDINAVIA-MAP(斯堪的那维亚)

  TEAM-ISLANDS-MAP(群岛)

  SCENARIO-MAP(剧情)

  YUCATAN-MAP(犹加敦)

 

胜利条件

(广域,类型 1 

 

    VICTORY-STANDARD(标准游戏)

    VICTORY-CONQUEST(武力征服游戏)

    VICTORY-TIME-LIMIT(限时得分竞赛游戏)

    VICTORY-SCORE(指定积分游戏)

    VICTORY-CUSTOM(自订特殊胜利条件)

 

难易度

(广域,类型 1 

 

  DIFFICULTY-EASIEST(最易)

  DIFFICULTY-EASY(标准)

  DIFFICULTY-MODERATE(中)

  DIFFICULTY-HARD(难)

  DIFFICULTY-HARDEST(最难)

  

人口上限

(广域,类型 1 

 

  POPULATION-CAP-25 25 

  POPULATION-CAP-50 50 

  POPULATION-CAP-75 75 

  POPULATION-CAP-100 100 

  POPULATION-CAP-125 125 

  POPULATION-CAP-150 150 

  POPULATION-CAP-175 175 

  POPULATION-CAP-200 200 

 

锁定速度

(广域,类型 2 

 

  GAME-SPEED-LOCKED(锁定速度)

 

锁定队伍

(广域,类型 2 

 

  TEAMS-LOCKED(锁定队伍)

 

游戏者文明

(内域,类型 1 

 

  GAIA(大地之母)

  AZTEC-CIV(阿兹特克人)

  BRITON-CIV(不列颠人)

  BYZANTINE-CIV(拜占庭人)

  CELTIC-CIV(塞尔特人)

  CHINESE-CIV(中国人)

  FRANKISH-CIV(法兰克人)

  GOTHIC-CIV(哥德人)

  HUN-CIV(匈奴人)

  JAPANESE-CIV(日本人)

  KOREAN-CIV(韩国人)

  MAYAN-CIV(马雅人)

  MONGOL-CIV(蒙古人)

  PERSIAN-CIV(波斯人)

  SARACEN-CIV(萨拉森人)

  SPANISH-CIV(西班牙人)

  TEUTONIC-CIV(条顿人)

  TURKISH-CIV(土耳其人)

  VIKING-CIV(维京人)

例子

 

#load-if-defined BRITON-CIV

(defrule

  (true)

  =>

  (chat-to-all "我是不列颠人!")

  (disable-self)

)

#end-if

 

#load-if-defined TURKISH-CIV

(defrule

  (true)

  =>

  (chat-to-all "我是土耳其人!")

  (disable-self)

)

#end-if

 

#load-if-defined JAPANESE-CIV

(defrule

  (true)

  =>

  (chat-to-all "我是日本人!")

  (disable-self)

)

#end-if

 

条件性读取与使用者定义常数

 

如果能够有效地组合使用条件性读取使用者定义常数,便能够做出一些很强大的效果。其中一种就是参数定标:在不同的状况下,有关参数会被给予不同的数量。这种技巧可以令规则的数量大幅减少,并且令脚本码更为易读。

 

例子:

 

#load-if-defined DEATH-MATCH

  (defconst dark-age-villagers 6)

#else

  (defconst dark-age-villagers 22)

#end-if

 

在死斗模式游戏中,这组代码会把常数dark-age-villagers」的数量设为 6 ;而在其它游戏种类时,则会设为 22 

 

要留意的是,常数是不能被重新定义的。以下代码:

 

(defconst my-constant 1)

(defconst my-constant 2)

 

将会造成以下错误: 

 

ERR2012: Constant Already Defined: my-constant

(错误码2012:常数已定义:「my-constant」)

 

不过,如果定义常数指令内所定义的常数与其设定值是相同的话,则不会出现错误讯息。例如:

 

(defconst my-constant 1)

(defconst my-constant 1)

 


系统定义常数

 

对于每一名的计算机游戏者,系统会定义出一组的常数来使规则编写工作更加简单、快捷。这些系统定义常数包括:

 

my-player-number(游戏者编号)

( <游戏者编号中输入)

 

my-civ(游戏者文明)

( <文明中输入)

 

my-unique-unit(游戏者文明特殊单位)

( <单位中输入)

 

my-unique-unit-upgrade(游戏者文明特殊单位升级科技)

( <研发项目中输入)

 

my-elite-unique-unit(游戏者文明精锐特殊单位)

( <单位中输入)

 

my-unique-unit-line(游戏者文明特殊单位系列单位)

( <单位中输入)

 

my-unique-research(游戏者文明独特科技)

( <研发项目中输入)


事实

事实列表

true 30

false 30

attack-soldier-count  <关系运算子>  <数量> 30

attack-warboat-count  <关系运算子>  <数量> 30

building-available  <建筑物> 30

building-count  <关系运算子>  <数量> 30

building-count-total  <关系运算子>  <数量> 30

building-type-count  <建筑物> <关系运算子>  <数量> 31

building-type-count-total  <建筑物> <关系运算子>  <数量> 31

can-afford-building <建筑物> 31

can-afford-complete-wall <环形防线> <围墙> 31

can-afford-research <研发项目> 31

can-afford-unit <单位> 31

can-build <建筑物> 32

can-build-gate  <环形防线> 32

can-build-gate-with-escrow  <环形防线> 32

can-build-wall  <环形防线> <围墙> 32

can-build-wall-with-escrow <环形防线> <围墙> 32

can-build-with-escrow <建筑物> 33

can-buy-commodity <商品> 33

can-research <研发项目> 33

can-research-with-escrow <研发项目> 33

can-sell-commodity <商品> 33

can-spy 33

can-spy-with-escrow 34

can-train <单位> 34

can-train-with-escrow <单位> 34

cc-players-building-count  <游戏者编号>  <关系运算子>  <数量> 34

cc-players-building-type-count  <游戏者编号>  <建筑物> <关系运算子>  <数量> 34

cc-players-unit-count  <游戏者编号>  <关系运算子>  <数量> 35

cc-players-unit-type-count  <游戏者编号>  <单位>  <关系运算子>  <数量> 35

cheats-enabled 35

civ-selected  <文明> 35

civilian-population  <关系运算子>  <数量> 35

commodity-buying-price  <商品>  <关系运算子>  <数量> 35

commodity-selling-price  <商品>  <关系运算子>  <数量> 36

current-age  <关系运算子> <时代> 36

current-age-time  <关系运算子> <数量> 36

current-score  <关系运算子> <数量> 36

death-match-game 36

defend-soldier-count  <关系运算子> <数量> 36

defend-warboat-count  <关系运算子> <数量> 36

difficulty  <关系运算子> <难易度> 36

doctrine <数量> 37

dropsite-min-distance  <资源种类> <关系运算子>  <数量> 37

enemy-buildings-in-town 37

enemy-captured-relics 37

escrow-amount  <资源种类>  <关系运算子>  <数量> 37

event-detected  <事件类型> <事件编号> 37

food-amount <关系运算子>  <数量> 38

game-time  <关系运算子>  <数量> 38

game-type  <游戏种类> 38

goal <目标编号> <数量> 38

gold-amount  <关系运算子>  <数量> 38

housing-headroom  <关系运算子>  <数量> 38

idle-farm-count  <关系运算子>  <数量> 39

map-size <地图大小> 39

map-type <地图种类> 39

military-population  <关系运算子>  <数量> 39

player-computer <游戏者编号> 39

player-human <游戏者编号> 39

player-in-game  <游戏者编号> 39

player-number  <游戏者编号> 40

player-resigned <游戏者编号> 40

player-valid  <游戏者编号> 40

players-achievements  <游戏者编号> 40

players-building-count  <游戏者编号>  <关系运算子>  <数量> 40

players-building-type-count  <游戏者编号>  <建筑物> <关系运算子>  <数量> 40

players-civ  <游戏者编号> <文明> 41

players-civilian-population  <游戏者编号> <关系运算子>  <数量> 41

players-current-age  <游戏者编号> <关系运算子> <时代> 41

players-current-age-time  <游戏者编号> <关系运算子> <数量> 41

players-military-population  <游戏者编号> <关系运算子>  <数量> 41

players-population  <游戏者编号> <关系运算子>  <数量> 41

players-score  <游戏者编号> <关系运算子> <积分> 41

players-stance  <游戏者编号> <外交策略> 42

players-tribute  <游戏者编号> <资源种类> <关系运算子> <数量> 42

players-tribute-memory  <游戏者编号> <资源种类> <关系运算子> <数量> 42

players-unit-count  <游戏者编号>  <关系运算子>  <数量> 42

players-unit-type-count  <游戏者编号>  <单位>  <关系运算子>  <数量> 42

population  <关系运算子>  <数量> 42

population-cap  <关系运算子>  <数量> 43

population-headroom  <关系运算子>  <数量> 43

random-number  <关系运算子>  <数量> 43

regicide-game 43

research-available  <研发项目> 43

research-completed  <研发项目> 43

resource-found  <资源种类> 43

shared-goal <共享目标编号> <数量> 44

sheep-and-forage-too-far 44

soldier-count  <关系运算子>  <数量> 44

stance-toward <游戏者编号> <外交策略> 44

starting-age <关系运算子> <时代> 44

starting-resources <关系运算子> <开始资源> 44

stone-amount  <关系运算子>  <数量> 44

strategic-number  <策略值>  <关系运算子>  <数量> 45

taunt-detected <游戏者编号> <语音指令值> 45

timer-triggered <定时器编号> 45

town-under-attack 45

unit-available <单位> 45

unit-count  <关系运算子>  <数量> 45

unit-count-total  <关系运算子>  <数量> 46

unit-type-count  <单位> <关系运算子>  <数量> 46

unit-type-count-total  <单位> <关系运算子>  <数量> 46

victory-condition  <胜利条件> 46

wall-completed-percentage  <环形防线> <关系运算子>  <数量> 46

wall-invisible-percentage  <环形防线> <关系运算子>  <数量> 46

warboat-count  <关系运算子>  <数量> 47

wood-amount  <关系运算子>  <数量> 47

 

恒等事实

true(成立)

false(不成立)

事件检查事实

event-detected(接收到人工智能触发事件设定目标)

taunt-detected(接收到语音指令)

timer-triggered(定时器完成)

游戏事实

cheats-enabled(允许使用秘技)

death-match-game(死斗模式)

difficulty(难易度)

game-time(游戏时间)

game-type(游戏种类)

map-size(地图尺寸)

map-type(地图类型)

player-computer(计算机游戏者)

player-human(人类游戏者)

player-in-game(存活游戏者)

player-resigned(弃权游戏者)

player-valid(有效游戏者)

population-cap(人口上限)

regicide-game(弒君游戏)

starting-age(开始时代)

starting-resources(开始资源)

victory-condition(胜利条件)

商业贸易事实

can-buy-commodity(可买进商品)

can-sell-commodity(可卖出商品)

commodity-buying-price(商品买进价格)

commodity-selling-price(商品卖出价格)

贡品检查事实

players-tribute(游戏者贡品)

players-tribute-memory(游戏者贡品记忆)

贡品资源事实

can-build-gate-with-escrow(可以贡品资源建造城门)

can-build-wall-with-escrow(可以贡品资源建造围墙)

can-build-with-escrow(可以贡品资源建造建筑物)

can-research-with-escrow(可以贡品资源研发科技)

can-spy-with-escrow(可以贡品资源研发间谍/叛国者)

can-train-with-escrow(可以贡品资源生产单位)

escrow-amount(贡品资源储存量)

计算机游戏者物品计算事实

attack-soldier-count(攻击部队士兵数量)

attack-warboat-count(攻击部队战船数量)

building-count(建筑物数量)

building-count-total(全部建筑物数量)

building-type-count(建筑物类别数量)

building-type-count-total(全部建筑物类别数量)

civilian-population(文明单位数量)

defend-soldier-count(防御部队士兵数量)

defend-warboat-count(防御部队战船数量)

housing-headroom(现有的单位余额)

idle-farm-count(闲置农田数量)

military-population(军事单位数量)

population(现在人口数量)

population-headroom(可容纳之单位余额)

soldier-count(士兵数量)

unit-count(单位数量)

unit-count-total(全部单位数量)

unit-type-count(单位类别数量)

unit-type-count-total(全部单位类别数量)

warboat-count(战船数量)

计算机游戏者资源事实

dropsite-min-distance(储存所最低距离)

food-amount(食物储存量)

gold-amount(黄金储存量)

resource-found(找到资源)

sheep-and-forage-too-far(找不到绵羊及果树丛)

stone-amount(石头储存量)

wood-amount(木材储存量)

弒君游戏事实

can-spy(可研发间谍/叛国者)

计算机游戏者可行性事实

building-available(建筑物可用)

can-afford-building(拥有建造建筑物资源)

can-afford-complete-wall(拥有建造围墙资源)

can-afford-research(拥有研发科技资源)

can-afford-unit(拥有生产单位资源)

can-build(可建造建筑物)

can-build-gate(可建造城门)

can-build-wall(可建造围墙)

can-research(可研发科技)

can-train(可生产单位)

research-available(研发科技可用)

research-completed(科技研发)

unit-available(单位可用)

wall-completed-percentage(建造围墙完成百分比)

wall-invisible-percentage(围墙不可视百分比)

计算机游戏者其它事实

civ-selected(选择文明)

current-age(现在时代)

current-age-time(现在时代停留时间)

current-score(现在积分)

doctrine(条义)

enemy-buildings-in-town(城镇中有敌对建筑物)

enemy-captured-relics(敌对游戏者寻获所有的遗迹)

goal(目标)

player-number(游戏者编号)

random-number(随机数)

shared-goal(共享目标)

stance-toward(外交策略)

strategic-number(策略值)

town-under-attack(城镇受到攻击)

对手事实

players-achievements(?)

players-building-count(游戏者建筑物数量)

players-building-type-count(游戏者建筑物类别数量)

players-civ(游戏者文明)

players-civilian-population(游戏者文明单位数量)

players-current-age(游戏者现在时代)

players-current-age-time(游戏者现在时代停留时间)

players-military-population(游戏者军事单位数量)

players-population(游戏者现在人口数量)

players-score(游戏者积分)

players-stance(游戏者外交策略)

(defrule

    (current-age >= castle-age)

    (unit-type-count-total trade-cart < 6)

    (can-train trade-cart)

=>

    (train trade-cart)

)(游戏者单位数量)

players-unit-type-count(游戏者单位类别数量)

作弊事实

cc-players-building-count(游戏者建筑物绝对数量)

cc-players-building-type-count(游戏者建筑物类别绝对数量)

cc-players-unit-count(游戏者单位绝对数量)

cc-players-unit-type-count(游戏者单位类别绝对数量)

     

事实详述

true

成立:

 

一定成立的事实,通常用作测试用途。

 

false

不成立:

 

一定不会成立的事实,通常用作测试用途。.

 

attack-soldier-count  <关系运算子>  <数量>

攻击部队士兵数量:

 

这个事实检查计算机游戏者攻击部队士兵 <数量。攻击部队士兵是指当时被编入攻击部队的陆上军事单位。

 

attack-warboat-count  <关系运算子>  <数量>

攻击部队战船数量:

 

这个事实检查计算机游戏者攻击部队战船 <数量。攻击部队战船是指当时被编入攻击部队的水上军事单位。

 

building-available  <建筑物>

建筑物可用:

 

这个事实检查计算机游戏者文明科技树形图有否该类 <建筑物

这个事实检查计算机游戏者在当时该类 <建筑物的相关建筑或研发项目要求达到与否。 

这个事实不会检查计算机游戏者有否足够资源建造该类 <建筑物

这个事实允许使用 <建筑物百搭参数

 

building-count  <关系运算子>  <数量>

建筑物数量:

 

这个事实检查计算机游戏者已建造建筑物的 <数量

 

building-count-total  <关系运算子>  <数量>

全部建筑物数量:

 

这个事实检查计算机游戏者已建造建筑物和建造中建筑物的 <数量

 

building-type-count  <建筑物> <关系运算子>  <数量>

建筑物类别数量:

 

这个事实检查计算机游戏者已建造的该类 <建筑物 <数量

这个事实允许使用 <建筑物百搭参数

 

building-type-count-total  <建筑物> <关系运算子>  <数量>

全部建筑物类别数量:

 

这个事实检查计算机游戏者已建造的该类 <建筑物和建造中的该类 <建筑物 <数量

这个事实允许使用 <建筑物百搭参数

 

can-afford-building <建筑物>

拥有建造建筑物资源:

 

这个事实检查计算机游戏者有否足够资源建造该类 <建筑物

这个事实不会计算计算机游戏者的贡品资源。

这个事实允许使用 <建筑物百搭参数

 

can-afford-complete-wall <环形防线> <围墙>

拥有建造围墙资源:

 

这个事实检查计算机游戏者有否足够资源在该 <环形防线范围完成建造该类 <围墙 

这个事实检查计算机游戏者文明科技树形图有否该类 <围墙

这个事实检查计算机游戏者在当时该类 <围墙的相关建筑或研发项目要求达到与否。

这个事实不会计算计算机游戏者的贡品资源。

这个事实允许使用 <围墙百搭参数

 

can-afford-research <研发项目>

拥有研发科技资源:

 

这个事实检查计算机游戏者有否足够资源研发该类 <研发项目

这个事实不会计算计算机游戏者的贡品资源。

 

can-afford-unit <单位>

拥有生产单位资源:

 

这个事实检查计算机游戏者有否足够资源生产该类 <单位

这个事实不会计算计算机游戏者的贡品资源。

这个事实允许使用 <单位百搭参数

 

 

can-build <建筑物>

可建造建筑物:

 

这个事实检查计算机游戏者有否足够资源建造该类 <建筑物

这个事实检查计算机游戏者文明科技树形图有否该类 <建筑物

这个事实检查计算机游戏者在当时该类 <建筑物的相关建筑或研发项目要求达到与否。

这个事实不会计算计算机游戏者的贡品资源。

这个事实允许使用 <建筑物百搭参数

 

can-build-gate  <环形防线>

可建造城门:

 

这个事实检查计算机游戏者能否在该 <环形防线范围内的围墙建造城门。

这个事实检查计算机游戏者有否足够资源建造城门。

这个事实检查计算机游戏者文明科技树形图有否城门。

这个事实检查计算机游戏者在当时城门的相关建筑或研发项目要求达到与否。

这个事实不会计算计算机游戏者的委付资源。

这个事实检查在该 <环形防线范围有否足够空间建造城门。

 

can-build-gate-with-escrow  <环形防线>

可以贡品资源建造城门:

 

这个事实检查计算机游戏者能否在该 <环形防线范围内的围墙建造城门。

这个事实检查计算机游戏者有否足够资源建造城门。

这个事实检查计算机游戏者文明科技树形图有否城门。

这个事实检查计算机游戏者在当时城门的相关建筑或研发项目要求达到与否。

这个事实检查在该 <环形防线范围有否足够空间建造城门。

 

can-build-wall  <环形防线> <围墙>

可建造围墙:

 

这个事实检查计算机游戏者有否足够资源在该 <环形防线范围完成建造该类 <围墙 

这个事实检查计算机游戏者文明科技树形图有否该类 <围墙

这个事实检查计算机游戏者在当时该类 <围墙的相关建筑或研发项目要求达到与否。

这个事实不会计算计算机游戏者的贡品资源。

这个事实检查在该 <环形防线范围有否足够空间建造 <围墙

这个事实允许使用 <围墙百搭参数

 

can-build-wall-with-escrow <环形防线> <围墙>

可以贡品资源建造围墙:

 

这个事实检查计算机游戏者有否足够资源在该 <环形防线范围完成建造该类 <围墙 

这个事实检查计算机游戏者文明科技树形图有否该类 <围墙

这个事实检查计算机游戏者在当时该类 <围墙的相关建筑或研发项目要求达到与否。

这个事实检查在该 <环形防线范围有否足够空间建造 <围墙

这个事实允许使用 <围墙百搭参数

 

can-build-with-escrow <建筑物>

可以贡品资源建造建筑物:

 

这个事实检查计算机游戏者有否足够资源建造该类 <建筑物

这个事实检查计算机游戏者文明科技树形图有否该类 <建筑物

这个事实检查计算机游戏者在当时该类 <建筑物的相关建筑或研发项目要求达到与否。

这个事实允许使用 <建筑物百搭参数

 

can-buy-commodity <商品>

可买进商品:

 

这个事实检查计算机游戏者有否足够黄金买进 100 单位的 <商品

这个事实不会计算计算机游戏者的贡品资源。

 

can-research <研发项目>

可研发科技:

 

这个事实检查计算机游戏者有否足够资源研发该类 <研发项目

这个事实检查计算机游戏者文明科技树形图有否该类 <研发项目>  

这个事实检查计算机游戏者在当时该类 <研发项目的相关研发项目要求达到与否。

这个事实检查计算机游戏者有否空闲建筑物研发该类 <研发项目

这个事实不会计算计算机游戏者的贡品资源。

 

can-research-with-escrow <研发项目>

可以贡品资源研发科技

 

这个事实检查计算机游戏者有否足够资源研发该类 <研发项目

这个事实检查计算机游戏者文明科技树形图有否该类 <研发项目>  

这个事实检查计算机游戏者在当时该类 <研发项目的相关研发项目要求达到与否。

这个事实检查计算机游戏者有否空闲建筑物研发该类 <研发项目

 

can-sell-commodity <商品>

可卖出商品:

 

这个事实检查计算机游戏者有否足够 100 单位的该类 <商品卖出。

这个事实不会计算计算机游戏者的贡品资源。

 

can-spy

可研发间谍/叛国者:

 

这个事实检查计算机游戏者有否足够黄金研发间谍/叛国者。

这个事实检查计算机游戏者文明科技树形图有否间谍/叛国者。

这个事实检查计算机游戏者有否空闲城堡研发间谍/叛国者。

这个事实不会计算计算机游戏者的贡品资源。

can-spy-with-escrow

可研发间谍/叛国者:

 

这个事实检查计算机游戏者有否足够黄金研发间谍/叛国者。

这个事实检查计算机游戏者文明科技树形图有否间谍/叛国者。

 

can-train <单位>

可生产单位:

 

这个事实检查计算机游戏者有否足够资源生产该类 <单位

这个事实检查计算机游戏者文明科技树形图有否该类 <单位

这个事实检查计算机游戏者在当时该类 <单位的相关研发项目要求达到与否。

这个事实检查计算机游戏者有否空闲建筑物生产该类 <单位

这个事实检查计算机游戏者有否足够可容纳之单位余额生产该类 <单位

这个事实不会计算计算机游戏者的贡品资源。

这个事实允许使用 <单位百搭参数

 

can-train-with-escrow <单位>

可以贡品资源生产单位:

 

这个事实检查计算机游戏者有否足够资源生产该类 <单位

这个事实检查计算机游戏者文明科技树形图有否该类 <单位

这个事实检查计算机游戏者在当时该类 <单位的相关研发项目要求达到与否。

这个事实检查计算机游戏者有否空闲建筑物生产该类 <单位

这个事实检查计算机游戏者有否足够可容纳之单位余额生产该类 <单位

这个事实不会计算计算机游戏者的贡品资源。

这个事实允许使用 <单位百搭参数

 

cc-players-building-count  <游戏者编号>  <关系运算子>  <数量>

游戏者建筑物绝对数量:

 

事实players-building-count」的作弊版本。通常用于剧情游戏之中。

这个事实检查 <游戏者编号的游戏者已建造建筑物和建造中建筑物的 <数量。战雾及建筑物的可视与否不会影响运算。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

cc-players-building-type-count  <游戏者编号>  <建筑物> <关系运算子>  <数量>

游戏者建筑物类别绝对数量:

 

事实players-building-type-count」的作弊版本。通常用于剧情游戏之中。

这个事实检查 <游戏者编号的游戏者已建造的该类 <建筑物和建造中的该类 <建筑物 <数量。战雾及该类 <建筑物的可视与否不会影响运算。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

这个事实允许使用 <建筑物百搭参数

 

cc-players-unit-count  <游戏者编号>  <关系运算子>  <数量>

游戏者单位绝对数量:

 

事实players-unit-count」的作弊版本。通常用于剧情游戏之中。

这个事实检查 <游戏者编号的游戏者单位的 <数量。战雾及单位的可视与否不会影响运算。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

cc-players-unit-type-count  <游戏者编号>  <单位>  <关系运算子>  <数量>

游戏者单位类别绝对数量:

 

事实players-unit-type-count」的作弊版本。通常用于剧情游戏之中。

这个事实检查 <游戏者编号的游戏者该类 <单位 <数量。战雾及单位的可视与否不会影响运算。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

这个事实允许使用 <单位百搭参数

 

cheats-enabled 

允许使用秘技:

 

这个事实检查游戏允许使用秘技与否。

 

civ-selected  <文明

选择文明:

 

这个事实检查计算机游戏者所选择的 <文明

 

civilian-population  <关系运算子>  <数量>                                                           

文明单位数量:

 

这个事实检查计算机游戏者的文明单位的 <数量。文明单位包括村民、贸易车队、贸易商旅、渔船等。

 

commodity-buying-price  <商品>  <关系运算子>  <数量>                                                           

商品买进价格:

 

这个事实检查该类 <商品的买进价格 <数量

 

commodity-selling-price  <商品>  <关系运算子>  <数量>              

商品卖出价格:

 

这个事实检查该类该类 <商品的卖出价格 <数量

 

current-age  <关系运算子> <时代>

现在时代:

 

这个事实检查计算机游戏者现在演进至的 <时代

 

current-age-time  <关系运算子> <数量>

现在时代停留时间:

 

这个事实检查计算机游戏者现在演进至的时代停留的时间 <数量

 

current-score  <关系运算子> <数量>

现在积分:

 

这个事实检查计算机游戏者现在的积分 <数量

 

death-match-game                                                                         

死斗模式:

 

这个事实检查游戏种类是否死斗模式。

 

defend-soldier-count  <关系运算子> <数量>

防御部队士兵数量:

 

这个事实检查计算机游戏者防御部队士兵 <数量。防御部队士兵是指当时未被编入攻击部队的陆上军事单位。

 

defend-warboat-count  <关系运算子> <数量>

防御部队战船数量:

 

这个事实检查计算机游戏者防御部队战船 <数量。防御部队战船是指当时未被编入攻击部队的水上军事单位。

 

difficulty  <关系运算子> <难易度>                                                                         

难易度:

 

这个事实检查游戏的 <难易度

 

doctrine <数量>                                                                         

条义:

 

这个事实检查现在的条义 <数量

 

dropsite-min-distance  <资源种类> <关系运算子>  <数量>

储存所最低距离:

 

这个事实检查计算机游戏者储存所和该 <资源种类资源点的最低距离 <数量。太长的距离表示计算机游戏者需要建造一个新的、更接近资源点的储存所。

这个事实不宜在计算机游戏者首次建设储存所时使用,以免阻碍其时代演进。因为当该 <资源种类资源点距离城镇中心很接近的时候,计算机游戏者便会延迟建造储存所,导致时代演进进度减慢。

 

enemy-buildings-in-town                                                                         

城镇中有敌对建筑物:

 

这个事实检查计算机游戏者的城镇范围中有否敌对建筑物。

城镇范围是以策略值sn-minimum-town-size」及「sn-maximum-town-size」来定义的。

 

enemy-captured-relics                                                                         

敌对游戏者寻获所有的遗迹:

 

这个事实检查敌对游戏者是否寻获所有的遗迹。

当这个事实成立时,战略人工智能就会自动以修道院及僧侣为攻击目标。

利用这个事实可以加强攻势,也可搭配动作attack-now」来强制要求计算机游戏者攻击。

 

escrow-amount  <资源种类>  <关系运算子>  <数量>                                                                         

贡品资源储存量:

 

这个事实检查计算机游戏者该 <资源种类的贡品储存 <数量

 

event-detected  <事件类型> <事件编号>                                                                         

接收到人工智能触发事件设定目标:

 

这个事实检查计算机游戏者有否接收到对该 <事件类型设定 <事件编号的目标。

在被动作acknowledge-event」重设前,这个事实一直都会成立。

 

 

 

 

food-amount <关系运算子> <数量>                                                                         

食物储存量:

 

这个事实检查计算机游戏者食物的储存 <数量

这个事实不会计算计算机游戏者的贡品资源。

 

game-time  <关系运算子>  <数量>

游戏时间:

 

这个事实检查游戏时间定时器秒的 <数量

这个事实可以使规模随特定时间而生效。例如:一个计算机游戏者可在游戏时间 15 分钟后变得更具攻击性的。

 

game-type  <游戏种类>

游戏种类:

 

这个事实检查游戏设定 <游戏种类

 

goal <目标编号> <数量>                                                                         

目标:

 

这个事实检查计算机游戏者该 <目标编号的目标之 <数量

 

gold-amount  <关系运算子>  <数量>

黄金储存量:

 

这个事实检查计算机游戏者黄金的储存 <数量

这个事实不会计算计算机游戏者的贡品资源。

 

housing-headroom  <关系运算子>  <数量>

现有的单位余额:

 

这个事实检查计算机游戏者现有的单位余额 <数量

现有的单位余额是指现在人口上限与现在人口的差额。例如:一个计算机游戏者拥有一个城镇中心(可容纳之单位数量为 5 )、一幢居住房舍(可容纳之单位数量为 5 )及 6 个村民,此时它现有的单位余额就是 10 - 4 = 6 

 

 

 

 

 

 

 

idle-farm-count  <关系运算子>  <数量>

闲置农田数量:

 

这个事实检查计算机游戏者闲置农田的 <数量

闲置农田是指没有农夫工作的农田。

在建造新的农田前,最好是以这个事实来检查有否这个必要。

map-size <地图大小>                                                                                        

地图尺寸:

 

这个事实检查游戏设定 <地图大小

 

map-type <地图种类>                                                                                       

地图类型:

 

这个事实检查游戏设定 <地图类型

 

military-population  <关系运算子>  <数量>                                                           

军事单位数量:

 

这个事实检查计算机游戏者的军事单位的 <数量

player-computer <游戏者编号>

计算机游戏者:

 

这个事实检查 <游戏者编号的游戏者是否计算机游戏者。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

player-human <游戏者编号>

人类游戏者:

 

这个事实检查 <游戏者编号的游戏者是否人类游戏者。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

player-in-game  <游戏者编号>

存活游戏者:

 

这个事实检查 <游戏者编号的游戏者是否一个有效的游戏者且未被击败。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

 

 

 

 

player-number  <游戏者编号>

游戏者编号:

 

这个事实检查计算机游戏者是否 <游戏者编号的游戏者。

 

player-resigned <游戏者编号>

弃权游戏者:

 

这个事实检查 <游戏者编号的游戏者是否一个有效的游戏者且已经弃权。

注意一个游戏者可以在不弃权的场合下被撃败。如果您想检查一个游戏者是否已经被击败,最好改用事实 (not (player-in-game <游戏者编号>)) 」。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

player-valid  <游戏者编号>

有效游戏者:

 

这个事实检查 <游戏者编号的游戏者是否一个有效的游戏者。

在一个多于 2 个游戏者的游戏中,于游戏结束前被击败的游戏者亦是一个有效的游戏者。虽然这个游戏者未必留在游戏中,但他的建筑物与单位可能仍然存活在地图之上。如果您想检查一个游戏者是否未被击败,最好改用事实player-in-game」。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

players-achievements  <游戏者编号>

 

这个事实取消使用。效果不明。

 

players-building-count  <游戏者编号>  <关系运算子>  <数量>

游戏者建筑物数量:

 

这个事实检查 <游戏者编号的游戏者已建造建筑物和建造中建筑物的 <数量。计算机游戏者不会作弊,故只有不被战雾掩盖而又可视的建筑物会被计算在内。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

players-building-type-count  <游戏者编号>  <建筑物> <关系运算子>  <数量>

游戏者建筑物类别数量:

 

这个事实检查 <游戏者编号的游戏者已建造该类 <建筑物和建造中该类 <建筑物 <数量。计算机游戏者不会作弊,故只有不被战雾掩盖而又可视的该类 <建筑物会被计算在内。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

这个事实允许使用 <建筑物百搭参数

 

 

 

players-civ  <游戏者编号> <文明>

游戏者文明:

 

这个事实检查 <游戏者编号的游戏者所选择的 <文明

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

players-civilian-population  <游戏者编号> <关系运算子>  <数量>

游戏者文明单位数量:

 

这个事实检查 <游戏者编号的游戏者的文明单位的 <数量

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

players-current-age  <游戏者编号> <关系运算子> <时代>

游戏者现在时代:

 

这个事实检查  <游戏者编号的游戏者现在演进至的 <时代

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

players-current-age-time  <游戏者编号> <关系运算子> <数量>

游戏者现在时代停留时间:

 

这个事实检查  <游戏者编号的游戏者现在演进至的时代停留的时间 <数量

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

players-military-population  <游戏者编号> <关系运算子>  <数量>

游戏者军事单位数量:

 

这个事实检查 <游戏者编号的游戏者的军事单位的 <数量

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

players-population  <游戏者编号> <关系运算子>  <数量>                              

游戏者现在人口数量:

 

这个事实检查 <游戏者编号的游戏者的现在人口 <数量

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

players-score  <游戏者编号> <关系运算子> <积分>

游戏者积分:

 

这个事实检查 <游戏者编号的游戏者现在的积分 <数量

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

players-stance  <游戏者编号> <外交策略>

游戏者外交策略:

 

这个事实检查 <游戏者编号的游戏者对计算机游戏者的 <外交策略

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

players-tribute  <游戏者编号> <资源种类> <关系运算子> <数量>

游戏者贡品:

 

这个事实检查 <游戏者编号的游戏者在整个游戏期间,曾进贡给计算机游戏者的该 <资源种类 <数量

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

players-tribute-memory  <游戏者编号> <资源种类> <关系运算子> <数量>

游戏者贡品记忆:

 

这个事实检查 <游戏者编号的游戏者在上次清除贡品记忆后,曾进贡给计算机游戏者的该 <资源种类 <数量 清除贡品记忆是透过动作clear-tribute-memory」来进行的。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

players-unit-count  <游戏者编号>  <关系运算子>  <数量>

游戏者单位数量:

 

这个事实检查 <游戏者编号的游戏者单位的 <数量。计算机游戏者不会作弊,故只有不被战雾掩盖而又可视的单位会被计算在内。

对于同盟游戏者及计算机游戏者自身的单位,只会计算已生产单位。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

players-unit-type-count  <游戏者编号>  <单位>  <关系运算子>  <数量>

游戏者单位类别数量:

 

这个事实检查 <游戏者编号的游戏者该类 <单位 <数量。计算机游戏者不会作弊,故只有不被战雾掩盖而又可视的者该类 <单位会被计算在内。

对于同盟游戏者及计算机游戏者自身的单位,只会计算已生产的该类 <单位

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

这个事实允许使用 <单位百搭参数

 

population  <关系运算子>  <数量>                                                                     

现在人口数量:

 

这个事实检查计算机游戏者的现在人口 <数量

 

 

population-cap  <关系运算子>  <数量>                                                               

人口上限:

 

这个事实检查游戏设定人口上限 <数量

 

population-headroom  <关系运算子>  <数量>

可容纳之单位余额:

 

这个事实检查计算机游戏者的可容纳之单位余额 <数量

现有的单位余额是指现在人口上限与已生产单位数量的差额。例如:当游戏设定人口上限为 75 时,一个计算机游戏者拥有一个城镇中心(可容纳之单位数量为 5 )和一幢居住房舍(可容纳之单位数量为 5 ),此时它可容纳之单位余额就是 75 - (5 + 5) = 65 

 

random-number  <关系运算子>  <数量>                                                               

随机数:

 

这个事实检查随机数的 <数量

随机数可透过动作generate-random-number」来设定。

 

regicide-game

弒君游戏:

 

这个事实检查游戏种类是否弒君游戏。

 

research-available  <研发项目>

研发科技可用:

 

这个事实检查计算机游戏者文明科技树形图有否该类 <研发项目

这个事实检查计算机游戏者在当时该类 <研发项目的相关研发项目要求达到与否。 

这个事实不会检查计算机游戏者有否足够资源研发该类 <研发项目

 

research-completed  <研发项目>

科技研发:

 

这个事实检查计算机游戏者是否已经研发完成该类 <研发项目

 

resource-found  <资源种类>

找到资源:

 

这个事实检查计算机游戏者是否已经找到该 <资源种类资源点。

在找到该 <资源种类资源点后,这个事实就会一直保持成立。故此,在游戏开始时便应该立即使用这个事实,否则将对计算机游戏者收集资源的工作构成影响。

在这个事实中,食物资源点代表果树丛,而木材资源点代表树林(而非单一棵树)。

 

shared-goal <共享目标编号> <数量>

共享目标:

 

这个事实检查该 <共享目标编号的共享目标之 <数量

共享目标是一个由所有计算机游戏者共享的目标,只于所有计算机游戏者都在同一队伍中时生效。

 

sheep-and-forage-too-far

找不到绵羊及果树丛:

 

这个事实检查计算机游戏者在食物储存所(磨坊或城镇中心)附近的 8 格范围是否找不到任何的果树丛、绵羊或火鸡。

soldier-count  <关系运算子>  <数量>

士兵数量:

 

这个事实检查计算机游戏者的士兵 <数量。士兵是指所有的陆上军事单位。

 

stance-toward <游戏者编号> <外交策略>

外交策略:

 

这个事实检查计算机游戏者对 <游戏者编号的游戏者的 <外交策略

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

 

starting-age <关系运算子> <时代>

开始时代:

 

这个事实检查游戏设定的开始 <时代

在本事实中, <时代参数也可设成「post-imperial-age」。

starting-resources <关系运算子> <开始资源>

开始资源:

 

这个事实检查游戏设定的 <开始资源(低、中或高)。

 

stone-amount  <关系运算子>  <数量>

石头储存量:

 

这个事实检查计算机游戏者石头的储存 <数量

这个事实不会计算计算机游戏者的贡品资源。

 

strategic-number  <策略值>  <关系运算子>  <数量>

策略值:

 

这个事实检查计算机游戏者 <策略值 <数量

 

taunt-detected <游戏者编号> <语音指令值>

接收到语音指令:

 

这个事实检查计算机游戏者是否接收到来自 <游戏者编号的游戏者的一个以 <语音指令值起首的交谈讯息。

在被动作acknowledge-event」重设前,这个事实一直都会成立。

这个事实允许使用 <游戏者编号的「any-」及「every-百搭参数

以下例子可以检查由敌对游戏者(人类或计算机)对食物的要求指令:

 

(defrule

   (taunt-detected any-enemy 3)

   =>

   (acknowledge-taunt this-any-enemy 3)

   (chat-to-player this-any-enemy "我才没有要给你的食物!")

)

 

timer-triggered <定时器编号>

定时器完成:

 

这个事实检查 <定时器编号的定时器是否已经完成计时。对于被关闭或未开启的定时器,这个事实是不成立的。

在被动作disable-timer」关闭前,这个事实可以一直进行对定时器的检查作业。

 

town-under-attack

城镇受到攻击:

 

这个事实会在计算机游戏者的城镇受到攻击时成立。

城镇范围是以策略值sn-minimum-town-size」及「sn-maximum-town-size」来定义的。

 

unit-available <单位>

单位可用:

 

这个事实检查计算机游戏者文明科技树形图有否该类 <单位

这个事实检查计算机游戏者在当时该类 <单位的相关研发项目要求达到与否。 

这个事实不会检查计算机游戏者有否足够资源生产该类 <单位

这个事实允许使用 <单位百搭参数

 

unit-count  <关系运算子>  <数量>

单位数量:

 

这个事实检查计算机游戏者已生产单位的 <数量

 

unit-count-total  <关系运算子>  <数量>

全部单位数量:

 

这个事实检查计算机游戏者已生产单位和生产中单位的 <数量

 

unit-type-count  <单位> <关系运算子>  <数量>

单位类别数量:

 

这个事实检查计算机游戏者已生产的该类 <单位 <数量

这个事实允许使用 <单位百搭参数。

 

unit-type-count-total  <单位> <关系运算子>  <数量>

全部单位类别数量:

 

这个事实检查计算机游戏者已生产的该类 <单位和生产中的该类 <单位 <数量

这个事实允许使用 <单位百搭参数。

 

victory-condition  <胜利条件>                                                        

胜利条件:

 

这个事实检查游戏的 <胜利条件

 

wall-completed-percentage  <环形防线> <关系运算子>  <数量>

建造围墙完成百分比:

 

这个事实检查在该 <环形防线范围的围墙之完成百分比的 <数量。树木与其它可破坏的大地之母自然障碍物亦会被视为己完成围墙的一部分。

 

wall-invisible-percentage  <环形防线> <关系运算子>  <数量>

围墙不可视百分比:

 

这个事实检查在该 <环形防线范围预计的围墙建造在线,被战雾掩盖的区域之百分比的 <数量

例子:

 

(defrule

(wall-completed-percentage 1 < 100)   围墙并非全部建造完成

(wall-invisible-percentage 1 == 0) 环形防线范围全部可视

      =>

(chat-local "发现围墙漏洞!")

)

 

留意当围墙不可视百分比并不等于 0 时,我们是无法得知围墙有否存在漏洞。这是由为该被战雾掩盖的区域可能会有树木或其它障碍物。

 

warboat-count  <关系运算子>  <数量>

战船数量:

 

这个事实检查计算机游戏者战船的 <数量。战船是具攻击力的水上军事单位。

 

wood-amount  <关系运算子>  <数量>

木材储存量:

 

这个事实检查计算机游戏者木材的储存 <数量

这个事实不会计算计算机游戏者的贡品资源。

 


动作

动作列表

do-nothing 53

acknowledge-event  <事件类型> <事件编号> 53

acknowledge-taunt  <游戏者编号> <语音指令值> 53

attack-now 53

build  <建筑物> 53

build-forward  <建筑物> 53

build-gate  <环形防线> 54

build-wall  <环形防线> <围墙> 54

buy-commodity  <商品> 54

cc-add-resource <资源种类> <数量> 54

chat-local <字符串> 54

chat-local-using-id <字符串表号码> 54

chat-local-using-range <字符串表号码范围起始值> <字符串表号码范围> 54

chat-local-to-self <字符串> 55

chat-to-all <字符串> 55

chat-to-all-using-id <字符串表号码> 55

chat-to-all-using-range <字符串表号码范围起始值> <字符串表号码范围> 55

chat-to-allies <字符串> 55

chat-to-allies-using-id <字符串表号码> 55

chat-to-allies-using-range <字符串表号码范围起始值> <字符串表号码范围> 56

chat-to-enemies <字符串> 56

chat-to-enemies-using-id <字符串表号码> 56

chat-to-enemies-using-range <字符串表号码范围起始值> <字符串表号码范围> 56

chat-to-player <游戏者编号> <字符串> 56

chat-to-player-using-id <游戏者编号> <字符串表号码> 56

chat-to-player-using-range <游戏者编号> <字符串表号码范围起始值> <字符串表号码范围> 57

chat-trace  <数量> 57

clear-tribute-memory  <游戏者编号> <资源种类> 57

delete-building  <建筑物> 57

delete-unit  <单位> 57

disable-self 57

disable-timer  <定时器编号> 58

enable-timer  <定时器编号> <数量> 58

enable-wall-placement  <环形防线> 58

generate-random-number <数量> 58

log <字符串> 59

log-trace  <数量> 59

release-escrow  <资源种类> 59

research  <研发项目> 59

research  <时代> 59

resign 60

sell-commodity  <商品> 60

set-difficulty-parameter <难易度参数> <数量> 60

set-doctrine <数量> 60

set-escrow-percentage  <资源种类>  <数量> 60

set-goal <目标编号> <数量> 60

set-shared-goal <共享目标编号> <数量> 60

set-signal <人工智能信号值> 61

set-stance <游戏者编号> <外交策略> 61

set-strategic-number <策略值>  <数量> 61

spy 61

taunt  <数量> 61

taunt-using-range  <语音指令范围起始值>  <语音指令值范围> 61

train <单位> 62

tribute-to-player <游戏者编号>  <资源种类>  <数量> 62

 

输出 / 输入动作

chat-local (对自己送出交谈讯息)

chat-local-using-id(以字符串表号码对自己送出交谈讯息)

chat-local-using-range(以字符串表号码范围对自己送出交谈讯息)

chat-local-to-self(自我送出交谈讯息)

chat-to-all(对所有游戏者送出交谈讯息)

chat-to-all-using-id(以字符串表号码对所有游戏者送出交谈讯息)

chat-to-all-using-range(以字符串表号码范围对所有游戏者送出交谈讯息)

chat-to-allies(对同盟游戏者送出交谈讯息)

chat-to-allies-using-id(以字符串表号码对同盟游戏者送出交谈讯息)

chat-to-allies-using-range(以字符串表号码范围对同盟游戏者送出交谈讯息)

chat-to-enemies(对敌对游戏者送出交谈讯息)

chat-to-enemies-using-id(以字符串表号码对敌对游戏者送出交谈讯息)

chat-to-enemies-using-range(以字符串表号码范围对敌对游戏者送出交谈讯息)

chat-to-player(对游戏者送出交谈讯息)

chat-to-player-using-id(以字符串表号码对游戏者送出交谈讯息)

chat-to-player-using-range(以字符串表号码范围对游戏者送出交谈讯息)

chat-trace(追踪交谈讯息)

log(记录日志)

log-trace(追踪记录日志)

taunt(送出语音指令)

taunt-using-range(以语音指令值范围送出语音指令)

规则控制动作

disable-self(关闭规则)

事件动作

acknowledge-event(重设人工智能触发事件)

acknowledge-taunt(重设语音指令)

disable-timer(关闭定时器)

enable-timer(开启定时器)

set-signal(送出人工智能信号)

商业贸易动作

buy-commodity(买进商品)

sell-commodity(卖出商品)

贡品动作

clear-tribute-memory(清除游戏者贡品记忆)

tribute-to-player(对游戏者送出贡品)

贡品资源动作

release-escrow(解除贡品资源)

set-escrow-percentage(设定贡品资源百分比)

 

弒君模式动作

spy(研发间谍/叛国者)

作弊动作

cc-add-resource(增加资源)

其它动作

do-nothing(闲置)

attack-now(进攻)

build(建造)

build-forward(前线建造)

build-gate(建造城门)

build-wall(建造围墙)

delete-building(删除建筑物)

delete-unit(删除单位)

enable-wall-placement(启动围墙配置)

generate-random-number(设置随机数)

research(研发科技、演进时代) 

resign(弃权)

set-difficulty-parameter(设定难易度参数)

set-doctrine(设定条义)

set-goal(设定目标)

set-shared-goal(设定共享目标)

set-stance(设定外交策略)

set-strategic-number (设定策略值)

train(生产单位)

 


动作详述

do-nothing

闲置:

 

这个动作没有任何效果。由于每个规则至少要有一个动作,故此动作只是用来作测试用途的。

 

acknowledge-event  <事件类型> <事件编号>

重设人工智能触发事件:

 

这个动作使计算机游戏者重设该 <事件类型 <事件编号的目标的接收。

 

acknowledge-taunt  <游戏者编号> <语音指令值>

重设语音指令:

 

这个动作使计算机游戏者重设对来自 <游戏者编号的游戏者的一个以 <语音指令值起首的交谈讯息的检查。

这个动作允许使用 <游戏者编号的「any-」及「every-百搭参数 

这个动作允许使用 <游戏者编号规则变量

 

attack-now

进攻:

 

这个动作使计算机游戏者以现存的攻击部队发动进攻。

计算机游戏者的单位可经策略值sn-percent-attack-soliders」及「sn-percent-attack-boats」而被编入攻击部队之中。

 

build  <建筑物>

建造:

 

这个动作使计算机游戏者建造一幢该类 <建筑物

这个动作允许使用 <建筑物百搭参数

 

build-forward  <建筑物>

前线建造:

 

这个动作使计算机游戏者在敌人领域附近建造一幢该类 <建筑物

这个动作允许使用 <建筑物百搭参数

 

build-gate  <环形防线>

建造城门:

 

这个动作使计算机游戏者在该 <环形防线范围内的围墙建造城门。

 

build-wall  <环形防线> <围墙>

建造围墙:

 

这个动作使计算机游戏者在该 <环形防线范围建造该类 <围墙

这个动作允许使用 <围墙百搭参数

 

buy-commodity  <商品>

买进商品:

 

这个动作使计算机游戏者买进 100 单位的 <商品

 

cc-add-resource <资源种类> <数量>

增加资源:

 

这个动作使计算机游戏者无条件增加 <数量单位的该 <资源种类

这个动作通常用于剧情游戏之中,以避免在后期计算机游戏者村民为寻找该 <资源种类之最后一个资源点而遍布整个地图的情况出现。

 

chat-local <字符串>

对自己送出交谈讯息:

 

这个动作使计算机游戏者对自己送出以 <字符串为内容的交谈讯息。

 

chat-local-using-id <字符串表号码>

以字符串表号码对自己送出交谈讯息:

 

这个动作使计算机游戏者对自己送出以 <字符串表号码所代表之字符串为内容的交谈讯息。

 

chat-local-using-range <字符串表号码范围起始值> <字符串表号码范围>

以字符串表号码范围对自己送出交谈讯息:

 

这个动作使计算机游戏者在指定的字符串表号码范围内随机抽出一组字符串,并对自己送出以此为内容的交谈讯息。

这个范围由 <字符串表号码范围起始值开始,并包括其以后 <字符串表号码范围个的字符串。

 

 

chat-local-to-self <字符串>

自我送出交谈讯息:

 

这个动作使计算机游戏者对自己送出以 <字符串为内容的交谈讯息。然而,这个交谈讯息只会在玩家和送出交谈讯息的计算机游戏者扮演同一个游戏者时才会显示出来。

这个动作通常用于除虫作业。

 

chat-to-all <字符串>

对所有游戏者送出交谈讯息:

 

这个动作使计算机游戏者对所有游戏者送出以 <字符串为内容的交谈讯息。

 

chat-to-all-using-id <字符串表号码>

以字符串表号码对所有游戏者送出交谈讯息:

 

这个动作使计算机游戏者对所有游戏者送出以 <字符串表号码所代表之字符串为内容的交谈讯息。

 

chat-to-all-using-range <字符串表号码范围起始值> <字符串表号码范围>

以字符串表号码范围对所有游戏者送出交谈讯息:

 

这个动作使计算机游戏者在指定的字符串表号码范围内随机抽出一组字符串,并对所有游戏者送出以此为内容的交谈讯息。

这个范围由 <字符串表号码范围起始值开始,并包括其以后 <字符串表号码范围个的字符串。

 

例子:(chat-to-all-using-range 5020 5)

会令计算机游戏者随机在字符串表 5020  5024 所代表的字符串中抽出一组,并对所有游戏者送出以此为内容的交谈讯息。

 

chat-to-allies <字符串>

对同盟游戏者送出交谈讯息:

 

这个动作使计算机游戏者对同盟游戏者送出以 <字符串为内容的交谈讯息。

 

chat-to-allies-using-id <字符串表号码>

以字符串表号码对同盟游戏者送出交谈讯息:

 

这个动作使计算机游戏者对同盟游戏者送出以 <字符串表号码所代表之字符串为内容的交谈讯息。

 

 

 

 

chat-to-allies-using-range <字符串表号码范围起始值> <字符串表号码范围>

以字符串表号码范围对同盟游戏者送出交谈讯息:

 

这个动作使计算机游戏者在指定的字符串表号码范围内随机抽出一组字符串,并对同盟游戏者送出以此为内容的交谈讯息。

这个范围由 <字符串表号码范围起始值开始,并包括其以后 <字符串表号码范围个的字符串。

 

chat-to-enemies <字符串>

对敌对游戏者送出交谈讯息:

 

这个动作使计算机游戏者对敌对游戏者及中立游戏者送出以 <字符串为内容的交谈讯息。

 

chat-to-enemies-using-id <字符串表号码>

以字符串表号码对敌对游戏者送出交谈讯息:

 

这个动作使计算机游戏者对敌对游戏者及中立游戏者送出以 <字符串表号码所代表之字符串为内容的交谈讯息。

 

chat-to-enemies-using-range <字符串表号码范围起始值> <字符串表号码范围>

以字符串表号码范围对敌对游戏者送出交谈讯息:

 

这个动作使计算机游戏者在指定的字符串表号码范围内随机抽出一组字符串,并对敌对游戏者及中立游戏者送出以此为内容的交谈讯息。

这个范围由 <字符串表号码范围起始值开始,并包括其以后 <字符串表号码范围个的字符串。

 

chat-to-player <游戏者编号> <字符串>

对游戏者送出交谈讯息:

 

这个动作使计算机游戏者对 <游戏者编号的游戏者送出以 <字符串为内容的交谈讯息。

这个动作允许使用 <游戏者编号的「any-」及「every-百搭参数 

这个动作允许使用 <游戏者编号规则变量

 

chat-to-player-using-id <游戏者编号> <字符串表号码>

以字符串表号码对游戏者送出交谈讯息:

 

这个动作使计算机游戏者对 <游戏者编号的游戏者送出以 <字符串表号码所代表之字符串为内容的交谈讯息。

这个动作允许使用 <游戏者编号的「any-」及「every-百搭参数 

这个动作允许使用 <游戏者编号规则变量

 

 

 

chat-to-player-using-range <游戏者编号> <字符串表号码范围起始值> <字符串表号码范围>

以字符串表号码范围对游戏者送出交谈讯息:

 

这个动作使计算机游戏者在指定的字符串表号码范围内随机抽出一组字符串,并对 <游戏者编号的游戏者送出以此为内容的交谈讯息。

这个范围由 <字符串表号码范围起始值开始,并包括其以后 <字符串表号码范围个的字符串。

这个动作允许使用 <游戏者编号的「any-」及「every-百搭参数 

这个动作允许使用 <游戏者编号规则变量

 

chat-trace  <数量>

追踪交谈讯息:

 

这个动作使计算机游戏者送出以 <数量为内容的交谈讯息。

这个动作通常只作检查规则是否启动之用。

 

clear-tribute-memory  <游戏者编号> <资源种类>

清除游戏者贡品记忆:

 

这个动作清除 <游戏者编号的游戏者对计算机游戏者在该 <资源种类的贡品记忆。

这个动作允许使用 <游戏者编号的「any-」及「every-百搭参数 

这个动作允许使用 <游戏者编号规则变量

 

delete-building  <建筑物>

删除建筑物:

 

这个动作使计算机游戏者删除一幢该类 <建筑物

 

delete-unit  <单位>

删除单位:

 

这个动作使计算机游戏者删除一个该类 <单位

 

disable-self

关闭规则:

 

这个动作关闭其所在的规则。由于规则关闭是在下次执行规则时才生效,所以同一规则下之其它动作仍会被执行多最后一次。

例子: 

(defrule 

  (game-time greater-than 30) 

   => 

  (disable-self) 

)

 

disable-timer  <定时器编号>

关闭定时器:

 

这个动作关闭 <定时器编号的定时器。

 

enable-timer  <定时器编号> <数量>

开启定时器:

 

这个动作开启 <定时器编号的定时器,并且设定其对游戏时间定时器秒的 <数量作倒数。

 

enable-wall-placement  <环形防线>

启动围墙配置:

 

这个动作使计算机游戏者启动对该 <环形防线的围墙配置,使得计算机游戏者执行其它建造动作时,会将建筑物置离该 <环形防线的至少一格范围外。

当您计划要计算机游戏者在该 <环形防线范围建造围墙时,您就必须在游戏开始时便启动对该 <环形防线的围墙配置,以避免出现建筑物阻碍建造围墙的情况。另外,启动围墙配置是一个只须执行一次的动作

例子:

(defrule

   (true)

   =>

  (enable-wall-placement 2)

  (disable-self)

)

 

generate-random-number <数量>

设置随机数:

 

这个动作使计算机游戏者随机在 1  <数量的范围中抽出一个正整数。

连续执行这个动作时,原有的随机数会被新的随机数所取代。

这个动作设置的随机数可经事实random-number」来作检查。

例子:

 

基于可读性而定义常数

 

(defconst feudal-age-rush 1)

(defconst castle-age-rush 2)

 

首次演算:设置一个介于 1  100 之间的随机数。

 

(defrule 

   (true)

   =>

   (generate-random-number 100)

   (disable-self)

)

 

由其结果决定战略

; 20% 机会进行封建时代快攻

; 80% 机会进行城堡时代快攻

 

(defrule

   (random-number > 80)

   =>

   (set-goal 1 feudal-age-rush)

   (disable-self)

)

 

(defrule

   (random-number < 81)

   =>

   (set-goal 1 castle-age-rush)

   (disable-self)

)

 

log <字符串>

记录日志:

 

这个动作会在记录日志档案中写入 <字符串内容。

这个动作通常用于测试作业。

只有在记录日志启用时,这个动作才会有效。

 

log-trace  <数量>

追踪记录日志:

 

这个动作会在记录日志档案中写入 <数量内容。

这个动作通常用于测试作业。

只有在记录日志启用时,这个动作才会有效

 

release-escrow  <资源种类>

解除贡品资源:

 

这个事实解除计算机游戏者对该 <资源种类的贡品储存。

 

research  <研发项目>

研发科技:

 

这个动作使计算机游戏者研发该类 <研发项目

为了避免作弊情况出现,这个动作将会自动进行等同于事实can-research」的检查。

 

research  <时代>

演进时代:

 

这个动作使计算机游戏者开始演进至该 <时代

 

 

 

resign

弃权:

 

这个动作使计算机游戏者弃权。

例子:

(defrule 

  (game-time equal 6000)  

   => 

  (resign)   

)

 

sell-commodity  <商品>

卖出商品:

 

这个动作使计算机游戏者卖出 100 单位的 <商品

 

set-difficulty-parameter <难易度参数> <数量>

设定难易度参数:

 

这个动作使计算机游戏者设定该类 <难易度参数 <数量

 

set-doctrine <数量>

设定条义:

 

这个动作使计算机游戏者设定现在的条义为 <数量

 

set-escrow-percentage  <资源种类>  <数量>

设定贡品资源百分比:

 

这个动作使计算机游戏者设定该 <资源种类的贡品资源百分比为 <数量

<数量的范围必须为 1  100 之间。

 

set-goal <目标编号> <数量>

设定目标:

 

这个动作使计算机游戏者设定该 <目标编号的目标为 <数量

 

set-shared-goal <共享目标编号> <数量>

设定共享目标:

 

这个动作使计算机游戏者设定该 <共享目标编号的共享目标为 <数量

共享目标是一个由所有计算机游戏者共享的目标,只于所有计算机游戏者都在同一队伍中时生效。

 

set-signal <人工智能信号值>

送出人工智能信号:

 

这个动作送出 <人工智能信号值的人工智能信号。

 

set-stance <游戏者编号> <外交策略>

设定外交策略:

 

这个动作使计算机游戏者改变对 <游戏者编号的游戏者的 <外交策略

这个动作允许使用 <游戏者编号的「any-」及「every-百搭参数 

这个动作允许使用 <游戏者编号规则变量

 

set-strategic-number <策略值>  <数量>

设定策略值:

 

这个动作使计算机游戏者设定该类 <策略值 <数量

有关更多关于策略值的资料,可以查阅本文件的《附件 A – 内部策略值参考文件》章节。

 

spy

研发间谍/叛国者:

 

这个事实使计算机游戏者研发间谍/叛国者。

 

taunt  <数量>

送出语音指令:

 

这个事实使计算机游戏者送出语音指令值为 <数量的语音指令。

例子:

(defrule 

  (game-time equal 6000)  

   =>

  (taunt 10)

  (disable-self)

)

 

taunt-using-range  <语音指令范围起始值>  <语音指令值范围>

语音指令值范围送出语音指令:

 

这个动作使计算机游戏者在指定的语音指令值范围内随机抽出一个,并送出该语音指令。

这个范围由 <语音指令值范围起始值开始,并包括其以后 <语音指令值范围个的字符串。

例子:(taunt-using-range 50 10)

会令计算机游戏者随机在语音指令值 50  59 随机抽出一个,并送出该语音指令。

 

 

train <单位>

生产单位:

 

这个动作使计算机游戏者生产该类 <单位

为了避免作弊情况出现,这个动作将会自动进行等同于事实can-train」的检查。

这个动作允许使用 <单位百搭参数

例子:

(defrule

  (food-amount greater-than 100)  

   =>

  (train villager)

  (train swordsman)

)

 

tribute-to-player <游戏者编号>  <资源种类>  <数量>

对游戏者送出贡品:

 

这个动作使计算机游戏者进贡给 <游戏者编号的游戏者 <数量的该 <资源种类

当计算机游戏者没有市集时,这个动作不会送出任何贡品。

如果动作 <数量大于计算机游戏者该 <资源种类的储存量,则计算机游戏者只会进贡等同于其储存量的贡品。例如:当计算机游戏者只有 60 单位的食物时,而动作要求对其他游戏者送出 100 单位的食物,此时计算机游戏者就只会进贡 60 单位的食物。

纳贡费用会自动在进贡贡品过程中扣除。

这个动作允许使用 <游戏者编号的「any-」及「every-百搭参数 

这个动作允许使用 <游戏者编号规则变量

 


参数

参数列表

<时代> 64

<建筑物> 64

<文明> 65

<商品> 65

<难易度> 65

<难易度参数> 66

<外交策略> 66

<事件编号> 66

<事件类型> 66

<游戏种类> 66

<目标编号> 66

<地图大小> 66

<地图种类> 67

<环形防线> 67

<游戏者编号> 68

<关系运算子> 68

<研发项目> 68

<资源种类> 72

<共享目标编号> 72

<人工智能信号值> 72

<开始资源> 72

<策略值> 72

<字符串> 75

<字符串表号码> 75

<字符串表号码范围> 75

<字符串表号码范围起始值> 75

<语音指令值> 76

<语音指令值范围> 76

<语音指令范围起始值> 76

<定时器编号> 76

<单位> 76

<数量> 78

<胜利条件> 78

<围墙> 79

 

参数详述

<时代>

是以下其中一项:

      dark-age(黑暗时代)

      feudal-age(封建时代)

      castle-age(城堡时代)

      imperial-age(帝王时代)

事实starting-age」中,也可使用:

      post-imperial-age(后帝王时代)

 

<建筑物>

是以下其中一项:

      archery-range(射箭场)

      barracks(军营)

      blacksmith(兵工厂)

      bombard-tower(火炮塔)

      castle(城堡)

      dock(码头)

      farm(农田)

      fish-trap(渔网)

      guard-tower(防御箭塔)

      house(居住房舍)

      keep(大型箭塔)

      lumber-camp(伐木厂)

      market(市集)

      mill(磨坊)

      mining-camp(采矿营地)

      monastery(修道院)

      outpost(哨站)

      siege-workshop(攻城器制造所)

      stable(马厩)

      town-center(城镇中心)

      university(学院)

      watch-tower(瞭望塔)

      wonder(世界奇观)

 

有关可在 <建筑物中使用的百搭参数的资料,可以查阅本文件的《百搭参数》章节。

 

<文明> 

是以下其中一项:

      aztec(阿兹特克人)

      briton(不列颠人)

      byzantine(拜占庭人)

      celtic(塞尔特人)

      chinese(中国人)

      frankish(法兰克人)

      gothic(哥德人)

      hun(匈奴人)

      japanese (日本人)

      korean(韩国人)

      mayan(马雅人)

      mongol(蒙古人)

      persian(波斯人)

      saracen(萨拉森人)

      spanish(西班牙人)

      teutonic(条顿人)

      turkish (土耳其人)

      viking(维京人)

 

<商品>

是以下其中一项:

      food(食物)

      stone(石头)

      wood(木材)

 

<难易度>

是以下其中一项:

      easiest(最易)

      easy(标准)

      moderate(中)

      hard(难)

      hardest(最难)

 

难易度设定的次序是反向而非正向的!

请您确定在自己在使用 <难易度参数进行比较式运算时符合以下次序:

 

最易 > 标准 >  >  > 最难

 

<难易度参数>

是以下其中一项:

    ability-to-dodge-missiles(回避力)

    ability-to-maintain-distance(持距力)

 

<外交策略>

是以下其中一项:

      ally(同盟)

      neutral(中立)

      enemy(敌对)

 

<事件编号>

是一个有效的事件编号。依照事件类型的不同,事件编号也有其不同的范围。对于人工智能触发事件,其事件编号有效范围为 0  255 

 

<事件类型>

是以下其中一项:

trigger(人工智能触发事件)

 

<游戏种类>

是以下其中一项:

  0(随机地图)

1(弒君游戏)

2(死斗模式)

3(剧情)

5(至尊王)

6(世界奇观竞赛)

7(防御世界奇观)

8(极速随机地图)

 

<目标编号>

是一个有效的目标编号。目标编号的有效范围为 1  40 

 

<地图大小>

是以下其中一项:

      tiny(超小型 (2 名游戏者)

      small(小型 (3 名游戏者)

      medium(中型 (4 名游戏者)

      normal(一般型 (6 名游戏者)

      large(大型 (8 名游戏者)

      giant(巨大)

 

<地图种类>

是以下其中一项:

      arabia(阿拉伯)

      archipelago(爱琴海)

      arena(围城)

      baltic(波罗的海)

      black-forest(黑森林)

      coastal(沿海地型)

      continental(大陆)

      crater-lake(火山湖)

      fortress(要塞)

      ghost-lake(幽灵湖)

      gold-rush(淘金潮)

      highland(高原地型)

      islands(岛屿)

      mediterranean(地中海)

      migration(移民)

      mongolia(蒙古高原)

      nomad(牧地)

      oasis (绿洲)

      real-world-byzantium(真实世界:拜占庭)

      real-world-caribbean(真实世界:中美洲)

      real-world-england(真实世界:不列颠)

      real-world-france(真实世界:法兰西)

      real-world-italy(真实世界:意大利)

      real-world-jutland(真实世界:挪威)

      real-world-mideast(真实世界:中东)

      real-world-nippon(真实世界:日本海 (东海)

      real-world-spain(真实世界:伊比利亚)

      real-world-texas(真实世界:得克萨斯)

      rivers(河流)

      salt-marsh(盐沼地)

      scandinavia(斯堪的那维亚)

      team-islands(群岛)

      scenario-map(剧情)

      yucatan(犹加敦)

 

<环形防线>

是一个有效的环形防线值。它的数值可以是 1  2 ,而 1  2 更接近城镇中心。

防线值设定为 1 时,介于离城镇中心的 10  20 格。

防线值设定为 2 时,介于离城镇中心的 18  30 格。

 

<游戏者编号>

 是一个有效的游戏者编号,或是以下其中一个百搭参数(当事实效果允许使用时):

      any-ally(任何同盟游戏者)

      any-computer(任何计算机游戏者)

      any-computer-ally(任何同盟计算机游戏者)

      any-computer-enemy(任何敌对计算机游戏者)

      any-computer-neutral(任何中立计算机游戏者)

      any-enemy(任何敌对游戏者)

      any-human(任何人类游戏者)

      any-human-ally(任何同盟人类游戏者)

      any-human-enemy(任何敌对人类游戏者)

      any-human-neutral(任何中立人类游戏者)

      any-neutral(任何中立游戏者)

 

      every-ally(所有同盟游戏者)

      every-computer(所有计算机游戏者)

      every-enemy(所有敌对游戏者)

      every-human(所有人类游戏者)

      every-neutral(所有中立游戏者)

 

有关可在 <游戏者编号中使用的百搭参数的资料,可以查阅本文件的《百搭参数》章节。

 

备注:适用于同盟游戏者上的百搭参数并不适用于计算机游戏者本身。

 

<关系运算子>

是以下其中一项(二个版本,任选其一):

     全称:

      less-than(小于)

      less-or-equal(小于或等于)

      greater-than(大于)

      greater-or-equal(大于或等于)

      equal(等于)

      not-equal(不等于)

 

     简称:

      <(小于)

      <=(小于或等于)

      >(大于)

      >=(大于或等于)

      ==(等于)

      != (不等于)

 

<研发项目>

是以下其中一项(按建筑物分类):

 

备注:在 <研发项目参数名字之前,必须加上「ri-」字样标签。

 

     射箭场研发项目:

      ri-arbalest(强弩兵)

      ri-crossbow(弩兵)

      ri-elite-skirmisher(战矛兵)

      ri-hand-cannon(火枪兵)

      ri-heavy-cavalry-archer(重装马骑弓兵)

      ri-parthian-tactics(安息人战术)

      ri-thumb-ring(拇指环)

 

     军营研发项目:

      ri-champion(剑兵勇士)

      ri-elite-eagle-warrior(精锐鹰勇士)

      ri-halberdier(戟兵)

      ri-long-swordsman(长剑兵)

      ri-man-at-arms(装甲步兵)

      ri-pikeman(重装长枪兵)

      ri-squires(护卫技术)

      ri-tracking(追踪技术)

      ri-two-handed-swordsman(双手剑兵)

 

     兵工厂研发项目:

      ri-blast-furnace(鼓风炉)

      ri-bodkin-arrow(羽箭)

      ri-bracer(强力护腕)

      ri-chain-barding(链铠甲)

      ri-chain-mail(链甲)

      ri-fletching(绝世好箭)

      ri-forging(锻造技术)

      ri-iron-casting(铸铁技术)

      ri-leather-archer-armor(弓兵皮甲)

      ri-padded-archer-armor(弓兵护甲)

      ri-plate-barding(铁铠甲)

      ri-plate-mail(板甲)

      ri-ring-archer-armor(弓兵链甲)

      ri-scale-barding(鳞铠甲)

      ri-scale-mail(鳞甲)

 

     城堡研发项目:

      anarchy(无政府状态)

      artillery(炮兵)

      atheism(无神论) 

      bearded axe(倒钩斧)

      berserkergang(狂暴战士帮)

      crenellations(炮门垛口)

      drill(凿岩机)

      el dorado(黄金国)

      furor celtica(塞尔特狂热)

      garland wars(荣冠战争)

      kataparuto(弹射器)

      logistica(后勤)

      mahouts(象夫)

      perfusion(军事纪律) 

      ri-conscription(征兵技术)

      ri-elite-berserk(精锐狂战士)

      ri-elite-cataphract(精锐拜占庭圣骑兵)

      ri-elite-chu-ko-nu(精锐中国连弩兵)

      ri-elite-conquistador(精锐西班牙征服者)

      ri-elite-huskarl(精锐哥德卫队)

      ri-elite-jaguar-man(精锐豹勇士)

      ri-elite-janissary(精锐土耳其火枪兵)

      ri-elite-longbowman(精锐长弓兵)

      ri-elite-mameluke(精锐阿拉伯奴隶兵)

      ri-elite-mangudai(精锐蒙古突骑)

      ri-elite-plumed-archer(精锐精锐羽毛箭射手)

      ri-elite-samurai(精锐日本武士)

      ri-elite-tarkan(精锐鞑靼骑兵)

      ri-elite-teutonic-knight(精锐条顿武士)

      ri-elite-throwing-axeman(精锐掷斧兵)

      ri-elite-war-elephant(精锐战象)

      ri-elite-war-wagon(精锐马战车)

      ri-elite-woad-raider(精锐菘蓝武士)

      ri-hoardings(围篱)

      ri-sappers(兵工学)

      rocketry(火箭技术)

      shinkichon(投掷器) 

      supremacy(霸权)

      yeomen(义勇骑兵)

      zealotry(狂热)

 

     码头研发项目:

      ri-cannon-galleon(火炮战船)

      ri-careening(航海技术)

      ri-deck-guns(精锐火炮战船)

      ri-dry-dock(船坞)

      ri-elite-longboat(精锐维京大战船)

      ri-elite-turtle-ship(精锐龟甲船)

      ri-fast-fire-ship(重型火战船)

      ri-galleon(弩炮战船)

      ri-heavy-demolition-ship(重型神风船)

      ri-shipwright(造船员)

      ri-war-galley(重型弩炮战船)

    

     伐木厂研发项目:

      ri-bow-saw(弓形锯)

      ri-double-bit-axe(双面斧)

      ri-two-man-saw(双人锯)

      

     市集研发项目:

     ri-banking(银行制度)

     ri-caravan(商队)

      ri-cartography(制图学)

      ri-coinage(铸币术)

      ri-guilds(公会制度)

      

     磨坊研发项目:

      ri-crop-rotation(轮耕制度)

      ri-heavy-plow(重型耕犁)

      ri-horse-collar(兽耕技术)

      

     采矿营地研发项目:

     ri-gold-mining(采金技术)

      ri-gold-shaft-mining(采金装置)

      ri-stone-mining(采石技术)

      ri-stone-shaft-mining(采石装置)

 

     修道院研发项目:

      ri-atonement(赎罪思想)

      ri-block-printing(印刷技术)

      ri-faith(忠诚信仰)

      ri-fervor(宗教狂热)

      ri-herbal-medicine(草药)

      ri-heresy(异端邪说)

      ri-illumination(启示思想)

      ri-redemption(救赎思想)

      ri-sanctity(神圣思想)

      ri-theocracy(神权政治)

 

     攻城器制造所研发项目:

      ri-bombard-cannon(火炮)

      ri-capped-ram(装甲冲撞车)

      ri-heavy-scorpion(重型弩炮)

      ri-onager(中型投石车)

      ri-scorpion(弩炮)

      ri-siege-onager(重型投石车)

      ri-siege-ram(重型冲撞车)

      

     马厩研发项目:

      ri-bloodlines(血统)

      ri-cavalier(骑兵)

      ri-heavy-camel(重装骆驼骑兵)

      ri-husbandry(耕种技术)

      ri-hussar(匈牙利轻骑兵)

      ri-light-cavalry(轻骑兵)

      ri-paladin(游侠)

      

     城镇中心研发项目:

      ri-hand-cart(手推车)

      ri-loom(织布技术)

      ri-town-patrol(城镇巡逻)

      ri-town-watch(瞭望技术)

      ri-wheel-barrow(轮轴技术)

 

     学院研发项目:

      ri-architecture(建筑学)

      ri-ballistics(弹道学)

      ri-bombard-tower(火炮塔)

      ri-chemistry(化学)

      ri-fortified-wall(垛墙)

      ri-guard-tower(防御箭塔)

      ri-heated-shot(火箭)

      ri-keep(大型箭塔)

      ri-masonry(砖瓦技术)

      ri-murder-holes(城垛射孔)

      ri-siege-engineers(攻城工程师)

      ri-stonecutting(磨坊水车)

      

备注:在 <研发项目参数名字之前加上「ri-」字样标签的原因是要避免和其它参数混淆。如果没有加上这个字样卷标,系统解读器将可能无法分辨某些研发项目与相关的单位或建筑物。例子如「keep」就可以同时代表一个研发项目或一幢建筑物。

 

<资源种类>

是以下其中一项:

      food(食物)

      gold(黄金)

      stone(石头)

      wood(木材)

<共享目标编号>

是一个有效的共享目标编号。共享目标编号的有效范围为 0  255 

 

<人工智能信号值>

是一个有效的人工智能信号值。共享目标编号的有效范围为 0  255 

 

<开始资源>

是以下其中一项:

      low-resources(低)

      medium-resources(中)

      high-resources(高)

 

<策略值>

是以下其中一项:

      sn-percent-civilian-explorers(探索工人比率)

      sn-percent-civilian-builders(建筑工人比率)

      sn-percent-civilian-gatherers(采集工人比率)

      sn-cap-civilian-explorers(探索工人定额)

      sn-cap-civilian-builders(建筑工人定额)

      sn-cap-civilian-gatherers(采集工人定额)

      sn-minimum-attack-group-size(最小攻击部队规模)

      sn-total-number-explorers(探索单位总数)

      sn-percent-enemy-sighted-response(敌视回应比率)

      sn-enemy-sighted-response-distance(敌视回应距离)

      sn-sentry-distance(站岗距离)

      sn-relic-return-distance(搬运遗迹距离)

      sn-minimum-defend-group-size(最小防御部队规模)

      sn-maximum-attack-group-size(最大攻击部队规模)

      sn-maximum-defend-group-size(最大防御部队规模)

      sn-minimum-peace-like-level(最小同盟友好度)

      sn-percent-exploration-required(再指派探索工人所需已探索地图百分比)

      sn-zero-priority-distance(零指令等级距离)

      sn-minimum-civilian-explorers(最小探索工人数量)

      sn-number-attack-groups(攻击部队数量)

      sn-number-defend-groups(防御部队数量)

      sn-attack-group-gather-spacing(攻击部队集合点留间隔)

      sn-number-explore-groups(探索部队数量)

      sn-minimum-explore-group-size(最小探索部队规模)

      sn-maximum-explore-group-size(最大探索部队规模)

      sn-gold-defend-priority(金矿防御等级)

      sn-stone-defend-priority(石矿防御等级)

      sn-forage-defend-priority(果树丛防御等级)

      sn-relic-defend-priority(遗迹防御等级)

      sn-town-defend-priority(城镇防御等级)

      sn-defense-distance(防御距离)

      sn-number-boat-attack-groups(战船攻击部队数量)

      sn-minimum-boat-attack-group-size(最小战船攻击部队规模)

      sn-maximum-boat-attack-group-size(最大战船攻击部队规模)

      sn-number-boat-explore-groups(战船探索部队数量)

      sn-minimum-boat-explore-group-size(最小战船探索部队规模)

      sn-maximum-boat-explore-group-size(最大战船探索部队规模)

      sn-number-boat-defend-groups(战船防御部队数量)

      sn-minimum-boat-defend-group-size(最小战船防御部队规模)

      sn-maximum-boat-defend-group-size(最大战船防御部队规模)

      sn-dock-defend-priority(码头防御等级)

      sn-sentry-distance-variation(站岗距离变量)

      sn-minimum-town-size(最小城镇规模)

      sn-maximum-town-size(最大城镇规模)

      sn-group-commander-selection-method(部队长选择方式)

      sn-consecutive-idle-unit-limit(部队闲置时限)

      sn-target-evaluation-distance(距离目标评估等级)

      sn-target-evaluation-hitpoints(生命值目标评估等级)

      sn-target-evaluation-damage-capability(耐久性目标评估等级)

      sn-target-evaluation-kills(杀敌目标评估等级)

      sn-target-evaluation-ally-proximity(同盟游戏者数量目标评估等级)

      sn-target-evaluation-rof(开火速率目标评估等级)

      sn-target-evaluation-randomness(随机性目标评估等级)

      sn-camp-max-distance(最大营地距离)

      sn-mill-max-distance(最大磨坊距离)

      sn-target-evaluation-attack-attempts(攻击次数目标评估等级)

      sn-target-evaluation-range(射程目标评估等级)

      sn-defend-overlap-distance(防御部队互搭距离)

      sn-scale-minimum-attack-group-size(最小估算攻击部队规模)

      sn-scale-maximum-attack-group-size(最大估算攻击部队规模)

      sn-attack-group-size-randomness(攻击部队规模随机性)

      sn-scaling-frequency(估算频率)

      sn-maximum-gaia-attack-response(最大村民反应野生动物人数)

      sn-build-frequency(更替频率)

      sn-attack-separation-time-randomness(攻击间隔时间随机性)

      sn-attack-intelligence(智能攻击系统)

      sn-initial-attack-delay(首次攻击延迟时限)

      sn-save-scenario-information(储存剧情学习信息)

      sn-special-attack-type1(首位特殊攻击类别)

      sn-special-attack-type2(次位特殊攻击类别)

      sn-special-attack-type3(三位特殊攻击类别)

      sn-special-attack-influence1(特殊攻击类别目标评估等级)

      sn-minimum-water-body-size-for-dock(最小建造码头水域面积)

      sn-number-build-attempts-before-skip(忽略建造所需建造次数)

      sn-max-skips-per-attempt(最大忽略建造次数)

      sn-food-gatherer-percentage(食物采集工人比率)

      sn-gold-gatherer-percentage(黄金采集工人比率)

      sn-stone-gatherer-percentage(石头采集工人比率)

      sn-wood-gatherer-percentage(木材采集工人比率)

      sn-target-evaluation-continent(邻接陆地附加目标评估等级)

      sn-target-evaluation-siege-weapon(攻城武器附加目标评估等级)

      sn-group-leader-defense-distance(部队长防御距离)

      sn-initial-attack-delay-type(首次攻击延迟类别)

      sn-blot-exploration-map(再探索地图)

      sn-blot-size(再探索地图面积)

      sn-intelligent-gathering(智能采集系统)

      sn-task-ungrouped-soldiers(指派未归队士兵)

      sn-target-evaluation-boat(战船附加目标评估等级)

      sn-number-enemy-objects-required(减少探索工人所需可视敌对对象数量)

      sn-number-max-skip-cycles(最大忽略建造循环数量)

      sn-retask-gather-amount(最小再指派采集工人采集数量)

      sn-max-retask-gather-amount(最大再指派采集工人采集数量)

      sn-max-build-plan-gatherer-percentage(最大采集工人指派比率)

      sn-food-dropsite-distance(食物储存所距离)

      sn-wood-dropsite-distance(木材储存所距离)

      sn-stone-dropsite-distance(石头储存所距离)

      sn-gold-dropsite-distance(黄金储存所距离)

      sn-initial-exploration-required(首次建造所需已探索地图百分比)

      sn-random-placement-factor(建造建筑物配置随机性)

      sn-required-forest-tiles(建造伐木厂所需树林方格)

      sn-attack-diplomacy-impact(攻击对友好度影响力)

      sn-percent-half-exploration(探索单位减半所需已探索地图百分比)

      sn-target-evaluation-time-kill-ratio(杀敌时间目标评估等级)

      sn-target-evaluation-in-progress(正被攻击目标评估等级)

      sn-attack-winning-player(攻击积分领先游戏者)

      sn-coop-share-information(同盟计算机游戏者共享信息)

      sn-attack-winning-player-factor(攻击积分领先游戏者因子)

      sn-coop-share-attacking(同盟计算机游戏者合作攻防)

      sn-coop-share-attacking-interval(同盟计算机游戏者合作攻防间隔时间)

      sn-percentage-explore-exterminators(探索部队突击士兵比率)

      sn-track-player-history(追踪游戏者历史)

      sn-minimum-dropsite-buffer(最小储存所缓冲区距离)

      sn-use-by-type-max-gathering(分类最大再指派采集系统)

      sn-minimum-boar-hunt-group-size(最小野猪猎人部队规模)

      sn-minimum-amount-for-trading(最小贸易数量)

      sn-easiest-reaction-percentage(最易难易度反应视野比率)

      sn-easier-reaction-percentage(标准难易度反应视野比率)

      sn-hits-before-alliance-change(解除同盟攻击次数)

      sn-allow-civilian-defense(容许村民自卫)

      sn-number-forward-builders(前线建筑工人数量)

      sn-percent-attack-soldiers(攻击士兵比率)

      sn-percent-attack-boats(攻击战船比率)

      sn-do-not-scale-for-difficulty-level(关闭难易度自动估算)

      sn-group-form-distance(部队组织距离)

      sn-ignore-attack-group-under-attack(忽略被攻击的攻击部队)

      sn-gather-defense-units(聚集防御部队)

      sn-maximum-wood-drop-distance(最大采集木材距离)

      sn-maximum-food-drop-distance(最大采集食物距离)

      sn-maximum-hunt-drop-distance(最大狩猎距离)

      sn-maximum-fish-boat-drop-distance(最大渔船捕渔距离)

      sn-maximum-gold-drop-distance(最大采集黄金距离)

      sn-maximum-stone-drop-distance(最大采集石头距离)

      sn-gather-idle-soldiers-at-center(集中闲置士兵)

      sn-garrison-rams(进驻冲撞车)

      sn-do-not-transport-from-same-zone(关闭相同区域运输)

 

<字符串>

是一组位于双引号「」间的字符。

 

<字符串表号码>

是一个有效的字符串表号码。

 

<字符串表号码范围>

是字符串表号码范围的长度。

 

<字符串表号码范围起始值>

是字符串表号码范围的起始值。 

 

<语音指令值>

是一个有效的语音指令值。

 

<语音指令值范围>

是语音指令值范围的长度。

 

<语音指令范围起始值>

是语音指令值范围的起始值。

 

<定时器编号>

是一个有效的定时器编号(范围为 1  10)。

 

<单位>

是以下其中一项(按建筑物分类):

 

射箭场单位:

arbalest(强弩兵)

archer(弓兵)

cavalry-archer (马骑弓兵)

crossbowman(弩兵)

elite-skirmisher(战矛兵)

hand-cannoneer(火枪兵)

heavy-cavalry-archer(重装马骑弓兵)

skirmisher(矛兵)

 

军营单位:

champion(剑兵勇士)

eagle-warrior(鹰勇士)

elite-eagle-warrior(精锐鹰勇士)

halberdier(戟兵)

long-swordsman(长剑兵)

man-at-arms(装甲步兵)

militiaman(民兵)

pikeman(重装长枪兵)

spearman(长枪兵)

two-handed-swordsman(双手剑兵)

 

城堡单位:

berserk(狂战士)

cataphract(拜占庭圣骑兵)

chu-ko-nu(中国连弩兵)

conquistador(西班牙征服者)

elite-berserk(精锐狂战士)

elite-cataphract(精锐拜占庭圣骑兵)

elite-chu-ko-nu(精锐中国连弩兵)

elite-conquistador(精锐西班牙征服者)

elite-huskarl(精锐哥德卫队)

elite-jaguar-warrior(精锐豹勇士)

elite-janissary(精锐土耳其火枪兵)

elite-longbowman(精锐长弓兵)

elite-mameluke(精锐阿拉伯奴隶兵)

elite-mangudai(精锐蒙古突骑)

elite-plumed-archer(精锐精锐羽毛箭射手)

elite-samurai(精锐日本武士)

elite-tarkan(精锐鞑靼骑兵)

elite-teutonic-knight(精锐条顿武士)

elite-throwing-axeman(精锐掷斧兵)

elite-war-elephant(精锐战象)

elite-war-wagon(精锐马战车)

elite-woad-raider(精锐菘蓝武士)

huskarl(哥德卫队)

jaguar-warrior(豹勇士)

janissary(土耳其火枪兵)

longbowman(长弓兵)

mameluke(阿拉伯奴隶兵)

mangudai(蒙古突骑)

petard(炸药筒)

plumed-archer(羽毛箭射手)

samurai(日本武士)

tarkan(鞑靼骑兵)

teutonic-knight(条顿武士)

throwing-axeman(掷斧兵)

trebuchet(巨型投石机)

war-elephant(战象)

war-wagon(马战车)

woad-raider(菘蓝武士)

 

码头单位:

cannon-galleon(火炮战船)

demolition-ship(神风船)

elite-cannon-galleon(精锐火炮战船)

elite-longboat(精锐维京大战船)

elite-turtle-ship(精锐龟甲船)

fast-fire-ship(重型火战船)

fire-ship(火战船)

fishing-ship(渔船)

galleon(弩炮战船)

galley(战船)

heavy-demolition-ship(重型神风船)

longboat(维京大战船)

trade-cog(贸易商旅)

transport-ship(运输船)

turtle-ship(龟甲船)

war-galley(重型弩炮战船)

 

市集单位:

trade-cart(贸易车队)

 

修道院单位:

missionary(传教士)

monk(僧侣)

 

攻城器制造所单位:

battering-ram(轻型冲撞车)

bombard-cannon(火炮)

capped-ram(装甲冲撞车)

heavy-scorpion(重型弩炮)

mangonel(轻型投石车)

onager(中型投石车)

scorpion(弩炮)

siege-onager(重型投石车)

siege-ram(重型冲撞车)

 

马厩单位:

camel(骆驼骑兵)

cavalier(骑兵)

heavy-camel(重装骆驼骑兵)

hussar(匈牙利轻骑兵)

knight(骑士)

light-cavalry(轻骑兵)

paladin(游侠)

scout-cavalry(斥候骑兵)

 

城镇中心单位:

villager(村民)

 

有关可在 <单位中使用的百搭参数的资料,可以查阅本文件的《百搭参数》章节。

 

<数量> 

是一个十六位的正整数或负整数。

 

<胜利条件>

是以下其中一项:

      standard(标准游戏)

      conquest(武力征服游戏)

      time-limit(限时得分竞赛游戏)

      score(指定积分游戏)

      custom(自订特殊胜利条件)

 

<围墙>

是以下其中一项:

      fortified-wall(垛墙)

      palisade-wall(木墙)

      stone-wall(石墙)

 

或是以下其中一个百搭参数

      stone-wall-line(石墙系列围墙:石墙及垛墙)

 


百搭参数

<游戏者编号>百搭参数:

 

any-ally(任何同盟游戏者)

any-computer(任何计算机游戏者)

any-computer-ally(任何同盟计算机游戏者)

any-computer-enemy(任何敌对计算机游戏者)

any-computer-neutral(任何中立计算机游戏者)

any-enemy(任何敌对游戏者)

any-human(任何人类游戏者)

any-human-ally(任何同盟人类游戏者)

any-human-enemy(任何敌对人类游戏者)

any-human-neutral(任何中立人类游戏者)

any-neutral(任何中立游戏者)

 

every-ally(所有同盟游戏者)

every-computer(所有计算机游戏者)

every-enemy(所有敌对游戏者)

every-human(所有人类游戏者)

every-neutral(所有中立游戏者)

 

<游戏者编号>百搭参数的用法:

 

1. 事实中使用以「any-...」开首的百搭参数

    1 个或以上的游戏者同时符合百搭参数指定类别和满足事实要求时,事实就会成立。

      例子:

(defrule 

                (players-current-age any-enemy == imperial-age)

                =>

                (chat-to-allies "至少有一个敌人已经进入帝王时代了!")

)

 

2. 事实中使用以「every-...」开首的百搭参数

   当所有符合百搭参数指定类别的游戏者都满足事实要求时,事实才会成立。

      例子:

(defrule 

                (players-current-age every-enemy == imperial-age)

                =>

  (chat-to-allies "所有敌人都已经进入帝王时代了!")

)

 

3. 动作中使用以「any-...」开首的百搭参数

   对于符合百搭参数指定类别而游戏者编号最少的游戏者,动作会优先设定其为对象。

      Example:

(defrule 

                (gold-amount > 10000)

                =>

  (tribute-to-player any-ally gold 1000)

)

 

4. 动作中使用以「every-...」开首的百搭参数

   对于符合百搭参数指定类别的游戏者,动作都会设定其为对象之一。

      Example:

(defrule 

                (true)

                =>

  (set-stance every-human enemy)

                (set-stance every-computer ally)

                (chat-to-all "所有计算机游戏者都是我的同盟,而所有人类游戏者都是我的敌人!")

                (disable-self)

)

 

  

备注:适用于同盟游戏者上的百搭参数并不适用于计算机游戏者本身。

 

<建筑物>百搭参数:

watch-tower-line(瞭望塔系列建筑物:瞭望塔、防御箭塔及大型箭塔)

 

<单位>百搭参数:

按建筑物分类:

 

射箭场单位:

archer-line(弓兵系列单位:弓兵、弩兵及强弩兵)

cavalry-archer-line(马骑弓兵系列单位:马骑弓兵及重装马骑弓兵)

skirmisher-line(矛兵系列单位:矛兵及战矛兵)

 

军营单位:

eagle-warrior-line(鹰勇士系列单位:鹰勇士及精锐鹰勇士)

militiaman-line(民兵系列单位:民兵、装甲步兵、长剑兵、双手剑兵及剑兵勇士)

spearman-line(长枪兵系列单位:长枪兵、重装长枪兵及戟兵)

 

城堡单位:

berserk-line(狂战士系列单位:狂战士及精锐狂战士)

cataphract-line(拜占庭圣骑兵系列单位:拜占庭圣骑兵及精锐拜占庭圣骑兵)

chu-ko-nu-line(中国连弩兵系列单位:中国连弩兵及精锐中国连弩兵)

conquistador-line(西班牙征服者系列单位:西班牙征服者及精锐西班牙征服者)

huskarl-line(哥德卫队系列单位:哥德卫队及精锐哥德卫队)

jaguar-warrior-line(豹勇士系列单位:豹勇士及精锐豹勇士)

janissary-line(土耳其火枪兵系列单位:土耳其火枪兵及精锐土耳其火枪兵)

longbowman-line(长弓兵系列单位:长弓兵及精锐长弓兵)

mameluke-line(阿拉伯奴隶兵系列单位:阿拉伯奴隶兵及精锐阿拉伯奴隶兵)

mangudai-line(蒙古特骑系列单位:蒙古特骑及精锐蒙古特骑)

plumed-archer-line(羽毛箭射手系列单位:羽毛箭射手及精锐羽毛箭射手)

samurai-line(日本武士系列单位:日本武士及精锐日本武士)

tarkan-line(鞑靼骑兵系列单位:鞑靼骑兵及精锐鞑靼骑兵)

teutonic-knight-line(条顿武士系列单位:条顿武士及精锐条顿武士)

throwing-axeman-line(掷斧兵系列单位:掷斧兵及精锐掷斧兵)

war-elephant-line(战象系列单位:战象及精锐战象)

war-wagon-line(马战车系列单位:马战车及精锐马战车)

woad-raider-line(菘蓝武士系列单位:菘蓝武士及精锐菘蓝武士)

 

码头单位:

cannon-galleon-line(火炮战船系列单位:火炮战船及精锐火炮战船)

demolition-ship-line(神风船系列单位:神风船及重型神风船)

fire-ship-line(火战船系列单位:火战船及重型火战船)

galley-line(战船系列单位:战船、弩炮战船及重型弩炮战船)

longboat-line(维京大战船系列单位:维京大战船及精锐维京大战船)

turtle-ship-line(龟甲船系列单位:龟甲船及精锐龟甲船)

 

攻城器制造所单位:

battering-ram-line(冲撞车系列单位:轻型冲撞车、装甲冲撞车及重型冲撞车)

mangonel-line(投石车系列单位:轻型投石车、中型投石车及重型投石车)

scorpion-line(弩炮系列单位:弩炮及重型弩炮)

 

马厩单位:

camel-line(骆驼骑兵系列单位:骆驼骑兵及重装骆驼骑兵)

knight-line(骑士系列单位:骑士、骑兵及游侠)

scout-cavalry-line(斥侯骑兵系列单位:斥侯骑兵、轻骑兵及匈牙利轻骑兵)

 

这些百搭参数亦被称为单位系列系列百搭参数

 

有关如何使用 <单位百搭参数,可以查阅本文件的《系列百搭参数的用法》章节。

 

<围墙>百搭参数:

stone-wall-line(石墙系列围墙:石墙及垛墙)

 

系列百搭参数的用法:

 

系列百搭参数可透过以下二种方式与事实动作进行互动:

 

a) 系列百搭参数代表游戏进行当时计算机游戏者在该个系列中可以使用的单位或建筑物。

 

例如:执行动作(train knight-line)」可以生产当时计算机游戏者在骑士系列单位:骑士、骑兵及游侠中可以使用的兵种,这通常是以计算机游戏者研发了骑兵及游侠的升级科技与否来作冲量。 

 

以下事实会以上述方式使用系列百搭参数

 

building-available(建筑物可用)

can-afford-building(拥有建造建筑物资源)

can-afford-unit(拥有生产单位资源)

can-build(可建造建筑物)

can-build-wall(可建造围墙)

can-build-wall-with-escrow(可以贡品资源建造围墙) 

can-build-with-escrow(可以贡品资源建造建筑物)

can-train(可生产单位)

can-train-with-escrow(可以贡品资源生产单位)

unit-available(单位可用)

 

而以下动作会以上述方式使用系列百搭参数

 

build(建造)

build-forward(前线建造)

build-wall(建造围墙)

train(生产单位)

 

b) 系列百搭参数代表计算机游戏者所有属于该个系列中的单位或建筑物。

    

计算机游戏者物品计算事实通常采用这种方式使用系列百搭参数。例如:事实(unit-type-count militiaman-line > 5) 」会计算所有计算机游戏者民兵系列单位:民兵、装甲步兵、长剑兵、双手剑兵及剑兵勇士。虽然一个游戏者拥有数种同系列单位的状况十分罕见,但是在自订剧情游戏中或是经招降敌人单位后也可能会出现。

 

以下动作都会使用上述的重复计算法:

 

building-type-count(建筑物类别数量)

building-type-count-total(全部建筑物类别数量)

cc-players-building-type-count(游戏者建筑物类别绝对数量)

cc-players-unit-type-count(游戏者单位类别绝对数量)

players-building-type-count(游戏者建筑物类别数量)

players-unit-type-count(游戏者单位类别数量)

unit-type-count(单位类别数量)

unit-type-count-total(全部单位类别数量)

 

运算系列百搭参数时并不会比其它参数有任何延误,所以可以放心使用。


难易度参数

 

难易度参数是一种战略性的参数。它们应依据游戏难易度的差异来调整予不同的设定值。

 

      ability-to-dodge-missiles(回避力)

计算机游戏者的单位回避投射武器的机会率。有效值范围为 0 - 100 。默认值为 100 

 

举例来说,当对手以火炮攻击计算机游戏者的单位时,回避力将会影响该单位会否离开受火炮炮弹范围攻击所及之地段。更会回避攻击的单位会更难被杀死;当回避力 0 时,计算机游戏者会尽量回避所有来袭的投射武器攻击。

 

      ability-to-maintain-distance(持距力)

计算机游戏者的远距离攻击单位回避和敌人保持一定距离的机会率。有效值范围为 0 - 100 。默认值为 100 

 

例如当计算机游戏者用一个弓兵去攻击敌人的骑士时,持距力将会影响该弓兵会否在骑士冲向自己时一边后退、一边攻击。持距力设为 0 时,计算机游戏者的远距离攻击单位凡于受到攻击时都会保持一定距离。


「征服者入侵」人工智能游戏者之方针 

难易度 – 随机地图游戏

以下是「世纪帝国 II :征服者入侵」随机地图游戏中,人工智能游戏者按难易度的不同所会作出的行为之概要。

 

 

人工智能行为

最易

标准

最难

进行时代升级

在人类游戏者演进至该个时代之后

与初学游戏者近似或和最易难易度相同

近似于有一定经验的人类游戏者

尽快

最快;计算机游戏者将连手演进

先制攻击

永不

永不

偶尔

破除同盟

罕有

偶尔

建造城堡

罕有

偶尔

建造世界奇观

永不

偶尔

可能的状况下

可能的状况下

偶尔

势力扩张、资源收集

缓慢且会放弃已被占据的资源点

缓慢

快速

快速且主动防御资源点

快速且主动防御资源点和破坏对手资源点

以僧侣招降建筑物

永不

罕有

偶尔

以僧侣招降单位

罕有而少量

偶尔而缓慢

开始外交策略

中立

中立

中立或敌对

敌对

敌对

攻城战略

永不

偶尔

围墙与箭塔

永不

偶尔建造防御性箭塔

是;可能包括攻击性箭塔

与人类游戏者同盟

是(除非游戏将因而完结)

是(除非游戏将因而完结)

单人(除非游戏将因而完结)

永不

与计算机游戏者同盟

优先选择

优先选择

进行贸易

偶尔

联攻人类游戏者

偶尔

偶尔

是;会调整出协调的攻击策略,并且分配出最优化的建造策略等

其它

 

 

 

 

可获额外起始资源


「征服者入侵」的难易度 - 微操

 

当敌对单位与计算机游戏者单位达致以下的距离后,计算机游戏者单位将会以其为目标进行攻击:

 

    最易: 单位视野(可经由策略值「sn-easiest-reaction-percentage」修改)

    标准:    单位视野(可经由策略值「sn-easier-reaction-percentage」修改)

    中:  2 倍单位视野

    难:     2 倍单位视野

    最难:  2 倍单位视野

 

在最易难易度下,计算机游戏者不会搬运遗迹。

 

当一个非探索部队的计算机游戏者单位被敌人杀死后,它会容许提前进行首次攻击的时间如下所述:

 

    最易: 容许比预定时间提前 1 分钟进行攻击

    标准:    容许比预定时间提前 2 分钟进行攻击

    中: 容许立即进行攻击

    难:    容许立即进行攻击

    最难: 容许立即进行攻击

 

在大地之母的野狼或美洲豹杀死一个单位后,牠们会延迟下次攻击的时间为:

 

    最易:  35 

    标准:     30 

    中:  25 

    难:     20 

    最难:  15 

 

当游戏者单位与大地之母的野狼或美洲豹以下的距离后,牠们将会以其为目标进行攻击:

 

    最易:  0.5 倍单位视野

    标准:     0.75 倍单位视野

    中:  2 倍单位视野

    难:     2 倍单位视野

    最难:  2 倍单位视野

 

世界奇观竞赛模式中的难易度差异

 

最易:

仅生产 5 名村民。

不会研发轮轴技术、手推车、采金技术、采金装置、采石技术、采石装置、双面斧、弓形锯、双人锯、兽耕技术、重型耕犁或轮耕制度。 

 

标准: 

仅生产 10 名村民。

不会研发上述难易度最易内所述科技。 

 

中:

黑暗时代生产 35 名村民,封建时代生产 40 名村民,城堡时代生产 55 名村民。帝王时代没有限制,数量会以人口上限为准。(上述村民数量均以人口上限设为 75 时为基础。随着人口上限的不同设定,上述村民数量亦会不同。)

不会研发手推车、采金装置、采石装置、双人锯或轮耕制度。

 

难: 

生产和中难易度同样数量的村民。

 

最难: 

和难易度为难时一样。但每隔游戏时间 20 分钟,可以额外获得 500 单位的每种资源。

 

防御世界奇观模式中的难易度差异

 

最易: 

(set-strategic-number sn-percent-enemy-sighted-response 10)

(set-strategic-number sn-consecutive-idle-unit-limit 60)

(set-strategic-number sn-easiest-reaction-percentage 20)

(set-difficulty-parameter ability-to-maintain-distance 100)

(set-difficulty-parameter ability-to-dodge-missiles 100)

建设较少的居住房舍。

 

标准:

(set-strategic-number sn-percent-enemy-sighted-response 25)

(set-strategic-number sn-consecutive-idle-unit-limit 20)

(set-strategic-number sn-easier-reaction-percentage 20)

(set-strategic-number sn-hits-before-alliance-change 50)

(set-difficulty-parameter ability-to-maintain-distance 75)

(set-difficulty-parameter ability-to-dodge-missiles 75)

建设少量的居住房舍,但数量比和难易度为最易时多。

 

中: 

(set-strategic-number sn-percent-enemy-sighted-response 75)

(set-strategic-number sn-consecutive-idle-unit-limit 5)

(set-strategic-number sn-hits-before-alliance-change 25)

(set-difficulty-parameter ability-to-maintain-distance 50)

(set-difficulty-parameter ability-to-dodge-missiles 50)

 

难: 

(set-strategic-number sn-percent-enemy-sighted-response 99)

(set-strategic-number sn-consecutive-idle-unit-limit 1)

(set-strategic-number sn-hits-before-alliance-change 10)

(set-difficulty-parameter ability-to-maintain-distance 0)

(set-difficulty-parameter ability-to-dodge-missiles 0)

 

最难:

和难易度为难时一样,但可获得额外资源。

 

至尊王模式中的难易度差异

 

由于至尊王模式和标准随机地图游戏使用相同人工智能,故此两者难易度无异。


变数

规则变量

 

规则变量是限用于规则之中的变量。这表示规则变量之变量范围仅得一个规则,即只能够于同一规则中途予以指定及使用。

 

规则变量系统只会支持系统内置的一组默认变量。

 

以下列出所有有效的规则变量

 

this-any-ally(此一任何同盟游戏者)

this-any-computer(此一任何计算机游戏者)

this-any-computer-ally(此一任何同盟计算机游戏者)

this-any-computer-enemy(此一任何敌对计算机游戏者)

this-any-computer-neutral(此一任何中立计算机游戏者)

this-any-enemy(此一任何敌对游戏者)

this-any-human(此一任何人类游戏者)

this-any-human-ally(此一任何同盟人类游戏者)

this-any-human-enemy(此一任何敌对人类游戏者)

this-any-human-neutral(此一任何中立人类游戏者)

this-any-neutral(此一任何中立游戏者)

 

在下列的动作中,上述规则变量可以取代 <游戏者编号参数值的自变量:

 

chat-to-player(对游戏者送出交谈讯息)

chat-to-player-using-id(以字符串表对游戏者送出交谈讯息)

chat-to-player-using-range(以字符串表范围对游戏者送出交谈讯息)

clear-tribute-memory(清除游戏者贡品记忆)

set-stance(设定外交策略)

tribute-to-player(对游戏者送出贡品)

 

规则变量是经由于同一规则中,其事实内之相关百搭参数来设定的。例如:一个被成功设定的百搭参数any-enemy」,将会储存相同的结果到同一规则内的规则变量this-any-enemy」。

 

以下是一个关于如何在规则中利用规则变量的例子:

 

(defrule

   (players-civ any-enemy gothic) 

   =>

   (chat-to-player this-any-enemy "我知道你是哥德人!")

   (disable-self)

)

 

在这个例子中,事实players-civ」会找寻一个文明为哥德人的敌对游戏者。当找到有敌对游戏者是使用哥德人文明后,这个事实就会成立,并使整个规则开始启动。同一时间,规则内的百搭参数any-enemy」的结果也会储存到规则变量this-any-enemy」中。而由于使用了这个规则变量this-any-enemy」的动作chat-to-player」之执行,所以此名文明为哥德人的敌对游戏者将会收到计算机游戏者发出的交谈讯息。

 

您必须紧记规则变量的变量范围只有一个规则,亦即代表任何执行过的规则内的规则变量会变无效化。

 

例如:当以下的规则和上述的例子合并使用,计算机游戏者是不会送出交谈讯息「您好,我的哥德人敌人!」的

 

(defrule

   (true)

   =>

   (chat-to-player this-any-enemy "您好,我的哥德人敌人!") ; 这是永不会被送出的

   (disable-self)

)

 


定时器

定时器机制可使您指定在经过一定长度的时段间隔后,执行一个或以上的规则。对于每位计算机游戏者,最多可以同时启动 10 个的定时器

定时器事实

timer-triggered(定时器完成)

定时器动作

enable-timer(开启定时器)

disable-timer(关闭定时器)

例子

 

例子 1 

 

这是一个关于利用定时器来处理贡品要求的例子。在游戏开始 10 分钟后,计算机游戏者会提出贡品的要求,并且会花上 5 分钟的时间来等待贡品。

 

游戏开始 10 分钟后提出贡品要求,并且开启 5 分钟定时器。

 

(defrule 

  (game-time greater-than 600)

  =>

  (chat-to-player 1 "在以后的 5 分钟内给我 500 单位的黄金!")

  (clear-tribute-memory 1 gold)

  (enable-timer 1 300)

  (disable-self)

)

 

没有于定时内收到贡品,宣告游戏者 1 为敌人。

要留意的是在定时器倒数完成后,仍然需要明确指令将其关闭。

 

(defrule

  (timer-triggered 1)

  =>

  (disable-timer 1)

  (chat-to-player 1 "时间到了,我们是敌人了!")

  (set-stance 1 enemy)

)

 

于定时内收到贡品,并关闭定时器。

 

(defrule

  (players-tribute-memory 1 gold greater-or-equal 500)

  =>

  (disable-timer 1)

  (clear-tribute-memory 1 gold)

  (chat-to-player 1 "多谢了!")

)

 

例子 2

 

这是一个更为详尽的例子。它使用了二个定时器来使计算机游戏者每 15 分钟就会向玩家提出贡品的要求,并且会花上 5 分钟的时间来等待贡品。

 

首次设置 15 分钟定时器。

 

(defrule

  (true)

  =>

  (enable-timer 2 900)

  (disable-self)

)

 

 15 分钟提出贡品要求,并等待 5 分钟以收取。

重新开始 15 分钟的定时器。

 

(defrule 

  (timer-triggered 2)

  =>

  (disable-timer 2)

  (enable-timer 2 900)

  (chat-to-player 1 "在以后的 5 分钟内给我 500 单位的黄金!")

  (clear-tribute-memory 1 gold)

  (enable-timer 1 300)

)

 

没有于定时内收到贡品,宣告游戏者 1 为敌人。

毋需再次提出贡品要求,关闭二个定时器。

 

(defrule

  (timer-triggered 1)

  =>

  (disable-timer 1)

  (disable-timer 2)

  (chat-to-player 1 "时间到了,我们是敌人了!")

  (set-stance 1 enemy)

)

 

于定时内收到贡品,并关闭 分钟定时器。

 

(defrule

  (players-tribute-memory 1 gold greater-or-equal 500)

  =>

  (disable-timer 1)

  (clear-tribute-memory 1 gold)

  (chat-to-player 1 "多谢了!")

)

 


错误讯息

 

错误会在游戏开始时透过对话窗口报告给用户,但同一时间只会显示一个错误讯息。

错误报告形式

 

游戏者编号

文件名称

行数:错误码:简介

 

对于某些错误,行数是不对题的,故此可以予以忽略。

(例如:开启档案失败)

错误码的简介

 

ERR2xxx 句法错误

ERR3xxx 译码器错误

             ERR5xxx 档案错误

ERR6xxx 内存配置错误

ERR8xxx 其它错误

ERR9xxx 未归档错误

 

未归档错误是针对一些未处理的逻辑错误所作出的预防措施。

错误列表

 

ERR2001: Missing opening parenthesis(错误码2001:欠缺开括号)

ERR2002: Missing keyword(错误码2002:欠缺关键词)

ERR2003: Invalid keyword(错误码2003:无效关键词)

ERR2004: Missing identifier(错误码2004:欠缺标识符)

ERR2005: Invalid identifier(错误码2005:无效标识符)

ERR2006: Missing file name(错误码2006:欠缺文件名称)

ERR2007: Missing left-hand side (LHS) of the rule(错误码2007:欠缺规则左侧数据)

ERR2008: Missing arrow(错误码2008:欠缺箭号)

ERR2009: Missing right-hand side (RHS) of the rule(错误码2009:欠缺规则右侧数据)

             ERR2010: Missing closing quote(错误码2010:欠缺关引号)

ERR2011: Missing closing parenthesis(错误码2011:欠缺关括号)

ERR2012: Constant already defined(错误码2012:常数已定义)

ERR2013: Unexpected end-of-file(错误码2013:不正常档案终结)

 

             ERR3001: Invalid preprocessor directive(错误码3001:无效译码器指令)

                              译码器指令(条件性读取指令)不是以下的其中一条:

                              #load-if-defined

                              #load-if-not-defined

                              #else

                              #end-if

 

             ERR3002: Missing preprocessor symbol(错误码3002:失去译码器符号)

                               译码器指令(条件性读取指令)之后没有译码器符号(系统定义符号)。

 

             ERR3003: Preprocessor nesting too deep(错误码3003:译码器嵌套过深)

                               译码器指令(条件性读取指令)的嵌套超过 50 层。

 

             ERR3004: Unexpected #else(错误码3004:不正常「#else」)

                               缺乏「#load-if-defined」或「#load-if-not-defined」指令的「#else」指令。

 

             ERR3005: Unexpected #end-if(错误码3005:不正常「#end-if」)

                               缺乏「#load-if-defined」或「#load-if-not-defined」指令的「#end-if」指令。

 

             ERR3006: Missing #end-if(错误码3006:失去「#end-if」)

                               档案完结前有未完结的「#load-if-defined」或「#load-if-not-defined」指令。

 

ERR5001: File open failed(错误码5001:开启档案失败)

ERR5002: File read failed(错误码5002:读取档案失败)

ERR6001: List full(错误码6001:列表满溢)

ERR6002: Rule too long(错误码6002:规则满溢)

ERR6003: String table full(错误码6003:字符串表满溢)

ERR8001: No rules(错误码8001:没有规则)

ERR9000: Undocumented error(错误码9000:未归档错误)

ERR9001: Unexpected error(错误码9001:不正常错误)

替脚本有效除虫的提示

 

当检查到有错误时,您可以:

  - 点选「确定」以关闭错误对话窗口。

  - 按下「Alt」键及「Tab」键来跳出游戏。不用关闭游戏!

  - 利用文字编辑器枇编辑有错误的脚本档。

  - 再次切换至游戏之中。

  - 利用游戏选单重新开始游戏。 

您可以一直重复这一系列动作,直到人工智能脚本没有出现任何错误为止。

 

透过地图编辑器,您可以指定人工智能脚本在剧情游戏中执行。只要您在游戏者栏目下的性格选项中,选择有关人工智能脚本的名称即可。如果您是以随机地图来制造自订剧情,您就可以利用它来评鉴人工智能在不同地图种类上的表现。 

 

您可以利用队伍编号设定来使人工智能和其它游戏者(人类或计算机)同盟或与其它计算机游戏者展开对战。

 


  

数据类型

字符串

一个字符串就是一组以双引号「」为首的计算机所能显示的文字。而一个字符串亦是以双引号「」作完结。

符号

一个符号就是指一系列计算机所能显示的美国标准信息交换码字符。定界符可以用来决定一个符号的完结与否,而空白、跳位、输入、换列、开括号「(」、关括号「)」、甚至是用来启始注释的分号「;」都扮演着定界符的角色。另外,符号是区分大小写的。

 


附件 A - 内部策略值 (SN) 参考文件

 

文明策略值

 

sn-percent-civilian-explorers(探索工人比率)

可以控制探索工人占计算机游戏者村民的百分比,数值必须大于或等于 0 、小于或等于 100 。默认值是 34 

 

sn-percent-civilian-builders(建筑工人比率)

可以控制建筑工人占计算机游戏者村民的百分比,数值必须大于或等于 0 、小于或等于 100 。默认值是 0 

 

sn-percent-civilian-gatherers(采集工人比率)

可以控制采集工人占计算机游戏者村民的百分比,数值必须大于或等于 0 、小于或等于 100 。默认值是 66 

 

sn-cap-civilian-explorers(探索工人定额)

在计算探索工人比率后才会处理,可以设定担任探索工人的计算机游戏者村民数量。数值设为 -1 时会被忽略,而数值必须大于或等于 -1 。默认值是 2 

 

sn-cap-civilian-builders(建筑工人定额)

在计算建筑工人比率后才会处理,可以设定担任建筑工人的计算机游戏者村民数量。数值设为 -1 时会被忽略并且禁止计算机游戏者进行建造,而数值必须大于或等于 -1 。默认值是 2 

 

sn-cap-civilian-gatherers(采集工人定额)

在计算采集工人比率后才会处理,可以设定担任采集工人的计算机游戏者村民数量。数值设为 -1 时会被忽略,而数值必须大于或等于 -1 。默认值是 -1 

 

sn-total-number-explorers(探索单位总数)

在计算探索工人比率及组织探索部队后才会处理,可以设定计算机游戏者村民探索工人和士兵探索部队的总数。数值设为 -1 时会被忽略,而数值必须大于或等于 -1 。默认值是 4 

 

sn-minimum-civilian-explorers(最小探索工人数量)

可以设定最小担任探索工人的计算机游戏者村民数量,数值必须大于或等于 0 。默认值是 0 

 

sn-food-gatherer-percentage(食物采集工人比率)

在普通计算前就会处理,可以控制牧羊人、猎人、抢粮员、渔民、农夫占计算机游戏者采集工人的百分比,数值必须大于或等于 0 、小于或等于 100 。默认值是 0 

 

sn-gold-gatherer-percentage(黄金采集工人比率)

在普通计算前就会处理,可以控制金矿矿工占计算机游戏者采集工人的百分比,数值必须大于或等于 0 、小于或等于 100 。默认值是 0 

 

sn-stone-gatherer-percentage(石头采集工人比率)

在普通计算前就会处理,可以控制石矿矿工占计算机游戏者采集工人的百分比,数值必须大于或等于 0 、小于或等于 100 。默认值是 0 

 

sn-wood-gatherer-percentage(木材采集工人比率)

在普通计算前就会处理,可以控制伐木工人占计算机游戏者采集工人的百分比,数值必须大于或等于 0 、小于或等于 100 。默认值是 0 

 

sn-number-enemy-objects-required(减少探索工人所需可视敌对对象数量)

当计算机游戏者看到上述数量的敌对对象后,就会容许它减少探索工人数量成为最小程度。数值必须大于或等于 0 。默认值是 10 

 

sn-retask-gather-amount(最小再指派采集工人采集数量)

在容许计算机游戏者再指派一个采集工人到其它类别的资源前,他或她最少要采集上述数量单位的原采集中资源。部分代码可以覆盖这个策略值。数值必须大于或等于 0 。默认值是 20 

 

sn-max-retask-gather-amount(最大再指派采集工人采集数量)

在容许计算机游戏者再指派一个采集工人到其它类别的资源前,他或她最多要采集上述数量单位的原采集中资源。部分代码可以覆盖这个策略值。数值必须大于或等于 0 。默认值是 40 

 

sn-initial-exploration-required(首次建造所需已探索地图百分比)

在容许计算机游戏者建造建筑物前,它必须先探索达致上述数量的已探索地图百分比。数值必须大于或等于 0 、小于或等于 100 。默认值是 2 

 

sn-use-by-type-max-gathering(分类最大再指派采集系统)

可以控制计算机游戏者的分类最大再指派采集系统启动与否。数值必须是 0  1  0 代表关闭, 1 代表开启。默认值是 0 

分类最大再指派采集系统是指按对所采集资源分类的采集工人,其配置是会依据再指派采集工人采集数量(在容许再指派一个采集工人到其它类别的资源前,他或她要采集的原采集中资源数量)来决定的

 

sn-percent-half-exploration(探索单位减半所需已探索地图百分比)

在容许计算机游戏者减半探索单位前,它必须先探索达致上述数量的已探索地图百分比。数值必须大于或等于 0 、小于或等于 100 。默认值是 30 

 

sn-minimum-boar-hunt-group-size(最小野猪猎人部队规模)

在容许计算机游戏者猎杀野猪前,它必须先集合上述数量的猎人。数值必须大于或等于 1 。默认值是 5 

 

sn-number-forward-builders(前线建筑工人数量)

可以控制担任在敌人市镇附近建造建筑物的建筑工人的计算机游戏者村民数量,数值必须大于或等于 0 。默认值是 0 

前线建筑工人是指由于地形配置在海岛上或受限于围墙的关系,使得其必须登上运输船渡过水域执行工作的村民。除非计算机游戏者的村民一定要登上运输船后才可进行工作,否则在一般游戏下是毋须设定前线建筑工人数量的。

 

sn-intelligent-gathering(智能采集系统)

可以控制计算机游戏者的智能采集系统启动与否,数值必须是 0  1  0 代表关闭, 1 代表开启。默认值是 0 

 


部队策略值

 

sn-group-commander-selection-method(部队长选择方式)

设定计算机游戏者对部队的选择部队长方式。 0 代表选择最大生命值的单位, 1 代表选择最小生命值的单位, 2 代表选择最大射程的单位。部队长只会在组织部队时或原部队长死亡后进行设定。数值必须大于或等于 0 、小于或等于 2 。默认值是 3 

 

sn-consecutive-idle-unit-limit(部队闲置时限)

计算机游戏者的一个部队中所有的单位在经过上述数量的连续游戏时间秒数下都保持闲置时,这个部队就会被设成闲置部队。这个策略值只会有进行攻击或撤退时才会用到。数值必须大于或等于 0 。默认值是 15 

 

sn-task-ungrouped-soldiers(指派未归队士兵)

可以控制计算机游戏者会否指派未被编入任何部队的士兵分散各处防卫城镇。数值必须是 0  1  0 代表关闭, 1 代表开启。默认值是 1 

 


攻击部队策略值

 

sn-number-attack-groups(攻击部队数量)

设定计算机游戏者要组织的陆上军事单位攻击部队的数量。数值必须大于或等于 0 。默认值是 0 

然而,策略值「sn-percent-attack-soldiers」其实可以产生更好的效果。

 

sn-minimum-attack-group-size(最小攻击部队规模)

设定计算机游戏者陆上军事单位攻击部队的最小单位数量,在集合上述数量的陆上军事单位前,计算机游戏者不能组织任何的攻击部队。数值必须大于或等于 0 。默认值是 4 

然而,游戏可自行改变此策略值的数值。

 

sn-maximum-attack-group-size(最大攻击部队规模)

设定计算机游戏者陆上军事单位攻击部队的最大单位数量。数值必须大于或等于 0 及最小攻击部队规模。默认值是 10 

 

sn-group-form-distance(部队组织距离)

设定计算机游戏者组织陆上军事单位攻击部队时,会选择距离部队集合点有多远的单位。如果生产单位的建筑物很遥远,就必须调高此策略值的数值。默认值是 20 

 

sn-scale-minimum-attack-group-size(最小估算攻击部队规模)

是最小攻击部队规模的定标因子,会在计算机游戏者进行估算时加入sn-minimum-attack-group-size」。默认值是 0 

 

sn-scale-maximum-attack-group-size(最大估算攻击部队规模)

是最小攻击部队规模的定标因子,会在计算机游戏者进行估算时加入sn-maximum-attack-group-size」。默认值是 1 

 

sn-attack-group-size-randomness(攻击部队规模随机性)

是攻击部队规模的随机因子,可以设定随机因子占计算机游戏者最小攻击部队规模的数量。随机因子只会在组织部队时进行设定,而数值将是介于 0 策略值的数值之间。默认值是 1  

 

sn-attack-group-gather-spacing(攻击部队集合点留间隔)

可以控制计算机游戏者在完成组织陆上军事单位攻击部队前,被编入部队的士兵最少要进入距离部队集合点有多远的区域。数值必须大于或等于 1 。默认值是 4 

 

sn-group-leader-defense-distance(部队长防御距离)

设定计算机游戏者部队长护卫士兵的防御距离。数值必须大于或等于 1 。默认值是 3 

 

sn-percent-attack-soldiers(攻击士兵比率)

设定计算机游戏者下次执行「attack-now」动作时,被指派到攻击部队的防御士兵比率(会随难易度高低而有所调整)。所有新生产的陆上军事单位,于计算机游戏者下次执行「attack-now」动作前都保持是防御士兵。虽然这个策略值只须设定一次就会生效,可是它亦能在有需要时作更改。当不使用「sn-number-defend-groups」时,「sn-percent-attack-soldiers」会有最佳的效果。例如:当 10 个士兵在防御计算机游戏者的市镇时,而sn-percent-attack-soldiers」的数值是 50 ,那它进攻的时候就会派出 5 名的士兵。数值必须大于或等于 0 、小于或等于 100 。默认值是 75 

 

sn-percent-attack-boats(攻击战船比率)

设定计算机游戏者下次执行「attack-now」动作时,被指派到攻击战船部队的防御战船比率(会随难易度高低而有所调整)。所有新生产的水上军事单位,于计算机游戏者下次执行「attack-now」动作前都保持是防御战船。虽然这个策略值只须设定一次就会生效,可是它亦能在有需要时作更改。数值必须大于或等于 0 、小于或等于 100 。默认值是 75 

 

sn-ignore-attack-group-under-attack(忽略被攻击的攻击部队)

功能不明。默认值是 0 


其它攻击策略值

 

sn-percent-enemy-sighted-response(敌视回应比率)

设定闲置部队对其他被攻击的计算机游戏者单位作出救援响应的比率。数值必须大于或等于 0 、小于或等于 100 。默认值是 50 

 

sn-enemy-sighted-response-distance(敌视回应距离)

设定当计算机游戏者单位受到攻击时,周遭多远的区域中的其它部队会有作出救援响应的判定。数值必须大于或等于 0 、小于或等于 144 。默认值是 25 

 

sn-blot-exploration-map(再探索地图)

可以控制计算机游戏者单位会否对已探索的地图区域再次进行探索。数值必须是 0  1  0 代表关闭, 1 代表开启。默认值是 1 

 

sn-blot-size(再探索地图面积)

可以控制计算机游戏者再探索地图所覆盖的地图区域面积。数值必须大于或等于 0 、小于或等于地图尺寸 。默认值是 15 

 

sn-maximum-gaia-attack-response(最大村民反应野生动物人数)

当计算机游戏者村民受到大地之母野生动物攻击时,最多会有上述数量的其它计算机游戏者村民作出救援响应。数值必须大于或等于 0 。默认值是 3 

 

sn-attack-separation-time-randomness(攻击间隔时间随机性)

设定计算计算机游戏者的攻击间隔时间时所包括的随机因子数量。默认值是 15 

 

sn-attack-intelligence(智能攻击系统)

可以控制计算机游戏者的智能攻击系统启动与否。数值必须是 0  1  0 代表关闭, 1 代表开启。默认值是 0 

智能攻击系统是指计算机游戏者进攻时,会试图回避有敌人单位驻防的区域,并从另一方向发动攻击。

 

sn-initial-attack-delay(首次攻击延迟时限)

在容许计算机游戏者进行首次攻击前,所一定要经过的游戏时间秒数。数值必须大于或等于 0 。默认值是 0 

 

sn-initial-attack-delay-type(首次攻击延迟类别)

可以控制计算机游戏者延迟首次攻击的方式。 1 代表以建造列表来停止延迟, 2 代表以「sn-initial-attack-delay」计时停止, 3 代表当计算机游戏者被非大地之母游戏者攻击时容许进攻,而 0 代表以上三种情况共享。默认值是 0 

 

sn-garrison-rams(进驻冲撞车)

可以控制计算机游戏者会否在攻击部队出发前尝试把步兵单位进驻到冲撞车中(不一定会成功)。数值必须是 0  1  0 代表关闭, 1 代表开启。默认值是 1 


防御部队策略值

 

sn-number-defend-groups(防御部队数量)

设定计算机游戏者要组织的陆上军事单位防御部队的数量。数值必须大于或等于 0 。默认值是 0 

 

sn-minimum-defend-group-size(最小防御部队规模)

设定计算机游戏者陆上军事单位防御部队的最小单位数量,在集合上述数量的陆上军事单位前,计算机游戏者不能组织任何的防御部队。数值必须大于或等于 0 。默认值是 1 

 

sn-maximum-defend-group-size(最大防御部队规模)

设定计算机游戏者陆上军事单位防御部队的最大单位数量。数值必须大于或等于 0 及最小防御部队规模。默认值是 4 

 

sn-gold-defend-priority(金矿防御等级)

设定计算机游戏者对金矿的优先防御次序。 0 防御等级代表金矿不受任何保护, 1 防御等级代表金矿受到最高保护。数值必须大于或等于 0 、小于或等于 7 。默认值是 0 

 

sn-stone-defend-priority(石矿防御等级)

设定计算机游戏者对石矿的优先防御次序。 0 防御等级代表石矿不受任何保护, 1 防御等级代表石矿受到最高保护。数值必须大于或等于 0 、小于或等于 7 。默认值是 0 

 

sn-forage-defend-priority(果树丛防御等级)

设定计算机游戏者对果树丛的优先防御次序。 0 防御等级代表果树丛不受任何保护, 1 防御等级代表果树丛受到最高保护。数值必须大于或等于 0 、小于或等于 7 。默认值是 0 

 

sn-relic-defend-priority(遗迹防御等级)

设定计算机游戏者对石矿的优先防御次序。 0 防御等级代表遗迹不受任何保护, 1 防御等级代表遗迹受到最高保护。数值必须大于或等于 0 、小于或等于 7 。默认值是 0 

 

sn-town-defend-priority(城镇防御等级)

设定计算机游戏者对城镇的优先防御次序。 0 防御等级代表城镇不受任何保护, 1 防御等级代表城镇受到最高保护。数值必须大于或等于 0 、小于或等于 7 。默认值是 0 

 

sn-defense-distance(防御距离)

在上述数量的距离中,计算机游戏者的对象会受到保护(不包括城镇)。数值必须大于或等于 0 。默认值是 3 

 

sn-sentry-distance(站岗距离)

在上述数量的距离中,计算机游戏者的城镇会受到保护。数值必须大于或等于 0 。默认值是 12 

 

sn-sentry-distance-variation(站岗距离变量)

为计算机游戏者的防御距离及站岗距离设定其容许出现的变量。数值必须大于或等于 0 。默认值是 2 

 

sn-defend-overlap-distance(防御部队互搭距离)

设定一个计算机游戏者防御部队影响范围所及的距离,而每个防御部队将会被排列成各自的影响范围不会相互重复。数值必须大于或等于 0 。默认值是 5 

 

sn-gather-idle-soldiers-at-center(集中闲置士兵)

可以控制计算机游戏者会否将城镇防御集合点移至地图中央附近 6 个格子的区域,并将闲置或撤退部队的士兵聚集到该处。然而,计算机游戏者却不会对地图中心作出陆上单位能否到达的判断。当进行至尊王一类要求计算机游戏者单位抢夺中央区域控制权的游戏时,此策略值会很有用。数值必须是 0  1  0 代表关闭, 1 代表开启。默认值是 1 

 

sn-gather-defense-units(聚集防御部队)

功能不明。默认值是 0 


探索部队策略值

 

sn-number-explore-groups(探索部队数量)

设定计算机游戏者要组织的陆上军事单位探索部队的数量。数值必须大于或等于 0 。默认值是 0 

 

sn-minimum-explore-group-size(最小探索部队规模)

设定计算机游戏者陆上军事单位探索部队的最小单位数量,在集合上述数量的陆上军事单位前,计算机游戏者不能组织任何的探索部队。数值必须大于或等于 0 。默认值是 1 

 

sn-maximum-explore-group-size(最大探索部队规模)

设定计算机游戏者陆上军事单位探索部队的最大单位数量。数值必须大于或等于 0 及最小探索部队规模。默认值是 1 


战船攻击部队策略值

 

sn-number-boat-attack-groups(战船攻击部队数量)

设定计算机游戏者要组织的水上军事单位攻击部队的数量。数值必须大于或等于 0 。默认值是 0 

 

sn-minimum-boat-attack-group-size(最小战船攻击部队规模)

设定计算机游戏者水上军事单位攻击部队的最小单位数量,在集合上述数量的水上军事单位前,计算机游戏者不能组织任何的战船攻击部队。数值必须大于或等于 0 。默认值是 1 

 

sn-maximum-boat-attack-group-size(最大战船攻击部队规模)

设定计算机游戏者水上军事单位攻击部队的最大单位数量。数值必须大于或等于 0 及最小战船攻击部队规模。默认值是 5  


战船防御部队策略值

 

sn-number-boat-defend-groups(战船防御部队数量)

设定计算机游戏者要组织的水上军事单位防御部队的数量。数值必须大于或等于 0 。默认值是 0 

 

sn-minimum-boat-defend-group-size(最小战船防御部队规模)

设定计算机游戏者水上军事单位防御部队的最小单位数量,在集合上述数量的水上军事单位前,计算机游戏者不能组织任何的战船防御部队。数值必须大于或等于 0 。默认值是 0 

 

sn-maximum-boat-defend-group-size(最大战船防御部队规模)

设定计算机游戏者水上军事单位防御部队的最大单位数量。数值必须大于或等于 0 及最小战船防御部队规模。默认值是 0 

 

sn-dock-defend-priority(码头防御等级)

设定计算机游戏者对码头的优先防御次序。 0 防御等级代表码头不受任何保护, 1 防御等级代表码头受到保护。数值必须是 0  1 。默认值是 0 


战船探索部队策略值

 

sn-number-boat-explore-groups(战船探索部队数量)

设定计算机游戏者要组织的水上军事单位探索部队的数量。数值必须大于或等于 0 。默认值是 0 

 

sn-minimum-boat-explore-group-size(最小战船探索部队规模)

设定计算机游戏者水上军事单位探索部队的最小单位数量,在集合上述数量的水上军事单位前,计算机游戏者不能组织任何的战船探索部队。数值必须大于或等于 0 。默认值是 1 

 

sn-maximum-boat-explore-group-size(最大战船探索部队规模)

设定计算机游戏者水上军事单位探索部队的最大单位数量。数值必须大于或等于 0 及最小战船探索部队规模。默认值是 2 


城镇及建筑物策略值

 

sn-minimum-town-size(最小城镇规模)

设定计算机游戏者游戏城镇的建筑物数量。数值必须大于或等于 0 。默认值是 12 

 

sn-maximum-town-size(最大城镇规模)

设定计算机游戏者游戏城镇的建筑物数量。数值必须大于或等于 0 及最小城镇规模。默认值是 20 

 

sn-camp-max-distance(最大营地距离)

设定计算机游戏者建造伐木厂或采矿营地的配置最高可以距离城镇中心多远。数值必须大于或等于 0 。默认值是 25 

 

sn-mill-max-distance(最大磨坊距离)

设定计算机游戏者建造磨坊的配置最高可以距离城镇中心多远。数值必须大于或等于 0 。默认值是 100 

 

sn-minimum-water-body-size-for-dock(最小建造码头水域面积)

当计算机游戏者建造码头前,所配置的水域之面积最少要有上述数量的格子。数值必须大于或等于 10 。默认值是 300 

 

sn-max-build-plan-gatherer-percentage(最大采集工人指派比率)

依据游戏开始前所厘定的建造列表,计算机游戏者最多会指派上述百分比的采集工人进行工作。数值必须大于或等于 0 、小于或等于 100 。默认值是 50 

 

sn-food-dropsite-distance(食物储存所距离)

计算机游戏者最多只会在距离果树丛上述数量的格子范围内建造磨坊。数值必须大于或等于 3 。默认值是 3 

 

sn-wood-dropsite-distance(木材储存所距离)

计算机游戏者最多只会在距离树林上述数量的格子范围内建造伐木厂。数值必须大于或等于 3 。默认值是 3 

 

sn-stone-dropsite-distance(石头储存所距离)

计算机游戏者最多只会在距离石矿上述数量的格子范围内建造采矿营地。数值必须大于或等于 3 。默认值是 3 

 

sn-gold-dropsite-distance(黄金储存所距离)

计算机游戏者最多只会在距离金矿上述数量的格子范围内建造采矿营地。数值必须大于或等于 3 。默认值是 3 

 

sn-minimum-dropsite-buffer(最小储存所缓冲区距离)

控制计算机游戏者会将磨坊、伐木厂及采矿营地和敌人城镇中心保持多大的距离。默认值是 25 

 

sn-random-placement-factor(建造建筑物配置随机性)

设定配置计算机游戏者建造建筑物时所包括的随机因子数量(不包括已计算者)。数值必须大于或等于 0 。默认值是 50 

 

sn-required-forest-tiles(建造伐木厂所需树林方格)

当计算机游戏者建造首幢伐木厂前,必须先发见有上述数量的格子的森林区域。数值必须大于或等于 0 。默认值是 10 


目标评估策略值

 

sn-target-evaluation-distance(距离目标评估等级)

设定在计算机游戏者评估目标时目标单位距离所占的乘数大小。默认值是 50 

 

sn-target-evaluation-hitpoints(生命值目标评估等级)

设定在计算机游戏者评估目标时目标单位最大生命值所占的乘数大小。默认值是 0 

 

sn-target-evaluation-damage-capability(耐久性目标评估等级)

设定在计算机游戏者评估目标时目标单位现在生命值所占的乘数大小。默认值是 0 

 

sn-target-evaluation-kills(杀敌目标评估等级)

设定在计算机游戏者评估目标时目标杀敌人数所占的乘数大小。默认值是 0 

 

sn-target-evaluation-ally-proximity(同盟游戏者数量目标评估等级)

设定在计算机游戏者评估目标时目标单位射程范围内同盟游戏者数量所占的乘数大小。默认值是 0 

 

sn-target-evaluation-rof(开火速率目标评估等级)

设定在计算机游戏者评估目标时目标单位开火速率所占的乘数大小。默认值是 0 

 

sn-target-evaluation-randomness(随机性目标评估等级)

设定在计算机游戏者评估目标时随机因子所占的乘数大小。默认值是 0 

 

sn-target-evaluation-attack-attempts(攻击次数目标评估等级)

设定在计算机游戏者评估目标时目标发动攻击次数所占的乘数大小。默认值是 -25 

 

sn-target-evaluation-range(射程目标评估等级)

设定在计算机游戏者评估目标时目标单位射程所占的乘数大小。默认值是 0 

 

sn-special-attack-type1(首位特殊攻击类别)

设定计算机游戏者专心攻击的第一类单位。数值设为 -1 时会被忽略,而数值必须是一个有效的单位号码或 -1 。默认值是 -1 。(将数值设为 1 以攻击修道院)

 

sn-special-attack-type2(次位特殊攻击类别)

设定计算机游戏者专心攻击的第二类单位。数值设为 -1 时会被忽略,而数值必须是一个有效的单位号码或 -1 。默认值是 -1 

 

sn-special-attack-type3(三位特殊攻击类别)

设定计算机游戏者专心攻击的第三类单位。数值设为 -1 时会被忽略,而数值必须是一个有效的单位号码或 -1 。默认值是 -1 。(将数值设为 1 以攻击世界奇观)

 

sn-special-attack-influence1(特殊攻击类别目标评估等级)

设定在计算机游戏者评估目标时首位特殊攻击类别所占的乘数大小。数值大于或等于 0 时代表计算机游戏者会试图专心攻击该类单位,小于 0 时代表计算机游戏者会试图避免攻击该类单位。

 

sn-target-evaluation-continent(邻接陆地附加目标评估等级)

设定在计算机游戏者评估目标时对和部队长位于同一陆地区块上的目标的附加乘数。数值大于 0 时代表计算机游戏者会试图攻击在邻接陆地的单位,等于 0 时代表此情况无特殊影响力。默认值是 100 

 

 

 

 

sn-target-evaluation-siege-weapon(攻城武器附加目标评估等级)

设定在计算机游戏者评估目标时攻城武器对建筑物的附加乘数(同时是非攻城武器对建筑物的减免乘数)。数值大于 0 时代表计算机游戏者的攻城武器会试图攻击建筑物而非攻城武器会试图避免攻击建筑物,等于 0 时代表此情况无特殊影响力。默认值是 0 

 

sn-target-evaluation-boat(战船附加目标评估等级)

设定在计算机游戏者评估目标时陆上军事单位对战船的附加乘数。数值大于 0 时代表计算机游戏者的陆上军事单位会试图攻击战船,等于 0 时代表此情况无特殊影响力,小于 0 时代表计算机游戏者陆上军事单位会试图避免攻击战船。默认值是 0 

 

sn-target-evaluation-time-kill-ratio(杀敌时间目标评估等级)

设定在计算机游戏者评估目标时杀死目标所需时间所占的乘数大小。默认值是 0  

 

sn-target-evaluation-in-progress(正被攻击目标评估等级)

设定在计算机游戏者评估目标时对正被攻击的目标持续进行攻击所占的乘数大小。默认值是 50 


其它策略值

 

sn-do-not-scale-for-difficulty-level(关闭难易度自动估算) 

可以控制关闭计算机游戏者自动难易度估算系统的启动与否,可以查阅本文件的《难易度  随机地图游戏》章节。数值必须是 0  1  0 代表开启, 1 代表关闭。默认值是 1 

 

sn-relic-return-distance(搬运遗迹距离)

设定距离计算机游戏者城镇中心多远的遗迹会被列入搬运回修道院的范围。数值必须大于或等于 0 。默认值是 10 

 

sn-minimum-peace-like-level(最小同盟友好度)

设定容许计算机游戏者和其它游戏者同盟前所须达致的友好度。数值必须大于或等于 0 、小于或等于 100 。默认值是 85 

 

sn-percent-exploration-required(再指派探索工人所需已探索地图百分比)

在容许计算机游戏者再指派探索工人到其它工作前,它必须先探索达致上述数量的已探索地图百分比。数值必须大于或等于 0 、小于或等于 100 。默认值是 100 

 

sn-zero-priority-distance(零指令等级距离)

在上述数量的距离内,计算机游戏者对单位的指令会有 0 等级的优先次序。数值必须大于或等于 0 、小于或等于 144 。默认值是 50 

 

sn-scaling-frequency(估算频率)

设定计算机游戏者每隔多少游戏时间分钟数就进行一次估算。数值必须大于或等于 0。默认值是 10 

 

sn-build-frequency(更替频率)

设定计算机游戏者于每次生产单位或研究科技间所进行的更替数量。数值必须大于或等于 0。默认值是 1 

 

sn-save-scenario-information(储存剧情学习信息)

可以控制计算机游戏者会否在剧情完结时储存相关学习信息。数值必须是 0  1  0 代表关闭, 1 代表开启。默认值是 0 

 

sn-number-build-attempts-before-skip(忽略建造所需建造次数)

在容许计算机游戏者将某项未建造建筑物计划列入忽略状态前,它最多会尝试建造该建筑物上述数量的次数。数值必须大于或等于 1。默认值是 25 

 

sn-max-skips-per-attempt(最大忽略建造次数)

设定计算机游戏者最多可以将多少项未建造建筑物计划列入忽略状态,而以后的其它未建造建筑物计划就将被判定成失败(原因是距离建筑物原配置地点太远)。数值必须大于或等于 1。默认值是 10 

 

sn-minimum-amount-for-trading(最小贸易数量)

在容许计算机游戏者使用某种资源作贸易前,它必须先有上述数量单位的该种资源。数值必须大于或等于 0。默认值是 50 

 

sn-hits-before-alliance-change(解除同盟攻击次数)

在容许计算机游戏者改变对同盟游戏者的外交策略前,它可以容许自己的单位被该游戏者攻击上述的次数。数值必须大于或等于 0。默认值是 3 

 

sn-attack-diplomacy-impact(攻击对友好度影响力)

计算机游戏者受到其它游戏者攻击后,它会调整对该游戏者的外交友好度的数值。数值必须大于或等于 0 、小于或等于 100 。默认值是 10 

 

sn-easiest-reaction-percentage(最易难易度反应视野比率)

设定在最易难易度下,当敌对单位与计算机游戏者单位达致等同于其上述百分比的视野距离后,计算机游戏者单位将会以其为目标进行攻击。此策略值只适用于战役或单人剧情游戏中。数值必须大于或等于 0 、小于或等于 100 。默认值是 100 

 

sn-easier-reaction-percentage(标准难易度反应视野比率)

设定在标准难易度下,当敌对单位与计算机游戏者单位达致等同于其上述百分比的视野距离后,计算机游戏者单位将会以其为目标进行攻击。此策略值只适用于战役或单人剧情游戏中。数值必须大于或等于 0 、小于或等于 100 。默认值是 100 

 

sn-track-player-history(追踪游戏者历史)

可以控制计算机游戏者会否追踪人类游戏者倾向的战术。数值必须是 0  1  0 代表关闭, 1 代表开启。默认值是 1 

 

sn-attack-winning-player(攻击积分领先游戏者)

可以控制计算机游戏者会否专心攻击积分领先的游戏者(在有超过一个以上的敌对游戏者时)。数值必须是 0  1  0 代表关闭, 1 代表开启。默认值是 0 

 

sn-coop-share-information(同盟计算机游戏者共享信息)

可以控制容许同盟计算机游戏者共享探索所得信息与否(和制图学不同,这种情况甚至和二个人类游戏者交谈无异)。数值必须是 0  1  0 代表不容许, 1 代表容许。默认值是 1 

 

sn-attack-winning-player-factor(攻击积分领先游戏者因子)

当策略值sn-attack-winning-player」的数值为 1 时,此策略值便可厘定其影响力。数值必须大于或等于 0 、小于或等于 100 。默认值是 25 

 

sn-coop-share-attacking(同盟计算机游戏者合作攻防)

可以控制容许同盟计算机游戏者合作攻防相互支持与否。数值必须是 0  1  0 代表不容许, 1 代表容许。默认值是 1 

 

sn-coop-share-attacking-interval(同盟计算机游戏者合作攻防间隔时间)

可以控制计算机游戏者每隔多少游戏时间秒数就能向其它同盟计算机游戏者要求支持。数值必须大于或等于 0 。默认值 120 

 

sn-percentage-explore-exterminators(探索部队突击士兵比率)

设定在陆上军事单位探索部队中,有多少个百分比的士兵会同时担任突击部队。数值必须大于或等于 0 、小于或等于 100 。默认值是 25 

 

sn-maximum-wood-drop-distance(最大采集木材距离)

可以控制计算机游戏者的伐木工人会砍伐距离伐木厂或城镇中心多少个格子的树木。数值设为 -1 时会被忽略(意指「任何距离」)。默认值是 -1 

 

sn-maximum-food-drop-distance(最大采集食物距离)

可以控制计算机游戏者的采粮员会采集距离磨坊或城镇中心多少个格子的果树丛。数值设为 -1 时会被忽略(意指「任何距离」)。默认值是 -1 

 

 

 

sn-maximum-hunt-drop-distance(最大狩猎距离)

可以控制计算机游戏者的猎人会狩猎距离磨坊或城镇中心多少个格子的鹿、野猪或狼。数值设为 -1 时会被忽略(意指「任何距离」)。默认值是 -1 

 

sn-maximum-fish-boat-drop-distance(最大渔船捕渔距离)

可以控制计算机游戏者的渔船会捕捉距离码头多少个格子的沿海鱼群、鱼或大鱼。数值设为 -1 时会被忽略(意指「任何距离」)。默认值是 -1 

 

sn-maximum-gold-drop-distance(最大采集黄金距离)

可以控制计算机游戏者的金矿矿工会开采距离采矿营地或城镇中心多少个格子的金矿。数值设为 -1 时会被忽略(意指「任何距离」)。默认值是 -1 

 

sn-maximum-stone-drop-distance(最大采集石头距离)

可以控制计算机游戏者的石矿矿工会开采距离采矿营地或城镇中心多少个格子的石矿。数值设为 -1 时会被忽略(意指「任何距离」)。默认值是 -1 

 

sn-allow-civilian-defense(容许村民自卫)

可以控制计算机游戏者容许村民自卫与否。数值必须是 0  1  0 代表不容许, 1 代表容许。默认值是 1 

 

sn-do-not-transport-from-same-zone(关闭相同区域运输)

功能不明。默认值是 0 

 

sn-number-max-skip-cycles(最大忽略建造循环数量)

功能不明。默认值是 50 

 


附件 B - 策略值 (SN) 默认值

(源自内部代码)

 

34 sn-percent-civilian-explorers

sn-percent-civilian-builders

66 sn-percent-civilian-gatherers

sn-cap-civilian-explorers

sn-cap-civilian-builders

-1 sn-cap-civilian-gatherers

4 sn-minimum-attack-group-size

4 sn-total-number-explorers 

50 sn-percent-enemy-sighted-response

25 sn-enemy-sighted-response-distance

12 sn-sentry-distance

10 sn-relic-return-distance 

1 sn-minimum-defend-group-size

10 sn-maximum-attack-group-size

4 sn-maximum-defend-group-size

85 sn-minimum-peace-like-level 

100 sn-percent-exploration-required

50 sn-zero-priority-distance

0 sn-minimum-civilian-explorers

0 sn-number-attack-groups

0 sn-number-defend-groups

4 sn-attack-group-gathers-pacing

0 sn-number-explore-groups

1 sn-minimum-explore-group-size

1 sn-maximum-explore-group-size

0 sn-gold-defend-priority

0 sn-stone-defend-priority

0 sn-forage-defend-priority

0 sn-relic-defend-priority

7 sn-town-defend-priority

3 sn-defense-distance

0 sn-number-boat-attack-groups

1 sn-minimum-boat-attack-group-size

5 sn-maximum-boat-attack-group-size

0 sn-number-boat-explore-groups

1 sn-minimum-boat-explore-group-size

2 sn-maximum-boat-explore-group-size

0 sn-number-boat-defend-groups

0 sn-minimum-boat-defend-group-size

0 sn-maximum-boat-defend-group-size

0 sn-dock-defend-priority

2 sn-sentry-distance-variation

12 sn-minimum-town-size

20 sn-maximum-town-size

3 sn-group-commander-selection-method

15 sn-consecutive-idle-unit-limit

50 sn-target-evaluation-distance

0 sn-target-evaluation-hitpoints

0 sn-target-evaluation-damage-capability

0 sn-target-evaluation-kills

0 sn-target-evaluation-ally-proximity

0 sn-target-evaluation-rof

0 sn-target-evaluation-randomness

25 sn-camp-max-distance

100 sn-mill-max-distance

-25 sn-target-evaluation-attack-attempts

0 sn-target-evaluation-range

5 sn-defend-overlap-distance

1 sn-scale-minimum-attack-group-size

0 sn-scale-maximum-attack-group-size

1 sn-attack-group-size-randomness

10 sn-scaling-frequency

3 sn-maximum-gaia-attack-response

1 sn-build-frequency

15 sn-attack-separation-time-randomness

0 sn-attack-intelligence

0 sn-initial-attack-delay

0 sn-save-scenario-information

-1 sn-special-attack-type1

-1 sn-special-attack-type2

-1 sn-special-attack-type3

0 sn-special-attack-influence1

300 sn-minimum-water-body-size-for-dock

25 sn-number-build-attempts-before-skip

10 sn-max-skips-per-attempt

0 sn-food-gatherer-percentage

0 sn-gold-gatherer-percentage

0 sn-stone-gatherer-percentage

0 sn-wood-gatherer-percentage

100 sn-target-evaluation-continent

0 sn-target-evaluation-siege-weapon

3 sn-group-leader-defense-distance

0 sn-initial-attack-delay-type

1 sn-blot-exploration-map

15 sn-blot-size

0 sn-intelligent-gathering

1 sn-task-ungrouped-soldiers

0 sn-target-evaluation-boat

10 sn-number-enemy-objects-required

50 sn-number-max-skip-cycles

20 sn-retask-gather-amount

40 sn-max-retask-gather-amount

50 sn-max-build-plan-gatherer-percentage

3 sn-food-dropsite-distance

3 sn-wood-dropsite-distance

3 sn-stone-dropsite-distance

3 sn-gold-dropsite-distance

2   sn-initial-exploration-required

50  sn-random-placement-factor

10  sn-required-forest-tiles

10  sn-attack-diplomacy-impact

30  sn-percent-half-exploration

20  sn-target-evaluation-time-kill-ratio

50  sn-target-evaluation-in-progress

1   sn-attack-winning-player

1 sn-coop-share-information

25 sn-attack-winning-player-factor

1 sn-coop-share-attacking

120 sn-coop-share-attacking-interval

50 sn-percentage-explore-exterminators

0 sn-track-player-history

25 sn-minimum-dropsite-buffer

0 sn-use-by-type-max-gathering

5 sn-minimum-boar-hunt-group-size

50 sn-minimum-amount-for-trading

100 sn-easiest-reaction-percentage

100 sn-easier-reaction-percentage

3   sn-hits-before-alliance-change

1     sn-allow-civilian-defense

0     sn-number-forward-builders  

75    sn-percent-attack-soldiers

75    sn-percent-attack-boats

0     sn-do-not-scale-for-difficulty-level

20    sn-group-form-distance

0     sn-ignore-attack-group-under-attack

0     sn-gather-defense-units

-1    sn-maximum-wood-drop-distance

-1    sn-maximum-food-drop-distance

-1    sn-maximum-hunt-drop-distance

-1    sn-maximum-fish-boat-drop-distance

-1    sn-maximum-gold-drop-distance

-1    sn-maximum-stone-drop-distance

1     sn-gather-idle-soldiers-at-center

1     sn-garrison-rams

0     sn-do-not-transport-from-same-zone

 


附件 C - 「征服者入侵」字符串表参考文件

 

07140  攻击敌人,冲啊!

07141  停止生产额外的村民

07142  生产额外的村民

07143  建立海军

07144  停止建立海军

07145  等我下令攻击

07146  建造世界奇观

07147  请你把多的资源给我

07148  你在哪一个时代啊?

22000  41 只要给我 100 单位的资源,我就站在你这边。

22002  39 我很高兴收到你的贡金。

22003  39 让我们从今之后成为朋友!

22004  41 给我木材、食物、黄金和石头每样 200 单位!

22006  41 给我木材、食物、黄金和石头每样 500 单位!

22007  41 给我木材、食物、黄金和石头每样 1000 单位!

22008  41 你必须给我更多木材!

22009  41 你必须给我更多食物!

22010  41 你必须给我更多黄金!

22011  41 你必须给我更多石头!

22012  41 多谢你的木材!这就足够啦。

22013  41 多谢你的食物!这就足够啦。

22014  41 多谢你的黄金!这就足够啦。

22015  41 多谢你的石头!这就足够啦。

22016  39 我们很荣幸能够从你那里得到物料!

22017  把你的立场改变为和我同盟吧!

22018  41 你必须改变你的外交立场来跟我结盟!

22019  设定成和我同盟!

22020  41 这是给你最后的警告!在我来到之前,赶快跟我结盟。

22021  把立场设成和我同盟,

22022  就像我把你设成同盟国一样。

22023  40 你实在用了太多时间来处理这么简单的任务。

22024  我们既然当不成朋友,就只有敌对的份了!

22025  40 嗯!你算是决定跟我作对啰。

22026  看来一场刀光血影的战争是避免不了的!

22027  41 我对你是中立的,请你也对我保持中立态度。

22028  39 算你聪明,倒可以结交成为朋友。

22029  我会再来找你的。

22030  41 虽然你漠视我的盛情邀请,但我宅心仁厚,就再给你一次机会吧!

22031  快把对我的外交关系改成中立!就是现在!

22032  41 真是够蠢的!你怎么还跟我作对。如果不立刻保持中立的话,就跟我打吧!

22033  这可是你的最后机会。

22034  40 我认为我先前仁慈的计划是比较好。

22035  不除掉你不行,我跟你势不两立。

22036  给我 100 单位的黄金,否则你就等死吧!

22037  41 不给我 100 单位黄金,就受死吧!你只有 3 分钟考虑!

22038  41 不给我 100 单位食物,就受死吧!你只有 3 分钟考虑!

22039  41 不给我 100 单位木材,就受死吧!你只有 3 分钟考虑!

22040  41 不给我 100 单位石头,就受死吧!你只有 3 分钟考虑!

22041  41 做得好!我会很仁慈对待你的。

22042  41 你只有 2 分钟时间给我 200 单位黄金,否则死路一条!

22043  41 你只有 2 分钟时间给我 200 单位食物,否则死路一条!

22044  41 你只有 2 分钟时间给我 200 单位石头,否则死路一条!

22045  41 你只有 2 分钟时间给我 200 单位木材,否则死路一条!

22046  41 多谢你啦!我会好好利用你的贡金。

22047  41 不给我 500 单位木材的话,就去死吧!照老方式,你只有 2 分钟时间去接受。

22048  41 不给我 500 单位食物的话,就去死吧!照老方式,你只有 2 分钟时间去接受。

22049  41 不给我 500 单位黄金的话,就去死吧!照老方式,你只有 2 分钟时间去接受。

22050   500 单位的黄金来,否则就等死吧!

22051  41 不给我 500 单位石头的话,就去死吧!照老方式,你只有 2 分钟时间去接受。

22052  41 很好!既然你都接受,现在安全啦。

22053  39 你是一个忠实的伙伴,我在此宣布大家成为朋友。

22054  你的作为已证明你是个可敬的人物。我就此宣布我们义结金兰。

22055  41 给我木材、食物、黄金和石头每样 500 单位!

22056  只要你照着做,我就加入你的阵营。

22057  41 如果你够聪明想要跟我结盟的话,就必须给我更多木材!

22058  41 如果你够聪明想要跟我结盟的话,就必须给我更多食物!

22059  41 如果你够聪明想要跟我结盟的话,就必须给我更多黄金!

22060  41 如果你够聪明想要跟我结盟的话,就必须给我更多石头!

22061  41 多谢你的木材!这就足够啦。

22062  41 多谢你的食物!这就足够啦。

22063  41 多谢你的黄金!这就足够啦。

22064  多谢你的石头!这样就够了。

22064  41 多谢你的石头!这就足够啦。

22065  41 你给我的木材已经足够!感谢啦,不用再给了。

22066  41 你给我的食物已经足够!感谢啦,不用再给了。

22067  41 你给我的黄金已经足够!感谢啦,不用再给了。

22068  41 你给我的石头已经足够!感谢啦,不用再给了。

22069  40 我等你允诺的贡金已经很久了!

22070  你好像不把我的话当一回事。

22071  今后我与你势不两立!

22072  39 我会把尽力筹集到的资源进贡给你。

22073  走,去攻打我们的敌人!

22074  41 哇!我不要再供养这种弱小的盟友,实在太浪费了!

22075  40 现在我要投靠另外一边了!再见啦,你这个失败者。

22076  39 这里有一些木材!

22077  39 这里有一些食物!

22078  39 这里有一些黄金!

22079  39 这里有一些石头!

22096  我军三两下就可以把你解决掉!

22097  你是不可能打败我的。

22098  我这些所向无敌的士兵们绝对要叫你好看。

22099  我和我壮大的军容轻松地就能把你击垮。

22100  你的土地和黄金很快就会变成我的了!

22101  你逃到哪儿,我就追到哪儿!

22102  看剑!

22103  我铁定要把你的种族消灭掉。

22104  你的城池很快都会被稍成灰烬。

22105  这场打斗根本就没必要。我们谈和吧!

22106  只要你把对我的外交关系改为同盟,我也会这么做。

22107  好了!我已经把对你的外交关系改为同盟了。

22108  我势单力薄,拜托别来打我。

22109  我会把贡物送过去的。

22110  派你的贸易车队到我的市集来吧!

22111  我保证不会伤害他们。

22112  派你的贸易商旅到我的码头来!

22113  快!快把你的资源拿来进贡!

22114  谢啦!我会善加利用的。

22115  39 救命啊!敌人就在我的城镇里!

22116  39 大家开始进攻!

22117  39 杀啊!

22118  唉,我现在帮不上忙。

22119  你和你的种族都会遭到报应的!

22122  请给我食物!

22123  请给我木材!

22124  请给我黄金!

22125  请给我石头!

22145  如果这是一个全部陆地或海岛地图,

22146  则请照着再次设定您的人工智能指令。

22147  39 我是你的同盟啊!朋友,请你也为这个同盟做点事吧。

22148  39 你还蛮有心要维持我们的友谊。

22149  41 需要那么恶毒吗?你怎么都不再友善了?!

22150  你还没搞清楚吗?跟我同盟,我跟你是一国的。

22151  41 喔!真虚伪的友谊。这是你的最后一次机会!

22152  如果你想跟我同盟的话,你也要照着做。

22153  39 立刻!陛下!

22154  39 我会训练几个村民,陛下!

22155  39 我会尽可能训练更多的军队,陛下!

22156  39 我会停止建立过多的军队,陛下!

22157  39 我会尽可能训练更多的村民,陛下!

22158  39 陛下,这张地图干得像根骨头!你肯定可以用吗?

22159  39  ... 陛下,我还有很多计划!

22160  39 是的,陛下!除非您下令,否则我不会展开攻击。

22161  39 立刻!陛下!我会尽快开始建造世界奇观。

22162  39 不,陛下!我还不是帝国的一员!

22163  39 我真惭愧啊,陛下!我真不值得被原谅!

22164  39 但是,陛下!我并没有市场啊!

22165  39 唉!陛下。在黑暗时代里我实在太衰弱啊。

22166  39 陛下!我已达到封建时代了。

22167  39 陛下!我已达到城堡时代了。

22168  39 啊!陛下!我终于来到光荣的帝王时代了。

22169  39 不,陛下!当我在黑暗时代里,还是衰弱的时候,这样做并不明智。

22300  糟了,我不小心弃权了。

22301  我的人民都挤在我的城镇中心附近。

22302  有太多的鸟飞越过我国土的上空了。

22303  一刚开始只有一个斥侯出现而已。

22304  这些要被宰来当食物的羊群可真歹命。

22305  说真的,我实在没办法驯服野狼。

22306  我刚开始的所有人民都是男性。

22307  你传令官的颜色比我的还高一等。

22308  我那些笨手笨脚的村民连种野果都不会!

22309  你是有血有肉,又有智慧的人类;而我只不过是虚拟的的机器而已。

22310  我的位子可不好坐。

22311  真的,附近的野猪群叫声实在太吵了。

22312  哎呀,我没办法在黑暗时代建造世界奇观。

22313  我听不懂我那些老百姓们在说些什么!

22314  我那群农夫还真是一文不值啊 (每个生命值才 25 而已)

22315  出现在我村民附近的鱼群看起来要死不活的。

22316  我城镇中心的附近有座碍眼的小山丘。

22317  四面八方都有我的农舍。

22318  我的猎人去捕杀麋鹿时,被牠们给跑了!

22319  一个被我派去捕杀野猪的农民,反而被野猪给杀了。

22320  我那些愚笨的农民就这样光着脚丫子在路上走,也不会去骑个马代步。

22321  讨厌,我要的东西一样也没找到。

22322  难怪你会胜利!看来我该让贤了。

 

备注:在「启动预设交谈语音文件」的游戏中,字符串之前的语音指令值会被省略,同时交谈讯息会以同样编号的交谈语音文件作为并音效。而在没有「启动预设交谈语音文件」的游戏中,字符串之前的语音指令值会被保留,同时交谈讯息不会配置任何音效。

 

 


事实、动作及参数 (组合列表)

 

true 30

false 30

attack-soldier-count  <关系运算子>  <数量> 30

attack-warboat-count  <关系运算子>  <数量> 30

building-available  <建筑物> 30

building-count  <关系运算子>  <数量> 30

building-count-total  <关系运算子>  <数量> 30

building-type-count  <建筑物> <关系运算子>  <数量> 31

building-type-count-total  <建筑物> <关系运算子>  <数量> 31

can-afford-building <建筑物> 31

can-afford-complete-wall <环形防线> <围墙> 31

can-afford-research <研发项目> 31

can-afford-unit <单位> 31

can-build <建筑物> 32

can-build-gate  <环形防线> 32

can-build-gate-with-escrow  <环形防线> 32

can-build-wall  <环形防线> <围墙> 32

can-build-wall-with-escrow <环形防线> <围墙> 32

can-build-with-escrow <建筑物> 33

can-buy-commodity <商品> 33

can-research <研发项目> 33

can-research-with-escrow <研发项目> 33

can-sell-commodity <商品> 33

can-spy 33

can-spy-with-escrow 34

can-train <单位> 34

can-train-with-escrow <单位> 34

cc-players-building-count  <游戏者编号>  <关系运算子>  <数量> 34

cc-players-building-type-count  <游戏者编号>  <建筑物> <关系运算子>  <数量> 34

cc-players-unit-count  <游戏者编号>  <关系运算子>  <数量> 35

cc-players-unit-type-count  <游戏者编号>  <单位>  <关系运算子>  <数量> 35

cheats-enabled 35

civ-selected  <文明> 35

civilian-population  <关系运算子>  <数量> 35

commodity-buying-price  <商品>  <关系运算子>  <数量> 35

commodity-selling-price  <商品>  <关系运算子>  <数量> 36

current-age  <关系运算子> <时代> 36

current-age-time  <关系运算子> <数量> 36

current-score  <关系运算子> <数量> 36

death-match-game 36

defend-soldier-count  <关系运算子> <数量> 36

defend-warboat-count  <关系运算子> <数量> 36

difficulty  <关系运算子> <难易度> 36

doctrine <数量> 37

dropsite-min-distance  <资源种类> <关系运算子>  <数量> 37

enemy-buildings-in-town 37

enemy-captured-relics 37

escrow-amount  <资源种类>  <关系运算子>  <数量> 37

event-detected  <事件类型> <事件编号> 37

food-amount <关系运算子>  <数量> 38

game-time  <关系运算子>  <数量> 38

game-type  <游戏种类> 38

goal <目标编号> <数量> 38

gold-amount  <关系运算子>  <数量> 38

housing-headroom  <关系运算子>  <数量> 38

idle-farm-count  <关系运算子>  <数量> 39

map-size <地图大小> 39

map-type <地图种类> 39

military-population  <关系运算子>  <数量> 39

player-computer <游戏者编号> 39

player-human <游戏者编号> 39

player-in-game  <游戏者编号> 39

player-number  <游戏者编号> 40

player-resigned <游戏者编号> 40

player-valid  <游戏者编号> 40

players-achievements  <游戏者编号> 40

players-building-count  <游戏者编号>  <关系运算子>  <数量> 40

players-building-type-count  <游戏者编号>  <建筑物> <关系运算子>  <数量> 40

players-civ  <游戏者编号> <文明> 41

players-civilian-population  <游戏者编号> <关系运算子>  <数量> 41

players-current-age  <游戏者编号> <关系运算子> <时代> 41

players-current-age-time  <游戏者编号> <关系运算子> <数量> 41

players-military-population  <游戏者编号> <关系运算子>  <数量> 41

players-population  <游戏者编号> <关系运算子>  <数量> 41

players-score  <游戏者编号> <关系运算子> <积分> 41

players-stance  <游戏者编号> <外交策略> 42

players-tribute  <游戏者编号> <资源种类> <关系运算子> <数量> 42

players-tribute-memory  <游戏者编号> <资源种类> <关系运算子> <数量> 42

players-unit-count  <游戏者编号>  <关系运算子>  <数量> 42

players-unit-type-count  <游戏者编号>  <单位>  <关系运算子>  <数量> 42

population  <关系运算子>  <数量> 42

population-cap  <关系运算子>  <数量> 43

population-headroom  <关系运算子>  <数量> 43

random-number  <关系运算子>  <数量> 43

regicide-game 43

research-available  <研发项目> 43

research-completed  <研发项目> 43

resource-found  <资源种类> 43

shared-goal <共享目标编号> <数量> 44

sheep-and-forage-too-far 44

soldier-count  <关系运算子>  <数量> 44

stance-toward <游戏者编号> <外交策略> 44

starting-age <关系运算子> <时代> 44

starting-resources <关系运算子> <开始资源> 44

stone-amount  <关系运算子>  <数量> 44

strategic-number  <策略值>  <关系运算子>  <数量> 45

taunt-detected <游戏者编号> <语音指令值> 45

timer-triggered <定时器编号> 45

town-under-attack 45

unit-available <单位> 45

unit-count  <关系运算子>  <数量> 45

unit-count-total  <关系运算子>  <数量> 46

unit-type-count  <单位> <关系运算子>  <数量> 46

unit-type-count-total  <单位> <关系运算子>  <数量> 46

victory-condition  <胜利条件> 46

wall-completed-percentage  <环形防线> <关系运算子>  <数量> 46

wall-invisible-percentage  <环形防线> <关系运算子>  <数量> 46

warboat-count  <关系运算子>  <数量> 47

wood-amount  <关系运算子>  <数量> 47

do-nothing 53

acknowledge-event  <事件类型> <事件编号> 53

acknowledge-taunt  <游戏者编号> <语音指令值> 53

attack-now 53

build  <建筑物> 53

build-forward  <建筑物> 53

build-gate  <环形防线> 54

build-wall  <环形防线> <围墙> 54

buy-commodity  <商品> 54

cc-add-resource <资源种类> <数量> 54

chat-local <字符串> 54

chat-local-using-id <字符串表号码> 54

chat-local-using-range <字符串表号码范围起始值> <字符串表号码范围> 54

chat-local-to-self <字符串> 55

chat-to-all <字符串> 55

chat-to-all-using-id <字符串表号码> 55

chat-to-all-using-range <字符串表号码范围起始值> <字符串表号码范围> 55

chat-to-allies <字符串> 55

chat-to-allies-using-id <字符串表号码> 55

chat-to-allies-using-range <字符串表号码范围起始值> <字符串表号码范围> 56

chat-to-enemies <字符串> 56

chat-to-enemies-using-id <字符串表号码> 56

chat-to-enemies-using-range <字符串表号码范围起始值> <字符串表号码范围> 56

chat-to-player <游戏者编号> <字符串> 56

chat-to-player-using-id <游戏者编号> <字符串表号码> 56

chat-to-player-using-range <游戏者编号> <字符串表号码范围起始值> <字符串表号码范围> 57

chat-trace  <数量> 57

clear-tribute-memory  <游戏者编号> <资源种类> 57

delete-building  <建筑物> 57

delete-unit  <单位> 57

disable-self 57

disable-timer  <定时器编号> <数量> 58

enable-timer  <定时器编号> 58

enable-wall-placement  <环形防线> 58

generate-random-number <数量> 58

log <字符串> 59

log-trace  <数量> 59

release-escrow  <资源种类> 59

research  <研发项目> 59

research  <时代> 59

resign 60

sell-commodity  <商品> 60

set-difficulty-parameter <难易度参数> <数量> 60

set-doctrine <数量> 60

set-escrow-percentage  <资源种类>  <数量> 60

set-goal <目标编号> <数量> 60

set-shared-goal <共享目标编号> <数量> 60

set-signal <人工智能信号值> 61

set-stance <游戏者编号> <外交策略> 61

set-strategic-number <策略值>  <数量> 61

spy 61

taunt  <数量> 61

taunt-using-range  <语音指令范围起始值>  <语音指令值范围> 61

train <单位> 62

tribute-to-player <游戏者编号>  <资源种类>  <数量> 62

<时代> 64

<建筑物> 64

<文明> 65

<商品> 65

<难易度> 65

<难易度参数> 66

<外交策略> 66

<事件编号> 66

<事件类型> 66

<游戏种类> 66

<目标编号> 66

<地图大小> 66

<地图种类> 67

<环形防线> 67

<游戏者编号> 68

<关系运算子> 68

<研发项目> 68

<资源种类> 72

<共享目标编号> 72

<人工智能信号值> 72

<开始资源> 72

<策略值> 72

<字符串> 75

<字符串表号码> 75

<字符串表号码范围> 75

<字符串表号码范围起始值> 75

<语音指令值> 76

<语音指令值范围> 76

<语音指令范围起始值> 76

<定时器编号> 76

<单位> 76

<数量> 78

<胜利条件> 78

<围墙> 79

 


 

未归档例子

控制村民分配

黑暗时代分配

备注:个别条文设定了resource-needed (需要资源)的目标。

 

(defrule

        (goal resource-needed NO)

        (current-age == dark-age)

        (civilian-population < 10)

        (not (strategic-number sn-wood-gatherer-percentage == 10) )

=>

        (set-strategic-number sn-wood-gatherer-percentage 10)

        (set-strategic-number sn-food-gatherer-percentage 90)

        (set-strategic-number sn-gold-gatherer-percentage 0)

        (set-strategic-number sn-stone-gatherer-percentage 0)

)

 

(defrule

        (goal resource-needed WOOD)

        (current-age == dark-age)

        (civilian-population < 10)

        (not (strategic-number sn-wood-gatherer-percentage == 20) )

=>

        (set-strategic-number sn-wood-gatherer-percentage 20)

        (set-strategic-number sn-food-gatherer-percentage 80)

        (set-strategic-number sn-gold-gatherer-percentage 0)

        (set-strategic-number sn-stone-gatherer-percentage 0)

)

 

(defrule

        (goal resource-needed NO)

        (current-age == dark-age)

        (civilian-population >= 10)

        (not (strategic-number sn-wood-gatherer-percentage == 30) )

=>

        (set-strategic-number sn-wood-gatherer-percentage 30)

        (set-strategic-number sn-food-gatherer-percentage 70)

)

 

(defrule

        (goal resource-needed WOOD)

        (current-age == dark-age)

        (civilian-population >= 10)

        (not (strategic-number sn-wood-gatherer-percentage == 40) )

=>

        (set-strategic-number sn-wood-gatherer-percentage 40)

        (set-strategic-number sn-food-gatherer-percentage 60)

)

 

(defrule

        (goal resource-needed FOOD)

        (current-age == dark-age)

        (civilian-population >= 10)

        (not (strategic-number sn-wood-gatherer-percentage == 20) )

=>

        (set-strategic-number sn-wood-gatherer-percentage 20)

        (set-strategic-number sn-food-gatherer-percentage 80)

)

 

(defrule

        (goal resource-needed GOLD)

        (current-age == dark-age)

=>

        (set-strategic-number sn-wood-gatherer-percentage 25)

        (set-strategic-number sn-food-gatherer-percentage 65)

        (set-strategic-number sn-gold-gatherer-percentage 10)

        (disable-self)

)

如何贸易

卖出多余的资源

 

 (defrule

        (wood-amount > 1200)

        (or

                (food-amount < 1600)

                (or

                        (gold-amount < 1200)

                        (stone-amount < 650)

                )

        )

        (can-sell-commodity wood)

=>

        (chat-local-to-self "盈余木材")

        (release-escrow wood)

        (sell-commodity wood)

)

 

(defrule

        (food-amount > 1700)

        (or

                (wood-amount < 1100)

                (or

                        (gold-amount < 1200)

                        (stone-amount < 650)

                )

        )

        (can-sell-commodity food)

=>

        (chat-local-to-self "盈余食物")

        (release-escrow food)

        (sell-commodity food)

)

 

(defrule

        (stone-amount > 1400)

        (or

                (wood-amount < 1100)

                (or

                        (food-amount < 1600)

                        (gold-amount < 1200)

                )

        )

        (can-sell-commodity stone)

=>

        (chat-local-to-self "盈余石头")

        (release-escrow stone)

        (sell-commodity stone)

)

用多余的黄金购买廉价的资源

 

(defrule

        (gold-amount > 1250)

        (wood-amount < 1100)

        (can-buy-commodity wood)

        (commodity-buying-price wood < 50)

        

=>

        (chat-local-to-self "盈余黄金;买进木材")

        (release-escrow gold)

        (buy-commodity wood)

)

 

(defrule

        (gold-amount > 1250)

        (food-amount < 1600)

        (can-buy-commodity food)

        (commodity-buying-price food < 50)

=>

        (chat-local-to-self "盈余黄金;买进食物")

        (release-escrow gold)

        (buy-commodity food)

)

 

(defrule

        (gold-amount > 1400)

        (stone-amount < 650)

        (can-buy-commodity stone)

        (commodity-buying-price stone < 200)

=>

        (chat-local-to-self "盈余黄金;买进石头")

        (release-escrow gold)

        (buy-commodity stone)

)

 

如何正常地弃权

侦测弃权的状况

以下编码可以侦测弃权的状况及设定目标 1  19 以作为其它规则用来辨认开始弃权的信号。而弃权的状况,是依据难易度而订的。

 

(defrule

        (difficulty >= easy)

        (game-time > 300)

        (soldier-count == 0)

        (unit-type-count villager < five-percent-pop)

        (nand

                (players-stance any-human ally)

                (stance-toward any-human ally)

        )

=>

        (set-goal 1 19)

        (disable-self)

)

 

(defrule

        (difficulty == moderate)

        (game-time > 300)

        (building-type-count wonder < 1)

        (soldier-count == 0)

        (unit-type-count villager < five-percent-pop)

        (nand

                (players-stance any-human ally)

                (stance-toward any-human ally)

        )

        (not (can-train villager) )

=>

        (set-goal 1 19)

        (disable-self)

)

 

(defrule

        (difficulty <= hard)

        (game-time > 300)

        (building-type-count wonder < 1)

        (soldier-count == 0)

        (unit-type-count cannon-galleon-line == 0)

        (unit-type-count villager == 0)

        (nand

                (players-stance any-human ally)

                (stance-toward any-human ally)

        )

        (not (can-train villager) )

=>

        (set-goal 1 19)

        (disable-self)

)

 

弃权前进贡予同盟及删除所有的建筑物

 

备注:目标 1 设定为 19 时表示弃权的状况。

 

进贡所有资源予仍在游戏中的同盟游戏者

(defrule

        (goal 1 19)

        (players-population any-ally > 10)

=>

        (release-escrow wood)

        (release-escrow food)

        (release-escrow gold)

        (release-escrow stone)

        (tribute-to-player this-any-ally wood 10000)

        (tribute-to-player this-any-ally food 10000)

        (tribute-to-player this-any-ally gold 10000)

        (tribute-to-player this-any-ally stone 10000)

        (disable-self)

)

 

;*****************************

同一时间毁掉所有军事建筑物

(defrule

        (goal 1 19)

=>

        (delete-building watch-tower)

        (delete-building guard-tower)

        (delete-building keep)

        (delete-building bombard-tower)

        (delete-building castle)

)

 

当所有军事建筑物都被删除后弃权

(defrule

        (goal 1 19)

        (building-type-count watch-tower == 0)

        (building-type-count guard-tower == 0)

        (building-type-count keep == 0)

        (building-type-count bombard-tower == 0)

        (building-type-count castle == 0)

=>

        (resign)

        (disable-self)

)


译者后记

 

当初开始进行此个项目之时,其实正值自己即将挑战 2004 年会考之际。结果,它因此和我一起渡过了我人生里的第一个公开考试。

 

老实来讲,此种翻译事务并不会为我的英文考卷带来甚么有用的词汇或惯语,更不用说是那些理论性的文法常识了!也就是说:我只是仗着一股无谋的冲劲来完成这个于我无利的项目而已!

 

既然于我无利,何以为之?这全因为我自己虽对「世纪帝国 II :征服者入侵」的人工智能编写有一定程度的了解,而且又有一群来自中国大陆及国外的朋友的支持与帮助,使我在港、台区内「表面上」是成为了一个人工智能编写高手(平心而论,我除了在理论认知上勉强能够和各位前辈相提并论外,其它诸如经验、作品等都是十分的贫乏;如果要我和苏鹏等中国大陆前辈编写人工智能脚本竞斗,我恐怕我要花上十数年时间才可写出一个能与《阿兹特克之王》打成平手的成品。);可是有谓「无敌是最寂寞」,只有自己在诉说自己才听得懂的话是很难受的,加上我又目睹不少极欲学习人工智能编写的玩家因不晓英语而未能如愿......我突然想起翔鹰帝国战役制作小组的旧王孙先生那股想为中国人在国外高手云集之地上争一席位的心,这一切一切都刺激我萌生了翻译《计算机游戏者战略编写员教程.人工智能专家参考文件.「世纪帝国 II (R):征服者入侵」》──可说是玩家学习有关技巧的唯一文本来源──的主意。

 

  谈完主意来源,就说一说其过程吧!

 

翻译(及校对)的过程期间,我一直都抗拒使用「翻译软件」。这类程序虽然可以大幅削减项目所需时间,可是它们多数不会辨认计算机专用名词如「技术性考虑」、「关系运算子」等,同时对于所谓「英语修辞」及「同义词汇通用」等的案例亦鲜加分别。于是,我决定要自以为是的以我自己微薄的中文及英语知识来重新演绎本篇文件。在翻译的文字部分上,我也尽量把包括例子在内的非原代码字句都翻译成中文,希望效果能为各位读者所接受。

 

至于校对方面的工作,我主要是靠自己及前人的经验来进行的(以后者居多)。除了一些排版上的错误和修正、以及页码重新编订和字体之外,我亦对原文一些矛盾之处或无中生有的部分作了删改。例子包括:

 

二种「难易度参数」:「回避力」和「持距力」的计算式是负百分比值而非正百分比值。

《附件 A - 内部策略值参考文件》删去来自「世纪帝国」人工智能的无关数据,并加入了一些遗漏的策略值析述和修改原有数据的错误。

新增《附件 C - 「征服者入侵」字符串表参考文件》。

其它……

 

  最后,希望在此拜谢翔鹰帝国战役制作小组及游戏编辑设计公会各成员的支持、鼓励及技术支持!

 

狂~剧情狂

香港 13.06.2004

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值