《死亡岛》MOD技巧(涉及人物技能、属性、武器、合成、界面、商人)

share

从上手到今天,黑天白地的联机了好几天,77任务也完成了,骷髅也找到了,4号小屋也去参观了,死亡岛可以告一段落。

从上周日游戏到手,花了两个小时找到了MOD的方法,之后就一直研究各种mod的方式,但是不敢放出,生怕影响了联机的平衡。

这两天国内外各种暴力mod纷纷发布,那我也就整理一下我所知的MOD技巧给大家分享。

本文并不算一份基础教程,更像是给稍有一些其他游戏mod经验的modder看的一份介绍性文档。

有些同志会发说文中的一些文件找不到、文件夹没有之类的问题,那么请你仔细阅读第一段基础知识,虽然不算完全小白化的说明,但是还是应该可以看懂的。


基础知识

首先,现有的覆盖游戏压缩包的mod方式是错误的,这样破坏了游戏的源文件,而且需要修改dll文件,使用不同破解的同志经常会出现问题。

真正的方法如下(你再也不用去修改什么dll了):

在游戏dead island\DI\Out\目录下建立data文件夹。然后将压缩包内需要mod的文件拷贝进去。如果该文件压缩包中的目录是:data\skills\xian_skills.xml,那么就将xian_skills.xml拷贝至dead island\DI\Out\data\skills\xian_skills.xml

不同的data文件里面的文件架结构是一样的,不管是data0还是data2,里面的文件只要在data\文件夹下,都放在至dead island\DI\Out\data\里面的对应位置。

(游戏dead island\DI目录下的*.pak文件可以使用rar软件解压缩,游戏原文件就在里面,做这一切前备份工作请自己做好)

此游戏是mod开放的,至少破解版是mod开放的。游戏总是以dead island\DI\Out\data下的文件优先。

以后mod只需将要修改的文件放在这里就好了,包括汉化也应该这么做。


关于联机

关于联机时mod能不能生效,怎么生效,请自行测试。


技能修改

现在介绍一下人物技能的修改:

人物技能文件在data\Skills\ 文件夹中,定义了人物升级经验、技能点给予、人物技能效果、基础人物能力升级等内容。mod这个可以让你的人物拥有全新的技能,升级的时候拥有更多的技能点,调整物品栏数目的解锁,人物属性提升成都,调整升级难度等等。

首先介绍人物技能文件,以黑妹为例:

黑妹的文件为:purna_levels.xml、purna_skills.xml,

人物升级

其中level文件定义了黑妹的升级经验和技能点奖励。以一到五级为例:

<level id="1">       

        <prop n="ExpToNextLevel" v="2000"/>        //到下一级的经验

        <prop n="MaxStamina" v="0.8"/>               //本级时的最大耐力

        <prop n="QuickSlotsCount" v="3"/>            //本级别可以拥有的武器槽位

        <prop n="InventorySize" v="12"/>              //本级别的物品栏大小

        <prop n="MaxHealth" v="110"/>                 //本级别的血量

</level>

<level id="2">

        <prop n="ExpToNextLevel" v="2220"/>

        <prop n="AllowedSkillsCount" v="1"/>          //说明到二级时所能拥有的技能点

        <prop n="MaxHealth" v="120"/>                  //此时绝对血量变为120

</level>

<level id="3">

        <prop n="ExpToNextLevel" v="2464"/>

        <prop n="AllowedSkillsCount" v="2"/>

        <prop n="MaxHealth" v="130"/>

</level>

<level id="4">

        <prop n="ExpToNextLevel" v="2735"/>

        <prop n="AllowedSkillsCount" v="3"/>

        <prop n="MaxHealth" v="140"/>

</level>

<level id="5">

        <prop n="ExpToNextLevel" v="3036"/>

        <prop n="AllowedSkillsCount" v="4"/>

        <prop n="MaxHealth" v="150"/>

        <prop n="QuickSlotsCount" v="5"/>        //此时武器栏变为5个

人物技能

多谢zyshiyong提醒,我忘了提醒:技能的描述式独立的文本,不会随着参数的修改而改变,参数修改后进游戏试试就可以看见效果,但是技能的描述是不会变的。

