Rothes_Armies

Rothes_Armies

Works with Latest Version. 这是 Rothes_Armies 全新的机制。"and more coming" 1. 现在可以通过游戏选项设置你想要的步兵数量 "Requires MW5Compatibility mod" 链接已提供。2. 步兵现在将

杂项

兼容最新版本。这是针对 Rothes_Armies 的全新机制。"还有更多内容即将推出"。

  1. 现在可以通过游戏选项设置您想要的步兵数量。"需要 MW5Compatibility 模组",链接已提供。
  2. 步兵现在会在有城墙时生成在城墙上。

我会添加更多功能。我有地狱火(Inferno)的源代码,所以会尝试将其整合到 Rothes_Armies 中。 可能会增加第四种步兵类型。 在当前版本感觉更稳定后,会移除轮廓和其他小细节。

1.9

增加了在多种尺寸城墙上生成的能力。"仅"目前为止看到过中型和大型城墙,所以这是我的重点。 现在赋予了步兵上下瞄准的能力,因为它们之前被抬高时没有俯仰角。它们会看起来在开火,直到你靠近它们进入射程。

2.0

增加了地狱火步兵(Inferno Infantry),"感谢 MagnumGB"提供源代码。它们现在也会在城墙上生成! 白色烟雾是 SRM,橙色/红色烟雾是地狱火。

2.3

步兵现在应该能在不同尺寸的城墙上生成。

2.4

步兵现在应该在脚下的城墙被摧毁时死亡,即坠落而死。

2.5

生成高度修复 / 城墙死亡追踪 / 战斗修复 应该能在所有城墙上更好地生成。/ 摧毁城墙段时它们应该坠落而死。/ 修复了更多战斗问题。

2.7

为友军步兵增加了在陆地和城墙上开火的完整逻辑,需要反馈。

2.8.9.8

修复了一大堆东西,几乎是一次完全重写,仍有错误,但... 步兵现在可以在陆地、城墙上战斗,敌人和友军步兵都是如此。 下一步是清理步兵在某些地方地面上所做的滑稽的啦啦队堆叠。可能会增加变量来控制 SRM / 地狱火 / 步枪的伤害。现在任何其他输入都很好。修复了地狱火的颜色,现在是红橙色,SRM 是黑色。确认了地狱火 / SRM 可以对城墙上的 VTOL 开火,因为它们更接近那些低飞的飞行器 :)

2.8.9.9

步兵伤害大幅降低:步枪:0.1,SRM:0.1,地狱火:0.1,热量伤害:1.0。这样你就可以更多地调整步兵数量,或者感觉它们更具美感,但仍然会开火和行动。

2.9.1

为地狱火步兵增加了一个地狱火图标 - 修复了 SRM 无法开火的错误 - 并增加了步兵在城墙上对 VTOL 开火的图片,因为它们在基地中更接近那些低飞飞行器。

2.9.4

[b]错误修复 — 步兵系统[/b] [b]步兵轮廓已移除[/b] [列表] []通过将mod覆盖中的 outline_opacitywidth 参数归零,禁用了步兵单位的轮廓。 [代码]InfantryOutline_PP_MTL[/代码] [/] [/列表] [b]蓝图错误修复 — InfantryManagerSpawnerComponent[/b] [列表] []修复了 ExecuteSpawn 图形:重构了生成后的执行流程,使所有下游节点(Set IsWallInfantryIgnore Actor when MovingGetComponentByClass)在 SpawnActorIntoCurrentArea 失败时,都能通过 SpawnActorIntoCurrentArea 结果的 IsValid 检查正确门控,防止空访问错误。 [/] []修复了 EventGraph 中的 CheckWallInfantry 事件:用 Array_IsValidIndex 检查加一个新的 CheckWallUnit 函数替换了不安全的 SAFE GET 方法,该函数正确地在执行基础的 IsValid 检查后面门控 GetComponentByClassIsPieceRemovedRemovePiece — 消除了城墙角色或其可摧毁组件无效时的空访问错误。 [/] []蓝图运行时错误总数减少了 90%。 [/] [/列表]

2.9.6

