wangzhen 发表于 2022-4-15 11:06:02

给AI指定特技或属性效果和部分SN

本帖最后由 wangzhen 于 2022-4-18 14:47 编辑

fe-cc-effect-percent inConst EffectId(效果类型0-9) inConst ItemId物件编号(单位ID或class或科技ID) inConst AttrId(0-109)效果属性 inOp Value-32768to32768)
给AI增加以百分比的科技效果请考虑游戏中的物件升级,以避免升级造成单位最大生命值超过32768而死亡
fe-cc-effect-amount inConst EffectId(效果类型0-9) inConst ItemId(单位ID或class或科技ID) inConst AttrId(0-109)效果属性 inOp Value-32768to32768)
带有整数值的研究效果 请考虑游戏中的物件升级,以避免升级造成单位最大生命值超过32768而死亡如果使用此命令禁用对象,游戏中的科技/升级时代(除非禁用)可能会重新启用它们。民族科技树也可能覆盖更改。
某个选项的数值悬空不填要写什么不知道 -1或-2
效果类型
0      effect-set-attribute对象设置 可修改科技费用或单位费用
1      effect-mod-resource 资源值加减 (需要资源编号) 效果属性悬空
2      effect-enable-object启用/禁用单位   未测试   效果属性悬空
3      effect-upgrade-unit升级单位未测试效果属性悬空
4      effect-add-attribute单位属性加减 可修改科技费用或单位费用
5      effect-mul-attribute单位属性倍乘 可修改科技费用或单位费用
6      effect-mul-resource资源值倍乘 (需要资源编号) 可能效果属性悬空
7      effect-enable-tech 科技启用/禁用   未测试      效果属性悬空
8      effect-modify-tech 科技费用增加/减少未测试可能效果属性悬空
9      effect-set-player-data 未测试
Untested. Set the player's specified player data to the given value. Uncertain what this different player data could be. Perhaps this sets the data for another player?

效果属性0   attribute-hp   The object's hit points.1   attribute-los    The object's line of sight.2   attribute-obj-max   Unknown.3   attribute-radius-x    Unknown. Possibly the radius of the object'ssize in the x direction.4   attribute-radius-y    Unknown. Possibly the radius of the object'ssize in the y direction.5   attribute-speed      The object's speed. Probablymultiplied by 100, but this is untested.6   attribute-turn-speedThe time it takes the object to turn from onerotation/facing direction to the next. Most objects' turn speed is zero, butthis is observable for ships and trebuchets.8   attribute-armor       The object's armor. Unknown whether thisis melee armor, pierce armor, or both, but it's likely just melee armor. Itseems like there isn't a way to choose which armor type to modify, or there isa complex formula that allows you to specify the armor type and amount in asingle value.9   attribute-weapon    Unknown. Probably the object's attack. It'spossible there is a complex formula that allows you to specify the type ofattack/attack bonus and the amount in a single value.10    attribute-speed-of-attack The object's attack speed. Unknown whether thisis given in seconds or milliseconds, but probably the latter.11    attribute-hit-chance Unknown. Probably the object's accuracy. Likelymultiplied by 100.12    attribute-weapon-rangeThe object's range.13    attribute-work-rate The object's work rate. This attribute isprimarily relevant for buildings, which determines the speed that units andtechs are trained and researched.14    attribute-carry-capacityThe amount the object can carry. This affectsthe resource capacity villagers can carry and also the amount of resources thatGaia/player owned resources can hold.15    attribute-base-armor      Similar to attribute-armor. Untested, butthis likely affects the original armor amount, so it wouldn't display as + or -like it would for blacksmith armor upgrades.16    attribute-missile-id The ID of the object's projectile. See theProj. ID in the Objects Table to get the projectile IDs of each unit.17    attribute-building-facetUnknown. Likely the rotation the buildingfaces, though most buildings only have one direction anyway.18    attribute-defensive-terrain   Unknown. Could be the same as TerrainDefense Bonus from Advanced Genie Editor.19    attribute-targetting-type Unknown.20    attribute-minimum-weapon-range The object's minimum range.21    attribute-attribute-amount-held   Unknown. The attribute-attribute in theattribute name isn't a typo. ;)22    attribute-area-effect Likely the object's blast radius.23    attribute-search-radius    The object's search radius. This is oftenequal to LOS, and it determines the radius where the object will respond toenemy units.
24      attribute-hidden-damage-resist      Unknown. Could be the same as the Bonus Damage Resist field from Advanced Genie Editor.
25      attribute-icon-id      The ID of the object's icon.
41      attribute-fire-missile-at-frame      Likely the frame delay, the number of graphical frames to must be displayed from the attack animation before the projectile will fire.
44      attribute-area-effect-level.      Likely the object's blast attack level. The blast damage for objects with level 3 or higher only damage the targeted object. The blast damage for objects with level 2 will damage nearby objects that are within the blast radius of the attack. The blast damage for objects with level 1 can damage trees. The blast damage for objects with level 0 can damage all resources. Note: many buildings and cavalry units have blast level 0, so it is wise to check if the blast radius is > 0 before checking the blast level.
45      attribute-blast-defense-level      The object's blast defense level. The object will receive blast damage from units with a blast attack level greater than or equal to the object's blast defense level.
46      attribute-shown-attack      The object's shown attack. A + or - value will be displayed in the interface if the actual attack is higher or lower than the shown attack, respectively.
47      attribute-shown-range      The object's shown range. A + or - value will be displayed in the interface if the actual range is higher or lower than the shown attack, respectively.
48      attribute-shown-melee-armor      The object's shown melee armor. A + or - value will be displayed in the interface if the actual melee armor is higher or lower than the shown attack, respectively. Uncertain if shown pierce armor can be affected with this attribute.
50      attribute-name-id      Likely the language ID location of the object's name.
51      attribute-description-id      Likely the language ID location of the object's description.
53      attribute-terrain-restriction      The terrain the object can travel or be placed on. Likely the same as the Terrain Table field in Advanced Genie Editor.
57      attribute-death-spawn-obj      The ID of a new object that is spawned when an object dies. This is usually the unit's corpse or ruins, but it is used by the Konnik to spawn a dismounted Konnik when the mounted Konnik dies.
58      attribute-hotkey-id      Likely the language ID location of the letter for the object's default hotkey.
100attribute-resource-cost    Likely let's you change the ResourceAmountcost for a resource besides food, wood, gold, or stone.101attribute-creation-time   The amount of time to create the object, inseconds.102attribute-garrison-arrows Likely either the extra number of projectilesthe object will fire or the max number of arrows the object can fire when fullygarrisoned. Not sure how this differs from attribute-max-dup-missiles.103attribute-food-costThe object's food cost.104attribute-wood-cost The object's wood cost.105attribute-gold-costThe object's gold cost.106attribute-stone-cost The object's stone cost.107attribute-max-dup-missiles    Likely either the extra number ofprojectiles the object will fire or the max number of arrows the object canfire when fully garrisoned. Not sure how this differs fromattribute-garrison-arrows108attribute-garrison-heal-rate    The object's heal rate for units that aregarrisoned inside. Likely multiplied by 100 or 1000 (not sure which, sorry).109attribute-regenration-rate       Note the spelling. The speedthe object will heal at. Likely multiplied by 100 or 1000 (not sure which,sorry).

例子:
额外增加村民10点生命值
(defrule
      (true)
=>
      (fe-cc-effect-amount effect-add-attribute villager-class attribute-hp 10)
)
设置村民原来40点生命值设置为10点生命值
(defrule
      (true)
=>
      (fe-cc-effect-amount effect-set-attribute villager-class attribute-hp 10)

)
为骑士增加生命回复
(defrule
      (true)
=>
      (fe-cc-effect-amount effect-set-attribute knight-class attribute-regenration-rate 1)

)

attribute-regenration-rate
设置织布机科技修改当前人口上限
(defrule
(true)
=>
      (fe-cc-effect-amount effect-mod-resource 22amount-unit-limit 200)=>(up-cc-add-resource c: amount-unit-limit c: 200)
)
启用民兵单位
(defrule
(true)
=>
      (fe-cc-effect-amount effect-enable-object militiaman-1 1)
)

民兵升级为罗马军

(defrule
(true)
=>
      (fe-cc-effect-amount effect-upgrade-unit militiaman-1 1)
)

   
启用科技象夫

(defrule
(true)
=>
      (fe-cc-effect-amount effect-enable-tech 7-1 1)
)









wangzhen 发表于 2022-4-15 11:29:01

本帖最后由 wangzhen 于 2022-6-15 20:37 编辑

部分SN
sn-wild-animal-exploration 允许野马、野骆驼和双峰驼探索。0 to 1
sn-allow-capturing-gaia-units 允许捕获盖亚单位 设置>0允许AI玩家转换盖亚拥有的单位。0 to 32767
sn-allow-gathering-sea-fish-with-villagers 设置为1可以让村民们除了采集岸边的鱼之外还可以采集深海鱼。0或1
sn-allow-serjeant-building 设置为1自动分配萨金特卫兵建造城楼,而不是村民。如果没有可用的萨金特卫兵,则会选择一个村民来建造。0或1
sn-enable-research-queue 启用研究队列 设置为1可启用排队技术。研究科技和训练单位一起同时进行
sn-maximum-patrol-distance单位巡逻路径走多远,如果该单位在巡逻路径上超出此数值距离,它将返回巡逻
-1表示不限制 -1 to 32767
sn-profiling-threshold 未使用 -32768 to 32767
sn-villager-attack-reset 设置为0,则禁用自动村民攻击重置,以便可以与村民一起攻击远程单位/目标。默认是1
理解有偏差的SN
从采集放置点到多少格子距离的资源会采集(如树木) 和条件一齐联动

条件dropsite-min-distance<资源种类> <关系运算子><数量>                              
储存所最低距离:
这个事实检查计算机游戏者储存所和该 <资源种类> 资源点的最低距离 <数量> 。太长的距离表示计算机游戏者需要建造一个新的、更接近资源点的储存所。
这个事实不宜在计算机游戏者首次建设储存所时使用,以免阻碍其时代演进。因为当该 <资源种类> 资源点距离城镇中心很接近的时候,计算机游戏者便会延迟建造储存所,导致时代演进进度减慢。


sn-maximum-food-drop-distance
设置电脑玩家采集距离资源放置点多少个格子内的食物(包括沿海地区的鱼群 赶牲畜到磨坊或城镇中心)。-1表示忽略最大距离设置,即任意远距离都会采集。-2不再采集sn-maximum-gold-drop-distance设置电脑玩家采集黄金工人采集距离采矿场或城镇中心多少个格子内的黄金。-1表示忽略最大距离设置,即任意远距离都会采集。-2不再采集sn-maximum-stone-drop-distance设置电脑玩家采集石矿工人采集距离采矿场或城镇中心多少个格子内的石矿。-1表示忽略最大距离设置,即任意远距离都会采集。-2不再采集 sn-maximum-wood-drop-distance设置电脑玩家伐木工人会砍伐距离伐木厂或城镇中心多少个格子内的树木。-1表示忽略最大距离设置,即任意远距离都会采集。-2不再采集
sn-maximum-hunt-drop-distance设置电脑玩家捕猎距离采矿场或城镇中心多少个格子内的野生动物。-1表示忽略最大距离设置,即任意远距离都会采集。-2不再采集sn-maximum-fish-boat-drop-distance
设置渔船可以采集距离船坞多少格子内鱼类资源。-1表示忽略最大距离设置,即任意远距离都会采集。若设为0,所有渔船都只会探索水域。-2不再采集

距离资源多少范围内建造资源采集点 刚开始总和上面的混淆以为是一样的意思 一个最大 最小距离
sn-food-dropsite-distance
设置电脑玩家在距离果树丛上述数量的格子范围内建造磨坊。
[有效范围] 3~255      [默认值] 3      [编号] 163
sn-gold-dropsite-distance
设置电脑玩家在距离黄金多少格子范围内建造采矿场。
[有效范围] 3~255      [默认值] 3      [编号] 166
sn-wood-dropsite-distance
计算机游戏者最多只会在距离树林上述数量的格子范围内建造伐木厂。
[有效范围] 3~255      [默认值] 3      [编号] 164
sn-stone-dropsite-distance
设置电脑玩家在距离石矿多少格子范围内建造采矿场。
[有效范围] 3~255      [默认值] 3      [编号] 165


影响建造采集场SNsn-initial-exploration-required 设置电脑玩家首次建造必须探索完毕的地图百分比。0立刻建造[有效范围] 0~100      [默认值] 2      [编号] 167
sn-allow-adjacent-dropsites输入1有时候资源到放置采集场位置不能建造磨坊
设为1,则建造磨坊、伐木场、矿场时与资源不留1格的缓冲区;设为0,则留出1格缓冲区。
[有效范围] 0~1      [默认值] 0      [编号] 272
修建采集木材/矿物场时是否在城镇范围内 sn-lumber-camp-max-distance非零时,设定计算机游戏者建造伐木厂的配置最高可以距离城镇中心多远。若为0,则会使用sn-camp-max-distance的值。[有效范围] 0~255      [默认值] 0      [编号] 260sn-preferred-mill-placement    选错了 就会导致 在有鹿地址放置磨坊而不在果树丛 先用DUC搜索 定位再确定放置点设置磨坊优先修建于何种资源旁边。0表示果树丛,1表示鹿,2表示沿海鱼群。[有效范围] 0~2      [默认值] 0      [编号] 253sn-mill-max-distance 设置磨坊能被修建在距离城镇中心多少距离。[有效范围] 4~255      [默认值] 100      [编号] 87被攻击时要考虑sn-dropsite-separation-distance设置资源放置点之间的最小间距。较大的值有利于资源采集者受到攻击时躲避。[有效范围] 1~255      [默认值] 10      [编号] 248
sn-required-forest-tiles   搞大了 有时候会导致不修建伐木场当计算机游戏者建造首幢伐木厂前,必须先发现有上述数量的格子的森林区域。[有效范围] 0~32768      [默认值] 10      [编号] 169

