borderlands技术理论吧 关注:3,164贴子:17,392
  • 14回复贴,共1

无主之地2 Mod制作基础知识(一)

取消只看楼主收藏回复

下面是无主之地2Mod,或者说补丁制作基础知识,第一部分。
不多废话,我们开始吧。


IP属地:江苏1楼2017-12-14 16:15回复
    教程分为三部分:1. Mod制作须知 2. 装备修改 3. 技能修改


    IP属地:江苏2楼2017-12-14 16:15
    收起回复
      一 Mod制作基础知识
      所需工具:
      1 GibbedBorderlands2 SaveEdit,就是所谓的SE。
      2 能运行的无主之地2游戏。
      3 好用的文本编辑器,比如UE。当然记事本也行。
      前提:
      1 已开启控制台。
      2 对游戏有基本的了解。如果你对游戏机制和装备配件有了解会方便许多。
      注意事项:
      1装备修改正盗版皆可。技能修改理论上正盗版皆可,但是本教程需要正版且可以联网。
      2 请务必拿出耐心。


      IP属地:江苏3楼2017-12-14 16:15
      收起回复
        二 装备修改
        装备修改较技能修改简单一些。我们举一个例子即可。
        Example:将诺法雷每发弹头数改为4并将弹容扩充2倍。
        1 建立补丁文件
        首先我们建立一个Mod补丁文件,后缀为.txt即可。将其放入游戏的Binaries文件夹下。文件名任意,尽量不要出现汉字。
        比如图中的NorfleetEX.txt

        2 dump需要的数据
        随后我们打开SE。思考:诺法雷的独特配件是枪管。所以找到一把Norfleet,将其数据中的Barrel复制。如图:

        进入游戏主界面,打开控制台,输入:
        objdump GD_Weap_Launchers.Barrel.L_Barrel_Alien_Maliwan_Norfleet并回车,将这个Barrel的数据dump下来。然后去Documents\My Games\Borderlands 2\WillowGame\Logs下找到Launch.log,在其文末找到dump的数据。如图:


        IP属地:江苏4楼2017-12-14 16:17
        收起回复
          3 修改弹头数
          从” *** Property dumpfor object 'WeaponPartDefinitionGD_Weap_Launchers.Barrel.L_Barrel_Alien_Maliwan_Norfleet' ***”开始,下面便是诺法雷枪管的属性。其中最重要的是WeaponAttributeEffects部分,共4条。我们拿第一条为例:
          WeaponAttributeEffects(0)=(AttributeToModify=AttributeDefinition'D_Attributes.Weapon.WeaponDamage',ModifierType=MT_Scale,BaseModifierValue=(BaseValueConstant=1.200000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000))
          可以看到,这条WeaponAttributeEffects编号0,修改的属性是”武器伤害”,修改方式为”Scale(缩放)”,基础修改值为:基础值1.2,基础缩放值1.0(这个值会乘以基础修改值1.2)。
          其他三条类推,依次修改了元素几率、单发弹头数、单发消耗弹药量。我们首先来修改其中的单发弹头数,原文如下:
          WeaponAttributeEffects(2)=(AttributeToModify=AttributeDefinition'D_Attributes.Weapon.WeaponProjectilesPerShot',ModifierType=MT_PreAdd,BaseModifierValue=(BaseValueConstant=2.000000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000))
          可以看到修改属性是“单发弹头数”,修改方式是“添加”,添加了2.00*1.00=2.00发。所以诺法雷一发三个弹头。
          打开我们的NorfleetEX.txt文件,按以下格式输入补丁内容:
          set 装备名 属性名 属性内容。每一项之间用空格间隔,这一条无论多长务必写到一行里。
          举例,如果我们要把弹头数改为4发。装备名为诺法雷枪管GD_Weap_Launchers.Barrel.L_Barrel_Alien_Maliwan_Norfleet,属性名为WeaponAttributeEffects,属性内容为(复制粘贴上面等号后的内容并修改数值、在首尾添加括号)((AttributeToModify=AttributeDefinition'D_Attributes.Weapon.WeaponProjectilesPerShot',ModifierType=MT_PreAdd,BaseModifierValue=(BaseValueConstant=3.000000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000)))。完整来写就是:
          set GD_Weap_Launchers.Barrel.L_Barrel_Alien_Maliwan_NorfleetWeaponAttributeEffects ((AttributeToModify=AttributeDefinition'D_Attributes.Weapon.WeaponProjectilesPerShot',ModifierType=MT_PreAdd,BaseModifierValue=(BaseValueConstant=3.000000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000)))
          如图:

          我打开了记事本的自动换行,其实是在一行的。
          然后我们保存并关闭这个补丁文件。在游戏里打开控制台输入exec Norfleet.txt回车。
          之后进入游戏查看:

          确实是4个弹头了。


          IP属地:江苏5楼2017-12-14 16:18
          回复
            4 修改弹夹容量
            弹夹容量的修改与弹头数几乎一样。但是注意到原dump中并没有弹夹容量这个属性,也就是说保持了默认。我们只要参照下文的常见属性稍作变通即可。单修改弹夹容量的补丁如下:
            setGD_Weap_Launchers.Barrel.L_Barrel_Alien_Maliwan_Norfleet WeaponAttributeEffects((AttributeToModify=AttributeDefinition'D_Attributes.Weapon.WeaponClipSize',ModifierType=MT_Scale,BaseModifierValue=(BaseValueConstant=2.000000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000)))
            注意这里的修改方式是Scale即缩放,所以弹夹容量翻倍。
            将上述代码直接粘贴在NorfleetEX.txt文末,记得另起一行。同理exec即可。
            这里给出常见Attribute的名称:
            每发弹头数:
            (AttributeToModify=AttributeDefinition'D_Attributes.Weapon.WeaponProjectilesPerShot',ModifierType=MT_PreAdd,BaseModifierValue=(BaseValueConstant=4.000000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000))
            弹速:
            (AttributeToModify=AttributeDefinition'D_Attributes.Weapon.WeaponProjectileSpeedMultiplier',ModifierType=MT_Scale,BaseModifierValue=(BaseValueConstant=3.000000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000))
            武器伤害:
            (AttributeToModify=AttributeDefinition'D_Attributes.Weapon.WeaponDamage',ModifierType=MT_Scale,BaseModifierValue=(BaseValueConstant=40.000000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000))
            弹匣容量:
            (AttributeToModify=AttributeDefinition'D_Attributes.Weapon.WeaponClipSize',ModifierType=MT_Scale,BaseModifierValue=(BaseValueConstant=0.000000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000))
            连射数量:
            (AttributeToModify'D_Attributes.WeaponAutomaticBurstCount',ModifierType=MT_PreAdd,BaseModifierValue=(BaseValueConstant=1.000000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleCOnstant=1.000000))
            开火速率:
            (AttributeToModify=AttributeDefinition'D_Attributes.Weapon.WeaponFireInterval',ModifierType=MT_Scale,BaseModifierValue=(BaseValueConstant=-15.500000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000))
            后坐力:
            (AttributeToModify=AttributeDefinition'D_Attributes.Weapon.WeaponPerShotAccuracyImpulse',ModifierType=MT_PreAdd,BaseModifierValue=(BaseValueConstant=1.000000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000))


            IP属地:江苏6楼2017-12-14 16:19
            收起回复
              6 关于SE中的其他配件
              其他配件均可以按照上面的例子修改。其中比较特殊的是Balance。我们比较感兴趣的是这个部件保留着游戏里一些约束。比如无限不可能出现Bandit握把,要打破这个限制,我们可以做如下修改:
              dump无限的balance数据。头部如下:
              [0071.09]Log: *** Property dump for object 'WeaponBalanceDefinition GD_Weap_Pistol.A_Weapons_Legendary.Pistol_Vladof_5_Infinity'***
              [0071.09]Log: === WeaponBalanceDefinition properties ===
              [0071.09]Log: WeaponPartListCollection=WeaponPartListCollectionDefinition'GD_Weap_Pistol.A_Weapons_Legendary.Pistol_Vladof_5_Infinity:PartList'
              [0071.09]Log: RuntimePartListCollection=WeaponPartListCollectionDefinition'GD_Weap_Pistol.A_Weapons_Legendary.Pistol_Vladof_5_Infinity:WeaponPartListCollectionDefinition_107'
              注意最后一行的RuntimePartListCollection后面的Definition:GD_Weap_Pistol.A_Weapons_Legendary.Pistol_Vladof_5_Infinity:WeaponPartListCollectionDefinition_107。我们将它dump下来,得到如下内容:
              [0134.28]Log: === WeaponPartListCollectionDefinition properties ===
              [0134.28]Log: AssociatedWeaponType=WeaponTypeDefinition'GD_Weap_Pistol.A_Weapons.WeaponType_Vladof_Pistol'
              [0134.28]Log: BodyPartData=(bEnabled=True,WeightedParts=((Part=WeaponPartDefinition'GD_Weap_Pistol.Body.Pistol_Body_Vladof_4',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2)))
              [0134.28]Log: GripPartData=(bEnabled=True,WeightedParts=((Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Vladof',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2),(Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Dahl',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2),(Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Torgue',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2),(Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Maliwan',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2),(Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Jakobs',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2),(Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Hyperion',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2)))
              在GripPartData中,可以看到这把枪不允许bandit握把生成。我们可以在补丁中做如下修改:
              GripPartData=(bEnabled=True,WeightedParts=((Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Vladof',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2),(Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Dahl',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2),(Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Torgue',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2),(Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Maliwan',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2),(Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Jakobs',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2),(Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Hyperion',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2),(Part=WeaponPartDefinition'GD_Weap_Pistol.Grip.Pistol_Grip_Bandit',Manufacturers=,MinGameStageIndex=0,MaxGameStageIndex=1,DefaultWeightIndex=2)))
              注意文末增加了Bandit握把的定义。
              善用dump,并多dump那些你看起来感兴趣的项目。所有GD_开头的项目基本都可以dump,各种collection、definition也是。比如我们想知道哈罗德的弹头分裂是哪里决定的,我们可以dump哈罗德的枪管,然后容易发现其中有一项CustomFiringModeDefinition
              明显就是我们想要的。Dump出它后面给的定义,就能看到哈罗德弹头分裂的详细设置。其中三个TimerEvents决定了弹头分裂的数量、距离、角度等,可以很方便的修改。其实整个CustomFiringModeDefinition项我们可以直接搬到其他武器上去。
              装备修改应该说比SE更进一步了吧。
              最后,如何修改武器皮肤。目前给出两个比较简单的办法:
              1 set 目标武器SE中的MaterialParent 拥有目标皮肤武器的SE中的Material项dump后GunMaterial一栏的数据
              2 同上,将Parent关键字换成Material关键字。
              第一种会将后面武器的皮肤混合到前面武器上。
              第二种会把后面武器的皮肤直接替换到前面武器上。
              第二种更严格一些,武器差距越大(类型、生产商),效果越差。
              注:较复杂的办法:哪怕是国外,Mod制作的资料也是少之又少非常少,更不用说其中的皮肤修改了。不过如果你真的感兴趣,我确实找到这样一份资料:
              1jIzltquf7mt


              IP属地:江苏8楼2017-12-14 16:21
              回复
                三 技能修改部分
                为方便,我们建立一个新的skill.txt用来编辑技能。
                技能修改与装备修改不同,需要用到hotfix机制。简单来说,hotfix分为三种:
                1 Patch
                2OnDemand
                3 Level
                Patch类hotfix严格来讲和我们平时写的set语句并没有什么区别。输入、回车,就生效了。这类语句对GearBox是很有用的,对Modder没什么用处。
                OnDemand类语句执行之后,只有当被它修改的内容实际载入时才会生效。典型例子就是技能相关的内容。比如你在游戏主界面obj dump GD_Soldier_Skills.Gunpowder.Nuke是拿不到任何数据的,只有你选择了大兵并且进入游戏,大兵的技能数据才会真正载入。
                Leve类hotfix语句执行之后,当每次角色级别改变的时候生效。典型例子是用来修改各种与等级有关的内容,比如稀有怪的出现概率。我们暂时不做讨论。
                我们修改技能用的是OnDemand类的hotfix。它的语法如下:
                无论修改了多少个技能有关的内容,总共只能出现两条set语句:
                setTransient.SparkServiceConfiguration_6 Keys (“修改1名称”,”修改2名称”,”修改3名称以此类推”)
                setTransient.SparkServiceConfiguration_6 Values (“修改1内容”,” 修改2内容”,” 修改3内容以此类推”)
                比如我们想要将Maya的Fleet技能描述修改为:“justlike a Hong Kong journalist”
                第一句set标明每次修改的名字。我们只有一次修改(修改技能描述),所以编辑如下:
                setTransient.SparkServiceConfiguration_6 Keys("SparkOnDemandPatchEntry-Maya1")
                其中SparkOnDemandPatchEntry表示我下面会进行一次OnDemand修改,Maya1表示修改的名称是Maya1。这个Maya1更多的是给人看而不是给游戏看,所以取一个看起来易懂的名称即可。
                第二句set正式开始修改。首先去文末查到Fleet技能的名称(你也可以去SE里拿到这些名称):GD_Siren_Skills.Motion.Fleet.然后我们将它dump下来(注意主界面是dump不了的,需要你选择一个Maya并进入游戏),在log文件中查看。
                可以看到SkillDescription一行保存的即技能描述。于是我们如下编辑:
                setTransient.SparkServiceConfiguration_6 Values("GD_Siren_Streaming,GD_Siren_Skills.Motion.Fleet,SkillDescription,, justlike a Hong Kong journalist ")
                注意,OnDemand语句values的格式如下:"<package>,<object>,<path>,<old_value>,<value>"
                package是GD_Siren_Streaming,这个是固定的。每个角色均有这样一个package,文末有整理。
                object是你要修改的目标,我们这里自然是fleet技能,修改的path是技能描述SkillDescription,old_value我们可以不填,value是你要修改成的值。
                现在skill.txt内容如下:
                set Transient.SparkServiceConfiguration_6Keys ("SparkOnDemandPatchEntry-Maya1")
                setTransient.SparkServiceConfiguration_6 Values("GD_Siren_Streaming,GD_Siren_Skills.Motion.Fleet,SkillDescription,, justlike a Hong Kong journalist ")
                这两条语句括号内都可以有使用逗号分隔的多项,每一项用引号括起来。关键是上下依次一一对应。
                保存。在游戏主界面里exec即可。
                关于描述修改,还有一点注意事项。在你想要改变颜色的字段前后分别加[skill]和[-skill]可以使其变成淡黄色,就像官方的技能描述一样。同样的还有[slag]和[-slag],[shock]和[-shock],[incendiary]和[-incendiary],[corrosive]和[-corrosive]。就不多做解释了。
                接下来是修改技能效果。跟修改装备大同小异,给出一个例子,增加fleet的每级加速提高至15%:
                setTransient.SparkServiceConfiguration_6 Keys ("SparkOnDemandPatchEntry-Maya2")
                setTransient.SparkServiceConfiguration_6 Values ("GD_Siren_Streaming,GD_Siren_Skills.Motion.Fleet,SkillEffectDefinitions,,((AttributeToModify=AttributeDefinition'D_Attributes.GameplayAttributes.FootSpeed',bIncludeDuelingTargets=False,bIncludeSelfAsTarget=False,bOnlyEffectTargetsInRange=False,bExcludeNonPlayerCharacters=False,EffectTarget=TARGET_Self,TargetInstanceDataName=,TargetCriteria=CRITERIA_None,ModifierType=MT_Scale,BaseModifierValue=(BaseValueConstant=0.100000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000),GradeToStartApplyingEffect=1,PerGradeUpgradeInterval=1,PerGradeUpgrade=(BaseValueConstant=0.150000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000),BonusUpgradeList=))")
                将GD_Siren_Skills.Motion.Fleet的SkillEffectDefinitions项照抄,并修改PerGradeUpgrade的BaseValueConstant至0.15即可。
                注意SkillEffectDefinitions是技能最重要的,也是我们一般最想要修改的部分。其中各项基本都可以理解。比如BaseModifierValue 中的BaseValueConstant是技能生效后的基础值,BaseValueScaleConstant是该基础值的乘数。PerGradeUpgrade中的BaseValueConstant是每级技能增加的基础值,BaseValueScaleConstant是该基础值的乘数。
                有趣的是GradeToStartApplyingEffect项,我们可以把它修改为3来让加速加成在fleet超过三点时才生效。
                注意到有些技能加成不止一个,dump下来的SkillEffectDefinitions也就不止一项。极端例子比如大兵的Ranger技能,总共有7个加成。遗憾的是,log中虽然分项显示了这些加成,实际上依然是一个语句。如果我们要修改其中一条,我们需要把全部的effect照抄、合并并修改其中想要修改的部分。注意语法。因为虽然抄了一大堆,但这一堆语句本质上仍然是“第二个set语句括号中的一项”,所以应该放在一对引号中。这里括号数量较多,注意左右匹配。


                IP属地:江苏9楼2017-12-14 16:21
                收起回复
                  添加删除某个技能的SkillEffectDefinitions也是可以的。比如我们想要使Fleet技能除去加速,每级还增加10%的暴击伤害,可以做如下编辑(为方便省略了整第一句set与第二句set里的技能描述修改):
                  setTransient.SparkServiceConfiguration_6 Values("GD_Siren_Streaming,GD_Siren_Skills.Motion.Fleet,SkillEffectDefinitions,,((AttributeToModify=AttributeDefinition'D_Attributes.GameplayAttributes.FootSpeed',bIncludeDuelingTargets=False,bIncludeSelfAsTarget=False,bOnlyEffectTargetsInRange=False,bExcludeNonPlayerCharacters=False,EffectTarget=TARGET_Self,TargetInstanceDataName=,TargetCriteria=CRITERIA_None,ModifierType=MT_Scale,BaseModifierValue=(BaseValueConstant=0.100000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000),GradeToStartApplyingEffect=1,PerGradeUpgradeInterval=1,PerGradeUpgrade=(BaseValueConstant=0.100000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000),BonusUpgradeList=),(AttributeToModify=AttributeDefinition'D_Attributes.GameplayAttributes.PlayerCriticalHitBonus',bIncludeDuelingTargets=False,bIncludeSelfAsTarget=False,bOnlyEffectTargetsInRange=False,bExcludeNonPlayerCharacters=False,EffectTarget=TARGET_Self,TargetInstanceDataName=,TargetCriteria=CRITERIA_None,ModifierType=MT_Scale,BaseModifierValue=(BaseValueConstant=0.100000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000),GradeToStartApplyingEffect=3,PerGradeUpgradeInterval=1,PerGradeUpgrade=(BaseValueConstant=0.100000,BaseValueAttribute=None,InitializationDefinition=None,BaseValueScaleConstant=1.000000),BonusUpgradeList=))")
                  从外向内分析这个括号。首尾最外层均有set语句自带的括号。之后是一对引号,表明中间的内容为一项。之后去掉开头的GD_Siren_Streaming,GD_Siren_Skills.Motion.Fleet,SkillEffectDefinitions,,(packageobject path和oldvalue),剩下的内容均为SkillEffectDefinitions本体。形式如下:
                  ((AttributeToModify…),(AttributeToModify…))
                  这样就清晰多了。将SkillEffectDefinitions改为了两项,分别修改了移动速度和暴击伤害。
                  想要更清晰的理解,可以在执行这个补丁之后将技能dump下来。Log里会把两个属性分开写,很易懂。
                  如果想要删除某项加成,这里推荐将其SkillEffectDefinitions中该属性的各种值均置为0,而不是通过重写将其删掉。除去游戏稳定性,后文还会提到一个特殊原因。
                  修改技能之后,我们需要修改技能加成显示,就是你在技能树中查看某个技能时显示的“移动速度:+10%”等。
                  每个“移动速度:+10%”这样的显示均为技能dump里SkillEffectPresentations的一项。而SkillEffectPresentations指向一个AttributePresentationDefinition,这里面存放着加成的描述。所以我们将Fleet的技能dump下来,它默认只有一条SkillEffectPresentations,指向AttributePresentationDefinition'GD_Siren_Skills.Motion.Fleet:AttributePresentationDefinition_77'。
                  我们再把这个GD_Siren_Skills.Motion.Fleet:AttributePresentationDefinition_77dump下来,可以看到真正的描述存在于它的Description项中。需要注意的只有一点,这里一般用$NUMBER$来直接显示加成数值。所以最终形式大约是这样:
                  set Transient.SparkServiceConfiguration_6Values (“GD_Siren_Streaming,GD_Siren_Skills.Motion.Fleet:AttributePresentationDefinition_77, Description,,Speed:$NUMBER$”)
                  需要注意,这里的$NUMBER$系统会自动计算。但是如果有多种加成,到底计算哪种加成的数值由该AttributePresentationDefinition中的Attribute项决定。我们可以在这个GD_Siren_Skills.Motion.Fleet:AttributePresentationDefinition_77的dump中看到Attribute是AttributeDefinition'D_Attributes.GameplayAttributes.FootSpeed,也就是说,这条技能描述中的$NUMBER$计算的是这个技能中对移动速度的加成。


                  IP属地:江苏10楼2017-12-14 16:21
                  回复
                    理解一下技能卡片中那行“移动速度:+10%”的产生原理:Fleet这个技能原本默认只有一个加成,加成显示用的是SkillEffectPresentations指向的GD_Siren_Skills.Motion.Fleet:AttributePresentationDefinition_77。它通过attribute项找到SkillEffectDefinitions中加移动速度的那一项,并计算出目前加成数值,把这个值显示到$NUMBER$处。
                    如果你明白了这行标识的产生原理,问题就来了。回到一开始,我们想为Fleet增加第二个暴击加成。一个SkillEffectPresentations倒是可以指向多条AttributePresentationDefinition(逗号隔开),但是我们手头只有一条GD_Siren_Skills.Motion.Fleet:AttributePresentationDefinition_77。想要显示“移动速度:+10%暴击伤害:+xx%”这样的字样,可行的路只有这几条:
                    1 你的暴击伤害也是每级加10%。严格来说,你的暴击伤害加成里那四个数值跟移动速度的四个数值完全一样。那你可以用这一个加成显示通过换行来显示两种加成,反正算出来$NUMBER$都一样。你可以通过在预想的行末输入<br>来换行。
                    2 能不能为Fleet添加一个类似GD_Siren_Skills.Motion.Fleet:AttributePresentationDefinition_77这样的项目,比如GD_Siren_Skills.Motion.Fleet:AttributePresentationDefinition_78,并让SkillEffectPresentations指向这两个AttributePresentationDefinition呢?
                    遗憾的是,通过观察原本就有多条AttributePresentationDefinition的技能dump,可以发现定义末尾的编号无规律可循(而且也不知道应该怎么添加)。比如Maya灵犀之眼的加成描述分别为AttributePresentationDefinition'GD_Siren_Skills.Harmony.MindsEye:AttributePresentationDefinition_77和AttributePresentationDefinition'GD_Siren_Skills.Harmony.MindsEye:AttributePresentationDefinition_1。同一个技能两种加成的AttributePresentationDefinition编号让人摸不到头脑。
                    所以只剩下最后一条路,就是借用其他技能的AttributePresentationDefinition项。其中最好借的莫过于大兵的Ranger了。7项加成,数值也完全一样,$NUMBER$自然也一样。所以改到一条AttributePresentationDefinition里,空出来的那些AttributePresentationDefinition就可以为你所用了!只需要修改一下这些AttributePresentationDefinition的Attribute和Descprition,就可以让你愉快地为技能添加新的加成描述。
                    之所以上文提到“删除某个技能的某个加成,最好是置为0而不是删掉”也是这个原因。因为我们不知道删掉加成后系统会不会顺手就把(本可以拿来二次利用的)技能加成描述给注销(析构或者禁用)掉。
                    方便起见,这里给出释放大兵Ranger的AttributePresentationDefinition示例:
                    setTransient.SparkServiceConfiguration_6 Keys ("SparkOnDemandPatchEntry-FreeAxtonRangerAPD1","SparkOnDemandPatchEntry- FreeAxtonRangerAPD2")
                    setTransient.SparkServiceConfiguration_6 Values ("GD_Soldier_Streaming,GD_Soldier_Skills.Gunpowder.Ranger,SkillEffectPresentations,,(AttributePresentationDefinition'GD_Soldier_Skills.Gunpowder.Ranger:AttributePresentationDefinition_10',)","GD_Soldier_Streaming,GD_Soldier_Skills.Gunpowder.Ranger:AttributePresentationDefinition_10,Description,,GunDamage: $NUMBER$<br>Accuracy: $NUMBER$<br>Critical Hit Damage:$NUMBER$<br>Fire Rate: $NUMBER$<br>Magazine Size:$NUMBER$<br>Reload Speed: $NUMBER$<br>Maximum Health: $NUMBER$")
                    大兵的AttributePresentationDefinition原本有7个,编号为0,1,2,3,4,5,10。现在只用了一个10,0到5就可以为你所用了。
                    同理,你也可以去其他原本有多个数值相同加成的技能那里借AttributePresentationDefinition,这里就不多说了。
                    关于交换技能位置:
                    你可以通过obj dump GD_Assassin_Skills.skilltree.Branch_Bloodshed或者诸如此类的语句来获取角色某一列的技能表。其中包含按Tier分的诸多技能定义,从左到右、从上到下。
                    于是你可以使用类似这样的语句来交换技能位置(交换Fearless与Grim):
                    "GD_Assassin_Streaming,GD_Assassin_Skills.SkillTree.Branch_BloodShed,Tiers[1].Skills[0],,SkillDefinition'GD_Assassin_Skills.Cunning.Fearless'"
                    "GD_Assassin_Streaming,GD_Assassin_Skills.SkillTree.Branch_Cunning,Tiers[1].Skills[0],,SkillDefinition'GD_Assassin_Skills.Bloodshed.Grim'"
                    说白了就是改了下指针。非常方便。


                    IP属地:江苏11楼2017-12-14 16:22
                    回复
                      修改完技能,剩下的就是修改游戏内mod加成了。有了前面知识的铺垫,你会发现dump出的mod内容非常好理解。这里就不贴了。
                      至此,帖子的正文算是完结了。我们现在应该可以对武器以及技能树进行比较深的修改了。潘多拉的环境我们尚无力改变,但我们已经能一定程度上影响游戏的玩法了。
                      下面是lz的一点点感受,与知识性的内容无关了。比较冗长,没什么具体意义,大家可以忽略。
                      玩这个游戏两年左右了。不长,也不算短。原版的表层上的知识也算知道个五五六六了(我不敢说七七八八),深层次的数据、配件、细节还是不到位。但对于一个普通玩家,说实话,已经有那么一点点乏味了。
                      一个月前吧,开始接触社区补丁。之后把补丁的内容翻译了一下,搬运到贴吧来。两个吧的吧友都很友善,技术理论吧的dalao也指出了我的许多翻译错误,我也学到了很多之前不知道的知识。算是受到了吧友们的鼓励吧,我开始考虑能不能为这个游戏、这个吧做些什么。之后想起了自己一直不怎么敢动手的潜猎,出乎意料的是居然几遍就过去了。想着魔女潜猎的视频并不是很多(可能有很多打得过的朋友,但是比鲨虫之类要少一些),于是自己做了一个。怎么说呢再次感受到了大家的好意。无论是打不过的吧友,还是提出优化的dalao,对我一个萌新都很友好。用专业一点的词汇,好感度刷得差不多了(笑
                      其实最初接触社区补丁的时候,就在想 为什么我自己不能做一个呢?然后去google查资料,意料之中的少。其实不仅是少,最初用类似borderlands 2 modding这样的关键词,根本就什么都没查到。倒是有一些modding有关的社区,但是人少的可怜,年代也久,帖子还大部分是求se改枪的。
                      最后还是自力更生。总结了下社区补丁的语句结构,然后用不知道从哪里找到的dump命令自己试。结果发现事实异常简单。实验了一天左右,把常见的坑跳了一遍,觉得可以写个基础教程出来了。于是用了有7个小时吧,完成了这个帖子。
                      Mod本身就是延续游戏寿命的重要工具。我之前是半个Minecraft玩家,所以对Mod相对容易接受(那是一个有了mod完全就是两款游戏的游戏,只是最近的GTNH看着就肝不动…)。像装备修改、技能修改,这种工具潜力是非常非常大的。就看脑洞几何,怎么使用了。
                      还有,这帖子虽然开始标了(一),但那只是用来表示“我写的内容是基础中的一部分”,至于有没有(二)、(三),可能就要看以后了。其实剩下的掉落修改等内容,应该对大家已经不是什么问题了。
                      我说完了。谢谢大家。


                      IP属地:江苏12楼2017-12-14 16:22
                      收起回复
                        附录:
                        技能列表
                        SkillData- Assasin
                        Skill
                        1 GD_Assassin_Skills.ActionSkill.Skill_Deception
                        2GD_Assassin_Skills.Sniping.HeadShot
                        3GD_Assassin_Skills.Sniping.Optics
                        4GD_Assassin_Skills.Sniping.Killer
                        5GD_Assassin_Skills.Sniping.Precision
                        6GD_Assassin_Skills.Sniping.OneShotOneKill
                        7GD_Assassin_Skills.Sniping.Bore
                        8GD_Assassin_Skills.Sniping.Velocity
                        9GD_Assassin_Skills.Sniping.KillConfirmed
                        10GD_Assassin_Skills.Sniping.AtOneWithTheGun
                        11GD_Assassin_Skills.Sniping.CriticalAscention
                        12GD_Assassin_Skills.Cunning.FastHands
                        13 GD_Assassin_Skills.Cunning.FastHands
                        14GD_Assassin_Skills.Cunning.Fearless
                        15GD_Assassin_Skills.Cunning.Ambush
                        16GD_Assassin_Skills.Cunning.RisingShot
                        17GD_Assassin_Skills.Cunning.DeathMark
                        18GD_Assassin_Skills.Cunning.Unforseen
                        19GD_Assassin_Skills.Cunning.Innervate
                        20GD_Assassin_Skills.Cunning.TwoFang
                        21GD_Assassin_Skills.Cunning.DeathBlossom
                        22GD_Assassin_Skills.Bloodshed.KillingBlow
                        23GD_Assassin_Skills.Bloodshed.IronHand
                        24GD_Assassin_Skills.Bloodshed.Grim
                        25GD_Assassin_Skills.Bloodshed.BeLikeWater
                        26GD_Assassin_Skills.Bloodshed.Followthrough
                        27GD_Assassin_Skills.Bloodshed.Execute
                        28GD_Assassin_Skills.Bloodshed.Backstab
                        29GD_Assassin_Skills.Bloodshed.Resurgence
                        30GD_Assassin_Skills.Bloodshed.LikeTheWind
                        31GD_Assassin_Skills.Bloodshed.ManyMustFall
                        PlayerClass
                        GD_Assassin.Character.CharClass_Assassin
                        Skill
                        1GD_Soldier_Skills.Scorpio.Skill_Scorpio
                        2GD_Soldier_Skills.Guerrilla.Sentry
                        3GD_Soldier_Skills.Guerrilla.Ready
                        4GD_Soldier_Skills.Guerrilla.LaserSight
                        5GD_Soldier_Skills.Guerrilla.Willing
                        6GD_Soldier_Skills.Guerrilla.Onslaught
                        7GD_Soldier_Skills.Guerrilla.ScorchedEarth
                        8GD_Soldier_Skills.Guerrilla.Able
                        9GD_Soldier_Skills.Guerrilla.Grenadier
                        10GD_Soldier_Skills.Guerrilla.CrisisManagement
                        11GD_Soldier_Skills.Guerrilla.DoubleUp
                        12GD_Soldier_Skills.Gunpowder.Impact
                        13GD_Soldier_Skills.Gunpowder.Expertise
                        14GD_Soldier_Skills.Gunpowder.Overload
                        15GD_Soldier_Skills.Gunpowder.MetalStorm
                        16GD_Soldier_Skills.Gunpowder.Steady
                        17GD_Soldier_Skills.Gunpowder.LongBowTurret
                        18GD_Soldier_Skills.Gunpowder.Battlefront
                        19GD_Soldier_Skills.Gunpowder.DutyCalls
                        20GD_Soldier_Skills.Gunpowder.DoOrDie
                        21GD_Soldier_Skills.Gunpowder.Ranger
                        22GD_Soldier_Skills.Gunpowder.Nuke
                        23GD_Soldier_Skills.Survival.HealthY
                        24GD_Soldier_Skills.Survival.Preparation
                        25GD_Soldier_Skills.Survival.LastDitchEffort
                        26GD_Soldier_Skills.Survival.Pressure
                        27GD_Soldier_Skills.Survival.Forbearance
                        28GD_Soldier_Skills.Survival.PhalanxShield
                        29GD_Soldier_Skills.Survival.QuickCharge
                        30GD_Soldier_Skills.Survival.Resourceful
                        31GD_Soldier_Skills.Survival.Mag-Lock
                        32GD_Soldier_Skills.Survival.Grit
                        33GD_Soldier_Skills.Survival.Gemini
                        PlayerClass
                        GD_Soldier.Character.CharClass_Soldier
                        Skill
                        1GD_Tulip_Mechromancer_Skills.Action.Skill_DeathTrap
                        2GD_Tulip_Mechromancer_Skills.BestFriendsForever.CloseEnough
                        3GD_Tulip_Mechromancer_Skills.BestFriendsForever.CookingUpTrouble
                        4GD_Tulip_Mechromancer_Skills.BestFriendsForever.FancyMathematics
                        5GD_Tulip_Mechromancer_Skills.BestFriendsForever.BuckUp
                        6GD_Tulip_Mechromancer_Skills.BestFriendsForever.TheBetterHalf
                        7GD_Tulip_Mechromancer_Skills.BestFriendsForever.PotentAsAPony
                        8GD_Tulip_Mechromancer_Skills.BestFriendsForever.UpshotRobot
                        9GD_Tulip_Mechromancer_Skills.BestFriendsForever.UnstoppableForce
                        10GD_Tulip_Mechromancer_Skills.BestFriendsForever.ExplosiveClap
                        11GD_Tulip_Mechromancer_Skills.BestFriendsForever.MadeOfSternerStuff
                        12GD_Tulip_Mechromancer_Skills.BestFriendsForever.20PercentCooler
                        13GD_Tulip_Mechromancer_Skills.BestFriendsForever.SharingIsCaring
                        14GD_Tulip_Mechromancer_Skills.LittleBigTrouble.MorePep
                        15GD_Tulip_Mechromancer_Skills.LittleBigTrouble.Myelin
                        16GD_Tulip_Mechromancer_Skills.LittleBigTrouble.ShockStorm
                        17GD_Tulip_Mechromancer_Skills.LittleBigTrouble.TheStare
                        18GD_Tulip_Mechromancer_Skills.LittleBigTrouble.StrengthOfFiveGorillas
                        19GD_Tulip_Mechromancer_Skills.LittleBigTrouble.ElectricalBurn
                        20GD_Tulip_Mechromancer_Skills.LittleBigTrouble.ShockAndAAAGGGHHH
                        21GD_Tulip_Mechromancer_Skills.LittleBigTrouble.EvilEnchantress
                        22GD_Tulip_Mechromancer_Skills.LittleBigTrouble.OneTwoBoom
                        23GD_Tulip_Mechromancer_Skills.LittleBigTrouble.WiresDontTalk
                        24GD_Tulip_Mechromancer_Skills.LittleBigTrouble.InterspersedOutburst
                        25GD_Tulip_Mechromancer_Skills.LittleBigTrouble.LightningStrike
                        26GD_Tulip_Mechromancer_Skills.LittleBigTrouble.MakeItSparkle
                        27GD_Tulip_Mechromancer_Skills.EmbraceChaos.SmallerLighterFaster
                        28GD_Tulip_Mechromancer_Skills.EmbraceChaos.Anarchy
                        29GD_Tulip_Mechromancer_Skills.EmbraceChaos.PreshrunkCyberpunk
                        30GD_Tulip_Mechromancer_Skills.EmbraceChaos.RobotRampage
                        31GD_Tulip_Mechromancer_Skills.EmbraceChaos.BloodSoakedShields
                        32GD_Tulip_Mechromancer_Skills.EmbraceChaos.AnnoyedAndroid
                        33GD_Tulip_Mechromancer_Skills.EmbraceChaos.Discord
                        34GD_Tulip_Mechromancer_Skills.EmbraceChaos.TypecastIconoclast
                        35GD_Tulip_Mechromancer_Skills.EmbraceChaos.RationalAnarchist
                        36GD_Tulip_Mechromancer_Skills.EmbraceChaos.DeathFromAbove
                        37GD_Tulip_Mechromancer_Skills.EmbraceChaos.TheNthDegree
                        38GD_Tulip_Mechromancer_Skills.EmbraceChaos.WithClaws


                        IP属地:江苏13楼2017-12-14 16:24
                        回复
                          PlayerClass
                          GD_Tulip_Mechromancer.Character.CharClass_Mechromancer
                          Skill
                          1GD_Lilac_SkillsBase.ActionSkill.Skill_Psycho
                          2GD_Lilac_Skills_Bloodlust.Skills.BloodfilledGuns
                          3GD_Lilac_Skills_Bloodlust.Skills.BloodyTwitch
                          4GD_Lilac_Skills_Bloodlust.Skills.TasteOfBlood
                          5GD_Lilac_Skills_Bloodlust.Skills.BloodyRevival
                          6GD_Lilac_Skills_Bloodlust.Skills.BloodOverdrive
                          7GD_Lilac_Skills_Bloodlust.Skills.BloodBath
                          8GD_Lilac_Skills_Bloodlust.Skills.BuzzAxeBombadier
                          9GD_Lilac_Skills_Bloodlust.Skills.FuelTheBlood
                          10GD_Lilac_Skills_Bloodlust.Skills.BloodTrance
                          11GD_Lilac_Skills_Bloodlust.Skills.BoilingBlood
                          12GD_Lilac_Skills_Bloodlust.Skills.NervousBlood
                          13GD_Lilac_Skills_Bloodlust.Skills.Bloodsplosion
                          14GD_Lilac_Skills_Bloodlust.Skills._Bloodlust
                          15GD_Lilac_Skills_Mania.Skills.EmptyRage
                          16GD_Lilac_Skills_Mania.Skills.PullThePin
                          17GD_Lilac_Skills_Mania.Skills.FeedTheMeat
                          18GD_Lilac_Skills_Mania.Skills.EmbraceThePain
                          19GD_Lilac_Skills_Mania.Skills.FuelTheRampage
                          20GD_Lilac_Skills_Mania.Skills.ThrillOfTheKill
                          21GD_Lilac_Skills_Mania.Skills.LightTheFuse
                          22GD_Lilac_Skills_Mania.Skills.StripTheFlesh
                          23GD_Lilac_Skills_Mania.Skills.RedeemTheSoul
                          24GD_Lilac_Skills_Mania.Skills.SaltTheWound
                          25GD_Lilac_Skills_Mania.Skills.SilenceTheVoices
                          26GD_Lilac_Skills_Mania.Skills.ReleaseTheBeast
                          27GD_Lilac_Skills_Hellborn.Skills.BurnBabyBurn
                          28GD_Lilac_Skills_Hellborn.Skills.FuelTheFire
                          29GD_Lilac_Skills_Hellborn.Skills.NumbedNerves
                          30GD_Lilac_Skills_Hellborn.Skills.PainIsPower
                          31GD_Lilac_Skills_Hellborn.Skills.ElementalElation
                          32GD_Lilac_Skills_Hellborn.Skills.DelusionalDamage
                          33GD_Lilac_Skills_Hellborn.Skills.FireFiend
                          34GD_Lilac_Skills_Hellborn.Skills.FlameFlare
                          35GD_Lilac_Skills_Hellborn.Skills.HellfireHalitosis
                          36GD_Lilac_Skills_Hellborn.Skills.ElementalEmpathy
                          37GD_Lilac_Skills_Hellborn.Skills.RavingRetribution
                          38GD_Lilac_Skills_Hellborn.Skills.FireStatusDetector
                          39GD_Lilac_Skills_Hellborn.Skills.AppliedStatusEffectListener
                          PlayerClass
                          GD_Lilac_PlayerClass.Character.CharClass_LilacPlayerClass
                          Skill
                          1GD_Siren_Skills.Phaselock.Skill_Phaselock
                          2GD_Siren_Skills.Motion.Ward
                          3GD_Siren_Skills.Motion.Accelerate
                          4GD_Siren_Skills.Motion.Suspension
                          5GD_Siren_Skills.Motion.KineticReflection
                          6GD_Siren_Skills.Motion.Fleet
                          7GD_Siren_Skills.Motion.Converge
                          8GD_Siren_Skills.Motion.Inertia
                          9GD_Siren_Skills.Motion.Quicken
                          10GD_Siren_Skills.Motion.SubSequence
                          11GD_Siren_Skills.Motion.ThoughtLock
                          12GD_Siren_Skills.Harmony.MindsEye
                          13GD_Siren_Skills.Harmony.SweetRelease
                          14GD_Siren_Skills.Harmony.Restoration
                          15GD_Siren_Skills.Harmony.Wreck
                          16GD_Siren_Skills.Harmony.Elated
                          17GD_Siren_Skills.Harmony.Res
                          18GD_Siren_Skills.Harmony.Recompense
                          19GD_Siren_Skills.Harmony.Sustenance
                          20GD_Siren_Skills.Harmony.LifeTap
                          21 GD_Siren_Skills.Harmony.Scorn
                          22GD_Siren_Skills.Cataclysm.Flicker
                          23GD_Siren_Skills.Cataclysm.Foresight
                          24GD_Siren_Skills.Cataclysm.Immolate
                          25GD_Siren_Skills.Cataclysm.Helios
                          26GD_Siren_Skills.Cataclysm.ChainReaction
                          27GD_Siren_Skills.Cataclysm.CloudKill
                          28GD_Siren_Skills.Cataclysm.Backdraft
                          29GD_Siren_Skills.Cataclysm.Reaper
                          30GD_Siren_Skills.Cataclysm.BlightPhoenix
                          31GD_Siren_Skills.Cataclysm.Ruin
                          PlayerClass
                          GD_Siren.Character.CharClass_Siren
                          Skill
                          1GD_Mercenary_Skills.ActionSkill.Skill_Gunzerking
                          2GD_Mercenary_Skills.Gun_Lust.LockedandLoaded
                          3GD_Mercenary_Skills.Gun_Lust.QuickDraw
                          4GD_Mercenary_Skills.Gun_Lust.ImYourHuckleberry
                          5GD_Mercenary_Skills.Gun_Lust.AllIneedIsOne
                          6GD_Mercenary_Skills.Gun_Lust.DivergentLikness
                          7GD_Mercenary_Skills.Gun_Lust.AutoLoader
                          8GD_Mercenary_Skills.Gun_Lust.MoneyShot
                          9GD_Mercenary_Skills.Gun_Lust.LayWaste
                          10GD_Mercenary_Skills.Gun_Lust.DownNotOut
                          11GD_Mercenary_Skills.Gun_Lust.KeepItPipingHot
                          12GD_Mercenary_Skills.Gun_Lust.NoKillLikeOverkill
                          13GD_Mercenary_Skills.Rampage.Inconceivable
                          14GD_Mercenary_Skills.Rampage.FilledtotheBrim
                          15GD_Mercenary_Skills.Rampage.AllInTheReflexes
                          16GD_Mercenary_Skills.Rampage.LastLonger
                          17GD_Mercenary_Skills.Rampage.ImReadyAlready
                          18GD_Mercenary_Skills.Rampage.SteadyAsSheGoes
                          19GD_Mercenary_Skills.Rampage.5Shotsor6
                          20GD_Mercenary_Skills.Rampage.YippeeKiYay
                          21GD_Mercenary_Skills.Rampage.DoubleYourFun
                          22GD_Mercenary_Skills.Rampage.GetSome
                          23GD_Mercenary_Skills.Rampage.KeepFiring
                          24GD_Mercenary_Skills.Brawn.Diehard
                          25GD_Mercenary_Skills.Brawn.Incite
                          26GD_Mercenary_Skills.Brawn.Asbestos
                          27GD_Mercenary_Skills.Brawn.ImTheJuggernaut
                          28GD_Mercenary_Skills.Brawn.AintGotTimeToBleed
                          29GD_Mercenary_Skills.Brawn.FistfulOfHurt
                          30GD_Mercenary_Skills.Brawn.OutOfBubblegum
                          31GD_Mercenary_Skills.Brawn.BusThatCantSlowDown
                          32GD_Mercenary_Skills.Brawn.JustGotReal
                          33GD_Mercenary_Skills.Brawn.SexualTyrannosaurus
                          34GD_Mercenary_Skills.Brawn.ComeAtMeBro


                          IP属地:江苏14楼2017-12-14 16:24
                          回复
                            附录:
                            各种包:
                            GD_Assassin_Streaming
                            GD_Lilac_Psycho_Streaming
                            GD_Mercenary_Streaming
                            GD_Soldier_Streaming
                            GD_Siren_Streaming
                            GD_Tulip_Mechro_Streaming


                            IP属地:江苏15楼2017-12-14 16:41
                            回复
                              多说一句。属性只要类型相同,基本就可以互换。绝大部分数据都可以在游戏里直接dump到。比如我想给Maya设计一个新的技能树,各项加成具体该怎么写?想其他装备、技能哪些有这个加成,dump下来抄过来就好了。
                              嗯...其实 自由度这么大的改动 反应真的是出乎意料的平淡...我还以为会有很多人想着开发自己的装备体系、技能系统来着。
                              哪怕是UCP这样大型的mod整合,本质上也没对各个角色的技能树有多少改变。个人感觉是个很好的方向
                              少年你这是在创造新角色
                              一系全onkill 超过1到8点依次生效的特殊加成 枪械类型专精 多少种原版没有过的玩法
                              技能的最大等级可以超过5 配合角色mod 把技能点范围放宽到1至100 每10点加属性数据 30点加属性数目
                              7级以上加成生效 8级以上减成生效 你能刷到严格的+8mod吗
                              给你喜欢的角色添加近战系技能 研究一下zero的处决是怎么实现位移的
                              考察一下双炮塔 看看能不能写个带十几个炮台的TowerRush玩法出来 平衡一下 多有趣 第二台炮塔既然能单独受到削弱 单独加成也就可以咯 如果真的能写复数炮台 每台都不一样也是可以的咯 slag炮台可以 那shock也可以咯
                              看看能不能实现一代炮塔的效果 或许可以重写炮台的抛射物呢 回血波是怎么写的?UCP里重写了回血波的速度 你就不对其他属性感兴趣吗
                              maya左系大和其他技能能不能结合呢 矮子的吹飞又是怎么实现的
                              从最初的四个角色 到萝莉到疯子 叠层技能越来越多 研究一下 给之前的角色替换一些技能为层数技能 多么好的不降低难度提高上限的办法
                              甚至或许可以用叠层技能模拟蜜蜂盾 巨额加成 受到攻击增加层数 每层bouns负数呗 延迟看看能不能用zero的开镜瞄准那个延迟来模拟
                              或许可以用单发巨额消耗+缓慢回弹模拟技能与技能CD呢 名字 描述一改 试试能不能模拟一下闪电弹 达贡出来了
                              effect里的各种attribute能互相替换 其中的灵活性多么庞大
                              武器装备就不说了。如果你觉得组合配件已经玩腻了,学习一下各种CustomFiringMode的写法,完全没有过的新发射方式就这么出来了。MT_PreAdd改成MT_PostAdd,(一部分)加法变乘法了。
                              按周目来的GD_Playthrough3Tuning.Balance.BalanceMod_PT3里有大量的平衡属性可以调整
                              各种枪支的弹药补给数量和概率也可以改 结合常见的配件改变 你可以完全改变游戏里一种枪支的定位 把某类枪都做成高消耗自回弹的 然后想办法给它加各种奇怪的FiringMode 修改一下掉率 当做技能树来学技能吧
                              修改配件属性,把一代的左轮手感还原回来 如果真的想,也不算麻烦吧
                              30分钟暂时想到这么多 我对游戏了解还有限,尤其是萝莉和疯子的技能以及一些猎奇装备
                              有了脑洞,平衡永远不会是太大的问题。太强了削就是了呗。Modding真的是很有趣的玩法...
                              为什么我添加表情就不让我发...


                              IP属地:江苏17楼2017-12-14 21:03
                              回复