skill文件定义了人物的技能,这是个重点文件,经常有朋友问我,你的黑妹为什么会回旋镖之类的问题,关键就在这里了。此处以黑妹生存系第一个技能的修改为例:

        <skill id="BoostAura1" cat="Tree3" max_level="1" tier="0">               //说明是第三个技能树,只能升级一次,是0级技能

            <effect id="BoostAuraRange" change="1500"/>                                  //定义了光环的半径,单位是厘米

            <effect id="BoostAuraTeamFactor" change="0.35"/>                         //定义了对队友的加强因子,我增加到35%

             <effect id="ItemBuyFactor" change="-0.99"/>                                   //这里开始就是我增加的属性了,这个是买东西降价,打0.1折,此技能来自细妹

             <effect id="InventorySize" change="20"/>                                          //这里代表背包空间增量,我增加了20

             <effect id="NearByExperiensceMul" change="-25"/>                         //这里我修改了经验获取buff,我不爱升级,所以定义为-2500%,愿意升级的人可以用正值

             <effect id="TeamLootDropChance" change="5.0"/>                           //这里定义了物品掉落几率,我增加了500%

             <effect id="LootItemWeightMod" change="5.0"/>                             //这里定义了珍惜物品出现权重加成,同样我定义了500%

             <effect id="FuryPointsNeededToActivate" change="-0.9"/>               //这里是达到狂怒所需的怒气修改,我改为只需正常的10%

             <effect id="FuryLevel" change="9"/>                                                //这里是狂怒等级,就是你怒后可以释放几次技能,正常升满是3次,直接改为9次

             <effect id="BoomerangProb" change="1.0"/>                                   //这个是回旋镖技能,1.0表示100%飞镖回归

             <effect id="ThrowMaxDist" change="25000"/>                                //投掷距离增量,想成为李寻欢必须要射的远

             <effect id="enaltyForEnemiesLvlNuliffy" change="50"/>                  //越级攻击惩罚降低,50表示越50级攻击也不会miss

             <effect id="MedPackEffectivness" change="5.0"/>                           //医疗包效果调整为500%,一个小医疗包就能补满

        </skill>

这里的修改可以参考其他角色的skill技能文件,可以让你的人物实现所有人物的全技能,例如火器精确度上升、修补物品便宜、加强物品耐久、百分百原地复活神马的都可以(每个人狂怒效果仍然是独特的,不在这里修改)

其他人物特性(例如携弹量、跑路速度)

此外还有重要的default_levels.xml文件,定义了人物的基本属性,例如回血、视角大小、各种状态下的行动速度、跳跃高度等等,这里我并没有进行修改,如果你想来个北斗乱入,这里的代码是需要研究一下的,好在可读性还算不错。

这里只给出几个大家最喜欢的参数

最大子弹携带量:

    <prop n="MaxAmmoPistol" v="5000"/>

    <prop n="MaxAmmoRifle" v="6000"/>``

    <prop n="MaxAmmoShotgun" v="2000"/>

    <prop n="MaxAmmoSniper" v="1500"/>   

你想做一个痛快的枪手的话,除了这里,你还需要有一位出售所有子弹的商人(修改shop文件),以及让子弹便宜一些更多一些(修改Inventory.scr),或者干脆用技能效果来达到这两个目的(子弹百分百回收)

视场大小:

    <prop n="CameraDefaultFOV" v="85"/>

85是个不错的视场大小,但是枪支的后部会有一点点空白,这个看大家个人喜好了

死亡惩罚:

    <prop n="enaltyOnDeath" v="1"/>

将此数值改为0,死后不掉钱

跑动速度和跳跃高度:

物品修改

以下是物品的修改:

物品的文件有好几个,都以Inventory开头,data文件夹下可以找到,可收集物品和蓝图在另外一个文件里(Collectables.scr)

物品分为几种:静态不随级别变化,没法修理的,这些在Inventory.scr(例如船桨、拳头:Melee_Fists等)中,随你级别变化的,这些在Inventory_Gen.scr中,还有一些特殊的,在Inventory_Special.scr里面(例如踢腿:Melee_Leg)