sn-mining-camp-max-distance 非0时,为矿场的放置设置最大城镇范围。若设为0,则使用sn-camp-max-distance值。[有效范围] 0~255      [默认值] 0      [编号] 261

正在探索的村民有几率不会修建

sn-cap-civilian-explorers
设置分配为村民探索者的最大数量。设为-1则不限。
[有效范围] -1~32768      [默认值] 2      [编号] 3
sn-percent-exploration-required
设置电脑玩家给探索村民重新分配任务前必须探索完毕的地图百分比。
[有效范围] 0~100      [默认值] 100      [编号] 32

sn-target-point-adjustment 设置以up-target-point命令的方位 默认是方格的最左边
up-set-target-point使用up-filter-distance 没有计算建筑占地格数   如果搜索单位刚好在格的中间 是搜索不到的
   1   1    0
   1 石墙 0
                0

                                                                                                                                                                              打钩开始 四个符号 从上到下数 第三个是否支持决定版执行的SN

IDStrategic NumberMinMaxReq. MinReq. MaxDefaultFlagsVersion
138sn-add-starting-resource-food-3276832767-32768327670✓ ✗ ✗ ✓1.0c
139sn-add-starting-resource-gold-3276832767-32768327670✓ ✗ ✗ ✓1.0c
140sn-add-starting-resource-stone-3276832767-32768327670✓ ✗ ✗ ✓1.0c
141sn-add-starting-resource-wood-3276832767-32768327670✓ ✗ ✗ ✓1.0c
272sn-allow-adjacent-dropsites-3276832767010✓ ✗ ✓ ✓1.1
309sn-allow-capturing-gaia-units-32768327670327670✓ ✗ ✓ ✓DE
225sn-allow-civilian-defense-3276832767031✓ ✗ ✓ ✓1.0c
258sn-allow-civilian-offense-3276832767020✓ ✗ ✓ ✓1.1
215sn-allow-diplomacy-change-on-ally-attack-3276832767011✗ ✗ ✗ ?1.0c
217sn-allow-diplomacy-change-on-tribute-3276832767010✗ ✗ ✗ ?1.0c
47sn-attack-coordination-327683276702-1✗ ✗ ✗ ?1.0c
178sn-attack-diplomacy-impact-3276832767010010✗ ✗ ✓ ?1.0c
308sn-allow-gathering-sea-fish-with-villagers-3276832767010✓ ✗ ✓ ✓DE
307sn-allow-serjeant-building-3276832767010✓ ✗ ✓ ✓DE
41sn-attack-group-gather-spacing-327683276712554✓ ✗ ✓ ✓1.0c
37sn-attack-group-makeup-3276832767-32768327670✗ ✗ ✗ ?1.0c
98sn-attack-group-size-randomness-32768327670327671✓ ✗ ✓ ✓1.0c
103sn-attack-intelligence-3276832767010✓ ✗ ✓ ✓1.0c
48sn-attack-response-separation-time-3276832767032767-1✗ ✗ ✗ ?1.0c
46sn-attack-separation-time-3276832767032767-1✗ ✗ ✗ ?1.0c
102sn-attack-separation-time-randomness-327683276703276715✗ ✗ ✓ ?1.0c
188sn-attack-winning-player-3276832767011✓ ✗ ✓ ?1.0c
195sn-attack-winning-player-factor-3276832767-327683276725✓ ✗ ✓ ?1.0c
208sn-auto-build-docks-327683276701-1✗ ✗ ✗ ✗1.0c
205sn-auto-build-dropsites-327683276701-1✗ ✗ ✗ ✗1.0c
206sn-auto-build-farms-327683276701-1✗ ✗ ✗ ✗1.0c
209sn-auto-build-fishing-boats-327683276701-1✗ ✗ ✗ ✗1.0c
180sn-auto-build-houses-327683276701-1✗ ✗ ✗ ✗1.0c
207sn-auto-build-towers-327683276701-1✗ ✗ ✗ ✗1.0c
210sn-auto-build-transports-327683276701-1✗ ✗ ✗ ✗1.0c
223sn-auto-build-warships-327683276701-1✗ ✗ ✗ ✗1.0c
135sn-blot-exploration-map-3276832767011✓ ✗ ✓ ?1.0c
136sn-blot-size-3276832767125515✓ ✗ ✓ ?1.0c
295sn-boar-lure-destination-32768327670230✓ ✓ ✓ ✓1.5
101sn-build-frequency-32768327670327671✗ ✗ ✓ ✓1.0c
155sn-build-plan-divisions-327683276713276710✗ ✗ ✗ ?1.0c
255sn-building-targeting-mode-3276832767020✓ ✗ ✓ ✓1.1
86sn-camp-max-distance
-3276832767725525✓ ✗ ✓ ✓1.0c
4sn-cap-civilian-builders-3276832767-1327672✓ ✗ ✓ ?1.0c
3sn-cap-civilian-explorers-3276832767-1327672✓ ✗ ✓ ✓1.0c
5sn-cap-civilian-gatherers-3276832767-132767-1✓ ✗ ✓ ✓1.0c
53sn-choke-point-defend-priority-3276832767010✗ ✗ ✗ ✗1.0c
76sn-consecutive-idle-unit-limit-327683276703276715✓ ✗ ✓ ?1.0c
186sn-coop-demand-tribute-interval-32768327670327670✗ ✗ ✗ ✗1.0c
187sn-coop-demand-tribute-maximum-32768327671327670✗ ✗ ✗ ✗1.0c
196sn-coop-share-attacking-3276832767011✗ ✗ ✓ ?1.0c
197sn-coop-share-attacking-interval-3276832767032767120✗ ✗ ✓ ?1.0c
194sn-coop-share-information-3276832767011✓ ✗ ✓ ✓1.0c
39sn-defend-group-makeup-3276832767-32768327670✗ ✗ ✗ ✗1.0c
121sn-defend-important-group-leaders-327683276701-1✗ ✗ ✗ ✓1.0c
92sn-defend-overlap-distance-327683276702555✗ ✗ ✓ ✓1.0c
57sn-defense-distance-327683276702553✗ ✗ ✓ ✓1.0c
273sn-defer-dropsite-update-3276832767010✓ ✗ ✓ ✓1.1
212sn-desired-number-docks-32768327670327670✗ ✗ ✗ ✗1.0c
65sn-desired-number-fish-escorts-3276832767032767-1✗ ✗ ✗ ✗1.0c
213sn-desired-number-fishing-boats-32768327670327670✗ ✗ ✗ ✗1.0c
64sn-desired-number-trade-escorts-3276832767032767-1✗ ✗ ✗ ✗1.0c
66sn-desired-number-transport-escorts-32768327670327670✗ ✗ ✗ ✗1.0c
214sn-desired-number-transports-32768327670327670✗ ✗ ✗ ✗1.0c
224sn-desired-number-warships-32768327670327670✗ ✗ ✗ ✗1.0c
271sn-disable-attack-groups-3276832767010✓ ✗ ✓ ✓1.1
285sn-disable-builder-assistance-3276832767010✓ ✓ ✓ ✓1.1
277sn-disable-defend-groups-32768327670150✓ ✗ ✓ ✓1.1
284sn-disable-sighted-response-cap-3276832767010✓ ✗ ✓ ✓1.1
267sn-disable-tower-priority-3276832767010✓ ✓ ✓ ✓1.1
294sn-disable-trade-evasion-3276832767010✓ ✓ ✓ ✓1.5
291sn-disable-villager-garrison-3276832767030✓ ✗ ✓ ✓1.5
229sn-do-not-scale-for-difficulty-level-3276832767010✓ ✗ ✓ ✓1.0c
241sn-do-not-transport-from-same-zone-3276832767010✗ ✗ ✓ ?1.0c
280sn-dock-avoidance-factor-3276832767-10000100001000✓ ✗ ✓ ✓1.1
70sn-dock-defend-priority-3276832767010✗ ✗ ✓ ?1.0c
278sn-dock-placement-mode-3276832767-110✓ ✗ ✓ ✓1.1
279sn-dock-proximity-factor-3276832767-100001000010000✓ ✗ ✓ ✓1.1
281sn-dock-training-filter-3276832767020✓ ✗ ✓ ✓1.1
248sn-dropsite-separation-distance-3276832767125510✓ ✗ ✓ ✓1.1
219sn-easier-reaction-percentage1001000100100✓ ✓ ✓ ✓1.0c
218sn-easiest-reaction-percentage1001000100100✓ ✓ ✓ ✓1.0c
244sn-enable-boar-hunting-3276832767020✓ ✗ ✓ ✓1.1
242sn-enable-new-building-system-3276832767010✓ ✗ ✓ ✓1.1
254sn-enable-offensive-priority-3276832767010✓ ✗ ✓ ✓1.1
247sn-enable-patrol-attack-3276832767010✓ ✓ ✓ ✓1.1
306sn-enable-research-queue-3276832767010✓ ✗ ✓ ✓DE
264sn-enable-training-queue-32768327670150✓ ✗ ✓ ✓1.1
20sn-enemy-sighted-response-distance-327685005025✓ ✗ ✓ ✓1.0c
45sn-explore-group-makeup-3276832767-32768327670✗ ✗ ✗ ✗1.0c
276sn-filter-under-attack-3276832767020✓ ✗ ✓ ✓1.1
251sn-focus-player-number-3276832767080✓ ✗ ✓ ✓1.1
163sn-food-dropsite-distance-327683276732553✓ ✗ ✓ ✓1.0c
117sn-food-gatherer-percentage010001000✓ ✗ ✓ ✓1.0c
156sn-food-modifier-percentage-3276832767-1001000✓ ✗ ✗ ✓1.0c
52sn-forage-defend-priority-3276832767010✗ ✗ ✓ ✓1.0c
282sn-free-siege-targeting-3276832767030✓ ✗ ✓ ✓1.1
240sn-garrison-rams-3276832767011✓ ✗ ✓ ?1.0c
304sn-gate-type-for-wall-3276832767010✓ ✗ ✓ ✓DE
232sn-gather-defense-units-3276832767010✓ ✗ ✓ ✓1.0c
239sn-gather-idle-soldiers-at-center-327683276701-1✓ ✗ ✓ ✓1.0c
50sn-gold-defend-priority-3276832767010✗ ✗ ✓ ✓1.0c
166sn-gold-dropsite-distance-327683276732553✓ ✗ ✓ ✓1.0c
118sn-gold-gatherer-percentage010001000✓ ✗ ✓ ✓1.0c
159sn-gold-modifier-percentage-3276832767-1001000✓ ✗ ✗ ✓1.0c
75sn-group-commander-selection-method-3276832767033✓ ✗ ✓ ✓1.0c
40sn-group-fill-method-327683276701-1✗ ✗ ✗ ?1.0c
230sn-group-form-distance-327683003020✓ ✗ ✓ ✓1.0c
131sn-group-leader-defense-distance-327683276712553✓ ✗ ✓ ✓1.0c
221sn-hits-before-alliance-change-32768327670327673✗ ✗ ✓ ?1.0c
256sn-home-exploration-time-3276832767032767300✓ ✗ ✓ ✓1.1
152sn-house-overage-3276832767032767-1✗ ✗ ✗ ✗1.0c
231sn-ignore-attack-group-under-attack-3276832767010✓ ✗ ✓ ✓1.0c
265sn-ignore-tower-elevation-3276832767010✓ ✗ ✓ ✓1.1
104sn-initial-attack-delay-32768327670327670✓ ✗ ✓ ✓1.0c
134sn-initial-attack-delay-type-3276832767030✓ ✗ ✓ ✓1.0c
167sn-initial-exploration-required-327683276701002✓ ✗ ✓ ✓1.0c
142sn-intelligent-gathering-3276832767010✗ ✗ ✓ ✓1.0c
287sn-livestock-defend-priority-3276832767010✓ ✗ ✓ ✓1.1
263sn-livestock-to-town-center-3276832767010✓ ✓ ✓ ✓1.1
286sn-local-targeting-mode-3276832767020✓ ✓ ✓ ✓1.1
71sn-lock-attack-and-attack-response-327683276701-1✗ ✗ ✗ ?1.0c
260sn-lumber-camp-max-distance-327683276702550✓ ✗ ✓ ✓1.1
160sn-max-build-plan-gatherer-percentage-3276832767010050✗ ✗ ✓ ✓1.0c
220sn-max-farms-3276832767032767-1✗ ✗ ✗ ✗1.0c
151sn-max-granaries-3276832767032767-1✗ ✗ ✗ ✗1.0c
149sn-max-retask-gather-amount-327683276703276740✓ ✗ ✓ ✓1.0c
115sn-max-skips-per-attempt-327683276713276710✗ ✗ ✓ ✓1.0c
150sn-max-storage-pits-3276832767032767-1✗ ✗ ✗ ✗1.0c
222sn-max-towers-327683276703276710✗ ✗ ✗ ?1.0c
26sn-maximum-attack-group-size-327683276703276710✓ ✗ ✓ ✓1.0c
60sn-maximum-boat-attack-group-size-32768327670327675✓ ✗ ✓ ?1.0c
69sn-maximum-boat-defend-group-size-32768327670327670✗ ✗ ✓ ?1.0c
63sn-maximum-boat-explore-group-size-32768327670327672✗ ✗ ✓ ?1.0c
28sn-maximum-defend-group-size-32768327670327674✗ ✗ ✓ ✓1.0c
44sn-maximum-explore-group-size-327681011✗ ✗ ✓ ✓1.0c
236sn-maximum-fish-boat-drop-distance-3276832767-2255-1✓ ✗ ✓ ?1.0c
190sn-maximum-food-32768327670327673000✗ ✗ ✗ ✗1.0c
234sn-maximum-food-drop-distance-3276832767-2255-1✓ ✗ ✓ ✓1.0c
100sn-maximum-gaia-attack-response-32768327670327673✓ ✗ ✓ ✓1.0c
274sn-maximum-garrison-fill-32768327670200✓ ✗ ✓ ✓1.1
193sn-maximum-gold-32768327670327673000✗ ✗ ✗ ✗1.0c
237sn-maximum-gold-drop-distance-3276832767-2255-1✓ ✗ ✓ ✓1.0c
174sn-maximum-houses-before-dropsites-3276832767032767-1✗ ✗ ✗ ✗1.0c
235sn-maximum-hunt-drop-distance-3276832767-2255-1✓ ✗ ✓ ✓1.0c
302sn-maximum-patrol-distance-3276832767-1327670✓ ✗ ✓ ✓DE
192sn-maximum-stone-32768327670327671500✗ ✗ ✗ ✗1.0c
238sn-maximum-stone-drop-distance-3276832767-2255-1✓ ✗ ✓ ✓1.0c
74sn-maximum-town-size-3276832767025520✓ ✗ ✓ ✓1.0c
191sn-maximum-wood-32768327670327672000✗ ✗ ✗ ✗1.0c
233sn-maximum-wood-drop-distance-3276832767-2255-1✓ ✗ ✓ ✓1.0c
87sn-mill-max-distance
-32768327674255100✓ ✗ ✓ ✓1.0c
216sn-minimum-amount-for-trading-327683276703276750✓ ✗ ✓ ✓1.0c
16sn-minimum-attack-group-size-32768327670327674✓ ✗ ✓ ✓1.0c
204sn-minimum-boar-hunt-group-size-327688085✓ ✗ ✓ ✓1.0c
252sn-minimum-boar-lure-group-size-3276832767080✓ ✗ ✓ ✓1.1
59sn-minimum-boat-attack-group-size-32768327670327671✓ ✗ ✓ ?1.0c
68sn-minimum-boat-defend-group-size-32768327670327670✗ ✗ ✓ ?1.0c
62sn-minimum-boat-explore-group-size-32768327670327671✗ ✗ ✓ ?1.0c
35sn-minimum-civilian-explorers-32768327670327670✓ ✗ ✓ ✓1.0c
25sn-minimum-defend-group-size-32768327670327671✗ ✗ ✓ ✓1.0c
202sn-minimum-dropsite-buffer-3276832767025525✓ ✗ ✓ ✓1.0c
43sn-minimum-explore-group-size-327681011✗ ✗ ✓ ✓1.0c
170sn-minimum-food-3276832767032767200✗ ✗ ✗ ✗1.0c
173sn-minimum-gold-3276832767032767200✗ ✗ ✗ ✗1.0c
245sn-minimum-number-hunters-32768327670327670✓ ✗ ✓ ✓1.1
29sn-minimum-peace-like-level-3276832767010085✗ ✗ ✓ ✓1.0c
172sn-minimum-stone-3276832767032767150✗ ✗ ✗ ✗1.0c
73sn-minimum-town-size-3276832767025512✓ ✗ ✓ ✓1.0c
112sn-minimum-water-body-size-for-dock-32768327671032767300✓ ✗ ✓ ?1.0c
171sn-minimum-wood-3276832767032767250✗ ✗ ✗ ✗1.0c
261sn-mining-camp-max-distance-327683276702550✓ ✗ ✓ ✓1.1
147sn-most-needed-resource-look-ahead-327683276703276710✗ ✗ ✗ ✗1.0c
36sn-number-attack-groups-32768327670327670✓ ✗ ✓ ✓1.0c
58sn-number-boat-attack-groups-32768327670327670✓ ✗ ✓ ?1.0c
67sn-number-boat-defend-groups-32768327670327670✗ ✗ ✓ ?1.0c
61sn-number-boat-explore-groups-32768327670327670✓ ✗ ✓ ?1.0c
114sn-number-build-attempts-before-skip-327683276713276725✗ ✗ ✓ ✓1.0c
257sn-number-civilian-militia-3276832767020010✓ ✗ ✓ ✓1.1
38sn-number-defend-groups-32768327670327670✗ ✗ ✓ ✓1.0c
145sn-number-enemy-objects-required-327683276703276710✗ ✗ ✓ ✓1.0c
42sn-number-explore-groups-32768327670327670✓ ✗ ✓ ✓1.0c
226sn-number-forward-builders-32768327670327670✓ ✗ ✓ ✓1.0c
275sn-number-garrison-units-32768327670400✓ ✗ ✓ ✓1.1
146sn-number-max-skip-cycles-327683276713276750✗ ✗ ✓ ✓1.0c
288sn-number-tasked-units-32768327670400✓ ✗ ✓ ✓1.5
84sn-number-wall-gates-3276832767032767-1✗ ✗ ✗ ?1.0c
246sn-object-repair-level-327683276703276716387✓ ✗ ✓ ✓1.1
228sn-percent-attack-boats-3276832767010075✓ ✗ ✓ ✓1.0c
227sn-percent-attack-soldiers-3276832767010075✓ ✗ ✓ ✓1.0c
243sn-percent-building-cancellation-32768327671100100✓ ✗ ✓ ✓1.1
1sn-percent-civilian-builders-327683276701000✓ ✗ ✓ ✓1.0c
0sn-percent-civilian-explorers-3276832767010034✓ ✗ ✓ ✓1.0c
2sn-percent-civilian-gatherers-3276832767010066✓ ✗ ✓ ✓1.0c
31sn-percent-death-retreat-32768327670100-1✗ ✗ ✗ ?1.0c
19sn-percent-enemy-sighted-response-3276832767010050✓ ✗ ✓ ✓1.0c
32sn-percent-exploration-required-32768327670100100✗ ✗ ✓ ✓1.0c
179sn-percent-half-exploration-3276832767010030✓ ✗ ✓ ✓1.0c
30sn-percent-health-retreat-32768327670100-1✗ ✗ ✗ ?1.0c
91sn-percent-unit-health-retreat-32768327670100-1✗ ✗ ✗ ?1.0c
24sn-percent-victory-clamp-3276832767010075✗ ✗ ✗ ?1.0c
198sn-percentage-explore-exterminators-3276832767010050✗ ✗ ✓ ✓1.0c
269sn-placement-fail-delta-3276832767-10100✓ ✗ ✓ ✓1.1
270sn-placement-to-center-3276832767010✓ ✗ ✓ ✓1.1
268sn-placement-zone-size-3276832767025520✓ ✗ ✓ ✓1.1
253sn-preferred-mill-placement-3276832767020✓ ✗ ✓ ✓1.1
259sn-preferred-trade-distance-32768327670255100✓ ✓ ✓ ✓1.1
305sn-profiling-threshold-3276832767-32768327670✗ ✗ ✓ ✓DE
168sn-random-placement-factor-327683276703276750✓ ✗ ✓ ✓1.0c
55sn-relic-defend-priority-3276832767070✗ ✗ ✓ ✗1.0c
23sn-relic-return-distance
-3276832767025510✗ ✗ ✓ ✓1.0c
161sn-required-first-building
-327683276704-1✗ ✗ ✗ ✗1.0c
169sn-required-forest-tiles-327683276703276710✗ ✗ ✓ ✓1.0c
148sn-retask-gather-amount-327683276703276720✓ ✗ ✓ ✓1.0c
49sn-retreat-after-target-destroyed-327683276703-1✗ ✗ ✗ ?1.0c
54sn-ruins-defend-priority-3276832767070✗ ✗ ✗ ✓1.0c
250sn-safe-town-size-32768327671255255✓ ✗ ✓ ✓1.1
105sn-save-scenario-information-3276832767010✗ ✗ ✓ ✓1.0c
94sn-scale-maximum-attack-group-size-32768327670327670✓ ✗ ✓ ✓1.0c
93sn-scale-minimum-attack-group-size-32768327670327671✓ ✗ ✓ ✓1.0c
96sn-scale-percent-death-retreat-3276832767032767-1✗ ✗ ✗ ?1.0c
95sn-scale-percent-health-retreat-3276832767032767-1✗ ✗ ✗ ?1.0c
97sn-scale-percent-unit-health-retreat-3276832767032767-1✗ ✗ ✗ ?1.0c
99sn-scaling-frequency-327683276703276710✓ ✗ ✓ ✓1.0c
22sn-sentry-distance-3276832767025512✗ ✗ ✓ ✓1.0c
72sn-sentry-distance-variation-32768327670327672✗ ✗ ✓ ✓1.0c
85sn-size-wall-gates-3276832767032767-1✗ ✗ ✗ ✗1.0c
109sn-special-attack-influence1-3276832767-32768327670✓ ✗ ✓ ✓1.0c
110sn-special-attack-influence2-3276832767-32768327670✓ ✗ ✗ ✓1.0c
111sn-special-attack-influence3-3276832767-32768327670✓ ✗ ✗ ?1.0c
106sn-special-attack-type1-3276832767-11-1✓ ✗ ✓ ✓1.0c
107sn-special-attack-type2-3276832767-132767-1✓ ✗ ✓ ✓1.0c
108sn-special-attack-type3-3276832767-11-1✓ ✗ ✓ ✓1.0c
176sn-specific-build-item-time-3276832767032767-1✗ ✗ ✗ ?1.0c
175sn-specific-build-item-to-build-3276832767032767-1✗ ✗ ✗ ?1.0c
51sn-stone-defend-priority-3276832767010✗ ✗ ✓ ✓1.0c
165sn-stone-dropsite-distance-327683276732553✓ ✗ ✓ ✓1.0c
119sn-stone-gatherer-percentage010001000✓ ✗ ✓ ✓1.0c
158sn-stone-modifier-percentage-3276832767-1001000✓ ✗ ✗ ✓1.0c
88sn-tactical-update-frequency-3276832767032767-1✗ ✗ ✗ ✓1.0c
81sn-target-evaluation-ally-proximity-3276832767-32768327670✗ ✗ ✓ ✓1.0c
89sn-target-evaluation-attack-attempts-3276832767-3276832767-25✗ ✗ ✓ ✓1.0c
144sn-target-evaluation-boat-3276832767-32768327670✗ ✗ ✓ ✓1.0c
122sn-target-evaluation-continent-3276832767-3276832767100✗ ✗ ✓ ✓1.0c
79sn-target-evaluation-damage-capability-3276832767-32768327670✗ ✗ ✓ ✓1.0c
77sn-target-evaluation-distance-3276832767-327683276750✗ ✗ ✓ ✓1.0c
78sn-target-evaluation-hitpoints-3276832767-32768327670✗ ✗ ✓ ✓1.0c
185sn-target-evaluation-in-progress-3276832767-327683276750✗ ✗ ✓ ✓1.0c
80sn-target-evaluation-kills-3276832767-32768327670✗ ✗ ✓ ✓1.0c
83sn-target-evaluation-randomness-3276832767-32768327670✗ ✗ ✓ ✓1.0c
90sn-target-evaluation-range-3276832767-32768327670✗ ✗ ✓ ✓1.0c
82sn-target-evaluation-rof-3276832767-32768327670✗ ✗ ✓ ✓1.0c
123sn-target-evaluation-siege-weapon-3276832767-32768327670✗ ✗ ✓ ✓1.0c
184sn-target-evaluation-time-kill-ratio-3276832767-327683276720✗ ✗ ✓ ✓1.0c
249sn-target-player-number-3276832767-180✓ ✗ ✓ ✓1.1
292sn-target-point-adjustment-3276832767060✓ ✗ ✓ ✓1.5
143sn-task-ungrouped-soldiers11011✓ ✓ ✓ ✓1.0c
18sn-total-number-explorers-3276832767-1327674✓ ✗ ✓ ✓1.0c
266sn-town-center-placement-327683276708990✓ ✗ ✓ ✓1.1
56sn-town-defend-priority-3276832767077✗ ✗ ✓ ✓1.0c
201sn-track-player-history-3276832767010✗ ✗ ✓ ✓1.0c
124sn-tribute-amount-32768327670327670✗ ✗ ✗ ✗1.0c
125sn-tribute-chat-frequency-32768327670327670✗ ✗ ✗ ✗1.0c
126sn-tribute-chat-randomness-32768327670327670✗ ✗ ✗ ✗1.0c
130sn-tribute-failure-outcome-3276832767010✗ ✗ ✗ ✗1.0c
132sn-tribute-persistence-3276832767010✗ ✗ ✗ ✗1.0c
128sn-tribute-player-327683276708-1✗ ✗ ✗ ✗1.0c
133sn-tribute-revoke-on-attack-3276832767010✗ ✗ ✗ ✗1.0c
129sn-tribute-success-outcome-3276832767010✗ ✗ ✗ ✗1.0c
127sn-tribute-timeout-32768327670327670✗ ✗ ✗ ✗1.0c
301sn-ttkfactor-scalar-3276832767-3276832767100✓ ✗ ✓ ✓HD
293sn-unexplored-construction-3276832767010✓ ✓ ✓ ✓1.5
177sn-unskippable-item-type-3276832767032767-1✗ ✗ ✗ ?1.0c
182sn-upgrade-to-bronze-age-asap-327683276701-1✗ ✗ ✗ ✗1.0c
183sn-upgrade-to-iron-age-asap-327683276701-1✗ ✗ ✗ ✗1.0c
181sn-upgrade-to-tool-age-asap-327683276701-1✗ ✗ ✗ ✗1.0c
203sn-use-by-type-max-gathering-3276832767010✓ ✗ ✓ ✓1.0c
303sn-villager-attack-reset-3276832767011✓ ✗ ✓ ✓DE
262sn-wall-targeting-mode-3276832767010✓ ✓ ✓ ✓1.1
283sn-warship-targeting-mode-3276832767020✓ ✗ ✓ ✓1.1
300sn-wild-animal-exploration-3276832767010✓ ✗ ✓ ✓DE
164sn-wood-dropsite-distance-327683276732553✓ ✗ ✓ ✓1.0c
120sn-wood-gatherer-percentage010001000✓ ✗ ✓ ✓1.0c
157sn-wood-modifier-percentage-3276832767-1001000✓ ✗ ✗ ✓1.0c
34sn-zero-priority-distance-3276832767025550✓ ✗ ✓ ✓1.0c
6unknown-data-006-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
7unknown-data-007-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
8unknown-data-008-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
9unknown-data-009-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
10unknown-data-010-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
11unknown-data-011-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
12unknown-data-012-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
13unknown-data-013-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
14unknown-data-014-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
15unknown-data-015-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
17unknown-data-017-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
21unknown-data-021-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
27unknown-data-027-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
33unknown-data-033-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
113unknown-data-113-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
116unknown-data-116-3276832767-327683276710✗ ✗ ✗ ✓1.0c
137unknown-data-137-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
153unknown-data-153-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
154unknown-data-154-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
162unknown-data-162-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c
189unknown-data-189-3276832767-327683276750✗ ✗ ✗ ✓1.0c
199unknown-data-199-3276832767-327683276725✗ ✗ ✗ ✓1.0c
200unknown-data-200-3276832767-327683276750✗ ✗ ✗ ✓1.0c
211unknown-data-211-3276832767-3276832767-1✗ ✗ ✗ ✓1.0c


