diff --git a/sku.0/sys.server/compiled/game/script/library/combat.java b/sku.0/sys.server/compiled/game/script/library/combat.java index 830a250ed..b37eb8116 100755 --- a/sku.0/sys.server/compiled/game/script/library/combat.java +++ b/sku.0/sys.server/compiled/game/script/library/combat.java @@ -3329,54 +3329,55 @@ public class combat extends script.base_script dr_critMod += ((float)getEnhancedSkillStatisticModifierUncapped(attacker, "combat_critical_melee") / 10.0f); critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_melee"); } - switch (weaponData.weaponType) - { - case WEAPON_TYPE_PISTOL: - dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_pistol"); - critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_pistol"); - break; - case WEAPON_TYPE_RIFLE: - dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_rifle"); - critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_rifle"); - break; - case WEAPON_TYPE_LIGHT_RIFLE: - dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_carbine"); - critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_carbine"); - break; - case WEAPON_TYPE_HEAVY: - dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_heavy"); - critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_heavy"); - break; - case WEAPON_TYPE_GROUND_TARGETTING: - dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_heavy"); - critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_heavy"); - break; - case WEAPON_TYPE_DIRECTIONAL: - dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_heavy"); - critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_heavy"); - break; - case WEAPON_TYPE_1HAND_MELEE: - dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_1h"); - critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_1h"); - break; - case WEAPON_TYPE_2HAND_MELEE: - dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_2h"); - critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_2h"); - break; - case WEAPON_TYPE_UNARMED: - dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_unarmed"); - critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_unarmed"); - break; - case WEAPON_TYPE_POLEARM: - dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_polearm"); - critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_polearm"); - break; - case WEAPON_TYPE_WT_1HAND_LIGHTSABER: - case WEAPON_TYPE_WT_2HAND_LIGHTSABER: - case WEAPON_TYPE_WT_POLEARM_LIGHTSABER: - dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_lightsaber"); - critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_lightsaber"); - break; + if(weaponData != null) { + switch (weaponData.weaponType) { + case WEAPON_TYPE_PISTOL: + dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_pistol"); + critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_pistol"); + break; + case WEAPON_TYPE_RIFLE: + dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_rifle"); + critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_rifle"); + break; + case WEAPON_TYPE_LIGHT_RIFLE: + dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_carbine"); + critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_carbine"); + break; + case WEAPON_TYPE_HEAVY: + dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_heavy"); + critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_heavy"); + break; + case WEAPON_TYPE_GROUND_TARGETTING: + dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_heavy"); + critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_heavy"); + break; + case WEAPON_TYPE_DIRECTIONAL: + dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_heavy"); + critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_heavy"); + break; + case WEAPON_TYPE_1HAND_MELEE: + dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_1h"); + critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_1h"); + break; + case WEAPON_TYPE_2HAND_MELEE: + dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_2h"); + critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_2h"); + break; + case WEAPON_TYPE_UNARMED: + dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_unarmed"); + critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_unarmed"); + break; + case WEAPON_TYPE_POLEARM: + dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_polearm"); + critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_polearm"); + break; + case WEAPON_TYPE_WT_1HAND_LIGHTSABER: + case WEAPON_TYPE_WT_2HAND_LIGHTSABER: + case WEAPON_TYPE_WT_POLEARM_LIGHTSABER: + dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_lightsaber"); + critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_lightsaber"); + break; + } } dr_critMod = getDiminishedReturnValue(dr_critMod, DR_ATTACKER_CRITICAL); dr_critMod2 = getDiminishedReturnValue(dr_critMod2, DR_ATTACKER_CRITICAL_2);