LV. 12
GP 50

【密技】死亡之島MOD修改完整教學(基礎+進階)

樓主 w1200441 w1200
GP34 BP-

前言

死亡之島這款遊戲好像慢慢沉沒了?

本人偶爾上線亂連還是會遇到少數一般玩家,個人是比較喜歡跟MOD玩家一起亂玩,但是幾乎都遇不到...

有些人會認為改MOD太破壞遊戲平衡和樂趣,但是對我來說改MOD能讓遊戲難度變高,也能幫助玩家隊友以更快更方便的方法解任務。

我想應該有人看過我放的MOD影片,或者是在遊戲中遇到我過(拿平底鍋亂跑的)。

看完後北斗神拳和天殘腳根本不算什麼。

在此,本人就把我在這1年中所研究出的MOD改法分享給各位,並且教各位如何修改。

至於更深奧的改法,就要靠各位自己去研究了。


1.首先,最基本的Data0~Data3.pak提取檔案我就不提了,想學改MOD最基本的壓縮提取應該都會。

2.基本數值修改
從最常用的 default_levels.xml 檔案開始,位在Data3裡的Skills,這邊我列出我個人所改的數值。 (// 後面是原始數值)

死亡懲罰 ( 0= 死亡不扣錢 1 = 死亡扣錢)
<prop n="PenaltyOnDeath" v="0"/>  //1

搬運物品時的移動速度倍數 ( 1.0 = 原始走路的速度)
<prop n="MoveWhenCarryMaxSpeedFactor" v="1.0"/> //0.7
<prop n="MoveWhenCarryMinSpeedFactor" v="1.0"/> //0.2

殺敵後所獲得的憤怒值 ( 1.00 = 一次全滿)
<prop n="FuryPointsAfterKill" v="1.00"/> //0.05

視角 (我個人是偏好85,可以依個人習慣去做調整)
<prop n="CameraDefaultFOV" v="85.0"/> //62.5

使用飲料和水果等補品的回血延遲時間 ( 0.0 = 馬上回血)
<prop n="HealthRegenerationStartTime" v="0.0"/> //3.0

補品所回的血量 (100.0 = 全滿)
<prop n="HealthRegenerationMaxLevel" v="100.0"/> //25

補品的回血量 ( 數值越大越多 )
<prop n="MedPackEffectivness" v="4"/> //1
<prop n="CoopMedPackEffectivenss" v="4"/> //1

快速切換武器欄解鎖格數( 8 = 全開)
<prop n="QuickSlotsCount" v="8"/> //6
背包容量 ( 我是用1000,身上也帶不到1000把武器吧?)
<prop n="InventorySize" v="1000"/> //12
( 其實在這裡改格數和容量還不如從角色等級的檔案改,這只是角色一創建出來時的數值,升級後數值還是會被等級檔案的數值給覆蓋過去,後面會講到改的方法 )

體力條 (越大越長,太長會擋畫面)
<prop n="MaxStamina" v="2"/> //1

踩頭所耗的體力 ( 0.0 = 不消耗)
<prop n="StompStaminaUsage" v="0.0"/> //0.3

體力回復格數 ( 3 = 3大格)
<prop n="StaminaRegeneration" v="3"/> //0.3

Sam B肘擊消耗的體力 ( 0.0 = 不消耗)
<prop n="RamingStaminaUsageLev4" v="0.0"/> //0.1

修改走路速度 ( 速度越快自己會摔死 )
<prop n="MoveForwardMinSpeed" v="100"/> //10
<prop n="MoveForwardMaxSpeed" v="750"/> //350
<prop n="MoveBackwardMinSpeed" v="100"/> //10
<prop n="MoveBackwardMaxSpeed" v="750"/> //250
<prop n="MoveStrafeMinSpeed" v="100"/> //10
<prop n="MoveStrafeMaxSpeed" v="750"/> //250

跑步速度 ( 速度越快自己會摔死 )
<prop n="MoveSprintSpeed" v="2200"/> //550

跑步體力消耗 ( 0 = 不消耗 )
<prop n="MoveSprintStaminaConsumption" v="0.00"/> //0.05

修改蹲下移動速度 ( 速度越快自己會摔死 )
<prop n="CrouchForwardMinSpeed" v="100"/> //10
<prop n="CrouchForwardMaxSpeed" v="750"/> //150
<prop n="CrouchBackwardMinSpeed" v="100"/> //10
<prop n="CrouchBackwardMaxSpeed" v="750"/> //150
<prop n="CrouchStrafeMinSpeed" v="100"/> //10
<prop n="CrouchStrafeMaxSpeed" v="750"/> //150

修改瞄準時移動速度 ( 速度越快自己會摔死 )
<prop n="AimBackwardMaxSpeed" v="750"/> //250
<prop n="AimBackwardMinSpeed" v="100"/> //10
<prop n="AimForwardMaxSpeed" v="750"/> //350
<prop n="AimForwardMinSpeed" v="100"/> //10
<prop n="AimStrafeMaxSpeed" v="750"/> //250
<prop n="AimStrafeMinSpeed" v="100"/> //10
<prop n="AimAcceleration" v="1000"/> //700
<prop n="AimDeceleration" v="1000"/>

修改蹲下瞄準時移動速度 ( 速度越快自己會摔死 )
<prop n="AimCrouchBackwardMaxSpeed" v="550"/> //150
<prop n="AimCrouchBackwardMinSpeed" v="100"/> //10
<prop n="AimCrouchForwardMaxSpeed" v="550"/> //150
<prop n="AimCrouchForwardMinSpeed" v="100"/> //10
<prop n="AimCrouchStrafeMaxSpeed" v="550"/> //150
<prop n="AimCrouchStrafeMinSpeed" v="100"/> //10
<prop n="AimCrouchAcceleration" v="700"/> //400
<prop n="AimCrouchDeceleration" v="1000"/>

跳躍體力消耗 ( 0 = 不消耗 )
<prop n="JumpStaminaCost" v="0.00"/> //0.06

跳躍高度( 太高會摔傷或摔死 )
<prop n="JumpMaxHeight" v="340"/> //85
<prop n="JumpMinHeight" v="340"/> //85

等級1時的技能點數 ( 改成99就能在角色創建時把所有技能點滿 )
<prop n="AllowedSkillsCount" v="99"/> //0

被殭屍抓住 ( 0 = 殭屍不會抓住你,省掉按左鍵右鍵推開殭屍的麻煩 )
<prop n="EnemyGrabChance" v="0"/> //1

槍枝彈夾攜帶量
<prop n="MaxAmmoPistol" v="9999"/> //50
<prop n="MaxAmmoRifle" v="9999"/> //60
<prop n="MaxAmmoShotgun" v="9999"/> //20
<prop n="MaxAmmoSniper" v="9999"/>//15

槍枝重裝彈藥所需的時間 ( 0.1 = 瞬間填裝 )
<prop n="FirearmsPistolReloadTimeMul" v="0.1"/>//1.0
<prop n="FirearmsRevolverReloadTimeMul" v="0.1"/>//1.0
<prop n="FirearmsRifleReloadTimeMul" v="0.1"/> //1.0
<prop n="FirearmsShotgunReloadTimeMul" v="0.1"/>//1.0

3.人物等級和技能修改
各角色的等級檔logan_levels.xmlpurna_levels.xmlsamb_levels.xmlxian_levels.xml,必須從Data3裡的Skills解壓出來,從Data0提出來的檔案等級上限只到50等,Data3是最新的能升到60等,這也是大家之前常發問的改完檔案等級卡在50等上不去的問題解答。

在這邊用logan_levels.xml來講解:
這段是在等級1等時的設定,下次升等時的經驗值要2000,體力值有0.8,快速切換武器的格數只有5格,背包容量只有12格,血量有110。

<level id="1">
<prop n="ExpToNextLevel" v="2000"/>
<prop n="MaxStamina" v="0.80"/>
<prop n="QuickSlotsCount" v="5"/>
<prop n="InventorySize" v="12"/>
<prop n="MaxHealth" v="110"/>
</level>

前面提到的修改快速切換武器格數和背包容量就要從這下手,把快速切換武器格全解鎖就改成<prop n="QuickSlotsCount" v="8"/>,背包容量隨便你設,我是設成1000格<prop n="InventorySize" v="1000"/>


快速升等:把每一等級的"ExpToNextLevel"的值改成1~10都可以,隨便打死一隻殭屍救生等,從2等~60等都要改。


修改角色技能點數:如果你在default_levels.xml中把"AllowedSkillsCount"改成99的話,只有在1等時有99點可以用,在2等~60等時的技能點數也只有你的等級數-1的量而已,必須把每一等級的"AllowedSkillsCount"值都改成99 ( 所有技能點滿要99點 ),這樣你在任何等級都有99點的技能點可以用,假設你是在38等時才開始改MOD並且改到99,先前你已經用了37點,所以改完後你看到的只有99-37=62點可以使用,總之,不管你在幾等,你的技能都能點滿。


修改角色技能觸發機率舉個例子,我想把Logan的Boomerang ( 迴力鏢 ) 的技能改到能100%觸發,也就是武器丟出去後一定會回到手中,方法就是先在logan_levels.xml裡找該技能↓

        <skill id="BoomerangLvl1" cat="Tree3" max_level="1" tier="0">
            <effect id="BoomerangProb" change="0.15"/>
        </skill>

        <skill id="BoomerangLvl2" cat="Tree3" max_level="1" tier="3">
            <tier_req tier="2" cat="Tree3" value="3"/>
            <effect id="BoomerangProb" change="0.15"/>
        </skill>

        <skill id="BoomerangLvl3" cat="Tree3" max_level="1" tier="6">
            <tier_req tier="5" cat="Tree3" value="3"/>
            <effect id="BoomerangProb" change="0.2"/>
        </skill>

點1點和2點時有0.15機率(15%)成功,點滿也只有0.2(20%)成功,看你所點的級數那欄把"BoomerangProb"的chance值改成1.0,把這三欄的chance都改成1.0也可以。


修改角色技能傷害值:拿Puma的Hard knocks( 近戰武器傷害增加 ) 技能舉例,點1點時+5% ( 0.05 )傷害,點2點時+10% (0.10),點滿+15% (0.15);數值看你怎增加,1.0就變成2倍傷害,以此類推。

</skill>
        <skill id="GLMeleeDmg" cat="Tree2" max_level="3" tier="1" desc_params="+5%;+10%;+15%">
            <tier_req tier="0" cat="Tree2" value="1"/>
            <effect id="MeeleDamageMul" change="0.05"/>
        </skill>

憤怒技能(Fury)的持續時間:持續時間T = (1 /每次消耗的憤怒值"FuryUsage");如果消耗值為0.2,憤怒會持續5個單位。 ( 數學題,不會算就用計算機按,還沒學會除法就去問數學老師。)

這邊拿Xian的憤怒技能舉例:點1點時,每次消耗0.17,也就是持續將近6個單位。
        </skill>
        <skill id="Bloodrage1" cat="Tree1" max_level="1" tier="0">
            <effect id="FuryUsage" change="0.17"/>
            <effect id="FuryLevel" change="1"/>
        </skill>

點2點時,消耗值變成 0.17 + (- 0.07) = 0.10,持續時間增加成10個單位。
        </skill>
        <skill id="Bloodrage2" cat="Tree1" max_level="1" tier="2">
            <tier_req tier="1" cat="Tree1" value="3"/>
            <effect id="FuryUsage" change="-0.07"/>
            <effect id="FuryLevel" change="1"/>
        </skill>

點滿時,消耗值變成 0.17 + (- 0.07) + (- 0.03) = 0.07,持續時間再增加成約14個單位多。
        </skill>
        <skill id="Bloodrage3" cat="Tree1" max_level="1" tier="4">
            <tier_req tier="3" cat="Tree1" value="3"/>
            <effect id="FuryUsage" change="-0.03"/>
            <effect id="FuryLevel" change="1"/>
        </skill>

簡單的改法是:把點2點和點滿時的"FuryUsage"值改成0,點1點時的"FuryUsage"值就是決定持續時間T的值( T = FuryUsage + 0 + 0 ),消耗值越小時間越長,消耗值設成0的話Fury不會停止,但是也會有不方便的時候,個人建議是改成點滿時的兩倍時間( 0.035 + 0 + 0 );每個角色的消耗值都不一樣要自己去算。


擁有其他角色技能舉個例子,我想把Logan的Boomerang ( 迴力鏢 ) 的技能加到其他3個角色上;方法就是先在logan_levels.xml裡找該技能↓

        <skill id="BoomerangLvl3" cat="Tree3" max_level="1" tier="6">
            <tier_req tier="5" cat="Tree3" value="3"/>
            <effect id="BoomerangProb" change="1.0"/> //0.2
        </skill>

我的Boomerang技能已經改為100%觸發,接著把<effect id="BoomerangProb" change="1.0"/> //0.2這段,複製到其他3位角色的狂暴技能下,假設我是加到Sam B身上,複製貼上去就改好了↓

        </skill>
        <skill id="Fury1" cat="Tree1" max_level="1" tier="0">
            <effect id="FuryUsage" change="0.05"/> //0.17
            <effect id="FuryLevel" change="1"/>
            <effect id="BoomerangProb" change="1.0"/>
        </skill>

其餘角色技能就看你怎麼運用搭配,例如所有角色都能用SamB的肘擊等等...

在這邊提醒,Xian的Spectra技能( 降低被敵人發現機率 )和Sam B的Decoy技能( 增加被敵人發現機率 ),兩者的名稱都是"AggroFactor",如果你把這技能加到另外兩隻角色上並且將數值改成-1.0,玩家就會變成沒存在感,靠近殭屍也不會被打,正在打隊友的殭屍你一靠近後就會停止攻擊;但是Xian和Sam B可就有差別了!如果這兩個技能都只點1,Xian和SamB一樣會變成沒存在感;但是如果點滿,殭屍就一定會打這兩隻角色。而且在Act.1一開始上樓進救生塔的廣播室有一隻坐著的殭屍,正常是打死他後就能按廣播繼續劇情,如果是沒存在感的角色打死他的話,廣播就不會出現按鈕,然後卡關。一個人玩的話是一定卡關;多人連線的話只要你站得遠遠的讓其他玩家殺死他,廣播按鈕就能出現;不管怎樣只要那隻殭屍是被你殺死的就會卡關,單人和多人連線都是一樣。


4.金錢和掉寶率修改
檔案 default.loot 一樣必須從Data3裡的Skills解壓出來,因為這是最新的。

注射器:我把中型和小型的注射器給註解掉(前面加上//符號),這樣我撿到的注射器永遠是大型注射器。

sub StandardMedKits(float weight = 1.0, float prob = 1.0)
{
    Set(MedKit, weight, prob)
    {
        Item("Medkit_HealthPackLarge", 1.0);
        //Item("Medkit_HealthPackMedium", 5.0);
        //Item("Medkit_HealthPackSmall", 1.0);
    }
}

金錢:有小中大三種不同錢量,ItemCount("名稱", 金額, 重量, 倍數)。

sub StandardCash(float weight = 1.0, float prob = 1.0)
{
    Set(Cash, weight, prob)
    {
        ItemCount("Cash_Wallet", 5, 10, 20.0);
        ItemCount("Cash_Wallet", 80, 150, 1.0);
        ItemCount("Cash_Cash", 5, 30, 5.0);
    }
}
sub MediumCash(float weight = 1.0, float prob = 1.0)
{
    Set(Cash, weight, prob)
    {
        ItemCount("Cash_Cash", 80, 150, 1.0);
    }
}

sub BigCash(float weight = 1.0, float prob = 1.0)
{
    Set(Cash, weight, prob)
    {
        ItemCount("Cash_Cash", 200, 300, 1.0);
    }
}

開寶箱ColorWeight( 武器顏色, 機率);450= 45%機率。

    DefColorSet(ColorSet_LockPick1)
    {
        ColorWeight(Color_White, 450.0);
        ColorWeight(Color_Green, 37.0);
        ColorWeight(Color_Violet, 15.0);
        ColorWeight(Color_Yellow, 7.0);
        ColorWeight(Color_Orange, 0.0);
    }
    
    DefColorSet(ColorSet_LockPick2)
    {
        ColorWeight(Color_White, 450.0);
        ColorWeight(Color_Green, 50.0);
        ColorWeight(Color_Violet, 20.5);
        ColorWeight(Color_Yellow, 10.0);
        ColorWeight(Color_Orange, 1.0);
    }
    
    DefColorSet(ColorSet_LockPick3)
    {
        ColorWeight(Color_White, 450.0);
        ColorWeight(Color_Green, 62.0);
        ColorWeight(Color_Violet, 25.8);
        ColorWeight(Color_Yellow, 13.0);
        ColorWeight(Color_Orange, 2.0);
    }

一般殭屍掉寶:ColorWeight( 武器顏色, 機率);915= 91.5%機率。

    DefColorSet(ColorSet_Default)
    {
        ColorWeight(Color_White, 915.0);
        ColorWeight(Color_Green, 25.0);
        ColorWeight(Color_Violet, 10.0);
        ColorWeight(Color_Yellow, 5.0);
        ColorWeight(Color_Orange, 0.0);
    }

特殊殭屍掉寶ColorWeight( 武器顏色, 機率);30= 30%機率。

Floater
    DefColorSet(ColorSet_FatMan)
    {
        ColorWeight(Color_White, 30.0);
        ColorWeight(Color_Green, 20.0);
        ColorWeight(Color_Violet, 40.0);
        ColorWeight(Color_Yellow, 10.0);
        ColorWeight(Color_Orange, 0.0);
    }

Ram
    DefColorSet(ColorSet_Ram)
    {
        ColorWeight(Color_White, 0.0);
        ColorWeight(Color_Green, 10.0);
        ColorWeight(Color_Violet, 30.0);
        ColorWeight(Color_Yellow, 50.0);
        ColorWeight(Color_Orange, 10.0);
    }

Suicider
    DefColorSet(ColorSet_Suicider)
    {
        ColorWeight(Color_White, 70.0);
        ColorWeight(Color_Green, 20.0);
        ColorWeight(Color_Violet, 5.0);
        ColorWeight(Color_Yellow, 5.0);
        ColorWeight(Color_Orange, 0.0);
    }

Thug
    DefColorSet(ColorSet_Corrupter)
    {
        ColorWeight(Color_White, 30.0);
        ColorWeight(Color_Green, 20.0);
        ColorWeight(Color_Violet, 40.0);
        ColorWeight(Color_Yellow, 10.0);
        ColorWeight(Color_Orange, 0.0);
    }

Butcher
    DefColorSet(ColorSet_MeleeFighter)
    {
        ColorWeight(Color_White, 0.0);
        ColorWeight(Color_Green, 10.0);
        ColorWeight(Color_Violet, 30.0);
        ColorWeight(Color_Yellow, 50.0);
        ColorWeight(Color_Orange, 10.0);
    }


5.商人物品修改
Shops.scrData3裡的Skills解壓出來,因為這是最新的我不想多說了。

這是第一章節的商人Javier,裡面包含各種顏色的武器和物品的出現機率。
如果不想要某樣武器或物品的話,就在該武器ColorItem或該物品item前面加上//,至於武器的出現順序本人並不清楚,只能確定改橘色武器的中間數值為4,物品的數字改0為一定出現。

//---------------ACT 1---------------
//Javier_Shop
Assortment("ACT1A_Shop02")
{
//[White = 0, Green = 1, Violet = 2, Yellow = 3, Orange = 4]
//WEAPONS - ORANGE
ColorItem("Melee_BoGen", 3, 4, 10)
ColorItem("Melee_MaceGen", 3, 4, 10)
ColorItem("Melee_MaceCudgelGen", 3, 4, 10)
ColorItem("Melee_KnifeDivingGen", 1, 4, 10)
ColorItem("Melee_HammerGen", 3, 4, 1)
//WEAPONS - VIOLET
ColorItem("Melee_MaceHeavyStarGen", 3, 3, 8)
ColorItem("Melee_DoubleBladeHomemadeGen", 1, 3, 8)
ColorItem("Melee_CrowbarGen", 3, 3, 8)
ColorItem("Melee_CleaverSlicerGen", 1, 3, 1)
ColorItem("Melee_CaneKnifeGen", 1, 3, 1)
//WEAPONS - BLUE
ColorItem("Melee_CaneKnifeSugarGen", 1, 2, 6)
ColorItem("Melee_SickleGen", 1, 2, 6)
ColorItem("Melee_BrassKnucklesGen", 3, 2, 1)
ColorItem("Melee_CleaverSlicerGen", 1, 2, 1)
ColorItem("Melee_MaceFlangedGen", 3, 2, 1)
//WEAPONS - GREEN
ColorItem("Melee_HammerNailGen", 3, 1, 4)
ColorItem("Melee_StickGen", 3, 1, 1)
ColorItem("Melee_MacheteHomemadeGen", 1, 1, 1)
ColorItem("Melee_BaseballBatGen", 3, 1, 1)
ColorItem("Melee_WrenchGen", 3, 1, 1)
//WEAPONS - WHITE
Item("Melee_KnifeHomemadeGen", 1)
Item("Melee_KnifeKitchenGen", 1)
Item("Melee_MaceMorningStarGen", 3)
Item("Melee_MaceExoticGen", 1)
Item("Melee_DoubleBladeGen", 1)
Item("Melee_CleaverHomemadeGen", 1)
Item("Melee_CleaverGen", 1)
Item("Melee_WoodenBatonGen", 3)
Item("Melee_CaneKnifeExoticGen", 1)
Item("Melee_BrassKnucklesHeavyGen", 3)
//MISC
Item("CraftPart_Algae", 2)
Item("CraftPart_Battery", 2)
Item("CraftPart_Belt", 2)
Item("CraftPart_Bolts", 2)
Item("CraftPart_Clamp", 2)
Item("CraftPart_Detergent", 2)
Item("CraftPart_ElectronicScrap", 2)
Item("CraftPart_Flares", 2)
Item("CraftPart_Gear", 2)
Item("CraftPart_LargeNail", 2)
Item("CraftPart_Lp4000Battery", 2)
Item("CraftPart_Watch", 2)
Item("CraftPart_MetalScrap", 2)
Item("CraftPart_Oleander", 2)
Item("CraftPart_Rag", 2)
Item("CraftPart_SteelRod", 2)
Item("CraftPart_SuiciderMeat", 2)
Item("CraftPart_WeightPlate", 2)
Item("Medkit_HealthPackMedium", 0)
}

想要商人販賣其他物品的話,建議把其他武器都加上註解,再複製上你要的武器,這邊列出本人常用物品↓

物品
Item("CraftPart_BrandChampagne", 0) //香檳
Item("CraftPart_Diamonds", 0) //鑽石

注射器
Item("Medkit_HealthPackLarge", 0) //大型注射器

子彈
Item("Ammo_RifleSmall", 0) //步槍彈藥
Item("Ammo_ShotgunSmall", 0) //散彈槍彈藥
Item("Ammo_PistolSmall", 0) //手槍彈藥

武器
Item("Melee_ChainsawSpecial", 0)  //電鋸
ColorItem("Melee_FryingPan", 0, 4, 0)  //平底鍋
ColorItem("Firearm_ShotgunGen", 0, 4, 0)  //散彈槍
ColorItem("Firearm_ShotgunShortGen", 0, 4, 0)  //散彈槍
ColorItem("Firearm_AutoRifleGen", 0, 4, 0)  //步槍
ColorItem("Firearm_BurstRifleGen", 0, 4, 0)  //步槍
ColorItem("Firearm_SingleShotRifleGen", 0, 4, 0)  //步槍
ColorItem("Firearm_M9Gen", 0, 4, 0)  //手槍
ColorItem("Firearm_DesertEagleGen", 0, 4, 0)  //手槍
ColorItem("Firearm_leg_Mccall9Mm", 0, 4, 0)  //手槍

角色開憤怒時所使用的武器
ColorItem("Melee_FuryThrowKnife", 0, 4, 0)  //Logan的飛刀,只能用投擲方式攻擊
ColorItem("Melee_FuryFist", 0, 4, 0)  //SamB的拳頭
ColorItem("Melee_FuryAssassinKnife", 0, 4, 0)  //Xian的小刀
ColorItem("Fury_M9", 0, 4, 0); //Ryder White的手槍,其他玩家看到是一顆骷髏頭在你手上


6.武器藍圖修改
Collectables.scrCollectables_Patch.scr位於Data3裡。

BaseItem:可用在藍圖上的武器,可以自己添加你要的武器進去,例如添加平底鍋進去 BaseItem("Melee_FryingPan", "", "");後面的Weapon_Craft1有沒有都沒差,這好像是外觀的設定,沒特別去研究。

RequiredItem:製作藍圖所需的物品,在前面加上//符號可以移除掉該物品,或者是把需求物品數量改為0,製作模組時就不會消耗。

這邊拿 Shock Mod (電擊模組)來介紹:
   Item("Craftplan_Shockcraft", CategoryType_Collectable)
    {
        Name("&ColItem_Craftplan_Shockcraft&");
        Description('&ColItem_Craftplan_Shockcraft_D&');
        ItemType(ItemType_CraftPlan);
        Price(200); //製作此模組的花費
        Mesh("blueprint_a.msh");
        Skin("default_hl");
        BaseItem("Melee_Sickle", "Weapon_Craft2", ""); //Baseitem全都是可製作的物品
        BaseItem("Melee_Machete", "Weapon_Craft1", "");
        BaseItem("Melee_Axe", "Weapon_Craft1", "");
        BaseItem("Melee_BigAxe", "Weapon_Craft1", "");
        BaseItem("Melee_Wakizashi", "Weapon_Craft1", "");
        BaseItem("Melee_Katana", "Weapon_Craft1", "");
        BaseItem("Melee_TantoGen", "Weapon_Craft1", "");
        BaseItem("Melee_CaneKnifeGen", "Weapon_Craft1", "");
        BaseItem("Melee_CaneKnifeSugarGen", "Weapon_Craft1", "");
        BaseItem("Melee_CaneKnifeExoticGen", "Weapon_Craft1", "");
        BaseItem("Melee_leg_Zedsdemise", "Weapon_Craft1", "");
        BaseItem("Melee_leg_TheMachete", "Weapon_Craft1", "");
        BaseItem("Melee_leg_VikingOfTheSouth", "Weapon_Craft1", "");
        BaseItem("Melee_leg_Bushmaster", "Weapon_Craft1", "");
        BaseItem("Melee_leg_Banisher", "Weapon_Craft1", "");
        BaseItem("Melee_leg_Eviscerator", "Weapon_Craft1", "");
        BaseItem("Melee_FryingPan", "", ""); //這邊我添加了平底鍋進去,可以做出電擊平底鍋
        RequiredItem("CraftPart_Tape", 2); //RequiredItem是所需要的物品,2把改成0就不會消耗
        RequiredItem("CraftPart_Wire", 2);
        RequiredItem("CraftPart_Battery", 2);
        NamePrefix("&CraftElectricPrefixName&");
        AdditionalDamageType(DamageType_Electric); //添加的屬性
        AdditionalDamage(0.05); //屬性武器的傷害+5% (0.05)
        AdditionalCriticalProb(0.04); //屬性武器的屬性觸發率+4% (0.04)
        AdditionalCriticalDuration(5.0); //屬性觸發時的持續時間(這邊是被電擊5秒)
        AdditionalCriticalDamage(0.25); //屬性傷害+25% (0.25)
        AdditionalDamadeLevel(1); //屬性等級,也就是武器的閃電符號x1
        Color(Color_White); //藍圖製作出的武器顏色
    }

傷害屬性
DamageType_Electric (電)
DamageType_Poison (毒)
DamageType_Fire (火)
DamageType_Bleeding (流血)
DamageType_Impact (衝擊)
DamageType_Blunt (鈍器槌擊)
DamageType_Cut (砍)
DamageType_Chainsaw (鋸)
DamageType_Bullet (子彈)
DamageType_Punch_Ko (擊倒)
DamageType_Blast (爆炸)
DamageType_BrainBlast (暴頭)
DamageType_Kick (踢擊)
DamageType_Punch1 (打擊)


7.武器修改
武器有四個檔案Inventory.scrInventory_Gen.scrInventory_Patch.scrInventory_Special.scr;Inventory.scr是在Data0的Skills,後三者是在Data3的Skills;Inventory.scrInventory_Gen.scr是一般常見物品和武器跟槍枝,Inventory_Patch.scr是槍枝類,Inventory_Special.scr是五大兵器的武器和其藍圖和憤怒使用的武器。

Inventory.scr 和 Inventory_Gen.scr
要修改拳頭Melee_Fists是在Inventory.scr裡,北斗神拳就是在Melee_Fists修改;這裡還是用我常用的武器平底鍋來介紹:

    Item("Melee_FryingPan", CategoryType_Melee)
    {
        Name("&Melee_FryingPan_N&");
        Description("&Melee_FryingPan_D&");
        Visibility(true);
        ItemType(ItemType_Stick);
        PhysicsScript("DroppedInventory.scr");
        Condition(14); //耐久值,-1為不損壞
        Damage(25.0); //傷害值
        CriticalProb(0.01); //暴擊率,0.01 = 1%
        CriticalDamage(25.0); //暴擊額外傷害
        DamageRange(120.0); //攻擊距離
        Force(50.0); //力道,越大打飛越遠
        PhysicsDamage(40.0); //殭屍耐力傷害
        StaminaUsage(0.06); //攻擊一次所消耗的體力,0 = 不扣體力
        SwingSpeed(1.0); //攻擊速度,0.1 = 猛揮
        HeadSmashProb(0.2); //削頭機率,0.2 = 20%
        HeadCutProb(0.0); //砍斷頭機率
        ArmsCutProb(0.0); //砍斷手機率
        LegsCutProb(0.0); //砍斷腳機率
        DamageType(DamageType_Blunt); //傷害屬性
        Mesh("weapon_frying_pan_a.msh");
        AnimPrefix("Stick");
        HudIcon("shovell_a");
        MinDamageAngle(-60.0);
        MaxDamageAngle(45.0);
        MinDamageMult(1.0);
        MaxHitSeverity(HitSeverity_Medium);
        MinHitSeverity(HitSeverity_Light);
        HorizontalAttackDamageMul(1.0);
        TwoHanded(false);
        HolderElement("bip01 spine2");
        HolderOffset([25.0,10.0,15.0]);
        HolderAngle([90.0,20.0,90.0]);
        CausesKnockDown(true);
        DestroySound("break_metal_weapon_00.wav");
        AiHitSound("pipe");
        use HitEffects_Default();
        BloodSplatFactor(0.15);
        use PickupSounds_Default();
        DamageSize(10.0);
        StatsType(StatsType_Blunt);
        LootLevel(1);
        LootType(LootType_Blunt);
        FF_Left(0.6);
        FF_Right(0.6);
        FF_Duration(0.2);
        FF_FadeOut(0.0);
        Color(Color_White); //武器顏色
        AchType(AchType_FryingPan);
    }


Inventory_Patch.scr
隨便拿一把槍支來介紹:

    Item("zzz_Firearm_Ak47", CategoryType_Firearm)
    {
        IdNameOld("Firearm_Ak47Rusty");
        OwnerType(OwnerType_AI);
        Name("&Firearm_Ak47_N&");
        Description("&Firearm_Ak47_D&");
        CategoryType(CategoryType_Firearm);
        Visibility(true);
        ItemType(ItemType_Rifle);
        PhysicsScript("DroppedInventory.scr");
        UpgradeLevel(0);
        Condition(-1);
        DamageRangeMelee(110.0); //射程
        HeadSmashProb(0.2); //削頭機率,0.2 = 20%
        HeadCutProb(0.0); //砍斷頭機率
        ArmsCutProb(0.0); //砍斷手機率
        LegsCutProb(0.0); //砍斷腳機率
        DamageType(DamageType_Bullet); //傷害類型
        Mesh("weapon_machine_gun_b.msh");
        SkinTag("weapon_standard1");
        AnimPrefix("AK47");
        HudIcon("ak_47");
        ShotTime(0.1); //射速
        ShotSound("AI_AkOneShotSt_XX.wav");
        AmmoType(AmmoType_Rifle);
        AmmoCount(20); //一次彈夾量
        ReloadTime(1.6); //換彈夾速度
        ReloadSound("ak47_reload_XX.wav");
        EmptySound("Pistol_Empty.wav");
        RagdollBehavior(RagdollBehavior_None);
        TwoHanded(true);
        HolderElement("bip01 spine1");
        HolderOffset([10.0,-10.0,15.0]);
        HolderAngle([90.0,-110.0,90.0]);
        use HitEffects_Firearm();
        use PickupSounds_Default();
        ClipReload(true);
        ShootFx("MGGunfireSingle_sequence.fx");
        ShootMode(ShotMode_Automatic);
        BulletsPerShot(1); //單發所射出的子彈數
        AimFov(2.0);
        AiHitSound("firearm");
        StatsType(StatsType_Rifle);
        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); //暴擊機率 0.05 = 5%
        CriticalDamage(0.0); //暴擊額外傷害
        FirePointRange(0,0.0);
        FirePointDamage(0,7.5);
        FirePointPhysicsDamage(0,0.0);
        FirePointForce(0,0.0);
        FirePointRange(1,2000.0);
        FirePointDamage(1,1.0);
        FirePointPhysicsDamage(1,1.5);
        FirePointForce(1,1.5);
        Color(Color_White); //顏色
        ShotTailDelay(0.1);
        TransformInto("zzz_Firearm_AutoRifleRwGen");
    }


Inventory_Special.scr
這裡包含每隻角色開憤怒時所使用的武器,還有五大兵器和五大兵器製作藍圖,還有玩家的腳。
開憤怒所使用的武器裡面,內容和修改武器教學一樣,這邊就不多說。(不知道如何取得的去Youtube搜尋Dead Island Skulls)

這裡用Developer 666模組舉例:

Item("Craftplan_DevForce", CategoryType_Collectable)
{
        Name("Developer's 666 Craft");
        Description("Beware the power of gloVA");
        ItemType(ItemType_CraftPlan);
        Price(10000); //製作費用10000
        Mesh("teddy_bear_a.msh");       
        BaseItem("Push_Force", "", ""); //此藍圖製作出來的武器:Push_Force ( left hand of golVA )
//RequiredItem("Melee_BrassKnucklesLightGen", 1);  
RequiredItem("CraftPart_Diamonds", 5);   //材料為5顆鑽石
        //RequiredItem("CraftPart_BatteryLarge", 9);      
        AdditionalDamageType(DamageType_Impact); //衝擊屬性
        AdditionalDamage(3.0);
        AdditionalCriticalProb(0.1);
        AdditionalCriticalDamage(3.0);
        AdditionalCriticalPhysicsDamage(2.0);
        AdditionalDamageLevel(6);
AdditionalCriticalDuration(7.0);
CraftCreatesBaseItem(true); //這段是讓藍圖製作出BaseItem的武器
        Color(Color_Orange);
}

Item("Push_Force", CategoryType_Melee)
{
Name("Left Hand of gloVA");        
        Visibility(true);
        ItemType(ItemType_Knuckles);
        PhysicsScript("DroppedInventory.scr");
        UpgradeLevel(0);
        Condition(35); //耐久度
        Damage(39.0); //傷害值
        CriticalProb(1.00); //屬性觸發率100% (1.00)
        CriticalDamage(30.0); //屬性傷害值
        DamageRange(300.0); //傷害範圍
        Force(100.0); //力道
        PhysicsDamage(35.0);
        StaminaUsage(2.0); //體力消耗2大格
        SwingSpeed(2.0); //攻擊速度
        ConfusionProb(0.5);
        HeadSmashProb(1.0);
        HeadCutProb(0.0);
        ArmsCutProb(0.0);
        LegsCutProb(0.0);
        DamageType(DamageType_Punch_Ko); //屬性為擊倒
        Price(20000); //價格
        RepairPrice(69);  //修復金額
        Mesh("weapon_fists.msh");                
        AnimPrefix("Force");
        HudIcon("fists");
        MinDamageAngle(-20.0);
        MaxDamageAngle(20.0);
        MinDamageMult(1.0);
        MinHitSeverity(HitSeverity_Heavy);
        MaxHitSeverity(HitSeverity_Heavy);
        HorizontalAttackDamageMul(1.0);
        TwoHanded(false);
        HolderElement("bip01 spine2");
        HolderOffset([25.0,10.0,15.0]);
        HolderAngle([90.0,20.0,90.0]);
        CausesKnockDown(true);
        DestroySound("break_metal_weapon_00.wav");
        AiHitSound("wrench");
        use HitEffects_Default();
        BloodSplatFactor(0.5);
        use PickupSounds_Default();
        DamageSize(80.0);
        StatsType(StatsType_Blunt);                
        LootType(LootType_Blunt);
        FF_Left(1.0);
        FF_Right(1.0);
        FF_Duration(0.4);
        FF_FadeOut(0.0);
        Reparable(true);  //是否能維修( true = 允許 )                 
}

雙屬性武器就是用藍圖製作出BaseItem的原理,簡單講就是我用Craftplan_DevForce模組添加衝擊屬性到原本就有擊倒屬性Push_Force,這就是為什麼 left hand og gloVA 能將任何殭屍電飛倒地的原因。


8.物品重力修改
改重力只能改地圖中的任何東西,例如地上的武器、瓦斯桶、殭屍、特定NPC,還有能駕駛的車子;檔案位於Data0 裡 Physic 的 ODEWorld.phx

其中有一行是 SetGravity([0, -980, 0]) ;中間的數值-980為正常重力,0為無重力;重力越小的話開車子車子會飛起來而且不能控制方向,就像這幾張圖一樣



除非其他玩家是坐在車上,不然車子是不會掉下來的。


如果只有自己一人在車上,那車子就會一直停在空中,自己要跑很遠車子才會掉下來



9.修改敵人大小
殭屍檔案位於Data0 裡 Preset 的 ZombieAI_preInfectedAI_pre,人類檔案則是HumanAI_pre;如果要修改特定殭屍的話就要從 ZombieAI_pre.defInfectedAI_pre.def 找你要的殭屍做修改,人類則是在Data2 裡 Preset 的 HumanAI_pre.def 找你要的特定人類做修改。

取檔案ZombieAI_pre當例子:
    PresetDef("Character")
    {
        Description("");

        AddField("MeshName", "NoMesh.msh");
        AddField("SkinName", "Default");
        AddField("m_Seed", "0");
        AddField("m_MustHaveTags", "");
        AddField("m_MustNotHaveTags", "");
        AddField("m_ForcedBodyScaleMin", "1.000"); //殭屍大小,1.0是正常大小,我要5倍大的話就改5.000
        AddField("m_ForcedBodyScaleMax", "1.000"); //殭屍大小,1.0是正常大小,我要5倍大的話就改5.000
        AddField("m_SoundPreset", "ZombieMale01");
        AddField("m_AllowInitialArmsDamage", "1");
        AddField("m_AllowInitialLegsDamage", "0");
        AddField("m_BoneDamageProbability", "0.25");
        AddField("m_BurnOnStart", "0"); //出現時是否燃燒( 0 = 無 ,1 = 有)
        AddField("m_PoisonedOnStart", "0"); //出現時是否中毒( 0 = 無 ,1 = 有)
        AddField("m_CanUseAttractors", "1"); //能不能被吸引( 0 = 無 ,1 = 有)
        AddField("m_ConflictSide", CONFLICT_SIDE_COUNTER_ALL);
        AddField("m_CrippleBonesEnable", "1");
        AddField("m_DialogSpeakerName", "");
        AddField("m_HasBulletproofVest", "0");
        AddField("m_CustomDataPresetID", "-1");
        AddField("m_HealthMul", "1.0"); //血量倍數,1.0為正常值
        AddField("m_ForceStinger", "0");
        AddField("m_Gender", "0");
        AddField("m_GrabEnabled", "1"); //能不能抓住玩家( 0 = 無 ,1 = 有)
        AddField("m_ImmunitiesNames", "");
        AddField("m_InitAnimation", "mz_b_calm_idle_v01");
        AddField("m_InitialDamage", "0.25");
        AddField("m_NeverHolsterWeapon", "1");
        AddField("m_OnlyBack", "0"); //只能從背後攻擊( 0 = 無 ,1 = 有),Ram就是設定1
        AddField("m_PrimaryWeaponName", "");
        AddField("m_PrimaryWeaponProbability", "0.5");
        AddField("m_ShowFlies", "1");
        AddField("m_StepPreset", "Default_AI");
        AddField("m_UseDistancedStinger", "0");
        AddField("m_DamageInfluencesNames", "");
        AddField("m_MaxLevelDiff", "100");
        AddField("m_MinLevelDiff", "-5");

        use declare_zombie_ai_presets();
    }

血量設定太高的話會打很累甚至打不死,而且你打到其他玩家在打得殭屍的話,那隻殭屍血就會變成你設定的倍數;我個人是沒有修改,不然打也打不完,也會害到其他玩家。

而圖片中的Thug我是設定5倍大,缺點是無法用進戰武器近距離攻擊他,只能用投擲或是手榴彈爆炸攻擊,而且他的攻擊距離也變5倍遠。




如果是在室內的話,Thug會卡住,有時還會自己支解死亡。




10.修改敵人數值
檔案位於Data3的 AI 裡,殭屍檔案在 Zombie 的 vessel_data 和 Infected 的 infected_data ,人類則是在 Human 的 human_data 裡;檔案裡有一大堆指令,這邊就拿vessel_data裡的幾個重要的指令來介紹,其餘的有興趣可以去研究。

移動速度
ParamFloat("walk_speed_calm", 90.0)
ParamFloat("walk_speed_alarmed", 230.0)
ParamFloat("run_speed_calm", 90.0)
ParamFloat("run_speed_alarmed", 230.0)
ParamFloat("sprint_speed_calm", 90.0)
ParamFloat("sprint_speed_alarmed", 90.0)

體力恢復速度
ParamFloat("stamina_regeneration_rate", 0.05)

被擊倒爬起來需要的時間
ParamFloat("knock_down_duration", 3.0)

每秒燃燒的傷害值
ParamFloat("burning_damage_per_second", 20) //每秒扣2%的血量 ( 20/1000 )

倒在水裡的扣血量
ParamFloat("drowning_damage", 15.0)

最大等級
ParamInt("max_level", 60)

血量倍數
ParamFloat("health_mul", 1.0)

體力倍數
ParamFloat("stamina_mul", 1.0)

體力和血量的比率
ParamFloat("stamina_to_health_ratio", 1.0)

對玩家的傷害值
ParamFloat("damage_mul", 1.0)

經驗值
ParamFloat("experience_mul", 1.0) //越大經驗值當然越多倍





以上就是我目前研究出來的部分改法,花了2天的時間編輯這文章,列出這10點應該也夠用了,在這裡提供出這麼多教學也是為了能讓遊戲樂趣更多元化,至於要如何運用就要看各位有沒有良心了,本人只希望改MOD的玩家能不要破壞到其他正常玩家的遊戲進行。

如果內容有任何錯誤,或者是有研究出其他改法的玩家,歡迎在下面留言。








  
34
-
板務人員:歡迎申請板主

33 筆精華,05/07 更新
一個月內新增 0
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】