[b]城墙步兵生成系统重构[/b] [列表] []将三个重复的城墙生成循环(循环 A、B、C)合并为一个使用 InfantryPerWall 作为每个城墙段生成数量的循环 C。 [/] []增加了 InfantryPerWall 变量,用于独立于驻军步兵控制城墙步兵密度。 [/] []增加了 LENGTH > 0 分支,将有城墙基地的生成与无城墙基地的生成分开: [列表] []有城墙基地 → 循环 C(城墙步兵)+ BeaconSpawn(驻军) [/] []无城墙基地 → AreaSpawn(随机内部生成) [/] [/列表][/] []修复了使用硬编码 SpawnRadius + 10000 阈值的距离过滤循环 — 现替换为仅使用 SpawnRadius,这样每个生成器实例都能正确过滤属于自己基地的城墙角色,而不是收集整个地图的所有城墙角色。 [/] []修复了循环 A 在城墙角色过滤循环内部错误地调用 AreaSpawn 的问题。 [/] []修复了 SpawnCounter < InfantryPerWall 分支错误地触发重复 AreaSpawn 调用的问题。 [/] []城墙步兵现在以符合每个城墙段 InfantryPerWall 设置的正确密度生成。"注意:某些生成点的"区域生成"可能相互重叠,因此在某些情况下,城墙上的步兵数量可能超过指定值,或者在另一些情况下,可放置的步兵会耗尽,导致城墙空白。因此,增加步兵数量以将更多步兵推到空城墙上,找到你的最佳设置。" [/] [/列表]

2.9.7

[列表] []修复了 II_Projectile Setup 事件:为 ProjectileMovement 组件添加了带有 Retriggerable Delay 重试的 IsValid 检查 — 防止在 Setup 在继承组件初始化之前触发时出现空访问错误。 [/] []修复了 Infantry_Master_Pawn HandleDamage:在 Matches Tag 检查之前,为 GetAsset 返回值添加了 IsValid + Boolean AND 门控 — 防止伤害源没有武器资源时的空访问错误。所有运行时错误已消除。 [/] [/列表]

2.9.7.7

[列表] []将 SRM 的伤害改为 0.05,地狱火改为 0.05,步枪保持不变,热量保持为 1。 [/] []将地面友军步兵增加到 30000k,保留城墙友军步兵为 12k。"它们看起来运行良好"。问题似乎是靠近城墙的地面友军步兵,而远离城墙的地面友军步兵会开火。 [/] [/列表]

2.9.7.8

[列表] []将伤害改为:SRM 0.001,地狱火 0.001,热量 1.0,步枪 0.001。这应该有助于在大量步兵情况下进行缩放。 [/] []将 SRM 相对步枪的生成几率改为 30%,然后地狱火占生成 SRM 的 20%。 [/] []恢复了城墙步兵生成,这样如果你设置 1,应该生成 1 个,设置 2 则生成 2 个,极少会因驻军重叠而改变。"目前最佳状态"。待办事项:让城墙步兵在其城墙段再次被摧毁时坠落死亡,添加声音,尝试让机甲/坦克攻击敌人和友军步兵。 [/] [/列表]

2.9.7.9

[列表] []保持 printstrings 启用,禁用了所有其他,重新发布此测试版本。 [/] [/列表]

2.9.8

[列表] []将 "Getallactorsofclass" 放入一个数组 "缓存了它",这样它就不会每个 tick 都重新读取。 [/] []将两个 "set timer events" 设置为随机浮动范围,使它们不会同时运行,从而增加 tick 延迟。 [/] [/列表]

2.9.8.6

我测试的地图,无论 20 个步兵还是 500 个,都出现了极其严重的延迟。我意识到城墙角色的报告数量因某种原因为 255,所以这看起来是随机性导致的。我现在添加了一个节流阀,检查城墙角色是否超过 100,如果是,则将其大小调整为 100,而不是无限制的。我再次测试了该地图,结果是可玩的,"有轻微延迟"。这还可以接受,因为你可以适应并继续游玩其他地图,这些地图如果没有像完美风暴那样设置错误或奇怪的话。请告诉我你们在最多 100 个城墙角色下的体验。如果你们仍然看到大量延迟,我可能会增加一个变量,让你可以设置自己的限制并找到最佳点。

