diff --git a/addons/sourcemod/configs/zombie_riot/weapons.cfg b/addons/sourcemod/configs/zombie_riot/weapons.cfg index 5beacea73..7c538ff42 100644 --- a/addons/sourcemod/configs/zombie_riot/weapons.cfg +++ b/addons/sourcemod/configs/zombie_riot/weapons.cfg @@ -588,7 +588,7 @@ "pap_3_classname" "tf_weapon_sniperrifle" "pap_3_index" "526" - "pap_3_attributes" "305 ; 1 ; 6 ; 1.7 ; 2 ; 80 ; 298 ; 5 ; 97 ; 1.0 ; 4016 ; 0.6" + "pap_3_attributes" "305 ; 1 ; 6 ; 1.7 ; 2 ; 50 ; 298 ; 5 ; 97 ; 1.0" "pap_3_ammo" "16" //Sniper ammo "pap_3_model" "models/workshop_partner/weapons/c_models/c_dex_sniperrifle/c_dex_sniperrifle.mdl" "pap_3_func_attack" "Weapon_Anti_Material_Rifle" @@ -596,7 +596,7 @@ "pap_3_tier" "4" "pap_3_rarity" "1" "pap_3_weapon_archetype" "6" - "pap_3_extra_desc" "Deals only 0.6x dmg against raidbosses." + "pap_3_int_ability_onequip" "126" "pap_3_lag_comp" "1" "pap_3_lag_comp_collision" "0" @@ -616,7 +616,7 @@ "pap_4_classname" "tf_weapon_sniperrifle" "pap_4_index" "526" - "pap_4_attributes" "305 ; 1 ; 6 ; 1.4 ; 2 ; 130 ; 298 ; 5 ; 97 ; 1.0 ; 4016 ; 0.6" + "pap_4_attributes" "305 ; 1 ; 6 ; 1.4 ; 2 ; 85.0 ; 298 ; 5 ; 97 ; 1.0" "pap_4_ammo" "16" //Sniper ammo "pap_4_model" "models/workshop_partner/weapons/c_models/c_dex_sniperrifle/c_dex_sniperrifle.mdl" "pap_4_func_attack" "Weapon_Anti_Material_Rifle" @@ -624,7 +624,7 @@ "pap_4_tier" "4" "pap_4_rarity" "1" "pap_4_weapon_archetype" "6" - "pap_4_extra_desc" "Deals only 0.6x dmg against raidbosses." + "pap_4_int_ability_onequip" "126" "pap_4_damage_falloff" "1.0" //The amount of damage that is reduced for every 1000 units, the default is 0.9 "pap_4_lag_comp" "1" @@ -3003,7 +3003,7 @@ "int_ability_onequip" "3" "weapon_archetype" "6" - "pappaths" "3" // Paps 1 - 3 + "pappaths" "2" // Paps 1 - 3 "papskip" "0" // 0 -> 1 -> 4 @@ -3030,7 +3030,7 @@ "pap_1_func_attack" "Weapon_Arsenal_Terroriser_M1" "pap_1_pappaths" "1" - "pap_1_papskip" "2" // Skips Pap 2 & 3 + "pap_1_papskip" "1" // Skips Pap 2 & 3 @@ -3054,101 +3054,54 @@ "pap_2_int_ability_onequip" "3" "pap_2_pappaths" "1" - "pap_2_papskip" "2" // Skips Pap 3 & 4 - + "pap_2_papskip" "1" // Skips Pap 3 & 4 - "pap_3_cost" "8250" - "pap_3_custom_name" "Full Auto Rifle" - "pap_3_desc" "Elite Sniper Pap 3" + "pap_3_cost" "10333" + "pap_3_custom_name" "Cripple MOAB" + "pap_3_desc" "Elite Sniper Pap 4" "pap_3_damage_falloff" "1.0" //The amount of damage that is reduced for every 1000 units, the default is 0.9 "pap_3_classname" "tf_weapon_sniperrifle" - "pap_3_index" "752" - "pap_3_attributes" "2 ; 20 ; 41 ; 0.0 ; 298 ; 2 ; 6 ; 2 ; 97 ; 1.0" + "pap_3_index" "230" + "pap_3_attributes" "2 ; 30.0 ; 41 ; 1.5 ; 98 ; 4 ; 6 ; 2 ; 97 ; 1.0" "pap_3_ammo" "16" //Sniper ammo - "pap_3_weapon_archetype" "6" "pap_3_lag_comp" "1" "pap_3_lag_comp_collision" "0" "pap_3_lag_comp_extend_boundingbox" "1" "pap_3_lag_comp_dont_move_building" "0" "pap_3_no_clip" "1" - "pap_3_int_ability_onequip" "3" + "pap_3_int_ability_onequip" "5" - "pap_3_pappaths" "1" - "pap_3_papskip" "2" // Skips Pap 4 & 5 + "pap_3_pappaths" "0" + "pap_3_weapon_archetype" "6" + "pap_3_func_attack" "Weapon_Arsenal_Terroriser_M1" - "pap_4_cost" "10333" - "pap_4_custom_name" "Cripple MOAB" - "pap_4_desc" "Elite Sniper Pap 4" + "pap_4_cost" "11500" + "pap_4_custom_name" "Elite Sniper" + "pap_4_desc" "Elite Sniper Pap 5" "pap_4_damage_falloff" "1.0" //The amount of damage that is reduced for every 1000 units, the default is 0.9 - "pap_4_classname" "tf_weapon_sniperrifle" - "pap_4_index" "230" - "pap_4_attributes" "2 ; 30.0 ; 41 ; 1.5 ; 98 ; 4 ; 6 ; 2 ; 97 ; 1.0" + "pap_4_classname" "tf_weapon_sniperrifle_classic" + "pap_4_index" "1098" + "pap_4_attributes" "2 ; 20.0 ; 6 ; 1.0 ; 41 ; 3.0 ; 97 ; 2" "pap_4_ammo" "16" //Sniper ammo + "pap_4_func_attack2" "Weapon_SupplyDropElite" + "pap_4_func_onbuy" "Weapon_EnableSmartBouncing" "pap_4_lag_comp" "1" "pap_4_lag_comp_collision" "0" "pap_4_lag_comp_extend_boundingbox" "1" "pap_4_lag_comp_dont_move_building" "0" "pap_4_no_clip" "1" - "pap_4_int_ability_onequip" "5" + "pap_4_int_ability_onequip" "3" "pap_4_pappaths" "0" "pap_4_weapon_archetype" "6" - "pap_4_func_attack" "Weapon_Arsenal_Terroriser_M1" - - - - "pap_5_cost" "11500" - "pap_5_custom_name" "Elite Sniper" - "pap_5_desc" "Elite Sniper Pap 5" - - "pap_5_damage_falloff" "1.0" //The amount of damage that is reduced for every 1000 units, the default is 0.9 - "pap_5_classname" "tf_weapon_sniperrifle_classic" - "pap_5_index" "1098" - "pap_5_attributes" "2 ; 20.0 ; 6 ; 1.0 ; 41 ; 3.0 ; 97 ; 2" - "pap_5_ammo" "16" //Sniper ammo - "pap_5_func_attack2" "Weapon_SupplyDropElite" - "pap_5_func_onbuy" "Weapon_EnableSmartBouncing" - - "pap_5_lag_comp" "1" - "pap_5_lag_comp_collision" "0" - "pap_5_lag_comp_extend_boundingbox" "1" - "pap_5_lag_comp_dont_move_building" "0" - "pap_5_no_clip" "1" - "pap_5_int_ability_onequip" "3" - - "pap_5_pappaths" "0" - "pap_5_weapon_archetype" "6" - - - - "pap_6_cost" "6000" - "pap_6_custom_name" "Elite Defender" - "pap_6_desc" "Elite Sniper Pap 6" - - "pap_6_damage_falloff" "1.0" //The amount of damage that is reduced for every 1000 units, the default is 0.9 - - "pap_6_classname" "tf_weapon_sniperrifle" - "pap_6_index" "752" - "pap_6_attributes" "2 ; 20 ; 6 ; 1.0 ; 41 ; 0.0 ; 298 ; 2 ; 97 ; 1.0" - "pap_6_ammo" "16" //Sniper ammo - "pap_6_func_attack" "Weapon_EliteDefender" - - "pap_6_lag_comp" "1" - "pap_6_lag_comp_collision" "0" - "pap_6_lag_comp_extend_boundingbox" "1" - "pap_6_lag_comp_dont_move_building" "0" - "pap_6_no_clip" "1" - "pap_6_int_ability_onequip" "3" - "pap_6_pappaths" "0" - "pap_6_weapon_archetype" "6" } "Riot Gun" { @@ -3460,7 +3413,7 @@ "desc" "Terroriser Bomb Implanter Sniperrifle Desc" "classname" "tf_weapon_sniperrifle" "index" "752" - "attributes" "6 ; 1.3 ; 544 ; 2 ; 2 ; 14.5 ; 298 ; 3 ; 90 ; 2 ; 97 ; 1.0 ; 99 ; 1.0" + "attributes" "6 ; 1.3 ; 544 ; 2 ; 2 ; 14.0 ; 298 ; 3 ; 90 ; 2 ; 97 ; 1.0 ; 99 ; 1.0" "ammo" "16" //Sniper ammo "model" "models/workshop/weapons/c_models/c_pro_rifle/c_pro_rifle.mdl" "func_attack" "Weapon_Arsenal_Terroriser_M1" @@ -3482,7 +3435,7 @@ "pap_1_classname" "tf_weapon_sniperrifle" "pap_1_index" "752" - "pap_1_attributes" "6 ; 1.1 ; 544 ; 4 ; 2 ; 12.5 ; 298 ; 3 ; 90 ; 3 ; 97 ; 0.9 ; 99 ; 1.0" + "pap_1_attributes" "6 ; 1.1 ; 544 ; 4 ; 2 ; 12.0 ; 298 ; 3 ; 90 ; 3 ; 97 ; 0.9 ; 99 ; 1.0" "pap_1_ammo" "16" //Sniper ammo "pap_1_model" "models/workshop/weapons/c_models/c_pro_rifle/c_pro_rifle.mdl" "pap_1_func_attack" "Weapon_Arsenal_Terroriser_M1" @@ -3504,7 +3457,7 @@ "pap_2_classname" "tf_weapon_sniperrifle" "pap_2_index" "752" - "pap_2_attributes" "6 ; 1.1 ; 544 ; 6 ; 2 ; 17.5 ; 298 ; 3 ; 90 ; 3 ; 97 ; 0.9 ; 99 ; 1.0" + "pap_2_attributes" "6 ; 1.1 ; 544 ; 6 ; 2 ; 17.0 ; 298 ; 3 ; 90 ; 3 ; 97 ; 0.9 ; 99 ; 1.0" "pap_2_ammo" "16" //Sniper ammo "pap_2_model" "models/workshop/weapons/c_models/c_pro_rifle/c_pro_rifle.mdl" "pap_2_func_attack" "Weapon_Arsenal_Terroriser_M1" diff --git a/addons/sourcemod/scripting/shared/core.sp b/addons/sourcemod/scripting/shared/core.sp index 8895ad785..71c4f4251 100644 --- a/addons/sourcemod/scripting/shared/core.sp +++ b/addons/sourcemod/scripting/shared/core.sp @@ -3518,6 +3518,7 @@ void RemoveNpcThingsAgain(int entity) CleanAllApplied_Aresenal(entity, true); b_NpcForcepowerupspawn[entity] = 0; CleanAllApplied_Cryo(entity); + EnemyResetUranium(entity); #endif i_HexCustomDamageTypes[entity] = 0; } diff --git a/addons/sourcemod/scripting/shared/damage.sp b/addons/sourcemod/scripting/shared/damage.sp index cf6744eab..03c402697 100644 --- a/addons/sourcemod/scripting/shared/damage.sp +++ b/addons/sourcemod/scripting/shared/damage.sp @@ -1028,6 +1028,10 @@ static stock float NPC_OnTakeDamage_Equipped_Weapon_Logic(int victim, int &attac { WeaponLeper_OnTakeDamage(attacker, damage,weapon, zr_custom_damage); } + case WEAPON_URANIUM_RIFLE: + { + WeaponUranium_OnTakeDamage(attacker,victim, damage,weapon, damagePosition); + } case WEAPON_TEXAN_BUISNESS: { Weapon_TexanBuisness(attacker, damage, damagetype); diff --git a/addons/sourcemod/scripting/shared/npc_stats.sp b/addons/sourcemod/scripting/shared/npc_stats.sp index a36f45806..34cb33783 100644 --- a/addons/sourcemod/scripting/shared/npc_stats.sp +++ b/addons/sourcemod/scripting/shared/npc_stats.sp @@ -6986,7 +6986,7 @@ public Action Did_They_Get_Suck(Handle cut_timer, int ref) } -stock void TE_Particle(const char[] Name, float origin[3]=NULL_VECTOR, float start[3]=NULL_VECTOR, float angles[3]=NULL_VECTOR, int entindex=-1, int attachtype= 0, int attachpoint=-1, bool resetParticles=true, int customcolors=0, float color1[3]=NULL_VECTOR, float color2[3]=NULL_VECTOR, int controlpoint=-1, int controlpointattachment=-1, float controlpointoffset[3]=NULL_VECTOR, float delay=0.0) +stock void TE_Particle(const char[] Name, float origin[3]=NULL_VECTOR, float start[3]=NULL_VECTOR, float angles[3]=NULL_VECTOR, int entindex=-1, int attachtype= 0, int attachpoint=-1, bool resetParticles=true, int customcolors=0, float color1[3]=NULL_VECTOR, float color2[3]=NULL_VECTOR, int controlpoint=-1, int controlpointattachment=-1, float controlpointoffset[3]=NULL_VECTOR, float delay=0.0, int clientspec = 0) { // find string table int tblidx = FindStringTable("ParticleEffectNames"); @@ -7057,7 +7057,12 @@ stock void TE_Particle(const char[] Name, float origin[3]=NULL_VECTOR, float sta } } - TE_SendToAll(delay); + if(clientspec != 0) + TE_SendToAll(delay); + else + { + TE_SendToClient(clientspec, delay); + } } stock int FireBullet(int m_pAttacker, int iWeapon, float m_vecSrc[3], float m_vecDirShooting[3], float m_flDamage, float m_flDistance, int nDamageType, const char[] tracerEffect, int client = -1, float bonus_entity_damage = 5.0, const char[] szAttachment = "muzzle") diff --git a/addons/sourcemod/scripting/shared/stocks.sp b/addons/sourcemod/scripting/shared/stocks.sp index 4b535ba95..a99a516a3 100644 --- a/addons/sourcemod/scripting/shared/stocks.sp +++ b/addons/sourcemod/scripting/shared/stocks.sp @@ -3035,10 +3035,14 @@ int inflictor = 0) { custom_flags |= ZR_DAMAGE_ICE; } + if((i_ExplosiveProjectileHexArray[entity] & EP_IS_ICE_DAMAGE)) + { + custom_flags |= ZR_DAMAGE_ICE; + } - if((i_ExplosiveProjectileHexArray[entity] & EP_NO_KNOCKBACK)) + if((i_ExplosiveProjectileHexArray[entity] & ZR_DAMAGE_IGNORE_DEATH_PENALTY)) { - damage_flags |= DMG_PREVENT_PHYSICS_FORCE; + custom_flags |= ZR_DAMAGE_IGNORE_DEATH_PENALTY; } int entityToEvaluateFrom = 0; int EntityToForward = 0; diff --git a/addons/sourcemod/scripting/zombie_riot/custom/arse_enal_layer_tripmine.sp b/addons/sourcemod/scripting/zombie_riot/custom/arse_enal_layer_tripmine.sp index 9e087bcde..9c8e577b7 100644 --- a/addons/sourcemod/scripting/zombie_riot/custom/arse_enal_layer_tripmine.sp +++ b/addons/sourcemod/scripting/zombie_riot/custom/arse_enal_layer_tripmine.sp @@ -715,6 +715,7 @@ void Cause_Terroriser_Explosion(int client, int npc, bool allowLagcomp = false) CleanAllApplied_Aresenal(npc); float radius = 100.0; spawnRing_Vectors(EntLoc2, 0.0, 0.0, 0.0, 0.0, "materials/sprites/laserbeam.vmt", 255, 0, 0, 200, 1, 0.25, 6.0, 2.1, 1, radius); + i_ExplosiveProjectileHexArray[client] |= ZR_DAMAGE_IGNORE_DEATH_PENALTY; if(allowLagcomp) { b_LagCompNPC_No_Layers = true; @@ -732,6 +733,6 @@ void Cause_Terroriser_Explosion(int client, int npc, bool allowLagcomp = false) if(!b_NpcHasDied[npc]) //Incase it gets called later. { f_CooldownForHurtHud[client] = 0.0; //So it shows the damage delt by by secondary internal combustion too. - SDKHooks_TakeDamage(npc, client, client, damage * 0.5, DMG_BLAST); //extra damage to the target that was hit cus yeah. + SDKHooks_TakeDamage(npc, client, client, damage * 0.5, DMG_BLAST | ZR_DAMAGE_IGNORE_DEATH_PENALTY); //extra damage to the target that was hit cus yeah. } } diff --git a/addons/sourcemod/scripting/zombie_riot/custom/weapon_slug_rifle.sp b/addons/sourcemod/scripting/zombie_riot/custom/weapon_slug_rifle.sp index aaa771dd9..eb82f2089 100644 --- a/addons/sourcemod/scripting/zombie_riot/custom/weapon_slug_rifle.sp +++ b/addons/sourcemod/scripting/zombie_riot/custom/weapon_slug_rifle.sp @@ -1,16 +1,46 @@ #pragma semicolon 1 #pragma newdecls required +float Uranium_TimeTillBigHit[MAXTF2PLAYERS][MAXENTITIES]; +void Uranium_MapStart() +{ + Zero2(Uranium_TimeTillBigHit); +} + +void EnemyResetUranium(int enemy) +{ + for(int client; client <= MaxClients ; client++) + { + Uranium_TimeTillBigHit[client][enemy] = 0.0; + } +} + public void Weapon_Anti_Material_Rifle(int client, int weapon, const char[] classname, bool &result) { EmitSoundToAll("npc/vort/attack_shoot.wav", client, SNDCHAN_STATIC, 80, _, 1.0); Client_Shake(client, 0, 50.0, 25.0, 1.5); } + public void Weapon_Anti_Material_Rifle_Deploy(int client, int weapon) { - if(Items_HasNamedItem(client, "Head Equipped Blue Goggles")) + if (i_CustomWeaponEquipLogic[weapon] == WEAPON_URANIUM_RIFLE) // 125 + { + if(Items_HasNamedItem(client, "Head Equipped Blue Goggles")) + { + Attributes_Set(weapon, 304, 1.1); + } + } +} + + +void WeaponUranium_OnTakeDamage(int attacker,int victim, float &damage, int weapon, float damagePosition[3]) +{ + if(Uranium_TimeTillBigHit[attacker][victim] < GetGameTime()) { - Attributes_Set(weapon, 304, 1.1); + damage *= 2.2; + Uranium_TimeTillBigHit[attacker][victim] = GetGameTime() + 20.0; + EmitSoundToClient(attacker, "weapons/physcannon/energy_sing_explosion2.wav", attacker, SNDCHAN_STATIC, 80, _, 1.0); + TE_Particle("mvm_soldier_shockwave", damagePosition, NULL_VECTOR, {0.0,0.0,0.0}, -1, _, _, _, _, _, _, _, _, _, 0.0, .clientspec = attacker); } } \ No newline at end of file diff --git a/addons/sourcemod/scripting/zombie_riot/custom/weapon_specter.sp b/addons/sourcemod/scripting/zombie_riot/custom/weapon_specter.sp index d7021950f..13dea550d 100644 --- a/addons/sourcemod/scripting/zombie_riot/custom/weapon_specter.sp +++ b/addons/sourcemod/scripting/zombie_riot/custom/weapon_specter.sp @@ -333,7 +333,8 @@ public void SpecterAlter_Cooldown_Logic(int client, int weapon) i_ExplosiveProjectileHexArray[weapon] = 0; i_ExplosiveProjectileHexArray[weapon] |= EP_DEALS_CLUB_DAMAGE; - Explode_Logic_Custom(f_SpecterDeadDamage[client] * 3.5, client, weapon, weapon, flPos, SPECTER_DEAD_RANGE, SPECTER_DAMAGE_FALLOFF_PER_ENEMY, _, _, 10); + i_ExplosiveProjectileHexArray[weapon] |= ZR_DAMAGE_IGNORE_DEATH_PENALTY; + Explode_Logic_Custom(f_SpecterDeadDamage[client], client, weapon, weapon, flPos, SPECTER_DEAD_RANGE, SPECTER_DAMAGE_FALLOFF_PER_ENEMY, _, _, 10); //Bleed sucks but thats on purpose float vecTarget[3]; diff --git a/addons/sourcemod/scripting/zombie_riot/store.sp b/addons/sourcemod/scripting/zombie_riot/store.sp index 910c47249..17edde93c 100644 --- a/addons/sourcemod/scripting/zombie_riot/store.sp +++ b/addons/sourcemod/scripting/zombie_riot/store.sp @@ -5780,6 +5780,7 @@ int Store_GiveItem(int client, int index, bool &use=false, bool &found=false) Yakuza_Enable(client, entity); Enable_SkadiWeapon(client, entity); Enable_Hunting_Rifle(client, entity); + Weapon_Anti_Material_Rifle_Deploy(client, entity); } return entity; diff --git a/addons/sourcemod/scripting/zombie_riot/zr_core.sp b/addons/sourcemod/scripting/zombie_riot/zr_core.sp index f456c7c7f..002a108d3 100644 --- a/addons/sourcemod/scripting/zombie_riot/zr_core.sp +++ b/addons/sourcemod/scripting/zombie_riot/zr_core.sp @@ -202,7 +202,8 @@ enum WEAPON_EXPLORER = 122, WEAPON_FULLMOON = 123, WEAPON_SKADI = 124, - WEAPON_HUNTING_RIFLE = 125 + WEAPON_HUNTING_RIFLE = 125, + WEAPON_URANIUM_RIFLE = 126 } enum @@ -738,6 +739,7 @@ void ZR_MapStart() // Weapon_Pipe_Shoot_Map_Precache(); Survival_Knife_Map_Precache(); Aresenal_Weapons_Map_Precache(); + Uranium_MapStart(); Wand_Elemental_Map_Precache(); Wand_Elemental_2_Map_Precache(); Map_Precache_Zombie_Drops(); diff --git a/addons/sourcemod/translations/zombieriot.phrases.weapons.description.txt b/addons/sourcemod/translations/zombieriot.phrases.weapons.description.txt index 306837781..6e5b7fbae 100644 --- a/addons/sourcemod/translations/zombieriot.phrases.weapons.description.txt +++ b/addons/sourcemod/translations/zombieriot.phrases.weapons.description.txt @@ -228,10 +228,7 @@ } "Sniper Rifle Pap 3" { - "en" "Expensive Super Upgrade, 5 bullets at once for extreme damage.\nSome pair of goggles may increase damage further when fully charged." - "fr" "5 balles utilisées par tir.\nDes lunettes pourrait améliorer les dégats pour des charges pleines" - "ru" "Дорогое суперулучшение, 5 пуль одновременно для нанес. огромн. урона.\nНекоторые очки могут ещё больше увелич. урон при полном заряде." - "chi" "昂贵的超级升级,5发子弹一次造成极端伤害。\n有些护目镜在充满电时可能会进一步增加伤害。" + "en" "Expensive Super Upgrade, 5 bullets at once for extreme damage.\nSome pair of goggles may increase damage further when fully charged.\nDeals extreme damage to any enemy not hit by your rifle within 20 seconds!" } "Sniper Rifle Pap 4" { @@ -545,10 +542,7 @@ "Terroriser Bomb Implanter Sniperrifle Desc" { - "en" "Implant a bomb onto the target you hit, press R to detonate them.\nImplant multiple for more dmg. More charge = more bombs, headshot = more bombs" - "fr" "Plante une bombe dans vos cibles, appuyez sur R pour les détoner.\nPlantez plus de bombes pour plus de dégats. Les tirs en pleine tête et une charge plus grande augmuntent le nombre de bombes." - "ru" "Устанавливает бомбу на цель, в которую вы попали, нажмите R, чтобы взорвать её.\nУстановите несколько бомб для большего урона. Больше зарядов = больше бомб, выстрел в голову = больше бомб." - "chi" "射击将会发出黏弹,按R引爆它们。\n部下多颗黏弹可造成更多伤害.更多的冲锋=更多的炸弹,爆头=更多的炸弹" + "en" "Implant a bomb onto the target you hit, press R to detonate them.\nImplant multiple for more dmg. More charge = more bombs, headshot = more bombs\nBombs dont suffer from downed dmg reduction." } "Terroriser Bomb Implanter Sniperrifle Desc PaP 1" {