新增的单位ID
1658      Serjeant      serjeant      serjeant-line(萨金特卫兵)1658
1659      Elite Serjeant      elite-serjeant      serjeant-line -239(精锐萨金特卫兵)1659
1655      Coustillier      coustillier      coustillier-line -240(马上轻装兵)1655
1657      Elite Coustillier      elite-coustillier      coustillier-line(精锐马上轻装兵)1657
1663      Flemish Militia (Male)      flemish-pikeman      infantry-class (弗拉芒民兵)1663
1697      Flemish Militia (Female)      infantry-class      (弗拉芒民兵)1697
1701             obuch                      obuch-line      infantry-class 奥布奇战锤兵
1703            elite-obuch      obuch-line      infantry-class 精锐奥布奇战锤兵
1704            Hussite Wagonhussite-wagon-line   胡斯派战车弩炮型
1706      Elite Hussite Wagonhussite-wagon-line scorpion-class 精锐胡斯派战车弩炮型
1707      Winged Hussar      scout-cavalry-line      cavalry-class   波兰翼骑兵
城堡

1759      Ratha (Ranged)      ratha-ranged      ratha-ranged-line      cavalry-archer-class战车射手形态
1738      Ratha (Melee)      ratha-melee      ratha-melee-line      cavalry-class    战车近战形态
1761      Elite Ratha (Ranged)      elite-ratha-ranged      ratha-ranged-line      cavalry-archer-class 精锐战车射手形态
1740      Elite Ratha (Melee)      elite-ratha-melee      ratha-melee-line      cavalry-class 精锐战车近战形态
1231      Kipchak      kipchak      kipchak-line      cavalry-archer-class
1233      Elite Kipchak      elite-kipchak      kipchak-line      cavalry-archer-class
1260      Elite Kipchak (Mercenary)      mercenary-kipchak                cavalry-archer-class
1259      Elite Kipchak (Mercenary Placeholder)                        cavalry-archer-class
1735      Urumi Swordsman urumi-swordsman urumi-swordsman-line      infantry-class   印度剑客蓄力攻击
1737      Elite Urumi Swordsmanelite-urumi-swordsman urumi-swordsman-line infantry-class 精锐 印度剑客蓄力攻击
1741      Chakram Thrower      chakram-thrower      chakram-thrower-line      infantry-class 飞轮刃投掷手
1743      Elite Chakram Thrower   elite-chakram-throwerchakram-thrower-line    infantry-class 精锐飞轮刃投掷手
1747      Ghulam                ghulam                ghulam-line      infantry-class         古拉姆
1749      Elite Ghulam      elite-ghulam      ghulam-line      infantry-class         精锐古拉姆
1234      Leitis      leitis      leitis-line      cavalry-class
1236      Elite Leitis      elite-leitis      leitis-line      cavalry-class
1228      Keshik      keshik      keshik-line      cavalry-class
1230      Elite Keshik      elite-keshik      keshik-line      cavalry-class
1263      Flaming Camel      flaming-camel                petard-class

