tankant 发表于 2013-9-14 14:55:32

【大唐复兴】让突厥、阿瓦尔、吐蕃正常生产羊(直播贴)

本帖最后由 tankant 于 2013-9-14 16:23 编辑

经过测试,可以让AI生产羊,和让农民宰杀羊。不过让AI利用自己能生产的羊代替农田去合理的发展,是一件比较麻烦的事情。目前技术困难是如何计算从城镇中心和牧场生产出来的羊还有正在被宰杀的羊的总和。希望知道解决办法的朋友提出来。


第一步是让建造农田的代码替换成产羊的代码。Barbarian.per里面就有43处(build farm)的代码。我们要把他们替换为(train muchangyang-line)(train chengzhenyang-line)。把这些代码单独放到AORT_sheep.per文件里,让Barbarian.per加载这个文件。

第一步,使用vim帮助分析AI文件层次:
:%s/\s\s*(build farm)/#(build farm)/g
:%s/^[^#][^#]*$//g
:g/^$/d
:%s/#(build farm)/;(build farm)/g
Barbarian.per的结果如下:

#load-if-defined AZTEC-CIV
#else
#end-if
#load-if-defined BRITON-CIV
#else
#end-if
#load-if-defined BYZANTINE-CIV
#load-if-defined ARABIA-MAP
#else
#end-if
#else
#end-if
#load-if-defined CELTIC-CIV
#load-if-defined UP-POCKET-POSITION
#else
#end-if
#end-if
#load-if-defined CHINESE-CIV
#else
#end-if
#load-if-defined FRANKISH-CIV
#else
#load-if-not-defined INCAN-CIV
#else
#end-if
#end-if
#load-if-defined GOTHIC-CIV
#else
#end-if
#load-if-defined HUN-CIV
#else
#end-if
#load-if-defined INCAN-CIV
#end-if
#load-if-defined INDIAN-CIV
#end-if
#load-if-defined ITALIAN-CIV
#end-if
#load-if-defined JAPANESE-CIV
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined MAGYAR-CIV
#end-if
#load-if-defined MAYAN-CIV
#end-if
#load-if-defined MONGOL-CIV
#load-if-defined UP-MICHI-STYLE
#else
#end-if
#else
#end-if
#load-if-defined PERSIAN-CIV
#end-if
#load-if-defined SARACEN-CIV
#else
#end-if
#load-if-defined SLAVIC-CIV
#load-if-defined UP-POCKET-POSITION
#else
#end-if
#end-if
#load-if-defined SPANISH-CIV
#else
#end-if
#load-if-defined TEUTONIC-CIV
#load-if-not-defined UP-GAME-AGE2-X2
#else
#end-if
#else
#load-if-not-defined UP-GAME-AGE2-X2
#load-if-not-defined CHINESE-CIV
#else
#end-if
#else
#load-if-not-defined CHINESE-CIV
#else
#end-if
#end-if
#end-if
#load-if-defined TURKISH-CIV
#end-if
#load-if-defined VIKING-CIV
#end-if
#load-if-not-defined INCAN-CIV
#load-if-not-defined INDIAN-CIV
#load-if-not-defined ITALIAN-CIV
#load-if-not-defined MAGYAR-CIV
#load-if-not-defined SLAVIC-CIV
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-defined TINY-MAP
#end-if
#load-if-defined SMALL-MAP
#end-if
#load-if-defined MEDIUM-MAP
#end-if
#load-if-defined NORMAL-MAP
#end-if
#load-if-defined LARGE-MAP
#end-if
#load-if-defined GIANT-MAP
#end-if
#load-if-not-defined DIFFICULTY-HARDEST
#load-if-not-defined REGICIDE
#else
#end-if
#else
#load-if-not-defined REGICIDE
#else
#end-if
#end-if
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#load-if-not-defined POPULATION-CAP-EXTENDED
#load-if-defined POPULATION-CAP-25
#load-if-not-defined GOTHIC-CIV
#else
#end-if
#end-if
#load-if-defined POPULATION-CAP-50
#load-if-not-defined GOTHIC-CIV
#else
#end-if
#end-if
#load-if-defined POPULATION-CAP-75
#load-if-not-defined GOTHIC-CIV
#else
#end-if
#end-if
#load-if-defined POPULATION-CAP-100
#load-if-not-defined GOTHIC-CIV
#else
#end-if
#end-if
#load-if-defined POPULATION-CAP-125
#load-if-not-defined GOTHIC-CIV
#else
#end-if
#end-if
#load-if-defined POPULATION-CAP-150
#load-if-not-defined GOTHIC-CIV
#else
#end-if
#end-if
#load-if-defined POPULATION-CAP-175
#load-if-not-defined GOTHIC-CIV
#else
#end-if
#end-if
#load-if-defined POPULATION-CAP-200
#load-if-not-defined GOTHIC-CIV
#else
#end-if
#end-if
#else
#load-if-defined POPULATION-CAP-225
#load-if-not-defined GOTHIC-CIV
#else
#end-if
#end-if
#load-if-defined POPULATION-CAP-250
#load-if-not-defined GOTHIC-CIV
#else
#end-if
#end-if
#end-if
#load-if-defined POPULATION-CAP-EXTENDED
#load-if-not-defined POPULATION-CAP-225
#load-if-not-defined POPULATION-CAP-250; Unknown pop cap that is >250, play it as 275
#end-if
#end-if
#end-if
#load-if-defined UP-2-PLAYER-GAME
#load-if-defined UP-AZTEC-CIV-ENEMY
#end-if
#load-if-defined UP-BRITON-CIV-ENEMY
#end-if
#load-if-defined UP-BYZANTINE-CIV-ENEMY
#end-if
#load-if-defined UP-CELTIC-CIV-ENEMY
#end-if
#load-if-defined UP-CHINESE-CIV-ENEMY
#end-if
#load-if-defined UP-FRANKISH-CIV-ENEMY
#end-if
#load-if-defined UP-GOTHIC-CIV-ENEMY
#end-if
#load-if-defined UP-HUN-CIV-ENEMY
#end-if
#load-if-defined UP-INCAN-CIV-ENEMY
#end-if
#load-if-defined UP-INDIAN-CIV-ENEMY
#end-if
#load-if-defined UP-ITALIAN-CIV-ENEMY
#end-if
#load-if-defined UP-JAPANESE-CIV-ENEMY
#end-if
#load-if-defined UP-KOREAN-CIV-ENEMY
#end-if
#load-if-defined UP-MAGYAR-CIV-ENEMY
#end-if
#load-if-defined UP-MAYAN-CIV-ENEMY
#end-if
#load-if-defined UP-MONGOL-CIV-ENEMY
#end-if
#load-if-defined UP-PERSIAN-CIV-ENEMY
#end-if
#load-if-defined UP-SARACEN-CIV-ENEMY
#end-if
#load-if-defined UP-SLAVIC-CIV-ENEMY
#end-if
#load-if-defined UP-SPANISH-CIV-ENEMY
#end-if
#load-if-defined UP-TURKISH-CIV-ENEMY
#end-if
#load-if-defined UP-TEUTONIC-CIV-ENEMY
#end-if
#load-if-defined UP-VIKING-CIV-ENEMY
#end-if
#load-if-defined UP-ALLY-IN-GAME
#end-if
#else
#end-if
#load-if-defined AZTEC-CIV
#end-if
#load-if-defined BRITON-CIV
#end-if
#load-if-defined BYZANTINE-CIV
#end-if
#load-if-defined CELTIC-CIV
#end-if
#load-if-defined CHINESE-CIV
#end-if
#load-if-defined FRANKISH-CIV
#end-if
#load-if-defined GOTHIC-CIV
#end-if
#load-if-defined HUN-CIV
#end-if
#load-if-defined JAPANESE-CIV
#end-if
#load-if-defined INCAN-CIV
#end-if
#load-if-defined INDIAN-CIV
#end-if
#load-if-defined ITALIAN-CIV
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined MAYAN-CIV
#end-if
#load-if-defined MAGYAR-CIV
#end-if
#load-if-defined MONGOL-CIV
#end-if
#load-if-defined PERSIAN-CIV
#end-if
#load-if-defined SARACEN-CIV
#end-if
#load-if-defined SLAVIC-CIV
#end-if
#load-if-defined SPANISH-CIV
#end-if
#load-if-defined TURKISH-CIV
#end-if
#load-if-defined TEUTONIC-CIV
#end-if
#load-if-defined VIKING-CIV
#end-if
#load-if-not-defined UP-HUMAN-IN-GAME
#else
#end-if
#load-if-defined UP-1-PLAYER-GAME
#end-if
#load-if-defined UP-2-PLAYER-GAME
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-defined UP-3-PLAYER-GAME
#end-if
#load-if-defined UP-4-PLAYER-GAME
#end-if
#load-if-defined UP-5-PLAYER-GAME
#end-if
#load-if-defined UP-6-PLAYER-GAME
#end-if
#load-if-defined UP-7-PLAYER-GAME
#end-if
#load-if-defined UP-8-PLAYER-GAME
#end-if
#else
#load-if-defined UP-3-PLAYER-GAME
#end-if
#load-if-defined UP-4-PLAYER-GAME
#end-if
#load-if-defined UP-5-PLAYER-GAME
#end-if
#load-if-defined UP-6-PLAYER-GAME
#end-if
#load-if-defined UP-7-PLAYER-GAME
#end-if
#load-if-defined UP-8-PLAYER-GAME
#end-if
#end-if
#load-if-not-defined DEFEND-WONDER
#load-if-not-defined POST-IMPERIAL-AGE-START
#else
#end-if
#else
#end-if
#load-if-defined LOW-RESOURCES-START
#else
#end-if
#load-if-defined DEATH-MATCH
#else
#end-if
#load-if-defined DEFEND-WONDER
#else
#load-if-not-defined REGICIDE
#else
#end-if
#end-if
#load-if-defined UP-POCKET-POSITION
#else
#load-if-defined UP-ALLY-IN-GAME
#else
#end-if
#end-if
#load-if-not-defined TURBO-RANDOM-MAP
#load-if-not-defined DIFFICULTY-HARDEST
#load-if-defined HIGH-RESOURCES-START
#end-if
#load-if-defined MEDIUM-RESOURCES-START
#end-if
#load-if-not-defined HIGH-RESOURCES-START
#load-if-not-defined MEDIUM-RESOURCES-START
#end-if
#end-if
#else
#end-if
#else
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined INCAN-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined TURKISH-CIV
#else
#end-if
#else
#end-if
#else
#end-if
#else
#end-if
#load-if-defined ARABIA-MAP
#else
#end-if
#load-if-not-defined UP-GROUPED-BY-TEAM
#else
#end-if
#load-if-defined DARK-AGE-START
#load-if-not-defined DEATH-MATCH
#end-if
#end-if
#load-if-not-defined UP-GAME-AGE2-X2
#else
#end-if
#load-if-not-defined UP-ALLY-IN-GAME
#else
#end-if
#load-if-defined UP-2-PLAYER-TEAM
#else
#end-if
#load-if-defined DIFFICULTY-EASIEST
#end-if
#load-if-defined DIFFICULTY-EASY
#end-if
#load-if-defined DIFFICULTY-MODERATE
#end-if
#load-if-defined DIFFICULTY-HARD
#end-if
#load-if-defined DIFFICULTY-HARDEST
#end-if
#load-if-defined UP-MULTIPLAYER-GAME
#else
#end-if
#load-if-not-defined WONDER-RACE
#load-if-not-defined ARENA-MAP
#load-if-not-defined BLACK-FOREST-MAP
#load-if-not-defined YUCATAN-MAP
#load-if-not-defined FORTRESS-MAP
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-defined VICTORY-STANDARD
#end-if
#load-if-defined UP-ALLY-IN-GAME
#load-if-not-defined UP-TEAM-DISADVANTAGE
#load-if-defined UP-MULTIPLE-ENEMIES
#end-if
#end-if
#end-if
#load-if-not-defined DEATH-MATCH
#else
#end-if
#load-if-not-defined UP-AZTEC-CIV-ENEMY
#load-if-not-defined UP-MAYAN-CIV-ENEMY
#end-if
#end-if
#load-if-not-defined UP-HUMAN-IN-GAME
#else
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-not-defined BLACK-FOREST-MAP
#load-if-not-defined OASIS-MAP
#load-if-defined UP-POCKET-POSITION
#end-if
#end-if
#end-if
#end-if
#load-if-not-defined UP-HUMAN-IN-GAME
#load-if-not-defined CUSTOM-MAP
#load-if-not-defined ARCHIPELAGO-MAP
#load-if-not-defined BALTIC-MAP
#load-if-not-defined COASTAL-MAP
#load-if-not-defined CONTINENTAL-MAP
#load-if-not-defined CRATER-LAKE-MAP
#load-if-not-defined HIGHLAND-MAP
#load-if-not-defined ISLANDS-MAP
#load-if-not-defined MEDITERRANEAN-MAP
#load-if-not-defined MIGRATION-MAP
#load-if-not-defined NOMAD-MAP
#load-if-not-defined RIVERS-MAP
#load-if-not-defined SALT-MARSH-MAP
#load-if-not-defined SCANDANAVIA-MAP
#load-if-not-defined TEAM-ISLANDS-MAP
#load-if-not-defined YUCATAN-MAP
#load-if-not-defined OASIS-MAP
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#else
#end-if
#load-if-not-defined UP-ALLY-IN-GAME
#load-if-not-defined UP-MICHI-STYLE
#load-if-not-defined UP-2-PLAYER-GAME
#load-if-not-defined UP-3-PLAYER-GAME
#load-if-not-defined UP-TEAM-DISADVANTAGE
#else
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-not-defined UP-TEAM-DISADVANTAGE
#load-if-not-defined UP-MULTIPLE-ENEMIES
#load-if-not-defined UP-1-PLAYER-TEAM
#end-if
#end-if
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined BYZANTINE-CIV
#load-if-not-defined CELTIC-CIV
#load-if-not-defined FRANKISH-CIV
#load-if-not-defined HUN-CIV
#load-if-not-defined INCAN-CIV
#load-if-not-defined INDIAN-CIV
#load-if-not-defined JAPANESE-CIV
#load-if-not-defined KOREAN-CIV
#load-if-not-defined MAGYAR-CIV
#load-if-not-defined PERSIAN-CIV
#load-if-not-defined SARACEN-CIV
#load-if-not-defined TEUTONIC-CIV
#load-if-not-defined TURKISH-CIV
#load-if-not-defined VIKING-CIV
#load-if-defined UP-POCKET-POSITION
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-defined UP-MICHI-STYLE
#end-if
#load-if-defined DEFEND-WONDER
#load-if-defined UP-HUMAN-IN-GAME
#end-if
#load-if-not-defined GOTHIC-CIV
#else
#end-if
#end-if
#load-if-defined TURBO-RANDOM-MAP
#end-if
#load-if-not-defined TURBO-RANDOM-MAP
#load-if-defined LOW-RESOURCES-START
#load-if-defined UP-2-PLAYER-GAME
#load-if-not-defined UP-HUMAN-IN-GAME
#else
#end-if
#end-if
#end-if
#end-if
#load-if-defined UP-ALLY-IN-GAME
#load-if-defined UP-MULTIPLE-ENEMIES
#load-if-not-defined UP-4-PLAYER-GAME
#else
#load-if-defined ARABIA-MAP
#else
#end-if
#end-if
#else; We have ally but enemy is alone
#end-if
#end-if
#load-if-defined UP-HUMAN-IN-GAME
#end-if
#load-if-defined DEFEND-WONDER
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-not-defined UP-MICHI-STYLE
#end-if
#end-if
#load-if-defined FEUDAL-AGE-START
#end-if
#load-if-defined TURBO-RANDOM-MAP
#end-if
#load-if-defined UP-1-PLAYER-GAME
#end-if
#load-if-defined UP-2-PLAYER-GAME
#end-if
#load-if-defined UP-3-PLAYER-GAME
#end-if
#load-if-defined UP-4-PLAYER-GAME
#end-if
#load-if-defined UP-5-PLAYER-GAME
#end-if
#load-if-defined UP-6-PLAYER-GAME
#end-if
#load-if-defined UP-7-PLAYER-GAME
#end-if
#load-if-defined UP-8-PLAYER-GAME
#end-if
#load-if-not-defined WONDER-RACE
#else
#end-if
#load-if-not-defined WONDER-RACE
#else
#end-if
#load-if-not-defined NOMAD-MAP
#else
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-not-defined HIGH-RESOURCES-START
#else
#end-if
#else
#end-if
#load-if-defined MAYAN-CIV
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-defined UP-MICHI-STYLE
#else
#end-if
#end-if
#load-if-defined UP-ALLY-IN-GAME
#load-if-not-defined UP-POCKET-POSITION
#else
#end-if
#end-if
#load-if-defined NOMAD-MAP
#end-if
#load-if-not-defined SCANDANAVIA-MAP
#else
#end-if
#load-if-not-defined DEATH-MATCH
#end-if
#load-if-not-defined DEATH-MATCH
#end-if
#load-if-defined TINY-MAP
#else
#end-if
#load-if-not-defined BLACK-FOREST-MAP
#else
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-defined ARENA-MAP
#end-if
#load-if-not-defined UP-GROUPED-BY-TEAM
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#else
#end-if
#else
#end-if
#load-if-defined KING-OF-THE-HILL
#else
#end-if
#load-if-defined DIFFICULTY-HARDEST
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-not-defined DEFEND-WONDER
#load-if-not-defined KING-OF-THE-HILL
#load-if-not-defined TURBO-RANDOM-MAP
#load-if-not-defined REGICIDE
#load-if-not-defined WONDER-RACE
#load-if-defined MEDIUM-RESOURCES-START
#end-if
#load-if-defined HIGH-RESOURCES-START
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-defined TURBO-RANDOM-MAP
#end-if
#load-if-not-defined DARK-AGE-START
#end-if
#load-if-not-defined LOW-RESOURCES-START
#end-if
#load-if-not-defined DIFFICULTY-HARD
#end-if
#load-if-defined REGICIDE
#end-if
#load-if-not-defined HUN-CIV
#else
#end-if
#load-if-not-defined TURKISH-CIV
#else
#end-if
#load-if-not-defined SPANISH-CIV
#else
#end-if
#load-if-defined MONGOL-CIV
#load-if-defined UP-ALLY-IN-GAME
#end-if
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined INCAN-CIV
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-defined REGICIDE
#load-if-defined LOW-RESOURCES-START
#end-if
#end-if
#load-if-defined SARACEN-CIV
#end-if
#load-if-not-defined ARCHIPELAGO-MAP
#load-if-not-defined BALTIC-MAP
#load-if-not-defined COASTAL-MAP
#load-if-not-defined CONTINENTAL-MAP
#load-if-not-defined CRATER-LAKE-MAP
#load-if-not-defined HIGHLAND-MAP
#load-if-not-defined ISLANDS-MAP
#load-if-not-defined MEDITERRANEAN-MAP
#load-if-not-defined RIVERS-MAP
#load-if-not-defined SALT-MARSH-MAP
#load-if-not-defined SCANDANAVIA-MAP
#load-if-not-defined TEAM-ISLANDS-MAP
#load-if-not-defined YUCATAN-MAP
#load-if-defined FRANKISH-CIV
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-not-defined REGICIDE
#load-if-not-defined FORTRESS-MAP
#load-if-not-defined TURKISH-CIV
#end-if
#end-if
#end-if
#load-if-not-defined REGICIDE
#load-if-not-defined FORTRESS-MAP
#end-if
#end-if
#end-if; Not DM
#load-if-defined DEFEND-WONDER
#end-if
#load-if-not-defined UP-MICHI-STYLE
#load-if-not-defined DEATH-MATCH
#load-if-not-defined HUN-CIV
#load-if-not-defined SPANISH-CIV
#end-if
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined TURKISH-CIV
#load-if-not-defined ARENA-MAP
#end-if
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined SPANISH-CIV
#else
#end-if
#end-if
#end-if
#load-if-defined HUN-CIV
#else
#load-if-not-defined SPANISH-CIV
#end-if
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#end-if
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined HUN-CIV
#end-if
#end-if
#end-if
#else
#load-if-defined UP-GAME-AGE2-X2
#load-if-not-defined MONGOL-CIV
#else
#end-if
#else
#end-if
#end-if
#load-if-not-defined TURKISH-CIV
#end-if
#load-if-defined WONDER-RACE
#load-if-not-defined IMPERIAL-AGE-START
#load-if-not-defined POST-IMPERIAL-AGE-START
;(build farm)
#end-if
#end-if
;(build farm)
#load-if-not-defined IMPERIAL-AGE-START
#load-if-not-defined POST-IMPERIAL-AGE-START
#end-if
#end-if
#load-if-not-defined DARK-AGE-START
#load-if-not-defined FEUDAL-AGE-START
#load-if-not-defined CASTLE-AGE-START
#end-if
#end-if
#end-if
#load-if-not-defined IMPERIAL-AGE-START
#load-if-not-defined POST-IMPERIAL-AGE-START
#end-if
#end-if
#end-if
#load-if-defined ARENA-MAP
#load-if-defined TURKISH-CIV
;(build farm)
#end-if
#end-if
#load-if-defined DEATH-MATCH
#end-if
#load-if-defined FEUDAL-AGE-START
#end-if
#load-if-defined LOW-RESOURCES-START
#load-if-defined DIFFICULTY-HARD
#load-if-not-defined UP-MICHI-STYLE
#end-if
#load-if-defined FRANKISH-CIV
#end-if
#end-if
#end-if
#load-if-not-defined REGICIDE
#else
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-defined DIFFICULTY-EASIEST
#end-if
#load-if-defined DIFFICULTY-EASY
#end-if
#load-if-defined DIFFICULTY-MODERATE
#end-if
#load-if-not-defined LOW-RESOURCES-START
#end-if
#load-if-not-defined DARK-AGE-START
#end-if
#load-if-not-defined MEDIUM-RESOURCES-START
#load-if-not-defined HIGH-RESOURCES-START
#load-if-defined FEUDAL-AGE-START
#end-if
#load-if-defined CASTLE-AGE-START
#end-if
#load-if-defined IMPERIAL-AGE-START
#end-if
#load-if-defined POST-IMPERIAL-AGE-START
#end-if
#end-if
#end-if
#load-if-defined MEDIUM-RESOURCES-START
#load-if-defined DARK-AGE-START
#end-if
#load-if-defined FEUDAL-AGE-START
#end-if
#load-if-defined CASTLE-AGE-START
#end-if
#load-if-defined IMPERIAL-AGE-START
#end-if
#load-if-defined POST-IMPERIAL-AGE-START
#end-if
#end-if
#load-if-defined HIGH-RESOURCES-START
#load-if-defined DARK-AGE-START
#end-if
#load-if-defined FEUDAL-AGE-START
#end-if
#load-if-defined CASTLE-AGE-START
#end-if
#load-if-defined IMPERIAL-AGE-START
#end-if
#load-if-defined POST-IMPERIAL-AGE-START
#end-if
#end-if
#end-if
#load-if-defined DEATH-MATCH
#load-if-defined POST-IMPERIAL-AGE-START
#end-if
#end-if
#load-if-not-defined UP-MICHI-STYLE
#load-if-not-defined WONDER-RACE
#load-if-not-defined AZTEC-CIV
#load-if-not-defined REGICIDE
#load-if-defined HUN-CIV
#end-if
#load-if-not-defined KOREAN-CIV
#load-if-not-defined HUN-CIV
#end-if
#else
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-defined AZTEC-CIV
#end-if
#load-if-defined MONGOL-CIV
#end-if
#load-if-not-defined FORTRESS-MAP
#end-if
#load-if-defined CHINESE-CIV
#end-if
#load-if-not-defined UP-MICHI-STYLE
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined SARACEN-CIV
#end-if
#end-if
#load-if-defined SARACEN-CIV
#end-if
#load-if-defined FRANKISH-CIV
#end-if
#load-if-defined GOTHIC-CIV
#end-if
#load-if-not-defined GOTHIC-CIV
#load-if-not-defined SARACEN-CIV
#load-if-not-defined FRANKISH-CIV
#end-if
#end-if
#end-if
#load-if-not-defined DARK-AGE-START
#end-if
#load-if-not-defined DIFFICULTY-EASIEST
#load-if-not-defined WONDER-RACE
#load-if-not-defined DEATH-MATCH
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined SARACEN-CIV
#load-if-not-defined TURKISH-CIV
#end-if
#end-if
#end-if
#end-if
#load-if-defined AZTEC-CIV
#end-if
#load-if-defined MAYAN-CIV
#end-if
#load-if-defined SARACEN-CIV
#end-if
#load-if-defined TURKISH-CIV
#end-if
#load-if-defined UP-MICHI-STYLE
#end-if
#load-if-not-defined POPULATION-CAP-EXTENDED
;#load-if-defined POPULATION-CAP-200
;#end-if
#end-if
#load-if-defined TINY-MAP
#else
#load-if-defined POPULATION-CAP-200
#load-if-not-defined POPULATION-CAP-EXTENDED
#end-if
#end-if
#end-if
#load-if-defined POPULATION-CAP-200
#load-if-defined POPULATION-CAP-EXTENDED
#else
#end-if
#load-if-not-defined TINY-MAP
#else
#end-if
#load-if-defined UP-2-PLAYER-GAME
#else
#end-if
#end-if
#end-if
#else
#end-if
#load-if-not-defined DIFFICULTY-EASIEST
#load-if-not-defined DIFFICULTY-EASY
#load-if-not-defined DIFFICULTY-MODERATE
#load-if-defined UP-ALLY-IN-GAME
#end-if
#end-if
#end-if
#end-if
#load-if-defined DEFEND-WONDER
#end-if
#load-if-defined KING-OF-THE-HILL
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-defined VICTORY-STANDARD
#load-if-defined DEFEND-WONDER
#end-if
#end-if
#end-if
#load-if-defined ARENA-MAP
#end-if
#load-if-defined DEATH-MATCH
#else
#load-if-defined UP-MICHI-STYLE
#end-if
#load-if-not-defined WONDER-RACE
#load-if-not-defined REGICIDE
#load-if-not-defined DEFEND-WONDER
#load-if-not-defined FORTRESS-MAP
#load-if-not-defined UP-POCKET-POSITION
#else
#end-if
#end-if
#end-if
#end-if
#load-if-not-defined DEFEND-WONDER
#load-if-not-defined POST-IMPERIAL-AGE-START
#end-if
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined INCAN-CIV
#load-if-not-defined MAYAN-CIV
#end-if
#end-if
#end-if
#load-if-defined FRANKISH-CIV
#end-if
#load-if-defined HUN-CIV
#end-if
#load-if-defined PERSIAN-CIV
#end-if
#load-if-defined SLAVIC-CIV
#end-if
#load-if-defined DARK-AGE-START
#else
#end-if
#load-if-not-defined MAYAN-CIV
#else
#end-if
#load-if-defined CHINESE-CIV
#end-if
#end-if; Not wonder race
#load-if-not-defined POST-IMPERIAL-AGE-START
#load-if-not-defined DEFEND-WONDER
#end-if
#end-if
#load-if-not-defined WONDER-RACE
#load-if-not-defined BRITON-CIV
#load-if-not-defined GOTHIC-CIV
#load-if-not-defined KOREAN-CIV
#load-if-not-defined CHINESE-CIV
#load-if-not-defined JAPANESE-CIV
#load-if-not-defined PERSIAN-CIV
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-defined AZTEC-CIV
#end-if
#load-if-not-defined WONDER-RACE
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined TURKISH-CIV
#end-if
#end-if
#load-if-not-defined TURKISH-CIV
#load-if-defined TINY-MAP
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#end-if
#end-if
#end-if
#load-if-not-defined KOREAN-CIV
#load-if-defined INDIAN-CIV
#end-if
#load-if-defined HUN-CIV
#end-if
#load-if-not-defined BYZANTINE-CIV
#end-if
#end-if
#load-if-not-defined HUN-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined PERSIAN-CIV
#end-if
#end-if
#end-if
#load-if-not-defined HUN-CIV
#else
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined SARACEN-CIV
#load-if-defined PERSIAN-CIV
#end-if
#end-if
#end-if
#end-if
#load-if-defined BRITON-CIV
#end-if
#load-if-defined BYZANTINE-CIV
#end-if
#load-if-defined CELTIC-CIV
#end-if
#load-if-defined CHINESE-CIV
#end-if
#load-if-defined GOTHIC-CIV
#end-if
#load-if-defined INCAN-CIV
#end-if
#load-if-defined INDIAN-CIV
#end-if
#load-if-defined ITALIAN-CIV
#end-if
#load-if-defined JAPANESE-CIV
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined MAGYAR-CIV
#end-if
#load-if-defined MAYAN-CIV
#end-if
#load-if-defined MONGOL-CIV
#end-if
#load-if-defined PERSIAN-CIV
#end-if
#load-if-defined SLAVIC-CIV
#end-if
#load-if-defined TEUTONIC-CIV
#end-if
#load-if-defined TURKISH-CIV
#end-if
#load-if-defined VIKING-CIV
#end-if
#load-if-defined AZTEC-CIV
#end-if
#load-if-defined CELTIC-CIV
#end-if
#load-if-defined FRANKISH-CIV
#end-if
#load-if-defined GOTHIC-CIV
#end-if
#load-if-defined INCAN-CIV
#end-if
#load-if-defined JAPANESE-CIV
#end-if
#load-if-defined MAGYAR-CIV
#end-if
#load-if-defined PERSIAN-CIV
#end-if
#load-if-defined SARACEN-CIV
#end-if
#load-if-defined SLAVIC-CIV
#end-if
#load-if-defined TEUTONIC-CIV
#end-if
#load-if-defined VIKING-CIV
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#end-if
#end-if
#load-if-defined INDIAN-CIV
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined BYZANTINE-CIV
#else
#end-if
#end-if
#end-if
#load-if-defined HUN-CIV
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#end-if
#end-if
#load-if-defined BRITON-CIV
#end-if
#load-if-defined CHINESE-CIV
#end-if
#load-if-defined INDIAN-CIV
#end-if
#load-if-defined ITALIAN-CIV
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined MAYAN-CIV
#end-if
#load-if-defined MONGOL-CIV
#end-if
#load-if-defined SPANISH-CIV
#end-if
#load-if-defined TURKISH-CIV
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined TEUTONIC-CIV
#load-if-not-defined VIKING-CIV
#end-if
#end-if
#end-if
#end-if
#load-if-defined HUN-CIV
#end-if
#load-if-defined AZTEC-CIV
#end-if
#load-if-not-defined HUN-CIV
#load-if-not-defined GOTHIC-CIV
#end-if
#end-if
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#load-if-defined SPANISH-CIV
#load-if-not-defined UP-GAME-AGE2-X2
#else
#end-if
#end-if
#load-if-defined AZTEC-CIV
#else
#end-if
#load-if-defined AZTEC-CIV
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined AZTEC-CIV
#end-if
#load-if-defined BRITON-CIV
#end-if
#load-if-defined BYZANTINE-CIV
#end-if
#load-if-defined CELTIC-CIV
#end-if
#load-if-defined CHINESE-CIV
#end-if
#load-if-defined FRANKISH-CIV
#end-if
#load-if-defined HUN-CIV
#load-if-defined VICTORY-STANDARD
#end-if
#end-if
#load-if-defined INCAN-CIV
#end-if
#load-if-defined INDIAN-CIV
#end-if
#load-if-defined ITALIAN-CIV
#end-if
#load-if-defined JAPANESE-CIV
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined MAGYAR-CIV
#end-if
#load-if-defined MAYAN-CIV
#end-if
#load-if-defined MONGOL-CIV
#end-if
#load-if-defined PERSIAN-CIV
#end-if
#load-if-defined SARACEN-CIV
#end-if
#load-if-defined SLAVIC-CIV
#end-if
#load-if-defined SPANISH-CIV
#end-if
#load-if-defined TEUTONIC-CIV
#end-if
#load-if-defined TURKISH-CIV
#end-if
#load-if-defined VIKING-CIV
#end-if
#load-if-not-defined BYZANTINE-CIV
#load-if-not-defined CHINESE-CIV
#load-if-not-defined HUN-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined PERSIAN-CIV
#load-if-not-defined TURKISH-CIV
#load-if-not-defined GOTHIC-CIV
#else
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-not-defined WONDER-RACE
#load-if-defined UP-MICHI-STYLE
#end-if
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-not-defined DARK-AGE-START
#end-if
#end-if
#load-if-not-defined HUN-CIV
#end-if
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined DEFEND-WONDER
#end-if
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
;(build farm)
;(build farm)
;(build farm)
;(build farm)
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
;(build farm)
;(build farm)
;(build farm)
;(build farm)
#load-if-defined NOMAD-MAP
#end-if
#load-if-not-defined UP-MICHI-STYLE
;(build farm)
;(build farm)
#else
;(build farm)
#end-if
#load-if-not-defined UP-MICHI-STYLE
;(build farm)
;(build farm)
;(build farm)
;(build farm)
;(build farm)
;(build farm)
;(build farm)
;(build farm)
#end-if
#load-if-defined REGICIDE
#end-if
#load-if-defined NOMAD-MAP
#end-if
#load-if-not-defined WONDER-RACE
#load-if-not-defined DEFEND-WONDER
#else
#end-if
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-not-defined TURKISH-CIV
#else
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined SARACEN-CIV
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#end-if
#end-if
#load-if-not-defined TURKISH-CIV
#else
#end-if
#load-if-defined DARK-AGE-START
#else
#end-if
#load-if-defined CELTIC-CIV
#end-if
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#load-if-not-defined UP-MICHI-STYLE
;(build farm)
;(build farm)
;(build farm)
#load-if-not-defined AZTEC-CIV
;(build farm)
#else
;(build farm)
#end-if
#load-if-not-defined FEUDAL-AGE-START
;(build farm)
#else
;(build farm)
#end-if
#load-if-defined DARK-AGE-START
;(build farm)
#else
;(build farm)
#end-if
;(build farm)
#else
;(build farm)
#end-if
;(build farm)
#load-if-defined UP-ALLY-IN-GAME
#end-if
#load-if-defined GOTHIC-CIV
;(build farm)
;(build farm)
#end-if
#load-if-not-defined TURKISH-CIV
#else
#end-if
;(build farm)
;(build farm)
;(build farm)
;(build farm)
;(build farm)
#load-if-defined TINY-MAP
#else
#end-if
#load-if-not-defined WONDER-RACE
#load-if-not-defined NOMAD-MAP
#else
#end-if
#else
#load-if-not-defined NOMAD-MAP
#else
#end-if
#end-if
#load-if-not-defined WONDER-RACE
#end-if
#load-if-not-defined WONDER-RACE
#load-if-defined UP-MICHI-STYLE
#end-if
#load-if-not-defined SARACEN-CIV
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#end-if
#end-if
#load-if-defined TURKISH-CIV
;(build farm)
#end-if
#end-if
#load-if-defined KOREAN-CIV
;(build farm)
#end-if
#load-if-not-defined WONDER-RACE
#load-if-not-defined TURKISH-CIV
#end-if
#load-if-not-defined HUN-CIV
#else
#end-if
#load-if-not-defined UP-MICHI-STYLE
#load-if-defined KOREAN-CIV
#else
#load-if-defined DARK-AGE-START
#else
#end-if
#end-if
#else
#end-if
#load-if-defined TURKISH-CIV
#end-if
#load-if-not-defined POST-IMPERIAL-AGE-START
#load-if-not-defined DEFEND-WONDER
#load-if-not-defined TURKISH-CIV
#end-if
#end-if
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-not-defined ARABIA-MAP
#load-if-not-defined ARENA-MAP
#load-if-not-defined BLACK-FOREST-MAP
#load-if-not-defined FORTRESS-MAP
#load-if-not-defined GHOST-LAKE-MAP
#load-if-not-defined GOLD-RUSH-MAP
#load-if-not-defined MONGOLIA-MAP
#load-if-not-defined OASIS-MAP
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-not-defined TURKISH-CIV
#else
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#end-if
#load-if-not-defined UP-MICHI-STYLE
#load-if-defined BLACK-FOREST-MAP
#load-if-defined CELTIC-CIV
#else
#end-if
#end-if
#end-if
#load-if-defined TURKISH-CIV
#end-if
#load-if-defined UP-MICHI-STYLE
#load-if-not-defined CHINESE-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined BYZANTINE-CIV
#load-if-not-defined FRANKISH-CIV
#load-if-not-defined GOTHIC-CIV
#load-if-not-defined HUN-CIV
#load-if-not-defined INDIAN-CIV
#load-if-not-defined PERSIAN-CIV
#load-if-not-defined SPANISH-CIV
#load-if-not-defined TURKISH-CIV
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-defined TURKISH-CIV
#end-if
#load-if-not-defined UP-MICHI-STYLE
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined AZTEC-CIV
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined SARACEN-CIV
#load-if-not-defined GOTHIC-CIV
#end-if
#end-if
#end-if
#load-if-defined TURKISH-CIV
#end-if
#load-if-defined CELTIC-CIV
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#end-if
#load-if-defined CHINESE-CIV
#end-if
#load-if-defined JAPANESE-CIV
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined VIKING-CIV
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined INCAN-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined INDIAN-CIV
#else
#end-if
#load-if-defined PERSIAN-CIV
#end-if
#end-if
#end-if
#end-if
#load-if-defined TURKISH-CIV
#else
#load-if-not-defined UP-AZTEC-CIV-ENEMY
#load-if-not-defined UP-MAYAN-CIV-ENEMY
#end-if
#end-if
#end-if
#load-if-defined GOTHIC-CIV
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined SARACEN-CIV
#end-if
#end-if
#load-if-defined UP-ITALIAN-CIV-ALLY
#load-if-not-defined ITALIAN-CIV
#end-if
#end-if
#load-if-defined ITALIAN-CIV
#end-if
#load-if-defined INCAN-CIV
#end-if
#load-if-defined TEUTONIC-CIV
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined INCAN-CIV
#load-if-not-defined MAYAN-CIV
#load-if-defined SARACEN-CIV
#end-if
#load-if-defined TURKISH-CIV
#end-if
#end-if
#end-if
#end-if
#load-if-defined GOTHIC-CIV
#else
#end-if
#load-if-defined GOTHIC-CIV
#end-if
#load-if-not-defined TURKISH-CIV
#end-if
#load-if-defined SARACEN-CIV
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined HUN-CIV
#load-if-not-defined MAYAN-CIV
#end-if
#end-if
#end-if
#load-if-not-defined INDIAN-CIV
#else
#end-if
#load-if-not-defined TURKISH-CIV
#else
#end-if
#load-if-not-defined TURKISH-CIV
#end-if
#load-if-defined BYZANTINE-CIV
#end-if
#load-if-not-defined SPANISH-CIV
#end-if
#load-if-not-defined TURKISH-CIV
#end-if
#load-if-defined HUN-CIV
#end-if
#load-if-not-defined TINY-MAP
#end-if
#load-if-defined FRANKISH-CIV
#load-if-defined TINY-MAP
#else
#end-if
#end-if
#load-if-defined PERSIAN-CIV
#load-if-defined TINY-MAP
#else
#end-if
#end-if
#load-if-defined TEUTONIC-CIV
#load-if-defined TINY-MAP
#else
#end-if
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined HUN-CIV
#load-if-not-defined SPANISH-CIV
#end-if
#end-if
#load-if-defined HUN-CIV
#end-if
#load-if-defined SPANISH-CIV
#end-if
#load-if-defined MAGYAR-CIV
#end-if
#load-if-defined MONGOL-CIV
#end-if
#load-if-not-defined INDIAN-CIV
#else
#end-if
#load-if-defined PERSIAN-CIV
#end-if
#end-if
#end-if
#load-if-defined SARACEN-CIV
#end-if
#load-if-defined SLAVIC-CIV
#end-if
#load-if-defined SPANISH-CIV
#end-if
#load-if-defined TURKISH-CIV
#else
#load-if-not-defined TINY-MAP
#else
#end-if
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined INCAN-CIV
#end-if
#end-if
#load-if-not-defined SARACEN-CIV
#load-if-not-defined TURKISH-CIV
#end-if
#end-if
#end-if
#end-if
#end-if; DM
#load-if-defined TINY-MAP
#end-if
#load-if-defined TINY-MAP
#else
#end-if
#load-if-defined HUN-CIV
#load-if-defined TINY-MAP
#end-if
#end-if
#load-if-not-defined HUN-CIV
#load-if-defined TINY-MAP
#load-if-defined GOTHIC-CIV
#end-if
#end-if
#end-if
#load-if-defined TURKISH-CIV
#end-if
#load-if-defined UP-2-PLAYER-GAME
#else
#load-if-defined PERSIAN-CIV
#end-if
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined TINY-MAP
#end-if
#load-if-defined UP-ALLY-IN-GAME
#load-if-not-defined UP-POCKET-POSITION
#else
#end-if
#end-if
#load-if-defined BRITON-CIV
#end-if
#load-if-defined HUN-CIV
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined MAYAN-CIV
#end-if
#load-if-defined MAGYAR-CIV
#end-if
#load-if-defined MONGOL-CIV
#end-if
#load-if-defined SARACEN-CIV
#end-if
#load-if-defined SPANISH-CIV
#end-if
#else; Skip a lot of stuff for DM
#end-if
#load-if-defined TINY-MAP
#end-if
#load-if-not-defined TINY-MAP
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-not-defined HUN-CIV
#load-if-not-defined SPANISH-CIV
#end-if
#end-if
#load-if-defined TURKISH-CIV
#end-if
#end-if; DM
#load-if-defined UP-HUMAN-IN-GAME
#load-if-not-defined TINY-MAP
#end-if
#end-if
#load-if-not-defined DEFEND-WONDER
#else
#end-if
#load-if-not-defined TEAMS-LOCKED
#load-if-defined UP-HUMAN-IN-GAME
#end-if
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-not-defined HUN-CIV
#load-if-not-defined CHINESE-CIV
#load-if-not-defined MAYAN-CIV
#else
#end-if
#end-if
#end-if
#load-if-defined CHINESE-CIV
#end-if
#load-if-defined UP-2-PLAYER-GAME
#end-if
#end-if; DM
#load-if-not-defined DEATH-MATCH
#load-if-not-defined DIFFICULTY-EASIEST
#load-if-not-defined DIFFICULTY-EASY
#load-if-not-defined DIFFICULTY-MODERATE
#load-if-not-defined UP-MICHI-STYLE
#load-if-not-defined WONDER-RACE
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-defined SPANISH-CIV
#end-if
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#load-if-defined TINY-MAP
#end-if
#load-if-not-defined UP-2-PLAYER-TEAM
#load-if-defined UP-POCKET-POSITION
#else
#end-if
#else
#end-if
#load-if-defined DIFFICULTY-HARD
#load-if-defined TINY-MAP
#load-if-not-defined UP-BYZANTINE-CIV-ENEMY
#load-if-not-defined SPANISH-CIV
#load-if-not-defined HUN-CIV
#else
#end-if
#end-if
#end-if
#load-if-not-defined TURKISH-CIV
#load-if-not-defined UP-GOTHIC-CIV-ENEMY
#end-if
#end-if
#end-if
#end-if
#load-if-not-defined HUN-CIV
#load-if-defined UP-2-PLAYER-GAME
#load-if-not-defined SPANISH-CIV
#end-if
#end-if
#else
#load-if-defined UP-2-PLAYER-GAME
#end-if
#end-if
#load-if-not-defined BYZANTINE-CIV
#load-if-not-defined PERSIAN-CIV
#load-if-not-defined SARACEN-CIV
#end-if
#end-if
#end-if
#load-if-not-defined WONDER-RACE
#load-if-not-defined KING-OF-THE-HILL
#load-if-not-defined TURBO-RANDOM-MAP
#load-if-defined DARK-AGE-START
#load-if-defined UP-2-PLAYER-GAME
#load-if-not-defined MAYAN-CIV
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-defined TINY-MAP
#load-if-not-defined CUSTOM-MAP
#load-if-not-defined ARCHIPELAGO-MAP
#load-if-not-defined BALTIC-MAP
#load-if-not-defined COASTAL-MAP
#load-if-not-defined CONTINENTAL-MAP
#load-if-not-defined CRATER-LAKE-MAP
#load-if-not-defined HIGHLAND-MAP
#load-if-not-defined ISLANDS-MAP
#load-if-not-defined MEDITERRANEAN-MAP
#load-if-not-defined MIGRATION-MAP
#load-if-not-defined NOMAD-MAP
#load-if-not-defined RIVERS-MAP
#load-if-not-defined SALT-MARSH-MAP
#load-if-not-defined SCANDANAVIA-MAP
#load-if-not-defined TEAM-ISLANDS-MAP
#load-if-not-defined YUCATAN-MAP
#load-if-not-defined DIFFICULTY-HARDEST
#load-if-not-defined REGICIDE
#load-if-not-defined UP-ALLY-IN-GAME
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#else; Teamgame
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-defined UP-HUMAN-IN-GAME
#load-if-not-defined TINY-MAP
#load-if-not-defined SMALL-MAP
#load-if-defined ARENA-MAP
#end-if
#end-if
#end-if
#load-if-defined BLACK-FOREST-MAP
#end-if
#end-if
#end-if
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-defined UP-2-PLAYER-GAME
#load-if-defined AZTEC-CIV
#load-if-defined UP-AZTEC-CIV-ENEMY
#end-if; This is here to make jump-rule even
#end-if
#load-if-defined AZTEC-CIV
#end-if
#load-if-defined BRITON-CIV
#end-if
#load-if-defined BYZANTINE-CIV
#end-if
#load-if-defined CELTIC-CIV
#end-if
#load-if-defined CHINESE-CIV
#end-if
#load-if-defined FRANKISH-CIV
#end-if
#load-if-defined GOTHIC-CIV
#end-if
#load-if-defined HUN-CIV
#end-if
#load-if-defined INCAN-CIV
#end-if
#load-if-defined INDIAN-CIV
#end-if
#load-if-defined ITALIAN-CIV
#end-if
#load-if-defined JAPANESE-CIV
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-defined MAGYAR-CIV
#end-if
#load-if-defined MAYAN-CIV
#end-if
#load-if-defined MONGOL-CIV
#end-if
#load-if-defined PERSIAN-CIV
#end-if
#load-if-defined SARACEN-CIV
#end-if
#load-if-defined SLAVIC-CIV
#end-if
#load-if-defined SPANISH-CIV
#end-if
#load-if-defined TEUTONIC-CIV
#end-if
#load-if-defined TURKISH-CIV
#end-if
#load-if-defined VIKING-CIV
#end-if
#else
#end-if
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-defined UP-HUMAN-IN-GAME
#load-if-defined DARK-AGE-START
#load-if-not-defined DIFFICULTY-HARDEST
#end-if
#end-if
#end-if
#load-if-defined VICTORY-STANDARD
#end-if
#end-if
#load-if-defined UP-HUMAN-IN-GAME
#else
#end-if
#load-if-not-defined WONDER-RACE
#end-if
#load-if-defined ARENA-MAP
#load-if-defined UP-4-PLAYER-GAME
#else
#end-if
#else
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-not-defined UP-POCKET-POSITION
#else
#end-if
#load-if-not-defined DEFEND-WONDER
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#load-if-not-defined INDIAN-CIV
#end-if
#end-if
#end-if
#load-if-defined KOREAN-CIV
#end-if
#load-if-not-defined UP-POCKET-POSITION
#else
#end-if
#end-if
#end-if
#load-if-defined UP-HUMAN-IN-GAME
#end-if
#load-if-not-defined DEATH-MATCH
#end-if
#load-if-not-defined AZTEC-CIV
#load-if-not-defined MAYAN-CIV
#end-if
#end-if
#load-if-defined UP-2-PLAYER-GAME
#load-if-not-defined UP-ALLY-IN-GAME
#end-if
#end-if
#load-if-not-defined ARABIA-MAP
#load-if-not-defined ARENA-MAP
#load-if-not-defined BLACK-FOREST-MAP
#load-if-not-defined FORTRESS-MAP
#load-if-not-defined GHOST-LAKE-MAP
#load-if-not-defined GOLD-RUSH-MAP
#load-if-not-defined MONGOLIA-MAP
#load-if-not-defined OASIS-MAP
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-not-defined DEFEND-WONDER
#load-if-not-defined DEATH-MATCH
#end-if
#end-if
#load-if-defined DEATH-MATCH
#end-if
#load-if-not-defined DEATH-MATCH
#load-if-not-defined WONDER-RACE
#load-if-not-defined AZTEC-CIV
#else
#end-if
#end-if
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#load-if-not-defined SARACEN-CIV
#else
#end-if
#load-if-not-defined WONDER-RACE
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#load-if-not-defined UP-MICHI-STYLE
#else
#end-if
#load-if-defined SARACEN-CIV
#end-if
#load-if-not-defined BRITON-CIV
#load-if-not-defined GOTHIC-CIV
#load-if-not-defined KOREAN-CIV
#load-if-not-defined CHINESE-CIV
#load-if-not-defined JAPANESE-CIV
#load-if-not-defined PERSIAN-CIV
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if
#end-if; DM
#load-if-not-defined DEFEND-WONDER
#else
#end-if



tankant 发表于 2013-9-14 15:01:39

本帖最后由 tankant 于 2013-9-14 15:51 编辑

上述结果中,(build farm)的位置一目了然。我们可以找到原来的Barbarian.per,把43个带有(build farm)的rule拷贝到文件里,放到如上的;build farm的位置,然后把这个文件的代码批量替换。

接下来我手动复制这43个rule到一个新的文件里。做这一步工作的时候手要稳,不能颤。

生成的tmp.per文件内容如下:

(defrule
    (goal gl-current-age gv-dark)
    (goal DOCK 0)
    (building-type-count-total farm < 18)
    (dropsite-min-distance deer-hunting > 27)
    (building-type-count-total mill < 2)
    (or    (idle-farm-count < 1)
      (building-type-count-total farm < 7))
    (building-type-count-total lumber-camp >= 1)
    (can-build farm)
=>
    (set-strategic-number sn-maximum-town-size 18); To enable building farms next to mill
    (build farm)
)


(defrule
    (goal gl-current-age gv-feudal)
    (current-age == feudal-age)
    (goal DOCK 0)
    (idle-farm-count < 1)
    (building-type-count-total farm < 11)
    (building-type-count-total market > 0)
    (building-type-count-total blacksmith > 0)
    (can-build farm)
=>
    (set-strategic-number sn-maximum-town-size 18)
    (build farm)
)

(defrule
    (goal gl-strategy turkish-fast-imp)
    (goal gl-current-age gv-dark)
    (goal DOCK 0)
    (building-type-count-total farm < 19)
    (or    (dropsite-min-distance deer-hunting > 27)
      (dropsite-min-distance deer-hunting == -1))
    (building-type-count-total mill < 2)
    (or    (building-type-count-total farm g:< gl-max-farm-count)
      (building-type-count-total farm < 7))
    (building-type-count-total lumber-camp >= 1)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (current-age == dark-age)
    (up-compare-goal gl-strategy != michi-boom)
    (or    (and    (building-type-count-total town-center > 1)
            (goal DOCK 0))
      (and    (wood-amount >= 375)
            (goal gl-current-age gv-dark-up)))
    (up-compare-goal g:!= gl-strategy flush-overwrite)
    (up-compare-goal g:!= gl-strategy grush)
    (building-type-count-total farm g:< gl-max-farm-count)
    (building-type-count-total farm < 25)
    (wood-amount >= 160)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (strategic-number sn-minimum-water-body-size-for-dock == 998)
    (building-type-count-total lumber-camp > 0)
    (goal gl-current-age gv-dark)
    (idle-farm-count < 1)
    (up-compare-goal gl-DRUSH != YES)
    (building-type-count-total mill < 2)
    (or    (and    (building-type-count-total farm < 9)
            (and    (building-type-count-total farm > 4)
                (dropsite-min-distance deer-hunting > 27)))
      (wood-amount > 160))
    (building-type-count-total farm < 11)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (strategic-number sn-allow-new-build-order == 1)
    (up-compare-goal gl-current-age <= gv-dark-up)
    (building-type-count-total lumber-camp > 0)
    (or    (goal gl-strategy korean-boom)
      (goal gl-strategy castle-drop))
    (nand    (building-type-count-total mining-camp < 2)
      (unit-type-count-total villager > 25))
    (or    (dropsite-min-distance deer-hunting > 27)
      (dropsite-min-distance deer-hunting < 5))
    (building-type-count-total farm < 6)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (strategic-number sn-allow-new-build-order == 1)
    (up-compare-goal gl-current-age <= gv-dark-up)
    (or    (dropsite-min-distance deer-hunting > 27)
      (or    (dropsite-min-distance deer-hunting < 5)
            (building-type-count-total mill > 1)))
    (building-type-count-total lumber-camp > 0)
    (or    (goal gl-eew-strategy-type fast-imp)
      (goal gl-strategy-type FC2))
    (building-type-count-total farm < 8)
    (idle-farm-count < 1)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (goal gl-nothing-style-map YES)
    (up-compare-goal gl-current-age <= gv-dark-up)
    (idle-farm-count < 1)
    (or    (building-type-count-total farm < nothing-number-dark-farms)
      (and    (wood-amount > 120)
            (and    (game-time < 1140)
                (and    (goal gl-current-age gv-dark)
                  (building-type-count-total farm < 14)))))
    (building-type-count-total town-center >= 1)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (up-compare-goal gl-current-age >= gv-feudal)
    (goal gl-nothing-style-map YES)
    (current-age == feudal-age)
    (or    (and    (gold-amount > 200)
            (building-type-count-total farm < nothing-number-dark-farms))
      (up-compare-goal gl-strategy-type <= controlled-flush))
    (building-type-count-total farm g:< gl-max-farm-count)
    (building-type-count-total town-center >= 1)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (goal gl-nothing-style-map YES)
    (or    (goal gl-current-age gv-feudal-up)
      (and    (wood-amount > 400)
            (or    (and    (research-completed ri-horse-collar)
                  (goal gl-nothing-selling-started YES))
                (current-age-time > 180))))
    (current-age == feudal-age)
    (building-type-count-total farm g:< gl-max-farm-count)
    (building-type-count-total town-center >= 1)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (goal gl-nothing-style-map YES)
    (up-compare-goal gl-current-age > gv-feudal-up)
    (nand    (building-type-count-total monastery < 1)
      (cc-players-unit-type-count 0 relic > 0))
    (or    (building-type-count-total farm < 10)
      (or    (and    (building-type-count-total farm < 15)
                (building-type-count-total town-center > 1))
            (and    (current-age-time > 240)
                (building-type-count-total farm g:< gl-max-farm-count))))
    (can-build farm)
=>
    (build farm)
)

(defrule
    (strategic-number sn-allow-new-build-order >= 1)
    (building-type-count-total town-center > 0)
    (goal gl-current-age gv-dark)
    (up-compare-goal gl-DRUSH != YES)
    (goal DOCK 0)
    (building-type-count-total farm < 9)
    (or    (and    (dropsite-min-distance deer-hunting > 27)
            (and    (building-type-count-total mill < 2)
                (up-compare-goal gl-close-deer != YES)))
      (building-type-count-total farm < 3))
    (building-type-count-total lumber-camp >= 1)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (strategic-number sn-allow-new-build-order == 1); >= 1
    (building-type-count-total town-center > 0)
    (goal gl-current-age gv-dark)
;    (up-compare-goal gl-DRUSH != YES)
    (goal DOCK 0)
    (or    (up-compare-goal gl-strategy-type >= FC)
      (building-type-count-total farm < 4)); 5
    (building-type-count-total farm < 6)
    (or    (nand    (dropsite-min-distance deer-hunting <= 27)
            (building-type-count-total mill < 2))
      (goal gl-close-deer YES))
    (building-type-count-total lumber-camp >= 1)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (strategic-number sn-allow-new-build-order == 1)
    (building-type-count-total town-center > 0)
    (goal gl-current-age gv-dark)
    (building-type-count-total mill < 3)
    (or    (and    (building-type-count-total farm < 4)
            (and    (game-time > 600)
                (dropsite-min-distance deer-hunting == 255)))
      (up-compare-goal gl-heavy-resources != HIGH))
    (building-type-count-total farm < 6)
    (building-type-count-total lumber-camp >= 1)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (strategic-number sn-allow-new-build-order >= 1)
    (building-type-count-total town-center > 0)
    (goal gl-current-age gv-dark)
    (strategic-number sn-boars-on-map == NONE)
    (up-compare-goal gl-DRUSH != YES)
    (goal DOCK 0)
    (or    (nand    (dropsite-min-distance deer-hunting <= 27)
            (building-type-count-total mill < 2))
      (goal gl-close-deer YES))
    (idle-farm-count < 1)
    (up-pending-objects c: farm < 1)
    (building-type-count-total lumber-camp >= 1)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (strategic-number sn-allow-new-build-order >= 1)
    (building-type-count-total town-center > 0)
    (goal gl-current-age gv-dark)
    (goal gl-DRUSH YES)
    (building-type-count-total barracks > 0)
    (building-type-count-total farm < 6)
    (or    (dropsite-min-distance deer-hunting > 27); +mill <2
      (or    (building-type-count-total farm < 3)
            (or    (wood-amount > 160)
                (goal gl-close-deer YES))))
    (building-type-count-total lumber-camp >= 1)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (strategic-number sn-allow-new-build-order >= 1)
    (building-type-count-total town-center > 0)
    (goal gl-current-age gv-dark)
    (not    (goal DOCK 0))
    (unit-type-count-total fishing-ship > 11)
    (dropsite-min-distance deer-hunting > 27)
    (building-type-count-total mill < 2)
    (building-type-count-total farm < 7)
    (building-type-count-total lumber-camp >= 1)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (strategic-number sn-allow-new-build-order >= 1)
    (building-type-count-total town-center > 0)
    (goal gl-current-age gv-dark)
    (not    (goal DOCK 0))
    (or    (game-time > 300)
      (starting-resources == low-resources))
    (wood-amount > 200)
    (or    (building-type-count-total farm < 6)
      (goal gl-boar-eaten 0))
    (building-type-count-total farm < 7)
    (building-type-count-total lumber-camp >= 1)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (strategic-number sn-allow-new-build-order >= 1)
    (building-type-count-total town-center > 0)
    (goal gl-current-age gv-dark)
    (not    (goal DOCK 0))
    (building-type-count-total dock > 1)
    (wood-amount >= dock-farm-wood)
    (building-type-count-total farm < 9)
    (or    (idle-farm-count <= 1)
      (building-type-count-total farm < 7))
    (building-type-count-total lumber-camp >= 1)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (up-compare-goal gl-current-age <= gv-dark-up)
    (up-compare-goal gl-strategy != fast-eagles)
    (or    (goal gl-current-age gv-dark)
      (and    (goal gl-strategy turkish-fast-imp)
            (building-type-count-total farm < 11)))
    (up-compare-goal gl-DRUSH != YES)
    (idle-farm-count < 1)
    (unit-type-count villager-hunter == 0)
    (unit-type-count villager-forager == 0)
    (unit-type-count-total villager > 21)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (up-compare-goal gl-current-age >= gv-dark-up)
    (goal gl-strategy flush)
    (or    (and    (current-age == dark-age)
            (and    (wood-amount >= 375)
                (food-amount < 350)))
      (and    (goal gl-feudal-infantry men-at-arms)
            (building-type-count-total archery-range > 0)))
    (idle-farm-count < 1)
    (building-type-count-total farm < 18)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (or    (and    (goal gl-current-age gv-feudal)
            (and    (goal gl-strategy xbow-rush)
                (building-type-count-total farm g:< gl-max-farm-count)))
      (and    (goal gl-eew-strategy-type fast-imp)
            (and    (goal gl-eagles flush-counter-eagles)
                (up-compare-goal gl-current-age >= gv-feudal-up))))
    (building-type-count-total blacksmith > zero-value)
    (idle-farm-count < 1)
    (building-type-count-total farm < 16)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (goal gl-strategy turkish-fast-imp)
    (building-type-count-total town-center > 0)
    (or    (up-compare-goal gl-current-age >= gv-feudal-up)
      (and    (building-type-count-total farm < 7)
            (building-type-count-total blacksmith > 0)))
    (or    (wood-amount > 235)
      (building-type-count-total farm < 9))
    (idle-farm-count < 1)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (goal gl-strategy-type basic-flush)
    (goal gl-current-age gv-feudal)
    (strategic-number sn-minimum-water-body-size-for-dock == 998)
    (or    (and    (research-completed ri-horse-collar)
            (building-type-count-total farm g:< gl-max-farm-count))
      (and    (building-type-count-total farm < 7)
            (current-age-time > 30)))
    (nand    (goal gl-strategy sling)
      (building-type-count-total market == 0))
    (can-build farm)
=>
    (build farm)
)

(defrule
    (goal gl-strategy-type basic-flush)
    (current-age == feudal-age)
    (strategic-number sn-minimum-water-body-size-for-dock != 998)
    (building-type-count-total farm g:< gl-max-farm-count)
    (or    (building-type-count-total barracks > 0)
      (goal gl-strategy sling))
    (or    (building-type-count-total stable > 0)
      (or    (building-type-count-total archery-range > 1)
            (or    (goal gl-feudal-infantry men-at-arms)
                (goal gl-strategy sling))))
    (can-build farm)
=>
    (build farm)
)


(defrule
    (up-compare-goal gl-strategy-type >= FC)
    (or    (strategic-number sn-minimum-water-body-size-for-dock == 998)
      (food-amount < 550))
    (food-amount < 800)
    (building-type-count-total farm g:< gl-max-farm-count)
    (goal gl-current-age gv-feudal); Feudal, feudal-up
    (building-type-count-total blacksmith > 0)
    (or    (building-type-count-total market > 0)
      (or    (building-type-count-total stable > 0)
            (building-type-count-total archery-range > 0)))
    (idle-farm-count < 1)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (up-compare-goal gl-strategy-type >= FC)
    (up-compare-goal gl-strategy != fast-eagles)
    (or    (strategic-number sn-minimum-water-body-size-for-dock == 998)
      (food-amount < 550))
    (food-amount < 800)
    (building-type-count-total farm g:< gl-max-farm-count)
    (goal gl-current-age gv-feudal)
    (building-type-count-total blacksmith > 0)
    (or    (building-type-count-total market > 0)
      (building-type-count-total archery-range > 0))
    (idle-farm-count < 1)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (up-compare-goal gl-strategy != fast-eagles)
    (or    (goal gl-strategy-class basic-class)
      (and    (building-type-count-total farm < 6)
            (up-compare-goal gl-strategy-type >= FC)))
    (goal DOCK 0)
    (current-age == feudal-age)
    (up-compare-goal gl-current-age >= gv-feudal)
    (current-age-time > 150)
    (building-type-count-total farm g:< gl-max-farm-count)
    (idle-farm-count <= 1)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (up-compare-goal gl-strategy != fast-eagles)
    (or    (goal gl-strategy-class basic-class)
      (and    (building-type-count-total farm < 6)
            (up-compare-goal gl-strategy-type >= FC)))
    (goal DOCK 0)
    (current-age == feudal-age)
    (up-compare-goal gl-current-age >= gv-feudal)
    (current-age-time > 150)
    (idle-farm-count <= 1)
    (building-type-count-total farm < 8)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (or    (goal gl-eew-strategy-type fast-imp)
      (goal gl-strategy korean-boom))
    (or    (current-age == feudal-age)
      (building-type-count-total farm < 10))
    (nand    (goal gl-eagles flush-counter-eagles)
      (building-type-count-total barracks < 1))
    (or    (up-compare-goal gl-current-age <= gv-feudal)
      (building-type-count-total mining-camp >= 1))
    (research-completed ri-horse-collar)
    (building-type-count-total farm g:< gl-max-farm-count)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (or    (goal gl-eew-strategy-type fast-imp)
      (goal gl-strategy korean-boom))
    (or    (building-type-count-total farm < 8)
      (current-age > feudal-age))
    (building-type-count-total farm < 10)
    (nand    (goal gl-eagles flush-counter-eagles)
      (building-type-count-total barracks < 1))
    (up-compare-goal gl-current-age >= gv-feudal)
    (building-type-count-total mining-camp >= 1)
    (research-completed ri-horse-collar)
    (building-type-count-total farm g:< gl-max-farm-count)
    (can-build farm)
=>
    (build farm)
)



(defrule
    (goal gl-strategy xbow-rush)
    (up-compare-goal gl-current-age >= gv-feudal-up)
    (or    (building-type-count-total farm < 7)
      (or    (and    (building-type-count-total farm < 10)
                (not    (research-completed ri-bodkin-arrow)))
            (and    (building-type-count-total town-center > 1)
                (and    (building-type-count-total farm g:< gl-max-farm-count)
                  (building-type-count-total farm < 17)))))
    (can-build farm)
=>
    (build farm)
)


(defrule
    (goal gl-strategy michi-boom)
    (up-compare-goal gl-current-age >= gv-castle)
    (building-type-count-total farm g:< gl-max-farm-count)
    (up-pending-objects c: farm < 3)
    (or    (research-completed ri-heavy-plow)
      (and    (wood-amount < 125)
            (and    (food-amount < 125)
                (current-age-time > 30))))
    (idle-farm-count <= 6)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (goal gl-strategy default)
    (or    (game-time > 2100)
      (and    (building-type-count-total town-center > 2)
            (starting-age != dark-age)))
    (or    (strategic-number sn-minimum-water-body-size-for-dock == 998)
      (game-time > 3000))
    (building-type-count-total farm g:< gl-max-farm-count)
    (building-type-count town-center > 0)
    (or    (research-completed ri-heavy-plow)
      (food-amount < 125))
    (can-build farm)
=>
    (build farm)
)

(defrule
    (goal gl-strategy gothic-boom)
    (building-type-count-total farm g:< gl-max-farm-count)
    (building-type-count-total town-center > 3)
    (up-pending-objects c: farm < 3)
    (building-type-count-total barracks > 2)
    (research-completed ri-heavy-plow)
    (idle-farm-count <= 6)
    (can-build farm)
=>
    (build farm)
)



(defrule
    (goal gl-strategy gothic-boom)
    (building-type-count-total farm g:< gl-max-farm-count)
    (building-type-count-total town-center > 3)
    (building-type-count-total barracks > 7)
    (research-completed ri-crop-rotation)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (building-type-count town-center > 0)
    (up-compare-goal gl-current-age >= gv-dark-up)
    (current-age >= castle-age)
    (strategic-number sn-minimum-water-body-size-for-dock >= 1999)
    (or    (strategic-number sn-minimum-water-body-size-for-dock == 1999)
      (or    (building-type-count-total farm < 10); 9
            (or    (unit-type-count-total fishing-ship < 6)
                (or    (up-compare-goal gl-current-age >= gv-castle-up)
                  (wood-amount > 350)))))
    (idle-farm-count < 1)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (building-type-count town-center > 0)
    (up-compare-goal gl-current-age >= gv-castle)
    (or    (goal gl-strategy-class basic-class)
      (goal gl-eew-strategy-type boom))
    (nand    (goal gl-eagles flush-counter-eagles)
      (building-type-count-total barracks < 1))
    (or    (up-pending-objects c: farm < 3)
      (and    (game-time > 2400)
            (wood-amount > 300)))
    (building-type-count-total farm g:< gl-max-farm-count)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (up-compare-goal gl-current-age >= gv-dark-up)
    (building-type-count-total farm g:< gl-max-farm-count)
    (research-completed ri-heavy-plow)
    (or    (strategic-number sn-food-gatherer-percentage > 34)
      (wood-amount > 300))
    (unit-type-count-total villager > 55)
    (up-pending-objects c: farm < 5)
    (idle-farm-count <= 6)
    (not    (goal gl-strategy gothic-boom))
    (can-build farm)
=>
    (build farm)
)

(defrule
    (up-compare-goal gl-current-age >= gv-feudal-up)
    (or    (goal gl-strategy-class basic-class)
      (or    (goal gl-eew-strategy-type boom)
            (goal gl-strategy monk-boom)))
    (or    (and    (research-completed ri-heavy-plow)
            (building-type-count-total town-center > 2))
      (goal SLING 1))
    (research-completed ri-horse-collar)
    (building-type-count-total farm g:< gl-max-farm-count)
    (can-build farm)
=>
    (build farm)
)

(defrule
    (up-compare-goal gl-current-age >= gv-dark-up)
    (or    (and    (or    (current-age == imperial-age)
                (or    (goal gl-strategy korean-boom)
                  (and    (goal gl-strategy CA-rush)
                        (wood-amount > 500))))
            (research-completed ri-heavy-plow))
      (goal gl-strategy scorpion-rush))
    (current-age >= castle-age)
    (building-type-count-total farm g:< gl-max-farm-count)
    (can-build farm)
=>
    (build farm)
)


(defrule
    (current-age >= castle-age); MegaRandom is a funny map ^^
    (building-type-count-total farm g:< gl-max-farm-count)
    (goal gl-strategy turkish-fast-imp)
    (building-type-count-total monastery > 0)
    (building-type-count-total farm < 17)
    (nand    (building-type-count-total farm > 12)
      (unit-type-count-total fire-ship-line > 0))
    (nand    (food-amount > 670)
      (building-type-count-total siege-workshop < 1))
    (can-build farm)
=>
    (build farm)
)

(defrule
    (goal gl-strategy korean-boom)
    (current-age == castle-age)
    (building-type-count-total farm g:< gl-max-farm-count)
    (food-amount < 200)
    (building-type-count-total farm < 17)
    (can-build farm)
=>
    (build farm)
)

我们来清点下rule个数:
:%s/(defrule/(defrule/g
结果:43 次替换,共 43 行

完全正确。

guoang123qa 发表于 2013-9-14 15:15:19

{:155:}

tankant 发表于 2013-9-14 15:55:16

本帖最后由 tankant 于 2013-9-14 16:30 编辑

然后我们复制一个文件cp tmp.per tmp2.per作为备份。
我们把tmp.per做一系列处理之前,先测试第一处修改,尝试让农田跟兵营的数目相加:
(defrule
      (goal gl-current-age gv-dark)
      (goal DOCK 0)
      (building-type-count-total farm+barracks < 18)
      (dropsite-min-distance deer-hunting > 27)
      (building-type-count-total mill < 2)
      (or   (idle-farm-count < 1)
                (building-type-count-total farm < 7))
      (building-type-count-total lumber-camp >= 1)
      (can-build farm)
=>
      (set-strategic-number sn-maximum-town-size 18); To enable building farms next to mill
      (build farm)
)

但是测试报错。这部分如何处理,求高手指点迷津。

imdonny 发表于 2013-9-14 16:00:16

强啊!大唐群友来支持一下!

beg 发表于 2014-2-22 17:00:38

本帖最后由 beg 于 2014-2-22 17:03 编辑

tankant 发表于 2013-9-14 15:55
然后我们复制一个文件cp tmp.per tmp2.per作为备份。
我们把tmp.per做一系列处理之前,先测试第一处修改, ...
报什么错呢?尝试 (building-type-count-total farm + building-type-count-total barracks < 18)
页: [1]
查看完整版本: 【大唐复兴】让突厥、阿瓦尔、吐蕃正常生产羊(直播贴)