希望低级别使用枪支的,北斗神拳、无影腿爱好者,请仔细观看了

静态物品

介绍一下在Inventory.scr中物品的代码,以新人最亲爱的船桨为例:

   Item("Melee_Paddle", CategoryType_Melee)

    {

        IdNameOld("We_Paddle");

        Name("&Melee_Paddle_N&");

        Description("&Melee_Paddle_D&");

        Visibility(true);

        ItemType(ItemType_TwoHandedStick);                 \\物品的基础类型,有MOD将双拳替换为隔空掌和这里就有关,这里是传送门隔山打牛、龟派气功、电击掌MOD

        PhysicsScript("DroppedInventory.scr");

        Condition(10000);            \\耐久,似乎改为-1可以表示不损坏(gen文件中物品此处定义是无效的,游戏根据另外的代码随你级别会另算,如何解决我下面会说)

        Damage(90.0);                 \\基础攻击(gen文件中物品此处定义是无效的,游戏根据另外的代码随你级别会另算)

        CriticalProb(0.5);                \\50%暴击

        CriticalDamage(60.0);          \\暴击伤害

        DamageRange(250.0);             \\攻击距离

        Force(80.0);                           \\推力,越大敌人的黄色体力消减越厉害,可以一下将敌人击倒,可以应用在Inventory_Special.scr文件中定义的踢腿攻击上(gen文件中物品此处定义是无效的,游戏根据另外的代码随你级别会另算)

        PhysicsDamage(60.0);             \\这个是攻击的物理效果,越大,打飞的越远(几位研究北斗拳、穿心腿、隔空涨的同志请注意,这个才是物理推力,上面的force是对体力条的攻击力)

        StaminaUsage(0.00);               \\耐力使用

        SwingSpeed(0.8);                    \\挥动一次的时间(gen文件中物品此处定义是无效的,游戏根据另外的代码随你级别会另算)

        HeadSmashProb(0.5);                  \\爆头几率

        HeadCutProb(1.0);                       \\斩首几率

        ArmsCutProb(1.0);                       \\断臂几率

        LegsCutProb(1.0);                      \\卸腿几率

        DamageType(DamageType_Cut); \\伤害类型,这里我修改为割伤,这样船桨的攻击行为会和刀一样,可以砍断敌人肢体,丢出去可以插在人身上

        Mesh("weapon_paddle_a.msh");

        AnimPrefix("Stick2");

        HudIcon("paddle_a");

        MinDamageAngle(-60.0);

        MaxDamageAngle(45.0);

        MinDamageMult(1.0);

        MaxHitSeverity(HitSeverity_Medium);

        MinHitSeverity(HitSeverity_Light);

        HorizontalAttackDamageMul(1.0);

        TwoHanded(true);

        HolderElement("bip01 spine2");

        HolderOffset([25.0,10.0,15.0]);

        HolderAngle([90.0,20.0,90.0]);

        CausesKnockDown(true);

        DestroySound("break_wooden_weapon_00.wav");

        AiHitSound("paddle");

        use HitEffects_Wooden();

        BloodSplatFactor(0.15);

        use PickupSounds_Default();

        DamageSize(10.0);

        StatsType(StatsType_Blunt);

        LootLevel(2);\\物品的loot级别,和掉宝率有关

        LootType(LootType_Blunt);

        FF_Left(0.6);

        FF_Right(0.6);

        FF_Duration(0.2);

        FF_FadeOut(0.0);

        Color(Color_White);

        AchType(AchType_Paddle);

    }

后面部分似乎是定义几个变体,可以不去管它。

动态物品