靶场

873      Elephant Archer      elephant-archer      elephant-archer-line      cavalry-archer-class骑象射手
875      Elite Elephant Archerelite-elephant-archer    elephant-archer-line   cavalry-archer-class 精锐骑象射手

码头
1750      Thirisadai      thirisadai                warship-class   楼船多发弩炮齐射

攻城器厂

1258 Battering Ram (Feudal)      feudal-battering-rambattering-ram-line      siege-weapon-class
1709      Houfnice      houfnice      bombard-cannon-line      siege-weapon-class   加农炮
1744      Armored Elephant      armored-elephant      armored-elephant-line      cavalry-class 攻城象
1746      Siege Elephant      siege-elephant      armored-elephant-line      cavalry-class      精锐攻城象


马厩

1755      Camel Scout      camel-scout      camel-line      cavalry-class                         骆驼斥候
1370      Steppe Lancer      steppe-lancer      steppe-lancer-line      cavalry-class      
1372      Elite Steppe Lancer      elite-steppe-lancer      steppe-lancer-line      cavalry-class
1751      Shrivamsha Rider      shrivamsha-rider      shrivamsha-rider-line      cavalry-class施里瓦姆沙骑手
1753      Elite Shrivamsha Rider      elite-shrivamsha-rider      shrivamsha-rider-line      cavalry-class 精锐施里瓦姆沙骑手
1570      Xolotl Warrior                        cavalry-class

指派行动
新增

(defconst action-attack-move 19) 攻击移动攻击移动到点或目标对象target object的位置。
(defconst action-transform 20)      变换          孟加拉战车将在近战和远程模式之间切换









标本 发表于 2022-4-17 10:17:55

不错的东西,DE里还有别的有趣效果吗?我想看看关于决定版AI详细的介绍,不知道哪里有。

wangzhen 发表于 2022-4-20 14:35:57

本帖最后由 wangzhen 于 2022-8-6 11:17 编辑

陆兵
(current-age == feudal-age)
(can-train eagle-warrior-line);鹰斥候
=>
(可执行鹰兵训练))
(current-age == feudal-age)
(can-train militiaman-line);民兵
=>
(可执行民兵训练))
(current-age == feudal-age)
(can-train spearman-line);枪兵
(可执行枪兵训练))
(current-age == feudal-age)
(can-train archer-line);弓兵
(可执行弓兵训练))
(current-age == feudal-age)
(can-train skirmisher-line);投矛
(可执行投矛训练))
(current-age == feudal-age)
(can-train cavalry-archer-line);马弓
(可执行马弓训练))
(current-age == feudal-age)
(can-train genitour-line);标枪骑兵
(可执行标枪骑兵训练))
(current-age == feudal-age)
(can-train hand-cannoneer);火枪手
(可执行火枪手训练))
(current-age == feudal-age)
(can-train slinger);投石手
(可执行投石手训练))
(current-age == feudal-age)
(can-train 882);意大利佣兵
(可执行意大利佣兵训练))
(current-age == feudal-age)
(can-train winged-hussar)
(可执行波兰骑兵训练))
(current-age == feudal-age)
(can-train scout-cavalry-line)
(可执行斥候骑兵训练))
(current-age == feudal-age)
(can-train knight-line)
(可执行骑兵训练))
(current-age == feudal-age)
(can-train camel-line)
(可执行骆驼骑兵训练))
(current-age == feudal-age)
(can-train battle-elephant-line)
(可执行象矛兵训练))
(current-age == feudal-age)
(can-train steppe-lancer-line)
(可执行草枪训练))
;(current-age == feudal-age)
;(can-train feudal-battering-ram)
;(可执行库曼冲车训练))
(current-age == feudal-age)
(can-train battering-ram-line)
(可执行冲车训练))
(current-age == feudal-age)
(can-train mangonel-line)
(可执行投石车训练))
(current-age == feudal-age)
(can-train scorpion-line)
(可执行弩炮训练))
(current-age == feudal-age)
(can-train bombard-cannon-line)
(可执行手推炮训练))
(current-age == feudal-age)
(can-train 1105)
(可执行攻城塔训练))
海军
(current-age == feudal-age)
(can-train galley-line)
(可执行箭船训练))
(current-age == feudal-age)
(can-train fire-ship-line)
(可执行快速喷火船训练))
(current-age == feudal-age)
(can-train demolition-ship-line)
(可执行爆破船训练))
(current-age == feudal-age)
(can-train cannon-galleon-line)
(可执行炮舰训练))
(current-age == feudal-age)
(can-train turtle-ship-line)
(可执行龟甲船训练))
(current-age == feudal-age)
(can-train caravel-line)
(可执行卡拉维尔战舰训练))
(current-age == feudal-age)
(can-train longboat-line)
(可执行龙头战舰训练))
      (up-get-player-fact 1 building-type-count no城堡箭塔 no打包机

      (up-chat-data-to-all "村民数量%d" g: temporary-index )只攻击建筑工人和采集
      (up-chat-data-to-all "步兵数量%d" g: temporary-index2 )分长矛兵和远程防御高
      (up-chat-data-to-all "弓箭数量%d" g: temporary-index3 )
      (up-chat-data-to-all "骑兵数量%d" g: temporary-index4 )
      (up-chat-data-to-all "攻城武器数量%d" g: temporary-index5 )投石车 冲车 攻城塔
      (up-chat-data-to-all "骑射手数量%d" g: temporary-index6 )
      (up-chat-data-to-all "总数数量%d" g: temporary-index8 )



(up-full-reset-search)
(up-reset-filters)
(set-strategic-number sn-focus-player-number 1)
(up-set-target-by-id c: 1)
(up-get-point position-object gl-point4-x)
(up-set-target-point gl-point4-x)
(up-filter-distance c: -1 c: 5)
(up-find-remote c: -1 c: 40)
(up-get-search-state gl-local-total)
(up-modify-goal temporary-index7 g:= gl-remote-total)
(up-modify-goal temporary-index8 g:= gl-remote-total)
(up-remove-objects 2 2 == 904)
(up-get-search-state gl-local-total)
(up-modify-goal temporary-index g:= gl-remote-total)
(up-modify-goal temporary-index g:- temporary-index7)
(up-modify-goal temporary-index g:* -1)
(up-modify-goal temporary-index7 g:- temporary-index)
(up-remove-objects 2 2 == 906)
(up-get-search-state gl-local-total)
(up-modify-goal temporary-index2 g:= gl-remote-total)
(up-modify-goal temporary-index2 g:- temporary-index7)
(up-modify-goal temporary-index2 g:* -1)
(up-modify-goal temporary-index7 g:- temporary-index2)
(set to long)
)

(defrule
(to long)
=>
(up-remove-objects 2 2 == 900)
(up-get-search-state gl-local-total)
(up-modify-goal temporary-index3 g:= gl-remote-total)
(up-modify-goal temporary-index3 g:- temporary-index7)
(up-modify-goal temporary-index3 g:* -1)
(up-modify-goal temporary-index7 g:- temporary-index3)
(up-remove-objects 2 2 == 912)
(up-get-search-state gl-local-total)
(up-modify-goal temporary-index4 g:= gl-remote-total)
(up-modify-goal temporary-index4 g:- temporary-index7)
(up-modify-goal temporary-index4 g:* -1)
(up-modify-goal temporary-index7 g:- temporary-index4)
(up-remove-objects 2 2 == 913)
(up-get-search-state gl-local-total)
(up-modify-goal temporary-index5 g:= gl-remote-total)
(up-modify-goal temporary-index5 g:- temporary-index7)
(up-modify-goal temporary-index5 g:* -1)
(up-modify-goal temporary-index7 g:- temporary-index5)
(up-remove-objects 2 2 == 936)
(up-get-search-state gl-local-total)
(up-modify-goal temporary-index6 g:= gl-remote-total)
(up-modify-goal temporary-index6 g:- temporary-index7)
(up-modify-goal temporary-index6 g:* -1)
(up-modify-goal temporary-index7 g:- temporary-index6)
)
算法
步骤序列有限 必须在有限操作之后停止
算法中的每一步应该是确定的并且能有效地执行且得到确定的结果
从初始步骤开始 分为若干明确步骤 每一个步骤只能有一个确定的后继步骤
前一步是后一步的前提 只有执行完前一步才能进行下一步
求解某一个问题的方法不是唯一的
乘以1到11以内包容的奇数
一步一步计算
循环计算 被乘以设为初始数P i乘数 循环初始数i设为3 如果小于等于11 每次P=P*i之后加2 否则算法结束
   

