zuolian1234 发表于 2023-12-10 12:58

有没有大佬会存档修改啊

有没有大佬会存档修改啊,我想修改英雄,都改成3技能,有会的请教教我,具体用什么软件修改啊

iamherosp 发表于 2024-1-23 23:35

我想修改英雄,都改成3技能
——换个思路 直接修改规则文件 每个装备可以带 10个英雄 不就行了

萌新司机上路中 发表于 2024-3-5 18:44

本帖最后由 萌新司机上路中 于 2024-3-5 19:41 编辑

目前修改存档无法生成多技能英雄。想要多技能英雄只能修改游戏的LUA文件。

LUA文件位置:
你的游戏安装目录\Panzer Corps 2\PanzerCorps2\Content\Campaigns\你想修改的战役所属的DLC\你想修改的战役关卡然后用记事本打开后缀名.lua文件,例如你想修改西班牙内战第一关塞利维亚,目标LUA文件路径就是:
你的游戏安装目录\Panzer Corps 2\PanzerCorps2\Content\Campaigns\AO0Spain\01Seville下的Seville.lua

文件夹对应的如下:
AO0Spain——西班牙内战                  AO1939——轴心国行动1939               AO1940——轴心国行动1940         AO1941East——轴心国行动1941东线
AO1942East——轴心国行动1942东线   AO1943East——轴心国行动1943东线   AO1944East——轴心国行动1944东线
AO1945East——轴心国行动1945东线   AO1946Amerika——轴心国行动1946美国   Main——国防军战役   Tutorial——教程

至于修改的代码,它比较复杂,这里直接给出模板供参考:
function 函数名()
      local hero = NewHero()
      local unit = world:GetUnit(单位ID)
      hero.portrait = "/Game/Gui/Common/Heroes/generic_standin.generic_standin"
      hero.extra_traits = {UnitTrait.特质名, UnitTrait.特质名, ……}
      hero.modifiers = {{type = 属性类型1, mod = 数量}, {type = 属性类型1, mod = 数量}, ……}
      hero.attack_modifiers = {{type = TargetType.目标类型, mod = 数量}, {type = TargetType.目标类型, mod = 数量}, ......}
      hero.defense_modifiers = {{type = 属性类型2, mod = 数量}, {type = 属性类型2, mod = 数量}, ……}
      local action = world:MakeNewHeroAction(玩家ID, hero)
      world:Exec(action)
end

【注】省略号代表的是,如果你想额外加修改项目,就复制前面的粘贴到后面,然后删除省略号。比如你想修改英雄有5个技能,应该写:
      hero.extra_traits = {UnitTrait.特质名, UnitTrait.特质名, UnitTrait.特质名, UnitTrait.特质名, UnitTrait.特质名}
      逗号后面有且仅有一个空格。

其中,单位ID需要在游戏自带的地图编辑器查看,编辑器位于:
你的游戏安装目录\Panzer Corps 2\PanzerCorps2\Content\Editor\Binaries\PzC2Editor.exe
在左边偏上方找到白色的问号,然后点问号左边的下拉菜单,选择Configure Unit。再点击单位,就能IDs一栏查看单位ID。

函数名随便取个方便记住的名字,最好取个能提醒你这个英雄是干嘛的名字。绝对不能有重复的函数名。代码里绝对没有中文。

特质名
就是技能,需要写英文原名,可以在百科查看:
https://panzercorps.fandom.com/wiki/Unit_traits

属性类型1
单位除了攻防外的其他所有属性,需要写英文原名,包括

strengthinitiativespottingrangespeedammofuel
   默认兵力      主动性         视野         射程      移动力       弹药         燃料
【注】 默认兵力修改未曾测试;修改燃料不会在英雄面板显示,但在单位属性面板上显示,也的确会生效。
1.9.3最新版游戏中,修改的弹药和燃料会在进入下一关后失效。不要退出或者读档,结束部署回合后随便动一下单位又会生效。

目标类型
单位对特定目标类型的攻击力,需要写英文原名,包括

soft       hard      airnaval
非装甲单位。如步兵、牵引火炮   装甲单位。如坦克、侦察、自行火炮   空中单位   海军舰船

属性类型2
单位的防御属性,需要写英文原名,包括

groundairclose
地面防御   对空防御   近身防御

数量
需要写阿拉伯数字,想让属性增加多少就填多少

玩家ID
一般填0,就是你自己。二号玩家是1,三号玩家是2,以此类推。

写好英雄代码以后,放进LUA文件自带的英雄生成代码里。不然你需要自己用地图编辑器写代码。例如塞利维亚的:
function CreateAndAssignEnemyHero1(unit_id)
      local hero = NewHero()
      --hero.portrait = "/Game/Gui/Common/Heroes/DE/de_in_16.de_in_16"
      hero.portrait = "/Game/Gui/Common/Heroes/generic_standin.generic_standin"
      hero.name = NSLOCTEXT("scenario_Seville", "EnemyHero", "")
      hero.extra_traits = {UnitTrait.OverwhelmingAttack}
      -- hero.modifiers = {{type = Initiative, mod = 10}, {type = Spotting, mod = 1}}
      -- hero.attack_modifiers = {{type = TargetType.Soft, mod = 10}}
      -- hero.defense_modifiers = {{type = Ground, mod = 10}}
      local action = world:MakeNewHeroAction(1, hero)
      world:Exec(action)

      local assign_hero_action = world:MakeAssignHeroAction(world:GetUnit(unit_id), hero.id)
      world:Exec(assign_hero_action)
end

这里应该把写好的函数放在end的上一行,建议用TAB键对齐格式

这样应该就能在游戏开始时生成想要的多技能英雄。如果成功会在屏幕中央跳出“军事表彰”提示框。

页: [1]
查看完整版本: 有没有大佬会存档修改啊