然后是Inventory_Gen.scr中的火器(近战、子弹、手雷什么的我就不说了,这些东西的价格、数量、威力都是可改的),我们以祖国防御者冲锋枪为例:

    Item("Firearm_leg_DefenderOfTheMotherland", CategoryType_Firearm)

    {

        Name("&Firearm_leg_DefenderOfTheMotherland_N&");

        Description("&Firearm_leg_DefenderOfTheMotherland_D&");

        CategoryType(CategoryType_Firearm);

        Visibility(true);

        ItemType(ItemType_Rifle);

        PhysicsScript("DroppedInventory.scr");

        UpgradeLevel(0);

        Condition(-1);                          \\物品无需修理(之前说过的我就不再说了)

        DamageRangeMelee(110.0);            \\(无效)

        HeadSmashProb(0.8);

        HeadCutProb(0.0);

        ArmsCutProb(0.0);

        LegsCutProb(0.0);

        DamageType(DamageType_Bullet);

        Mesh("weapon_machine_gun_b.msh");

        Skin("super");

        SkinTag("weapon_epic1");

        AnimPrefix("AK47");

        HudIcon("akms");

        ShotTime(0.07);                   \\射击时间,越小越快

        ShotSound("AkOneShotSt_XX.wav");

        BaseSoundPrefix("ak47");

        AmmoType(AmmoType_Rifle);

        AmmoCount(90);                   \\弹夹大小

        ReloadTime(1.25);                \\换弹夹时间

        EmptySound("istol_Empty.wav");

        RagdollBehavior(RagdollBehavior_None);

        TwoHanded(true);

        HolderElement("bip01 r thigh");

        HolderOffset([0.0,10.0,0.0]);

        HolderAngle([0.0,90.0,-90.0]);

        use HitEffects_Firearm();

        use PickupSounds_Default();

        ClipReload(true);

        FxNameShell("MGGunfireShell");

        ShootFx("MGGunfireSingle_sequence.fx");

        AimBlurStart(25.0);

        AimBlurEnd(35.0);

        ShootMinAngle(0.001);                 \\准星最小大小(这里开始是准星和准确度修改,我以下的参数的效果和普通fps的ak类似)

        ShootMaxAngle(0.004);                 \\准星最大大小

        ShootAngleVel(0.0003);                 \\每次射击准星和散布的增量

        ShootAngleCooldown(0.14);             \\准星回缩效果,越大越快

        ShootVertRecoil(0.001);                  \\后座水平跳动大小

        ShootVertRecoilSpread(0.001);          \\后座水平散布大小

        ShootHorzRecoil(0.0);                       \\后座垂直跳动大小

        ShootHorzRecoilSpread(0.001);            \\后座垂直散布大小

        ShootRecoilTime(0.005);                    \\后座作用效果时间

        ShootMode(ShotMode_Automatic);          \\全自动射击

        BulletsPerShot(1);                                 \\每次打出几个子弹,似乎散弹枪就可以不止一个

        AimFov(3.5);                                       \\瞄准时候的缩放倍数,调大就是狙击抢了

        DamageSize(5.0);   

        AiHitSound("firearm");

        StatsType(StatsType_Rifle);

        Price(5000);                                                 \\价格,修改无效

        LootLevel(5);                                      

        LootType(LootType_Firearm_Auto);

        FF_Left(0.3);

        FF_Right(0.4);

        FF_Duration(0.1);

        FF_FadeOut(0.0);

        CriticalProb(0.05);

        CriticalDamage(100.0);

        FirePointRange(0,2000.0);

        FirePointDamage(0,100.0);

        FirePointPhysicsDamage(0,40.0);

        FirePointForce(0,100.0);

        FirePointRange(1,10000.0);

        FirePointDamage(1,20.0);

        FirePointPhysicsDamage(1,40.0);

        FirePointForce(1,20.0);

        Color(Color_Orange);

        GenType(GenType_AUTORIFLE);

        GenLevelMin(0);                           \\这个很重要,表示枪械生成的最低等级,2级人物想用枪,这里必须要调低

        ShotTailDelay(0.1);

        AchType(AchType_Rifle);

        NameGender(0);

        PriceMult(1.1);

    }

    Item("Firearm_leg_DefenderOfTheMotherland", CategoryType_Firearm) \\一下是瞄准状态下的参数,和上面类似,不再解释

    {

        CategoryType(CategoryType_Firearm);

        UsageType(UsageType_Aim);

        UpgradeLevel(0);

        HandOffset(HandModification_Normal, [-0.812,0.0,7.0]);

        HandRot(HandModification_Normal, [0.0625,0.1875,0.0]);

        SwayMaxAngle(0.02);

        ShootMinAngle(0.0005);

        ShootMaxAngle(0.001);

        ShootAngleVel(0.0001);

        ShootAngleCooldown(0.28);

        ShootVertRecoil(0.001);

        ShootHorzRecoil(0.0);

        ShootHorzRecoilSpread(0.0);

    }