循环语句图
当型循环结构

当给定的条件P1 成立时 执行A代码 A代码执行之后再判断条件P1是否成立 如果仍然成立 再执行A代码 直到某一次条件P1的不成立 退出循环结构
直到型循环结构
先执行A代码 判断给定的条件P2是否成立 如果不成立 继续执行A代码直到某一次给定条件P2成立 退出循环结构
根据自身单位安排队伍进攻特定单位
二项式 Tr+1=Cr nan-rb
代替计时器用法
(up-get-fact game-time 0 gtime)获取当前时间
(up-modify-goal gtime c:+ X) 再加上数值 用作他用
用作条件(game-time g:>= gtime) >完成动作 后增加值 再循环
201,100a+b(最多两位数)用除数和求平均数开平方 任意数变换排列两者的差是9的倍数
海龙公式S=√p(p-a)(p-b)(p-c)p=(a+b+c)/2即为周长除以2
百分比计算假设A小于B 避免A除以B得到数带小数 导致结果为0 需要A乘以100后再除以B 获得百分比的数值
mod被除数小于除数=被除数 和 z/被除数小于除数=零 特性 得到每位数的数字 mod取余得个位 十位整除得到两位再取mod
水仙花数 100a+10b+c=a*a*a+b*b*b+c*c*c一个三位数等于它的三个数字的立方和
a=L/100 b=(L/10)mod10 c=Lmod10
myshu=100a+10b+c
myshu2=a*a*a+b*b*b+c*c*c
myshu==myshu2
设最小数min=0代入方程X^3+N^3+min
N=N * N * N
X=X * X * X
M=X^3+N^3+min
a=M/100 b=(M/10)mod10 c=Mmod10
up-compare-goal   X    g:== a
up-compare-goal   N    g:== b
up-compare-goal   min    g:== c

up-compare-goal   X    g:== b
up-compare-goal   N    g:== a
up-compare-goal   min    g:== c

up-compare-goal   X    g:== c
up-compare-goal   N    g:== a
up-compare-goal   min    g:== b


up-compare-goal   X    g:== b
up-compare-goal   N    g:== c
up-compare-goal   min    g:== a


up-compare-goal   X    g:== a
up-compare-goal   N    g:== c
up-compare-goal   min    g:== b


up-compare-goal   X    g:== c
up-compare-goal   N    g:== b
up-compare-goal   min    g:== a
N =N +1
N > 0 ;N <= 9X<=9 X=X+1


已知 set-goal a = 1
      set-goal b = 0
      set-goal c = 0

up-compare-goal temp5 <= 999

up-modify goal temp1 g:= a
up-modify goal temp2 g:= b
up-modify goal temp3 g:= c
up-modify goal temp1 g:* a
up-modify goal temp1 g:* a
up-modify goal temp2 g:* b
up-modify goal temp2 g:* b
up-modify goal temp3 g:* c
up-modify goal temp3 g:* c
up-modify-goal temp4 g:= a
up-modify-goal temp4 g:+ b
up-modify-goal temp4 g:+ c;上面已经计算完了goal重新利用
up-modify-goal temp1 g:= a
up-modify-goal temp1 c:* 100
up-modify-goal temp2 g:= b
up-modify-goal temp2 c:* 10
up-modify-goal temp3 g:= c
up-modify-goal temp5 g= temp1
up-modify-goal temp5 g+ temp2
up-modify-goal temp5 g+ temp3
up-compare-goal temp5 g:== temp4


a<=9
a+1
b<=9
b+1
c<= 9
c+1

兰德尔数
一个n(n>=3)位正整数等于它的n个数字的n次幂之和

计算连续的坐标时 modX 必须是单数 z/是控制横向+1

(defrule
      (true)
=>
(set-goal i 1)
(set-goal j 0)
(set-goal k 0)
)
(defrule
      (up-compare-goal i < 6)间接增加
      =>
      (up-modify-goal j c:mod 5)必须是单数 如果双数 导致mod之后+1 刚好X值会加1 导致坐标不连续
      (up-modify-goal j c:+ 1)
      (up-modify-goal k g:= j)
      (up-modify-goal k c:z/ 5)控制横向X 与mod的数值一致 必须是单数

      (up-modify-goal i g:+ k)
      (up-jump-rule -1)
)


