武器修改方法举例 武器文件在entities/items/crysis2/weapons/humans 另外子弹属性在entities/items/crysis2/ammo/humans 下面
这里拿出的是SCARAB,有战术副挂,可以上消音。比较有代表性 <ammos>这里是使用的子弹类型,最大弹量,我是把此处的数值和后面还会提到的数量统一,不过似乎不统一也不会出错,以后面的为准了
<ammo name="ScarBullet" extra="40" amount="40" minAmmo="25" capacity="160" GAME="SP"/>身上的最大载弹量是capacity
<ammo name="ScarBullet" extra="120" amount="40" capacity="120" GAME="MP"/>
</ammos>
接下来的代码都无视,直到
<firemodes>
<firemode type="default">多数武器都有一个默认参数,后面开火模式里没提到的参数就从这里调取
<fire>
<param name="ammo_type" value="ScarBullet" />这个前面有了,用的什么子弹
<param name="rate" value="900" />开火速率,每分钟的发射数量
<param name="damage" value="75" GAME="SP"/>单人游戏里的伤害值
<param name="damage" value="24" GAME="MP"/>MP就是多人游戏的伤害值,后面碰上MP的一律不去改,没意思。
<param name="secondary_damage" value="1" />
<param name="ai_vs_player_damage" value="180"/>这个没搞清楚,难道是敌人打玩家的伤害么,那么大……
<param name="reload_time" value="2.75" />上弹速度,由于有上弹动画文件控制最大时间,所以这里改了没多少意义
<param name="bullet_chamber" value="1" />弹仓数量,就是有些武器在没打光弹药之前上弹,可以加上弹仓里的一发,实现N+1发最大弹量
<param name="clip_size" value="40" GAME="SP" />每弹夹弹数,如果改成-1 ,那么就是∞的,哈哈哈哈
<param name="clip_size" value="40" GAME="MP" />
<param name="helper_tp" value="weapon_term" />
<param name="nearmiss_signal" value="OnNearMiss" />
<param name="damage_drop_per_meter" value="0.25" GAME="MP"/>
<param name="damage_drop_per_meter" value="2.0" GAME="SP"/>子弹前进每一米会损失动能,也就是损失伤害值,在消音的时候这个尤其重要,远了打不死人
<param name="damage_drop_min_distance" value="20.0" GAME="MP"/>
<param name="damage_drop_min_distance" value="50" GAME="SP"/>子弹前进多少米开始减少动能,消音时候子弹很早就开始损耗动能了
<param name="damage_drop_min_damage" value="20.0" GAME="MP"/>
<param name="damage_drop_min_damage" value="60" GAME="SP"/>子弹减少动能后最后保留的伤害值
<!-- the minimun bullet damage when damage drop per metre is used, penetration damage reduction is not restricted by this -->
<param name="point_blank_amount" value="3" GAME="SP"/>
<param name="point_blank_distance" value="1" GAME="SP"/>
<param name="point_blank_falloff_distance" value="2" GAME="SP"/>
<param name="fillAmmoReloadFraction" value="0.65" />
<param name="endReloadFraction" value="0.87" />
<param name="knocks_target" value="0"/>
<!--<param name="knockdown_chance_leg" value="33"/>-->打腿把敌人打倒的几率,泄露版这里被注释掉了,也就是无效,可能是100%会倒下
<param name="min_damage_for_knockDown_leg" value="10"/>打中腿倒下的最小伤害值
<param name="holdbreath_fire_anim_damp" value="0.75" GAME="SP"/>
<param name="holdbreath_fire_anim_damp" value="1.0" GAME="MP"/>
<!-- Scales the intensity of the firing anim, lower number reduces anim-->
<param name="holdbreath_ffeedback_damp" value="0.75" GAME="SP"/>
<!-- Scales the intensity of the vibration, less is less -->
<param name="holdbreath_ffeedback_damp" value="1.0" GAME="MP"/>
<param name="ironsight_fire_anim_damp" value="0.75" GAME="SP"/>
<param name="ironsight_fire_anim_damp" value="0.1" GAME="MP"/>
</fire>
<proceduralrecoil>
<param name="duration" value="0.3" />
<param name="strength" value="0.05" />
<param name="kickIn" value="0.3" />
</proceduralrecoil>