2.9.8.7

[列表] []相同内容,只是将城墙角色上限降低到 75,以适应那些配置较低的玩家。 [/] [/列表]

2.9.8.8

移除了城墙生成的生成半径中额外的 10k 半径。现在在超级城市中生成正常了。

2.9.8.9

增加了一个 Wall Spawn Stride(城墙生成步幅)。这将允许你输入 1 到 20,因此 1 表示使用每面城墙,2 表示每隔一面城墙,3 表示每隔两面城墙,依此类推。如果延迟是由我的模组引起的,这就是你调整它的方法,它能有效缩减城墙角色数组。

2.9.9

[列表] []火焰喷射器现在可以杀死步兵了。之前热量伤害的 false 值在步兵伤害逻辑中没有起作用,不确定为什么,接上之后它们就开始死亡了。"仍在研究音效"。 [/] [/列表]

2.9.9.1

[列表] []完全重写了 infantry_master_pawn 中的 HANDLEDAMAGE(处理伤害),增加了弹道和导弹伤害变量以及指向伤害源对象的引脚。暂时移除了我所有的音效相关代码,稍后会再处理,以确保在添加 Wall Spawn Stride 后不会引起不必要的延迟。必须保存到 mod infantrylivingcomponent 以适应该更改。 [/] [/列表]

2.9.9.5

[列表] []为步枪/地狱火 / SRM 增加了伤害变量。 [/] []修复了 SRM / 地狱火的生成,之前设置不正确。现在应该是:90% 是步枪,然后剩余的 10% 中的 20% 是地狱火。 [/] []降低了 SRM / 地狱火 / 步枪的飞行速度,它们之前太快了。现在分别是 8000 / 8000 / 15000。 [/] []我还没有测试过 0,但它已经在范围内了,所以如果有人尝试 0 伤害,请告诉我是否有效。 [/] [/列表]

2.9.9.9

[列表] []终于添加了步兵音效,现在可以听到机枪手击中你的声音了 "献给所有觉得他们没有开火的人"。保留了死亡音效和其他对话,但音量较低,不过确实存在。 [/] []修复了地狱火凝胶发射器,现在看起来应该更好。 [/] [/列表]

3.0.0

[列表] []现在可以将伤害设为 0.0。 [/] [/列表]

3.0.3

[列表] []地狱火凝胶燃烧效果完全恢复,并能保持在机甲上。这个实现非常困难。 [/] [/列表]

3.06

[列表] []将步枪命中音效的音量降低了一半。 [/] []增加了一个变量,可以禁止生成 Beacon Spawn 和 Garrison Spawn,只生成我的城墙步兵。勾选即可生成所有内容,取消勾选则不生成。这为使用"每城墙步兵数"提供了更多理由。 [/] [/列表]

3.1.7

