死亡之島這款遊戲好像慢慢沉沒了?
本人偶爾上線亂連還是會遇到少數一般玩家,個人是比較喜歡跟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.xml、purna_levels.xml、samb_levels.xml和xian_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"/>
簡單的改法是:把點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);
}
}
{
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);
}
}
{
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(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%機率。
{
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);
}
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);
}
{
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);
}
{
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);
}
{
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);
{
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.scr從Data3裡的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("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.scr和Collectables_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.scr、Inventory_Gen.scr、Inventory_Patch.scr、Inventory_Special.scr;Inventory.scr是在Data0的Skills,後三者是在Data3的Skills;Inventory.scr和Inventory_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_pre 和 InfectedAI_pre,人類檔案則是HumanAI_pre;如果要修改特定殭屍的話就要從 ZombieAI_pre.def 和 InfectedAI_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的玩家能不要破壞到其他正常玩家的遊戲進行。
如果內容有任何錯誤,或者是有研究出其他改法的玩家,歡迎在下面留言。