用最大值获取数值最大化 最低时有一个固定保值 用最小值限制 最大时能限制在一个固定保值
攻防算法 没有理解意思

      (up-get-object-data object-data-hitpoints varTmp1162)
                (up-modify-goal varTmp1160 g:+ varTmp1162)
                (up-modify-goal varTmp1161 c:- 1)
                (up-jump-rule -1))
      
      (defrule
                (up-modify-goal varTmp1160 c:* 100)
                =>
                (up-modify-goal varTmp1160 c:/ 40)


                (up-set-target-object search-remote g: var527)
                (up-get-object-data object-data-base-attack varTmp1173);基础攻击
                (up-get-object-data object-data-range varTmp1174);射程
                (up-get-object-data object-data-hitpoints varTmp1175);生命值
                (up-get-object-data object-data-strike-armor varTmp1176);近防
                (up-modify-goal varTmp1177 g:= varTmp1176)
                (up-modify-goal varTmp1177 c:* 20);近防*20
                (up-modify-goal varTmp1178 g:= varTmp1174)
                (up-modify-goal varTmp1178 c:* 10);射程*10
                (up-modify-goal varTmp1179 g:= varTmp1173)
                (up-modify-goal varTmp1179 c:* 20);基础攻击*20
                (up-modify-goal varTmp1179 g:+ varTmp1178);[(基础攻击*20+近防*20+射程*10)-8]*生命值/28
                (up-modify-goal varTmp1179 g:+ varTmp1177)
                (up-modify-goal varTmp1179 c:- 8)
                (up-modify-goal varTmp1179 g:* varTmp1175)
                (up-modify-goal varTmp1179 c:/ 28)
                (up-modify-goal varTmp1172 g:+ varTmp1179)


                (up-compare-goal varTmp1172 g:> varTmp1160)
                =>
                        
                (up-target-point 0 action-stop ignore ignore)
概率 猜测对方行动
2P>2-3P 当P>0.4时
1-3P>0 q<0.33 时   进攻


























标本 发表于 2022-4-20 20:44:02

本帖最后由 标本 于 2022-4-20 20:48 编辑

up-cc-add-resource
这是1.5就有的。
fe-cc-effect-percent inConst EffectId
fe-cc-effect-amount inConst EffectId
应该是遗忘的帝国开始新增的?

wangzhen 发表于 2022-4-23 14:23:28

本帖最后由 wangzhen 于 2022-7-26 21:36 编辑

关于AI某些问题
ai petersen rules 例子
AI名字

#load-if-defined BULGARIANS-CIV
(defconst text-civ "I'm playing as the bulgarians.")
#load-if-not-defined DE-AVAILABLE
(defrule
      (game-time >= 15)
=>      
      (chat-to-player my-player-number text-civ)
      (disable-self))
#end-if
(defrule
      (true)
=>
      (up-change-name " INnoVation")
      (disable-self))
#end-if
       up-change-name 设为-1 AI的名称将以半随机的方式设置为该文明的前8个内置历史名称之一
在城镇多少范围内村民没有受到非盖亚单位攻击情况下
单个村民完成回本时间=单位训练成本除以每项资源采集效率

该项资源回本时间=单位训练成本除以每项资源采集效率除以该项资源采集人数
该项资源回本时间是否等于训练研究所花费的时间
(defconstgl-cost-food 101);单位成本(defconstgl-cost-wood 102)(defconstgl-cost-stone 103)(defconstgl-cost-gold 104)
(defconst gl-military-cost-food 111);科技成本(defconst gl-military-cost-wood 112)(defconst gl-military-cost-stone 113)(defconst gl-military-cost-gold 114)
(defconst gl-delta-food 121);总成本(defconst gl-delta-wood 122)(defconst gl-delta-stone 123)(defconst gl-delta-gold 124)
(defconst gl-delta1-food 125);获取成本值(defconst gl-delta2-wood 126)(defconst gl-delta3-stone 127)(defconst gl-delta4-gold 128)
先设置成本up-setup-cost-data (up-setup-cost-data 0 gl-cost-food)
加入单位成本up-add-object-cost和up-add-research-cost到总成本目标
(up-setup-cost-data 0 gl-cost-food);和以前的数据累计
(up-add-object-cost c: spearman c: 4) ;当可以训练或研究时减去
(up-setup-cost-data 0 gl-military-cost-food)
(up-add-research-cost c: ri-loom c: 1)
将两对目标组加入总成本里
(up-setup-cost-data 1 gl-delta-food)
(up-add-cost-data gl-military-cost-food c: 1)
(up-add-cost-data gl-cost-food c: 1)
获取总成本保存在目标组里
(up-get-cost-delta gl-delta1-food)
清空总成本
(up-reset-cost-data gl-cost-food)
(up-reset-cost-data gl-military-cost-food)
(up-reset-cost-data gl-delta-food)
根据成本和资源回本时间分配采集比率
sn-food-gatherer-percentage 采集人数/总人数
多少人多少秒产50资源

1P 151秒50 2P 75秒503P 50秒50 +25秒 4P 37秒50 +25秒 5P 30秒50 +25秒
6P25秒50 +25秒 7P 21秒50 +25秒8P 18秒50 +25秒 9P 16秒50 +25秒
10P 15秒50 +25秒11P 13秒50 +25秒 12P12秒50 +25秒 13P 11秒50 +25秒
14P 10秒50 +25秒15P 10秒50 +25秒 16P 9秒50 +25秒 17P 8秒50 +25秒
18P 8秒50 +25秒 19P 7秒50 +25秒 20P 7秒50 +25秒 21P 7秒50 +25秒
22P 6秒50 +25秒 23P 6秒50 +25秒 24P 6秒50 +25秒 25P 6秒50 +25秒
30P 5秒50 +25秒 35P 4秒50 40P 3秒50 45P 3秒50 50P 3秒50 55P 2秒50
60P 2秒50 65P 2秒50 70P 2秒50 75P 2秒50 80P 1秒50 85P 1秒50
90P 1秒50 95秒 1秒50100P 1秒50 140P 1秒50 150P 1秒50600人 每个资源分配150人 在1000人口产400兵

1 开头0秒 四个资源为0 3村民1斥候 要干什么。好像没有公式
一个房子 需要25木 建造时间25秒 根据25除以0.33=75.7秒达到25木      要3人 25秒内达到25木   训练时间没法降低
一个村民 需要50食物 建造时间25秒 根据50除以0.33=151.5秒达到50食物 要6人 25秒内达到50食物
一个磨坊 需要100木 建造时间35秒 根据100除以0.33=303秒达到100木    要8.6人35秒内达到100木
一个伐木场 需要100木 建造时间35秒 根据100除以0.33=303秒达到100木 要8.6人35秒内达到100木
130秒后 11.6人吃肉 达到500食物
70秒 8.6人伐木/磨坊 X2   150秒 房子X628.8人220秒+130秒到封建
周围环境
开头没找到食物可采集 只有树-需要磨坊-种田
开头没找到食物可采集也没看到树 需要骑兵和村民探索周围
开头找到食物可采集 没看到树 需要骑兵探索周围
开头找到食物 只有鹿 但是没开允许打猎 需要骑兵赶鹿
开头找到食物 牲畜 TC旁边3格内找到树
开头找到食物 有鹿 TC附近3格内有攻击性动物

方案 哪个更优
假设分配2人木1人食物 37.8秒达到25木 151.5秒达到50食物
      分配0人木3人食物 50秒达到 50食物
      分配1人木2人食物 75.7秒达到25木 75.7秒达到50食物
      +25秒后 建造一个房子 (容纳10)木头清零 需要建造一个伐木场单人303秒
      +25秒后
      分配1人木3人食物 75.7秒达到25木 50.3秒达到50食物
      +25秒后
      分配1人木4人食物 75.7秒达到25木 37.8秒达到50食物
      +25秒后
      分配1人木5人食物 75.7秒达到25木 30.3秒达到50食物
      +25秒后
      分配1人木5人食物 75.7秒达到25木 25秒达到50食物
      +25秒后 50木
      分配1人木6人食物 75.7秒达到25木 25秒达到50食物
      +25秒后 建造一个房子 (容纳15)25木
      分配1人木6人食物 75.7秒达到25木 25秒达到50食物
      +25秒后
      分配2人木6人食物 37.8秒达到25木 25秒达到50食物
      +25秒后
      分配2人木7人食物 37.8秒达到25木 21.6秒达到50食物
      +25秒后
      分配2人木8人食物 37.8秒达到25木 18.9秒达到50食物
      +25秒后
      分配3人木8人食物 25.2秒达到25木 18.9秒达到50食物
      +25秒后
      分配3人木9人食物 25.2秒达到25木 16.8秒达到50食物
      +25秒后
      分配4人木9人食物 18.9秒达到25木 16.8秒达到50食物
      +25秒后 建造一个房子 (容纳20)
      分配4人木10人食物 18.9秒达到25木 15.1秒达到50食物
      +25秒后
      分配4人木11人食物 18.9秒达到25木 13.7秒达到50食物
      +25秒后
      分配4人木12人食物 18.9秒达到25木 12.6秒达到50食物
      +25秒后
      分配4人木13人食物 18.9秒达到25木 11.6秒达到50食物
      +25秒后 建造一个房子(容纳25)
      分配4人木13人食物 18.9秒达到25木 11.6秒达到50食物
      +25秒后
      分配5人木13人食物 15.1秒达到25木 11.6秒达到50食物
      18P13人 500食物 116.5秒
             点封建时代 升级要130秒 275木 100秒 要8人
       分配8人木10人食物 9.4秒达到25木 15.1秒达到50食物
1 开头0秒 有200食物 开启训练队列 点4个村民
斥候也不贤者 在城镇中心12格范围内去找牲畜
在房子容纳5 目前3个村民+1个斥候骑兵情况下 只要有50食物以上就会训练村民
2 开头3个村民 指派2个村民建造一个房子 指派1个村民建造另一个房子 (开头建造2个房子)
相关设定 sn-enable-new-building-systemsn-disable-builder-assistance
计算牲畜的数量 发现+被吃了=总的数量 怎么判断被吃了而减少数量
                        每发现一只 放到仓库(固定的数) 统计数(不断变化的数)与仓库保存的数不同 保存变化的数
find local 牲畜 其中一只 保存该ID 在中途没有被改权 让村民一起杀 获取该ID的生命值 判断是否被吃了
当训练完第一个新村民和刚好2个村民建好房子加入去采集牲畜 是3个人
优先吃打猎的肉 再吃牲畜
假设找牲畜 根据采集牲畜的人数分多少组决定要多少点 根据牲畜的肉量牲畜肉剩下多少百分比情况下 需要牲畜从集散点自动去到采集点 并在新的牲畜到了采集点 在3个人采集牲畜中抽出2个去采集另一个牲畜 只派一个村民刚好建好房子回来途中
斥候开始在城镇中心31格范围内寻找鹿


并赶鹿回途中第5,6个村民 6个分3组吃 2个村民吃鹿 1村民吃剩余不足多少肉的牲畜吃完后再加到吃鹿队 刚好2组 每组3个村民吃牲畜或鹿肉 第7村民出来再距离城镇中心10格范围开始搜索树林(只在10格范围以上建造伐木场)第8个村民出来去伐木场伐木 目前6个村民吃肉 只要有一组负责吃肉快吃完 有牲畜准备移动到TC位置 斥候不停在城镇中心15格范围寻找牲畜和鹿
满足7村民开始找野猪 在每个城镇中心搜索多少范围的75血肉野猪
需要的参数
sn-enable-boar-hunting 1
(up-gather-inside c: town-center c: -1)

后面出来9,10村民吃肉 第11村民出来后建房子和磨坊
磨坊建造点和建造时刻
情况 地图没鹿or 没城镇中心or磨坊 没伐木场or木头小于300游戏时间大于斥候探索家范围内时间and范围内没有果树丛or鹿在允许采集打猎范围或30范围内

(set-strategic-number sn-mill-max-distance 25)
(set-strategic-number sn-preferred-mill-placement 1)
(build mill)
情况1 没果树丛 地图有鹿游戏时间小于斥候探索家范围内时间or游戏时间小于300 既不是村民数大于等于7也不是采集食物人数小于3 木头小于300鹿在允许采集打猎范围外或大于30范围

情况2木头小于230 房子小于0 现有单位余额小于3 可容纳之单位余额大于1 城镇中心小于1或者磨坊大于等于1      



情况3(or      (not      (can-build mill))没有资源建造 或者磨坊准备放置地基
      (up-pending-placement c: mill))


发现果树丛
以城镇中心20范围内搜索32个果树丛 以最远距离排序 获取计数

远程目标找到1个以上 设定远程搜索列表序号0为目标对象 获取该对象距离城镇中心多远(果树丛产生地方在12-18左右) temporary-goal=12取最大值 18取最小值

可建造磨坊(假设已经建造完了)
以城镇中心24范围内远程搜索32个果树丛 以最近距离排序 设定远程搜索列表序号0为目标对象 获取目标对象的位置点 以目标对象位置点8格范围内本地搜索一个磨坊

远程有找到果树
本地搜索没有结果
采果人大于等于1或木头大于等于300或伐木场大于等于2
可以建造磨坊
在找到果树位置点建造磨坊

      (up-copy-point building-point-x object-point-x)
      (up-set-target-point building-point-x)
      (set-strategic-number sn-allow-adjacent-dropsites 1)
      (set-strategic-number sn-placement-zone-size 4)
      (up-build place-point 0 c: mill)

发现食物
游戏时间大于等于1200秒或村民数大于等于20或者采果人大于等于1或者木头大于等于300或者伐木场大于等于2

可建造磨坊

      (up-modify-sn sn-mill-max-distance g:= temporary-goal)
      (set-strategic-number sn-allow-adjacent-dropsites 1)
      (build mill)


发现食物
游戏时间大于等于120
村民数大于等于7
采果人小于等于0或者村民数大于等于18或者木头大于等于200或者伐木场大于等于1
可以建造磨坊

      (up-modify-sn sn-mill-max-distance g:= temporary-goal)
      (set-strategic-number sn-allow-adjacent-dropsites 1)
      (build mill)


not 发现食物
游戏时间大于等于125
采果人小于等于0或者村民数大于等于19或者木头数大于220
伐木场大于等于2
可以建造磨坊

      (up-modify-sn sn-mill-max-distance g:= temporary-goal)
      (set-strategic-number sn-allow-adjacent-dropsites 1)
      (build mill)



以上情况都没有建造完成时 游戏时间大于等于130秒
肉马被杀
村民大于等于20or伐木场有2个以上or木头大于等于240
有资源可以建造磨坊
       (set-strategic-number sn-placement-zone-size 10)
      (up-set-placement-data my-player-number -1 c: -2)建造城镇中心后方 防止被打
      (set-strategic-number sn-allow-adjacent-dropsites 1)建造在鹿地点
      (up-build place-control 0 c: mill)



第12个村民出来吃果 到12个村民开始派一个吃肉村民拉一只猪(获取猪命令是run说明已经成功拉到 村民立刻往城镇中心赶) 当猪被赶到城镇中心底下时驻扎6个村民再放出射击猪 8个人吃猪 继续出来村民都吃肉 第16个村民开始拉第2只猪 (7个人吃的猪刚好差不多吃完) 第18个村民出来 强行村民上交食物 凑够500 19人口点封建
原来2个采果+2个伐木 再吃肉村民分出4个伐木 2个采果2个伐TC木 建房子 19人口到封建在吃肉村民分7个建新TC 第19村民出来继续吃牲畜肉
9分26秒斥候向外面区域探索
不用SN指定建筑工人数 城镇没有敌人 只有一个建造工人 城镇有敌人 指派5个工人

(up-filter-status c: status-pending c: list-active)
                  (up-find-status-remote c: c: 1)只找没有被村民点的地基
                  (up-remove-objects search-remote object-data-tasks-count > 0)

(not(and(up-enemy-units-in-town > 0)
(town-under-attack)))
                  =>
在城镇中心范围
                  (up-reset-filters)
                  (up-find-local c: villager-class c: 200)
                  (up-remove-objects search-local object-data-type == 212) ;builder
                  (up-remove-objects search-local object-data-type == 118) ;builder
                  (up-clean-search search-local object-data-distance search-order-asc)         
                  (up-remove-objects search-local object-data-index != 0)
up-get-rule-id
up-jump-direct 可以和up-get-rule-id 范围0 to 32767
up-jump-dynamic 可以和up-get-rule-id 范围 -32768到32767
up-jump-rule 范围-32768到32767
最后跳转的规则不满足条件的 或跳转规则带disable-self或用目标次数限制

多重筛选 全地图搜索多个单位 通过从近到远距离筛选 再次筛选出前几个 从远到近距离排序的
            猜想目的 当搜索范围不确定时 搜索在某个建筑旁边的最近的单位

                (up-remove-objects search-local object-data-action c:== actionid-enter)
                (up-remove-objects search-local object-data-index c:>= 85);0-85
                (up-clean-search search-local object-data-precise-distance search-order-asc)
                (up-remove-objects search-local object-data-index c:>= 6)
                (up-clean-search search-local object-data-precise-distance search-order-desc)

object-data
object-data-point-x 对象X坐标
object-data-point-y 对象Y坐标
object-data-precise-x 对象X坐标乘以100 1格距离划分为100份
object-data-precise-y 对象Y坐标乘以100 1格距离划分为100份
object-data-distance 距离 对象坐标与目标点target-point的距离。这不考虑障碍
object-data-precise-distance精确距离 (对象坐标object-data-precise-x/y与目标点target-point的距离)乘以100 1格距离划分为100份 这不考虑障碍
object-data-full-distance 精确距离平方 (对象坐标与目标点target-point的距离)的平方
object-data-reload-time 后续攻击之间的时间间隔(受科技加成) 在部队再次攻击之前的剩余时间既是object-data-next-attack
object-data-reload-time 包含object-data-next-attack (没有计算科技加成) 和投射物射出到击中目标或击中抛物线轨迹经过的地面等于后续攻击之间的时间间隔
object-data-next-attack 对象可以再次攻击时间 以毫秒为单位 发射延迟倒计时到0重新开始单位攻击动画
近战单位开始攻击动画时会立即造成伤害远程部队在开始攻击动画和发射弹药之间有一个延迟(对象可以再次攻击倒计时间) 查看每个单位攻击延迟时间https://ageofempires.fandom.com/wiki/Frame_delay
通过已知攻击间隔 帧延迟 组成一个计算方式 能进行攻击下次攻击时间 在0~攻击延迟后 与 攻击间隔减去-攻击延迟之间时间 炮舰 9434发一炮到9778才能发下一炮   战船首战射出后2557(差值443) 在中间会不断减去550~560(不同的船不同值) 直到不足580再次射出刷新为2667(差值333) 刷新数值不固定 上次留了多少不够下次再补 比如上次最后452 用530~540之间数 减去452   刷新值是2916 差值是84 加上452=536 估计是间隔-540后的值会射出


Unit               Attack Delay,sec               
                     [(A*B)*K]/10
Mangonel/Onager/Siege Onager, Elite Janissary,投石车系 精锐土耳其亲兵      0
every war ship, every defensive building任何战船   船攻击间隔等于554~558*N       每次刷新后 递减554 直到为0               0
Elite Mameluke精锐马木                                                                                 0.2125      2
(Heavy) Scorpion, Bombard Cannon/Houfnice 重弩 手推炮/加农炮               0.22 138   3.66.5
(Elite) Chu Ko Nu精锐连弩                                                                              0.23 144      3
Ratha战车                                                                                                         0.33206   2            
Archer/Crossbowman/Arbalester, Hand Cannoneer靶场步弓系 火枪手         0.35219   2   3.45
(Elite) Ballista Elephant, (Elite) Elephant Archer,      精锐弩炮象 精锐象射   0.4 250    2.5   2
Jannisary, Mameluke   土耳其亲兵 马木                                                   0.4250            3.45    2
(Elite) Conquistador 精锐马上火枪                                                            0.42 263            2.9
(Elite) Kipchak 精锐钦察骑射手                                                                   0.5313         2.2
(Elite) Genitour精锐标枪骑兵, (Elite) Genoese Crossbowman精锐热那亚弩手,   0.5 313   3   2
(Elite) Longbowman精锐长弓, (Elite) Mangudai精锐突骑,                        0.5 313             2    1.7
(Elite) Plumed Archer精锐羽箭手                                                             0.5 313                1.9
(Elite/Imperial) Skirmisher 精锐掷矛/帝王掷矛                                       0.52325            3
(Elite) Arambai精锐飞镖骑兵, (Elite) Organ Gun精锐风琴炮                      0.6    376             2   3.45
(Elite) Camel Archer精锐骆驼射手                                                             0.63394             2
(Elite) Rattan Archer精锐藤甲弓手                                                             0.7438               2
Slinger投石手                                                                                          0.8    500            2
Elite Throwing Axeman 精锐投斧手    X                                                      0.82   513            2
Trebuchet打包机                                                                                       0.88   550
Heavy Cavalry Archer 重装骑射                                                                0.9   563            2
Cavalry Archer   骑射                                                                           0.91    569            2
Hussite Wagon   胡斯派战车                                                                   0.94   587            3.45
(Elite) Gbeto精锐飞刀女兵, Throwing Axeman投斧手,                                 1    625            2
(Elite) War Wagon 精锐马车                                                                        1    625            2.5
公式 AttackDelay = Anim.Duration帧持续时间X (FrameDelay帧延迟/FramesperAngle每角度帧数)
AGE查找参数

例如,热那亚弩手 攻击之间的时间间隔为2000毫秒,其发射延迟的时间长度为0.35秒,即350毫秒。0.35 seconds (15 frames) 因此,如果下一次攻击的目标数据低于1650(2000减去350),这意味着弩手已经射出了他们的箭,正在等待他们再次射出。
投石车没发射延迟 猜想 攻击间隔6 投射物单位 速度是3.5 距离是700/350 1移动到7格距离需要2秒下次攻击时间小于6000-2000就是射出去时间 0等于攻击间隔数值 射出去时间是固定的 只是间隔随科技或民族而改变
object-data-id 0游戏为首次出现在地图里单位/包含触发创建或通过建筑训练的设定序号
object-data-category 3)         类型      (一般为70-可作战 和80-建筑,10装饰 树木/资源20动画 旗帜25幽灵30可移动 鱼群40龙套50高级类型60抛物线可在AGE中查阅)

