1.15
1.15版本包含重大更新,更新了少量单位与游戏内容,同时更新的有大量Mod特性。
版本更新 | ||
---|---|---|
当前类型 | 正式版 | |
首次更新时间 | 2021-07-15 10:27 | |
最后更新时间 | 2022-11-10 14:09 | |
内部迭代版本号 | 1.15 | 176 |
1.15p11b | 175 | |
1.15p11 | 174 | |
1.15p10 | 173 | |
1.15p9 | 172 | |
1.15p8 | 170 | |
1.15p7b | 169 | |
1.15p7 | 168 | |
1.15p6 | 167 | |
1.15p5 | 165 | |
1.15p4 | 160 | |
1.15p3 | 159 | |
1.15p2 | 158 | |
1.15p1 | 157 | |
已发布平台 | Google Play、App Store、Steam |
在Google文档上查看官方发布的更新日志 (英文)
1.15p1
1.15p1是Rusted Warfare在1.15版本中的首次公开更新,仅支持PC版本
1.15p1更新日志 |
---|
Rusted Warfare Beta - v1.15p1 • 在单人游戏遭遇战的高级选项和多人游戏中, 可以单独为某个玩家设置游戏选项, 例如: • 现在可以为每个AI玩家设置不同的难度等级。 • 不同的玩家可以有不同的初始单位, 可以用来选择模组中的派系。 • 可以为每个玩家分别覆盖不同的单位颜色。
• 为Android版添加"保存到内部存储"的选项, 让存档/模组/自定义地图功能可以在不授予存储权限的情况下正常运作。请注意, 在卸载时游戏时内部应用存储会被Android系统一并删除。 • 可以从模组设置界面中删除或导出模组。 • 可以从自定义地图界面导入新地图。 • 电脑版:添加实验性的-teamshaders命令开关。开启后将使用着色器为队伍颜色着色, 减少含大图片的模组的内存占用以及第一次应用着色时的卡顿。
• [core]streamingCost • 类似于价格, 但该单位在建造队列中或正在建造时需要消耗资金。若在建造该单位时资源耗尽, 则建造过程或建造队列将暂停。 • [action]streamingCost • 类似于价格, 但该动作在队列中时需要消耗资金, 若在该动作在队列时资源耗尽, 排队将暂停。Flags可以用于暂停或解除触发器的暂停。类似于价格, 但在这个单位在建造队列或建造时支付费用。 如果在建造过程中资源耗尽, 建造或排队将暂停。标志可以用来暂停和解除触发器的暂停。 • [core]switchPriceWithStreamingCost:boolean/[action]switchPriceWithStreamingCost:boolean • 快捷方式, 将streamingCost设置为price的值并清除价格。 • 在all-units.template中增加[core]switchPriceWithStreamingCost, 以快速将mod切换到流式资源。
• 大幅修改动态逻辑布尔值, 新增动态数字、单位、字符串类型 • 与其使用"autoTrigger: if self.energy(greaterThan=100)", 不如用"autoTrigger: if self.energy > 100"
• 逻辑布尔值与数字的数学运算: - + * / • 示例:"autoTrigger: if 2*self.energy + parent.energy-10 > 50"
• 动态文本, 例如: [action]text: 队伍:%{ self.teamId } 还剩 %{ parent.resource('gold') } 颗黄金。 • 动态文本支持已经被添加到[action]text, [action]description, [action]setUnitMemory, [action]showMessageToPlayer, [action]showMessageToAllPlayers, [action]showMessageToAllEnemyPlayers, [action]showQuickWarLogToPlayer, [action]showQuickWarLogToAllPlayers, [action]debugMessagee中。
• 增加了对多行的支持, 可以在ini的任何key上使用3个引号来开始和结束。示例: copyFrom:""" ROOT:a.ini, ROOT:b.ini, ROOT:c.ini """ • 添加 [attack]shootDelayMultiplier, 默认为1 • 添加 [action]setUnitStats, 允许动态地改变一些选定的字段而无需转换。 支持=/+=/-=,支持动态数字或逻辑. 可修改的字段有:maxHp, hp, maxShield, shield, shieldRegen, maxEnergy, energy, armour, mass, shootDelayMultiplier, moveSpeed, maxAttackRange.。示例: setUnitStats: maxHp+=self.energy+100, hp+=50, shieldRegen=0.5 • 添加 [action]resetUnitStats (布尔值) • 添加 [action]convertTo_keepCurrentFields - 转换时不要更改这些字段, 配合setUnitStats食用更佳 (允许的字段: maxHp, maxShield, shieldRegen, maxEnergy, armour, mass, shootDelayMultiplier, moveSpeed, maxAttackRange.) • 添加 [action]whenBuilding_temporarilyConvertTo_keepFields - 使用whenBuilding_temporarilyConvertTo或whenBuilding_temporarilyConvertFrom时请勿更改这些字段,配合setUnitStats食用更佳。 • 修复了whenBuilding_temporarilyConvertTo在单位类型之间闪烁的问题。 • 修复了沙盒模式中重载单位时临时标签被重置的问题。 • 修复了沙盒模式所有标签栏都会显示触发器调试的问题。
• 可为自定义存储给每个单位创建独一无二的变量。 • 示例1: [core]defineUnitMemory: boolean nukeActive, boolean laserReady, float experience, unit nextTarget, unit homeBase, string customText • 示例2: [action]setUnitMemory: """ customText=memory.customText+'hello', nukeActive=true。 experience=experience+attacking.hp, nextTarget=self.attacking.nearestUnit(withinRange=300, withTag='x', relation='enemy') """ • 新的逻辑布尔函数:readUnitMemory(name:string, type:string{boolean,unit,float,string}, [default]) • 示例:parent.readUnitMemory('nukeCountdown', type='float') .如果该单位的存储不存在该数据或保存的数据类型是错误的, 则使用默认值。
• 新增逻辑布尔函数:memory(name), 它是读取当前defineUnitMemory类型的单位的快捷方式。 • 修复同一张图片使用不同模式时teamColoringMode的问题。 • 新的资源快捷方式。示例:self.resource.credits和self.resource('credits')
• self.maxHp() • self.teamId() - 返回当前单位的队伍id。在单位和一些标记物上可用。 //译者注:原文疑似有误,此处已纠正 • self.x() - 返回地图上的x坐标值。在单位和标记物上可用。 • self.y() - 返回地图上的y坐标值。在单位和标记物上可用。 • self.z() - 返回地图上的z坐标值。在单位和标记物上可用。 • self.dir() - 返回该单位的朝向。在单位和标记上可用。 • self.priceCredits() - 返回该单位"price"的"creidts",即原版资金。 • distance(x1,y1,x2,y2) - 计算两点之间的距离。比distanceSquared慢。 • distanceSquared(x1,y1,x2,y2) - 更快地计算两点之间的距离, 但结果是平方。 //译者注:更适用于比较两点距离 • distanceBetween(unit1, unit2) - 示例: distanceBetween(self, activeWaypointTarget) < 100 • distanceBetweenSquared(unit1, unit2) - 比distanceBetween用起来快一点点... • int(x) - 移除一个数字的小数部分. 示例:int(4.2) == 4 • select(bool, textA, textB) - 若为true则返回文本A, 否则返回文本B。 • debug(logicBoolean) - 返回一个文本字符串, 帮助解释这个结果是怎么来的。可以看到嵌套逻辑、比较和运算符。 • str(x) - 将数字、单位或布尔值转换成字符串. 示例:str(self.energy)+'x'=='100x' • substring(text,start,end) - 示例:substring('hello',0,2) == 'he' //注:这不支持使用负数来从文末取字;另外当start的数大于end的数时不会报错,而当在游戏中显示相关消息时,游戏会直接崩溃,这属于bug(1.15p8) • length(string) - 以数字形式返回文本长度。 • squareRoot(num) - 求一个数字的平方根。 • min(num, min2) - 返回最小数, 示例: damage = min(self.hp, self.energy) • max(num, min2) - 返回最大值, 示例: max(5, 10) == 10 • createMarker(x,y,[height],[teamId],[dir]) - 返回一个临时的单位标记。可以保存在自定义存储中或作为移动命令的参考, 等等。不影响游戏状态。如果不再被引用, 则自动删除。 • globalSearchForFirstUnit(withTag=x, relation) - 返回找到的第一个与筛选器匹配的单位。 • null/nullUnit - 一个空的/缺失的单位。在需要比较时很有用, 示例:self.customTarget2 != null • 新的逻辑布尔/单位参照体系 • 支持函数之间的链接, 示例: self.attachment(withTag='x').lastDamagedBy.getAsMarker() • self - 这是当前单位的现有参照(在以前的版本中是唯一选项)。示例:autoTrigger: if self.energy > 100 • attachment([slot], [withTag]) • attacking - 单位正在攻击的当前目标,不一定是当前的路径点目标。 • lastDamagedBy - 攻击此单位的最后一个单位 • parent - 父级 - 运输单位或附带单位的父级。 示例:autoTrigger: if parent.energy > 100 • activeWaypointTarget 当前动作的路径点目标。包括攻击、运输、修复等动作。 • customTarget1 - 自定义存储, 默认为建造此单位的单位。 • customTarget2 - 自定义存储, 默认为空。 • nearestUnit(withinRange=500, withTag='x', relation='any') - 按条件查找一个单位,该代码运行较慢,不建议在autoTrigger中使用 • getAsMarker() - 立即在单位的当前位置创建临时标记。标记创建速度快并在不被引用时自动移除. 它不会链接到任何单位,并且在单位死亡时仍然存在,在创建源移动时仍然保持不变。 • getOffsetAbsolute([x],[y],[height]) - 返回带有绝对偏移量的标记。 • getOffsetRelative([x],[y],[height],[dirOffset]) - 返回带有相对偏移量的标记。 • thisActionTarget - 在[action_NAME] / [hiddenAction_NAME]中使用,以获得动作的目标、位置、自动触发事件源等等。会根据动作触发源设置为单位、标记或空值。注意:当用于界面文本之类的字段时它将始终为空,因为该值只在动作事件上有效。如果你想让它显示在界面上,请将该值保存到自定义存储中。 • thisActionTarget - 示例:fireTurretXAtGround: mainGun (thisActionTarget==带地面位置的标记) • autoTriggerOnEvent: tookDamage (thisActionTarget==造成伤害的单位) • autoTriggerOnEvent: killedAnyUnit (thisActionTarget==被摧毁的单位) • autoTriggerOnEvent: transportingNewUnit (thisActionTarget==被运输的单位) • autoTriggerOnEvent: transportUnloadedOrRemovedUnit (thisActionTarget==被卸载的单位) • autoTriggerOnEvent: queuedUnitFinished (thisActionTarget==被建造的新单位) • autoTriggerOnEvent: touchTargetSuccess (thisActionTarget==碰到的目标) • alsoTriggerAction: x (thisActionTarget==与原动作相同) • [turret]onShoot_triggerActions: x (thisActionTarget==被击中的目标) • takeResources_triggerActionIfAnyCollected: x (thisActionTarget==带有资源的目标) • addWaypoint_triggerActionIfMatched: x (thisActionTarget == 移动动作的标记/攻击的目标等。注:如果只是想搜索,请使用addWaypoint_maxTime: 0) • 向所有单位添加了customTarget1/customTarget2。可用于存储对另一个单元的引用。CustomTarget1默认为建造该单位的可移动单位或建筑物。适用于航空母舰、步兵小队、传送器链接等([core]defineUnitMemory还可用于添加更多内容) • 添加了 [action]takeResources_excludeUnitsWithoutCustomTarget1EqualTo • 添加了 [action]takeResources_saveFirstUnitToCustomTarget1 • 添加了 [action]takeResources_saveFirstUnitToCustomTarget2 • 添加了 [action]setCustomTarget1 - 单位参照 • 添加了 [action]setCustomTarget2 - 单位参照 • 添加了 [action]swapCustomTarget1And2 - 布尔值 • 在动态逻辑中添加了self.customTarget1 • 在动态逻辑中添加了self.customTarget2 • 添加了[action]setResourcesWithLogic/[action]addResourcesWithLogic • 示例: setResourcesWithLogic: hp=self.parent.hp - 10, energy = self.energy / 2 • 示例: addResourcesWithLogic: hp = select( self.parent.energy>5, 10, 20 ) • 添加了[core]autoTriggerCheckRate 和 [core]autoTriggerCheckRate • 可用选项: everyFrame (默认值), every4Frames, every8Frames • 注: 所有的触发器,无论检查速率如何,都会在首次创建时和自动触发器冷却时间后进行检查。每4帧/每8帧的检查率是随机分布在各单位之间的,这样它们就不会全部出现在同一帧上,使其更流畅。对于具有复杂自动触发器的mods来说,在all-units.template中添加[core]autoTriggerCheckRate:every8Frames后会有很大的性能提升。通常自动触发器的性能会提高8倍。在极少数情况下,一些触发器可能仍然需要逐帧检查,所以这不是一个默认值。 • 新的单位生产/生成参数: • 添加了spawnSource(unitRef) - 影响位置和队伍。 • 示例: [action]spawnUnits: tank(spawnSource=memory.lastLocation) • 添加了copyWaypointsFrom(unitRef) - 将目标上的所有路点复制到创建的单位上。 • 示例: spawnUnits: tank(copyWaypointsFrom=self) • 向${}模板板块添加了系数操作符(%) • [turret]unloadUpToXUnitsAndGiveAttackOrder - 在炮塔位置卸载单位(需要测试) • 添加了 [core]borrowResourcesWhileBuilt • 类似于[core]borrowResourcesWhileAlive但在单位建成后才会生效。主要对房屋之类的建筑有用,这些建筑有负的资源,可以加到单位上限等。 • 添加了 [action]takeResources_includeReference • 示例: [action]takeResources_includeReference: self.lastDamagedBy • 添加了 [action]addWaypoint_target_fromReference - 单位参照 • 修复Android版自定义抛射体的imageShadow不显示的问题。 • 以及此处未列出的其它大量修复。 |
1.15p2
根据Luke在Discrod上的发言,1.15p2本在更新计划之中,但该版本却并没有正常发布。1.15p2不受官方支持或承认。
1.15p2更新日志 |
---|
- 该版本没有更新日志 - |
1.15p3
1.15p3首次更新于2021-07-18 16:58:45
1.15p3更新日志 |
---|
Rusted Warfare Beta - v1.15p3
|
1.15p4
1.15p4首次更新于2021-07-27 08:11:17
1.15p4更新日志 |
---|
Rusted Warfare - Beta - v1.15p4
|
1.15p5
由于Google对发布在Play商店上的应用作出了API Level上的要求,且Android 11更新了API 30中的存储机制,此次更新大幅度修改了Rusted Warfare关于文件存储的机制。
1.15p5更新日志 |
---|
Rusted Warfare - Alpha - v1.15p5 << 注意,游戏的测试版一旦更新到API 30后将无法降级到API 29,因此此次更新将先作为Alpha进行测试,您需要根据需求选择性地加入Alpha测试 >>
|
1.15p6
1.15p6更新日志 |
---|
Rusted Warfare - Alpha - v1.15p6 << 注意,你要选择参与Alpha测试才能更新到这个版本,详情请参阅上次更新日志 >>
|
1.15p7
1.15p7更新日志 |
---|
Rusted Warfare - Alpha - v1.15p7 << 注意,你要选择参与Alpha测试才能更新到这个版本,详情请翻看上面的更新日志 >>
|
1.15p8
1.15p8更新日志 |
---|
Rusted Warfare - Alpha - v1.15p8 << 注意,你要选择参与Alpha测试才能更新到这个版本,详情请翻看上面的更新日志 >>
|
1.15p9
1.15p9更新日志 |
---|
Rusted Warfare - Alpha - v1.15p9 << 这只是v1.15p9的更新日志,请参阅之前的更新日志以了解v1.15的所有变动 >>
|
1.15p10
1.15p10更新日志 |
---|
Rusted Warfare - Alpha - v1.15p10 热修复版 << 这只是v1.15p10的更新日志,请参阅之前的更新日志以了解v1.15的所有变动 >>
|
1.15p11
1.15p11更新日志 |
---|
Rusted Warfare - 测试版 - v1.15p11 << 这只是v1.15p11的更新日志,请参阅之前的更新日志以了解v1.15的所有变动 >>
|
1.15p11b
1.15p11b更新日志 |
---|
Rusted Warfare - Beta 热修复 - v1.15p11b
(此版本能与v1.15p11进行多人游戏)
|
1.15
1.15更新日志 |
---|
Rusted Warfare v1.15 (发行候选版 1)
<<有关整个v1.15的完整更新日志,请参阅上面大约10个测试版的更新内容,此更新日志仅包含v1.15p11b后的更新内容>>
Steam: 在Steam中找到"属性"并选择"测试版"选项卡,然后在下拉选择菜单中选择"Beta" Android: 找到游戏在Google Play商店的页面,选择"加入Beta版测试计划" iOS: 该版本已在https://testflight.apple.com/join/E4dD5dxE 发布 - 测试人数上限已增加 |
目前,1.15发行候选版已成为1.15正式版本,1.15版本的开发周期基本宣告结束。
你知道吗
- 1.15p1版本有两次更新,其中第二次更新于2021-07-16 19:39:05并解决了玩家选项界面的崩溃问题。
