M奥M 发表于 2024-1-25 11:16

英雄连3 控制台脚本v2.0

本帖最后由 M奥M 于 2025-1-17 01:23 编辑

由于 CheatCommands Mod 无法战役使用,对于仓鼠玩家并不友好,在此分享自用脚本。





cheat.lua是控制台脚本。
sbp.txt是部分单位sbp名单。
ebp.txt是部分建筑ebp名单。
abp.txt是部分能力abp名单。
readme.txt是这个说明。

首先将cheat文件夹放入游戏根目录,像是这样:
"D:\Company of Heroes 3\cheat\cheat.lua"

然后创建启动文件快捷方式,右键点击快捷方式属性,目标一行最后面添加 -dev -nomovies,像是这样:
"D:\Company of Heroes 3\RelicCoH3.exe" -dev -nomovies
-dev启用带控制台的开发者模式,-nomovies跳过游戏启动动画。

每局游戏开始后CTRL+SHIFT+~打开控制台,输入dofile("cheat/cheat.lua"),控制台显示cheat activated说明开启成功,再次按下CTRL+SHIFT+~关闭控制台。

功能列表:
-1. CTRL+SHIFT+~ 启用/停用控制台
0. 控制台输入dofile("cheat/cheat.lua") 启用脚本
1. CONTROL+U 解锁建造限制
2. CONTROL+B 启用/隐藏/停用自定义指挥官技能
3. CONTROL+F 启用/停用战争迷雾
4. CONTROL+M 资源增加
5. CONTROL+P 启用/停用人口超控
6. CONTROL+E 启用/停用快速生产
7. CONTROL+W 启用/停用快速建筑
8. CONTROL+Q 启用/停用冷却缩减
9. CONTROL+H 治疗单位/建筑
10. CONTROL+I 启用/停用单位/建筑无敌
11. CONTROL+UP 升星单位
12. CONTROL+DOWN 移除单位升级
13. CONTROL+G 丢弃单位武器
14. CONTROL+T 瞬移单位/建筑
15. CONTROL+SHIFT+T 瞬移单位/建筑
16. CONTROL+R 旋转单位/建筑
17. CONTROL+SHIFT+R 旋转单位/建筑
18. CONTROL+DELETE 杀死单位/建筑
19. CONTROL+SHIFT+DELETE 湮灭单位/建筑
20. CONTROL+N 生成自定义单位
21. CONTROL+C 复制单位/建筑
22. CONTROL+V 粘贴单位/建筑
23. CONTROL+SHIFT+C 复制单位/建筑所有者
24. CONTROL+SHIFT+V 粘贴单位/建筑所有者
25. CONTROL+PAGEUP 战役立刻胜利
26. CONTROL+PAGEDOWN 战役立刻失败
27. 控制台输入lock("name") 解锁/移除/默认/锁定name科技
28. 控制台输入spawn("name",(id)) 生成id拥有的name单位/建筑

详细说明:
-1. CTRL+SHIFT+~ 启用/停用lua控制台。
--开发者模式。
0. 控制台输入dofile("cheat/cheat.lua") 启用cheat.lua脚本。
--最厉害的海盗。
1. CONTROL+U或在控制台输入sosayweall 解锁所有战役建造限制,没想到好的关闭方法,所以使用前记得保存。
--你的游戏。
2. CONTROL+B或在控制台输入iamironman 启用/隐藏/停用自定义指挥官技能。定义在cheat.lua中g_cheat_bonus_command_list里,第一项为指挥官能力id,第二项为遭遇战中指挥官能力所需前置升级项,第三项为是否要隐藏。更多指挥官能力见abp.txt。
--风灵月影宗。
3. CONTROL+F或在控制台输入tooktheredpill 为玩家启用/停用战争迷雾。个别战役如果报错,关闭报错提示后启用战争迷雾,恢复后过一会再启用就好了。
--索伦邪眼。
4. CONTROL+M或在控制台输入showmethemoney 为玩家增加9999人力、弹药、燃料、指挥点数。
--买下银行。
5. CONTROL+P或在控制台输入pointbreak 为玩家启用/停用人口上限超控999。
--我即是虫群。
6. CONTROL+E或在控制台输入catfoodforprawnguns 为玩家启用/停用单位快速生产。
--996。
7. CONTROL+W或在控制台输入warpten 为玩家启用/停用快速建筑。
--996。
8. CONTROL+Q或在控制台输入hanshotfirst 为玩家启用/停用技能快速冷却。北非德军召唤技能开局需要等待一个完整周期后才可以快速冷却。
--时空提速。
9. CONTROL+H或在控制台输入imadoctornotaroachjim 治疗当前所选单位/建筑。
--满血复活。
10. CONTROL+I或在控制台输入whosyourdaddy 切换当前所选单位/建筑无敌状态。
--但是代价是什么呢?
11. CONTROL+UP或在控制台输入sharpandshiny 当前所选单位老练度提升一星。
--快速升级。
12. CONTROL+DOWN或在控制台输入medievalman 移除当前所选单位购买的升级。
--重新升级。
13. CONTROL+G或在控制台输入expelliarmus 丢弃当前所选单位持有的武器。
--除你武器。
14. CONTROL+T或在控制台输入zeleport 瞬移当前所选单位/建筑到屏幕中央。移动部分建筑可能会出现问题。
--时空跃迁。
15. CONTROL+SHIFT+T或在控制台输入zeleport_internal 瞬移之前复制不可选中的实体到屏幕中央。如沙袋墙等。
--时空跃迁。
16. CONTROL+R或在控制台输入russianroulette 旋转当前所选单位/建筑朝屏幕中央。旋转部分建筑可能会出现问题。
--建筑党福音。
17. CONTROL+SHIFT+R或在控制台输入russianroulette_internal 旋转之前复制不可选中的实体朝屏幕中央。如沙袋墙等。
--建筑党福音。
18. CONTROL+DELETE或在控制台输入youshallnotpass 杀死当前所选单位/建筑,若未选中则目标为屏幕中心实体。
--原力锁喉。
19. CONTROL+SHIFT+DELETE或在控制台输入thesnap 湮灭当前所选单位/建筑,若未选中则目标为屏幕中心实体。
--我即是天命。
20. CONTROL+N或在控制台输入theblip 在屏幕中央生成自定义单位。定义在cheat.lua中g_cheat_spawn_list里。更多单位见sbp.txt。
--我就是埃蒙。
21. CONTROL+C或在控制台输入copy 复制当前所选单位/建筑到剪贴板,若未选中则目标为屏幕中心实体。在控制台中显示复制的单位/建筑/所有者信息。
--克隆人之战。
22. CONTROL+V或在控制台输入paste 在屏幕中央粘贴剪贴板中的单位/建筑。
--可再生资源。
23. CONTROL+SHIFT+C或在控制台输入copyowner 复制当前所选单位/建筑所有者到剪贴板。在控制台中显示复制的所有者信息,未选中时将复制所有者为世界。
--刷上油漆。
24. CONTROL+SHIFT+V或在控制台输入pasteowner 将当前所选单位/建筑所有者变更为之前复制的。个别战役转换AI生产建筑可能报错,关闭报错提示后转换为原来的就好了。
--刷上油漆。
25. CONTROL+PAGEUP或在控制台输入whatisbestinlife 战役立刻胜利。只能用于战役。
--快速通关。
26. CONTROL+PAGEDOWN或在控制台输入letsjustbugoutandcalliteven 战役立刻失败。敌方玩家不存在时会报错。
--快速失败。
27. 控制台输入lock("name") 切换name科技状态为解锁/移除/默认/锁定。例子:解锁空军支援中心升级 lock("air_support_center_us")
--可以同时拥有三种支援中心。
28. 控制台输入spawn("name",(id)) 在屏幕中央生成id(可选)拥有的name单位/建筑,未输入id时默认为中立。例子:spawn("engineer_us",1)生成1号玩家(一般是玩家)拥有的工兵队,spawn("w_flamethrower_engineer_us")生成中立的M2喷火器,spawn("base_defense_us",2)生成2号玩家(一般是敌方)拥有的重机枪掩体,更多单位sbp/建筑ebp见sbp.txt/ebp.txt,或者复制时留意控制台。
--不小心生成了红色盒子复制粘贴一下就好了。