[列表] [][b]Rothes_Armies — 城墙步兵系统大修[/b] [b]独占城墙所有权[/b] [列表] []在 InfantryManagerSpawnerComponent 中创建了新的蓝图函数 IsClosestGarrisonToWall。 [/] []该函数通过在所有 InfantryManager_BP 实例之间使用 GetDistanceTo 比较,判断该驻军是否是距离给定城墙最近的驻军。 [/] []为 InfantryManagerSpawnerComponent 添加了 ClaimedWallActors(Modular_Wall_Parent 数组)变量作为共享所有权注册表。 [/] []每面城墙由最近的驻军先到先得 — 后续的驻军看到它已被认领就会跳过它。 [/] []消除了多个驻军认领同一城墙段导致的重复步兵生成。 [/] [/列表] [b]城墙过滤器重构[/b] [列表] []重新排序了执行流程:循环 A(Z 过滤器) → 新的 Foreach 循环(所有权过滤器) → SET WallActors → 循环 C(生成)。 [/] []添加了 OwnedWalls / L_OwnedWalls 缓冲区数组,防止在迭代过程中修改 WallActors。 [/] []新的 foreach 循环现在迭代经过 Z 过滤的 WallActors(而不是原始的 CachedAllWallActors),以确保正确的过滤顺序。 [/] []从城墙 foreach 循环中移除了旧的 SpawnRadius + 10000 距离门控 — 完全由所有权函数替代。 [/] [/列表] [b]步兵表面着陆(线迹)[/b] [列表] []在 ExecuteSpawn 调用之前的 ProcessSpawnQueue 事件中添加了 LineTraceByChannel。 [/] []从计算出的生成位置向下追踪 5000 个单位。 [/] []命中时 → 使用 Impact Point 作为最终生成位置(步兵贴合城墙表面着陆)。 [/] []未命中时 → 回退到原始计算出的生成位置。 [/] []消除了步兵漂浮在城墙表面的问题。 [/] [/列表] [b]调试 / 基础设施[/b] [列表] []确认 InfantryManager_BP.ManagerConfigured 覆盖被 C++ 父类锁定 — 不能用作注入点。 [/] []确认 InfantryManager_BP 上的 BeginPlay 在每个驻军的生成器 ManagerConfigured 之后触发 — 不适合预分配。 [/] []确认生成器组件上的 GetOwner 正确返回 InfantryManager_BP 角色。 [/] []确认 MWGameInstance 仅是 C++ 类 — 不能直接添加变量。 [/] []移除了 Z 过滤器阈值问题 — 降低/移除了严格的 Z >= 10000 门控,该门控曾导致某些地图上所有城墙被拒绝。 [/] []在测试期间添加和移除了各种调试 Print String 节点(待清理)。 [/] [/列表] [b]待清理事项[/b] [列表] []从 ManagerConfigured-doneIsClosestGarrisonToWall-done 中移除所有调试 Print String 节点。 [/] [/列表] [/] [/列表]

3.1.8

[列表] []修复了当没有信标生成和区域生成启用时,城墙步兵不开火的问题。在城墙生成的最后添加了 "调用生成完成"。 [/] [/列表]

3.2.0

[列表] []我想出了一个替代方法:将最大步兵数降低到 2 而不是 20,这样你可以设置 1-2。所有驻军将只有 1-2 个步兵,而城墙步兵从未计入总步兵数。这是针对驻军的。如果你启用无信标生成、无驻军,它将只执行此操作并生成城墙步兵,但它们将不开火,仅用于装饰。所以,基本上,如果你只想让城墙步兵活跃并从,不要勾选那个框,只需将最小值和最大值都设为 2 "这是我最好的办法"。这样,在驻军处生成 2 个步兵应该是最小的影响。然后你可以使用 INFANTRY WALL SPRAWL(步兵城墙密度)来使用每面城墙或每隔一面城墙等。 [/] [/列表]

3.2.1

[列表] [/] []将部分城墙生成逻辑拆分成一个函数,以帮助确保最近的步兵驻军认领最近的城墙。这主要有助于防御任务,但也确保了不会有重复的驻军出现在城墙上。这也是导致某些任务出现大部分延迟的原因,并且你可能会在一个城墙段上看到 2-6 个额外的步兵,而实际上你每面城墙只设置了 1 个。所以希望如果你使用高步兵城墙密度,你现在可以降低它,以在每面城墙上获得更多步兵而不会产生延迟。希望能得到一些反馈。 [/] []我做的另一件大事是缩小了步兵的烟雾轨迹和导弹头部,看起来好多了。 [/] []还将步枪兵恢复为 "原版" 的枪手,以观察他们是否执行完整的射击动画。也希望能得到这方面的反馈。 [/] []总的来说,这应该是一个不错的更新,也能提升性能。 [/*] [/列表]

3.2.2

[列表] []终于找到了修复城墙被摧毁后步兵漂浮问题的位置。现在他们会旋转着坠落而死。 [/] [/列表]

3.2.3

[列表] []修复了区域生成,它之前不再工作了。 [/] [/列表]

3.2.6

[列表] []增加了移除步兵图标的选项。勾选将移除步兵头上的图标,取消勾选则显示图标。 [/] []恢复了步枪的枪口火焰。 [/] [/列表]