后面的部分是升级后的变化,可以不用太关注

有人在问如何修改才能提升随级别浮动武器的伤害,这个可以从skill中解决,直接用技能效果提升钝器、火器、刀具的伤害。我个人建议这么做,但是你也可以从Inventory_Gen.scr文件下手。

在Inventory_Gen.scr文件后部定义了1-50随级别浮动的伤害、耐久、速度、推力,以下选取一点:

    GeneratorLevel(0, 45)\\表示是45级的武器规则

    {

        GenParam(Gen_Damage, 9940, 6620.6288, 4970, 3970.6, 3310.3712); \\生成的各类武器伤害,这里我提高了10倍,以下类似,我将耐久也提升了10倍

        GenParam(Gen_Force, 994, 662.6288, 497, 397.6, 331.3712);

        GenParam(Gen_Speed, 0.05, 0.08, 0.1, 0.20, 0.50);

        GenParam(Gen_Durability, 690, 460, 310, 230, 150);

    }

合成公式

以下再说一下合成plan的修改:

这部分定义在Collectables.scr中这个文件里还定义了磁带、身份证什么的。

一下以Oldsmokycraft为例:

    Item("Craftplan_Oldsmokycraft", CategoryType_Collectable)

    {

        Name("&ColItem_Craftplan_Oldsmokycraft&");

        Description('&ColItem_Craftplan_Oldsmokycraft_D&');

        ItemType(ItemType_CraftPlan);

        Price(1000);                                                                                  \\需要的钱

        Mesh("blueprint_a.msh");

        Skin("default_hl");

        BaseItem("Melee_Machete", "Weapon_Craft10", "");                               \\以下是需要的武器,不知道能否用于其他武器

        BaseItem("Melee_leg_TheMachete", "Weapon_Craft10", "");

        BaseItem("Melee_leg_Bushmaster", "Weapon_Craft10", "");

        RequiredItem("CraftPart_Tape", 3);                                                      \\一下是需要的零件,觉得多可以删掉一点

        RequiredItem("CraftPart_Wire", 3);

        RequiredItem("CraftPart_Lp4000Battery", 1);

        RequiredItem("CraftPart_Magnet", 2);

        RequiredItem("CraftPart_Belt", 2);

        RequiredItem("CraftPart_Blade", 2);

        NamePrefix("&CraftOldSmokyPrefixName&");

        AdditionalDamageType(DamageType_Electric);                        \\一下是craft后增加的效果,想改全元素的就要仔细研究了

        AdditionalDamage(0.05);

        AdditionalCriticalProb(0.06);

        AdditionalCriticalDuration(5.0);

        AdditionalCriticalDamage(0.5);

        DeathEffect(0);

        PropagateProb(0.2);

        AdditionalDamadeLevel(4);

        Color(Color_Violet);

    }

合成plan似乎不是普通物品,没法改为在商店中出售,同理,收集类的其他物品也没法从商人那里得到。

目前我所知的可行到手办法只有一个,修改任务定义文件,将某个循环任务的奖励改为蓝图。为了达成这个目的,我苦练两天的77支线、全骷髅黑妹毁档了,所以我会劝你不要轻易做这个事情。

商店修改

商店文件在data2包内,请自行寻找。

一下以灯塔门口的商人为例,我将原有的物品代码删掉一些,节省版面:

!Item(s, i)//item name, roulette space [0-5]                \\这里注释了白色物品的格式

!ColorItem(s, i, i, i)//item name, roulette space [0-5], colors [White = 0, Green = 1, Violet = 2, Yellow = 3, Orange = 4], min level \\彩色物品的格式

//Javier_Shop

Assortment("ACT1A_Shop02")

