liyun_1981 发表于 2018-5-16 23:52

永恒之柱2自制MOD第三弹!自动开启控制台、等级上限100级及自定义装备MOD简易教程(2019年6月20日最新更新支持v5.0.0.0040)

本帖最后由 liyun_1981 于 2019-6-20 18:01 编辑

前言:目前已经玩了几天柱子2了,觉得游戏体验整体来说是很赞的,但是在研究黑石头代码的时候发现了一些毛病,先吐槽一下。。。
柱子2比柱子1虽然已经把大多数据配置化了,但还是有一些应该配置化的数据硬编码了,而且有些还硬编码在UI里,这就让人感到很蛋痛了。。。。。。


正题:
一、此次发布的几个补丁:
1、第一个是核心修改向补丁,继上次发布了自动开启控制台补丁后,又新增了一些有趣的功能:
包括每级获得2个主动技能点和2个被动技能点,每级获得2个职业能力点,每隔2级获得额外2个职业能力点,所有法术等级每级增加2个额外资源点等;最重要的更新是新增了一个便捷的控制台命令,OpenCharacterCreation level ,特别说明下这个命令的作用:例如,在游戏中按 ` 键打开控制台后,输入命令 OpenCharacterCreation 20 ,作用是可以在游戏中随时重新创建主角,就像游戏开始时那样,20 表示主角获得升级到20级的经验值,这样重建角色后就可以升级到20级了;
12月21日发现游戏的v4.0.X版本中新增了添加一个指定等级的雇佣兵到队伍中的命令,OpenCharacterCreationNewCompanion cost,level,控制台输入 OpenCharacterCreationNewCompanion 0 20 ,作用是花费0金钱新增一个20级的雇佣兵到队伍中。
2、另外一个是整合补丁,此补丁是纯配置向的,包括如下功能:
3倍人物移动速度(修正了上次发的2倍移动速度补丁无效的问题),100级等级上限,100点属性点上限,第1级就获得1点强效资源点,以后没隔3级再获得1点,直到28级共10点,第1级就获得4个武器熟练点,以后每一级再获得1点,直到28级共31点(即全武器熟练),第1级就获得6个能力资源点,以后每隔2级再获得3个能力点,直到17级共30点,去除双职业的职业能力惩罚,都可以学满9级法术。


二、自定义一个装备MOD的简单教程:
1、假设永恒柱子2的游戏目录是 F:\games\Pillars of Eternity II ,在 PillarsOfEternityII_Data 目录下新建一个空文件夹 override ,即 F:\games\Pillars of Eternity II\PillarsOfEternityII_Data\override ,再在 override 目录下新建一套目录结构 localized\zh\text\game ,再在 game 目录下新建一个文本文件并重命名为 items.stringtable ;再在 override 目录下新建一套目录结构 design\gamedata ,在 gamedata 目录下新建一个文本文件并重命名为 moditem.gamedatabundle ,再新建一个文本文件并重命名为 modstatuseffects.gamedatabundle ;现在先简要说明下:items.stringtable 是MOD的汉化配置文件,moditem.gamedatabundle 是自定义装备MOD的主文件,modstatuseffects.gamedatabundle 是自定义附魔效果文件,配合 moditem.gamedatabundle 一起使用;


2、先把这三个文件的内容贴上来再分别说明下:
items.stringtable
<?xml version="1.0" encoding="utf-8"?>
<StringTableFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>game\items</Name>
<NextEntryID>1</NextEntryID>
<EntryCount>10</EntryCount>
<Entries>
    <Entry>
      <ID>100001</ID>
      <DefaultText>战神之刃</DefaultText>
      <FemaleText />
    </Entry>
    <Entry>
      <ID>100002</ID>
      <DefaultText>这把利刃在历史的长河中时隐时现。借助它强大的力量,许多伟大的贵族、战士与保险者都完成过许多丰功伟业,也犯下过许多可怕的兽行。几乎没人能记得他们的名字,就仿佛这些人不过是武器本身的附属品一样。从来没人长时间持有过这把利刃,因为它的每一位主人,最终都会在暴力中迎来不可避免的命运。据说,这把剑会发出奇妙的歌声。歌声会传到使用者的心里,促使使用者不断挑战身心极限。这样一来,使用者多半都不会落得什么好下场。也正因如此,这把剑时常易主。它最近一次出现是在若移冰地,有人从某位瓦利亚探险家冰冻的尸体上收回了这把剑。据说,这把剑是在一条死亡已久的巨龙的胸骨腔里找到的,旁边还散落着已经被消化了一半的生锈盔甲。没人知道这个死于巨龙之口的人从哪里得到了这把剑。不过毫无疑问,得到这把剑之后,他也同样遭受了横死的命运。</DefaultText>
      <FemaleText />
    </Entry>
</Entries>
</StringTableFile>



moditem.gamedatabundle
{
    "GameDataObjects":[
      {
            "$type":"Game.GameData.WeaponGameData, Assembly-CSharp",
            "DebugName":"Great_Sword_WarGod",
            "ID":"02c4584b-df64-5095-da7c-174c8451e1bc",
            "Components":[
                {
                  "$type":"Game.GameData.ItemComponent, Assembly-CSharp",
                  "DisplayName":100001,
                  "DescriptionText":100002,
                  "FilterType":"Weapons",
                  "InventoryAudioEventListID":"d9ef8ec9-f1fb-4d0b-88b7-49d7c0310019",
                  "IsQuestItem":"false",
                  "IsIngredient":"false",
                  "IsCurrency":"false",
                  "IsAdventuringItem":"false",
                  "CanSellForFullValue":"false",
                  "MaxStackSize":1,
                  "NeverDropAsLoot":"false",
                  "CanBePickpocketed":"true",
                  "IsUnique":"true",
                  "Value":50,
                  "IconTextureSmall":"gui/icons/items/weapons/great_sword/great_sword_sanguine_s.png",
                  "IconTextureLarge":"gui/icons/items/weapons/great_sword/great_sword_sanguine_l.png",
                  "PencilSketchTexture":"",
                  "InspectOnUseButton":[
                        
                  ],
                  "IsPlaceholder":"false"
                },
                {
                  "$type":"Game.GameData.EquippableComponent, Assembly-CSharp",
                  "EquipmentType":"GreatSword",
                  "EquipmentSlot":"BothPrimaryAndSecondary",
                  "AppearancePiece":{
                        "ModelVisualDataPath":"prefabs/items/appearance/weapons/great_sword/great_sword06.asset"
                  },
                  "ItemModsIDs":[
                        "9691785d-0207-492a-9c88-47f9a86db8af",
                        "2442a75a-5ec8-4e85-8f7d-ae9a0b6bf91b",
                        "366dc62c-7c43-430f-be5b-00bb17c51c8f",
                        "2450fa5e-d1fd-4355-96a8-6d67095860bd",
                        "c799f7ad-e4d9-4f32-bf00-ebb1908cd39d",
                        "137a6533-8702-4053-99de-c96e65fea04f",
                        "9038d299-a0c0-4d13-ab2a-521c0577e6f0",
                        "11b59a3c-5626-438b-9434-463f17bafe0c",
                        "5b48828a-b9b7-4cb8-a1c9-afe64a9471d5"
                  ],
                  "OnEquipVisualEffects":[
                        
                  ],
                  "RestrictedToClass":[
                        
                  ],
                  "RestrictedToPlayer":"false",
                  "ProficientAbilityID":"0b5fe616-3d6d-460d-a02d-28a1b4217796",
                  "CannotUnequip":"false",
                  "ItemRendererPrefab":"prefabs/itemrenderers/genericitemrenderer.prefab",
                  "ItemModel":"art/character/weapons/great_sword/great_sword01/w_gs01.fbx",
                  "AnimationController":"",
                  "PaperdollOverrideRenderer":"",
                  "AttackSummonID":"00000000-0000-0000-0000-000000000000",
                  "CannotSheathe":"false",
                  "PropVisualEffects":[
                        

                },
                {
                  "$type":"Game.GameData.WeaponComponent, Assembly-CSharp",
                  "Stance":"TwoHandedClosedGrip",
                  "AnimationStanceID":"2bfb014c-53e1-44d0-82c8-3c3ff7a6741e",
                  "StatusEffectsOnLaunchIDs":[
                        
                  ],
                  "IsDisplayedWhenAlternate":"true",
                  "IsUniversalType":"false",
                  "AttackID":"1d10eee8-c68a-4593-8075-7a2e19db6602",
                  "NoiseLevelID":"15743f94-1026-40b0-8e13-a667b3f66f63",
                  "ForceBackScabbard":"true",
                  "ScabbardAppearancePiece":{
                        "ModelVisualDataPath":"prefabs/items/appearance/weapons/great_sword/a_great_sword03_scabbard.asset"
                  },
                  "ScabbardRendererPrefab":"prefabs/itemrenderers/genericitemrenderer.prefab",
                  "ScabbardModel":"",
                  "AudioEventListID":"00000000-0000-0000-0000-000000000000"
                }

      }

}

2019年6月10日更新:
支持最新的v5.0.0.0040版!

2019年6月20日更新:已修复v5.0.0.0040版补丁导致切换地图出错退出到主菜单的问题。

补丁1:1、自动开启控制台;
2、每级获得2个主动技能点和2个被动技能点,每级获得2个职业能力点,每隔2级获得额外2个职业能力点,所有法术等级每级增加2个额外资源点;
3、新增控制台重置角色命令OpenCharacterCreation 参数level为想要设置的等级值;
4、开放控制台命令:设置视野缩放范围 SetZoomRange 参数MinZoom为缩放最小值 参数MaxZoom为缩放最大值;
5、游戏视野缩放范围从0.75到1.5修改为从0.2到2.0;
6、禁用游戏自动存档功能,优化游戏加载速度。


使用方法:
解包文件Assembly-CSharp.7z到任意目录,并将Assembly-CSharp.dll文件复制到Pillars of Eternity II\PillarsOfEternityII_Data\Managed目录,建议先备份原版文件再覆盖;

**** Hidden Message *****

liyun_1981 发表于 2018-5-16 23:52

本帖最后由 liyun_1981 于 2018-5-16 23:11 编辑

modstatuseffects.gamedatabundle
{
    "GameDataObjects":[
      {
            "$type":"Game.GameData.StatusEffectGameData, Assembly-CSharp",
            "DebugName":"Scaling_Weapon_SE_Accuracy",
            "ID":"cb6879e9-e07d-4380-8acc-b698891a8555",
            "Components":[
                {
                  "$type":"Game.GameData.StatusEffectComponent, Assembly-CSharp",
                  "StatusEffectType":"AllAccuracy",
                  "OverrideDescriptionString":15,
                  "UseStatusEffectValueAs":"None",
                  "BaseValue":5,
                  "DynamicValue":{
                        "Stat":"None",
                        "SkillDataID":"00000000-0000-0000-0000-000000000000",
                        "Class":"None",
                        "MultiplyBy":1,
                        "Operator":"Add"
                  },
                  "KeywordsIDs":[
                        
                  ],
                  "DurationType":"Infinite",
                  "Duration":0,
                  "MaxStackQuantity":2,
                  "ApplicationBehavior":"StackIfAlreadyApplied",
                  "ApplicationType":"ApplyOnStart",
                  "IntervalRateID":"00000000-0000-0000-0000-000000000000",
                  "StackedChildrenApplyEffects":"false",
                  "ApplicationPrerequisites":{
                        "Conditional":{
                            "Operator":0,
                            "Components":[
                              

                        }
                  },
                  "TriggerAdjustment":{
                        "TriggerOnEvent":"None",
                        "TriggerOffEvent":"None",
                        "ValidateWithAttackFilter":"false",
                        "ParamValue":0,
                        "ValueAdjustment":0,
                        "DurationAdjustment":0,
                        "ResetTriggerOnEffectTimeout":"false",
                        "MaxTriggerCount":0,
                        "IgnoreMaxTriggerCount":"false",
                        "RemoveEffectAtMax":"false",
                        "ChanceToTrigger":1
                  },
                  "PowerLevelScaling":{
                        "UseCharacterLevel":"true",
                        "BaseLevel":1,
                        "LevelIncrement":1,
                        "MaxLevel":0,
                        "ValueAdjustment":5,
                        "DurationAdjustment":0
                  },
                  "IsHostile":"false",
                  "ClearOnCombatEnd":"false",
                  "ClearOnRest":"false",
                  "ClearOnFoodRest":"false",
                  "ClearWhenAttacks":"false",
                  "ClearOnDeath":"false",
                  "HideFromCombatTooltip":"true",
                  "HideFromCombatLog":"false",
                  "HideFromUI":"false",
                  "VisualEffects":[
                        
                  ],
                  "MaterialReplacementID":"00000000-0000-0000-0000-000000000000",
                  "AttackFilter":{
                        "KeywordsIDs":[
                           
                        ],
                        "KeywordLogic":"Or",
                        "Range":"None",
                        "ClassType":"None",
                        "Source":"ParentEquippable",
                        "DefendedBy":"None",
                        "Empowered":"false",
                        "Disengagement":"false",
                        "Stealthed":"false",
                        "UseStealthLinger":"false",
                        "PowerLevel":0,
                        "PowerLevelOperator":"EqualTo",
                        "ChanceToApply":1,
                        "AttackHostility":"Default"
                  },
                  "AttackTargetFilter":{
                        "KeywordsIDs":[
                           
                        ],
                        "KeywordLogic":"Or",
                        "Race":"None",
                        "HealthPercentage":0,
                        "HealthOperator":"EqualTo",
                        "Distance":0,
                        "DistanceOperator":"EqualTo",
                        "HasDOT":"false",
                        "IsMarked":"false",
                        "TargetHostility":"Default"
                  },
                  "ExtraValue":0,
                  "OverridePenetration":0,
                  "DamageTypeValue":"All",
                  "KeywordValueID":"00000000-0000-0000-0000-000000000000",
                  "RaceValue":"None",
                  "StatusEffectTypeValue":"None",
                  "ItemValueID":"00000000-0000-0000-0000-000000000000",
                  "AfflictionTypeValueID":"00000000-0000-0000-0000-000000000000",
                  "StatusEffectsValueIDs":[
                        
                  ],
                  "AttackValueID":"00000000-0000-0000-0000-000000000000",
                  "AttackOverrideValue":"None",
                  "EventValue":"OnApply",
                  "ClassValue":"None",
                  "WeaponTypeValue":"None",
                  "AttackHitType":"None",
                  "SkillValueID":"00000000-0000-0000-0000-000000000000",
                  "AudioEventListID":"00000000-0000-0000-0000-000000000000",
                  "BedRestDaysMinimum":0,
                  "BedRestDaysMaximum":0
                }
         
      },
      {
            "$type":"Game.GameData.StatusEffectGameData, Assembly-CSharp",
            "DebugName":"Scaling_Weapon_SE_Damage",
            "ID":"cf93bd41-47d4-4d0d-90ae-7fd9ef0066cd",
            "Components":[
                {
                  "$type":"Game.GameData.StatusEffectComponent, Assembly-CSharp",
                  "StatusEffectType":"DamageMultiplier",
                  "OverrideDescriptionString":-1,
                  "UseStatusEffectValueAs":"None",
                  "BaseValue":1.05,
                  "DynamicValue":{
                        "Stat":"None",
                        "SkillDataID":"00000000-0000-0000-0000-000000000000",
                        "Class":"None",
                        "MultiplyBy":1,
                        "Operator":"Add"
                  },
                  "KeywordsIDs":[
                        
                  ],
                  "DurationType":"Infinite",
                  "Duration":0,
                  "MaxStackQuantity":2,
                  "ApplicationBehavior":"StackIfAlreadyApplied",
                  "ApplicationType":"ApplyOnStart",
                  "IntervalRateID":"00000000-0000-0000-0000-000000000000",
                  "StackedChildrenApplyEffects":"false",
                  "ApplicationPrerequisites":{
                        "Conditional":{
                            "Operator":0,
                            "Components":[
                              
                           
                        }
                  },
                  "TriggerAdjustment":{
                        "TriggerOnEvent":"None",
                        "TriggerOffEvent":"None",
                        "ValidateWithAttackFilter":"false",
                        "ParamValue":0,
                        "ValueAdjustment":0,
                        "DurationAdjustment":0,
                        "ResetTriggerOnEffectTimeout":"false",
                        "MaxTriggerCount":0,
                        "IgnoreMaxTriggerCount":"false",
                        "RemoveEffectAtMax":"false",
                        "ChanceToTrigger":1
                  },
                  "PowerLevelScaling":{
                        "UseCharacterLevel":"true",
                        "BaseLevel":1,
                        "LevelIncrement":1,
                        "MaxLevel":0,
                        "ValueAdjustment":0.05,
                        "DurationAdjustment":0
                  },
                  "IsHostile":"false",
                  "ClearOnCombatEnd":"false",
                  "ClearOnRest":"false",
                  "ClearOnFoodRest":"false",
                  "ClearWhenAttacks":"false",
                  "ClearOnDeath":"false",
                  "HideFromCombatTooltip":"true",
                  "HideFromCombatLog":"false",
                  "HideFromUI":"true",
                  "VisualEffects":[
                        
                  ],
                  "MaterialReplacementID":"00000000-0000-0000-0000-000000000000",
                  "AttackFilter":{
                        "KeywordsIDs":[
                           
                        ],
                        "KeywordLogic":"Or",
                        "Range":"None",
                        "ClassType":"None",
                        "Source":"ParentEquippable",
                        "DefendedBy":"None",
                        "Empowered":"false",
                        "Disengagement":"false",
                        "Stealthed":"false",
                        "UseStealthLinger":"false",
                        "PowerLevel":0,
                        "PowerLevelOperator":"EqualTo",
                        "ChanceToApply":1,
                        "AttackHostility":"Default"
                  },
                  "AttackTargetFilter":{
                        "KeywordsIDs":[
                           
                        ],
                        "KeywordLogic":"Or",
                        "Race":"None",
                        "HealthPercentage":0,
                        "HealthOperator":"EqualTo",
                        "Distance":0,
                        "DistanceOperator":"EqualTo",
                        "HasDOT":"false",
                        "IsMarked":"false",
                        "TargetHostility":"Default"
                  },
                  "ExtraValue":0,
                  "OverridePenetration":0,
                  "DamageTypeValue":"All",
                  "KeywordValueID":"00000000-0000-0000-0000-000000000000",
                  "RaceValue":"None",
                  "StatusEffectTypeValue":"None",
                  "ItemValueID":"00000000-0000-0000-0000-000000000000",
                  "AfflictionTypeValueID":"00000000-0000-0000-0000-000000000000",
                  "StatusEffectsValueIDs":[
                        
                  ],
                  "AttackValueID":"00000000-0000-0000-0000-000000000000",
                  "AttackOverrideValue":"None",
                  "EventValue":"OnApply",
                  "ClassValue":"None",
                  "WeaponTypeValue":"None",
                  "AttackHitType":"None",
                  "SkillValueID":"00000000-0000-0000-0000-000000000000",
                  "AudioEventListID":"00000000-0000-0000-0000-000000000000",
                  "BedRestDaysMinimum":0,
                  "BedRestDaysMaximum":0
                }
            
      },
      {
            "$type":"Game.GameData.StatusEffectGameData, Assembly-CSharp",
            "DebugName":"Scaling_Weapon_SE_Penetration",
            "ID":"31b89607-0914-4453-8f9d-f5a18aa8327f",
            "Components":[
                {
                  "$type":"Game.GameData.StatusEffectComponent, Assembly-CSharp",
                  "StatusEffectType":"PenetrationRating",
                  "OverrideDescriptionString":-1,
                  "UseStatusEffectValueAs":"None",
                  "BaseValue":0.5,
                  "DynamicValue":{
                        "Stat":"None",
                        "SkillDataID":"00000000-0000-0000-0000-000000000000",
                        "Class":"None",
                        "MultiplyBy":1,
                        "Operator":"Add"
                  },
                  "KeywordsIDs":[
                        
                  ],
                  "DurationType":"Infinite",
                  "Duration":0,
                  "MaxStackQuantity":2,
                  "ApplicationBehavior":"StackIfAlreadyApplied",
                  "ApplicationType":"ApplyOnStart",
                  "IntervalRateID":"00000000-0000-0000-0000-000000000000",
                  "StackedChildrenApplyEffects":"false",
                  "ApplicationPrerequisites":{
                        "Conditional":{
                            "Operator":0,
                            "Components":[
                              
                           
                        }
                  },
                  "TriggerAdjustment":{
                        "TriggerOnEvent":"None",
                        "TriggerOffEvent":"None",
                        "ValidateWithAttackFilter":"false",
                        "ParamValue":0,
                        "ValueAdjustment":0,
                        "DurationAdjustment":0,
                        "ResetTriggerOnEffectTimeout":"false",
                        "MaxTriggerCount":0,
                        "IgnoreMaxTriggerCount":"false",
                        "RemoveEffectAtMax":"false",
                        "ChanceToTrigger":1
                  },
                  "PowerLevelScaling":{
                        "UseCharacterLevel":"true",
                        "BaseLevel":1,
                        "LevelIncrement":1,
                        "MaxLevel":0,
                        "ValueAdjustment":0.5,
                        "DurationAdjustment":0
                  },
                  "IsHostile":"false",
                  "ClearOnCombatEnd":"false",
                  "ClearOnRest":"false",
                  "ClearOnFoodRest":"false",
                  "ClearWhenAttacks":"false",
                  "ClearOnDeath":"false",
                  "HideFromCombatTooltip":"true",
                  "HideFromCombatLog":"false",
                  "HideFromUI":"true",
                  "VisualEffects":[
                        
                  ],
                  "MaterialReplacementID":"00000000-0000-0000-0000-000000000000",
                  "AttackFilter":{
                        "KeywordsIDs":[
                           
                        ],
                        "KeywordLogic":"Or",
                        "Range":"None",
                        "ClassType":"None",
                        "Source":"ParentEquippable",
                        "DefendedBy":"None",
                        "Empowered":"false",
                        "Disengagement":"false",
                        "Stealthed":"false",
                        "UseStealthLinger":"false",
                        "PowerLevel":0,
                        "PowerLevelOperator":"EqualTo",
                        "ChanceToApply":1,
                        "AttackHostility":"Default"
                  },
                  "AttackTargetFilter":{
                        "KeywordsIDs":[
                           
                        ],
                        "KeywordLogic":"Or",
                        "Race":"None",
                        "HealthPercentage":0,
                        "HealthOperator":"EqualTo",
                        "Distance":0,
                        "DistanceOperator":"EqualTo",
                        "HasDOT":"false",
                        "IsMarked":"false",
                        "TargetHostility":"Default"
                  },
                  "ExtraValue":0,
                  "OverridePenetration":0,
                  "DamageTypeValue":"All",
                  "KeywordValueID":"00000000-0000-0000-0000-000000000000",
                  "RaceValue":"None",
                  "StatusEffectTypeValue":"None",
                  "ItemValueID":"00000000-0000-0000-0000-000000000000",
                  "AfflictionTypeValueID":"00000000-0000-0000-0000-000000000000",
                  "StatusEffectsValueIDs":[
                        
                  ],
                  "AttackValueID":"00000000-0000-0000-0000-000000000000",
                  "AttackOverrideValue":"None",
                  "EventValue":"OnApply",
                  "ClassValue":"None",
                  "WeaponTypeValue":"None",
                  "AttackHitType":"None",
                  "SkillValueID":"00000000-0000-0000-0000-000000000000",
                  "AudioEventListID":"00000000-0000-0000-0000-000000000000",
                  "BedRestDaysMinimum":0,
                  "BedRestDaysMaximum":0
                }
            
      }
   
}

liyun_1981 发表于 2018-5-16 23:52

本帖最后由 liyun_1981 于 2019-6-10 00:05 编辑

三、MOD文件说明:
1、items.stringtable 的格式可以直接从游戏官方汉化文件 F:\games\Pillars of Eternity II\PillarsOfEternityII_Data\exported\localized\zh\text\game\items.stringtable 中获得,再添加深蓝色的修改部分,这里我特地把ID设置大一点,不会与官方汉化的ID冲突;
2、moditem.gamedatabundle 和 modstatuseffects.gamedatabundle 的格式可以分别从游戏配置文件 F:\games\Pillars of Eternity II\PillarsOfEternityII_Data\exported\design\gamedata\item.gamedatabundle 和 F:\games\Pillars of Eternity II\PillarsOfEternityII_Data\exported\design\gamedata\statuseffects.gamedatabundle 中复制获得,再添加深蓝色的修改部分,这两个文件的数据是通过GUID相关联的,为了MOD文本的最小化,我只复制修改了必须的内容;这里特别说明下游戏中的GUID是啥,它是由一个包含36个英文和数字字符组成的唯一字符串,用来唯一表示每一个游戏对象 GameDataObject ,每一个文件扩展名以 .gamedatabundle 结尾的配置文件都是同一结构的,即都是由一个游戏对象数组 GameDataObjects 组成,GameDataObjects 包含了多个 GameDataObject 对象,我们自定义MOD只需要修改必要的 GameDataObject 就行了;moditem.gamedatabundle 文件中我用到了一个自定义的 GUID ,02c4584b-df64-5095-da7c-174c8451e1bc ,这是通过我自制的永恒之柱2MOD修改工具 poe.exe 生成的。
参数说明:

poe -d|-e|-g regex src string

-d      解码(即格式化)JSON格式文件

-e      编码(即压缩为一行)JSON格式文件

-g      给自定义MOD对象生成36位的GUID字符串

regex   文件名查询正则表达式,.匹配任意文件名和目录名。

src   文件输入目录

string自定义MOD对象名称字符串

单条命令:

poe -d regex src

poe -e regex src

poe -g string

示例:

poe -d (?i)\..*bundle$ "F:/games/Pillars of Eternity II/PillarsOfEternityII_Data/exported/design/gamedata"
将 .../gamedata 目录下文件扩展名以bundle结尾(忽略大小写)的所有文件进行解码。

poe -e (?i)\..*bundle$ "F:/games/Pillars of Eternity II/PillarsOfEternityII_Data/exported/design/gamedata"
将 .../gamedata 目录下文件扩展名以bundle结尾(忽略大小写)的所有文件进行编码。

poe -g Great_Sword_WarGod
获得自定义MOD对象名称Great_Sword_WarGod的GUID字符串。


补丁2,说明下:解包到游戏数据目录 F:\games\Pillars of Eternity II\PillarsOfEternityII_Data ,override 目录下包含一下几个配置向补丁:
1、2倍移动速度补丁,override\design\gamedata\modcharacters.gamedatabundle
2、人物等级上限修改、人物属性点上限修改、强力能力资源点修改、职业能力资源点修改、武器熟练点修改等补丁,override\design\gamedata\modglobal.gamedatabundle
3、自定义双手巨剑MOD战神之刃补丁,override\design\gamedata\moditem.gamedatabundle ,override\gamedata\modstatuseffects.gamedatabundle ,override\localized\zh\text\game\items.stringtable
获取方式,打开控制台后,输入命令 GiveItem 02c4584b-df64-5095-da7c-174c8451e1bc



自制的永恒之柱2MOD修改工具:请转到我这个帖子下载:强迫症必备,游戏修改党必备,游戏老玩家必备,高端玩家必备,自制游戏统一管理工具,对所有游戏均可参数化配置等等
使用game\bin\poe.bat执行命令。

mmx200 发表于 2018-5-16 23:57

楼主,有没有办法整体调高所有敌人的血量?
本来这代难度就偏低了,想修改难点玩

hgzg 发表于 2018-5-17 00:16

想要控制台解锁双职业惩罚 能做到不?

习惯偏爱轨迹 发表于 2018-5-17 00:19

楼主 萌新求附魔限制解除 修改教程{:3_101:}

esfyoyo 发表于 2018-5-17 00:43

自定义装备的外观去哪里找??

Hugo7 发表于 2018-5-17 00:44

我怎么用了有问题啊,开局跟苍白骑士说完话,他背后的门不开啊,回不到船上。。。

shu19810120 发表于 2018-5-17 00:45

谢谢楼主分享!补丁比较完美了!

xmadx 发表于 2018-5-17 00:54

补丁1的2点主被动技能点无效哦?

史上最渣 发表于 2018-5-17 04:43

膜拜楼主,谢谢教程

g29151 发表于 2018-5-17 08:31

本帖最后由 g29151 于 2018-5-17 08:36 编辑

感謝分享!!推一個

3dm438 发表于 2018-5-17 08:36

支持下。

tonydarksun 发表于 2018-5-17 08:54

谢谢分享!!!!!

liyun_1981 发表于 2018-5-17 09:43

xmadx 发表于 2018-5-17 00:54
补丁1的2点主被动技能点无效哦?

嗯,主动技能和被动技能点的修改是柱子2最坑爹的问题之一,黑石头居然把技能点写死在UI层代码里面。。。这个虽然界面上看还是1点没变,但实际上加1点会提高2点技能,我觉得改UI的代码会让我呕吐,所以只改了数据,哈哈。。。。。。

mmx200 发表于 2018-5-17 09:56

liyun_1981 发表于 2018-5-17 09:43
嗯,主动技能和被动技能点的修改是柱子2最坑爹的问题之一,黑石头居然把技能点写死在UI层代码里面。。。 ...

有办法修改敌人的血量么

championzhao 发表于 2018-5-17 10:18

liyun_1981 发表于 2018-5-16 23:52
modstatuseffects.gamedatabundle
{
    "GameDataObjects":[


给楼主报告BUG,使用此版的自动开启控制台补丁后,新开游戏无法创建人物,直接卡关。

Ming.247 发表于 2018-5-17 10:28

文件放哪里啊?全放一起?第一个放哪里?我记得上次你发的那个,第一个是放另一个地方的呢。

Ming.247 发表于 2018-5-17 10:34

翻了以前的帖子,找到了。~1、解包文件Assembly-CSharp.7z到任意目录,并将Assembly-CSharp.dll文件复制到Pillars of Eternity II\PillarsOfEternityII_Data\Managed目录,建议先备份原版文件再覆盖;

maomao83118 发表于 2018-5-17 10:45

楼主我爱你你您!!!!

Ming.247 发表于 2018-5-17 10:54

championzhao 发表于 2018-5-17 10:18
给楼主报告BUG,使用此版的自动开启控制台补丁后,新开游戏无法创建人物,直接卡关。
...

+1   游戏新开档,聊天过后,矮人不开门,过不去啊。

Ming.247 发表于 2018-5-17 10:54

liyun_1981 发表于 2018-5-16 23:52
三、MOD文件说明:
1、items.stringtable 的格式可以直接从游戏官方汉化文件 F:\games\Pillars of Eternity ...

重大BUF,老板,新档不开门还玩个屁呀。

zz33337051 发表于 2018-5-17 11:22

liyun_1981 发表于 2018-5-16 23:52
三、MOD文件说明:
1、items.stringtable 的格式可以直接从游戏官方汉化文件 F:\games\Pillars of Eternity ...
楼主用了你这个 开局不弹出人物创建界面啊
出不了门


liyun_1981 发表于 2018-5-17 11:38

championzhao 发表于 2018-5-17 10:18
给楼主报告BUG,使用此版的自动开启控制台补丁后,新开游戏无法创建人物,直接卡关。
...

bug已修复,请重新下载3楼的补丁

liyun_1981 发表于 2018-5-17 11:39

zz33337051 发表于 2018-5-17 11:22
楼主用了你这个 开局不弹出人物创建界面啊
出不了门

bug已修复,请重新下载3楼的补丁:lol

a1982a1023 发表于 2018-5-17 11:52

支持支持点赞点赞

mmx200 发表于 2018-5-17 11:54

本来2代难度过低的问题已经被骂的够惨了,诅咒之路玩家等级高了靠ai都能平推,居然还有人想修改的更加简单无脑,你直接改成1键秒杀一切算了
也难怪绝地求生这种竞技类游戏满地多是作弊者
游戏开放了相关参数编辑,不想着去改变数据来弥补游戏初版暂时的缺点,只想着打破制制作者的规则去作弊了。
呵呵 也不知道是什么脑回路;P

liyun_1981 发表于 2018-5-17 12:05

mmx200 发表于 2018-5-17 11:54
本来2代难度过低的问题已经被骂的够惨了,诅咒之路玩家等级高了靠ai都能平推,居然还有人想修改的更加简单 ...

玩游戏从来只有我虐怪,不允许怪虐我:lol

mmx200 发表于 2018-5-17 12:12

liyun_1981 发表于 2018-5-17 12:05
玩游戏从来只有我虐怪,不允许怪虐我

噢,那可惜了

位面旅者 发表于 2018-5-17 12:37

这还不给敌人揍出屎来啊
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 永恒之柱2自制MOD第三弹!自动开启控制台、等级上限100级及自定义装备MOD简易教程(2019年6月20日最新更新支持v5.0.0.0040)