《死亡岛》MOD制作方法
- 来源:wenxiao
- 作者:Alvin
- 编辑:ChunTian
物品修改
以下是物品的修改:
物品的文件有好几个,都以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("Pistol_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级人物想用枪,这里必须要调低。幸运的是2级的枪丢给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);
}
这里我补充一点,这里只是物品不同级别下属性提升的一个参考参数,并不是武器生成的依据。就是说你生成的高伤害武器丢给别人的时候伤害是按照你队友自己机器上的参数来重算的。
玩家点评 (0人参与,0条评论)
热门评论
全部评论