object-data-action 5      行动编号      当对象空闲或编队行进时,此数据返回-1
object-data-order 6      执行编号      当对象没有执行命令或编队行进时,此数据返回-1
object-data-target 7       当对象没有瞄准任何目标或正在编队向目标行进时,此数据返回-1

object-data-hitpoints 10)         当前生命值 计算受损的部分
object-data-maxhp 11)         最大生命值 包含科技加成
object-data-range 12)         射程 包含科技加成

object-data-speed 13)         精确速度      包含科技加成 在DE中,鹿和猪狼返回不同的速度,这取决于它们是走路还是跑步
object-data-dropsite 14)         资源放置点ID      属于对象正在收集的资源放置点如猎人的为68-磨坊)村民名字返回-1
object-data-resource 15)         携带资源类型      (适用于基础资源物件、村民、贸易车、僧侣、闪光、尸体,可以为0~3四种基础资源、信仰值、尸体腐烂计时器。若单位无法携带资源则为-1)
object-data-attack-stance 21)         攻击姿态 无法更改攻击姿态的对象的攻击姿态似乎为0,与攻击姿态相同。僧侣/村民为0
object-data-target-id 23)         目标地图ID(行动的目标单位的地图ID,如攻击目标、跟随目标)当对象没有瞄准任何目标或正在编队向目标行进时,此数据返回-1
object-data-patrolling 25)         巡逻中      (单独巡逻时为1。集队巡逻时为0。不巡逻时为0。巡逻期间攻击敌人时为0)不受sn-enable-patrol-attack的影响
object-data-strike-armor 26)         近战防御 包含科技加成
object-data-pierce-armor 27)         远程防御 包含科技加成
object-data-base-attack 28)         基础攻击      (即当前该单位面板上的攻击力值,不包含隐藏的攻击加成。)包含科技加成
object-data-locked 29)         已锁定      (城门一类)已锁定返回1,否则返回0。非门类返回-2
object-data-garrison-id 30)         驻扎载体编号      (该单位所驻扎进的载体(如冲车、建筑等)的地图ID)如果对象未驻扎为-2
object-data-train-count 31)         训练队列数量      (建筑的训练队列中的单位数量)无法训练单位对象返回-2
object-data-attacker-id 34)         攻击者地图ID      (只获取首次发起攻击者,没有攻击者时或受到攻击后在30秒的时间内没有受到任何单位攻击过为-2
object-data-under-attack 35)         被攻击是1设置为1后,如果在30秒内没有其他单位攻击,则会有大约30秒的冷却时间,直到数据重置回0
object-data-attack-timer 36)         受击计时器      (建筑每次遭受攻击时重置为60秒,重新倒计时(仅对建筑有效))非建筑对象或在60秒后没受到攻击返回0。
object-data-point-z 37)         海拔高度      (对于非飞行单位,0=高地1,1=高地2,以此类推)得到的是对象的z位置。只有在空中飞行的对象(如射弹和鸟类)的z坐标大于0。
object-data-on-mainland 48)         位于主大陆 则返回1,否则返回0
object-data-idling 49)         闲置中      (闲置时为1,否则为0。集队巡逻中的单位或不工作村民为0)
object-data-progress-type 60)         进度类型      (类型80(建筑和巨型投石机)执行训练、研究、组装拆装时有效,没有执行任何操作时为0。无法执行上述操作的单位恒为-2)102正在训练一个单位103正在研究一项技术
object-data-progress-value 61)         进度百分比      (类型80(建筑和巨型投石机)执行训练、研究、组装拆装时有效,没有执行任何操作时为0。无法执行上述操作的单位恒为-2)对象正在训练单位或对象正在研究技术的完成百分比
object-data-gather-type 71)         采集类型      (该资源物件携带的资源,或该职业村民所对应的可采集的资源,对载有黄金的贸易单位也有效 食物0 木材1 石料2 黄金3 或-1表示对象没有收集资源)圣物驻扎在修道院或贸易单位返回市场为3
object-data-hero-flags 74)         标签类型      (40号科技属性,即二进制属性 - 英雄状态标志之和。标志1=完整的英雄,标志2=免疫转化,标志4=自愈,标志8=默认防御姿态,标志16=阵型保护对象,标志32=自杀式攻击,标志64=波及伤害随距离衰减,标志128=禁止攻击地面,标志256=清除所有标志)判断是否可转化
object-data-hero 75)         完整英雄标志      (一般英雄都为1,一般非英雄都为0。在场景中可被触发更改)object-data-hero-flags值为1返回1
object-data-auto-heal 76)         自愈标志      (狂战士为0,因为狂战士自愈与英雄自愈是不同的)
object-data-hero-flags为4或object-data-hero-flags为1返回1
object-data-no-convert 77)         免疫转化标志      object-data-hero-flags为2或object-data-hero-flags为1返回1(城镇中心和城堡为0,因为它们的免疫转化是硬编码)
object-data-attack-count 79)         持续攻击次数      主动移动或停止会维持当前值并在下次攻击时重置为0;追击移动则不会重置,可继续累加;改变目标或没有目标或杀死当前目标会立即重置为0)
object-data-to-precise 80)         双精确距离      (自身精确坐标到精确目标点(precise-target-point)的直线距离。比如距离为41.53,则该值为4153)DE没法显示

object-data-to-precise 与 object-data-precise-distance 的区别是什么
object-data-precise-distance
The object's precise distance from the target-point, x 100. This does not take obstacles into account. Precise locations are accurate to 1/100 of a tile.

object-data-full-distance
The object's precise distance from the target-point, squared. For example, if the precise distance is 41.34 tiles, object-data-full-distance will be 1709.

object-data-to-precise
The precise distance from the object to the target point, x 100. This probably differs from object-data-precise-distance if the target point has been set with up-set-precise-target-point.


(defconst u0 8)
(defconst u_x 8)
(defconst u_y 9)
(defconst s0 10)
(defconst s 10)
(defconst h 11)
(up-get-object-data object-data-precise-x s)
(up-get-object-data object-data-precise-y h)
(up-add-point u0 s0 c: 1)


(up-copy-pointu0)
(up-modify-goaln c:/ 100)
(up-modify-goalm c:/ 100)
(up-set-precise-target-point n)
(up-clean-search search-local object-data-precise-distance search-order-desc)

指派分类
up-target-point 有效(卸载,训练,锁门/解锁,村民返回工作,取消驻扎,放下圣物,打包机解包/组装)
(defconst action-unload 9)
(defconst action-train 10)
(defconst action-lock 12)
(defconst action-work 13)
(defconst action-ungarrison 14)
(defconst action-drop-relic 15)
(defconst action-pack 16)
(defconst action-unpack 17)
up-target-objects 有效(指向性命令如工人采集僧侣转化治疗,警戒,跟随,驻扎)
(defconst action-default 0)
(defconst action-guard 3)
(defconst action-follow 4)
(defconst action-garrison 7)
up-target-point与up-target-objects 共用(移动,巡逻,停止,投石车/机强制攻击地面,自杀,锁定某单位向该单位位置移动集结,不改变当前)
(defconst action-move 1)
(defconst action-patrol 2)
(defconst action-stop 5)
(defconst action-ground 6)
(defconst action-delete 8)
(defconst action-gather 11)
(defconst action-none 18)

































wangzhen 发表于 2022-4-30 12:40:42

本帖最后由 wangzhen 于 2022-7-26 21:28 编辑

up-add-point (inout)(goal)点1-x (in)(goal)点2-x 类型操作符 (in)(op)值
后面值 数字是点2乘以倍数结果点1与乘以倍数后点2相加后存入点1 后面值数字负数为减法
例子

判断位置
(up-add-point gl-point-x gl-point1-x c: -1)
点2是骑兵 点1是步兵   
相减后的值
是X,Y负数 点2在点1的右边
是X,Y正数 点2在点1的左边
X是负数 Y是包含0正数 点2在点1的上面
X是包含0正数 Y是负数 点2在点1的下面
XY都是正数或负数 X,Y相差不到1是水平位置,
在左右位置 X或Y 是正数 得到是数值
可以判断为距离假设点1是自己单位 在判断 敌人骑士与自己单位距离是否威胁到自己时
是否后退 在自己单位的位置相减/相加起他们之间的距离值

up-cross-tiles

up-lerp-tiles

以up-get-point position-object对象的点为up-set-target-point或up-set-precise-target-point目标点通过up-point-distance两者距离和获取单位的距离有差异1格精确距离是距离保留小数点2位乘以100 精确距离平方是精确距离2次方再除以10000


以up-get-object-data 38对象的XY坐标为up-set-target-point目标点 通过up-point-distance两者距离和获取单位的距离有较多差距 精确距离数值翻倍

以up-get-object-data 38 对象的XY精确坐标为up-set-target-point目标点 通过up-point-distance两者距离和获取单位的距离有更多差距 精确距离数值翻倍

设定不同的目标点 得到距离数值不一样。
设定up-set-target-point和up-set-precise-target-point 得到距离数值不同有很大差距
三个结果 双精确距离还是没法获取
陆地判断所在点非单位是否可通行 有可能是悬崖