按键绑定可在cheat.lua脚本末尾修改。
控制台输出可前往"文档\My Games\Company of Heroes 3\warnings.log"末尾实时复制。
全部单位sbp/建筑ebp/科技upgrade/能力abilities可以在根目录EssenceEditor.exe -> Continue Without A Mod -> Attributes -> Open Attributes -> Attributes查看,或用Janne的Essence.ArchiveViewer解包"D:\Company of Heroes 3\anvil\archives\Attrib.sga"即可查看。
具体单位属性可以参考R5M240大佬的数据汇总:https://www.bilibili.com/opus/853070240004702240

scar控制台输入以下代码查看玩家拥有的科技ubp:
for i=0,BP_GetPropertyBagGroupCount(PBG_Upgrade)-1 do
    local name = BP_GetPropertyBagGroupPathName(PBG_Upgrade,i)
    if Player_HasUpgrade(Game_GetLocalPlayer(),BP_GetUpgradeBlueprint(name)) then
      print(name)
    end
end
scar控制台输入以下代码查看玩家拥有的能力abp:
for i=0,BP_GetPropertyBagGroupCount(PBG_Ability)-1 do
    local name = BP_GetPropertyBagGroupPathName(PBG_Ability,i)
    if Player_HasAbility(Game_GetLocalPlayer(),BP_GetAbilityBlueprint(name)) then
      print(name)
    end
end