{

//[White = 0, Green = 1, Violet = 2, Yellow = 3, Orange = 4]             \\这里注释了颜色和代码的关系

    //WEAPONS - ORANGE

  ColorItem("Melee_KatanaGen", 0, 4, 0)\\这里我定义了一只橙色太刀,总会出现,而且从人物0级起就会卖,随你级别调整货物等级

  ColorItem("Firearm_leg_DefenderOfTheMotherland", 0, 4, 0)\\和上面类似,我加了一只祖国防御者

    //WEAPONS - VIOLET

    ColorItem("Melee_MaceHeavyStarGen", 3, 3, 8)

    //WEAPONS - BLUE

    ColorItem("Melee_CaneKnifeSugarGen", 1, 2, 6)

    //WEAPONS - GREEN

    ColorItem("Melee_HammerNailGen", 3, 1, 4)

    //WEAPONS - WHITE

    Item("Melee_KnifeHomemadeGen", 1)

    //MISC

    Item("Ammo_RifleBig", 0)\\这里我增加了一只步*,定义为总会出现

}

似乎出现几率为0(必定出现)的物品只能刷出三件,这部分的代码我理解的也不深刻,也没有去steam论坛交流(忙联机了),所以大家最好再研究一下。


任务

关于任务的修改:

任务是可以修改奖励和完成条件的,文件在quests文件夹中,但是修改起来非常危险,错误的话会毁档,不建议新手操作,本人研究也不深刻,故此不做多余介绍


界面修改(例如去准星)

这里已知的是可以调整界面上队友、准星、物品提示的图标、位置、透明度。

去准星确实是有需要的,例如3d屏幕使用者,大家就不要说我*了。

文件是data\Menu\HUD\hud.xui,在那个包里记不得了,请自行寻找

以准星为例:

<roperties>

<Id>HudCrosshair</Id>

<Width>100.000000</Width>

<Height>100.000000</Height>

<Opacity>1.000000</Opacity>             //我增加了一行透明度定义,如果是0,就是不显示准星,1就是完整显示,喜欢半透明的可以自己选个值,我想和我一样使用3d显示器的同志一定很喜欢这个

<osition>640.000000,360.000000,0.000000</Position>

<ivot>50.000000,50.000000,0.000000</Pivot>

<HoldAspectRatio>true</HoldAspectRatio>

<HoldAspectRatioX>true</HoldAspectRatioX>

<HoldAspectPivotPosition>true</HoldAspectPivotPosition>

<ClassOverride>HudCrosshair</ClassOverride>

</Properties>

如果要修改准星,那么不只一个crosshair的properties需要改,我记得是两个。

话说用3d偏光眼镜玩这个游戏不是一般的爽,斩首后ss的脑袋和着血柱从屏幕里砸出来,啧啧、、、、、


杀怪经验

这个文件是xp_rewards.scr,位置在data0包的data目录里

示例:

        Xp("InfectedKill", 20);              \\自然就是杀一个给经验的基础值了。

        Xp("InfectedDeath_Assisted", 10);

        Xp("InfectedDeath_Nearby", 5);

不过我个人仍然建使用技能的效果来影响经验值的获取。


以上是暂时我所研究出的mod方式,steam官方论坛上有一些其他文件的mod说明,例如按键绑定什么的,我没有作进一步研究,在此也就起个抛砖引玉的效果,希望大家多多研究吧。

更多《死亡岛》MOD技巧(涉及人物技能、属性、武器、合成、界面、商人)相关问题

问题:辐射4有没有人物生理系统MOD?

回答:看攻击就好了,有啥好选的 详情 >

问题:《死亡细胞》求问大家 破解诅咒宝箱的诅咒有什么技巧吗 每次都崩!!

回答:5M……就算整个轩辕丘,包括缙云和姬轩辕上去送也一样。他心中只有巫之堂和几个强者朋友,人民群众算个啥。 详情 >

问题:《鬼谷八荒》升级到问道的道魂是什么?

回答:小丑竟是我自己 详情 >

问题:《中世纪2全面战争》我想问一下各位大佬们,影响一支军队作战能力的数据到底有哪些?

回答:只有约什没有火花,应该差不多他俩不一个位置的一个C一个PF,都蛮不错的 详情 >

问题:《三国全面战争》【小技巧】关于武将技能点加点“跳点”和应用

回答:每次开局都有船新体验 详情 >

share