(or      (up-point-contains saved-point-x c: tree-class)
(or      (up-point-contains saved-point-x c: gold-mine-class)
(or      (up-point-contains saved-point-x c: stone-mine-class)
(or      (up-point-contains saved-point-x c: forage-bush-class)
水域
(or      (up-point-terrain saved-point-x == terrain-de-water-green)
(or      (up-point-terrain saved-point-x == tterrain-de-water-shallow)
      (up-point-terrain saved-point-x == terrain-de-water-deep)

(up-point-terrain saved-point-x == terrain-water-old)
不可建造 加上上面的


(defconst terrain-de-water-green 95)      ;水域,绿
(defconst terrain-de-water-shallow 1)      ;水域,浅
(defconst terrain-de-water-deep 22)      ;水域,深
(defconst terrain-de-water-deep-ocean 57)      ;水域,深海
(defconst terrain-de-water-azure 58)      ;水域,天蓝色
(defconst terrain-de-water-medium 23)      ;水域,中等
(defconst terrain-de-water-brown 96)      ;水域,棕色

(defconst terrain-de-shallows 4)      ;浅滩
(defconst terrain-de-shallows-mangrove 54)      ;浅滩,红树林
(defconst terrain-de-shallows-azure 59)      ;浅滩,天蓝色

(defconst terrain-de-water-2d-shoreless 15)

(defconst terrain-de-beach 2)      ;海滩
(defconst terrain-de-beach-ice 37)      ;海滩,冰原

(defconst terrain-de-ice 35)      ;冰原
(defconst terrain-de-ice-navigable 26)      ;冰原,可通航



攻击参数
object-data-tasks-count准备攻击自己的人数 没有为0 可以排除已经被挖的资源树木1人1木黄金果树丛3人采一果指定人数 或已经被攻击敌人 转移目标
object-data-attacker-count 攻击自己的人数 没有为0 排除已经被集火攻击的目标 转移目标
object-data-attacker-id    第一个攻击自己的ID 没被打为-1
object-data-under-attack 被敌方攻击 没被打为0
object-data-reload-time   获得自己的攻击间隔
object-data-next-attack   没在攻击为0在攻击大于0
object-data-target-time   发现目标移动过去时 大于0空闲没目标时为-2
object-data-attack-count攻击同一个单位累计 改变目标或杀死当前目标会立即重置为0

引诱敌人 辅助友军攻击
(up-filter-includecmdid-military -1 -1 -1)
(up-find-remote c: cavalry-archer-line c: 1)
(up-find-remote c: mangonel-line c: 1)
(up-set-target-object 2 c: 0)
(up-get-pointposition-object mu1)
(up-find-local c: scout-cavalry-line c: 1)
(up-set-target-object 1 c: 0)
(up-get-pointposition-object youli)
(up-set-target-object search-remote c: 0)
(up-object-data object-data-tasks-count > 0)
(up-object-data object-data-target-time > 0)
(up-compare-goal mu1 != -1)
(up-compare-goal youli-x != -1)
(up-point-distance mu1 youli <= 9)
=>
(up-cross-tiles youli mu1 c: 4)
(up-set-target-point youli)
(up-target-point youli action-default 2 3)
)


(defrule
(true)
(up-set-target-object search-remote c: 0)
(up-object-data object-data-tasks-count > 0)

(up-compare-goal mu1 != -1)
(up-compare-goal youli-x != -1)

(up-point-distance gl-point4-x gl-point3-x <= 9)
=>

(up-reset-search 1 1 0 0)
(up-find-local c: spearman-line c: 240)
(up-target-objects 0 action-default -1 -1))
肉马卡位 剑士攻击 没法知道单位朝向

(defrule
(true)
=>
(up-reset-filters)
(up-full-reset-search)
(up-find-local c: scout-cavalry-line c: 1)
(up-set-target-object 1 c: 0)
(up-get-pointposition-objectpoint4-x);斥候
(up-set-target-point point4-x)

(set-strategic-number sn-focus-player-number 1)
(up-filter-distance c: -1 c: 6)

(up-find-remote c: villager-class c: 1)
(up-set-target-object 2 c: 0)
(up-get-object-data 0 temporary-index2)
(up-get-pointposition-objectpoint3-x);村民

)

(defrule
(up-set-target-by-id g: temporary-index2)
(up-compare-goal point3-x != -1)
(up-compare-goal point4-x != -1)
=>
(up-get-pointposition-objectpoint3-x)
(up-set-target-point point3-x)
(up-reset-search 1 1 0 0)
(up-add-object-by-id 1 c: 1)      
(set-strategic-number sn-target-point-adjustment 2);测试结果 默认0是格子左边 1左边 2左边 3顶 4底 5中间
(up-target-point point3-x action-move2 3)
)

(defrule
(up-set-target-by-id g: temporary-index2)
(up-object-data 10 > 0)
(up-compare-goal point3-x != -1)
(up-compare-goal point4-x != -1)
=>
(up-reset-search 1 1 0 0)
(up-set-target-point point4-x)
(up-filter-distance c: -1 c: 6)
(up-find-local c: militiaman-line c: 240)
(up-target-objects 1 action-default -1 -1);指派附近民兵攻击
)
(defrule
(not(up-set-target-by-id g: temporary-index2))
=>
(set-goal point3-x -1)
(set-goal point3-y -1)
(set-goal point4-x -1)
(set-goal point4-y -1)
)


单马弓 边打边跑 利用投射物只能直线移动 走左右两边 移动距离位置刚好在对手的视野又不在对手的射程里 需要他移动后才能攻击 在他移动时靠近射一下 再左右移动 走错位角度避开对手的投射物   根据时代射程增加和民族加成优劣 设定移动距离 单位重置战斗方式

(set-strategic-number sn-focus-player-number 1)
(up-find-remote c: spearman-line c: 40)
(up-remove-objects 2 10 <= 0) 排除生命值为0
(up-remove-objects search-remote object-data-index > 0)
;(up-add-object-by-id 1 c: 1)      加入ID作为目标 比 set-target-object 效果好 没视野也能自己搜索找到set-target-object作为对象 需要视野能看到的目标

(up-set-target-object 2 c: 0)
(up-get-object-data 0 temporary-index2)
(up-set-target-point gl-point3-x)
(up-get-pointposition-objectgl-point3-x);叉叉
(up-find-local c: cavalry-archer-line c: 240)
(up-clean-search 2 44 1)
(up-remove-objects 2 10 < 0)
(up-remove-objects search-local object-data-index > 0)
(up-set-target-object 1 c: 0)
(up-get-pointposition-objectgl-point4-x);自己
(up-point-distance gl-point4-x gl-point3-x == 0) 对象不可见 导致距离为0
需要考虑到民族加成 库曼 骑兵移速增加蒙古 马弓攻击间隔-20% 西西里单位减伤
搜索范围 马弓5格   鞑靼 视野+2 法兰克骑兵视野+2马扎尔射手视野+2    +3攻射程
还需要判断是否在边界

(defrule 移动速度小于100 不支持小数点 当敌人小于距离4 跑3格
(up-set-target-object 1 c: 0)
(up-object-data 32 > 0)被敌人右键点了
(up-set-target-object 2 c: 0)
(up-object-data 13 < 100)
(up-point-distance gl-point4-x gl-point3-x < 4)
(up-compare-goal gl-point3-x != -1)
(up-compare-goal gl-point4-x != -1)

=>
(up-set-target-object 1 c: 0)
(up-get-pointposition-objectgl-point4-x)
(up-set-target-object 2 c: 0)
(up-get-pointposition-objectgl-point3-x)
(up-lerp-tiles gl-point4-x gl-point3-x c: -3)      
;(up-bound-point gl-point6-x gl-point4-x)写了这个导致没法移动 卡在原地
(up-target-point gl-point4-x action-move2 3)
)
移动速度大于等于100当敌人小于距离4 跑13格 根据敌人移动速度决定要跑多少格 而且还要考虑单位搜索敌人范围内
实现拉扯攻击
(defrule
(up-set-target-object 1 c: 0)
(up-object-data 32 > 0)
(up-set-target-object 2 c: 0)
(up-object-data 13 >= 100)
(up-point-distance gl-point4-x gl-point3-x < 4)
(up-compare-goal gl-point3-x != -1)
(up-compare-goal gl-point4-x != -1)
=>
(up-set-target-object 1 c: 0)
(up-get-pointposition-objectgl-point4-x)
(up-set-target-object 2 c: 0)
(up-get-pointposition-objectgl-point3-x)
(up-lerp-tiles gl-point4-x gl-point3-x c: -13)
(up-target-point gl-point4-x action-move2 3)
(up-chat-data-to-all "跑13格-%d" g: gl-point4-x)
(up-chat-data-to-all "跑13格-%d" g: gl-point4-y)
)
单兵 敌人速度小于100 重置攻击状态

(defrule
(up-set-target-object 1 c: 0)
(up-object-data 32 <= 0)单位没有被打
(up-set-target-object 2 c: 0)
(up-object-data 13 < 100)
(up-point-distance gl-point4-x gl-point3-x >= 4)
=>
(up-set-attack-stance -1 c: 0)
)
单兵 敌人速度大于等于100 攻击远程列表的目标对象
(defrule
(up-set-target-object 1 c: 0)
(up-object-data 32 <= 0)
(up-set-target-object 2 c: 0)
(up-object-data 13 >= 100)
(up-point-distance gl-point4-x gl-point3-x >= 4)
=>
(up-target-objects 1 action-default -1 0)
)
群马弓击杀单兵
6到8人的马弓 历遍获取每个成员的攻击力相加 获取马弓附近8格范围内的敌人(是通过移动到该点还是在行走过程中遇到的) 获取8格范围内的敌人数量 历遍每个成员最近的距离敌兵 历遍获取距离最近马弓每个单位的敌兵 获取该敌兵的防御值   每个攻击力相加总数-敌方防御值要攻击多少次 才能杀死 闪避 每个成员距离敌兵2格 开始移动

沿途保护冲车到达敌方城堡
守护单位 骑兵 剑士 弓矛僧侣 搜索冲车9格范围的敌人 有附近敌人冲车停止移动
骑兵打弓矛 剑士打长枪 弓矛辅助 对于超过冲车9格范围外的敌人停止攻击
僧侣辅助补血
守护单位除了关键时刻不会离开冲车9格范围
互相扶持
冲车被投石车点了往回家的方向移动 骑兵 剑士辅助攻击投石车
当没有投石车出现时
单个骑兵被点了 看单位是否相克 被相克 往后退 弓矛辅助齐射攻击该单位
单个剑士被点了 看单位是否相克 被相克 往后退骑兵弓矛辅助攻击
单个弓矛被点了 看单位是否相克 被相克 往后退剑士辅助攻击
僧侣被点了 骑兵剑士站在攻击者前面 弓矛辅助攻击
僧侣优先级治疗 当有多个长枪兵同时攻击单骑兵 优先治疗该骑兵
                           当有多个骑兵 同时攻击单剑士 骑兵攻击骑兵 弓矛辅助攻击 优先剑士
                              当有骑兵 攻击剑士 也攻击弓矛 优先弓矛治疗 保证远程输出
                              当有单个骑兵攻击骑兵非骆驼 僧侣随机治疗
敌方是否已研究异教 没有 僧侣点化成友 有僧侣辅助单位治疗
当有多个单位同时被点 优先攻击投石车
当没有敌人让某个骑兵在前方探路 等待一定时间再作决定
当前方敌人较多 是否可以引诱少量敌兵 尝试多次引诱失败改变策略
当敌人太多 是否考虑撤退回家


发现城堡 不可达找攻城武器 打包机 破坏者 搜索自身20格是否有城墙















mymco168 发表于 2022-5-8 20:39:00

试着照LZ加条件进去

fe-cc-effect-amount 这一条会报错

假设让AI启用科技
正确写法是什么?

wangzhen 发表于 2022-5-8 21:18:05

mymco168 发表于 2022-5-8 20:39
试着照LZ加条件进去

fe-cc-effect-amount 这一条会报错


(defconst effect-enable-tech 7)
(defrule
(true)
=>
      (fe-cc-effect-amount effect-enable-tech 7-1 1)
)

wangzhen 发表于 2022-5-8 21:33:25

本帖最后由 wangzhen 于 2022-5-30 15:31 编辑

城墙要怎么算出要围多大
假设的多个连接方法

up-point-contains 位置是不是有特定东西   条件当成立后up-get-point-contains 获取特定东西的地图ID 判断是否树 石头 黄金
up-path-distance 位置是否可达            先计算到达该位置距离 up-get-path-distance
up-point-terrain   地形是否可通行 水区域 浅滩 冰 建筑饰物 好像很多 需要根据地图地形类型 加入判断
up-point-elevation 海拔高度好像不需要 位置是否可达能判断
up-point-distance 建造石墙时是否距离太近
当达成条件 可通行 可达 尝试在该点建造 up-build-line是否连续建造同一个建筑 是否用不同的建筑连接
up-pending-placement 地方是否可建造 命令建造后是不是有执行
up-pending-objects 是否准备建造
完成建造一横围   出生地位置是不是在角落 或不在角落 判断需要多少个横围
在围墙内是否有充足的资源发展 后话 什么时候需要围墙 围墙内是否建造防御建筑
围墙距离采集点多远 是否会受到敌人隔着墙攻击


怎么找到城墙防守弱的地方







mymco168 发表于 2022-5-9 08:27:05

wangzhen 发表于 2022-5-8 21:18
(defconst effect-enable-tech 7)
(defrule
(true)


抱歉 希望能细问下{:146:}

输入已经不会出错
但这启用科技目前没有看到
是需要用userpatch才能正常触发吗?
(没出错 但又没效果第一次看到...

顺便问下后面 -1 1是一定要打的吗?

wangzhen 发表于 2022-6-28 11:48:44

本帖最后由 wangzhen 于 2022-6-28 19:10 编辑

AI民族兵应对数据
Ghulams没三防 善于对抗 少量的Archers, Skirmishers, Cavalry Archers, Villagers
               弱于   Champions, Jaguar Warriors, Samurai, Teutonic Knights, cavalry, Monks没异教
Ratha帕提亚加成善于对抗 Archers, siege weapons (Melee), Slow and non ranged units (Ranged), Villagers
         弱于 Teutonic Knights , War Elephants, Battle Elephants (Melee), Skirmishers, Rattan Archer, Mangonels, Scorpions (Ranged), Huskarls, Samurai, Eagle Warriors, Pikemen, Kamayuks, Camel units, Genoese Crossbowmen, Ghulams, Paladins, Boyars, Monks没异教
Urumi Swordsman 善于对抗Infantry, Skirmishers, Light Cavalry
                               弱于Archers, Scorpions, Hand Cannoneers, Janissaries, Conquistadors, Cataphracts, Slingers, War Elephants, Battle Elephants, Monks, Konniks, Ballista Elephants没异教
Chakram Thrower善于对抗Slow and non ranged units, Skirmishers, Light Cavalry, Villagers
弱于Archers, Scorpions, Mangonels, Hand Cannoneers, Janissaries, Conquistadors, Cataphracts, Jaguar Warriors, Slingers, Samurai, Teutonic Knights, Serjeants, heavy cavalry没三防没护卫
Shrivamsha Rider善于对抗Archers, siege weapons, Villagers, Gbetos, Throwing Axemen, Chakram Throwers, Mamelukes, Trade Carts
弱于Pikemen, Kamayuks, camel units, Samurai, most melee units没三攻
Obuch善于对抗Skirmishers, Halberdiers, Camel Riders, Eagle Warriors, buildings, Light Cavalry, Champions, Huskarls, Kamayuks, Rams, Serjeants, Teutonic Knights, Boyars and high melee armor units
弱于Samurai, gunpowder and archer units, Scorpions, Berserks, Cataphracts, Jaguar Warriors, Slingers, Organ Guns, Throwing Axemen, Mamelukes, Gbetos, high hit point units such as Battle Elephants and War Elephants没异教
Hussite Wagon善于对抗Infantry units, Archer units
弱与Mangonel-line and Bombard Cannon-line, Knight-line, Throwing Axemen, Huskarls, Magyar Huszars, Samurai, Condottieri, Mangudai
Serjeant善于对抗Archers, Infantry with less melee armor, Skirmishers, buildings, Hussars, Camel Riders
弱于Scorpions, Mangonels, Hand Cannoneers, Conquistadors, Janissaries, Slingers, Monks, Cataphracts, Leiciai, Samurai, Teutonic Knights, Boyars, Jaguar Warriors, Obuchs, War Elephants, Battle Elephants没异教
Coustillier善于对抗Infantry, archers, Villagers, siege weapons, Cavalry Archers, Light Cavalry
弱于Kamayuks, Genoese Crossbowmen, Mamelukes, Camel Riders, Samurai, War Elephants, Boyars, Halberdiers (if massed), Monks (if kept away)没异教
Kipchak 善于对抗Slow and non-ranged units, rams移动速度慢非远程单位
            弱点Kamayuks, Genoese Crossbowmen, Huskarls, Skirmishers, Eagle Warriors, Genitours, Mangonels, Scorpions, camel units, Rattan Archers, Samurai没三攻射程

wangzhen 发表于 2022-6-28 22:27:36

本帖最后由 wangzhen 于 2022-6-29 12:02 编辑







页: [1]
查看完整版本: 给AI指定特技或属性效果和部分SN