cheat.lua脚本基于v1.4.2.21612开发,理论上兼容所有版本,后面的版本如果报错截图控制台和错误信息,论坛上各位大佬估计知道咋改,咕咕咕。如果报错的话关闭控制台后ESC暂停再开始就好了。水雷帝国时代4和英雄连3直接用lua控制台脚本都有bug会闪退,cheat.lua代码中大家可以看到我实际上用lua控制台(CTRL+SHIFT+~)侧载了scar控制台(ALT+SHIFT+`),真正功能实现都是在scar控制台中所以也可用scar控制台直接调用Cheat开头的scar方法,有更好方法实现欢迎修改。所有生成方法调用了precache预缓存,这样即使未出现在本局游戏中的物体也不会有模型未加载的红盒子问题,已经和Janne说了。脚本中所调用方法部分来源于水雷3部英雄连官方脚本文档,部分来源于水雷帝国时代4官方脚本文档,部分来源于CheatCommands Mod作者Janne的gitbub:https://github.com/Janne252/coh3-scar-types。我水平太菜无法做成像CheatCommands Mod那种图形化修改器,但是现在至少我们能在战役中生成大猫猫了,好耶!

如果你觉得这个脚本有点意思,不妨请作者吃顿饭吧,欢迎打赏!
https://att.blacksheepgame.com/att/forum/202406/28/112029pyzqb6tz9sooo99h.jpg

M奥M 发表于 2025-1-16 21:33

v1.0:
由于 CheatCommands Mod 无法战役使用,对于仓鼠玩家并不友好,在此分享自用脚本。
欢迎转载,但务必标明出处。
https://att.blacksheepgame.com/att/forum/202401/25/110900mkupuhv7fiyvu97z.jpg
https://att.blacksheepgame.com/att/forum/202401/25/110821umbqnr0b5m5q2wr2.jpg
首先创建启动文件快捷方式,右键点击快捷方式属性,目标一行最后面添加 -dev -nomovies,-dev启用带控制台的开发者模式,-nomovies跳过游戏启动动画。
像是这样:
D:\CoH3\RelicCoH3.exe -dev -nomovies

ALT+SHIFT+`(1左边那个键),打开SCAR控制台,注意不是Ctrl+shift+`。

其他作弊码输入:
1. 只为玩家移除战争迷雾:FOW_PlayerRevealAll(Game_GetLocalPlayer())
为什么不是其他人发的FOW_RevealAll呢?因为只允许我开视野,AI不许看。可以自行用电脑反坦克炮等测试,是的,就是这么不要脸。
2. 重新为玩家启用战争迷雾:FOW_PlayerUnRevealAll(Game_GetLocalPlayer())
为什么要重新启用战争迷雾呢?因为个别战役移除战争迷雾后AI不出兵,要先启用一下。
3. 命令点8888或者上限:Player_SetResource(Game_GetLocalPlayer(), RT_Command, 8888)
4. 人力8888或者上限:Player_SetResource(Game_GetLocalPlayer(), RT_Manpower, 8888)
5. 弹药8888或者上限:Player_SetResource(Game_GetLocalPlayer(), RT_Munition, 8888)
6. 燃料8888或者上限:Player_SetResource(Game_GetLocalPlayer(), RT_Fuel, 8888)
7. 人力上限888:Player_SetPopCapOverride(Game_GetLocalPlayer(), 888)
8. 设定游戏速度 (默认是10):setsimrate(10)

自用脚本:
由于没有找到像前两代和帝国时代中dofile("f.scar")那种直接加载文件的方法(有更好的方法欢迎修改),并且单次复制有长度限制,所以只能打开控制台依次复制并回车以下每一段分隔符分割内容:
--------------------------------------------------------------------
sgtmp=SGroup_Create("sgtmp")
egtmp=EGroup_Create("egtmp")
lplayer=Game_GetLocalPlayer()
for i = 1, World_GetPlayerCount() do
      tmpp = World_GetPlayerAt(i)
      tmpt = Player_GetTeam(tmpp)
      if tmpt ~= Player_GetTeam(lplayer) then eplayer = tmpp break end
end
--------------------------------------------------------------------
--重新加载之前使用过脚本的存档时请不要复制上面这一段
--------------------------------------------------------------------
function select()
      Misc_GetSelectedSquads(sgtmp, false)
      Misc_GetSelectedEntities(egtmp, false)
end
function getcur()
      select()
      if EGroup_IsEmpty(egtmp) then return SGroup_GetPosition(sgtmp) end
      return EGroup_GetPosition(egtmp)
end
--------------------------------------------------------------------
function getpos() pos=getcur() end
function getto() to=getcur() end
function lock(ubp)
      if ulock~=ITEM_UNLOCKED then ulock=ITEM_UNLOCKED else ulock=ITEM_DEFAULT end
      Player_SetUpgradeAvailability(lplayer, BP_GetUpgradeBlueprint(ubp), ulock)
      print(ulock)
end
function de()
      select()
      SGroup_ForEach(sgtmp,
                function(gid, idx ,squad)
                        for i, k in pairs(Squad_GetActiveUpgrades(squad)) do
                              Squad_RemoveUpgrade(squad,k)
                        end
                end
      )
end
--------------------------------------------------------------------
function up(ubp)
      if uc then Player_RemoveUpgrade(lplayer,BP_GetUpgradeBlueprint(ubp))
      else Cmd_InstantUpgrade(lplayer,BP_GetUpgradeBlueprint(ubp)) end
      uc=not uc      print(uc)
end
function spawns(sbp) Squad_CreateAndSpawnToward(BP_GetSquadBlueprint(sbp), lplayer, 0, pos, pos) end
function spawne(ebp, owner)
      etmp=Entity_CreateFacing(BP_GetEntityBlueprint(ebp), lplayer, pos, to, true)
      Entity_ForceSelfConstruct(etmp)
      if not owner then Entity_SetWorldOwned(etmp) end
      Entity_Spawn(etmp)
end
--------------------------------------------------------------------
function turn(o)
      select()
      if not o then EGroup_SetWorldOwned(egtmp) SGroup_SetWorldOwned(sgtmp)
      else
                if o==1 then o=lplayer else o=eplayer end
                Util_SetPlayerOwner(egtmp,o)
                Util_SetPlayerOwner(sgtmp,o)
      end
end
function tele()
      select()
      SGroup_ForEach(sgtmp,function(sgid,idx,squad) Squad_SetPosition(squad,pos,pos) end)
      EGroup_ForEach(egtmp,function(egid, idx, entity) Entity_SetPosition(entity, pos) end)
end
function clear()
      select()
      EGroup_DestroyAllEntities(egtmp)
end
--------------------------------------------------------------------
function health()
      select()
      SGroup_ForEach(sgtmp,function(sgid,idx,squad) Squad_SetHealth(squad,1) end)
      EGroup_ForEach(egtmp,function(egid,idx,entity) Entity_SetHealth(entity,1) end)
end
function renew()
      select()
      EGroup_ForEach(egtmp,function(egid, idx, entity)
                etmp=Entity_Create(Entity_GetBlueprint(entity), lplayer, Entity_GetPosition(entity), true)
                Entity_ForceSelfConstruct(etmp)
                Entity_SetHeading(etmp,Entity_GetHeading(entity),false)
                Entity_Spawn(etmp)
                end
      )
      clear()
end
--------------------------------------------------------------------
function dup(num)
      if not num then num=1 end
      getpos()
      SGroup_ForEach(sgtmp, function(gid, idx ,squad) for i=1,num do Squad_CreateAndSpawnToward(Squad_GetBlueprint(squad), Util_GetPlayerOwner(squad), 0, pos, pos) end end)
end
function drop()
      select()
      SGroup_ForEach(sgtmp,
                function(gid, idx ,squad)
                        for i, k in pairs(Squad_GetAttachedWeapons(squad)) do
                              Entity_Destroy(k) Entity_Spawn(Entity_Create(Entity_GetBlueprint(k), lplayer, Entity_GetPosition(k), true))
                        end
                end
      )
end
--------------------------------------------------------------------
function cd()
for i,k in pairs(ABILITY) do if (k~=ABILITY.__skipsave) then for key,abp in pairs(k) do
if CD then Modify_AbilityRechargeTime(Game_GetLocalPlayer(),abp,100) else Modify_AbilityRechargeTime(Game_GetLocalPlayer(),abp,0.01)
end end end end
CD = not CD print(CD)
end
function add(abp)
Player_AddAbility(lplayer,BP_GetAbilityBlueprint(abp))
if as==ITEM_DEFAULT then as=ITEM_REMOVED else as=ITEM_DEFAULT end
Player_SetAbilityAvailability(lplayer,BP_GetAbilityBlueprint(abp),as)
print(as)
end
--------------------------------------------------------------------
function gc(confirm)
      World_GetNeutralEntitiesNearPoint(egtmp,pos,1)
      EGroup_ForEach(egtmp,function(gid,idx,entity)
                if not confirm then print("entity:      "..BP_GetName(Entity_GetBlueprint(entity)))
                else Entity_Destroy(entity) end end
      )
end
function get(ot)
      if not ot then ot=OT_Neutral
      else ot=OT_Player end
      getpos()
      World_GetEntitiesNearPoint(lplayer,egtmp,pos,5,ot)
      EGroup_ForEach(egtmp, function(gid, idx ,entity) print("entity:      "..BP_GetName(Entity_GetBlueprint(entity)))end)
end
--------------------------------------------------------------------
function getname()
      select()
      SGroup_ForEach(sgtmp,
                function(gid, idx ,squad)
                        print("squad:      "..BP_GetName(Squad_GetBlueprint(squad)))
                        for i, k in pairs(Squad_GetAttachedWeapons(squad)) do print("weapon:      "..BP_GetName(Entity_GetBlueprint(k))) end
                        for i, k in pairs(Squad_GetActiveUpgrades(squad)) do print(i) end
                end
      )
      EGroup_ForEach(egtmp,
                function(gid, idx ,entity)
                        print("entity:      "..BP_GetName(Entity_GetBlueprint(entity)))
                end
      )
end
--------------------------------------------------------------------
function copy()
      select()
      SGroup_ForEach(sgtmp,
                function(gid, idx ,squad)
                        tsbp=Squad_GetBlueprint(squad)
                        tplayer=Util_GetPlayerOwner(sgtmp)
                end
      )
end
function paste(num)
      if not num then num=1 end
      for i=1,num do Squad_CreateAndSpawnToward(tsbp, tplayer, 0, pos, pos) end
end
--------------------------------------------------------------------

功能及使用说明:
复制并回车上面脚本内容后,仍然ALT+SHIFT+`开启控制台。
1. 将当前选中的小队或实体暂存,输入:select
这功能玩家应该用不到,其他方法会调用这个所以也别删。
2. 将当前选中的小队或实体的位置暂存,输入:getcur
同上。
3. 保存当前选中的小队或实体的位置,输入:getpos
这个有用后面会用到。
4. 保存当前选中的小队或实体的朝向,输入:getto
同上。
5. 在之前getpos所保存的位置生成目标小队,例子:spawns("tiger_ger")
是大猫猫!调用此方法前务必调用过getpos,否则会报错(虽然报错了确定再输一遍就好了),小队id参见后文。
另外模型在当前游戏未加载可能会出现粉色盒子,比如美军和英军对战,大猫猫可能就不好乱入,太遗憾了。
CheatCommands Mod要求场上同时出现所有阵营以避免这个问题。
6. 在之前getpos所保存的位置面向getto保存的朝向生成实体,例子:spawne("hq_us",1)
第一个参数是实体id,第二个参数是玩家id,实体id参见后文,其他说明同上。
逃跑的美军太多了以至于都可以建一个美军总部了?spawne("hq_us",1)
也许生成一个中立的火药桶?spawne("explode_red_barrel_axis_02")
总部区域来一个+30人力的医疗站战略点,为什么不呢?spawne("territory_medic_station_ak")
7. 转变当前所选中小队或实体的阵营,例子:turn(3)
参数为玩家id,但其实没有真的实现id,turn(1)变为玩家阵营,turn(其他数字)变为敌方阵营,单纯输入turn转变为中立。
这个功能的意义在于不小心生成了粉色盒子就把它干掉,或者看某个单位不顺眼就指着他们给其他单位练级。
8. 重复生成多个当前所选中的小队,例子:dup(5)
有丝分裂!
9. 瞬移当前所选中小队或实体到之前getpos所保存的位置,输入:tele
没啥好说的,会跑的地堡。
10. 当前所选中小队或实体生命100%,输入:health
满血复活!
11. 重置当前所选中的实体,输入:renew
哦我的上帝,瞧瞧那栋被炸的千疮百孔的教堂,我是说也许我们应该修复它,不是吗?
12. 移除当前所选中的实体,输入:clear
移除不小心生成的粉色盒子建筑,或者别的看起来不顺眼的战略旗杆,或者总部废墟。
13. 复制当前所选小队,输入:copy
小队的意思是步兵,载具之类的,实体的意思是物体,建筑之类的。
14. 在之前getpos所保存的位置粘贴之前copy的小队,输入:paste
好像在哪见过。
15. 移除当前所选中小队的所有升级,输入:de
一把喷火器不够烧?移除升级再买一把!
16. 丢弃当前选中小队持有的武器,输入:drop
这些最新的榴弹发射器完全超越了老式喷火器。
17. 强制解锁升级项,例子:lock("air_support_center_us")
调用一次解锁,第二次恢复默认,可能的使用场景:
lock("air_support_center_us")
lock("mechanized_support_center_us")
lock("infantry_support_center_us")
我玩美军就是要同时有三种支援中心,这有助于攻打石油,单位技能同理,升级项id参见后文。
18. 调用一次强制升级升级项,第二次移除,例子:up("INFANTRY_LEFT_3A_RANGER_WEAPON_TRAINING_US")
和lock有什么区别?lock能解锁看得见能按的升级项,但是另外4个阵营140个指挥官技能呢?我全都要!
注意:留意控制台输出,true代表启用,false代表移除。部分战役特定节点指挥官技能无法显示(功能还在),建议先在遭遇战模式下实验。
本作中几乎所有指挥官技能都需要同时拥有对应技能升级(upgrade)和能力(ability)以在屏幕上显示,除非你知道自己在做什么,否则总是和下面的add结伴使用。
19. 调用一次添加能力,第二次移除,例子:add("INFANTRY_LEFT_3A_RANGER_WEAPON_TRAINING_US")
你买了游戏凭什么不能在战役中使用重锤坚盾DLC?
注意:留意控制台输出,availability(3)代表默认,availability(2)代表移除。除非你知道自己在做什么,否则总是和上面的up结伴使用。其他同上。
20. 技能冷却缩减99%,调用一次启用,第二次恢复,输入:cd
源自星灵的时空提速。
21. 开发者方法-显示当前选中小队或实体的id信息,输入:getname
留意控制台,squad:      之后的是小队id,weapon:      之后的是小队持有的武器实体id,upgrade:      之后的是小队激活的升级项id,entity:之后的是实体id。
SCAR控制台输出内容在"文档\My Games\Company of Heroes 3\warnings.log"末尾实时更新,可前往复制
版本号不是1.4.2的玩家不要担心后文提供的id和你的游戏无法对应,用这个方法获得你专属的id列表,人人都是顶级黑客。
22. 开发者方法-显示当前选中小队半径5m内所有实体id,输入get
参数为玩家id,不输入参数时默认获取自然实体id。部分实体有所属阵营,比如玩家建筑或者战役教程关中的船,使用get(1)获取此类实体id。
这颗树可太树了,我喜欢这颗树,但是我选中不了它,怎么查看它的id呢?用这个方法,其他说明同上。
23. 难用的方法-移除之前getpos所保存的位置半径1m内的实体,输入gc
参数为是否确认移除。这个方法的作用是地图上有一坨建筑废墟,无法选中挡住了路,那么让一个单位过去getpos获得它的位置,输入gc,留意控制台中显示的是否是这个废墟的实体,如果是再输入gc(1)确认移除。

------------------------------------------------
小队id列表:
第一项为小队id,使用spawns来生成,第二项为武器的实体id,使用spawne来生成。大部分id由getname获取。
例子:生成工兵队spawns("engineer_us"),生成M2喷火器spawne("w_flamethrower_engineer_us")
具体单位属性可以参考R5M240大佬的数据汇总:英雄连3数据汇总——美军篇P1 - 哔哩哔哩 (bilibili.com)
------------------------------------------------
侦察小队
scout_us
侦察队
pathfinder_us
火炮观察员小队
artillery_observers_us
工兵队
engineer_us      w_flamethrower_engineer_us
突击工兵
assault_engineer_us
上尉护卫队
captain_us      w_m1919a6_paratrooper_us

步枪部队
riflemen_us      w_bar_riflemen_us
infantry_assault_riflemen_us
1/4吨4x4卡车
truck_4x4_us
M29“黄鼠狼”侦察车
m29_weasal_us
M1迫击炮班
mortar_81mm_us
M1组合榴弹炮小队
pack_howitzer_75mm_us

M1919机枪班
hmg_30cal_us
hmg_30cal_paradrop_us
巴祖卡火箭筒队
bazooka_team_us      w_bazooka_bazooka_team_us
infantry_assault_bazooka_team_us      w_not_droppable_bazooka_bazooka_team_us
伞兵队
paratrooper_us      w_bazooka_paratroopers_us      w_m1919a6_paratrooper_us
SSF突击队
ssf_commandos_us      w_m1941_lmg_devils_brigade_us      w_bazooka_devils_brigade_us
游骑兵
ranger_us      w_m1919a6_riflemen_us
狙击手
sniper_us
M3装甲运兵车
halftrack_us
M16式多用途自行火炮
halftrack_quad_us
M3式75毫米自行火炮
halftrack_75mm_us
M3装甲医疗半履带车
halftrack_medical_us

M8“灰狗”装甲车
greyhound_us
M8斯科特自行火炮
scott_us
M1反坦克炮小队
at_gun_57mm_us
at_gun_57mm_paradrop_us
M24“霞飞”轻型坦克
chaffee_us

M31坦克抢修车
recovery_vehicle_us
M4A1谢尔曼中型坦克
sherman_us
M4A1(76毫米)谢尔曼中型坦克
sherman_76mm_us
M4A3E8谢尔曼
sherman_easy_8_us
M4A1谢尔曼“自动导弹”
sherman_whizbang_us
M18“地狱猫”坦克歼击车
hellcat_us
M4(105毫米)谢尔曼推土机坦克
sherman_bulldozer_us

------------------------------------------------

先遣队
pioneer_ger      w_flamethrower_pioneer_ger
空降工兵小队
fallschirmpioneers_ger      w_mg15_jaeger_ger      w_grb_39_grenade_launcher_he_ger
炮兵军官
coastal_officer_ger
半履带摩托侦察车
kettenkrad_ger
2.5吨多功能卡车
truck_2_5_ger
2.5吨燃料卡车
truck_2_5_fuel_ger

掷弹兵班
grenadier_ger
grenadier_3man_ger
海岸预备队
coastal_reserves_ger
MG42机枪队
hmg_mg42_ger
MG42小队
hmg_mg42_ger_sp_gela
GrW34型迫击炮班
mortar_81mm_ger
LG40反坦克炮小队
at_gun_lg40_ger
狙击手
sniper_ger

猎兵小队
jaeger_ger      w_panzerschrek_stormtrooper_ger      
德国空降猎兵小队
fallschirmjagers_ger
221侦察车
armored_car_ger
八轮式装甲车
armored_car_8_rad_ger
L6/40轻型坦克
l6_40_ger
L6/40轻型火焰喷射坦克
l6_40_flame_ger
30式防空高射炮班
aa_gun_20mm_ger
旋风防空坦克
wirbelwind_ger
“黄鼠狼”III M型坦克歼击车
marder_iii_ger

装甲掷弹兵小队
panzergrenadier_ger
Pak40型反坦克炮小队
at_gun_75mm_ger
251中型运兵车
halftrack_ger
施图梅尔半履带车
halftrack_stummel_ger
医疗半履带车
halftrack_medical_ger
42型六管火箭发射器小队
nebelwerfer_150mm_ger
“黄蜂”自行火炮
wespe_ger
三号G型突击炮
stug_iii_ger
三号D型突击炮
stug_iii_d_ger

风暴突击队小队
stormtrooper_ger      w_mg42_stormtrooper_ger
四号中型坦克
panzer_iv_ger
四号中型指挥坦克
panzer_iv_cmd_ger
“灰熊”四号突击坦克
brummbar_ger
豹式重型坦克
panther_ger
虎式重型坦克
tiger_ger

------------------------------------------------

摩托化步兵小队
kradschutzen_motorcycle_ak
装甲掷弹兵小队
panzergrenadier_ak      w_lmg_panzergrenadier_ak
神射手小队
bersaglieri_ak      w_lmg_breda_m30_bersaglieri_ak
装甲工兵小队
panzerpioneer_ak      w_flamethrower_panzerpioneer_ak      w_grb_39_grenade_launcher_he_ak
突击工兵小队
guastatori_ak      w_flamethrower_guastatori_ak
250轻型运兵车
halftrack_250_ak
250/9装甲半履带车
halftrack_250_20mm_ak
迫击炮半履带车
halftrack_250_mortar_ak
222装甲车
armored_car_222_ak

突击掷弹兵班
assault_panzergrenadier_ak
MG34小队
hmg_mg34_ak
“坦克杀手”小队
panzerjaeger_inf_ak      w_panzerbuchse39_at_rifle_ak      w_lmg_panzerjaeger_ak
2.5吨多功能卡车
truck_2_5_ak
2.5吨医疗卡车
truck_2_5_medical_ak
高射炮半履带车
halftrack_7_flak_ak
Pak38型反坦克炮小队
at_gun_50mm_pak_38_ak
le.IG 18支援炮组
leig_75mm_ak
105毫米/28倍径加农榴弹炮
howitzer_cannone_da_105_ak

八轮式装甲车
armored_car_8_rad_ak
L6/40轻型坦克
l6_40_ak
M13/40轻型坦克
m13_40_ak
“黄鼠狼”III坦克歼击车型
marder_iii_ak
254侦察牵引车
armored_tractor_254_ak
塞莫凡提75/18突击炮
semovente_75_18_ak
三号D型突击炮
stug_iii_d_ak
三号G型突击炮
stug_iii_ak
18吨抢修半履带车
halftrack_recovery_ak

三号中型坦克
panzer_iii_37mm_ak
三号L型中型坦克
panzer_iii_ak
panzer_iii_50mm_long_ak
三号中型火焰喷射坦克
panzer_iii_flame_ak
36式反坦克高射炮班
at_gun_88mm_mobile_ak
陆上斯图卡火箭炮
halftrack_251_stuka_ak
Sd.Kfz.161/1四号坦克
panzer_iv_ak
四号中型指挥坦克
panzer_iv_command_ak
虎式重型坦克
tiger_ak

------------------------------------------------

皇家工兵班
sapper_africa_uk      w_flamethrower_sapper_africa_uk
维克斯重机枪
hmg_vickers_africa_uk

步兵班
tommy_africa_uk      w_boys_anti_tank_rifle_africa_uk      w_bren_lmg_africa_uk
廓尔喀步枪队
gurkhas_africa_uk      w_bren_lmg_gurkhas_uk
突击队
commando_africa_uk
突击队轻机枪队
commando_lmg_africa_uk      w_vickers_k_lmg_uk
ML 3英寸迫击炮班
mortar_81mm_africa_uk
ML 4.2英寸重型迫击炮班
mortar_heavy_4_2_africa_uk
M1组合榴弹炮小队
pack_howitzer_75mm_africa_uk
登高轻型侦察车
dingo_africa_uk

2磅轻型反坦克炮小队
at_gun_2pdr_africa_uk
6磅反坦克炮
at_gun_6pdr_africa_uk
亨伯装甲车
humber_africa_uk
CMP 15cwt卡车
cwt_15_truck_africa_uk
cwt_15_flatbed_africa_uk
pheasant_halftrack_africa_uk
CMP 15cwt防空卡车
cwt_15_quad_mount_africa_uk
CMP 15cwt医疗卡车
cwt_15_truck_medical_africa_uk
M3斯图亚特轻型坦克
stuart_africa_uk
“主教”自行火炮
bishop_africa_uk

近卫步兵分队
guards_africa_uk      w_bazooka_guards_uk
十字军II中型坦克
crusader_africa_uk
十字军III中型坦克
crusader_57mm_africa_uk
十字军防空中型坦克
crusader_aa_africa_uk
半人马四号中型坦克
centaur_africa_uk
M3“格兰特”中型坦克
grant_africa_uk
玛蒂尔达II重型坦克
matilda_africa_uk
丘吉尔IV重型坦克
churchill_africa_uk
丘吉尔“黑王子”重型坦克
churchill_black_prince_africa_uk
------------------------------------------------
实体id列表:
第一项为实体id,使用spawne来生成,后面几项为可升级项id,使用lock来强制解锁。大部分id由getname获取,杂项id由get获取。
例子:生成美军总部spawne("hq_us"),解锁空军和步兵支援中心lock("air_support_center_us")lock("infantry_support_center_us")
------------------------------------------------
总部
hq_us      air_support_center_us      mechanized_support_center_us      infantry_support_center_us
兵营
barracks_us      grenade_riflemen_us      bar_riflemen_global_us
武器支援中心
weapon_support_center_us
车辆调配场
motor_pool_us
坦克库
tank_depot_us

重机枪掩体
base_defense_us
医疗站
triage_center_us
前线医疗站
frontline_triage_center_us
弹药储存库
ammo_storage_us
战斗阵地
fighting_position_us      hmg_fighting_position_us      mortar_pit_fighting_position
火炮无线电信标
artillery_radio_beacon_us
M2A1榴弹炮炮位
tw_howitzer_105mm_us
资源秘窖
observation_post_us

沙袋墙
sandbag_wall_us
带刺铁丝网栅栏
barbed_wire_fence_us
坦克陷阱
tank_trap_us
M1地雷
mine_engineer_us
M6重型反坦克地雷
mine_heavy_engineer_us
高爆炸药包
demo_charge_us
demo_charge_standard_us

小型弹药箱
munition_paradrop_30_us
中型弹药箱
munition_paradrop_us
munition_paradrop_60_us
大型燃料箱
fuel_paradrop_us
医疗箱
medkit_paradrop_us
武器箱
weapon_crate_drop_us

------------------------------------------------

总部
hq_ger medical_station_hq_ger
步兵连
infanterie_kompanie_ger      infanterie_kompanie_vet_ger
德国空军连
mechanized_kompanie_ger      luftwaffe_kompanie_vet_ger      adv_mech_assault_tactics_ger
装甲掷弹兵连
support_armory_ger      panzergrenadier_kompanie_vet_ger      adv_mech_assault_tactics_ger
装甲连
panzer_armory_ger      panzer_kompanie_vet_ger      side_skirts_global_ger

重机枪掩体
base_defense_ger
战斗掩体
fighting_nest_ger
混凝土地堡
bunker_ger      mg_42_bunker_ger      repair_bunker_ger      medical_bunker_ger      anti_tank_bunker_ger
bunker_coastal_rapid_fortification_ger
指挥地堡
bunker_command_ger
38式防空高射炮炮位
tw_20mm_emplacement_ger
36式反坦克高射炮炮位
tw_88mm_emplacement_ger
anti_tank_88mm_gun_no_sandbags_ger
210毫米/22倍径型榴弹炮炮位
tw_howitzer_obice_210_ger
资源秘窖
observation_post_ger
德国空军中继站
luftwaffe_relay_point_ger

沙袋墙
sandbag_wall_ger
带刺铁丝网栅栏
barbed_wire_fence_ger
坦克陷阱
tank_trap_ger
42型木盒地雷
mine_pioneer_ger
DM-16绊线照明弹
tripwire_flare_ger
里格尔43型反坦克地雷
mine_riegel_43_ger

中型弹药箱
munition_paradrop_ger

2.5吨多功能卡车
truck_2_5_flatbed_ger

------------------------------------------------

总部
hq_ak      hq_armored_assault_tactics_ak
兵工厂
armory_ak
轻型支援连
infanterie_support_ak      t1_unit_unlock_ak
机械化连
mechanized_kompanie_ak      t2_unit_unlock_ak
装甲集团军指挥部
panzer_kompanie_ak

重机枪掩体
base_defense_ak
机枪地堡
bunker_hmg_ak
资源秘窖
observation_post_ak
医疗站
territory_medic_station_ak

带刺铁丝网栅栏
barbed_wire_fence_ak
加固版带刺铁丝网栅栏
barbed_wire_reinforced_ak
坦克陷阱
tank_trap_ak
42型木盒地雷
mine_panzerpioneer_ak
泰勒地雷
mine_teller_ak
高爆炸药包
demo_charge_improvised_ak
诡雷
territory_booby_trap_ak

------------------------------------------------

总部
hq_africa_uk      training_center_unlock_uk
训练中心
training_center_africa_uk
分队指挥所
barracks_africa_uk      rifle_grenade_tommy_uk
排指挥所
motor_platoon_africa_uk      bishop_squad_unlock_uk      stuart_squad_unlock_uk
连指挥所
armoured_platoon_africa_uk      17pdr_squad_unlock_uk      grant_unlock_uk

重机枪掩体
base_defense_africa_uk
博福斯防空炮
tw_bofors_emplacement_uk
5.5英寸BL火炮炮位
tw_howitzer_bl_5_5_africa_uk
战地医疗所
triage_center_uk
territory_medical_station_africa_uk
前线修理厂
forward_repair_assembly_africa_uk
资源秘窖
observation_post_uk
territory_resource_cache_africa_uk

改进型反坦克地雷G.S.
mine_sapper_uk

------------------------------------------------

混凝土地堡
bunker_concrete_garrison_01

战略点
territory_strategic_point

低等弹药点
territory_munitions_point_low
中等弹药点
territory_munitions_point_medium
高等弹药点
territory_munitions_point_high
低等燃料点
territory_fuel_point_low
中等燃料点
territory_fuel_point_medium
高等燃料点
territory_fuel_point_high

医疗站
territory_medic_station_ak

弹药箱
alliedsupply_stack_l_01
alliedsupply_stack_l_01_raid
italian_truck_grey_flatbed
explode_red_barrel_axis_02
ir_church_4x6x2_01
stug_iii_d_wreck_ak
panzer_iii_flame_wreck_ak
------------------------------------------------
指挥官能力id列表
第一项为指挥官能力id,使用add来添加,第二项/第三项分别为遭遇战/单人战役中指挥官能力所需前置升级项,使用up来强制升级,无第二,三项指挥官能力id与所需前置升级项相同。
例子:解锁烟雾轰炸巡航技能,依次输入up("AIRBORNE_LEFT_1A_SMOKE_US")和add("AIRBORNE_LEFT_1A_SMOKE_US")
例子:解锁补给空投技能,依次输入up("airborne_left_2a_supply_drop_us")和add("AIRBORNE_LEFT_2B_SUPPLY_DROP_US")
注意:部分战役特定节点指挥官技能无法显示(功能还在),建议先在遭遇战模式下实验。
以--开头为不可隐藏被动,调用up后调用add解锁,再次调用add将会导致图标消失,效果消失。
以--结尾为可隐藏被动,调用up后调用add解锁,再次调用add图标消失,升级还在,效果还在。
以==标注指挥官能力在单人战役和遭遇战中行为预期不同。
具体指挥官能力可以参考R5M240大佬的数据汇总:英雄连3数据汇总——英军篇P4 - 哔哩哔哩 (bilibili.com)
------------------------------------------------
烟雾轰炸巡航
AIRBORNE_LEFT_1A_SMOKE_US
侦察巡航
AIRBORNE_LEFT_1B_RECON_LOITER_US
补给空投
AIRBORNE_LEFT_2B_SUPPLY_DROP_US      airborne_left_2a_supply_drop_us
伞降增援
AIRBORNE_LEFT_2B_AIR_DROPPED_REINFORCEMENT_US
双P-47战斗机火箭攻击
AIRBORNE_LEFT_3A_ROCKET_STRIKE_US
地毯轰炸巡航
AIRBORNE_LEFT_3B_CARPET_BOMBING_US      airborne_left_3b_carpet_bombing_run_us
侦察队
AIRBORNE_RIGHT_1A_PATHFINDERS_US
重机枪伞降
AIRBORNE_RIGHT_1B_PARADROP_HMG_US
伞兵队伞降
AIRBORNE_RIGHT_2_PARATROOPER_US
反坦克炮小队伞降
AIRBORNE_RIGHT_3_PARADROP_AT_GUN_US

突击工兵
ARMORED_LEFT_1A_ASSAULT_ENGINEERS_US
--老兵车组
ARMORED_LEFT_1B_VETERAN_CREWS_US
战地修理
ARMORED_LEFT_2A_FIELD_REPAIRS_US      armored_left_2a_field_repairs
M31坦克抢修车
ARMORED_LEFT_2B_RECOVERY_VEHICLE_US
--战争机器
ARMORED_LEFT_3_WAR_MACHINE_US
--快速部署
ARMORED_RIGHT_1A_FAST_DEPLOY_US
--钢铁洪流
ARMORED_RIGHT_1B_STRENGTH_IN_STEEL_US
M8斯科特自行火炮
ARMORED_RIGHT_2A_SCOTT_US
搜索并摧毁
ARMORED_RIGHT_2B_SEEK_AND_DESTROY_US      armored_right_2b_seek_and_destroy
M4A3E8谢尔曼作战部队
ARMORED_RIGHT_3_EASY_8_TASK_FORCE_US      armored_right_3_sherman_easy_8_us

M29“黄鼠狼”(配有M1组合榴弹炮)
SPECIAL_OPERATIONS_LEFT_1A_M29_WEASAL_US
M29“黄鼠狼”(配有M1组合榴弹炮)
SPECIAL_OPERATIONS_LEFT_1B_M29_WEASAL_WITH_PACK_HOWITZER
标记载具
SPECIAL_OPERATIONS_LEFT_2A_MARK_TARGET_VEHICLE_US
P-47战斗机扫射巡航
SPECIAL_OPERATIONS_LEFT_2B_STRAFING_SUPPORT_US
M4A1谢尔曼“自动导弹”
SPECIAL_OPERATIONS_LEFT_3_WHIZBANG_US
突袭照明弹
SPECIAL_OPERATIONS_RIGHT_1A_RAIDING_FLARES_US
烟幕
SPECIAL_OPERATIONS_RIGHT_1B_SMOKE_SCREEN_US
SSF突击队
SPECIAL_OPERATIONS_RIGHT_2_DEVILS_BRIGADE_US
突击行动
SPECIAL_OPERATIONS_RIGHT_3A_ASSAULT_OPERATION_US
空中再补给行动
SPECIAL_OPERATIONS_RIGHT_3B_AIR_RESUPPLY_OPERATION_US

改装为游骑兵队
INFANTRY_LEFT_1_RIFLEMAN_CONVERT_TO_RANGER_US      infantry_left_1_convert_rifleman_to_ranger_us
前线医疗站
INFANTRY_LEFT_2A_MEDICAL_TENT      infantry_left_2a_frontline_medical_tent_us
指定突击阵地
INFANTRY_LEFT_2B_DESIGNATE_ASSAULT      infantry_left_2a_designate_assault
--游骑兵武器训练--
INFANTRY_LEFT_3A_RANGER_WEAPON_TRAINING_US
步兵突击
INFANTRY_LEFT_3B_INFANTRY_ASSAULT_US
火炮观察员
INFANTRY_RIGHT_1A_ARTILLERY_OBSERVERS_US
--弹药储存库--
INFANTRY_RIGHT_1B_AMMUNITION_STORAGE_US
--M2A1 105毫米榴弹炮炮位--
INFANTRY_RIGHT_2_105MM_HOWITZER_US      infantry_right_2_howitzer_105mm_us
155毫米高速火炮弹幕
INFANTRY_RIGHT_3A_OFF_MAP_ARTILLERY_US
--自由射击练习--
INFANTRY_RIGHT_3B_AUTO_FIRE_HOWITZER_US

------------------------------------------------

--突击掷弹兵--
BREAKTHROUGH_RIGHT_1_ASSAULT_GRENADIERS_GER
突破
BREAKTHROUGH_RIGHT_2A_BREAKTHROUGH_GER
烟雾轰炸巡航
BREAKTHROUGH_RIGHT_2B_SMOKE_BOMBING_RUN_GER
机械化突击群
BREAKTHROUGH_RIGHT_3A_ASSAULT_GROUP_GER
燃烧弹轰炸巡航
BREAKTHROUGH_RIGHT_3B_INCENDIARY_BOMBING_RUN_GER
--急速生产
BREAKTHROUGH_LEFT_1A_RAPID_PRODUCTION_GER
2.5吨货运卡车
BREAKTHROUGH_LEFT_1B_TRUCK_2_5_GER
闪电战
BREAKTHROUGH_LEFT_2A_BLITZKRIEG_GER
四号指挥坦克
BREAKTHROUGH_LEFT_2B_PANZER_IV_CMD_GER
虎式重型坦克
BREAKTHROUGH_LEFT_3_TIGER_GER

侦察巡航
LUFTWAFFE_RIGHT_1A_RECON_RUN_GER      luftwaffe_right_1a_recon_run
斯图卡扫射巡航
LUFTWAFFE_RIGHT_1B_STRAFING_RUN_GER
德国空降猎兵小队伞降
LUFTWAFFE_RIGHT_2_FALLSCHIRMJAGERS_GER      luftwaffe_right_2_fallschirmjagers
破片炸弹
LUFTWAFFE_RIGHT_3A_FRAGMENTATION_BOMBS_GER      luftwaffe_right_3a_fragmentation_bombs
斯图卡巡航
LUFTWAFFE_RIGHT_3B_ATTACK_LOITER_GER      luftwaffe_right_3b_attack_loiter
空降工兵小队伞降
LUFTWAFFE_LEFT_1B_FALLSCHIRMPIONEERS_GER      luftwaffe_left_1b_fallschirmpioneers
LG40无后座力发射器伞降
LUFTWAFFE_LEFT_2A_WEAPON_DROP_GER      luftwaffe_left_2a_lg40_weapon_drop
德国空军作战部队
LUFTWAFFE_LEFT_2B_COMBAT_GROUP_GER
--步兵储备
LUFTWAFFE_LEFT_1A_INFANTRY_RESERVES_GER      luftwaffe_left_1a_infantry_reserves
--36式反坦克高射炮炮位--
LUFTWAFFE_LEFT_3_88MM_AT_GUN_GER      luftwaffe_left_3_flak36_88mm

--突袭装备包--
MECHANIZED_LEFT_1B_RAID_GER      mechanized_left_1a_raid_package
三号突击炮群
MECHANIZED_RIGHT_2A_STUG_ASSAULT_GROUP_GER      mechanized_left_2a_stug_assault_group
八轮式装甲车
MECHANIZED_LEFT_2B_8_RAD_GER      mechanized_left_2b_8_rad
豹式重型坦克
MECHANIZED_RIGHT_3_PANTHER_GER      mechanized_left_3_panther
--燃料夺取--
MECHANIZED_RIGHT_1A_FUEL_SIPHON_GER      mechanized_right_1a_fuel_siphon
--观测镜--
MECHANIZED_RIGHT_1B_SPOTTING_SCOPES_GER      mechanized_right_1b_spotting_scopes
机械化突击
MECHANIZED_RIGHT_2A_MECHANIZED_ASSAULT_GER      mechanized_right_2a_mechanized_assault
火炮弹幕校准
MECHANIZED_RIGHT_2B_ENCIRCLEMENT_BARRAGE_GER      mechanized_right_2b_encirclement_barrage
--风暴突击队突击装备包--
MECHANIZED_RIGHT_3A_STOSSTRUPPEN_PACKAGE_GER      mechanized_right_3a_stosstruppen_package
“黄蜂”自行火炮
MECHANIZED_LEFT_3A_WESPE_GER      mechanized_right_3b_wespe

指定防线
COASTAL_EARLY_WARNING_GER
==支援地堡==
COASTAL_SUPPORT_BUNKERS_GER      coastal_support_bunkers_ger      defense_left_2a_support_bunkers_ger
指定火炮守望
COASTAL_RIGHT_3B_COASTAL_BATTERIES_GER
快速防御工事
COASTAL_3A_RAPID_FORTIFICATION      coastal_right_3a_rapid_fortification_ger
呼叫预备役!
COASTAL_CALL_THE_RESERVES      coastal_call_the_reserves_ger
==堡垒==
COASTAL_BULWARK_GER      coastal_bulwark_ger      defense_left_2a_support_bunkers_ger
海岸保护
COASTAL_LEFT_1_COASTAL_RESERVE_GER      coastal_left_1_coastal_reserves_ger
炮兵军官
COASTAL_ARTILLERY_OFFICER_GER
==210毫米/22倍径型榴弹炮炮位==
COASTAL_OBICE_GER
==岸墙==
COASTAL_BUNKER_SUPPLIES

------------------------------------------------

突击工兵小队
ITALIAN_INFANTRY_GUASTATORI_AK
精准火炮
ITALIAN_INFANTRY_REGISTERED_ARTILLERY_AK
L6/40轻型坦克作战部队
ITALIAN_INFANTRY_DOUBLE_L640_AK
牵引式105毫米/28倍径野战榴弹炮
ITALIAN_INFANTRY_CANNONE_DA_105_AK
==防御行动==
ITALIAN_INFANTRY_DEFENSIVE_OPERATIONS_AK
拉响警报
ITALIAN_INFANTRY_SOUND_THE_ALARM_AK
==诡雷区==
ITALIAN_INFANTRY_TERRITORY_BOOBY_TRAPS_AK
--就绪阵地
ITALIAN_INFANTRY_DEFENSE_OF_THE_MOTHERLAND_AK
宣传战
ITALIAN_INFANTRY_PROPAGANDA_WAR_AK
305毫米榴弹炮弹幕
ITALIAN_INFANTRY_OBICE_BARRAGE_AK

神射手小队
ITALIAN_COMBINED_ARMS_BERSAGLIERI_AK
--神射手强化
ITALIAN_COMBINED_ARMS_BOLSTER_AK      italian_combined_arms_bersaglieri_bolster_ak
--载具支援:夺取地点--
ITALIAN_COMBINED_ARMS_SECURED_FLANKS_AK      litalian_combined_arms_secured_flanks_ak
--布雷达30型轻机枪--
ITALIAN_COMBINED_ARMS_INFANTRY_ARMANENT_AK      italian_combined_arms_bersaglieri_armanent_ak
--武装侦察部队--
ITALIAN_COMBINED_ARMS_FORCE_RECON_AK
塞莫凡提75/18突击炮
ITALIAN_COMBINED_ARMS_SEMOVENTE_AK
M13/40轻型坦克
ITALIAN_COMBINED_ARMS_M13_40_AK
扫射巡航
ITALIAN_COMBINED_ARMS_VEHICLE_STRAFE_AK
--钢铁条约
ITALIAN_COMBINED_ARMS_PACT_OF_STEEL_AK
火炮掩护
ITALIAN_COMBINED_ARMS_COVERING_FIRE_AK

--载具警觉--
ARMORED_SUPPORT_VEHICLE_AWARENESS_AK
==回收包==
ARMORED_SUPPORT_AUTO_SALVAGE_AK
装甲风暴
ARMORED_SUPPORT_BREAKTHROUGH_AK
斯图卡俯冲轰炸
ARMORED_SUPPORT_STUKA_DIVE_BOMB_AK
斯图卡反坦克巡航
ARMORED_SUPPORT_AT_LOITER_AK
--老兵炮手
ARMORED_SUPPORT_VETERAN_CREW_AK      armored_support_veteran_gunners_ak
--优越射击演习
ARMORED_SUPPORT_COAX_UPGRADE_AK
三号中型火焰喷射坦克
ARMORED_SUPPORT_FLAME_P3_AK
四号F型中型指挥坦克
ARMORED_SUPPORT_COMMAND_P4_AK
战场回收
ARMORED_SUPPORT_ASSAULT_SALVAGE_AK

------------------------------------------------

--补给充沛--
BRITISH_AIR_AND_SEA_LEFT_1B_SUPPLY_SURPLUS_UK
海军封锁
BRITISH_AIR_AND_SEA_LEFT_1A_NAVAL_BLOCKADE_UK
半人马中型坦克
BRITISH_AIR_AND_SEA_LEFT_2A_CENTAUR_CS_UK
突击照明弹
BRITISH_AIR_AND_SEA_LEFT_3A_ASSAULT_FLARES_UK
海军炮击
BRITISH_AIR_AND_SEA_LEFT_3B_NAVAL_BOMBARDMENT_UK
突击队伞降
BRITISH_AIR_AND_SEA_RIGHT_1_COMMANDOS_UK
M1组合榴弹炮伞降
BRITISH_AIR_AND_SEA_RIGHT_2A_PACK_HOWITZER_TEAM_UK
突击队轻机枪队伞降
BRITISH_AIR_AND_SEA_RIGHT_2B_COMMANDO_LMG_TEAM_UK
燃烧弹轰炸巡航
BRITISH_AIR_AND_SEA_RIGHT_3A_INCENDIARY_BOMBING_RUN_UK
反坦克火箭巡航
BRITISH_AIR_AND_SEA_RIGHT_3B_ANTI_TANK_LOITER_UK

--严格载具训练--
BRITISH_ARMORED_LEFT_1A_RIGOROUS_VEHICLE_TRAINING_UK
无线电网
BRITISH_ARMORED_LEFT_1B_RADIO_NET_UK
十字军防空中型坦克
BRITISH_ARMORED_RIGHT_2_CRUSADER_AA_UK
丘吉尔IV重型坦克
BRITISH_ARMORED_LEFT_2_CHURCHILL
丘吉尔“黑王子”重型坦克
BRITISH_ARMORED_LEFT_3B_CHURCHILL_BLACK_PRINCE_UK
==工兵分遣队==
BRITISH_ARMORED_RIGHT_ON_HAND_SAPPERS      british_armored_right_1_on_hand_sappers
轻型载具撤离和整修
BRITISH_ARMORED_RIGHT_1A_LIGHT_WITHDRAW_AND_REFIT_UK
--前线修理厂--
BRITISH_ARMORED_RIGHT_1B_FORWARD_REPAIR_ASSEMBLY_UK
侦察火炮
BRITISH_ARMORED_RIGHT_3A_RECON_ARTILLERY_UK
指定目标
BRITISH_ARMORED_RIGHT_3B_DESIGNATE_TARGETS_UK

战吼
ARTILLERY_WAR_CRY_UK
--勇猛--
ARTILLERY_VALOUR_UK
廓尔喀步枪队
ARTILLERY_GURKHAS_UK
--劫掠--
ARTILLERY_PILLAGE_UK
--志愿步兵--
ARTILLERY_VOLUNTEER_INFANTRY_UK
牵引式ML 4.2英寸重型迫击炮
ARTILLERY_4_2_INCH_HEAVY_MORTAR_UK
--火炮饱和--
ARTILLERY_ARTILLERY_SATURATION_UK
地图外空爆弹幕
ARTILLERY_AIRBURST_UK
周边监控
ARTILLERY_PERIMETER_MONITOR_UK
--5.5英寸BL火炮炮位--
ARTILLERY_BL_5_5_HEAVY_ARTILLERY_UK

------------------------------------------------
以下为部分战役指挥官能力
------------------------------------------------
近距离空中支援
M_GELA_AIRSTRIKE_US      gela_airstrike_us
------------------------------------------------
以下需要前置升级项sp_generic_tech_unlock以解锁
------------------------------------------------
L6/40轻型坦克作战部队
M_DOUBLE_L640_CORE_AK
斯图卡俯冲轰炸
M_STUKA_DIVE_BOMB_CORE_AK
扫射巡航
M_STRAFING_RUN_CORE_AK
突击工兵小队
M_GUASTATORI_CORE_AK
斯图卡反坦克巡航
M_AT_LOITER_CORE_AK
装甲风暴
M_PANZER_STORM_CORE_AK
火炮掩护
M_ARTILLERY_COVER_CORE_AK
------------------------------------------------

玩家当前有的指挥官能力可在游戏内通过代码:
for i,k in pairs(ABILITY) do
      if k~=ABILITY.__skipsave then
                for key, abp in pairs(k) do
                        if abp~=true and Player_HasAbility(Game_GetLocalPlayer(),abp) then
                              print(key)
                        end
                end
      end
end
输出到控制台,M_开头即为战役特有指挥官能力id。

所有非以上代码/getname/get所获取的id来源于根目录下EssenceEditor.exe -> Continue Without A Mod -> Attributes -> Open Attributes -> Attributes,sbp为小队id目录,ebp为实体id目录,abilities为能力id目录,upgrade为升级项id目录。
脚本中所调用方法部分来源于水雷前两作英雄连官方脚本文档,部分来源于水雷帝国时代4官方脚本文档,部分来源于CheatCommands Mod作者gitbub:https://github.com/Janne252/coh3-scar-types

我水平太菜无法做成像CheatCommands Mod那种图形化修改器,但是现在至少我们能在战役中生成大猫猫了,好耶!

M奥M 发表于 2025-1-17 01:11

v2.0:
方法尽可能解耦,侧载scar,加入按键绑定,所有生成方法调用precache预缓存模型。
Cheat_GetScreenCenterPosition_Internal() 新增获取屏幕中心准确位置
Cheat_GetScreenCenterEntity_Internal() 新增获取屏幕中心实体
Cheat_ClearAvailabilities() 新增解锁建造限制
Cheat_ToggleBonus() 新增启用/隐藏/停用自定义指挥官技能
Cheat_ToggleFastProduction() 新增启用/停用快速生产
Cheat_ToggleFastConstruction() 新增启用/停用快速建筑
Cheat_ToggleFastCD() 现在可以停用冷却缩减
Cheat_ToggleInvulnerable() 新增启用/停用单位/建筑无敌
Cheat_IncreaseVeterancyRank() 新增单位升星
Cheat_Teleport_Internal() 新增瞬移无法选中实体
Cheat_Rotate_Internal() 新增旋转无法选中实体
Cheat_Win() 新增战役立刻胜利
Cheat_Lose() 新增战役立刻失败
Cheat_FastSpawn() 新增生成自定义单位
Cheat_ToggleUpgradeAvailability(ubp_name) 新增解锁/移除/默认/锁定科技

正在研究:
单人战役与遭遇战各方面的不同
暂停计时器
控制非玩家单位

各位大佬如果知道咋实现,欢迎分享!

q798075257 发表于 2024-1-25 14:00

厉害,但是好复杂

mimixiaozhan 发表于 2024-1-25 16:41

太牛了!!但是有点太复杂了,希望哪位大神能做出图形化就好了

lopalee 发表于 2024-1-25 16:54

大神!!!

werschesrt 发表于 2024-1-26 22:39

这也太复杂了吧,要打这么多:'(

dsunvee 发表于 2024-1-26 23:38

确实很复杂,一时半会儿,也不知道怎么用。

xiaodaoji 发表于 2024-1-27 09:32

大神牛!对于我这类小白来说,复杂了一些,能否集成一下。

550 发表于 2024-1-27 19:27

程序员吧?厉害~

zmke01 发表于 2024-1-28 18:37

求程序大佬打包制作简单点

zzw760 发表于 2024-2-7 19:45

怎么关闭控制台啊,楼主

胡仙客 发表于 2024-2-7 22:18

不知道怎么用希望出一个视频教程

wdiasd 发表于 2024-2-23 09:10

这才是神贴啊!

[email protected] 发表于 2024-3-9 15:41

执行renew报错有bug

https://doc.mylady.top/media/2024/03/2024-03-09_153745_1709970052.png

单独拿出renew的依赖代码块
```sh
sgtmp=SGroup_Create("sgtmp")
egtmp=EGroup_Create("egtmp")
lplayer=Game_GetLocalPlayer()
for i = 1, World_GetPlayerCount() do
    tmpp = World_GetPlayerAt(i)
    tmpt = Player_GetTeam(tmpp)
    if tmpt ~= Player_GetTeam(lplayer) then eplayer = tmpp break end
end

function select()
    Misc_GetSelectedSquads(sgtmp, false)
    Misc_GetSelectedEntities(egtmp, false)
end

function clear()
      select()
      EGroup_DestroyAllEntities(egtmp)
end

function renew()
    select()
    EGroup_ForEach(egtmp,function(egid, idx, entity)
      etmp=Entity_Create(Entity_GetBlueprint(entity), lplayer, Entity_GetPosition(entity), true)
      Entity_ForceSelfConstruct(etmp)
      Entity_SetHeading(etmp,Entity_GetHeading(entity),false)
      Entity_Spawn(etmp)
    end
    )
    clear()
end
```

[email protected] 发表于 2024-3-23 20:44

可以了. 是自己没看清楚, 需要使用 shift + alt + ` 调用控制台. 感谢大佬分享

xiaoxie83 发表于 2024-4-28 22:36

没整明白输入完代码以后想生成个虎式复制进去直接报错spawns("tiger_ak")

xiaoxie83 发表于 2024-4-28 22:47

xiaoxie83 发表于 2024-4-28 22:36
没整明白输入完代码以后想生成个虎式复制进去直接报错spawns("tiger_ak")

好吧 是我没看全得先得到位置参数才能输入给单位getpos

tcwokxp 发表于 2024-5-23 22:33

大神大神大神

nywyboss 发表于 2024-6-27 18:11

function getpos() pos=getcur() end
function getto() to=getcur() end
function lock(ubp)
      if ulock~=ITEM_UNLOCKED then ulock=ITEM_UNLOCKED else ulock=ITEM_DEFAULT end
      Player_SetUpgradeAvailability(lplayer, BP_GetUpgradeBlueprint(ubp), ulock)
      print(ulock)
end
function de()
      select()
      SGroup_ForEach(sgtmp,
                function(gid, idx ,squad)
                        for i, k in pairs(Squad_GetActiveUpgrades(squad)) do
                              Squad_RemoveUpgrade(squad,k)
                        end
                end
      )
end
这行代码报错

M奥M 发表于 2024-6-28 11:25

有空了我再更一版

yrk00147 发表于 2024-7-23 21:58

支持大佬,写得太好了,只有玩家自己全图确实bug

yrk00147 发表于 2024-7-23 21:58

期待大佬的再次更新

steveluo 发表于 2024-8-3 17:12

本帖最后由 steveluo 于 2024-8-4 00:38 编辑

补充一个单位升级的方法,num=需要提升的等级(1/2),只能升级不能降级
function rank(num)
      select()
      SGroup_ForEach(sgtmp,
                function(gid, idx ,squad)
                        Squad_IncreaseVeterancyRank(squad, num, false)                        
                end
      )               
end

永恒~堕落 发表于 2024-8-13 11:35

太懵逼了,给搞闪退了,不适合萌萌哒

M奥M 发表于 2024-8-13 16:19

永恒~堕落 发表于 2024-8-13 11:35
太懵逼了,给搞闪退了,不适合萌萌哒

在更新帝国时代4的脚本,有空了一定更新,咕咕咕。

JIEFI2 发表于 2024-8-15 13:08

一输入就报错闪退整不明白:'(

ZUOSIZHE 发表于 2025-1-10 00:04

function getname()
      select()
      SGroup_ForEach(sgtmp,
                function(gid, idx ,squad)
                        print("squad:      "..BP_GetName(Squad_GetBlueprint(squad)))
                        for i, k in pairs(Squad_GetAttachedWeapons(squad)) do print("weapon:      "..BP_GetName(Entity_GetBlueprint(k))) end
                        for i, k in pairs(Squad_GetActiveUpgrades(squad)) do print(i) end
                end
      )
      EGroup_ForEach(egtmp,
                function(gid, idx ,entity)
                        print("entity:      "..BP_GetName(Entity_GetBlueprint(entity)))
                end
      )
end


这一行代码运行报错,无法使用,别的都好用。

M奥M 发表于 2025-1-10 14:56

ZUOSIZHE 发表于 2025-1-10 00:04
function getname()
      select()
      SGroup_ForEach(sgtmp,


新版快完工了,我争取下周发出来!

avalon1000 发表于 2025-1-18 15:14

感谢热心的楼主,帮顶;P;P;P;P;P
页: [1] 2
查看完整版本: 英雄连3 控制台脚本v2.0