- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <engine> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #define PLUGIN "Weapons Menu" #define VERSION "3.0" #define AUTHOR "Aragon*" #define OWNER_LEVEL ADMIN_IMMUNITY #define VIPGOLD_LEVEL ADMIN_IMMUNITY #define VIPSILVER_LEVEL ADMIN_IMMUNITY #define OICW //#define AT4 #define SALAMANDER #define CROSSBOW #define ETHEREAL #define QUADBARREL #define DUALMP7A1 #define K1ASES #define F2000 #define HK416 #define AK47KNIFE //#define TAR21 #define M134 #define THOMPSON #define DUALBARREL #define M1887 #define L85 //#define SKULL5 //#define SL8 //#define AW50 #define M79 //#define DUALDEAGLE #define INFINITY //#define DEAGLEGOLD //#define K5 #define SKULL1 #define ANACONDA new Menu new bool:ShowMenu[33], bool:HavePrimaryWeapon[33], bool:HaveSecondaryWeapon[33], PrimaryWeapon[33], SecondaryWeapon[33]; //------| Weapons Menu |------// #define DMG_HEGRENADE (1<<24) #define AMMOWP_NULL (1<<0 | 1<<CSW_KNIFE | 1<<CSW_FLASHBANG | 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE | 1<<CSW_C4) new Shell; new Float:cl_pushangle[33][3]; new BloodSpray, BloodDrop; new const WeaponsAmmo[][] = { { -1, -1 }, { 13, 52 }, { -1, -1 }, { 10, 90 }, { -1, -1 }, { 7, 32 }, { -1, -1 }, { 30, 100 }, { 30, 90 }, { -1, -1 }, { 30, 120 }, { 20, 100 }, { 25, 100 }, { 30, 90 }, { 35, 90 }, { 25, 90 }, { 12, 100 }, { 20, 120 }, { 10, 30 }, { 30, 120 }, { 100, 200 }, { 8, 32 }, { 30, 90 }, { 30, 120 }, { 20, 90 }, { -1, -1 }, { 7, 35 }, { 30, 90 }, { 30, 90 }, { -1, -1 }, { 50, 100 } } //--| Primary Weapons |--// new PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90); #if defined OICW #define OICW_WEAPONKEY 99 #define weapon_oicw "weapon_galil" #define CSW_OICW CSW_GALIL #define OICW_CLASS "oicw_grenade" #define oicw_shotdelay 3.0 // Refire rate new OICWModel_V[] = "models/furien30_weapons/Primary/v_oicw.mdl"; new OICWModel_P[] = "models/furien30_weapons/Primary/p_oicw.mdl"; new OICWModel_W[] = "models/furien30_weapons/Primary/w_oicw.mdl"; new OICWModel_S[] = "models/furien30_weapons/Primary/s_oicwgrenade.mdl"; new OICW_Sound[][] = { "weapons/oicw_shoot1.wav", "weapons/oicw_grenade_shoot1.wav", //"weapons/oicw_grenade_shoot2.wav", "weapons/oicw_foley1.wav", "weapons/oicw_foley2.wav", "weapons/oicw_foley3.wav", "weapons/oicw_move_carbine.wav", "weapons/oicw_move_grenade.wav" }; new OICW_Generic[][] = { //"sprites/furien30_oicw.txt", "sprites/furien30_weapons/OICW.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveOICW[33], OICWCarabineAmmo[33], oicw_launcher[33], oicw_clip[33], oicw_reload[33], oicw_event, oicw_trail, oicw_explode; new oicwdamage, oicwdamage2, oicwclip, oicwrecoil, oicwradius, oicwknockback, oicwreloadtime, oicwreloadtime2; #endif //--| VIP GOLD |--// #if defined AT4 #define AT4_WEAPONKEY 100 #define weapon_at4 "weapon_m249" #define CSW_AT4 CSW_M249 #define AT4_CLASS "at4ex_rocket" #define AT4_CLASS_DETECTOR "at4ex_rocket_detector" #define AT4_CLASS_LASERDOT "at4_laserdot" #define at4_shotdelay 4.0 // Refire rate new AT4Model_V[] = "models/furien30_weapons/Primary/v_at4.mdl"; new AT4Model_P[] = "models/furien30_weapons/Primary/p_at4.mdl"; new AT4Model_W[] = "models/furien30_weapons/Primary/w_at4.mdl"; new AT4Model_S[] = "models/furien30_weapons/Primary/s_at4rocket.mdl"; new AT4Model_LASER[] = "sprites/laserdot.spr"; new AT4_Sound[][] = { "weapons/at4_shoot1.wav", "weapons/at4_clipin1.wav", "weapons/at4_clipin2.wav", "weapons/at4_clipin3.wav", "weapons/at4_draw.wav" }; new AT4_Generic[][] = { //"sprites/furien30_at4.txt", "sprites/furien30_weapons/At4.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveAT4[33], at4_clip[33], at4_reload[33], at4_detector[33], at4_smoke, at4_trail, at4_explode; new at4damage, at4damage2, at4radius, at4knockback, at4reloadtime; #endif #if defined SALAMANDER #define SALAMANDER_WEAPONKEY 101 #define weapon_salamander "weapon_m249" #define CSW_SALAMANDER CSW_M249 #define SALAMANDER_CLASS "salamander_fire" #define salamander_shotdelay 0.05 // Refire rate new SalamanderModel_V[] = "models/furien30_weapons/Primary/v_salamander.mdl"; new SalamanderModel_P[] = "models/furien30_weapons/Primary/p_salamander.mdl"; new SalamanderModel_W[] = "models/furien30_weapons/Primary/w_salamander.mdl"; new SalamanderModel_FIRE[] = "sprites/furien30_weapons/fire_salamander.spr"; new Salamander_Sound[][] = { "weapons/flamegun_shoot1.wav", //"weapons/flamegun_shoot2.wav", "weapons/flamegun_clipin1.wav", "weapons/flamegun_clipout1.wav", "weapons/flamegun_clipout2.wav", "weapons/flamegun_draw.wav" }; new Salamander_Generic[][] = { //"sprites/furien30_salamander.txt", "sprites/furien30_weapons/Salamander.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveSalamander[33], salamander_clip[33], salamander_reload[33]; new salamanderdamage, salamanderclip, salamanderreloadtime, salamanderradius; #endif #if defined CROSSBOW #define CROSSBOW_WEAPONKEY 102 #define weapon_crossbow "weapon_sg552" #define CSW_CROSSBOW CSW_SG552 #define CROSSBOW_CLASS "crossbow_bolt" #define crossbow_shotdelay 1.0 // Refire rate new CrossBowModel_V[] = "models/furien30_weapons/Primary/v_crossbow.mdl"; new CrossBowModel_P[] = "models/furien30_weapons/Primary/p_crossbow.mdl"; new CrossBowModel_W[] = "models/furien30_weapons/Primary/w_crossbow.mdl"; new CrossBowModel_S[] = "models/furien30_weapons/Primary/s_crossbowbolt.mdl"; new CrossBow_Sound[][] = { "weapons/crossbow_shoot1.wav", "weapons/crbow_fl4.wav", "weapons/crbow_fl111.wav", "weapons/crbow_foley2.wav", "weapons/crbow_foley33.wav", "weapons/crbow_drw.wav" }; new CrossBow_Generic[][] = { //"sprites/furien30_crossbow.txt", "sprites/furien30_weapons/Crossbow.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveCrossBow[33], crossbow_clip[33], crossbow_reload[33], crossbow_trail, crossbow_explode; new crossbowdamage, crossbowclip, crossbowreloadtime, crossbowradius, crossbowknockback; #endif #if defined ETHEREAL #define ETHEREAL_WEAPONKEY 103 #define weapon_ethereal "weapon_galil" #define CSW_ETHEREAL CSW_GALIL #define ethereal_shotdelay 0.15 // Refire rate new EtherealModel_V[] = "models/furien30_weapons/Primary/v_ethereal.mdl"; new EtherealModel_P[] = "models/furien30_weapons/Primary/p_ethereal.mdl"; new EtherealModel_W[] = "models/furien30_weapons/Primary/w_ethereal.mdl"; new EtherealMuzzleFlash[] = "sprites/muz6.spr"; new Ethereal_Sound[][] = { "weapons/ethereal_shoot1.wav", "weapons/ethereal_hit.wav", "weapons/ethereal_idle1.wav", "weapons/ethereal_reload.wav", "weapons/ethereal_draw.wav" }; new Ethereal_Generic[][] = { //"sprites/furien30_ethereal.txt", "sprites/furien30_weapons/Ethereal.spr", "sprites/furien30_weapons/640hud2.spr" }; new bool:HaveEthereal[33], ethereal_clip[33], ethereal_reload[33], ethereal_beam, ethereal_explode; new etherealdamage, etherealclip, etherealreloadtime, etherealknockback; #endif //--| VIP SILVER |--// #if defined QUADBARREL #define QUADBARREL_WEAPONKEY 104 #define quadbarrel_shotdelay 0.40 #define weapon_quadbarrel "weapon_m3" #define CSW_QUADBARREL CSW_M3 new QuadBarrelModel_V[] = "models/furien30_weapons/Primary/v_quadbarrel.mdl"; new QuadBarrelModel_P[] = "models/furien30_weapons/Primary/p_quadbarrel.mdl"; new QuadBarrelModel_W[] = "models/furien30_weapons/Primary/w_quadbarrel.mdl"; new QuadBarrel_Sound[][] = { "weapons/qbarrel_shoot1.wav", "weapons/qbarrel_draw.wav", "weapons/qbarrel_clipout1.wav", "weapons/qbarrel_clipin1.wav", "weapons/qbarrel_clipin2.wav" }; new QuadBarrel_Generic[][] = { //"sprites/furien30_quadbarrel.txt", "sprites/furien30_weapons/QuadBarrel.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveQuadBarrel[33], quadbarrel_clip[33], quadbarrel_reload[33], quadbarrel_event; new quadbarreldamage, quadbarrelreloadtime, quadbarrelrecoil; #endif #if defined DUALMP7A1 #define DUALMP7A1_WEAPONKEY 105 #define weapon_dualmp7a1 "weapon_mp5navy" #define CSW_DUALMP7A1 CSW_MP5NAVY new DualMP7A1Model_V[] = "models/furien30_weapons/Primary/v_dualmp7a1.mdl"; new DualMP7A1Model_P[] = "models/furien30_weapons/Primary/p_dualmp7a1.mdl"; new DualMP7A1Model_W[] = "models/furien30_weapons/Primary/w_dualmp7a1.mdl"; new DualMP7A1_Sound[][] = { "weapons/Dmp7_shoot1.wav", "weapons/Dmp7_drop.wav", "weapons/Dmp7_draw.wav", "weapons/mp7_foley2.wav", "weapons/mp7_foley4.wav" }; new DualMP7A1_Generic[][] = { //"sprites/furien30_dualmp7a1.txt", "sprites/furien30_weapons/DualMp7a1.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveDualMP7A1[33], dualmp7a1_clip[33], dualmp7a1_reload[33], dualmp7a1_event; new dualmp7a1damage, dualmp7a1clip, dualmp7a1reloadtime, dualmp7a1recoil; #endif #if defined K1ASES #define K1ASES_WEAPONKEY 106 #define weapon_k1ases "weapon_mp5navy" #define CSW_K1ASES CSW_MP5NAVY new K1asesModel_V[] = "models/furien30_weapons/Primary/v_k1ases.mdl"; new K1asesModel_P[] = "models/furien30_weapons/Primary/p_k1ases.mdl"; new K1asesModel_W[] = "models/furien30_weapons/Primary/w_k1ases.mdl"; new K1ases_Sound[][] = { "weapons/k1a_shoot1.wav", "weapons/k1a_ability.wav", "weapons/k1a_clipin.wav", "weapons/k1a_clipout.wav", "weapons/k1a_draw.wav", "weapons/k1a_foley1.wav" }; new K1ases_Generic[][] = { //"sprites/furien30_k1ases.txt", "sprites/furien30_weapons/K1ases.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveK1ases[33], k1ases_clip[33], k1ases_reload[33], K1ases_Ability_Delay[33], k1ases_explode, k1ases_event; new k1asesdamage, k1asesclip, k1asesreloadtime, k1asesrecoil, k1asesabilitydamage, k1asesabilitydelay, k1asesabilityradius; #endif #if defined F2000 #define F2000_WEAPONKEY 107 #define weapon_f2000 "weapon_aug" #define CSW_F2000 CSW_AUG new F2000Model_V[] = "models/furien30_weapons/Primary/v_f2000.mdl"; new F2000Model_P[] = "models/furien30_weapons/Primary/p_f2000.mdl"; new F2000Model_W[] = "models/furien30_weapons/Primary/w_f2000.mdl"; new F2000Model_S[] = "models/furien30_weapons/Primary/s_f2000.mdl"; new F2000_Sound[][] = { "weapons/f2000_shoot1.wav", //"weapons/f2000_shoot2.wav", "weapons/f2000_Boltpull.wav", "weapons/f2000_Clipin.wav", "weapons/f2000_Clipou.wav" }; new F2000_Generic[][] = { "sprites/furien30_weapons/F2000.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveF2000[33], f2000_clip[33], f2000_reload[33], f2000_event; new f2000damage, f2000clip, f2000reloadtime, f2000recoil; #endif #if defined HK416 #define HK416_WEAPONKEY 108 #define weapon_hk416 "weapon_m4a1" #define CSW_HK416 CSW_M4A1 new HK416Model_V[] = "models/furien30_weapons/Primary/v_hk416.mdl"; new HK416Model_P[] = "models/furien30_weapons/Primary/p_hk416.mdl"; new HK416Model_W[] = "models/furien30_weapons/Primary/w_hk416.mdl"; new HK416_Sound[][] = { "weapons/hk416_shoot1.wav", "weapons/hk416_unsil_shoot1.wav", "weapons/hk416_clipin.wav", "weapons/hk416_clipon.wav", "weapons/hk416_clipout.wav", "weapons/hk416_draw.wav", "weapons/hk416_foley.wav", "weapons/hk416_siloff.wav", "weapons/hk416_silon.wav" }; new HK416_Generic[][] = { //"sprites/furien30_hk416.txt", "sprites/furien30_weapons/HK416.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveHK416[33], hk416_clip[33], hk416_reload[33], hk416_event; new hk416damage, hk416clip, hk416reloadtime, hk416recoil; #endif #if defined AK47KNIFE #define AK47KNIFE_WEAPONKEY 109 #define weapon_ak47knife "weapon_ak47" #define CSW_AK47KNIFE CSW_AK47 new AK47KnifeModel_V[] = "models/furien30_weapons/Primary/v_ak47knife.mdl"; new AK47KnifeModel_P[] = "models/furien30_weapons/Primary/p_ak47knife.mdl"; new AK47KnifeModel_W[] = "models/furien30_weapons/Primary/w_ak47knife.mdl"; new AK47Knife_Sound[][] = { "weapons/ak47-1.wav", //"weapons/ak47-2.wav", "weapons/acum_draw.wav", "weapons/ak47knife_hitplayer.wav", "weapons/ak47knife_hitwall.wav", "weapons/ak47knife_hitmiss.wav" }; new AK47Knife_Generic[][] = { //"sprites/furien30_ak47knife.txt", "sprites/furien30_weapons/Ak47Knife.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveAK47Knife[33], ak47knife_clip[33], ak47knife_reload[33], ak47knife_event; new ak47knifedamage, ak47knifeclip, ak47knifereloadtime, ak47kniferecoil, ak47knifeabilitydamage, ak47knifeabilityknockback; #endif #if defined TAR21 #define TAR21_WEAPONKEY 110 #define weapon_tar21 "weapon_sg552" #define CSW_TAR21 CSW_SG552 new Tar21Model_V[] = "models/furien30_weapons/Primary/v_tar21.mdl"; new Tar21Model_P[] = "models/furien30_weapons/Primary/p_tar21.mdl"; new Tar21Model_W[] = "models/furien30_weapons/Primary/w_tar21.mdl"; new Tar21_Sound[][] = { "weapons/tar21_shoot1.wav", "weapons/tar21_boltpull.wav", "weapons/tar21_clipin.wav", "weapons/tar21_clipout.wav" }; new Tar21_Generic[][] = { //"sprites/furien30_tar21.txt", //"sprites/furien30_weapons/Tar21.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveTar21[33], tar21_clip[33], tar21_reload[33], tar21_event; new tar21damage, tar21clip, tar21reloadtime, tar21recoil; #endif #if defined M134 #define M134_WEAPONKEY 111 #define weapon_m134 "weapon_m249" #define CSW_M134 CSW_M249 new M134Model_V[] = "models/furien30_weapons/Primary/v_m134.mdl"; new M134Model_P[] = "models/furien30_weapons/Primary/p_m134.mdl"; new M134Model_W[] = "models/furien30_weapons/Primary/w_m134.mdl"; new M134_Sound[][] = { "weapons/m134_shoot1.wav", "weapons/m134_clipoff.wav", "weapons/m134_clipon.wav", "weapons/m134_spindown.wav", "weapons/m134_spinup.wav", "weapons/m134_pinpull.wav" }; new M134_Generic[][] = { //"sprites/furien30_m134.txt", "sprites/furien30_weapons/M134.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveM134[33], m134_clip[33], m134_reload[33], m134_event; new m134damage, m134clip, m134reloadtime, m134recoil; #endif #if defined THOMPSON #define THOMPSON_WEAPONKEY 112 #define weapon_thompson "weapon_p90" #define CSW_THOMPSON CSW_P90 new ThompsonModel_V[] = "models/furien30_weapons/Primary/v_thompson.mdl"; new ThompsonModel_P[] = "models/furien30_weapons/Primary/p_thompson.mdl"; new ThompsonModel_W[] = "models/furien30_weapons/Primary/w_thompson.mdl"; new Thompson_Sound[][] = { "weapons/thompsongold_shoot1.wav", "weapons/thompsongold_clipin.wav", "weapons/thompsongold_clipout.wav", "weapons/thompsongold_draw.wav" }; new Thompson_Generic[][] = { //"sprites/furien30_thompson.txt", "sprites/furien30_weapons/Thompson.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveThompson[33], thompson_clip[33], thompson_reload[33], thompson_event; new thompsondamage, thompsonclip, thompsonreloadtime, thompsonrecoil; #endif #if defined DUALBARREL #define DUALBARREL_WEAPONKEY 113 #define dualbarrel_shotdelay 0.40 #define weapon_dualbarrel "weapon_m3" #define CSW_DUALBARREL CSW_M3 new DualBarrelModel_V[] = "models/furien30_weapons/Primary/v_dualbarrel.mdl"; new DualBarrelModel_P[] = "models/furien30_weapons/Primary/p_dualbarrel.mdl"; new DualBarrelModel_W[] = "models/furien30_weapons/Primary/w_dualbarrel.mdl"; new DualBarrel_Sound[][] = { "weapons/dbarrel_shoot1.wav", "weapons/dbarrel_draw.wav", "weapons/dbarrel_foley1.wav", "weapons/dbarrel_foley2.wav", "weapons/dbarrel_foley3.wav", "weapons/dbarrel_foley4.wav" }; new DualBarrel_Generic[][] = { //"sprites/furien30_dualbarrel.txt", "sprites/furien30_weapons/DualBarrel.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveDualBarrel[33], dualbarrel_clip[33], dualbarrel_reload[33], dualbarrel_event; new dualbarreldamage, dualbarrelreloadtime, dualbarrelrecoil; #endif #if defined M1887 #define M1887_WEAPONKEY 114 #define weapon_m1887 "weapon_m3" #define CSW_M1887 CSW_M3 new M1887Model_V[] = "models/furien30_weapons/Primary/v_m1887.mdl"; new M1887Model_P[] = "models/furien30_weapons/Primary/p_m1887.mdl"; new M1887Model_W[] = "models/furien30_weapons/Primary/w_m1887.mdl"; new M1887_Sound[][] = { "weapons/m1887_shoot1.wav", "weapons/m1887_draw.wav", "weapons/m1887_insert.wav", "weapons/m1887_restart.wav" }; new M1887_Generic[][] = { //"sprites/furien30_m1887.txt", "sprites/furien30_weapons/M1887.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveM1887[33], m1887_clip[33], m1887_reload[33], m1887_event; new m1887damage, /*m1887clip, m1887reloadtime,*/ m1887recoil; #endif #if defined L85 #define L85_WEAPONKEY 115 #define weapon_l85 "weapon_famas" #define CSW_L85 CSW_FAMAS new L85Model_V[] = "models/furien30_weapons/Primary/v_l85.mdl"; new L85Model_P[] = "models/furien30_weapons/Primary/p_l85.mdl"; new L85Model_W[] = "models/furien30_weapons/Primary/w_l85.mdl"; new L85_Sound[][] = { "weapons/l85_shoot1.wav", "weapons/l85_foley1.wav", "weapons/l85_foley2.wav", "weapons/l85_foley4.wav", "weapons/l85_foley3.wav" }; new L85_Generic[][] = { //"sprites/furien30_l85.txt", "sprites/furien30_weapons/L85.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveL85[33], l85_clip[33], l85_reload[33], l85_event; new l85damage, l85clip, l85reloadtime, l85recoil; #endif #if defined SKULL5 #define SKULL5_WEAPONKEY 116 #define weapon_skull5 "weapon_sg550" #define CSW_SKULL5 CSW_SG550 new Skull5Model_V[] = "models/furien30_weapons/Primary/v_skull5.mdl"; new Skull5Model_P[] = "models/furien30_weapons/Primary/p_skull5.mdl"; new Skull5Model_W[] = "models/furien30_weapons/Primary/w_skull5.mdl"; new Skull5_Sound[][] = { "weapons/skull5_shoot1.wav", "weapons/skull5_boltpull.wav", "weapons/skull5_clipin.wav", "weapons/skull5_clipout.wav", "weapons/skull5_draw.wav" }; new Skull5_Generic[][] = { //"sprites/furien30_skull5.txt", //"sprites/furien30_weapons/Skull5.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveSkull5[33], skull5_clip[33], skull5_reload[33], skull5_event; new skull5damage, skull5clip, skull5reloadtime, skull5recoil; #endif #if defined SL8 #define SL8_WEAPONKEY 117 #define weapon_sl8 "weapon_g3sg1" #define CSW_SL8 CSW_G3SG1 new SL8Model_V[] = "models/furien30_weapons/Primary/v_sl8.mdl"; new SL8Model_P[] = "models/furien30_weapons/Primary/p_sl8.mdl"; new SL8Model_W[] = "models/furien30_weapons/Primary/w_sl8.mdl"; new SL8_Sound[][] = { "weapons/sl8_shoot1.wav", "weapons/sl8_boltpull.wav", "weapons/sl8_clipin.wav", "weapons/sl8_clipout.wav", "weapons/sl8_draw.wav" }; new SL8_Generic[][] = { //"sprites/furien30_sl8.txt", "sprites/furien30_weapons/SL8.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveSL8[33], sl8_clip[33], sl8_reload[33], sl8_event; new sl8damage, sl8clip, sl8reloadtime, sl8recoil; #endif #if defined AW50 #define AW50_WEAPONKEY 118 #define weapon_aw50 "weapon_awp" #define CSW_AW50 CSW_AWP new AW50Model_V[] = "models/furien30_weapons/Primary/v_aw50.mdl"; new AW50Model_P[] = "models/furien30_weapons/Primary/p_aw50.mdl"; new AW50Model_W[] = "models/furien30_weapons/Primary/w_aw50.mdl"; new AW50_Sound[][] = { "weapons/aw50_shoot1.wav", "weapons/aw50_clipin.wav", "weapons/aw50_clipout.wav", "weapons/aw50_foley1.wav", "weapons/aw50_foley2.wav" }; new AW50_Generic[][] = { //"sprites/furien30_aw50.txt", "sprites/furien30_weapons/AW50.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveAW50[33], aw50_clip[33], aw50_reload[33], aw50_event; new aw50damage, aw50clip, aw50reloadtime, aw50recoil; #endif //--| Secondary Weapons |--// new SECONDARY_WEAPONS_BITSUM = (1<<CSW_GLOCK18)|(1<<CSW_USP)|(1<<CSW_P228)|(1<<CSW_DEAGLE)|(1<<CSW_FIVESEVEN)|(1<<CSW_ELITE); new IsInPrimaryAttack; #if defined M79 #define M79_WEAPONKEY 200 #define M79_CLASS "m79_grenade" #define weapon_m79 "weapon_deagle" #define CSW_M79 CSW_DEAGLE #define m79_shotdelay 3.0 // Refire rate new M79Model_V[] = "models/furien30_weapons/Secondary/v_m79.mdl"; new M79Model_P[] = "models/furien30_weapons/Secondary/p_m79.mdl"; new M79Model_W[] = "models/furien30_weapons/Secondary/w_m79.mdl"; new M79Model_S[] = "models/furien30_weapons/Secondary/s_m79grenade.mdl"; new M79_Sound[][] = { "weapons/m79_shoot1.wav", //"weapons/m79_shoot2.wav", "weapons/m79_clipin.wav", "weapons/m79_clipon.wav", "weapons/m79_clipout.wav" }; new M79_Generic[][] = { //"sprites/furien30_m79.txt", "sprites/furien30_weapons/M79.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveM79[33], m79_clip[33], m79_reload[33], m79_trail, m79_explode; new m79damage, m79radius, m79knockback, m79reloadtime; #endif #if defined DUALDEAGLE #define DUALDEAGLE_WEAPONKEY 201 #define weapon_dualdeagle "weapon_elite" #define CSW_DUALDEAGLE CSW_ELITE new DualDeagleModel_V[] = "models/furien30_weapons/Secondary/v_dualdeagle.mdl"; new DualDeagleModel_P[] = "models/furien30_weapons/Secondary/p_dualdeagle.mdl"; new DualDeagleModel_W[] = "models/furien30_weapons/Secondary/w_dualdeagle.mdl"; new DualDeagle_Sound[][] = { "weapons/DDe_shoot1.wav", "weapons/DDe_Clipout.wav", "weapons/DDe_clipin.wav", "weapons/DDe_clipoff.wav", "weapons/DDe_twirl.wav", "weapons/DDe_Load.wav" }; new DualDeagle_Generic[][] = { //"sprites/furien30_dualdeagle.txt", "sprites/furien30_weapons/DualDeagle.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveDualDeagle[33], dualdeagle_clip[33], dualdeagle_reload[33], dualdeagle_event; new dualdeagledamage, dualdeagleclip, dualdeaglereloadtime, dualdeaglerecoil; #endif #if defined INFINITY #define INFINITY_WEAPONKEY 202 #define weapon_infinity "weapon_elite" #define CSW_INFINITY CSW_ELITE new InfinityModel_V[] = "models/furien30_weapons/Secondary/v_infinity.mdl"; new InfinityModel_P[] = "models/furien30_weapons/Secondary/p_infinity.mdl"; new InfinityModel_W[] = "models/furien30_weapons/Secondary/w_infinity.mdl"; new Infinity_Sound[][] = { "weapons/infi_shoot1.wav", //"weapons/infi_shoot2.wav", "weapons/infi_clipout.wav", "weapons/infi_clipin.wav", "weapons/infi_clipon.wav", "weapons/infi_draw.wav" }; new Infinity_Generic[][] = { //"sprites/furien30_infinity.txt", "sprites/furien30_weapons/Infinity.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveInfinity[33], infinity_clip[33], infinity_reload[33], infinity_event; new infinitydamage, infinityclip, infinityreloadtime, infinityrecoil; #endif #if defined DEAGLEGOLD #define DEAGLEGOLD_WEAPONKEY 203 #define weapon_deaglegold "weapon_deagle" #define CSW_DEAGLEGOLD CSW_DEAGLE new DeagleGoldModel_V[] = "models/furien30_weapons/Secondary/v_deaglegold.mdl"; new DeagleGoldModel_P[] = "models/furien30_weapons/Secondary/p_deaglegold.mdl"; new DeagleGoldModel_W[] = "models/furien30_weapons/Secondary/w_deaglegold.mdl"; new DeagleGold_Sound[][] = { "weapons/deagle-1.wav"/*, "weapons/deagle-2.wav"*/ }; new bool:HaveDeagleGold[33], deaglegold_clip[33], deaglegold_reload[33], deaglegold_event; new deaglegolddamage, deaglegoldclip, deaglegoldreloadtime, deaglegoldrecoil; #endif #if defined K5 #define K5_WEAPONKEY 204 #define weapon_k5 "weapon_p228" #define CSW_K5 CSW_P228 new K5Model_V[] = "models/furien30_weapons/Secondary/v_k5.mdl"; new K5Model_P[] = "models/furien30_weapons/Secondary/p_k5.mdl"; new K5Model_W[] = "models/furien30_weapons/Secondary/w_k5.mdl"; new K5_Sound[][] = { "weapons/k5_shoot1.wav", //"weapons/k5_shoot2.wav", "weapons/k5_clipout.wav", "weapons/k5_clipin.wav", "weapons/k5_sliderelease.wav", "weapons/k5_slidepull.wav" }; new bool:HaveK5[33], k5_clip[33], k5_reload[33], k5_event; new k5damage, k5clip, k5reloadtime, k5recoil; #endif #if defined SKULL1 #define SKULL1_WEAPONKEY 205 #define weapon_skull1 "weapon_deagle" #define CSW_SKULL1 CSW_DEAGLE new Skull1Model_V[] = "models/furien30_weapons/Secondary/v_skull1.mdl"; new Skull1Model_P[] = "models/furien30_weapons/Secondary/p_skull1.mdl"; new Skull1Model_W[] = "models/furien30_weapons/Secondary/w_skull1.mdl"; new Skull1_Sound[][] = { "weapons/skull1_shoot1.wav", "weapons/skull1_draw.wav", "weapons/skull1_clipin.wav", "weapons/skull1_clipout.wav" }; new Skull1_Generic[][] = { //"sprites/furien30_skull1.txt", "sprites/furien30_weapons/Skull1.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveSkull1[33], skull1_clip[33], skull1_reload[33], skull1_event; new skull1damage, skull1clip, skull1reloadtime, skull1recoil; #endif #if defined ANACONDA #define ANACONDA_WEAPONKEY 206 #define weapon_anaconda "weapon_deagle" #define CSW_ANACONDA CSW_DEAGLE new AnacondaModel_V[] = "models/furien30_weapons/Secondary/v_anaconda.mdl"; new AnacondaModel_P[] = "models/furien30_weapons/Secondary/p_anaconda.mdl"; new AnacondaModel_W[] = "models/furien30_weapons/Secondary/w_anaconda.mdl"; new Anaconda_Sound[][] = { "weapons/ana_shoot1.wav", //"weapons/ana_shoot2.wav", "weapons/ana_foley1.wav", "weapons/ana_foley2.wav", "weapons/ana_foley3.wav", "weapons/ana_foley4.wav", "weapons/ana_foley5.wav" }; new Anaconda_Generic[][] = { //"sprites/furien30_anaconda.txt", "sprites/furien30_weapons/Anaconda.spr", "sprites/furien30_weapons/640hud7x.spr" }; new bool:HaveAnaconda[33], anaconda_clip[33], anaconda_reload[33], anaconda_event; new anacondadamage, anacondaclip, anacondareloadtime, anacondarecoil; #endif public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("guns", "CMD_Guns"); register_clcmd("say guns", "CMD_Guns"); register_clcmd("say /weapon", "CMD_Guns"); register_clcmd("say_team guns", "CMD_Guns"); register_clcmd("say_team /weapon", "CMD_Guns"); register_logevent("RoundStart", 2, "1=Round_Start"); register_event("CurWeapon", "EVENT_CurWeapon", "be", "1=1") RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1); Shell = engfunc(EngFunc_PrecacheModel, "models/rshell.mdl"); #if defined OICW OICW_Init(); #endif #if defined AT4 AT4_Init(); #endif #if defined SALAMANDER Salamander_Init(); #endif #if defined CROSSBOW CrossBow_Init(); #endif #if defined ETHEREAL Ethereal_Init(); #endif #if defined QUADBARREL QuadBarrel_Init(); #endif #if defined DUALMP7A1 DualMP7A1_Init(); #endif #if defined K1ASES K1ases_Init(); #endif #if defined F2000 F2000_Init(); #endif #if defined HK416 HK416_Init(); #endif #if defined AK47KNIFE AK47Knife_Init(); #endif #if defined TAR21 Tar21_Init(); #endif #if defined M134 M134_Init(); #endif #if defined THOMPSON Thompson_Init(); #endif #if defined DUALBARREL DualBarrel_Init(); #endif #if defined M1887 M1887_Init(); #endif #if defined L85 L85_Init(); #endif #if defined SKULL5 Skull5_Init(); #endif #if defined SL8 SL8_Init(); #endif #if defined AW50 AW50_Init(); #endif #if defined M79 M79_Init(); #endif #if defined DUALDEAGLE DualDeagle_Init(); #endif #if defined INFINITY Infinity_Init(); #endif #if defined DEAGLEGOLD DeagleGold_Init(); #endif #if defined K5 K5_Init(); #endif #if defined SKULL1 Skull1_Init(); #endif #if defined ANACONDA Anaconda_Init(); #endif } public plugin_precache() { BloodSpray = precache_model("sprites/bloodspray.spr"); BloodDrop = precache_model("sprites/blood.spr"); #if defined OICW OICW_Precache(); #endif #if defined AT4 AT4_Precache(); #endif #if defined SALAMANDER Salamander_Precache(); #endif #if defined CROSSBOW CrossBow_Precache(); #endif #if defined ETHEREAL Ethereal_Precache(); #endif #if defined QUADBARREL QuadBarrel_Precache(); #endif #if defined DUALMP7A1 DualMP7A1_Precache(); #endif #if defined K1ASES K1ases_Precache(); #endif #if defined F2000 F2000_Precache(); #endif #if defined HK416 HK416_Precache(); #endif #if defined AK47KNIFE AK47Knife_Precache(); #endif #if defined TAR21 Tar21_Precache(); #endif #if defined M134 M134_Precache(); #endif #if defined THOMPSON Thompson_Precache(); #endif #if defined DUALBARREL DualBarrel_Precache(); #endif #if defined M1887 M1887_Precache(); #endif #if defined L85 L85_Precache(); #endif #if defined SKULL5 Skull5_Precache(); #endif #if defined SL8 SL8_Precache(); #endif #if defined AW50 AW50_Precache(); #endif #if defined M79 M79_Precache(); #endif #if defined DUALDEAGLE DualDeagle_Precache(); #endif #if defined INFINITY Infinity_Precache(); #endif #if defined DEAGLEGOLD DeagleGold_Precache(); #endif #if defined K5 K5_Precache(); #endif #if defined SKULL1 Skull1_Precache(); #endif #if defined ANACONDA Anaconda_Precache(); #endif } public plugin_natives() { #if defined OICW OICW_Natives(); #endif #if defined AT4 AT4_Natives(); #endif #if defined SALAMANDER Salamander_Natives(); #endif #if defined CROSSBOW CrossBow_Natives(); #endif #if defined ETHEREAL Ethereal_Natives(); #endif #if defined QUADBARREL QuadBarrel_Natives(); #endif #if defined DUALMP7A1 DualMP7A1_Natives(); #endif #if defined K1ASES K1ases_Natives(); #endif #if defined F2000 F2000_Natives(); #endif #if defined HK416 HK416_Natives(); #endif #if defined AK47KNIFE AK47Knife_Natives(); #endif #if defined TAR21 Tar21_Natives(); #endif #if defined M134 M134_Natives(); #endif #if defined THOMPSON Thompson_Natives(); #endif #if defined DUALBARREL DualBarrel_Natives(); #endif #if defined M1887 M1887_Natives(); #endif #if defined L85 L85_Natives(); #endif #if defined SKULL5 Skull5_Natives(); #endif #if defined SL8 SL8_Natives(); #endif #if defined AW50 AW50_Natives(); #endif #if defined M79 M79_Natives(); #endif #if defined DUALDEAGLE DualDeagle_Natives(); #endif #if defined INFINITY Infinity_Natives(); #endif #if defined DEAGLEGOLD DeagleGold_Natives(); #endif #if defined K5 K5_Natives(); #endif #if defined SKULL1 Skull1_Natives(); #endif #if defined ANACONDA Anaconda_Natives(); #endif } public client_putinserver(id) { ShowMenu[id] = true PrimaryWeapon[id] = 0 SecondaryWeapon[id] = 0 } public RoundStart() { #if defined OICW remove_entity_name(OICW_CLASS); #endif #if defined AT4 remove_entity_name(AT4_CLASS); remove_entity_name(AT4_CLASS_DETECTOR); remove_entity_name(AT4_CLASS_LASERDOT); #endif #if defined SALAMANDER remove_entity_name(SALAMANDER_CLASS); #endif #if defined CROSSBOWO remove_entity_name(CROSSBOW_CLASS); #endif #if defined M79 remove_entity_name(M79_CLASS); #endif } public EVENT_CurWeapon(id) { if(is_user_connected(id) && is_user_alive(id)) { static Weapon Weapon = read_data(2) if(!(AMMOWP_NULL &(1<<Weapon))) { static Ammo Ammo = fm_get_user_bpammo(id, Weapon) if(Ammo < WeaponsAmmo[Weapon][1]) fm_set_user_bpammo(id, Weapon, WeaponsAmmo[Weapon][1]) } } } public HAM_Spawn_Post(id) { if(is_user_connected(id)) { HavePrimaryWeapon[id] = false HaveSecondaryWeapon[id] = false #if defined OICW set_user_oicw(id, false); #endif #if defined AT4 set_user_at4(id, false); #endif #if defined SALAMANDER set_user_salamander(id, false); #endif #if defined CROSSBOW set_user_crossbow(id, false); #endif #if defined ETHEREAL set_user_ethereal(id, false); #endif #if defined QUADBARREL set_user_quadbarrel(id, false); #endif #if defined DUALMP7A1 set_user_dualmp7a1(id, false); #endif #if defined K1ASES set_user_k1ases(id, false); #endif #if defined F2000 set_user_f2000(id, false); #endif #if defined HK416 set_user_hk416(id, false); #endif #if defined AK47KNIFE set_user_ak47knife(id, false); #endif #if defined TAR21 set_user_tar21(id, false); #endif #if defined M134 set_user_m134(id, false); #endif #if defined THOMPSON set_user_thompson(id, false); #endif #if defined DUALBARREL set_user_dualbarrel(id, false); #endif #if defined M1887 set_user_m1887(id, false); #endif #if defined L85 set_user_l85(id, false); #endif #if defined SKULL5 set_user_skull5(id, false); #endif #if defined SL8 set_user_sl8(id, false); #endif #if defined AW50 set_user_aw50(id, false); #endif #if defined M79 set_user_m79(id, false); #endif #if defined DUALDEAGLE set_user_dualdeagle(id, false); #endif #if defined INFINITY set_user_infinity(id, false); #endif #if defined DEAGLEGOLD set_user_deaglegold(id, false); #endif #if defined K5 set_user_k5(id, false); #endif #if defined SKULL1 set_user_skull1(id, false); #endif #if defined ANACONDA set_user_anaconda(id, false); #endif if(ShowMenu[id] && get_user_team(id) == 2) Equipment(id) else if(!ShowMenu[id] && get_user_team(id) == 2) GiveLastWeapons(id) } } public CMD_Guns(id) { if(!ShowMenu[id]) { ShowMenu[id] = true ColorChat(id, "!g[FURIEN]!n Guns menu has been re-enabled!"); } if(!HavePrimaryWeapon[id] && !HaveSecondaryWeapon[id]) Equipment(id) else if(!HavePrimaryWeapon[id]) Primary(id) else if(!HaveSecondaryWeapon[id]) Secondary(id) } public Equipment(id) { if(is_user_alive(id) && get_user_team(id) == 2) { Menu = menu_create("\wEquipments.", "EquipmentCmd"); menu_additem(Menu, "\wNew weapons!", "1", 0); if(PrimaryWeapon[id] && SecondaryWeapon[id]) { menu_additem(Menu, "\wPrevious Weapons", "2", 0); menu_additem(Menu, "\wEvery spawn i want previous weapons.^n", "3", 0); } else { menu_additem(Menu, "\dPrevious Weapons", "2", 0); menu_additem(Menu, "\dEvery spawn i want previous weapons.^n", "3", 0); } menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } } public EquipmentCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64]; new Access, CallBack; menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack); new Key = str_to_num(Data); switch(Key) { case 1: { if(!HavePrimaryWeapon[id]) Primary(id) else if(!HaveSecondaryWeapon[id]) Secondary(id) } case 2: { if(PrimaryWeapon[id] && SecondaryWeapon[id]) { GiveLastWeapons(id) } else Equipment(id) } case 3: { if(PrimaryWeapon[id] && SecondaryWeapon[id]) { ShowMenu[id] = false GiveLastWeapons(id) } else Equipment(id) } default: return PLUGIN_HANDLED; } menu_destroy(menu); return PLUGIN_HANDLED; } public Primary(id) { if(is_user_alive(id) && get_user_team(id) == 2) { Menu = menu_create("\w[\yFURIEN\w] \yChoose \rPrimary \yWeapons", "PrimaryCmd"); if(get_user_flags(id) & OWNER_LEVEL) menu_additem(Menu, "\yOwners Weapon", "1", 0); else menu_additem(Menu, "\dOwners Weapon", "1", 0); if(get_user_flags(id) & VIPGOLD_LEVEL) menu_additem(Menu, "\rV.I.P Weapons", "2", 0); else menu_additem(Menu, "\dV.I.P Weapons", "2", 0); menu_additem(Menu, "\wOrdinary guns.", "3", 0); menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } } public PrimaryCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64]; new Access, CallBack; menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack); new Key = str_to_num(Data); switch(Key) { case 1: { if(get_user_flags(id) & OWNER_LEVEL) Primary_Owner(id) else { if(!HavePrimaryWeapon[id]) Primary(id) else if(!HaveSecondaryWeapon[id]) Secondary(id) ColorChat(id, "!g[FURIEN]!n You don't have permission on this category."); } } case 2: { if(get_user_flags(id) & VIPGOLD_LEVEL) Primary_Gold(id) else { if(!HavePrimaryWeapon[id]) Primary(id) else if(!HaveSecondaryWeapon[id]) Secondary(id) ColorChat(id, "!g[FURIEN]!n You don't have permission on this category."); } } case 3: { Primary_Normal(id) } default: return PLUGIN_HANDLED; } menu_destroy(menu); return PLUGIN_HANDLED; } public Primary_Owner(id) { if(is_user_alive(id) && get_user_team(id) == 2) { Menu = menu_create("\w[\yFURIEN\w] \yOwner Weapons", "Primary_OwnerCmd"); #if defined OICW OICW_Menu(id, "1"); #endif menu_setprop(Menu, MPROP_EXITNAME, "Back") menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, Menu, 0); } } public Primary_OwnerCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2 || !(get_user_flags(id) & OWNER_LEVEL)) { menu_destroy(menu); Primary(id) return PLUGIN_HANDLED; } new Data[6], Name[64]; new Access, CallBack; menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack); new Key = str_to_num(Data); switch(Key) { #if defined OICW case 1: { set_user_oicw(id, true); PrimaryWeapon[id] = OICW_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif default: return PLUGIN_HANDLED; } menu_destroy(menu); return PLUGIN_HANDLED; } public Primary_Gold(id) { if(is_user_alive(id) && get_user_team(id) == 2) { Menu = menu_create("\w[\yFURIEN\w] \rVIP Weapons", "Primary_GoldCmd"); #if defined AT4 AT4_Menu(id, "1"); #endif #if defined SALAMANDER Salamander_Menu(id, "2"); #endif #if defined CROSSBOW CrossBow_Menu(id, "3"); #endif #if defined ETHEREAL Ethereal_Menu(id, "4"); #endif #if defined QUADBARREL QuadBarrel_Menu(id, "5"); #endif #if defined DUALMP7A1 DualMP7A1_Menu(id, "6"); #endif #if defined K1ASES K1ases_Menu(id, "7"); #endif #if defined F2000 F2000_Menu(id, "8"); #endif menu_setprop(Menu, MPROP_EXITNAME, "Back") menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, Menu, 0); } } public Primary_GoldCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2 || !(get_user_flags(id) & VIPGOLD_LEVEL)) { menu_destroy(menu); Primary(id) return PLUGIN_HANDLED; } new Data[6], Name[64]; new Access, CallBack; menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack); new Key = str_to_num(Data); switch(Key) { #if defined AT4 case 1: { set_user_at4(id, true); PrimaryWeapon[id] = AT4_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined SALAMANDER case 2: { set_user_salamander(id, true); PrimaryWeapon[id] = SALAMANDER_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined CROSSBOW case 3: { set_user_crossbow(id, true); PrimaryWeapon[id] = CROSSBOW_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined ETHEREAL case 4: { set_user_ethereal(id, true); PrimaryWeapon[id] = ETHEREAL_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined QUADBARREL case 5: { set_user_quadbarrel(id, true); PrimaryWeapon[id] = QUADBARREL_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined DUALMP7A1 case 6: { set_user_dualmp7a1(id, true); PrimaryWeapon[id] = DUALMP7A1_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined K1ASES case 7: { set_user_k1ases(id, true); PrimaryWeapon[id] = K1ASES_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined F2000 case 8: { set_user_f2000(id, true); PrimaryWeapon[id] = F2000_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif default: return PLUGIN_HANDLED; } menu_destroy(menu); return PLUGIN_HANDLED; } public Primary_Normal(id) { if(is_user_alive(id) && get_user_team(id) == 2) { Menu = menu_create("\w[\yFURIEN\w] \yNormal Weapons", "Primary_NormalCmd"); #if defined HK416 HK416_Menu("1"); #endif #if defined AK47KNIFE AK47Knife_Menu("2"); #endif #if defined TAR21 Tar21_Menu("3"); #endif #if defined M134 M134_Menu("4"); #endif #if defined THOMPSON Thompson_Menu("5"); #endif #if defined DUALBARREL DualBarrel_Menu("6"); #endif #if defined M1887 M1887_Menu("7"); #endif #if defined L85 L85_Menu("8"); #endif #if defined SKULL5 Skull5_Menu("9"); #endif #if defined SL8 SL8_Menu("10"); #endif #if defined AW50 AW50_Menu("11"); #endif menu_setprop(Menu, MPROP_EXITNAME, "Back") menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, Menu, 0); } } public Primary_NormalCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) { menu_destroy(menu); Primary(id) return PLUGIN_HANDLED; } new Data[6], Name[64]; new Access, CallBack; menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack); new Key = str_to_num(Data); switch(Key) { #if defined HK416 case 1: { set_user_hk416(id, true); PrimaryWeapon[id] = HK416_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined AK47KNIFE case 2: { set_user_ak47knife(id, true); PrimaryWeapon[id] = AK47KNIFE_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined TAR21 case 3: { set_user_tar21(id, true); PrimaryWeapon[id] = TAR21_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined M134 case 4: { set_user_m134(id, true); PrimaryWeapon[id] = M134_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined THOMPSON case 5: { set_user_thompson(id, true); PrimaryWeapon[id] = THOMPSON_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined DUALBARREL case 6: { set_user_dualbarrel(id, true); PrimaryWeapon[id] = DUALBARREL_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined M1887 case 7: { set_user_m1887(id, true); PrimaryWeapon[id] = M1887_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined L85 case 8: { set_user_l85(id, true); PrimaryWeapon[id] = L85_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined SKULL5 case 9: { set_user_skull5(id, true); PrimaryWeapon[id] = SKULL5_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined SL8 case 10: { set_user_sl8(id, true); PrimaryWeapon[id] = SL8_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif #if defined AW50 case 11: { set_user_aw50(id, true); PrimaryWeapon[id] = AW50_WEAPONKEY HavePrimaryWeapon[id] = true Secondary(id) } #endif default: return PLUGIN_HANDLED; } menu_destroy(menu); return PLUGIN_HANDLED; } public Secondary(id) { if(is_user_alive(id) && get_user_team(id) == 2 && !HaveSecondaryWeapon[id]) { Menu = menu_create("\w[\yFURIEN\w] \wSecundary Pistols.", "SecondaryCmd"); #if defined M79 M79_Menu(id, "1") #endif #if defined DUALDEAGLE DualDeagle_Menu("2") #endif #if defined INFINITY Infinity_Menu("3") #endif #if defined DEAGLEGOLD DeagleGold_Menu("4") #endif #if defined K5 K5_Menu("5") #endif #if defined SKULL1 Skull1_Menu("6") #endif #if defined ANACONDA Anaconda_Menu("7") #endif menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER) menu_display(id, Menu, 0); } return PLUGIN_CONTINUE; } public SecondaryCmd(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) { menu_destroy(menu); return PLUGIN_HANDLED; } new Data[6], Name[64]; new Access, CallBack; menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack); new Key = str_to_num(Data); switch(Key) { #if defined M79 case 1: { if(get_user_flags(id) & VIPGOLD_LEVEL || get_user_flags(id) & VIPSILVER_LEVEL) { set_user_m79(id, true); SecondaryWeapon[id] = M79_WEAPONKEY HaveSecondaryWeapon[id] = true } else Secondary(id) } #endif #if defined DUALDEAGLE case 2: { set_user_dualdeagle(id, true); SecondaryWeapon[id] = DUALDEAGLE_WEAPONKEY HaveSecondaryWeapon[id] = true } #endif #if defined INFINITY case 3: { set_user_infinity(id, true); SecondaryWeapon[id] = INFINITY_WEAPONKEY HaveSecondaryWeapon[id] = true } #endif #if defined DEAGLEGOLD case 4: { set_user_deaglegold(id, true); SecondaryWeapon[id] = DEAGLEGOLD_WEAPONKEY HaveSecondaryWeapon[id] = true } #endif #if defined K5 case 5: { set_user_k5(id, true); SecondaryWeapon[id] = K5_WEAPONKEY HaveSecondaryWeapon[id] = true } #endif #if defined SKULL1 case 6: { set_user_skull1(id, true); SecondaryWeapon[id] = SKULL1_WEAPONKEY HaveSecondaryWeapon[id] = true } #endif #if defined ANACONDA case 7: { set_user_anaconda(id, true); SecondaryWeapon[id] = ANACONDA_WEAPONKEY HaveSecondaryWeapon[id] = true } #endif default: return PLUGIN_HANDLED; } menu_destroy(menu); return PLUGIN_HANDLED; } public GiveLastWeapons(id) { if(!HavePrimaryWeapon[id]) { switch(PrimaryWeapon[id]) { #if defined OICW case OICW_WEAPONKEY: { if(get_user_flags(id) & OWNER_LEVEL) { set_user_oicw(id, true) HavePrimaryWeapon[id] = true } else PrimaryWeapon[id] = 0 } #endif #if defined AT4 case AT4_WEAPONKEY: { if(get_user_flags(id) & VIPGOLD_LEVEL) { set_user_at4(id, true) HavePrimaryWeapon[id] = true } else PrimaryWeapon[id] = 0 } #endif #if defined SALAMANDER case SALAMANDER_WEAPONKEY: { if(get_user_flags(id) & VIPGOLD_LEVEL) { set_user_salamander(id, true) HavePrimaryWeapon[id] = true } else PrimaryWeapon[id] = 0 } #endif #if defined CROSSBOW case CROSSBOW_WEAPONKEY: { if(get_user_flags(id) & VIPGOLD_LEVEL) { set_user_crossbow(id, true) HavePrimaryWeapon[id] = true } else PrimaryWeapon[id] = 0 } #endif #if defined QUADBARREL case QUADBARREL_WEAPONKEY: { if(get_user_flags(id) & VIPGOLD_LEVEL) { set_user_quadbarrel(id, true) HavePrimaryWeapon[id] = true } else PrimaryWeapon[id] = 0 } #endif #if defined ETHEREAL case ETHEREAL_WEAPONKEY: { if(get_user_flags(id) & VIPSILVER_LEVEL) { set_user_ethereal(id, true) HavePrimaryWeapon[id] = true } else PrimaryWeapon[id] = 0 } #endif #if defined K1ASES case K1ASES_WEAPONKEY: { if(get_user_flags(id) & VIPSILVER_LEVEL) { set_user_k1ases(id, true) HavePrimaryWeapon[id] = true } else PrimaryWeapon[id] = 0 } #endif #if defined F2000 case F2000_WEAPONKEY: { if(get_user_flags(id) & VIPSILVER_LEVEL) { set_user_f2000(id, true) HavePrimaryWeapon[id] = true } else PrimaryWeapon[id] = 0 } #endif #if defined HK416 case HK416_WEAPONKEY: { set_user_hk416(id, true) HavePrimaryWeapon[id] = true } #endif #if defined AK47KNIFE case AK47KNIFE_WEAPONKEY: { set_user_ak47knife(id, true) HavePrimaryWeapon[id] = true } #endif #if defined TAR21 case TAR21_WEAPONKEY: { set_user_tar21(id, true) HavePrimaryWeapon[id] = true } #endif #if defined M134 case M134_WEAPONKEY: { set_user_m134(id, true) HavePrimaryWeapon[id] = true } #endif #if defined THOMPSON case THOMPSON_WEAPONKEY: { set_user_thompson(id, true) HavePrimaryWeapon[id] = true } #endif #if defined DUALBARREL case DUALBARREL_WEAPONKEY: { set_user_dualbarrel(id, true) HavePrimaryWeapon[id] = true } #endif #if defined DUALMP7A1 case DUALMP7A1_WEAPONKEY: { set_user_dualmp7a1(id, true) HavePrimaryWeapon[id] = true } #endif #if defined M1887 case M1887_WEAPONKEY: { set_user_m1887(id, true) HavePrimaryWeapon[id] = true } #endif #if defined L85 case L85_WEAPONKEY: { set_user_l85(id, true) HavePrimaryWeapon[id] = true } #endif #if defined SKULL5 case SKULL5_WEAPONKEY: { set_user_sl8(id, true) HavePrimaryWeapon[id] = true } #endif #if defined SL8 case SL8_WEAPONKEY: { set_user_sl8(id, true) HavePrimaryWeapon[id] = true } #endif #if defined AW50 case AW50_WEAPONKEY: { set_user_aw50(id, true) HavePrimaryWeapon[id] = true } #endif } } if(!HaveSecondaryWeapon[id]) { switch(SecondaryWeapon[id]) { #if defined M79 case M79_WEAPONKEY: { if(get_user_flags(id) & VIPGOLD_LEVEL || get_user_flags(id) & VIPSILVER_LEVEL) { set_user_m79(id, true) HaveSecondaryWeapon[id] = true } else SecondaryWeapon[id] = 0 } #endif #if defined DUALDEAGLE case DUALDEAGLE_WEAPONKEY: { set_user_dualdeagle(id, true) HaveSecondaryWeapon[id] = true } #endif #if defined INFINITY case INFINITY_WEAPONKEY: { set_user_infinity(id, true) HaveSecondaryWeapon[id] = true } #endif #if defined DEAGLEGOLD case DEAGLEGOLD_WEAPONKEY: { set_user_deaglegold(id, true) HaveSecondaryWeapon[id] = true } #endif #if defined K5 case K5_WEAPONKEY: { set_user_k5(id, true) HaveSecondaryWeapon[id] = true } #endif #if defined SKULL1 case SKULL1_WEAPONKEY: { set_user_skull1(id, true) HaveSecondaryWeapon[id] = true } #endif #if defined ANACONDA case ANACONDA_WEAPONKEY: { set_user_anaconda(id, true) HaveSecondaryWeapon[id] = true } #endif } } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //---------------------------------------| OICW |-------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined OICW OICW_Init() { register_clcmd("furien30_oicw", "Hook_OICW"); register_message(get_user_msgid("DeathMsg"), "OICW_DeathMsg"); register_event("CurWeapon", "OICW_ViewModel", "be", "1=1"); register_event("WeapPickup","OICW_ViewModel","b","1=19"); register_forward(FM_SetModel, "OICW_WorldModel"); register_forward(FM_UpdateClientData, "OICW_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "OICW_PlaybackEvent"); register_forward(FM_CmdStart, "OICW_CmdStart"); RegisterHam(Ham_TakeDamage, "player", "OICW_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "OICW_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "OICW_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "OICW_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "OICW_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "OICW_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "OICW_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "OICW_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "OICW_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_oicw, "OICW_Deploy_Post", 1); RegisterHam(Ham_Weapon_WeaponIdle, weapon_oicw, "OICW_WeaponIdle_Post", 1) RegisterHam(Ham_Weapon_PrimaryAttack, weapon_oicw, "OICW_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_oicw, "OICW_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_oicw, "OICW_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_oicw, "OICW_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_oicw, "OICW_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_oicw, "OICW_PostFrame"); register_touch(OICW_CLASS, "*", "OICW_Touch"); oicwdamage = register_cvar("furien30_oicw_damage", "120"); //| OICW Damage |// oicwclip = register_cvar("furien30_oicw_clip", "50"); //| OICW Clip |// oicwrecoil = register_cvar("furien30_oicw_recoil", "0.5"); //| OICW Recoil |// oicwreloadtime = register_cvar("furien30_oicw_reload_time", "3.6"); //| OICW Reload Time |// oicwdamage2 = register_cvar("furien30_oicw_damage2", "300"); //| OICW Grenade Damage |// oicwreloadtime2 = register_cvar("furien30_oicw_reload_time2", "3.0"); //| OICW Grenade Reload Time |// oicwradius = register_cvar("furien30_oicw_radius", "250.0"); //| OICW Grenade Radius |// oicwknockback = register_cvar("furien30_oicw_knockback", "6.0"); //| OICW Grenade Knockback |// } OICW_Precache() { register_forward(FM_PrecacheEvent, "OICW_PrecacheEvent_Post", 1); oicw_trail = precache_model("sprites/xbeam3.spr"); oicw_explode = precache_model("sprites/furien30_weapons/explode.spr"); precache_model(OICWModel_V); precache_model(OICWModel_P); precache_model(OICWModel_W); precache_model(OICWModel_S); for(new i = 0; i < sizeof(OICW_Sound); i++) engfunc(EngFunc_PrecacheSound, OICW_Sound); for(new i = 0; i < sizeof(OICW_Generic); i++) engfunc(EngFunc_PrecacheGeneric, OICW_Generic); } OICW_Natives() { register_native("get_user_oicw", "get_user_oicw", 1); register_native("set_user_oicw", "set_user_oicw", 1); } OICW_Menu(id, const Num[] = "1") { new _OICW[256]; if(get_user_flags(id) & OWNER_LEVEL) formatex(_OICW,sizeof(_OICW)-1,"\wOICW"); else formatex(_OICW,sizeof(_OICW)-1,"\dOICW \w- \rOnly OWNER\w"); menu_additem(Menu, _OICW, Num, 0); } public OICW_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "galil") && get_user_weapon(Attacker) == CSW_OICW) { if(get_user_oicw(Attacker)) set_msg_arg_string(4, "OICW"); } return PLUGIN_CONTINUE; } public OICW_ViewModel(id) { if(get_user_weapon(id) == CSW_OICW && get_user_oicw(id)) { set_pev(id, pev_viewmodel2, OICWModel_V); set_pev(id, pev_weaponmodel2, OICWModel_P); } } public OICW_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new _OICW = find_ent_by_owner(-1, weapon_oicw, entity); if(get_user_oicw(Owner) && is_valid_ent(_OICW) && equal(model, "models/w_galil.mdl")) { entity_set_int(_OICW, EV_INT_impulse, OICW_WEAPONKEY); HaveOICW[Owner] = false; entity_set_model(entity, OICWModel_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public OICW_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_OICW && get_user_oicw(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public OICW_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != oicw_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public OICW_PrecacheEvent_Post(type, const name[]) { if (equal("events/galil.sc", name)) { oicw_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public OICW_CmdStart(id, uc_handle, seed) { if(is_user_alive(id) && is_user_connected(id)) { static CurButton; CurButton = get_uc(uc_handle, UC_Buttons); new Float:NextAttack = get_pdata_float(id, 83, 5); static _OICW; _OICW = fm_find_ent_by_owner(-1, weapon_oicw, id); if(CurButton & IN_ATTACK && oicw_launcher[id]) { if(get_user_weapon(id) == CSW_OICW && get_user_oicw(id)) { if(cs_get_weapon_ammo(_OICW) > 0 && !oicw_reload[id] && NextAttack <= 0.0) { set_weapon_anim(id, 7); emit_sound(id, CHAN_WEAPON, OICW_Sound[1], 1.0, ATTN_NORM, 0, PITCH_NORM); OICW_Fire(id); static Float:PunchAngles[3]; PunchAngles[0] = random_float(-5.0, -10.0); PunchAngles[1] = 0.0; PunchAngles[2] = 0.0; set_pev(id, pev_punchangle, PunchAngles); cs_set_weapon_ammo(_OICW, cs_get_weapon_ammo(_OICW) - 1); if(cs_get_weapon_ammo(_OICW) > 0 && !oicw_reload[id] && NextAttack <= 0.0) set_pdata_float(id, 83, oicw_shotdelay, 5); } CurButton &= ~IN_ATTACK; set_uc(uc_handle, UC_Buttons, CurButton); } } if(CurButton & IN_ATTACK2 && !(pev(id, pev_oldbuttons) & IN_ATTACK2)) { if(get_user_weapon(id) == CSW_OICW && get_user_oicw(id) && NextAttack <= 0.0) { if(oicw_launcher[id]) { oicw_launcher[id] = false; cs_set_weapon_ammo(_OICW, OICWCarabineAmmo[id]); set_pdata_float(_OICW, 48, 2.3, 4) set_pdata_float(id, 83, 1.2, 5); set_weapon_anim(id, 10) } else { oicw_launcher[id] = true; OICWCarabineAmmo[id] = cs_get_weapon_ammo(_OICW) cs_set_weapon_ammo(_OICW, 1); set_pdata_float(_OICW, 48, 2.3, 4) set_pdata_float(id, 83, 1.2, 5); set_weapon_anim(id, 9) } } CurButton &= ~IN_ATTACK2; set_uc(uc_handle, UC_Buttons, CurButton); } } } public OICW_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_OICW && get_user_oicw(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(oicwdamage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(oicwdamage)); } } } } public OICW_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_OICW) return HAM_IGNORED; if(!get_user_oicw(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public OICW_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == OICW_WEAPONKEY) { HaveOICW[id] = true; OICWCarabineAmmo[id] = get_pcvar_num(oicwclip) entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, OICW_WEAPONKEY) } } public OICW_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_oicw(Owner)) { set_pev(Owner, pev_viewmodel2, OICWModel_V); set_pev(Owner, pev_weaponmodel2, OICWModel_P); set_pdata_float(Owner, 83, 1.2, 5); set_weapon_anim(Owner, 5) static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) oicw_reload[Owner] = 0; } } public OICW_WeaponIdle_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_oicw(id)) return HAM_IGNORED; if(get_pdata_float(ent, 48, 4) <= 0.1) { set_weapon_anim(id, oicw_launcher[id] ? 6 : 0) set_pdata_float(ent, 48, 2.7, 4) } return HAM_IGNORED; } public OICW_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if (get_user_oicw(id)) { pev(id,pev_punchangle,cl_pushangle[id]); oicw_clip[id] = cs_get_weapon_ammo(Weapon); } } public OICW_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(oicw_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_oicw(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(oicwrecoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, OICW_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(1, 3)) } } } public OICW_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_oicw(id)) return HAM_IGNORED; oicw_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_OICW); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(oicwclip)) return HAM_SUPERCEDE; oicw_clip[id] = Clip; oicw_reload[id] = 1; return HAM_IGNORED; } public OICW_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_oicw(id)) return HAM_IGNORED; if(oicw_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = oicw_launcher[id] ? get_pcvar_float(oicwreloadtime2) : get_pcvar_float(oicwreloadtime); set_pdata_int(ent, 51, oicw_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); if(!oicw_launcher[id]) set_weapon_anim(id, 4) return HAM_IGNORED; } public OICW_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_oicw(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_OICW); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min((oicw_launcher[id] ? 1 : get_pcvar_num(oicwclip)) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_OICW, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; oicw_reload[id] = 0; if(!oicw_launcher[id]) OICWCarabineAmmo[id] = get_pcvar_num(oicwclip) } return HAM_IGNORED; } public OICW_Fire(id) { new ent, Float:Origin[3], Float:Angles[3], Float:Velocity[3]; ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); engfunc(EngFunc_GetAttachment, id, 0, Origin, Angles); pev(id, pev_angles, Angles); set_pev(ent, pev_origin, Origin); set_pev(ent, pev_angles, Angles); set_pev(ent, pev_solid, 2); set_pev(ent, pev_movetype, MOVETYPE_PUSHSTEP); set_pev(ent, pev_classname, OICW_CLASS); set_pev(ent, pev_owner, id); engfunc(EngFunc_SetModel, ent, OICWModel_S); set_pev(ent, pev_mins, {-1.0, -1.0, -1.0}); set_pev(ent, pev_maxs, {1.0, 1.0, 1.0}); velocity_by_aim(id, 2000, Velocity); set_pev(ent, pev_velocity, Velocity); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BEAMFOLLOW); // TE id write_short(ent); // entity:attachment to follow write_short(oicw_trail); // sprite index write_byte(25); // life in 0.1's write_byte(1); // line width in 0.1's write_byte(255); // r write_byte(0); // g write_byte(0); // b write_byte(200); // brightness message_end(); set_pev(ent, pev_iuser4, 0); } public OICW_Touch(grenade, touch) { if(is_valid_ent(grenade)) { static Float:GrenadeOrigin[3]; pev(grenade, pev_origin, GrenadeOrigin); new id = pev(grenade, pev_owner); message_begin(MSG_BROADCAST ,SVC_TEMPENTITY); write_byte(TE_EXPLOSION); engfunc(EngFunc_WriteCoord, GrenadeOrigin[0]); engfunc(EngFunc_WriteCoord, GrenadeOrigin[1]); engfunc(EngFunc_WriteCoord, GrenadeOrigin[2]); write_short(oicw_explode); // sprite index write_byte(20); // scale in 0.1's write_byte(30); // framerate write_byte(0); // flags message_end(); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_WORLDDECAL) engfunc(EngFunc_WriteCoord, GrenadeOrigin[0]) engfunc(EngFunc_WriteCoord, GrenadeOrigin[1]) engfunc(EngFunc_WriteCoord, GrenadeOrigin[2]) write_byte(random_num(46, 48)) message_end() if(is_user_connected(touch) && is_user_alive(touch) && !fm_get_user_godmode(touch) && get_user_team(touch) != get_user_team(id) && touch != id) { new Float:Damage = get_pcvar_float(oicwdamage2); new Float:VictimOrigin[3] pev(touch, pev_origin, VictimOrigin); new BloodColor = ExecuteHam(Ham_BloodColor, touch); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(VictimOrigin[0])); write_coord(floatround(VictimOrigin[1])); write_coord(floatround(VictimOrigin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } make_knockback(touch, GrenadeOrigin, get_pcvar_float(oicwknockback) * Damage); if(get_user_health(touch) - Damage >= 1) { ExecuteHam(Ham_TakeDamage, touch, id, id, Damage, DMG_BLAST); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, touch); write_byte(0); write_byte(0); write_long(DMG_BLAST); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, touch); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(255); write_byte(255); write_byte(255); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, touch); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else { death_message(id, touch, "OICW"); } } else { static ClassName[32]; pev(touch, pev_classname, ClassName, charsmax(ClassName)); if(equal(ClassName, "func_breakable")) { if(entity_get_float(touch, EV_FL_health) <= get_pcvar_num(oicwdamage2)) { force_use(id, touch); } } } for(new Victim = 1; Victim < get_maxplayers(); Victim++) { if(is_user_connected(Victim) && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id) && Victim != id && Victim != touch) { new Float:VictimOrigin[3], Float:Distance_F, Distance; pev(Victim, pev_origin, VictimOrigin); Distance_F = get_distance_f(GrenadeOrigin, VictimOrigin); Distance = floatround(Distance_F); if(Distance <= get_pcvar_float(oicwradius)) { new Float:DistanceRatio, Float:Damage; DistanceRatio = floatdiv(float(Distance), get_pcvar_float(oicwradius)); Damage = get_pcvar_float(oicwdamage2) - floatround(floatmul(get_pcvar_float(oicwdamage2), DistanceRatio)); new BloodColor = ExecuteHam(Ham_BloodColor, Victim); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(VictimOrigin[0])); write_coord(floatround(VictimOrigin[1])); write_coord(floatround(VictimOrigin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } make_knockback(Victim, GrenadeOrigin, get_pcvar_float(oicwknockback)*Damage); if(get_user_health(Victim) - Damage >= 1) { ExecuteHam(Ham_TakeDamage, Victim, id, id, Damage, DMG_BLAST); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, Victim); write_byte(0); write_byte(0); write_long(DMG_BLAST); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, Victim); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(255); write_byte(255); write_byte(255); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, Victim); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else { death_message(id, Victim, "OICW"); } } } else { static ClassName[32]; pev(Victim, pev_classname, ClassName, charsmax(ClassName)); if(equal(ClassName, "func_breakable")) { if(entity_get_float(Victim, EV_FL_health) <= get_pcvar_num(oicwdamage2)) { force_use(id, Victim); } } } } engfunc(EngFunc_RemoveEntity, grenade); } } public Hook_OICW(id) { engclient_cmd(id, weapon_oicw); } public get_user_oicw(id) { return HaveOICW[id]; } public set_user_oicw(id, oicw) { if(oicw) { if(!HaveOICW[id]) { drop_primary_weapons(id); HaveOICW[id] = true; oicw_reload[id] = 0; WeaponList(id, OICW_WEAPONKEY) fm_give_item(id, weapon_oicw); new Clip = fm_get_user_weapon_entity(id, CSW_OICW); cs_set_weapon_ammo(Clip, oicw_launcher[id] ? 1 : get_pcvar_num(oicwclip)); OICWCarabineAmmo[id] = get_pcvar_num(oicwclip) } } else { if(HaveOICW[id]) { HaveOICW[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //---------------------------------------| AT4 |-------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined AT4 AT4_Init() { register_clcmd("furien30_at4", "Hook_AT4"); register_event("CurWeapon", "AT4_ViewModel", "be", "1=1"); register_event("WeapPickup","AT4_ViewModel","b","1=19"); register_forward(FM_SetModel, "AT4_WorldModel"); register_forward(FM_UpdateClientData, "AT4_UpdateClientData_Post", 1); register_forward(FM_CmdStart, "AT4_CmdStart"); RegisterHam(Ham_Item_Deploy , weapon_at4, "AT4_Deploy_Post", 1); RegisterHam(Ham_Item_Holster , weapon_at4, "AT4_Holster"); RegisterHam(Ham_Item_AddToPlayer, weapon_at4, "AT4_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_at4, "AT4_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_at4, "AT4_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_at4, "AT4_PostFrame"); register_think(AT4_CLASS, "AT4_Think"); register_think(AT4_CLASS_DETECTOR, "AT4_Think2"); register_think(AT4_CLASS_LASERDOT, "AT4_LaserDot_Think"); register_touch(AT4_CLASS, "*", "AT4_Touch"); register_touch(AT4_CLASS_DETECTOR, "*", "AT4_Touch2"); at4damage = register_cvar("furien30_at4_damage", "200.0"); //| AT4 Damage |// at4damage2 = register_cvar("furien30_at4_damage2", "100.0"); //| At4 Damage2 |// at4radius = register_cvar("furien30_at4_radius", "220.0"); //| AT4 Radius |// at4knockback = register_cvar("furien30_at4_knockback", "8"); //| At4 KnockBack |// at4reloadtime = register_cvar("furien30_at4_reload_time", "3.33"); //| AT4 Reload Time |// } AT4_Precache() { at4_smoke = precache_model("sprites/effects/rainsplash.spr"); at4_trail = precache_model("sprites/xbeam3.spr"); at4_explode = precache_model("sprites/furien30_weapons/explode.spr"); precache_model(AT4Model_V); precache_model(AT4Model_P); precache_model(AT4Model_W); precache_model(AT4Model_S); precache_model(AT4Model_LASER); for(new i = 0; i < sizeof(AT4_Sound); i++) engfunc(EngFunc_PrecacheSound, AT4_Sound); for(new i = 0; i < sizeof(AT4_Generic); i++) engfunc(EngFunc_PrecacheGeneric, AT4_Generic); } AT4_Natives() { register_native("get_user_at4", "get_user_at4", 1); register_native("set_user_at4", "set_user_at4", 1); } AT4_Menu(id, const Num[] = "1") { new _AT4[256]; if(get_user_flags(id) & VIPGOLD_LEVEL) formatex(_AT4,sizeof(_AT4)-1,"\wAT4"); else formatex(_AT4,sizeof(_AT4)-1,"\dAT4 \w- \rOnly VIP\w"); menu_additem(Menu, _AT4, Num, 0); } public AT4_ViewModel(id) { if(get_user_weapon(id) == CSW_AT4 && get_user_at4(id)) { set_pev(id, pev_viewmodel2, AT4Model_V); set_pev(id, pev_weaponmodel2, AT4Model_P); set_pdata_int(id, 361, get_pdata_int(id, 361) | (1<<6)); } } public AT4_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new _AT4 = find_ent_by_owner(-1, weapon_at4, entity); if(get_user_at4(Owner) && is_valid_ent(_AT4) && equal(model, "models/w_m249.mdl")) { entity_set_int(_AT4, EV_INT_impulse, AT4_WEAPONKEY); HaveAT4[Owner] = false; entity_set_model(entity, AT4Model_W); set_pdata_int(Owner, 361, get_pdata_int(Owner, 361) & ~ (1<<6)); new Laser = find_ent_by_owner(-1, AT4_CLASS_LASERDOT, Owner); if(is_valid_ent(Laser)) remove_entity(Laser); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public AT4_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_AT4 && get_user_at4(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public AT4_CmdStart(id, uc_handle, seed) { if(is_user_alive(id) && is_user_connected(id)) { static CurButton; CurButton = get_uc(uc_handle, UC_Buttons); new Float:NextAttack = get_pdata_float(id, 83, 5); static _AT4; _AT4 = fm_find_ent_by_owner(-1, weapon_at4, id); if(get_user_weapon(id) == CSW_AT4 && get_user_at4(id) && at4_detector[id]) { new Float: origin[3]; fm_get_aim_origin(id,origin); new Laser = find_ent_by_owner(-1, AT4_CLASS_LASERDOT, id); if(!is_valid_ent(Laser)) { new at4_laser = create_entity("info_target"); set_pev(at4_laser, pev_classname, AT4_CLASS_LASERDOT); set_pev(at4_laser, pev_owner, id); engfunc(EngFunc_SetModel, at4_laser, AT4Model_LASER); set_pev(at4_laser, pev_renderfx, kRenderFxNoDissipation); set_pev(at4_laser, pev_rendermode, kRenderGlow); set_pev(at4_laser, pev_renderamt, 255.0); set_pev(at4_laser, pev_light_level, 255.0); set_pev(at4_laser, pev_scale, 1.0); set_pev(at4_laser, pev_movetype, MOVETYPE_FLY); set_pev(at4_laser, pev_nextthink, halflife_time() + 0.001); } } else { new Laser = find_ent_by_owner(-1, AT4_CLASS_LASERDOT, id); if(is_valid_ent(Laser)) remove_entity(Laser); } if(CurButton & IN_ATTACK) { if(get_user_weapon(id) == CSW_AT4 && get_user_at4(id)) { if(cs_get_weapon_ammo(_AT4) > 0 && !at4_reload[id] && NextAttack <= 0.0) { set_weapon_anim(id, 1); emit_sound(id, CHAN_WEAPON, AT4_Sound[0], 1.0, ATTN_NORM, 0, PITCH_NORM); if(at4_detector[id]) AT4_Fire(id, 0); else AT4_Fire(id, 1); static Float:PunchAngles[3]; PunchAngles[0] = random_float(-15.0, -20.0); PunchAngles[1] = 0.0; PunchAngles[2] = 0.0; set_pev(id, pev_punchangle, PunchAngles); cs_set_weapon_ammo(_AT4, cs_get_weapon_ammo(_AT4) - 1); if(cs_get_weapon_ammo(_AT4) > 0 && !at4_reload[id] && NextAttack <= 0.0) set_pdata_float(id, 83, at4_shotdelay, 5); } CurButton &= ~IN_ATTACK; set_uc(uc_handle, UC_Buttons, CurButton); } } if(CurButton & IN_ATTACK2 && !(pev(id, pev_oldbuttons) & IN_ATTACK2)) { if(get_user_weapon(id) == CSW_AT4 && get_user_at4(id) && NextAttack <= 0.0) { if(at4_detector[id]) { at4_detector[id] = false; } else { at4_detector[id] = true; } } } } } public AT4_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == AT4_WEAPONKEY) { HaveAT4[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, AT4_WEAPONKEY) } } public AT4_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_at4(Owner)) { set_pev(Owner, pev_viewmodel2, AT4Model_V); set_pev(Owner, pev_weaponmodel2, AT4Model_P); set_pdata_float(Owner, 83, 1.16, 5); set_weapon_anim(Owner, 4); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) at4_reload[Owner] = 0; set_pdata_int(Owner, 361, get_pdata_int(Owner, 361) | (1<<6)); } } public AT4_Holster(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_at4(Owner)) { set_pdata_int(Owner, 361, get_pdata_int(Owner, 361) & ~ (1<<6)); } } public AT4_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_at4(id)) return HAM_IGNORED; at4_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_AT4); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= 1) return HAM_SUPERCEDE; at4_clip[id] = Clip; at4_reload[id] = 1; return HAM_IGNORED; } public AT4_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_at4(id)) return HAM_IGNORED; if(at4_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(at4reloadtime); set_pdata_int(ent, 51, at4_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 3); return HAM_IGNORED; } public AT4_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_at4(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_AT4); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(1 - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_AT4, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; at4_reload[id] = 0; } return HAM_IGNORED; } public AT4_Fire(id, type) { new ent, Float:Origin[3], Float:Angles[3], Float:Velocity[3]; ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); engfunc(EngFunc_GetAttachment, id, 0, Origin, Angles); pev(id, pev_angles, Angles); set_pev(ent, pev_origin, Origin); set_pev(ent, pev_angles, Angles); set_pev(ent, pev_solid, 2); set_pev(ent, pev_movetype, 5); if(type > 0) set_pev(ent, pev_classname, AT4_CLASS); else set_pev(ent, pev_classname, AT4_CLASS_DETECTOR); set_pev(ent, pev_owner, id); engfunc(EngFunc_SetModel, ent, AT4Model_S); set_pev(ent, pev_mins, {-1.0, -1.0, -1.0}); set_pev(ent, pev_maxs, {1.0, 1.0, 1.0}); velocity_by_aim(id, 2000, Velocity); set_pev(ent, pev_velocity, Velocity); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BEAMFOLLOW); // TE id write_short(ent); // entity:attachment to follow write_short(at4_trail); // sprite index write_byte(25); // life in 0.1's write_byte(2); // line width in 0.1's write_byte(255); // r write_byte(255); // g write_byte(255); // b write_byte(200); // brightness message_end(); set_pev(ent, pev_iuser4, 0); set_pev(ent, pev_nextthink, halflife_time() + 0.1); } public AT4_Think(ent) { if(is_valid_ent(ent)) { static Float:Origin[3]; pev(ent, pev_origin, Origin); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_SPRITE); engfunc(EngFunc_WriteCoord, Origin[0]); engfunc(EngFunc_WriteCoord, Origin[1]); engfunc(EngFunc_WriteCoord, Origin[2]); write_short(at4_smoke); write_byte(2); write_byte(200); message_end(); set_pev(ent, pev_nextthink, halflife_time() + 0.075); } } public AT4_Think2(ent) { if(is_valid_ent(ent)) { static Float:Origin[3]; pev(ent, pev_origin, Origin); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_SPRITE); engfunc(EngFunc_WriteCoord, Origin[0]); engfunc(EngFunc_WriteCoord, Origin[1]); engfunc(EngFunc_WriteCoord, Origin[2]); write_short(at4_smoke); write_byte(2); write_byte(200); message_end(); if(pev(ent, pev_iuser4) == 0) { static Victim; Victim = FindClosesEnemy(ent); if(is_user_alive(Victim)) { set_pev(ent, pev_iuser4, Victim); } } else { static Victim; Victim = pev(ent, pev_iuser4); if(is_user_alive(Victim)) { static Float:VicOrigin[3]; pev(Victim, pev_origin, VicOrigin); hook_ent(ent, Victim, 2000.0); } else { set_pev(ent, pev_iuser4, 0); } } set_pev(ent, pev_nextthink, halflife_time() + 0.075); } } public AT4_LaserDot_Think(entity) { if(is_valid_ent(entity)) { new Owner, Float:origin[3]; Owner = pev(entity, pev_owner); pev(Owner, pev_origin, origin); fm_get_aim_origin(Owner, origin); set_pev(entity, pev_origin, origin); set_pev(entity, pev_nextthink, halflife_time() + 0.001); } } public AT4_Touch(rocket, touch) { if(is_valid_ent(rocket)) { static Float:RocketOrigin[3]; pev(rocket, pev_origin, RocketOrigin); new id = pev(rocket, pev_owner); message_begin(MSG_BROADCAST ,SVC_TEMPENTITY); write_byte(TE_EXPLOSION); engfunc(EngFunc_WriteCoord, RocketOrigin[0]); engfunc(EngFunc_WriteCoord, RocketOrigin[1]); engfunc(EngFunc_WriteCoord, RocketOrigin[2]); write_short(at4_explode); // sprite index write_byte(40); // scale in 0.1's write_byte(30); // framerate write_byte(0); // flags message_end(); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_WORLDDECAL) engfunc(EngFunc_WriteCoord, RocketOrigin[0]) engfunc(EngFunc_WriteCoord, RocketOrigin[1]) engfunc(EngFunc_WriteCoord, RocketOrigin[2]) write_byte(random_num(46, 48)) message_end() if(is_user_connected(touch) && is_user_alive(touch) && !fm_get_user_godmode(touch) && get_user_team(touch) != get_user_team(id) && touch != id) { new Float:VictimOrigin[3] pev(touch, pev_origin, VictimOrigin); new Float:Damage = get_pcvar_float(at4damage) new BloodColor = ExecuteHam(Ham_BloodColor, touch); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(VictimOrigin[0])); write_coord(floatround(VictimOrigin[1])); write_coord(floatround(VictimOrigin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } make_knockback(touch, RocketOrigin, get_pcvar_float(at4knockback) * Damage); if(get_user_health(touch) - Damage >= 1) { ExecuteHam(Ham_TakeDamage, touch, id, id, Damage, DMG_BLAST); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, touch); write_byte(0); write_byte(0); write_long(DMG_BLAST); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, touch); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(255); write_byte(255); write_byte(255); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, touch); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else { death_message(id, touch, "AT4"); } } else { static ClassName[32]; pev(touch, pev_classname, ClassName, charsmax(ClassName)); if(equal(ClassName, "func_breakable")) { if(entity_get_float(touch, EV_FL_health) <= get_pcvar_num(at4damage)) { force_use(id, touch); } } } for(new Victim = 1; Victim < get_maxplayers(); Victim++) { if(is_user_connected(Victim) && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id) && Victim != id && Victim != touch) { new Float:VictimOrigin[3], Float:Distance_F, Distance; pev(Victim, pev_origin, VictimOrigin); Distance_F = get_distance_f(RocketOrigin, VictimOrigin); Distance = floatround(Distance_F); if(Distance <= get_pcvar_float(at4radius)) { new Float:DistanceRatio, Float:Damage; DistanceRatio = floatdiv(float(Distance), get_pcvar_float(at4radius)); Damage = get_pcvar_float(at4damage) - floatround(floatmul(get_pcvar_float(at4damage), DistanceRatio)); new BloodColor = ExecuteHam(Ham_BloodColor, Victim); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(VictimOrigin[0])); write_coord(floatround(VictimOrigin[1])); write_coord(floatround(VictimOrigin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } make_knockback(Victim, RocketOrigin, get_pcvar_float(at4knockback)*Damage); if(get_user_health(Victim) - Damage >= 1) { ExecuteHam(Ham_TakeDamage, Victim, id, id, Damage, DMG_BLAST); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, Victim); write_byte(0); write_byte(0); write_long(DMG_BLAST); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, Victim); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(255); write_byte(255); write_byte(255); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, Victim); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else { death_message(id, Victim, "AT4"); } } } } engfunc(EngFunc_RemoveEntity, rocket); } } public AT4_Touch2(rocket, touch) { if(is_valid_ent(rocket)) { static Float:RocketOrigin[3]; pev(rocket, pev_origin, RocketOrigin); new id = pev(rocket, pev_owner); message_begin(MSG_BROADCAST ,SVC_TEMPENTITY); write_byte(TE_EXPLOSION); engfunc(EngFunc_WriteCoord, RocketOrigin[0]); engfunc(EngFunc_WriteCoord, RocketOrigin[1]); engfunc(EngFunc_WriteCoord, RocketOrigin[2]); write_short(at4_explode); // sprite index write_byte(40); // scale in 0.1's write_byte(30); // framerate write_byte(0); // flags message_end(); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_WORLDDECAL) engfunc(EngFunc_WriteCoord, RocketOrigin[0]) engfunc(EngFunc_WriteCoord, RocketOrigin[1]) engfunc(EngFunc_WriteCoord, RocketOrigin[2]) write_byte(random_num(46, 48)) message_end() for(new Victim = 1; Victim < get_maxplayers(); Victim++) { if(is_user_connected(Victim) && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id) && Victim != id) { new Float:VictimOrigin[3], Float:Distance_F, Distance; pev(Victim, pev_origin, VictimOrigin); Distance_F = get_distance_f(RocketOrigin, VictimOrigin); Distance = floatround(Distance_F); if(Distance <= get_pcvar_float(at4radius)) { new Float:DistanceRatio, Float:Damage; DistanceRatio = floatdiv(float(Distance), get_pcvar_float(at4radius)); Damage = get_pcvar_float(at4damage2) - floatround(floatmul(get_pcvar_float(at4damage2), DistanceRatio)); new BloodColor = ExecuteHam(Ham_BloodColor, Victim); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(VictimOrigin[0])); write_coord(floatround(VictimOrigin[1])); write_coord(floatround(VictimOrigin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } make_knockback(Victim, RocketOrigin, get_pcvar_float(at4knockback)*Damage); if(get_user_health(Victim) - Damage >= 1) { ExecuteHam(Ham_TakeDamage, Victim, id, id, Damage, DMG_BLAST); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, Victim); write_byte(0); write_byte(0); write_long(DMG_BLAST); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, Victim); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(255); write_byte(255); write_byte(255); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, Victim); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else { death_message(id, Victim, "AT4"); } } } } static ClassName[32]; pev(touch, pev_classname, ClassName, charsmax(ClassName)); if(equal(ClassName, "func_breakable")) { if(entity_get_float(touch, EV_FL_health) <= get_pcvar_num(at4damage2)) { force_use(id, touch); } } engfunc(EngFunc_RemoveEntity, rocket); } } public Hook_AT4(id) { engclient_cmd(id, weapon_at4); } public get_user_at4(id) { return HaveAT4[id]; } public set_user_at4(id, at4) { if(at4) { if(!HaveAT4[id]) { drop_primary_weapons(id); HaveAT4[id] = true; at4_reload[id] = 0; WeaponList(id, AT4_WEAPONKEY) fm_give_item(id, weapon_at4); new Clip = fm_get_user_weapon_entity(id, CSW_AT4); cs_set_weapon_ammo(Clip, 1); } } else { if(HaveAT4[id]) { HaveAT4[id] = false; } } } stock FindClosesEnemy(entid) { new Float:Dist; new Float:maxdistance=300.0; new indexid=0; for(new i=1;i<=get_maxplayers();i++){ if(is_user_alive(i) && is_valid_ent(i) && can_see_fm(entid, i) && pev(entid, pev_owner) != i && cs_get_user_team(pev(entid, pev_owner)) != cs_get_user_team(i)) { Dist = entity_range(entid, i); if(Dist <= maxdistance) { maxdistance=Dist; indexid=i; return indexid; } } } return 0; } stock bool:can_see_fm(entindex1, entindex2) { if(!entindex1 || !entindex2) return false; if(pev_valid(entindex1) && pev_valid(entindex1)) { new flags = pev(entindex1, pev_flags); if(flags & EF_NODRAW || flags & FL_NOTARGET) { return false; } new Float:lookerOrig[3]; new Float:targetBaseOrig[3]; new Float:targetOrig[3]; new Float:temp[3]; pev(entindex1, pev_origin, lookerOrig); pev(entindex1, pev_view_ofs, temp); lookerOrig[0] += temp[0]; lookerOrig[1] += temp[1]; lookerOrig[2] += temp[2]; pev(entindex2, pev_origin, targetBaseOrig); pev(entindex2, pev_view_ofs, temp); targetOrig[0] = targetBaseOrig[0] + temp[0]; targetOrig[1] = targetBaseOrig[1] + temp[1]; targetOrig[2] = targetBaseOrig[2] + temp[2]; engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0); // checks the had of seen player if(get_tr2(0, TraceResult:TR_InOpen) && get_tr2(0, TraceResult:TR_InWater)) { return false; } else { new Float:flFraction; get_tr2(0, TraceResult:TR_flFraction, flFraction); if(flFraction == 1.0 ||(get_tr2(0, TraceResult:TR_pHit) == entindex2)) { return true; } else { targetOrig[0] = targetBaseOrig[0]; targetOrig[1] = targetBaseOrig[1]; targetOrig[2] = targetBaseOrig[2]; engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0); // checks the body of seen player get_tr2(0, TraceResult:TR_flFraction, flFraction); if(flFraction == 1.0 ||(get_tr2(0, TraceResult:TR_pHit) == entindex2)) { return true; } else { targetOrig[0] = targetBaseOrig[0]; targetOrig[1] = targetBaseOrig[1]; targetOrig[2] = targetBaseOrig[2] - 17.0; engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0); // checks the legs of seen player get_tr2(0, TraceResult:TR_flFraction, flFraction); if(flFraction == 1.0 ||(get_tr2(0, TraceResult:TR_pHit) == entindex2)) { return true; } } } } } return false; } stock hook_ent(ent, victim, Float:speed) { static Float:fl_Velocity[3]; static Float:VicOrigin[3], Float:EntOrigin[3]; pev(ent, pev_origin, EntOrigin); pev(victim, pev_origin, VicOrigin); static Float:distance_f; distance_f = get_distance_f(EntOrigin, VicOrigin); if(distance_f > 10.0) { new Float:fl_Time = distance_f / speed; fl_Velocity[0] = (VicOrigin[0] - EntOrigin[0]) / fl_Time; fl_Velocity[1] = (VicOrigin[1] - EntOrigin[1]) / fl_Time; fl_Velocity[2] = (VicOrigin[2] - EntOrigin[2]) / fl_Time; } else { fl_Velocity[0] = 0.0; fl_Velocity[1] = 0.0; fl_Velocity[2] = 0.0; } entity_set_vector(ent, EV_VEC_velocity, fl_Velocity); } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //--------------------------------------| Salamander |------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined SALAMANDER Salamander_Init() { register_clcmd("furien30_salamander", "Hook_Salamander"); register_event("CurWeapon", "Salamander_ViewModel", "be", "1=1"); register_event("WeapPickup","Salamander_ViewModel","b","1=19"); register_forward(FM_SetModel, "Salamander_WorldModel"); register_forward(FM_UpdateClientData, "Salamander_UpdateClientData", 1); register_forward(FM_CmdStart, "Salamander_CmdStart"); RegisterHam(Ham_Item_Deploy , weapon_salamander, "Salamander_Deploy_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_salamander, "Salamander_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_salamander, "Salamander_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_salamander, "Salamander_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_salamander, "Salamander_PostFrame"); register_think(SALAMANDER_CLASS, "Salamander_Think"); register_touch(SALAMANDER_CLASS, "*", "Salamander_Touch"); salamanderdamage = register_cvar("furien30_salamander_damage", "30.0"); //| Salamander Damage |// salamanderclip = register_cvar("furien30_salamander_clip", "120"); //| Salamander Clip |// salamanderreloadtime = register_cvar("furien30_salamander_reload_time", "5.0"); //| Salamander Reload Time |// salamanderradius = register_cvar("furien30_salamander_radius", "50.0"); //| Salamander Radius |// } Salamander_Precache() { register_forward(FM_PrecacheEvent, "Salamander_PrecacheEvent_Post", 1); precache_model(SalamanderModel_FIRE); precache_model(SalamanderModel_V); precache_model(SalamanderModel_P); precache_model(SalamanderModel_W); precache_model(SalamanderModel_FIRE); for(new i = 0; i < sizeof(Salamander_Sound); i++) engfunc(EngFunc_PrecacheSound, Salamander_Sound); for(new i = 0; i < sizeof(Salamander_Generic); i++) engfunc(EngFunc_PrecacheGeneric, Salamander_Generic); } Salamander_Natives() { register_native("get_user_salamander", "get_user_salamander", 1); register_native("set_user_salamander", "set_user_salamander", 1); } Salamander_Menu(id, const Num[] = "1") { new Salamander[256]; if(get_user_flags(id) & VIPGOLD_LEVEL) formatex(Salamander,sizeof(Salamander)-1,"\wSalamander"); else formatex(Salamander,sizeof(Salamander)-1,"\dSalamander \w- \rOnly VIP\w"); menu_additem(Menu, Salamander, Num, 0); } public Salamander_ViewModel(id) { if(get_user_weapon(id) == CSW_SALAMANDER && get_user_salamander(id)) { set_pev(id, pev_viewmodel2, SalamanderModel_V); set_pev(id, pev_weaponmodel2, SalamanderModel_P); } } public Salamander_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new Salamander = find_ent_by_owner(-1, weapon_salamander, entity); if(get_user_salamander(Owner) && is_valid_ent(Salamander) && equal(model, "models/w_m249.mdl")) { entity_set_int(Salamander, EV_INT_impulse, SALAMANDER_WEAPONKEY); HaveSalamander[Owner] = false; entity_set_model(entity, SalamanderModel_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public Salamander_UpdateClientData(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_SALAMANDER && get_user_salamander(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public Salamander_CmdStart(id, uc_handle, seed) { if(is_user_alive(id) && is_user_connected(id)) { static CurButton; CurButton = get_uc(uc_handle, UC_Buttons); new Float:NextAttack = get_pdata_float(id, 83, 5); static Salamander; Salamander = fm_find_ent_by_owner(-1, weapon_salamander, id); if(CurButton & IN_ATTACK) { if(get_user_weapon(id) == CSW_SALAMANDER && get_user_salamander(id) && pev(id, pev_waterlevel) <= 1) { if(cs_get_weapon_ammo(Salamander) > 0 && !salamander_reload[id] && NextAttack <= 0.0) { set_weapon_anim(id, 1); emit_sound(id, CHAN_WEAPON, Salamander_Sound[0], 1.0, ATTN_NORM, 0, PITCH_NORM); Salamander_Fire(id); static Float:PunchAngles[3]; PunchAngles[0] = random_float(-3.0, -5.0); PunchAngles[1] = 0.0; PunchAngles[2] = 0.0; set_pev(id, pev_punchangle, PunchAngles); cs_set_weapon_ammo(Salamander, cs_get_weapon_ammo(Salamander) - 1); if(cs_get_weapon_ammo(Salamander) > 0 && !salamander_reload[id] && NextAttack <= 0.0) set_pdata_float(id, 83, salamander_shotdelay, 5); } CurButton &= ~IN_ATTACK; set_uc(uc_handle, UC_Buttons, CurButton); } } if(!(CurButton & IN_ATTACK) &&(pev(id, pev_oldbuttons) & IN_ATTACK) && pev(id, pev_weaponanim) == 1) { if(get_user_weapon(id) == CSW_SALAMANDER && get_user_salamander(id)) { if(cs_get_weapon_ammo(Salamander) > 0 && !salamander_reload[id]) { set_weapon_anim(id, 2); } } } } } public Salamander_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == SALAMANDER_WEAPONKEY) { HaveSalamander[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, SALAMANDER_WEAPONKEY) } } public Salamander_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_salamander(Owner)) { set_pev(Owner, pev_viewmodel2, SalamanderModel_V); set_pev(Owner, pev_weaponmodel2, SalamanderModel_P); set_pdata_float(Owner, 83, 1.16, 5); set_weapon_anim(Owner, 4); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) salamander_reload[Owner] = 0; } } public Salamander_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_salamander(id)) return HAM_IGNORED; salamander_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_SALAMANDER); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(salamanderclip)) return HAM_SUPERCEDE; salamander_clip[id] = Clip; salamander_reload[id] = 1; return HAM_IGNORED; } public Salamander_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_salamander(id)) return HAM_IGNORED; if(salamander_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(salamanderreloadtime); set_pdata_int(ent, 51, salamander_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 3); return HAM_IGNORED; } public Salamander_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_salamander(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_SALAMANDER); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(salamanderclip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_SALAMANDER, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; salamander_reload[id] = 0; } return HAM_IGNORED; } public Salamander_Fire(id) { new ent, Float:Origin[3], Float:Angles[3], Float:Velocity[3]; ent = create_entity("env_sprite"); engfunc(EngFunc_GetAttachment, id, 0, Origin, Angles); pev(id, pev_angles, Angles); set_pev(ent, pev_movetype, MOVETYPE_FLY); set_pev(ent, pev_rendermode, kRenderTransAdd); set_pev(ent, pev_renderamt, 250.0); set_pev(ent, pev_scale, 0.5); entity_set_string(ent, EV_SZ_classname, SALAMANDER_CLASS); engfunc(EngFunc_SetModel, ent, SalamanderModel_FIRE); set_pev(ent, pev_mins, Float:{-1.0, -1.0, -1.0}); set_pev(ent, pev_maxs, Float:{1.0, 1.0, 1.0}); set_pev(ent, pev_origin, Origin); set_pev(ent, pev_gravity, 0.01); set_pev(ent, pev_angles, Angles); set_pev(ent, pev_solid, SOLID_TRIGGER); set_pev(ent, pev_owner, id) set_pev(ent, pev_frame, 0.0); velocity_by_aim(id, fm_get_speed(id) + 500, Velocity); set_pev(ent, pev_velocity, Velocity); set_pev(ent, pev_nextthink, halflife_time() + 0.040); } public Salamander_Think(ent) { if(is_valid_ent(ent)) { static Float:FireOrigin[3]; pev(ent, pev_origin, FireOrigin); //new id = pev(ent, pev_owner); new origin[3]; FVecIVec(FireOrigin,origin); message_begin(MSG_BROADCAST,SVC_TEMPENTITY); write_byte(TE_DLIGHT); write_coord(origin[0]); // x write_coord(origin[1]); // y write_coord(origin[2]); // z write_byte(floatround(get_pcvar_float(salamanderradius) / 10.0)); // radius write_byte(255); // red write_byte(150); // green write_byte(15); // blue write_byte(1); // life write_byte(60); // decay rate message_end(); set_pev(ent, pev_nextthink, halflife_time() + 0.040); new Float:Frame, Float:Scale pev(ent, pev_frame, Frame); pev(ent, pev_scale, Scale); Frame += 1.0; Scale += 0.1; set_pev(ent, pev_frame, Frame); set_pev(ent, pev_scale, Scale); if(Frame >= 21.0) set_pev(ent, pev_flags, pev(ent, pev_flags) | FL_KILLME); } } public Salamander_Touch(fire, touch) { if(is_valid_ent(fire)) { static Float:FireOrigin[3]; pev(fire, pev_origin, FireOrigin); new id = pev(fire, pev_owner); static ClassName[32]; pev(touch, pev_classname, ClassName, charsmax(ClassName)); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_WORLDDECAL) engfunc(EngFunc_WriteCoord, FireOrigin[0]) engfunc(EngFunc_WriteCoord, FireOrigin[1]) engfunc(EngFunc_WriteCoord, FireOrigin[2]) write_byte(random_num(46, 48)) message_end() if(is_user_connected(touch) && is_user_alive(touch) && !fm_get_user_godmode(touch) && get_user_team(touch) != get_user_team(id) && touch != id) { new Float:VictimOrigin[3] pev(touch, pev_origin, VictimOrigin); new Float:Damage = get_pcvar_float(salamanderdamage) new BloodColor = ExecuteHam(Ham_BloodColor, touch); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(VictimOrigin[0])); write_coord(floatround(VictimOrigin[1])); write_coord(floatround(VictimOrigin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } if(get_user_health(touch) - Damage >= 1) { ExecuteHam(Ham_TakeDamage, touch, id, id, Damage, DMG_BURN); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, touch); write_byte(0); write_byte(0); write_long(DMG_BURN); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, touch); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(255); write_byte(0); write_byte(0); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, touch); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else { death_message(id, touch, "Salamander"); } } else { if(equal(ClassName, "func_breakable")) { if(entity_get_float(touch, EV_FL_health) <= get_pcvar_float(salamanderdamage) * 2) { force_use(id, touch); } } } for(new Victim = 1; Victim < get_maxplayers(); Victim++) { if(is_user_connected(Victim) && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id) && Victim != id && Victim != touch) { new Float:VictimOrigin[3], Float:Distance_F, Distance; pev(Victim, pev_origin, VictimOrigin); Distance_F = get_distance_f(FireOrigin, VictimOrigin); Distance = floatround(Distance_F); if(Distance <= get_pcvar_float(salamanderradius)) { new Float:DistanceRatio, Float:Damage; DistanceRatio = floatdiv(float(Distance), get_pcvar_float(salamanderdamage)); Damage = get_pcvar_float(salamanderdamage) - floatround(floatmul(get_pcvar_float(salamanderdamage), DistanceRatio)); new BloodColor = ExecuteHam(Ham_BloodColor, touch); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(VictimOrigin[0])); write_coord(floatround(VictimOrigin[1])); write_coord(floatround(VictimOrigin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } if(get_user_health(Victim) - Damage >= 1) { if(Damage > 0) ExecuteHam(Ham_TakeDamage, Victim, id, id, Damage, DMG_BURN); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, Victim); write_byte(0); write_byte(0); write_long(DMG_BURN); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, Victim); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(255); write_byte(0); write_byte(0); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, Victim); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else { death_message(id, Victim, "Salamander"); } } } } if(id != touch && !equal(ClassName, SALAMANDER_CLASS)) { set_pev(fire, pev_movetype, MOVETYPE_NONE); set_pev(fire, pev_solid, SOLID_NOT); } } } public Hook_Salamander(id) { engclient_cmd(id, weapon_salamander); } public get_user_salamander(id) { return HaveSalamander[id]; } public set_user_salamander(id, salamander) { if(salamander) { if(!HaveSalamander[id]) { drop_primary_weapons(id); HaveSalamander[id] = true; salamander_reload[id] = 0; WeaponList(id, SALAMANDER_WEAPONKEY) fm_give_item(id, weapon_salamander); new Clip = fm_get_user_weapon_entity(id, CSW_SALAMANDER); cs_set_weapon_ammo(Clip, get_pcvar_num(salamanderclip)); } } else { if(HaveSalamander[id]) { HaveSalamander[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //---------------------------------------| CrossBow |-------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined CROSSBOW CrossBow_Init() { register_clcmd("furien30_crossbow", "Hook_CrossBow"); register_event("CurWeapon", "CrossBow_ViewModel", "be", "1=1"); register_event("WeapPickup","CrossBow_ViewModel","b","1=19"); register_forward(FM_SetModel, "CrossBow_WorldModel"); register_forward(FM_UpdateClientData, "CrossBow_UpdateClientData_Post", 1); register_forward(FM_CmdStart, "CrossBow_CmdStart"); RegisterHam(Ham_Item_Deploy , weapon_crossbow, "CrossBow_Deploy_Post", 1); RegisterHam(Ham_Item_Holster , weapon_crossbow, "CrossBow_Holster"); RegisterHam(Ham_Item_AddToPlayer, weapon_crossbow, "CrossBow_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_crossbow, "CrossBow_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_crossbow, "CrossBow_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_crossbow, "CrossBow_PostFrame"); register_touch(CROSSBOW_CLASS, "*", "CrossBow_Touch"); crossbowdamage = register_cvar("furien30_crossbow_damage", "100"); //| CrossBow Damage |// crossbowclip = register_cvar("furien30_crossbow_clip", "20"); //| CrossBow Clip |// crossbowreloadtime = register_cvar("furien30_crossbow_reload_time", "3.33"); //| CrossBow Reload Time |// crossbowradius = register_cvar("furien30_crossbow_radius", "200"); //| CrossBow Radius |// crossbowknockback = register_cvar("furien30_crossbow_knockback", "6"); //| CrossBow KnockBack |// } CrossBow_Precache() { BloodSpray = precache_model("sprites/bloodspray.spr"); BloodDrop = precache_model("sprites/blood.spr"); crossbow_trail = precache_model("sprites/xbeam3.spr"); crossbow_explode = precache_model("sprites/furien30_weapons/explode.spr"); precache_model(CrossBowModel_V); precache_model(CrossBowModel_P); precache_model(CrossBowModel_W); precache_model(CrossBowModel_S); for(new i = 0; i < sizeof(CrossBow_Sound); i++) engfunc(EngFunc_PrecacheSound, CrossBow_Sound); for(new i = 0; i < sizeof(CrossBow_Generic); i++) engfunc(EngFunc_PrecacheGeneric, CrossBow_Generic); } CrossBow_Natives() { register_native("get_user_crossbow", "get_user_crossbow", 1); register_native("set_user_crossbow", "set_user_crossbow", 1); } CrossBow_Menu(id, const Num[] = "1") { new CrossBow[256]; if(get_user_flags(id) & VIPGOLD_LEVEL) formatex(CrossBow,sizeof(CrossBow)-1,"\wCrossBow"); else formatex(CrossBow,sizeof(CrossBow)-1,"\dCrossBow \w- \rOnly VIP\w"); menu_additem(Menu, CrossBow, Num, 0); } public CrossBow_ViewModel(id) { if(get_user_weapon(id) == CSW_CROSSBOW && get_user_crossbow(id)) { set_pev(id, pev_viewmodel2, CrossBowModel_V); set_pev(id, pev_weaponmodel2, CrossBowModel_P); set_pdata_int(id, 361, get_pdata_int(id, 361) | (1<<6)); } } public CrossBow_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new CrossBow = find_ent_by_owner(-1, weapon_crossbow, entity); if(get_user_crossbow(Owner) && is_valid_ent(CrossBow) && equal(model, "models/w_sg552.mdl")) { entity_set_int(CrossBow, EV_INT_impulse, CROSSBOW_WEAPONKEY); HaveCrossBow[Owner] = false; entity_set_model(entity, CrossBowModel_W); set_pdata_int(Owner, 361, get_pdata_int(Owner, 361) & ~ (1<<6)); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public CrossBow_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_CROSSBOW && get_user_crossbow(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public CrossBow_CmdStart(id, uc_handle, seed) { if(is_user_alive(id) && is_user_connected(id)) { static CurButton; CurButton = get_uc(uc_handle, UC_Buttons); new Float:NextAttack = get_pdata_float(id, 83, 5); if(CurButton & IN_ATTACK) { if(get_user_weapon(id) == CSW_CROSSBOW && get_user_crossbow(id)) { static CrossBow; CrossBow = fm_find_ent_by_owner(-1, weapon_crossbow, id); if(cs_get_weapon_ammo(CrossBow) > 0 && !crossbow_reload[id] && NextAttack <= 0.0) { set_weapon_anim(id, random_num(1,2)); emit_sound(id, CHAN_WEAPON,CrossBow_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); CrossBow_Fire(id); static Float:PunchAngles[3]; PunchAngles[0] = random_float(-4.0, -5.0); PunchAngles[1] = 0.0; PunchAngles[2] = 0.0; set_pev(id, pev_punchangle, PunchAngles); cs_set_weapon_ammo(CrossBow, cs_get_weapon_ammo(CrossBow) - 1); if(cs_get_weapon_ammo(CrossBow) > 0 && !crossbow_reload[id] && NextAttack <= 0.0) set_pdata_float(id, 83, crossbow_shotdelay, 5); } CurButton &= ~IN_ATTACK; set_uc(uc_handle, UC_Buttons, CurButton); } } } } public CrossBow_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == CROSSBOW_WEAPONKEY) { HaveCrossBow[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, CROSSBOW_WEAPONKEY) } } public CrossBow_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_crossbow(Owner)) { set_pev(Owner, pev_viewmodel2, CrossBowModel_V); set_pev(Owner, pev_weaponmodel2, CrossBowModel_P); set_pdata_float(Owner, 83, 1.03, 5); set_weapon_anim(Owner, 4); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) crossbow_reload[Owner] = 0; set_pdata_int(Owner, 361, get_pdata_int(Owner, 361) | (1<<6)); } } public CrossBow_Holster(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_crossbow(Owner)) { set_pdata_int(Owner, 361, get_pdata_int(Owner, 361) & ~ (1<<6)); } } public CrossBow_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_crossbow(id)) return HAM_IGNORED; crossbow_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_CROSSBOW); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(crossbowclip)) return HAM_SUPERCEDE; crossbow_clip[id] = Clip; crossbow_reload[id] = 1; return HAM_IGNORED; } public CrossBow_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_crossbow(id)) return HAM_IGNORED; if(crossbow_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(crossbowreloadtime); set_pdata_int(ent, 51, crossbow_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 3); return HAM_IGNORED; } public CrossBow_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_crossbow(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_CROSSBOW); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(crossbowclip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_CROSSBOW, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; crossbow_reload[id] = 0; } return HAM_IGNORED; } public CrossBow_Fire(id) { new ent, Float:Origin[3], Float:Angles[3], Float:Velocity[3]; ent = create_entity("info_target"); engfunc(EngFunc_GetAttachment, id, 0, Origin, Angles); pev(id, pev_angles, Angles); set_pev(ent, pev_origin, Origin); set_pev(ent, pev_angles, Angles); set_pev(ent, pev_solid, 2); set_pev(ent, pev_movetype, 5); set_pev(ent, pev_classname, CROSSBOW_CLASS); set_pev(ent, pev_owner, id); engfunc(EngFunc_SetModel, ent, CrossBowModel_S); set_pev(ent, pev_mins, {-1.0, -1.0, -1.0}); set_pev(ent, pev_maxs, {1.0, 1.0, 1.0}); velocity_by_aim(id, 2000, Velocity); set_pev(ent, pev_velocity, Velocity); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BEAMFOLLOW); // TE id write_short(ent); // entity:attachment to follow write_short(crossbow_trail); // sprite index write_byte(25); // life in 0.1's write_byte(1); // line width in 0.1's write_byte(255); // r write_byte(0); // g write_byte(0); // b write_byte(200); // brightness message_end(); set_pev(ent, pev_iuser4, 0); return PLUGIN_CONTINUE; } public CrossBow_Touch(bolt, touch) { if(is_valid_ent(bolt)) { new id = pev(bolt, pev_owner); new Float:BoltOrigin[3]; pev(bolt, pev_origin, BoltOrigin); message_begin(MSG_BROADCAST ,SVC_TEMPENTITY); write_byte(TE_EXPLOSION); engfunc(EngFunc_WriteCoord, BoltOrigin[0]); engfunc(EngFunc_WriteCoord, BoltOrigin[1]); engfunc(EngFunc_WriteCoord, BoltOrigin[2]); write_short(crossbow_explode); // sprite index write_byte(30); // scale in 0.1's write_byte(30); // framerate write_byte(0); // flags message_end(); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_WORLDDECAL) engfunc(EngFunc_WriteCoord, BoltOrigin[0]) engfunc(EngFunc_WriteCoord, BoltOrigin[1]) engfunc(EngFunc_WriteCoord, BoltOrigin[2]) write_byte(random_num(46, 48)) message_end() if(is_user_connected(touch) && is_user_alive(touch) && !fm_get_user_godmode(touch) && get_user_team(touch) != get_user_team(id) && touch != id) { new Float:VictimOrigin[3] pev(touch, pev_origin, VictimOrigin); new Float:Damage = get_pcvar_float(crossbowdamage) new BloodColor = ExecuteHam(Ham_BloodColor, touch); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(VictimOrigin[0])); write_coord(floatround(VictimOrigin[1])); write_coord(floatround(VictimOrigin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } make_knockback(touch, BoltOrigin, get_pcvar_float(crossbowknockback) * Damage); if(get_user_health(touch) - Damage >= 1) { ExecuteHam(Ham_TakeDamage, touch, id, id, Damage, DMG_BLAST); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, touch); write_byte(0); write_byte(0); write_long(DMG_BLAST); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, touch); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(255); write_byte(255); write_byte(255); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, touch); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else { death_message(id, touch, "CrossBow"); } } else { static ClassName[32]; pev(touch, pev_classname, ClassName, charsmax(ClassName)); if(equal(ClassName, "func_breakable")) { if(entity_get_float(touch, EV_FL_health) <= get_pcvar_num(crossbowdamage)) { force_use(id, touch); } } } for(new Victim = 1; Victim < get_maxplayers(); Victim++) { if(is_user_connected(Victim) && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id) && Victim != id && Victim != touch) { new Float:VictimOrigin[3], Float:Distance_F, Distance; pev(Victim, pev_origin, VictimOrigin); Distance_F = get_distance_f(BoltOrigin, VictimOrigin); Distance = floatround(Distance_F); if(Distance <= get_pcvar_float(crossbowradius)) { new Float:DistanceRatio, Float:Damage; DistanceRatio = floatdiv(float(Distance), get_pcvar_float(crossbowradius)); Damage = get_pcvar_float(crossbowdamage) - floatround(floatmul(get_pcvar_float(crossbowdamage), DistanceRatio)); new BloodColor = ExecuteHam(Ham_BloodColor, Victim); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(VictimOrigin[0])); write_coord(floatround(VictimOrigin[1])); write_coord(floatround(VictimOrigin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } make_knockback(Victim, BoltOrigin, get_pcvar_float(crossbowknockback)*Damage); if(get_user_health(Victim) - Damage >= 1) { ExecuteHam(Ham_TakeDamage, Victim, id, id, Damage, DMG_BLAST); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, Victim); write_byte(0); write_byte(0); write_long(DMG_BLAST); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, Victim); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(255); write_byte(255); write_byte(255); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, Victim); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else { death_message(id, Victim, "CrossBow"); } } } } engfunc(EngFunc_RemoveEntity, bolt); } } public Hook_CrossBow(id) { engclient_cmd(id, weapon_crossbow); } public get_user_crossbow(id) { return HaveCrossBow[id]; } public set_user_crossbow(id, crossbow) { if(crossbow) { if(!HaveCrossBow[id]) { drop_primary_weapons(id); HaveCrossBow[id] = true; crossbow_reload[id] = 0; WeaponList(id, CROSSBOW_WEAPONKEY) fm_give_item(id, weapon_crossbow); new Clip = fm_get_user_weapon_entity(id, CSW_CROSSBOW); cs_set_weapon_ammo(Clip, get_pcvar_num(crossbowclip)); } } else { if(HaveCrossBow[id]) { HaveCrossBow[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //--------------------------------------| Quad Barrel |------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined QUADBARREL QuadBarrel_Init() { register_clcmd("furien30_quadbarrel", "Hook_QuadBarrel"); register_message(get_user_msgid("DeathMsg"), "QuadBarrel_DeathMsg"); register_event("CurWeapon", "QuadBarrel_ViewModel", "be", "1=1"); register_event("WeapPickup","QuadBarrel_ViewModel","b","1=19"); register_forward(FM_SetModel, "QuadBarrel_WorldModel"); register_forward(FM_UpdateClientData, "QuadBarrel_UpdateClientData", 1); register_forward(FM_PlaybackEvent, "QuadBarrel_PlaybackEvent"); register_forward(FM_CmdStart, "QuadBarrel_CmdStart"); RegisterHam(Ham_TakeDamage, "player", "QuadBarrel_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "QuadBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "QuadBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "QuadBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "QuadBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "QuadBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "QuadBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "QuadBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "QuadBarrel_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_quadbarrel, "QuadBarrel_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_quadbarrel, "QuadBarrel_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_quadbarrel, "QuadBarrel_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_quadbarrel, "QuadBarrel_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_quadbarrel, "QuadBarrel_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_quadbarrel, "QuadBarrel_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_quadbarrel, "QuadBarrel_PostFrame"); quadbarreldamage = register_cvar("furien30_quadbarrel_damage", "3"); //| QuadBarrel Damage |// quadbarrelreloadtime = register_cvar("furien30_quadbarrel_reload_time", "3.03"); //| QuadBarrel Reload Time |// quadbarrelrecoil = register_cvar("furien30_quadbarrel_recoil", "0.8"); //| QuadBarrel Recoil |// } QuadBarrel_Precache() { register_forward(FM_PrecacheEvent, "QuadBarrel_Precache_PrecacheEvent_Post", 1); precache_model(QuadBarrelModel_V); precache_model(QuadBarrelModel_P); precache_model(QuadBarrelModel_W); for(new i = 0; i < sizeof(QuadBarrel_Sound); i++) engfunc(EngFunc_PrecacheSound, QuadBarrel_Sound); for(new i = 0; i < sizeof(QuadBarrel_Generic); i++) engfunc(EngFunc_PrecacheGeneric, QuadBarrel_Generic); } QuadBarrel_Natives() { register_native("get_user_quadbarrel", "get_user_quadbarrel", 1); register_native("set_user_quadbarrel", "set_user_quadbarrel", 1); } QuadBarrel_Menu(id, const Num[] = "1") { new QuadBarrel[256]; if(get_user_flags(id) & VIPSILVER_LEVEL) formatex(QuadBarrel,sizeof(QuadBarrel)-1,"\wQuad Barrel"); else formatex(QuadBarrel,sizeof(QuadBarrel)-1,"\dQuad Barrel \w- \rOnly VIP\w"); menu_additem(Menu, QuadBarrel, Num, 0); } public QuadBarrel_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "m3") && get_user_weapon(Attacker) == CSW_QUADBARREL) { if(get_user_quadbarrel(Attacker)) set_msg_arg_string(4, "QuadBarrel"); } return PLUGIN_CONTINUE; } public QuadBarrel_ViewModel(id) { if(get_user_weapon(id) == CSW_QUADBARREL && get_user_quadbarrel(id)) { set_pev(id, pev_viewmodel2, QuadBarrelModel_V); set_pev(id, pev_weaponmodel2, QuadBarrelModel_P); } } public QuadBarrel_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new QuadBarrel = find_ent_by_owner(-1, weapon_quadbarrel, entity); if(get_user_quadbarrel(Owner) && is_valid_ent(QuadBarrel) && equal(model, "models/w_m3.mdl")) { entity_set_int(QuadBarrel, EV_INT_impulse, QUADBARREL_WEAPONKEY); HaveQuadBarrel[Owner] = false; entity_set_model(entity, QuadBarrelModel_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public QuadBarrel_UpdateClientData(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_QUADBARREL && get_user_quadbarrel(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public QuadBarrel_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != quadbarrel_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public QuadBarrel_PrecacheEvent_Post(type, const name[]) { if(equal("events/m3.sc", name)) { quadbarrel_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public QuadBarrel_CmdStart(id, uc_handle, seed) { if(is_user_alive(id) && is_user_connected(id)) { static CurButton; CurButton = get_uc(uc_handle, UC_Buttons); new Float:NextAttack = get_pdata_float(id, 83, 5); new QuadBarrel = find_ent_by_owner(-1, weapon_quadbarrel, id); if(CurButton & IN_ATTACK) { if(get_user_weapon(id) == CSW_QUADBARREL && get_user_quadbarrel(id)) { if(cs_get_weapon_ammo(QuadBarrel) > 0 && !quadbarrel_reload[id] && NextAttack <= 0.0) { emit_sound(id, CHAN_WEAPON, QuadBarrel_Sound[0], 1.0, ATTN_NORM, 0, PITCH_NORM); ExecuteHamB(Ham_Weapon_PrimaryAttack, QuadBarrel); set_weapon_anim(id, random_num(1, 2)); if(cs_get_weapon_ammo(QuadBarrel) > 0 && !quadbarrel_reload[id] && NextAttack <= 0.0) set_pdata_float(id, 83, quadbarrel_shotdelay, 5); } } } if(CurButton & IN_ATTACK2) { if(get_user_weapon(id) == CSW_QUADBARREL && get_user_quadbarrel(id)) { if(cs_get_weapon_ammo(QuadBarrel) > 0 && !quadbarrel_reload[id] && NextAttack <= 0.0) { static Ammo; Ammo = cs_get_weapon_ammo(QuadBarrel); if(Ammo >= 2) Ammo = 2; emit_sound(id, CHAN_WEAPON, QuadBarrel_Sound[0], 1.0, ATTN_NORM, 0, PITCH_NORM); for(new i = 0; i < Ammo; i++) { ExecuteHamB(Ham_Weapon_PrimaryAttack, QuadBarrel); } set_weapon_anim(id, random_num(1, 2)); if(cs_get_weapon_ammo(QuadBarrel) > 0 && !quadbarrel_reload[id] && NextAttack <= 0.0) set_pdata_float(id, 83, quadbarrel_shotdelay, 5); } } } } } public QuadBarrel_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { if(get_user_weapon(attacker) == CSW_QUADBARREL && get_user_quadbarrel(attacker)) { SetHamParamFloat(4, damage * get_pcvar_float(quadbarreldamage)); } } } public QuadBarrel_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_QUADBARREL) return HAM_IGNORED; if(!get_user_quadbarrel(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public QuadBarrel_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == QUADBARREL_WEAPONKEY) { HaveQuadBarrel[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, QUADBARREL_WEAPONKEY) } } public QuadBarrel_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_quadbarrel(Owner)) { set_pev(Owner, pev_viewmodel2, QuadBarrelModel_V); set_pev(Owner, pev_weaponmodel2, QuadBarrelModel_P); set_pdata_float(Owner, 83, 1.1, 5); set_weapon_anim(Owner, 4); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) quadbarrel_reload[Owner] = 0; } } public QuadBarrel_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if(get_user_quadbarrel(id)) { pev(id,pev_punchangle,cl_pushangle[id]); quadbarrel_clip[id] = cs_get_weapon_ammo(Weapon); } } public QuadBarrel_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373); if(quadbarrel_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_quadbarrel(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(quadbarrelrecoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, QuadBarrel_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(1,2)); } } } public QuadBarrel_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_quadbarrel(id)) return HAM_IGNORED; quadbarrel_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_QUADBARREL); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= 4) return HAM_SUPERCEDE; quadbarrel_clip[id] = Clip; quadbarrel_reload[id] = 1; return HAM_IGNORED; } public QuadBarrel_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_quadbarrel(id)) return HAM_IGNORED; if(quadbarrel_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(quadbarrelreloadtime); set_pdata_int(ent, 51, quadbarrel_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 3); return HAM_IGNORED; } public QuadBarrel_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_quadbarrel(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_QUADBARREL); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(4 - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_QUADBARREL, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; quadbarrel_reload[id] = 0; } return HAM_IGNORED; } public Hook_QuadBarrel(id) { engclient_cmd(id, weapon_quadbarrel); } public get_user_quadbarrel(id) { return HaveQuadBarrel[id]; } public set_user_quadbarrel(id, quadbarrel) { if(quadbarrel) { if(!HaveQuadBarrel[id]) { drop_primary_weapons(id); HaveQuadBarrel[id] = true; quadbarrel_reload[id] = 0; WeaponList(id, QUADBARREL_WEAPONKEY) fm_give_item(id, weapon_quadbarrel); new clip = fm_get_user_weapon_entity(id, CSW_QUADBARREL); cs_set_weapon_ammo(clip, 4); } } else { if(HaveQuadBarrel[id]) { HaveQuadBarrel[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //--------------------------------------| Dual Barrel |------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined DUALBARREL DualBarrel_Init() { register_clcmd("furien30_dualbarrel", "Hook_DualBarrel"); register_message(get_user_msgid("DeathMsg"), "DualBarrel_DeathMsg"); register_event("CurWeapon", "DualBarrel_ViewModel", "be", "1=1"); register_event("WeapPickup","DualBarrel_ViewModel","b","1=19"); register_forward(FM_SetModel, "DualBarrel_WorldModel"); register_forward(FM_UpdateClientData, "DualBarrel_UpdateClientData", 1); register_forward(FM_PlaybackEvent, "DualBarrel_PlaybackEvent"); register_forward(FM_CmdStart, "DualBarrel_CmdStart"); RegisterHam(Ham_TakeDamage, "player", "DualBarrel_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "DualBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "DualBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "DualBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "DualBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "DualBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "DualBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "DualBarrel_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "DualBarrel_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_dualbarrel, "DualBarrel_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_dualbarrel, "DualBarrel_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_dualbarrel, "DualBarrel_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_dualbarrel, "DualBarrel_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_dualbarrel, "DualBarrel_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_dualbarrel, "DualBarrel_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_dualbarrel, "DualBarrel_PostFrame"); dualbarreldamage = register_cvar("furien30_dualbarrel_damage", "3"); //| DualBarrel Damage |// dualbarrelreloadtime = register_cvar("furien30_dualbarrel_reload_time", "1.67"); //| DualBarrel Reload Time |// dualbarrelrecoil = register_cvar("furien30_dualbarrel_recoil", "0.8"); //| DualBarrel Recoil |// } DualBarrel_Precache() { register_forward(FM_PrecacheEvent, "DualBarrel_Precache_PrecacheEvent_Post", 1); precache_model(DualBarrelModel_V); precache_model(DualBarrelModel_P); precache_model(DualBarrelModel_W); for(new i = 0; i < sizeof(DualBarrel_Sound); i++) engfunc(EngFunc_PrecacheSound, DualBarrel_Sound[i]); for(new i = 0; i < sizeof(DualBarrel_Generic); i++) engfunc(EngFunc_PrecacheGeneric, DualBarrel_Generic[i]); } DualBarrel_Natives() { register_native("get_user_dualbarrel", "get_user_dualbarrel", 1); register_native("set_user_dualbarrel", "set_user_dualbarrel", 1); } DualBarrel_Menu( const Num[] = "1") { new DualBarrel[256]; formatex(DualBarrel,sizeof(DualBarrel)-1,"\wDual Barrel"); menu_additem(Menu, DualBarrel, Num, 0); } public DualBarrel_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "m3") && get_user_weapon(Attacker) == CSW_DUALBARREL) { if(get_user_dualbarrel(Attacker)) set_msg_arg_string(4, "DualBarrel"); } return PLUGIN_CONTINUE; } public DualBarrel_ViewModel(id) { if(get_user_weapon(id) == CSW_DUALBARREL && get_user_dualbarrel(id)) { set_pev(id, pev_viewmodel2, DualBarrelModel_V); set_pev(id, pev_weaponmodel2, DualBarrelModel_P); } } public DualBarrel_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new DualBarrel = find_ent_by_owner(-1, weapon_dualbarrel, entity); if(get_user_dualbarrel(Owner) && is_valid_ent(DualBarrel) && equal(model, "models/w_m3.mdl")) { entity_set_int(DualBarrel, EV_INT_impulse, DUALBARREL_WEAPONKEY); HaveDualBarrel[Owner] = false; entity_set_model(entity, DualBarrelModel_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public DualBarrel_UpdateClientData(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_DUALBARREL && get_user_dualbarrel(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public DualBarrel_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != dualbarrel_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public DualBarrel_PrecacheEvent_Post(type, const name[]) { if(equal("events/m3.sc", name)) { dualbarrel_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public DualBarrel_CmdStart(id, uc_handle, seed) { if(is_user_alive(id) && is_user_connected(id)) { static CurButton; CurButton = get_uc(uc_handle, UC_Buttons); new Float:NextAttack = get_pdata_float(id, 83, 5); new DualBarrel = find_ent_by_owner(-1, weapon_dualbarrel, id); if(CurButton & IN_ATTACK) { if(get_user_weapon(id) == CSW_DUALBARREL && get_user_dualbarrel(id)) { if(cs_get_weapon_ammo(DualBarrel) > 0 && !dualbarrel_reload[id] && NextAttack <= 0.0) { emit_sound(id, CHAN_WEAPON, DualBarrel_Sound[0], 1.0, ATTN_NORM, 0, PITCH_NORM); ExecuteHamB(Ham_Weapon_PrimaryAttack, DualBarrel); set_weapon_anim(id, random_num(1, 2)); if(cs_get_weapon_ammo(DualBarrel) > 0 && !dualbarrel_reload[id] && NextAttack <= 0.0) set_pdata_float(id, 83, dualbarrel_shotdelay, 5); } } } if(CurButton & IN_ATTACK2) { if(get_user_weapon(id) == CSW_DUALBARREL && get_user_dualbarrel(id)) { if(cs_get_weapon_ammo(DualBarrel) > 0 && !dualbarrel_reload[id] && NextAttack <= 0.0) { static Ammo; Ammo = cs_get_weapon_ammo(DualBarrel); emit_sound(id, CHAN_WEAPON, DualBarrel_Sound[0], 1.0, ATTN_NORM, 0, PITCH_NORM); for(new i = 0; i < Ammo; i++) { ExecuteHamB(Ham_Weapon_PrimaryAttack, DualBarrel); } set_weapon_anim(id, random_num(1, 2)); if(cs_get_weapon_ammo(DualBarrel) > 0 && !dualbarrel_reload[id] && NextAttack <= 0.0) set_pdata_float(id, 83, dualbarrel_shotdelay, 5); } } } } } public DualBarrel_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { if(get_user_weapon(attacker) == CSW_DUALBARREL && get_user_dualbarrel(attacker)) { SetHamParamFloat(4, damage * get_pcvar_float(dualbarreldamage)); } } } public DualBarrel_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_DUALBARREL) return HAM_IGNORED; if(!get_user_dualbarrel(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public DualBarrel_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == DUALBARREL_WEAPONKEY) { HaveDualBarrel[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, DUALBARREL_WEAPONKEY) } } public DualBarrel_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_dualbarrel(Owner)) { set_pev(Owner, pev_viewmodel2, DualBarrelModel_V); set_pev(Owner, pev_weaponmodel2, DualBarrelModel_P); set_pdata_float(Owner, 83, 1.1, 5); set_weapon_anim(Owner, 4); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) dualbarrel_reload[Owner] = 0; } } public DualBarrel_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if(get_user_dualbarrel(id)) { pev(id,pev_punchangle,cl_pushangle[id]); dualbarrel_clip[id] = cs_get_weapon_ammo(Weapon); } } public DualBarrel_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373); if(dualbarrel_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_dualbarrel(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(dualbarrelrecoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, DualBarrel_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(1,2)); } } } public DualBarrel_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_dualbarrel(id)) return HAM_IGNORED; dualbarrel_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_DUALBARREL); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= 2) return HAM_SUPERCEDE; dualbarrel_clip[id] = Clip; dualbarrel_reload[id] = 1; return HAM_IGNORED; } public DualBarrel_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_dualbarrel(id)) return HAM_IGNORED; if(dualbarrel_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(dualbarrelreloadtime); set_pdata_int(ent, 51, dualbarrel_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 3); return HAM_IGNORED; } public DualBarrel_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_dualbarrel(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_DUALBARREL); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(2 - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_DUALBARREL, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; dualbarrel_reload[id] = 0; } return HAM_IGNORED; } public Hook_DualBarrel(id) { engclient_cmd(id, weapon_dualbarrel); } public get_user_dualbarrel(id) { return HaveDualBarrel[id]; } public set_user_dualbarrel(id, dualbarrel) { if(dualbarrel) { if(!HaveDualBarrel[id]) { drop_primary_weapons(id); HaveDualBarrel[id] = true; dualbarrel_reload[id] = 0; WeaponList(id, DUALBARREL_WEAPONKEY) fm_give_item(id, weapon_dualbarrel); new clip = fm_get_user_weapon_entity(id, CSW_DUALBARREL); cs_set_weapon_ammo(clip, 2); } } else { if(HaveDualBarrel[id]) { HaveDualBarrel[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //---------------------------------------| Ethereal |-------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined ETHEREAL Ethereal_Init() { register_clcmd("furien30_ethereal", "Hook_Ethereal"); register_event("CurWeapon", "Ethereal_ViewModel", "be", "1=1"); register_event("WeapPickup","Ethereal_ViewModel","b","1=19"); register_forward(FM_SetModel, "Ethereal_WorldModel"); register_forward(FM_UpdateClientData, "Ethereal_UpdateClientData_Post", 1); register_forward(FM_CmdStart, "Ethereal_CmdStart"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_ethereal, "Ethereal_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_ethereal, "Ethereal_Deploy_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_ethereal, "Ethereal_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_ethereal, "Ethereal_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_ethereal, "Ethereal_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_ethereal, "Ethereal_PostFrame"); etherealdamage = register_cvar("furien30_ethereal_damage", "60"); //| Ethereal Damage |// etherealclip = register_cvar("furien30_ethereal_clip", "45"); //| Ethereal Clip |// etherealreloadtime = register_cvar("furien30_ethereal_reload_time", "3.03"); //| Ethereal Reload Time |// etherealknockback = register_cvar("furien30_ethereal_knockback", "3"); //| Ethereal KnockBack |// } Ethereal_Precache() { ethereal_beam = precache_model("sprites/zbeam4.spr"); ethereal_explode = precache_model("sprites/xspark4.spr"); precache_model(EtherealMuzzleFlash); precache_model(EtherealModel_V); precache_model(EtherealModel_P); precache_model(EtherealModel_W); for(new i = 0; i < sizeof(Ethereal_Sound); i++) engfunc(EngFunc_PrecacheSound, Ethereal_Sound[i]); for(new i = 0; i < sizeof(Ethereal_Generic); i++) engfunc(EngFunc_PrecacheGeneric, Ethereal_Generic[i]); } Ethereal_Natives() { register_native("get_user_ethereal", "get_user_ethereal", 1); register_native("set_user_ethereal", "set_user_ethereal", 1); } Ethereal_Menu(id, const Num[] = "1") { new Ethereal[256]; if(get_user_flags(id) & VIPGOLD_LEVEL) formatex(Ethereal,sizeof(Ethereal)-1,"\wEthereal"); else formatex(Ethereal,sizeof(Ethereal)-1,"\dEthereal - \rOnly VIP"); menu_additem(Menu, Ethereal, Num, 0); } public Ethereal_ViewModel(id) { if(get_user_weapon(id) == CSW_ETHEREAL && get_user_ethereal(id)) { set_pev(id, pev_viewmodel2, EtherealModel_V); set_pev(id, pev_weaponmodel2, EtherealModel_P); } } public Ethereal_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new Ethereal = find_ent_by_owner(-1, weapon_ethereal, entity); if(get_user_ethereal(Owner) && is_valid_ent(Ethereal) && equal(model, "models/w_galil.mdl")) { entity_set_int(Ethereal, EV_INT_impulse, ETHEREAL_WEAPONKEY); HaveEthereal[Owner] = false; entity_set_model(entity, EtherealModel_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public Ethereal_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_ETHEREAL && get_user_ethereal(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public Ethereal_CmdStart(id, uc_handle, seed) { if(is_user_alive(id) && is_user_connected(id)) { static CurButton; CurButton = get_uc(uc_handle, UC_Buttons); new Float:NextAttack = get_pdata_float(id, 83, 5); if(CurButton & IN_ATTACK) { if(get_user_weapon(id) == CSW_ETHEREAL && get_user_ethereal(id)) { static Ethereal; Ethereal = fm_find_ent_by_owner(-1, weapon_ethereal, id); if(cs_get_weapon_ammo(Ethereal) > 0 && !ethereal_reload[id] && NextAttack <= 0.0) { set_weapon_anim(id, random_num(3,5)); emit_sound(id, CHAN_WEAPON,Ethereal_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); Ethereal_Fire(id); static Float:PunchAngles[3]; PunchAngles[0] = random_float(-2.0, -3.0); PunchAngles[1] = 0.0; PunchAngles[2] = 0.0; set_pev(id, pev_punchangle, PunchAngles); cs_set_weapon_ammo(Ethereal, cs_get_weapon_ammo(Ethereal) - 1); if(cs_get_weapon_ammo(Ethereal) > 0 && !ethereal_reload[id] && NextAttack <= 0.0) set_pdata_float(id, 83, ethereal_shotdelay, 5); } CurButton &= ~IN_ATTACK; set_uc(uc_handle, UC_Buttons, CurButton); } } } } public Ethereal_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == ETHEREAL_WEAPONKEY) { HaveEthereal[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, ETHEREAL_WEAPONKEY) } } public Ethereal_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if(get_user_ethereal(id)) { new Muzzle = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite")); new Float:Origin[3]; pev(id, pev_origin, Origin); entity_set_origin(Muzzle, Origin); entity_set_model(Muzzle, EtherealMuzzleFlash); entity_set_int(Muzzle, EV_INT_solid, SOLID_NOT); entity_set_int(Muzzle, EV_INT_movetype, MOVETYPE_NOCLIP); entity_set_string(Muzzle, EV_SZ_classname, "muzzle_et"); entity_set_float(Muzzle, EV_FL_animtime, get_gametime()); entity_set_float(Muzzle, EV_FL_framerate, 50.0); set_pev(Muzzle, pev_scale, 0.1); set_pev(Muzzle, pev_spawnflags, SF_SPRITE_ONCE); set_pev(Muzzle, pev_rendermode, kRenderTransAdd); set_pev(Muzzle, pev_renderamt, 255.0); set_pev(Muzzle, pev_skin, id); set_pev(Muzzle, pev_body, 1); set_pev(Muzzle, pev_aiment, id); entity_set_float(Muzzle, EV_FL_nextthink, get_gametime() + 3.0); DispatchSpawn(Muzzle); } } public Ethereal_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_ethereal(Owner)) { set_pev(Owner, pev_viewmodel2, EtherealModel_V); set_pev(Owner, pev_weaponmodel2, EtherealModel_P); set_pdata_float(Owner, 83, 1.36, 5); set_weapon_anim(Owner, 2); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) ethereal_reload[Owner] = 0; } } public Ethereal_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_ethereal(id)) return HAM_IGNORED; ethereal_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_ETHEREAL); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(etherealclip)) return HAM_SUPERCEDE; ethereal_clip[id] = Clip; ethereal_reload[id] = 1; return HAM_IGNORED; } public Ethereal_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_ethereal(id)) return HAM_IGNORED; if(ethereal_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(etherealreloadtime); set_pdata_int(ent, 51, ethereal_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 1); return HAM_IGNORED; } public Ethereal_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_ethereal(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_ETHEREAL); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(etherealclip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_ETHEREAL, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; ethereal_reload[id] = 0; } return HAM_IGNORED; } public Ethereal_Fire(id) { emit_sound(id, CHAN_WEAPON, Ethereal_Sound[1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); static Victim, Body, EndOrigin[3], BeamOrigin[3]; get_user_origin(id, BeamOrigin, 3) ; get_user_origin(id, EndOrigin, 3); message_begin(MSG_BROADCAST,SVC_TEMPENTITY); write_byte(TE_BEAMENTPOINT); write_short(id | 0x1000); write_coord(BeamOrigin[0]); // Start X write_coord(BeamOrigin[1]); // Start Y write_coord(BeamOrigin[2]); // Start Z write_short(ethereal_beam); // Sprite write_byte(0); // Start frame write_byte(1); // Frame rate write_byte(1); // Life write_byte(25); // Line width write_byte(0); // Noise write_byte(150); // Red write_byte(0); // Green write_byte(0); // Blue write_byte(150); // Brightness write_byte(0); // Scroll speed message_end(); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(3); write_coord(EndOrigin[0]); write_coord(EndOrigin[1]); write_coord(EndOrigin[2]); write_short(ethereal_explode); write_byte(10); write_byte(15); write_byte(4); message_end(); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_WORLDDECAL) engfunc(EngFunc_WriteCoord, EndOrigin[0]) engfunc(EngFunc_WriteCoord, EndOrigin[1]) engfunc(EngFunc_WriteCoord, EndOrigin[2]) write_byte(random_num(46, 48)) message_end() get_user_aiming(id, Victim, Body, 999999); if(is_user_connected(Victim) && pev_valid(Victim)) { if(!fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id) && Victim != id) { new Float:Damage = float(get_damage_body(Body, get_pcvar_float(etherealdamage))); new Float:VictimOrigin[3]; VictimOrigin[0] = float(EndOrigin[0]); VictimOrigin[1] = float(EndOrigin[1]); VictimOrigin[2] = float(EndOrigin[2]); new BloodColor = ExecuteHam(Ham_BloodColor, Victim); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(VictimOrigin[0])); write_coord(floatround(VictimOrigin[1])); write_coord(floatround(VictimOrigin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } make_knockback(Victim, VictimOrigin, get_pcvar_float(etherealknockback)*get_pcvar_float(etherealdamage)); if(get_user_health(Victim) - get_pcvar_float(etherealdamage) >= 1 && is_user_alive(Victim)) { ExecuteHam(Ham_TakeDamage, Victim, id, id, Damage, DMG_NERVEGAS); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, Victim); write_byte(0); write_byte(0); write_long(DMG_NERVEGAS); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, Victim); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(200); write_byte(0); write_byte(0); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, Victim); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else if(get_user_health(Victim) - get_pcvar_float(etherealdamage) < 1 && is_user_alive(Victim)) { death_message(id, Victim, "Ethereal"); } } } else { static ClassName[32]; pev(Victim, pev_classname, ClassName, charsmax(ClassName)); if(equal(ClassName, "func_breakable")) { if(entity_get_float(Victim, EV_FL_health) <= get_pcvar_num(etherealdamage)) { force_use(id, Victim); } } } } public Hook_Ethereal(id) { engclient_cmd(id, weapon_ethereal); } public get_user_ethereal(id) { return HaveEthereal[id]; } public set_user_ethereal(id, ethereal) { if(ethereal) { if(!HaveEthereal[id]) { drop_primary_weapons(id); HaveEthereal[id] = true; ethereal_reload[id] = 0; WeaponList(id, ETHEREAL_WEAPONKEY) fm_give_item(id, weapon_ethereal); new Clip = fm_get_user_weapon_entity(id, CSW_ETHEREAL); cs_set_weapon_ammo(Clip, get_pcvar_num(etherealclip)); } } else { if(HaveEthereal[id]) { HaveEthereal[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //----------------------------------------| K1ases |-------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined K1ASES K1ases_Init() { register_clcmd("furien30_k1ases", "Hook_K1ases"); register_message(get_user_msgid("DeathMsg"), "K1ases_DeathMsg"); register_event("CurWeapon", "K1ases_ViewModel", "be", "1=1"); register_event("WeapPickup","K1ases_ViewModel","b","1=19"); register_forward(FM_SetModel, "K1ases_WorldModel"); register_forward(FM_UpdateClientData, "K1ases_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "K1ases_PlaybackEvent"); register_forward(FM_CmdStart, "K1ases_CmdStart"); RegisterHam(Ham_TakeDamage, "player", "K1ases_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "K1ases_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "K1ases_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "K1ases_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "K1ases_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "K1ases_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "K1ases_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "K1ases_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "K1ases_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_k1ases, "K1ases_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_k1ases, "K1ases_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_k1ases, "K1ases_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_k1ases, "K1ases_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_k1ases, "K1ases_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_k1ases, "K1ases_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_k1ases, "K1ases_PostFrame"); k1asesdamage = register_cvar("furien30_k1ases_damage", "45"); //| K1ases Damage |// k1asesclip = register_cvar("furien30_k1ases_clip", "40"); //| K1ases Clip |// k1asesreloadtime = register_cvar("furien30_k1ases_reload_time", "2.57"); //| K1ases Reload Time |// k1asesrecoil = register_cvar("furien30_k1ases_recoil", "0.8"); //| K1ases Recoil |// k1asesabilitydamage = register_cvar("furien30_k1ases_ability_damage", "100.0"); //| K1ases Ability Damage |// k1asesabilitydelay = register_cvar("furien30_k1ases_ability_delay", "5.0"); //| K1ases Ability Delay |// k1asesabilityradius = register_cvar("furien30_k1ases_ability_radius", "100.0"); //| K1ases Ability Radius |// } K1ases_Precache() { register_forward(FM_PrecacheEvent, "K1ases_PrecacheEvent_Post", 1); k1ases_explode = precache_model("sprites/furien30_weapons/k1ases_ability.spr"); precache_model(K1asesModel_V); precache_model(K1asesModel_P); precache_model(K1asesModel_W); for(new i = 0; i < sizeof(K1ases_Sound); i++) engfunc(EngFunc_PrecacheSound, K1ases_Sound[i]); for(new i = 0; i < sizeof(K1ases_Generic); i++) engfunc(EngFunc_PrecacheGeneric, K1ases_Generic[i]); } K1ases_Natives() { register_native("get_user_k1ases", "get_user_k1ases", 1); register_native("set_user_k1ases", "set_user_k1ases", 1); } K1ases_Menu(id, const Num[] = "1") { new K1ases[256]; if(get_user_flags(id) & VIPSILVER_LEVEL) formatex(K1ases,sizeof(K1ases)-1,"\wK1ases"); else formatex(K1ases,sizeof(K1ases)-1,"\dK1ases - \rOnly VIP"); menu_additem(Menu, K1ases, Num, 0); } public K1ases_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "mp5navy") && get_user_weapon(Attacker) == CSW_K1ASES) { if(get_user_k1ases(Attacker)) set_msg_arg_string(4, "K1ases"); } return PLUGIN_CONTINUE; } public K1ases_ViewModel(id) { if(get_user_weapon(id) == CSW_K1ASES && get_user_k1ases(id)) { set_pev(id, pev_viewmodel2, K1asesModel_V); set_pev(id, pev_weaponmodel2, K1asesModel_P); } } public K1ases_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new K1ases = find_ent_by_owner(-1, weapon_k1ases, entity); if(get_user_k1ases(Owner) && is_valid_ent(K1ases) && equal(model, "models/w_mp5.mdl")) { entity_set_int(K1ases, EV_INT_impulse, K1ASES_WEAPONKEY); HaveK1ases[Owner] = false; entity_set_model(entity, K1asesModel_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public K1ases_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_K1ASES && get_user_k1ases(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public K1ases_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != k1ases_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public K1ases_PrecacheEvent_Post(type, const name[]) { if(equal("events/mp5navy.sc", name)) { k1ases_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public K1ases_CmdStart(id, uc_handle, seed) { if(is_user_alive(id) && is_user_connected(id)) { static CurButton; CurButton = get_uc(uc_handle, UC_Buttons); new Float:NextAttack = get_pdata_float(id, 83, 5); if(CurButton & IN_ATTACK2) { if(get_user_weapon(id) == CSW_K1ASES && get_user_k1ases(id) && NextAttack <= 0.0) { K1ases_Ability(id); CurButton &= ~IN_ATTACK2; set_uc(uc_handle, UC_Buttons, CurButton); } } } } public K1ases_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_K1ASES && get_user_k1ases(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(k1asesdamage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(k1asesdamage)); } } } } public K1ases_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_K1ASES) return HAM_IGNORED; if(!get_user_k1ases(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public K1ases_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == K1ASES_WEAPONKEY) { HaveK1ases[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, K1ASES_WEAPONKEY) } } public K1ases_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_k1ases(Owner)) { set_pev(Owner, pev_viewmodel2, K1asesModel_V); set_pev(Owner, pev_weaponmodel2, K1asesModel_P); set_pdata_float(Owner, 83, 1.2, 5); set_weapon_anim(Owner, 2); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) k1ases_reload[Owner] = 0; } } public K1ases_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if(get_user_k1ases(id)) { pev(id,pev_punchangle,cl_pushangle[id]); k1ases_clip[id] = cs_get_weapon_ammo(Weapon); } } public K1ases_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(k1ases_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_k1ases(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(k1asesrecoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, K1ases_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(3,5)); } } } public K1ases_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_k1ases(id)) return HAM_IGNORED; k1ases_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_K1ASES); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(k1asesclip)) return HAM_SUPERCEDE; k1ases_clip[id] = Clip; k1ases_reload[id] = 1; return HAM_IGNORED; } public K1ases_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_k1ases(id)) return HAM_IGNORED; if(k1ases_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(k1asesreloadtime); set_pdata_int(ent, 51, k1ases_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 1); return HAM_IGNORED; } public K1ases_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_k1ases(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_K1ASES); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(k1asesclip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_K1ASES, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; k1ases_reload[id] = 0; } return HAM_IGNORED; } public K1ases_Ability(id) { if(is_user_alive(id) && !K1ases_Ability_Delay[id]) { set_pdata_float(id, 83, 0.83, 5); set_weapon_anim(id, 6); new AimOrigin[3]; get_user_origin(id, AimOrigin, 3); message_begin(MSG_BROADCAST,SVC_TEMPENTITY); write_byte(TE_EXPLOSION); // TE_EXPLOSION write_coord(AimOrigin[0]); // origin x write_coord(AimOrigin[1]); // origin y write_coord(AimOrigin[2]); // origin z write_short(k1ases_explode); // sprites write_byte(40); // scale in 0.1's write_byte(30); // framerate write_byte(14); // flags message_end(); // message end new Float:AimOrigin2[3]; static Victim; Victim = -1; AimOrigin2[0] = float(AimOrigin[0]); AimOrigin2[1] = float(AimOrigin[1]); AimOrigin2[2] = float(AimOrigin[2]); while((Victim = find_ent_in_sphere(Victim, AimOrigin2, get_pcvar_float(k1asesabilityradius))) != 0) { if(is_user_connected(Victim) && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id) && Victim != id) { new BloodColor = ExecuteHam(Ham_BloodColor, Victim); if(BloodColor != -1) { new Amount = floatround(get_pcvar_float(k1asesabilitydamage)); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(AimOrigin2[0])); write_coord(floatround(AimOrigin2[1])); write_coord(floatround(AimOrigin2[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } if(get_user_health(Victim) - get_pcvar_float(k1asesabilitydamage) >= 1) { ExecuteHam(Ham_TakeDamage, Victim, id, id, get_pcvar_float(k1asesabilitydamage), DMG_BLAST); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, Victim); write_byte(0); write_byte(0); write_long(DMG_NERVEGAS); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, Victim); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(200); write_byte(100); write_byte(0); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, Victim); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else { death_message(id, Victim, "K1ases Ability"); } } } K1ases_Ability_Delay[id] = get_pcvar_num(k1asesabilitydelay); emit_sound(id, CHAN_WEAPON, K1ases_Sound[1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); if(K1ases_Ability_Delay[id]) { new Message[256]; formatex(Message,sizeof(Message)-1,"Puterea iti va reveni in: %d secund%s",K1ases_Ability_Delay[id], K1ases_Ability_Delay[id] == 1 ? "e" : "a"); HudMessage(id, Message, 0, 0, 200, 0.05, 0.50, _, _, 1.0); set_task(1.0, "K1asesAbilityDelay", id); } } } public K1asesAbilityDelay(id) { if(!is_user_alive(id) || get_user_team(id) != 2) { K1ases_Ability_Delay[id] = 0; } else if(K1ases_Ability_Delay[id] > 1) { K1ases_Ability_Delay[id]--; new Message[256]; formatex(Message,sizeof(Message)-1,"Puterea iti va reveni in: %d secund%s",K1ases_Ability_Delay[id], K1ases_Ability_Delay[id] == 1 ? "e" : "a"); HudMessage(id, Message, 0, 0, 200, 0.05, 0.50, _, _, 1.0); set_task(1.0, "K1asesAbilityDelay", id); } else if(K1ases_Ability_Delay[id] <= 1) { new Message[256]; formatex(Message,sizeof(Message)-1,"Ti-a revenit puterea"); HudMessage(id, Message, 0, 0, 200, 0.05, 0.50, _, _, 1.0); K1ases_Ability_Delay[id] = 0; } } public Hook_K1ases(id) { engclient_cmd(id, weapon_k1ases); } public get_user_k1ases(id) { return HaveK1ases[id]; } public set_user_k1ases(id, k1ases) { if(k1ases) { if(!HaveK1ases[id]) { drop_primary_weapons(id); HaveK1ases[id] = true; k1ases_reload[id] = 0; WeaponList(id, K1ASES_WEAPONKEY) fm_give_item(id, weapon_k1ases); new Clip = fm_get_user_weapon_entity(id, CSW_K1ASES); cs_set_weapon_ammo(Clip, get_pcvar_num(k1asesclip)); } } else { if(HaveK1ases[id]) { HaveK1ases[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //-----------------------------------------| F2000 |-------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined F2000 F2000_Init() { register_clcmd("furien30_f2000", "Hook_F2000"); register_message(get_user_msgid("DeathMsg"), "F2000_DeathMsg"); register_event("CurWeapon", "F2000_ViewModel", "be", "1=1"); register_event("WeapPickup","F2000_ViewModel","b","1=19"); register_forward(FM_SetModel, "F2000_WorldModel"); register_forward(FM_UpdateClientData, "F2000_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "F2000_PlaybackEvent"); register_forward(FM_CmdStart, "F2000_CmdStart"); RegisterHam(Ham_TakeDamage, "player", "F2000_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "F2000_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "F2000_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "F2000_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "F2000_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "F2000_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "F2000_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "F2000_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "F2000_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_f2000, "F2000_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_f2000, "F2000_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_f2000, "F2000_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_f2000, "F2000_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_f2000, "F2000_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_f2000, "F2000_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_f2000, "F2000_PostFrame"); f2000damage = register_cvar("furien30_f2000_damage", "50"); //| F2000 Damage |// f2000clip = register_cvar("furien30_f2000_clip", "40"); //| F2000 Clip |// f2000reloadtime = register_cvar("furien30_f2000_reload_time", "3.3"); //| F2000 Reload Time |// f2000recoil = register_cvar("furien30_f2000_recoil", "0.8"); //| F2000 Recoil |// } F2000_Precache() { register_forward(FM_PrecacheEvent, "F2000_PrecacheEvent_Post", 1); precache_model(F2000Model_V); precache_model(F2000Model_P); precache_model(F2000Model_W); precache_model(F2000Model_S); for(new i = 0; i < sizeof(F2000_Sound); i++) engfunc(EngFunc_PrecacheSound, F2000_Sound[i]); for(new i = 0; i < sizeof(F2000_Generic); i++) engfunc(EngFunc_PrecacheGeneric, F2000_Generic[i]); } F2000_Natives() { register_native("get_user_f2000", "get_user_f2000", 1); register_native("set_user_f2000", "set_user_f2000", 1); } F2000_Menu(id, const Num[] = "1") { new _F2000[256]; if(get_user_flags(id) & VIPSILVER_LEVEL) formatex(_F2000,sizeof(_F2000)-1,"\wF2000"); else formatex(_F2000,sizeof(_F2000)-1,"\dF2000 \w- \rOnly VIP"); menu_additem(Menu, _F2000, Num, 0); } public F2000_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "aug") && get_user_weapon(Attacker) == CSW_F2000) { if(get_user_f2000(Attacker)) set_msg_arg_string(4, "F2000"); } return PLUGIN_CONTINUE; } public F2000_ViewModel(id) { if(get_user_weapon(id) == CSW_F2000 && get_user_f2000(id)) { if(cs_get_user_zoom(id) == CS_SET_AUGSG552_ZOOM) { set_pev(id, pev_viewmodel2, F2000Model_S); } else { set_pev(id, pev_viewmodel2, F2000Model_V); } set_pev(id, pev_weaponmodel2, F2000Model_P); } } public F2000_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new _F2000 = find_ent_by_owner(-1, weapon_f2000, entity); if(get_user_f2000(Owner) && is_valid_ent(_F2000) && equal(model, "models/w_aug.mdl")) { entity_set_int(_F2000, EV_INT_impulse, F2000_WEAPONKEY); HaveF2000[Owner] = false; entity_set_model(entity, F2000Model_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public F2000_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_F2000 && get_user_f2000(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public F2000_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != f2000_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public F2000_PrecacheEvent_Post(type, const name[]) { if(equal("events/aug.sc", name)) { f2000_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public F2000_CmdStart(id, uc_handle, seed) { if(is_user_alive(id) && is_user_connected(id)) { static CurButton; CurButton = get_uc(uc_handle, UC_Buttons); new Float:NextAttack = get_pdata_float(id, 83, 5); if(CurButton & IN_ATTACK2 && !(pev(id, pev_oldbuttons) & IN_ATTACK2)) { if(get_user_weapon(id) == CSW_F2000 && get_user_f2000(id) && NextAttack <= 0.0) { if(cs_get_user_zoom(id) == CS_SET_AUGSG552_ZOOM) set_pev(id, pev_viewmodel2, F2000Model_S); else set_pev(id, pev_viewmodel2, F2000Model_V); } } } } public F2000_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_F2000 && get_user_f2000(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(f2000damage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(f2000damage)); } } } } public F2000_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_F2000) return HAM_IGNORED; if(!get_user_f2000(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public F2000_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == F2000_WEAPONKEY) { HaveF2000[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, F2000_WEAPONKEY) } } public F2000_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_f2000(Owner)) { set_pev(Owner, pev_viewmodel2, F2000Model_V); set_pev(Owner, pev_weaponmodel2, F2000Model_P); set_pdata_float(Owner, 83, 1.0, 5); set_weapon_anim(Owner, 2); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) f2000_reload[Owner] = 0; } } public F2000_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if(get_user_f2000(id)) { pev(id,pev_punchangle,cl_pushangle[id]); f2000_clip[id] = cs_get_weapon_ammo(Weapon); } } public F2000_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(f2000_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_f2000(id)) { set_pdata_int(ActiveItem, 57, Shell, 4); set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; if(get_user_f2000(id) && cs_get_user_zoom(id) == CS_SET_AUGSG552_ZOOM) { pev(id, pev_punchangle, Push); xs_vec_sub(Push, cl_pushangle[id], Push); xs_vec_mul_scalar(Push, 0.0, Push); xs_vec_add(Push, cl_pushangle[id], Push); set_pev(id, pev_punchangle, Push); } else { pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(f2000recoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); } emit_sound(id, CHAN_WEAPON, F2000_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(3,5)); } } } public F2000_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_f2000(id)) return HAM_IGNORED; f2000_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_F2000); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(f2000clip)) return HAM_SUPERCEDE; f2000_clip[id] = Clip; f2000_reload[id] = 1; set_pev(id, pev_viewmodel2, F2000Model_V); return HAM_IGNORED; } public F2000_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_f2000(id)) return HAM_IGNORED; if(f2000_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(f2000reloadtime); set_pdata_int(ent, 51, f2000_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 1); return HAM_IGNORED; } public F2000_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_f2000(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_F2000); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(f2000clip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_F2000, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; f2000_reload[id] = 0; } return HAM_IGNORED; } public Hook_F2000(id) { engclient_cmd(id, weapon_f2000); } public get_user_f2000(id) { return HaveF2000[id]; } public set_user_f2000(id, f2000) { if(f2000) { if(!HaveF2000[id]) { drop_primary_weapons(id); HaveF2000[id] = true; f2000_reload[id] = 0; WeaponList(id, F2000_WEAPONKEY) fm_give_item(id, weapon_f2000); new Clip = fm_get_user_weapon_entity(id, CSW_F2000); cs_set_weapon_ammo(Clip, get_pcvar_num(f2000clip)); } } else { if(HaveF2000[id]) { HaveF2000[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //---------------------------------------| HK416 |-------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined HK416 HK416_Init() { register_clcmd("furien30_hk416", "Hook_HK416"); register_message(get_user_msgid("DeathMsg"), "HK416_DeathMsg"); register_event("CurWeapon", "HK416_ViewModel", "be", "1=1"); register_event("WeapPickup","HK416_ViewModel","b","1=19"); register_forward(FM_SetModel, "HK416_WorldModel"); register_forward(FM_UpdateClientData, "HK416_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "HK416_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "HK416_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "HK416_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "HK416_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "HK416_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "HK416_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "HK416_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "HK416_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "HK416_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "HK416_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_hk416, "HK416_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_hk416, "HK416_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_hk416, "HK416_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_hk416, "HK416_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_hk416, "HK416_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_hk416, "HK416_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_hk416, "HK416_PostFrame"); hk416damage = register_cvar("furien30_hk416_damage", "50"); //| HK416 Damage |// hk416clip = register_cvar("furien30_hk416_clip", "35"); //| HK416 Clip |// hk416reloadtime = register_cvar("furien30_hk416_reload_time", "3.08"); //| HK416 Reload Time |// hk416recoil = register_cvar("furien30_hk416_recoil", "0.8"); //| HK416 Recoil |// } HK416_Precache() { register_forward(FM_PrecacheEvent, "HK416_PrecacheEvent_Post", 1); precache_model(HK416Model_V); precache_model(HK416Model_P); precache_model(HK416Model_W); for(new i = 0; i < sizeof(HK416_Sound); i++) engfunc(EngFunc_PrecacheSound, HK416_Sound[i]); for(new i = 0; i < sizeof(HK416_Generic); i++) engfunc(EngFunc_PrecacheGeneric, HK416_Generic[i]); } HK416_Natives() { register_native("get_user_hk416", "get_user_hk416", 1); register_native("set_user_hk416", "set_user_hk416", 1); } HK416_Menu(const Num[] = "1") { new _HK416[256]; formatex(_HK416,sizeof(_HK416)-1,"\wHK416"); menu_additem(Menu, _HK416, Num, 0); } public HK416_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "m4a1") && get_user_weapon(Attacker) == CSW_HK416) { if(get_user_hk416(Attacker)) set_msg_arg_string(4, "HK416"); } return PLUGIN_CONTINUE; } public HK416_ViewModel(id) { if(get_user_weapon(id) == CSW_HK416 && get_user_hk416(id)) { set_pev(id, pev_viewmodel2, HK416Model_V); set_pev(id, pev_weaponmodel2, HK416Model_P); } } public HK416_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new _HK416 = find_ent_by_owner(-1, weapon_hk416, entity); if(get_user_hk416(Owner) && is_valid_ent(_HK416) && equal(model, "models/w_m4a1.mdl")) { entity_set_int(_HK416, EV_INT_impulse, HK416_WEAPONKEY); HaveHK416[Owner] = false; entity_set_model(entity, HK416Model_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public HK416_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_HK416 && get_user_hk416(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public HK416_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != hk416_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public HK416_PrecacheEvent_Post(type, const name[]) { if (equal("events/m4a1.sc", name)) { hk416_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public HK416_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_HK416 && get_user_hk416(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(hk416damage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(hk416damage)); } } } } public HK416_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_HK416) return HAM_IGNORED; if(!get_user_hk416(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public HK416_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == HK416_WEAPONKEY) { HaveHK416[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, HK416_WEAPONKEY) } } public HK416_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_hk416(Owner)) { set_pev(Owner, pev_viewmodel2, HK416Model_V); set_pev(Owner, pev_weaponmodel2, HK416Model_P); set_pdata_float(Owner, 83, 1.2, 5); set_weapon_anim(Owner, cs_get_weapon_silen(entity) ? 5 : 12) static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) hk416_reload[Owner] = 0; } } public HK416_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if (get_user_hk416(id)) { pev(id,pev_punchangle,cl_pushangle[id]); hk416_clip[id] = cs_get_weapon_ammo(Weapon); } } public HK416_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(hk416_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_hk416(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(hk416recoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, HK416_Sound[cs_get_weapon_silen(Weapon) ? 0 : 1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, cs_get_weapon_silen(Weapon) ? random_num(1, 3) : random_num(8, 10)) } } } public HK416_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_hk416(id)) return HAM_IGNORED; hk416_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_HK416); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(hk416clip)) return HAM_SUPERCEDE; hk416_clip[id] = Clip; hk416_reload[id] = 1; return HAM_IGNORED; } public HK416_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_hk416(id)) return HAM_IGNORED; if(hk416_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(hk416reloadtime); set_pdata_int(ent, 51, hk416_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, cs_get_weapon_silen(ent) ? 4 : 11) return HAM_IGNORED; } public HK416_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_hk416(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_HK416); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(hk416clip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_HK416, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; hk416_reload[id] = 0; } return HAM_IGNORED; } public Hook_HK416(id) { engclient_cmd(id, weapon_hk416); } public get_user_hk416(id) { return HaveHK416[id]; } public set_user_hk416(id, hk416) { if(hk416) { if(!HaveHK416[id]) { drop_primary_weapons(id); HaveHK416[id] = true; hk416_reload[id] = 0; WeaponList(id, HK416_WEAPONKEY) fm_give_item(id, weapon_hk416); new Clip = fm_get_user_weapon_entity(id, CSW_HK416); cs_set_weapon_ammo(Clip, get_pcvar_num(hk416clip)); } } else { if(HaveHK416[id]) { HaveHK416[id] = false; } } } #endif //--------------------------------------| AK47 Knife |------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined AK47KNIFE AK47Knife_Init() { register_clcmd("furien30_ak47knife", "Hook_AK47Knife"); register_message(get_user_msgid("DeathMsg"), "AK47Knife_DeathMsg"); register_event("CurWeapon", "AK47Knife_ViewModel", "be", "1=1"); register_event("WeapPickup","AK47Knife_ViewModel","b","1=19"); register_forward(FM_SetModel, "AK47Knife_WorldModel"); register_forward(FM_UpdateClientData, "AK47Knife_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "AK47Knife_PlaybackEvent"); register_forward(FM_CmdStart, "AK47Knife_CmdStart"); RegisterHam(Ham_TakeDamage, "player", "AK47Knife_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "AK47Knife_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "AK47Knife_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "AK47Knife_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "AK47Knife_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "AK47Knife_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "AK47Knife_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "AK47Knife_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "AK47Knife_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_ak47knife, "AK47Knife_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_ak47knife, "AK47Knife_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_ak47knife, "AK47Knife_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_ak47knife, "AK47Knife_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_ak47knife, "AK47Knife_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_ak47knife, "AK47Knife_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_ak47knife, "AK47Knife_PostFrame"); ak47knifedamage = register_cvar("furien30_ak47knife_damage", "45"); //| AK47 Knife Damage |// ak47knifeclip = register_cvar("furien30_ak47knife_clip", "30"); //| AK47 Knife Clip |// ak47knifereloadtime = register_cvar("furien30_ak47knife_reload_time", "2.45"); //| AK47 Knife Reload Time |// ak47kniferecoil = register_cvar("furien30_ak47knife_recoil", "0.8"); //| AK47 Knife Recoil |// ak47knifeabilitydamage = register_cvar("furien30_ak47knife_ability_damage", "150"); //| AK47 Knife Ability Damage |// ak47knifeabilityknockback = register_cvar("furien30_ak47knife_ability_knockback", "3"); //| AK47 Knife Ability KnockBack |// } AK47Knife_Precache() { register_forward(FM_PrecacheEvent, "AK47Knife_PrecacheEvent_Post", 1); precache_model(AK47KnifeModel_V); precache_model(AK47KnifeModel_P); precache_model(AK47KnifeModel_W); for(new i = 0; i < sizeof(AK47Knife_Sound); i++) engfunc(EngFunc_PrecacheSound, AK47Knife_Sound[i]); for(new i = 0; i < sizeof(AK47Knife_Generic); i++) engfunc(EngFunc_PrecacheGeneric, AK47Knife_Generic[i]); } AK47Knife_Natives() { register_native("get_user_ak47knife", "get_user_ak47knife", 1); register_native("set_user_ak47knife", "set_user_ak47knife", 1); } AK47Knife_Menu(const Num[] = "1") { new AK47Knife[256]; formatex(AK47Knife,sizeof(AK47Knife)-1,"\wAK47Knife"); menu_additem(Menu, AK47Knife, Num, 0); } public AK47Knife_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "ak47") && get_user_weapon(Attacker) == CSW_AK47KNIFE) { if(get_user_ak47knife(Attacker)) set_msg_arg_string(4, "AK47 Knife"); } return PLUGIN_CONTINUE; } public AK47Knife_ViewModel(id) { if(get_user_weapon(id) == CSW_AK47KNIFE && get_user_ak47knife(id)) { set_pev(id, pev_viewmodel2, AK47KnifeModel_V); set_pev(id, pev_weaponmodel2, AK47KnifeModel_P); } } public AK47Knife_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new AK47Knife = find_ent_by_owner(-1, weapon_ak47knife, entity); if(get_user_ak47knife(Owner) && is_valid_ent(AK47Knife) && equal(model, "models/w_ak47.mdl")) { entity_set_int(AK47Knife, EV_INT_impulse, AK47KNIFE_WEAPONKEY); HaveAK47Knife[Owner] = false; entity_set_model(entity, AK47KnifeModel_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public AK47Knife_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_AK47KNIFE && get_user_ak47knife(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public AK47Knife_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != ak47knife_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public AK47Knife_PrecacheEvent_Post(type, const name[]) { if (equal("events/mp5navy.sc", name)) { ak47knife_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public AK47Knife_CmdStart(id, uc_handle, seed) { if(is_user_alive(id) && is_user_connected(id)) { static CurButton; CurButton = get_uc(uc_handle, UC_Buttons); new Float:NextAttack = get_pdata_float(id, 83, 5); if(CurButton & IN_ATTACK2) { if(get_user_weapon(id) == CSW_AK47KNIFE && get_user_ak47knife(id) && NextAttack <= 0.0) { AK47Knife_Ability(id); CurButton &= ~IN_ATTACK2; set_uc(uc_handle, UC_Buttons, CurButton); } } } } public AK47Knife_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_AK47KNIFE && get_user_ak47knife(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(ak47knifedamage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(ak47knifedamage)); } } } } public AK47Knife_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_AK47KNIFE) return HAM_IGNORED; if(!get_user_ak47knife(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public AK47Knife_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == AK47KNIFE_WEAPONKEY) { HaveAK47Knife[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, AK47KNIFE_WEAPONKEY) } } public AK47Knife_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_ak47knife(Owner)) { set_pev(Owner, pev_viewmodel2, AK47KnifeModel_V); set_pev(Owner, pev_weaponmodel2, AK47KnifeModel_P); set_pdata_float(Owner, 83, 1.03, 5); set_weapon_anim(Owner, 2); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) ak47knife_reload[Owner] = 0; } } public AK47Knife_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if (get_user_ak47knife(id)) { pev(id,pev_punchangle,cl_pushangle[id]); ak47knife_clip[id] = cs_get_weapon_ammo(Weapon); } } public AK47Knife_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(ak47knife_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_ak47knife(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(ak47kniferecoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, AK47Knife_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(3,5)); } } } public AK47Knife_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_ak47knife(id)) return HAM_IGNORED; ak47knife_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_AK47KNIFE); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(ak47knifeclip)) return HAM_SUPERCEDE; ak47knife_clip[id] = Clip; ak47knife_reload[id] = 1; return HAM_IGNORED; } public AK47Knife_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_ak47knife(id)) return HAM_IGNORED; if(ak47knife_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(ak47knifereloadtime); set_pdata_int(ent, 51, ak47knife_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 1); return HAM_IGNORED; } public AK47Knife_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_ak47knife(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_AK47KNIFE); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(ak47knifeclip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_AK47KNIFE, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; ak47knife_reload[id] = 0; } return HAM_IGNORED; } public AK47Knife_Ability(id) { if(is_user_alive(id)) { set_pdata_float(id, 83, 1.33, 5); set_weapon_anim(id, 6); new Float:Origin[3],Float:VictimOrigin[3], Victim, Body ,AimOrigin[3],Float:AimOrigin2[3]; get_user_aiming(id, Victim, Body, 999999); get_user_origin(id, AimOrigin, 3); AimOrigin2[0] = float(AimOrigin[0]); AimOrigin2[1] = float(AimOrigin[1]); AimOrigin2[2] = float(AimOrigin[2]); pev(id, pev_origin, Origin); pev(Victim, pev_origin, VictimOrigin); if(get_distance_f(Origin, VictimOrigin) <= 60.0) { if(is_user_connected(Victim) && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id) && Victim != id) { new Float:Damage = float(get_damage_body(Body, get_pcvar_float(ak47knifeabilitydamage))); new BloodColor = ExecuteHam(Ham_BloodColor, Victim); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(AimOrigin2[0])); write_coord(floatround(AimOrigin2[1])); write_coord(floatround(AimOrigin2[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } make_knockback(Victim, AimOrigin2, get_pcvar_float(ak47knifeabilityknockback)*Damage); if(get_user_health(Victim) - Damage >= 1) { ExecuteHam(Ham_TakeDamage, Victim, id, id, Damage, DMG_SLASH); } else { death_message(id, Victim, "AK47 Knife Ability"); } } emit_sound(id, CHAN_WEAPON,AK47Knife_Sound[2], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); } else if(get_distance_f(Origin, AimOrigin2) <= 60.0) { if(pev_valid(Victim) && get_user_team(id) != pev(Victim, pev_team)) set_pev(Victim, pev_health, pev(Victim, pev_health) - get_pcvar_float(ak47knifeabilitydamage)); emit_sound(id, CHAN_WEAPON,AK47Knife_Sound[3], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); } else emit_sound(id, CHAN_WEAPON,AK47Knife_Sound[4], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); } } public Hook_AK47Knife(id) { engclient_cmd(id, weapon_ak47knife); } public get_user_ak47knife(id) { return HaveAK47Knife[id]; } public set_user_ak47knife(id, ak47knife) { if(ak47knife) { if(!HaveAK47Knife[id]) { drop_primary_weapons(id); HaveAK47Knife[id] = true; ak47knife_reload[id] = 0; WeaponList(id, AK47KNIFE_WEAPONKEY) fm_give_item(id, weapon_ak47knife); new Clip = fm_get_user_weapon_entity(id, CSW_AK47KNIFE); cs_set_weapon_ammo(Clip, get_pcvar_num(ak47knifeclip)); } } else { if(HaveAK47Knife[id]) { HaveAK47Knife[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //----------------------------------------| Tar21 |---------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined TAR21 Tar21_Init() { register_clcmd("furien30_tar21", "Hook_Tar21"); register_message(get_user_msgid("DeathMsg"), "Tar21_DeathMsg"); register_event("CurWeapon", "Tar21_ViewModel", "be", "1=1"); register_event("WeapPickup","Tar21_ViewModel","b","1=19"); register_forward(FM_SetModel, "Tar21_WorldModel"); register_forward(FM_UpdateClientData, "Tar21_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "Tar21_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "Tar21_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "Tar21_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "Tar21_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "Tar21_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "Tar21_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "Tar21_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "Tar21_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "Tar21_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "Tar21_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_tar21, "Tar21_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_tar21, "Tar21_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_tar21, "Tar21_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_tar21, "Tar21_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_tar21, "Tar21_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_tar21, "Tar21_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_tar21, "Tar21_PostFrame"); tar21damage = register_cvar("furien30_tar21_damage", "40"); //| Tar21 Damage |// tar21clip = register_cvar("furien30_tar21_clip", "35"); //| Tar21 Clip |// tar21reloadtime = register_cvar("furien30_tar21_reload_time", "3.13"); //| Tar21 Reload Time |// tar21recoil = register_cvar("furien30_tar21_recoil", "0.8"); //| Tar21 Recoil |// } Tar21_Precache() { register_forward(FM_PrecacheEvent, "Tar21_PrecacheEvent_Post", 1); precache_model(Tar21Model_V); precache_model(Tar21Model_P); precache_model(Tar21Model_W); for(new i = 0; i < sizeof(Tar21_Sound); i++) engfunc(EngFunc_PrecacheSound, Tar21_Sound[i]); for(new i = 0; i < sizeof(Tar21_Generic); i++) engfunc(EngFunc_PrecacheGeneric, Tar21_Generic[i]); } Tar21_Natives() { register_native("get_user_tar21", "get_user_tar21", 1); register_native("set_user_tar21", "set_user_tar21", 1); } Tar21_Menu(const Num[] = "1") { new Tar21[256]; formatex(Tar21,sizeof(Tar21)-1,"\wTar21"); menu_additem(Menu, Tar21, Num, 0); } public Tar21_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "sg552") && get_user_weapon(Attacker) == CSW_TAR21) { if(get_user_tar21(Attacker)) set_msg_arg_string(4, "Tar21"); } return PLUGIN_CONTINUE; } public Tar21_ViewModel(id) { if(get_user_weapon(id) == CSW_TAR21 && get_user_tar21(id)) { set_pev(id, pev_viewmodel2, Tar21Model_V); set_pev(id, pev_weaponmodel2, Tar21Model_P); } } public Tar21_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new Tar21 = find_ent_by_owner(-1, weapon_tar21, entity); if(get_user_tar21(Owner) && is_valid_ent(Tar21) && equal(model, "models/w_sg552.mdl")) { entity_set_int(Tar21, EV_INT_impulse, TAR21_WEAPONKEY); HaveTar21[Owner] = false; entity_set_model(entity, Tar21Model_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public Tar21_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_TAR21 && get_user_tar21(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public Tar21_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != tar21_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public Tar21_PrecacheEvent_Post(type, const name[]) { if (equal("events/sg552.sc", name)) { tar21_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public Tar21_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_TAR21 && get_user_tar21(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(tar21damage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(tar21damage)); } } } } public Tar21_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_TAR21) return HAM_IGNORED; if(!get_user_tar21(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public Tar21_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == TAR21_WEAPONKEY) { HaveTar21[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, TAR21_WEAPONKEY) } } public Tar21_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_tar21(Owner)) { set_pev(Owner, pev_viewmodel2, Tar21Model_V); set_pev(Owner, pev_weaponmodel2, Tar21Model_P); set_pdata_float(Owner, 83, 1.2, 5); set_weapon_anim(Owner, 2); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) tar21_reload[Owner] = 0; } } public Tar21_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if (get_user_tar21(id)) { pev(id,pev_punchangle,cl_pushangle[id]); tar21_clip[id] = cs_get_weapon_ammo(Weapon); } } public Tar21_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(tar21_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_tar21(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(tar21recoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, Tar21_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(3,5)); } } } public Tar21_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_tar21(id)) return HAM_IGNORED; tar21_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_TAR21); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(tar21clip)) return HAM_SUPERCEDE; tar21_clip[id] = Clip; tar21_reload[id] = 1; return HAM_IGNORED; } public Tar21_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_tar21(id)) return HAM_IGNORED; if(tar21_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(tar21reloadtime); set_pdata_int(ent, 51, tar21_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 1); return HAM_IGNORED; } public Tar21_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_tar21(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_TAR21); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(tar21clip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_TAR21, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; tar21_reload[id] = 0; } return HAM_IGNORED; } public Hook_Tar21(id) { engclient_cmd(id, weapon_tar21); } public get_user_tar21(id) { return HaveTar21[id]; } public set_user_tar21(id, tar21) { if(tar21) { if(!HaveTar21[id]) { drop_primary_weapons(id); HaveTar21[id] = true; tar21_reload[id] = 0; WeaponList(id, TAR21_WEAPONKEY) fm_give_item(id, weapon_tar21); new Clip = fm_get_user_weapon_entity(id, CSW_TAR21); cs_set_weapon_ammo(Clip, get_pcvar_num(tar21clip)); } } else { if(HaveTar21[id]) { HaveTar21[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //-----------------------------------------| M134 |---------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined M134 M134_Init() { register_clcmd("furien30_m134", "Hook_M134"); register_message(get_user_msgid("DeathMsg"), "M134_DeathMsg"); register_event("CurWeapon", "M134_ViewModel", "be", "1=1"); register_event("WeapPickup","M134_ViewModel","b","1=19"); register_forward(FM_SetModel, "M134_WorldModel"); register_forward(FM_UpdateClientData, "M134_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "M134_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "M134_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "M134_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "M134_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "M134_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "M134_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "M134_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "M134_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "M134_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "M134_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_m134, "M134_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_m134, "M134_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_m134, "M134_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_m134, "M134_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_m134, "M134_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_m134, "M134_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_m134, "M134_PostFrame"); m134damage = register_cvar("furien30_m134_damage", "40"); //| M134 Damage |// m134clip = register_cvar("furien30_m134_clip", "60"); //| M134 Clip |// m134reloadtime = register_cvar("furien30_m134_reload_time", "5.03"); //| M134 Reload Time |// m134recoil = register_cvar("furien30_m134_recoil", "0.8"); //| M134 Recoil |// } M134_Precache() { register_forward(FM_PrecacheEvent, "M134_PrecacheEvent_Post", 1); precache_model(M134Model_V); precache_model(M134Model_P); precache_model(M134Model_W); for(new i = 0; i < sizeof(M134_Sound); i++) engfunc(EngFunc_PrecacheSound, M134_Sound[i]); for(new i = 0; i < sizeof(M134_Generic); i++) engfunc(EngFunc_PrecacheGeneric, M134_Generic[i]); } M134_Natives() { register_native("get_user_m134", "get_user_m134", 1); register_native("set_user_m134", "set_user_m134", 1); } M134_Menu(const Num[] = "1") { new _M134[256]; formatex(_M134,sizeof(_M134)-1,"\wM134"); menu_additem(Menu, _M134, Num, 0); } public M134_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "m249") && get_user_weapon(Attacker) == CSW_M134) { if(get_user_m134(Attacker)) set_msg_arg_string(4, "M134"); } return PLUGIN_CONTINUE; } public M134_ViewModel(id) { if(get_user_weapon(id) == CSW_M134 && get_user_m134(id)) { set_pev(id, pev_viewmodel2, M134Model_V); set_pev(id, pev_weaponmodel2, M134Model_P); } } public M134_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new _M134 = find_ent_by_owner(-1, weapon_m134, entity); if(get_user_m134(Owner) && is_valid_ent(_M134) && equal(model, "models/w_m249.mdl")) { entity_set_int(_M134, EV_INT_impulse, M134_WEAPONKEY); HaveM134[Owner] = false; entity_set_model(entity, M134Model_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public M134_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_M134 && get_user_m134(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public M134_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != m134_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public M134_PrecacheEvent_Post(type, const name[]) { if (equal("events/m249.sc", name)) { m134_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public M134_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_M134 && get_user_m134(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(m134damage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(m134damage)); } } } } public M134_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_M134) return HAM_IGNORED; if(!get_user_m134(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public M134_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == M134_WEAPONKEY) { HaveM134[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, M134_WEAPONKEY) } } public M134_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_m134(Owner)) { set_pev(Owner, pev_viewmodel2, M134Model_V); set_pev(Owner, pev_weaponmodel2, M134Model_P); set_pdata_float(Owner, 83, 1.03, 5); set_weapon_anim(Owner, 4); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) m134_reload[Owner] = 0; } } public M134_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if (get_user_m134(id)) { pev(id,pev_punchangle,cl_pushangle[id]); m134_clip[id] = cs_get_weapon_ammo(Weapon); } } public M134_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(m134_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_m134(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(m134recoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, M134_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(1,2)); } } } public M134_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_m134(id)) return HAM_IGNORED; m134_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_M134); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(m134clip)) return HAM_SUPERCEDE; m134_clip[id] = Clip; m134_reload[id] = 1; return HAM_IGNORED; } public M134_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_m134(id)) return HAM_IGNORED; if(m134_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(m134reloadtime); set_pdata_int(ent, 51, m134_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 3); return HAM_IGNORED; } public M134_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_m134(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_M134); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(m134clip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_M134, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; m134_reload[id] = 0; } return HAM_IGNORED; } public Hook_M134(id) { engclient_cmd(id, weapon_m134); } public get_user_m134(id) { return HaveM134[id]; } public set_user_m134(id, m134) { if(m134) { if(!HaveM134[id]) { drop_primary_weapons(id); HaveM134[id] = true; m134_reload[id] = 0; WeaponList(id, M134_WEAPONKEY) fm_give_item(id, weapon_m134); new Clip = fm_get_user_weapon_entity(id, CSW_M134); cs_set_weapon_ammo(Clip, get_pcvar_num(m134clip)); } } else { if(HaveM134[id]) { HaveM134[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //---------------------------------------| Thompson |-------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined THOMPSON Thompson_Init() { register_clcmd("furien30_thompson", "Hook_Thompson"); register_message(get_user_msgid("DeathMsg"), "Thompson_DeathMsg"); register_event("CurWeapon", "Thompson_ViewModel", "be", "1=1"); register_event("WeapPickup","Thompson_ViewModel","b","1=19"); register_forward(FM_SetModel, "Thompson_WorldModel"); register_forward(FM_UpdateClientData, "Thompson_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "Thompson_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "Thompson_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "Thompson_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "Thompson_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "Thompson_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "Thompson_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "Thompson_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "Thompson_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "Thompson_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "Thompson_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_thompson, "Thompson_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_thompson, "Thompson_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_thompson, "Thompson_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_thompson, "Thompson_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_thompson, "Thompson_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_thompson, "Thompson_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_thompson, "Thompson_PostFrame"); thompsondamage = register_cvar("furien30_thompson_damage", "35"); //| Thompson Damage |// thompsonclip = register_cvar("furien30_thompson_clip", "40"); //| Thompson Clip |// thompsonreloadtime = register_cvar("furien30_thompson_reload_time", "3.7"); //| Thompson Reload Time |// thompsonrecoil = register_cvar("furien30_thompson_recoil", "0.8"); //| Thompson Recoil |// } Thompson_Precache() { register_forward(FM_PrecacheEvent, "Thompson_PrecacheEvent_Post", 1); precache_model(ThompsonModel_V); precache_model(ThompsonModel_P); precache_model(ThompsonModel_W); for(new i = 0; i < sizeof(Thompson_Sound); i++) engfunc(EngFunc_PrecacheSound, Thompson_Sound[i]); for(new i = 0; i < sizeof(Thompson_Generic); i++) engfunc(EngFunc_PrecacheGeneric, Thompson_Generic[i]); } Thompson_Natives() { register_native("get_user_thompson", "get_user_thompson", 1); register_native("set_user_thompson", "set_user_thompson", 1); } Thompson_Menu(const Num[] = "1") { new Thompson[256]; formatex(Thompson,sizeof(Thompson)-1,"\wThompson"); menu_additem(Menu, Thompson, Num, 0); } public Thompson_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "p90") && get_user_weapon(Attacker) == CSW_THOMPSON) { if(get_user_thompson(Attacker)) set_msg_arg_string(4, "Thompson"); } return PLUGIN_CONTINUE; } public Thompson_ViewModel(id) { if(get_user_weapon(id) == CSW_THOMPSON && get_user_thompson(id)) { set_pev(id, pev_viewmodel2, ThompsonModel_V); set_pev(id, pev_weaponmodel2, ThompsonModel_P); } } public Thompson_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new Thompson = find_ent_by_owner(-1, weapon_thompson, entity); if(get_user_thompson(Owner) && is_valid_ent(Thompson) && equal(model, "models/w_p90.mdl")) { entity_set_int(Thompson, EV_INT_impulse, THOMPSON_WEAPONKEY); HaveThompson[Owner] = false; entity_set_model(entity, ThompsonModel_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public Thompson_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_THOMPSON && get_user_thompson(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public Thompson_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != thompson_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public Thompson_PrecacheEvent_Post(type, const name[]) { if (equal("events/p90.sc", name)) { thompson_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public Thompson_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_THOMPSON && get_user_thompson(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(thompsondamage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(thompsondamage)); } } } } public Thompson_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_THOMPSON) return HAM_IGNORED; if(!get_user_thompson(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public Thompson_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == THOMPSON_WEAPONKEY) { HaveThompson[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, THOMPSON_WEAPONKEY) } } public Thompson_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_thompson(Owner)) { set_pev(Owner, pev_viewmodel2, ThompsonModel_V); set_pev(Owner, pev_weaponmodel2, ThompsonModel_P); set_pdata_float(Owner, 83, 1.2, 5); set_weapon_anim(Owner, 2); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) thompson_reload[Owner] = 0; } } public Thompson_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if (get_user_thompson(id)) { pev(id,pev_punchangle,cl_pushangle[id]); thompson_clip[id] = cs_get_weapon_ammo(Weapon); } } public Thompson_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(thompson_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_thompson(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(thompsonrecoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, Thompson_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(3,5)); } } } public Thompson_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_thompson(id)) return HAM_IGNORED; thompson_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_THOMPSON); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(thompsonclip)) return HAM_SUPERCEDE; thompson_clip[id] = Clip; thompson_reload[id] = 1; return HAM_IGNORED; } public Thompson_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_thompson(id)) return HAM_IGNORED; if(thompson_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(thompsonreloadtime); set_pdata_int(ent, 51, thompson_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 1); return HAM_IGNORED; } public Thompson_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_thompson(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_THOMPSON); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(thompsonclip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_THOMPSON, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; thompson_reload[id] = 0; } return HAM_IGNORED; } public Hook_Thompson(id) { engclient_cmd(id, weapon_thompson); } public get_user_thompson(id) { return HaveThompson[id]; } public set_user_thompson(id, thompson) { if(thompson) { if(!HaveThompson[id]) { drop_primary_weapons(id); HaveThompson[id] = true; thompson_reload[id] = 0; WeaponList(id, THOMPSON_WEAPONKEY) fm_give_item(id, weapon_thompson); new Clip = fm_get_user_weapon_entity(id, CSW_THOMPSON); cs_set_weapon_ammo(Clip, get_pcvar_num(thompsonclip)); } } else { if(HaveThompson[id]) { HaveThompson[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //--------------------------------------| Dual MP7A1 |------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined DUALMP7A1 DualMP7A1_Init() { register_clcmd("furien30_dualmp7a1", "Hook_DualMP7A1"); register_message(get_user_msgid("DeathMsg"), "DualMP7A1_DeathMsg"); register_event("CurWeapon", "DualMP7A1_ViewModel", "be", "1=1"); register_event("WeapPickup","DualMP7A1_ViewModel","b","1=19"); register_forward(FM_SetModel, "DualMP7A1_WorldModel"); register_forward(FM_UpdateClientData, "DualMP7A1_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "DualMP7A1_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "DualMP7A1_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "DualMP7A1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "DualMP7A1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "DualMP7A1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "DualMP7A1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "DualMP7A1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "DualMP7A1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "DualMP7A1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "DualMP7A1_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_dualmp7a1, "DualMP7A1_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_dualmp7a1, "DualMP7A1_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_dualmp7a1, "DualMP7A1_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_dualmp7a1, "DualMP7A1_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_dualmp7a1, "DualMP7A1_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_dualmp7a1, "DualMP7A1_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_dualmp7a1, "DualMP7A1_PostFrame"); dualmp7a1damage = register_cvar("furien30_dualmp7a1_damage", "40"); //| DualMP7A1 Damage |// dualmp7a1clip = register_cvar("furien30_dualmp7a1_clip", "40"); //| DualMP7A1 Clip |// dualmp7a1reloadtime = register_cvar("furien30_dualmp7a1_reload_time", "2.55"); //| DualMP7A1 Reload Time |// dualmp7a1recoil = register_cvar("furien30_dualmp7a1_recoil", "0.8"); //| DualMP7A1 Recoil |// } DualMP7A1_Precache() { register_forward(FM_PrecacheEvent, "DualMP7A1_PrecacheEvent_Post", 1); precache_model(DualMP7A1Model_V); precache_model(DualMP7A1Model_P); precache_model(DualMP7A1Model_W); for(new i = 0; i < sizeof(DualMP7A1_Sound); i++) engfunc(EngFunc_PrecacheSound, DualMP7A1_Sound[i]); for(new i = 0; i < sizeof(DualMP7A1_Generic); i++) engfunc(EngFunc_PrecacheGeneric, DualMP7A1_Generic[i]); } DualMP7A1_Natives() { register_native("get_user_dualmp7a1", "get_user_dualmp7a1", 1); register_native("set_user_dualmp7a1", "set_user_dualmp7a1", 1); } DualMP7A1_Menu(id, const Num[] = "1") { new DualMP7A1[256]; formatex(DualMP7A1,sizeof(DualMP7A1)-1,"\wDualMP7A1"); if(get_user_flags(id) & VIPSILVER_LEVEL) formatex(DualMP7A1,sizeof(DualMP7A1)-1,"\wDualMP7A1"); else formatex(DualMP7A1,sizeof(DualMP7A1)-1,"\dDualMP7A1 \w- \rOnly VIP\w"); menu_additem(Menu, DualMP7A1, Num, 0); } public DualMP7A1_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "mp5navy") && get_user_weapon(Attacker) == CSW_DUALMP7A1) { if(get_user_dualmp7a1(Attacker)) set_msg_arg_string(4, "Dual MP7A1"); } return PLUGIN_CONTINUE; } public DualMP7A1_ViewModel(id) { if(get_user_weapon(id) == CSW_DUALMP7A1 && get_user_dualmp7a1(id)) { set_pev(id, pev_viewmodel2, DualMP7A1Model_V); set_pev(id, pev_weaponmodel2, DualMP7A1Model_P); } } public DualMP7A1_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new DualMP7A1 = find_ent_by_owner(-1, weapon_dualmp7a1, entity); if(get_user_dualmp7a1(Owner) && is_valid_ent(DualMP7A1) && equal(model, "models/w_mp5.mdl")) { entity_set_int(DualMP7A1, EV_INT_impulse, DUALMP7A1_WEAPONKEY); HaveDualMP7A1[Owner] = false; entity_set_model(entity, DualMP7A1Model_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public DualMP7A1_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_DUALMP7A1 && get_user_dualmp7a1(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public DualMP7A1_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != dualmp7a1_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public DualMP7A1_PrecacheEvent_Post(type, const name[]) { if (equal("events/mp5navy.sc", name)) { dualmp7a1_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public DualMP7A1_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_DUALMP7A1 && get_user_dualmp7a1(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(dualmp7a1damage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(dualmp7a1damage)); } } } } public DualMP7A1_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_DUALMP7A1) return HAM_IGNORED; if(!get_user_dualmp7a1(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public DualMP7A1_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == DUALMP7A1_WEAPONKEY) { HaveDualMP7A1[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, DUALMP7A1_WEAPONKEY) } } public DualMP7A1_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_dualmp7a1(Owner)) { set_pev(Owner, pev_viewmodel2, DualMP7A1Model_V); set_pev(Owner, pev_weaponmodel2, DualMP7A1Model_P); set_pdata_float(Owner, 83, 1.3, 5); set_weapon_anim(Owner, 2); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) dualmp7a1_reload[Owner] = 0; } } public DualMP7A1_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if (get_user_dualmp7a1(id)) { pev(id,pev_punchangle,cl_pushangle[id]); dualmp7a1_clip[id] = cs_get_weapon_ammo(Weapon); } } public DualMP7A1_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(dualmp7a1_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_dualmp7a1(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(dualmp7a1recoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, DualMP7A1_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(3,4)); } } } public DualMP7A1_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_dualmp7a1(id)) return HAM_IGNORED; dualmp7a1_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_DUALMP7A1); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(dualmp7a1clip)) return HAM_SUPERCEDE; dualmp7a1_clip[id] = Clip; dualmp7a1_reload[id] = 1; return HAM_IGNORED; } public DualMP7A1_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_dualmp7a1(id)) return HAM_IGNORED; if(dualmp7a1_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(dualmp7a1reloadtime); set_pdata_int(ent, 51, dualmp7a1_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 1); return HAM_IGNORED; } public DualMP7A1_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_dualmp7a1(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_DUALMP7A1); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(dualmp7a1clip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_DUALMP7A1, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; dualmp7a1_reload[id] = 0; } return HAM_IGNORED; } public Hook_DualMP7A1(id) { engclient_cmd(id, weapon_dualmp7a1); } public get_user_dualmp7a1(id) { return HaveDualMP7A1[id]; } public set_user_dualmp7a1(id, dualmp7a1) { if(dualmp7a1) { if(!HaveDualMP7A1[id]) { drop_primary_weapons(id); HaveDualMP7A1[id] = true; dualmp7a1_reload[id] = 0; WeaponList(id, DUALMP7A1_WEAPONKEY) fm_give_item(id, weapon_dualmp7a1); new clip = fm_get_user_weapon_entity(id, CSW_DUALMP7A1); cs_set_weapon_ammo(clip, get_pcvar_num(dualmp7a1clip)); } } else { if(HaveDualMP7A1[id]) { HaveDualMP7A1[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //-----------------------------------------| M1887 |--------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined M1887 M1887_Init() { register_clcmd("furien30_m1887", "Hook_M1887"); register_message(get_user_msgid("DeathMsg"), "M1887_DeathMsg"); register_event("CurWeapon", "M1887_ViewModel", "be", "1=1"); register_event("WeapPickup","M1887_ViewModel","b","1=19"); register_forward(FM_SetModel, "M1887_WorldModel"); register_forward(FM_UpdateClientData, "M1887_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "M1887_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "M1887_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "M1887_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "M1887_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "M1887_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "M1887_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "M1887_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "M1887_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "M1887_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "M1887_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_m1887, "M1887_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_m1887, "M1887_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_m1887, "M1887_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_m1887, "M1887_AddToPlayer"); /*RegisterHam(Ham_Weapon_Reload, weapon_m1887, "M1887_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_m1887, "M1887_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_m1887, "M1887_PostFrame");*/ m1887damage = register_cvar("furien30_m1887_damage", "1"); //| M1887 Damage |// //m1887clip = register_cvar("furien30_m1887_clip", "10"); //| M1887 Clip |// //m1887reloadtime = register_cvar("furien30_m1887_reload_time", "3.7"); //| M1887 Reload Time |// m1887recoil = register_cvar("furien30_m1887_recoil", "0.8"); //| M1887 Recoil |// } M1887_Precache() { register_forward(FM_PrecacheEvent, "M1887_PrecacheEvent_Post", 1); precache_model(M1887Model_V); precache_model(M1887Model_P); precache_model(M1887Model_W); for(new i = 0; i < sizeof(M1887_Sound); i++) engfunc(EngFunc_PrecacheSound, M1887_Sound[i]); for(new i = 0; i < sizeof(M1887_Generic); i++) engfunc(EngFunc_PrecacheGeneric, M1887_Generic[i]); } M1887_Natives() { register_native("get_user_m1887", "get_user_m1887", 1); register_native("set_user_m1887", "set_user_m1887", 1); } M1887_Menu(const Num[] = "1") { new _M1887[256]; formatex(_M1887,sizeof(_M1887)-1,"\wM1887"); menu_additem(Menu, _M1887, Num, 0); } public M1887_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "m3") && get_user_weapon(Attacker) == CSW_M1887) { if(get_user_m1887(Attacker)) set_msg_arg_string(4, "M1887"); } return PLUGIN_CONTINUE; } public M1887_ViewModel(id) { if(get_user_weapon(id) == CSW_M1887 && get_user_m1887(id)) { set_pev(id, pev_viewmodel2, M1887Model_V); set_pev(id, pev_weaponmodel2, M1887Model_P); } } public M1887_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new _M1887 = find_ent_by_owner(-1, weapon_m1887, entity); if(get_user_m1887(Owner) && is_valid_ent(_M1887) && equal(model, "models/w_m3.mdl")) { entity_set_int(_M1887, EV_INT_impulse, M1887_WEAPONKEY); HaveM1887[Owner] = false; entity_set_model(entity, M1887Model_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public M1887_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_M1887 && get_user_m1887(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public M1887_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != m1887_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public M1887_PrecacheEvent_Post(type, const name[]) { if (equal("events/m3.sc", name)) { m1887_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public M1887_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { if(get_user_weapon(attacker) == CSW_M1887 && get_user_m1887(attacker)) { SetHamParamFloat(4, damage * get_pcvar_float(m1887damage)); } } } public M1887_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_M1887) return HAM_IGNORED; if(!get_user_m1887(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public M1887_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == M1887_WEAPONKEY) { HaveM1887[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, M1887_WEAPONKEY) } } public M1887_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_m1887(Owner)) { set_pev(Owner, pev_viewmodel2, M1887Model_V); set_pev(Owner, pev_weaponmodel2, M1887Model_P); set_pdata_float(Owner, 83, 1.2, 5); set_weapon_anim(Owner, 6); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) m1887_reload[Owner] = 0; } } public M1887_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if (get_user_m1887(id)) { pev(id,pev_punchangle,cl_pushangle[id]); m1887_clip[id] = cs_get_weapon_ammo(Weapon); } } public M1887_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(m1887_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_m1887(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(m1887recoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, M1887_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(1,2)); } } } /* public M1887_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_m1887(id)) return HAM_IGNORED; m1887_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_M1887); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(m1887clip)) return HAM_SUPERCEDE; set_weapon_anim(id, 5); m1887_clip[id] = Clip; m1887_reload[id] = 1; return HAM_IGNORED; } public M1887_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_m1887(id)) return HAM_IGNORED; if(m1887_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(m1887reloadtime); set_pdata_int(ent, 51, m1887_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 3); return HAM_IGNORED; } public M1887_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_m1887(id)) return HAM_IGNORED; if(pev(id, pev_weaponanim) == 3) set_weapon_anim(id, 7); new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_M1887); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(m1887clip), Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_M1887, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0 m1887_reload[id] = 0; } return HAM_IGNORED } */ public Hook_M1887(id) { engclient_cmd(id, weapon_m1887); } public get_user_m1887(id) { return HaveM1887[id]; } public set_user_m1887(id, m1887) { if(m1887) { if(!HaveM1887[id]) { drop_primary_weapons(id); HaveM1887[id] = true; m1887_reload[id] = 0; WeaponList(id, M1887_WEAPONKEY) fm_give_item(id, weapon_m1887); /*new Clip = fm_get_user_weapon_entity(id, CSW_M1887); cs_set_weapon_ammo(Clip, get_pcvar_num(m1887clip));*/ } } else { if(HaveM1887[id]) { HaveM1887[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //------------------------------------------| L85 |---------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined L85 L85_Init() { register_clcmd("furien30_l85", "Hook_L85"); register_message(get_user_msgid("DeathMsg"), "L85_DeathMsg"); register_event("CurWeapon", "L85_ViewModel", "be", "1=1"); register_event("WeapPickup","L85_ViewModel","b","1=19"); register_forward(FM_SetModel, "L85_WorldModel"); register_forward(FM_UpdateClientData, "L85_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "L85_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "L85_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "L85_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "L85_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "L85_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "L85_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "L85_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "L85_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "L85_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "L85_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_l85, "L85_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_l85, "L85_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_l85, "L85_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_l85, "L85_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_l85, "L85_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_l85, "L85_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_l85, "L85_PostFrame"); l85damage = register_cvar("furien30_l85_damage", "35"); //| L85 Damage |// l85clip = register_cvar("furien30_l85_clip", "35"); //| L85 Clip |// l85reloadtime = register_cvar("furien30_l85_reload_time", "3.5"); //| L85 Reload Time |// l85recoil = register_cvar("furien30_l85_recoil", "0.8"); //| L85 Recoil |// } L85_Precache() { register_forward(FM_PrecacheEvent, "L85_PrecacheEvent_Post", 1); precache_model(L85Model_V); precache_model(L85Model_P); precache_model(L85Model_W); for(new i = 0; i < sizeof(L85_Sound); i++) engfunc(EngFunc_PrecacheSound, L85_Sound[i]); for(new i = 0; i < sizeof(L85_Generic); i++) engfunc(EngFunc_PrecacheGeneric, L85_Generic[i]); } L85_Natives() { register_native("get_user_l85", "get_user_l85", 1); register_native("set_user_l85", "set_user_l85", 1); } L85_Menu(const Num[] = "1") { new _L85[256]; formatex(_L85,sizeof(_L85)-1,"\wL85"); menu_additem(Menu, _L85, Num, 0); } public L85_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "famas") && get_user_weapon(Attacker) == CSW_L85) { if(get_user_l85(Attacker)) set_msg_arg_string(4, "L85"); } return PLUGIN_CONTINUE; } public L85_ViewModel(id) { if(get_user_weapon(id) == CSW_L85 && get_user_l85(id)) { set_pev(id, pev_viewmodel2, L85Model_V); set_pev(id, pev_weaponmodel2, L85Model_P); } } public L85_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new _L85 = find_ent_by_owner(-1, weapon_l85, entity); if(get_user_l85(Owner) && is_valid_ent(_L85) && equal(model, "models/w_famas.mdl")) { entity_set_int(_L85, EV_INT_impulse, L85_WEAPONKEY); HaveL85[Owner] = false; entity_set_model(entity, L85Model_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public L85_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_L85 && get_user_l85(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public L85_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != l85_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public L85_PrecacheEvent_Post(type, const name[]) { if (equal("events/famas.sc", name)) { l85_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public L85_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_L85 && get_user_l85(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(l85damage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(l85damage)); } } } } public L85_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_L85) return HAM_IGNORED; if(!get_user_l85(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public L85_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == L85_WEAPONKEY) { HaveL85[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, L85_WEAPONKEY) } } public L85_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_l85(Owner)) { set_pev(Owner, pev_viewmodel2, L85Model_V); set_pev(Owner, pev_weaponmodel2, L85Model_P); set_pdata_float(Owner, 83, 0.89, 5); set_weapon_anim(Owner, 2); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) l85_reload[Owner] = 0; } } public L85_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if (get_user_l85(id)) { pev(id,pev_punchangle,cl_pushangle[id]); l85_clip[id] = cs_get_weapon_ammo(Weapon); } } public L85_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(l85_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_l85(id)) { set_pdata_int(ActiveItem, 57, Shell, 4); set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(l85recoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, L85_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(3,5)); } } } public L85_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_l85(id)) return HAM_IGNORED; l85_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_L85); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(l85clip)) return HAM_SUPERCEDE; l85_clip[id] = Clip; l85_reload[id] = 1; return HAM_IGNORED; } public L85_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_l85(id)) return HAM_IGNORED; if(l85_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(l85reloadtime); set_pdata_int(ent, 51, l85_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 1); return HAM_IGNORED; } public L85_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_l85(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_L85); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(l85clip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_L85, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; l85_reload[id] = 0; } return HAM_IGNORED; } public Hook_L85(id) { engclient_cmd(id, weapon_l85); } public get_user_l85(id) { return HaveL85[id]; } public set_user_l85(id, l85) { if(l85) { if(!HaveL85[id]) { drop_primary_weapons(id); HaveL85[id] = true; l85_reload[id] = 0; WeaponList(id, L85_WEAPONKEY) fm_give_item(id, weapon_l85); new Clip = fm_get_user_weapon_entity(id, CSW_L85); cs_set_weapon_ammo(Clip, get_pcvar_num(l85clip)); } } else { if(HaveL85[id]) { HaveL85[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //-----------------------------------------| Skull5 |-------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined SKULL5 Skull5_Init() { register_clcmd("furien30_skull5", "Hook_Skull5"); register_message(get_user_msgid("DeathMsg"), "Skull5_DeathMsg"); register_event("CurWeapon", "Skull5_ViewModel", "be", "1=1"); register_event("WeapPickup","Skull5_ViewModel","b","1=19"); register_forward(FM_SetModel, "Skull5_WorldModel"); register_forward(FM_UpdateClientData, "Skull5_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "Skull5_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "Skull5_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "Skull5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "Skull5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "Skull5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "Skull5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "Skull5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "Skull5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "Skull5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "Skull5_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_skull5, "Skull5_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_skull5, "Skull5_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_skull5, "Skull5_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_skull5, "Skull5_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_skull5, "Skull5_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_skull5, "Skull5_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_skull5, "Skull5_PostFrame"); skull5damage = register_cvar("furien30_skull5_damage", "65"); //| Skull5 Damage |// skull5clip = register_cvar("furien30_skull5_clip", "30"); //| Skull5 Clip |// skull5reloadtime = register_cvar("furien30_skull5_reload_time", "2.0"); //| Skull5 Reload Time |// skull5recoil = register_cvar("furien30_skull5_recoil", "0.8"); //| Skull5 Recoil |// } Skull5_Precache() { register_forward(FM_PrecacheEvent, "Skull5_PrecacheEvent_Post", 1); precache_model(Skull5Model_V); precache_model(Skull5Model_P); precache_model(Skull5Model_W); for(new i = 0; i < sizeof(Skull5_Sound); i++) engfunc(EngFunc_PrecacheSound, Skull5_Sound[i]); for(new i = 0; i < sizeof(Skull5_Generic); i++) engfunc(EngFunc_PrecacheGeneric, Skull5_Generic[i]); } Skull5_Natives() { register_native("get_user_skull5", "get_user_skull5", 1); register_native("set_user_skull5", "set_user_skull5", 1); } Skull5_Menu(const Num[] = "1") { new Skull5[256]; formatex(Skull5,sizeof(Skull5)-1,"\wSkull5"); menu_additem(Menu, Skull5, Num, 0); } public Skull5_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "sg550") && get_user_weapon(Attacker) == CSW_SKULL5) { if(get_user_skull5(Attacker)) set_msg_arg_string(4, "Skull5"); } return PLUGIN_CONTINUE; } public Skull5_ViewModel(id) { if(get_user_weapon(id) == CSW_SKULL5 && get_user_skull5(id)) { set_pev(id, pev_viewmodel2, Skull5Model_V); set_pev(id, pev_weaponmodel2, Skull5Model_P); } } public Skull5_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new Skull5 = find_ent_by_owner(-1, weapon_skull5, entity); if(get_user_skull5(Owner) && is_valid_ent(Skull5) && equal(model, "models/w_sg550.mdl")) { entity_set_int(Skull5, EV_INT_impulse, SKULL5_WEAPONKEY); HaveSkull5[Owner] = false; entity_set_model(entity, Skull5Model_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public Skull5_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_SKULL5 && get_user_skull5(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public Skull5_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != skull5_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public Skull5_PrecacheEvent_Post(type, const name[]) { if (equal("events/sg550.sc", name)) { skull5_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public Skull5_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_SKULL5 && get_user_skull5(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(skull5damage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(skull5damage)); } } } } public Skull5_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_SKULL5) return HAM_IGNORED; if(!get_user_skull5(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public Skull5_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == SKULL5_WEAPONKEY) { HaveSkull5[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, SKULL5_WEAPONKEY) } } public Skull5_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_skull5(Owner)) { set_pev(Owner, pev_viewmodel2, Skull5Model_V); set_pev(Owner, pev_weaponmodel2, Skull5Model_P); set_pdata_float(Owner, 83, 1.53, 5); set_weapon_anim(Owner, 4); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) skull5_reload[Owner] = 0; } } public Skull5_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if (get_user_skull5(id)) { pev(id,pev_punchangle,cl_pushangle[id]); skull5_clip[id] = cs_get_weapon_ammo(Weapon); } } public Skull5_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(skull5_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_skull5(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(skull5recoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, Skull5_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(1,2)); } } } public Skull5_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_skull5(id)) return HAM_IGNORED; skull5_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_SKULL5); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(skull5clip)) return HAM_SUPERCEDE; skull5_clip[id] = Clip; skull5_reload[id] = 1; return HAM_IGNORED; } public Skull5_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_skull5(id)) return HAM_IGNORED; if(skull5_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(skull5reloadtime); set_pdata_int(ent, 51, skull5_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 3); return HAM_IGNORED; } public Skull5_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_skull5(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_SKULL5); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(skull5clip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_SKULL5, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; skull5_reload[id] = 0; } return HAM_IGNORED; } public Hook_Skull5(id) { engclient_cmd(id, weapon_skull5); } public get_user_skull5(id) { return HaveSkull5[id]; } public set_user_skull5(id, skull5) { if(skull5) { if(!HaveSkull5[id]) { drop_primary_weapons(id); HaveSkull5[id] = true; skull5_reload[id] = 0; WeaponList(id, SKULL5_WEAPONKEY) fm_give_item(id, weapon_skull5); new Clip = fm_get_user_weapon_entity(id, CSW_SKULL5); cs_set_weapon_ammo(Clip, get_pcvar_num(skull5clip)); } } else { if(HaveSkull5[id]) { HaveSkull5[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //------------------------------------------| SL8 |---------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined SL8 SL8_Init() { register_clcmd("furien30_sl8", "Hook_SL8"); register_message(get_user_msgid("DeathMsg"), "SL8_DeathMsg"); register_event("CurWeapon", "SL8_ViewModel", "be", "1=1"); register_event("WeapPickup","SL8_ViewModel","b","1=19"); register_forward(FM_SetModel, "SL8_WorldModel"); register_forward(FM_UpdateClientData, "SL8_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "SL8_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "SL8_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "SL8_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "SL8_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "SL8_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "SL8_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "SL8_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "SL8_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "SL8_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "SL8_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_sl8, "SL8_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_sl8, "SL8_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_sl8, "SL8_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_sl8, "SL8_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_sl8, "SL8_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_sl8, "SL8_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_sl8, "SL8_PostFrame"); sl8damage = register_cvar("furien30_sl8_damage", "75"); //| SL8 Damage |// sl8clip = register_cvar("furien30_sl8_clip", "30"); //| SL8 Clip |// sl8reloadtime = register_cvar("furien30_sl8_reload_time", "3.43"); //| SL8 Reload Time |// sl8recoil = register_cvar("furien30_sl8_recoil", "0.8"); //| SL8 Recoil |// } SL8_Precache() { register_forward(FM_PrecacheEvent, "SL8_PrecacheEvent_Post", 1); precache_model(SL8Model_V); precache_model(SL8Model_P); precache_model(SL8Model_W); for(new i = 0; i < sizeof(SL8_Sound); i++) engfunc(EngFunc_PrecacheSound, SL8_Sound[i]); for(new i = 0; i < sizeof(SL8_Generic); i++) engfunc(EngFunc_PrecacheGeneric, SL8_Generic[i]); } SL8_Natives() { register_native("get_user_sl8", "get_user_sl8", 1); register_native("set_user_sl8", "set_user_sl8", 1); } SL8_Menu(const Num[] = "1") { new _SL8[256]; formatex(_SL8,sizeof(_SL8)-1,"\wSL8"); menu_additem(Menu, _SL8, Num, 0); } public SL8_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "g3sg1") && get_user_weapon(Attacker) == CSW_SL8) { if(get_user_sl8(Attacker)) set_msg_arg_string(4, "SL8"); } return PLUGIN_CONTINUE; } public SL8_ViewModel(id) { if(get_user_weapon(id) == CSW_SL8 && get_user_sl8(id)) { set_pev(id, pev_viewmodel2, SL8Model_V); set_pev(id, pev_weaponmodel2, SL8Model_P); } } public SL8_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new _SL8 = find_ent_by_owner(-1, weapon_sl8, entity); if(get_user_sl8(Owner) && is_valid_ent(_SL8) && equal(model, "models/w_g3sg1.mdl")) { entity_set_int(_SL8, EV_INT_impulse, SL8_WEAPONKEY); HaveSL8[Owner] = false; entity_set_model(entity, SL8Model_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public SL8_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_SL8 && get_user_sl8(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public SL8_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != sl8_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public SL8_PrecacheEvent_Post(type, const name[]) { if (equal("events/g3sg1.sc", name)) { sl8_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public SL8_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_SL8 && get_user_sl8(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(sl8damage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(sl8damage)); } } } } public SL8_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_SL8) return HAM_IGNORED; if(!get_user_sl8(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public SL8_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == SL8_WEAPONKEY) { HaveSL8[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, SL8_WEAPONKEY) } } public SL8_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_sl8(Owner)) { set_pev(Owner, pev_viewmodel2, SL8Model_V); set_pev(Owner, pev_weaponmodel2, SL8Model_P); set_pdata_float(Owner, 83, 1.0, 5); set_weapon_anim(Owner, 4); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) sl8_reload[Owner] = 0; } } public SL8_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if (get_user_sl8(id)) { pev(id,pev_punchangle,cl_pushangle[id]); sl8_clip[id] = cs_get_weapon_ammo(Weapon); } } public SL8_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(sl8_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_sl8(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(sl8recoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, SL8_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(1,2)); } } } public SL8_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_sl8(id)) return HAM_IGNORED; sl8_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_SL8); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(sl8clip)) return HAM_SUPERCEDE; sl8_clip[id] = Clip; sl8_reload[id] = 1; return HAM_IGNORED; } public SL8_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_sl8(id)) return HAM_IGNORED; if(sl8_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(sl8reloadtime); set_pdata_int(ent, 51, sl8_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 3); set_weapon_anim(id, 3); return HAM_IGNORED; } public SL8_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_sl8(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_SL8); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(sl8clip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_SL8, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; sl8_reload[id] = 0; } return HAM_IGNORED; } public Hook_SL8(id) { engclient_cmd(id, weapon_sl8); } public get_user_sl8(id) { return HaveSL8[id]; } public set_user_sl8(id, sl8) { if(sl8) { if(!HaveSL8[id]) { drop_primary_weapons(id); HaveSL8[id] = true; sl8_reload[id] = 0; WeaponList(id, SL8_WEAPONKEY) fm_give_item(id, weapon_sl8); new Clip = fm_get_user_weapon_entity(id, CSW_SL8); cs_set_weapon_ammo(Clip, get_pcvar_num(sl8clip)); } } else { if(HaveSL8[id]) { HaveSL8[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //-----------------------------------------| AW50 |---------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined AW50 AW50_Init() { register_clcmd("furien30_aw50", "Hook_AW50"); register_message(get_user_msgid("DeathMsg"), "AW50_DeathMsg"); register_event("CurWeapon", "AW50_ViewModel", "be", "1=1"); register_event("WeapPickup","AW50_ViewModel","b","1=19"); register_forward(FM_SetModel, "AW50_WorldModel"); register_forward(FM_UpdateClientData, "AW50_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "AW50_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "AW50_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "AW50_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "AW50_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "AW50_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "AW50_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "AW50_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "AW50_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "AW50_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "AW50_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_aw50, "AW50_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_aw50, "AW50_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_aw50, "AW50_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_aw50, "AW50_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_aw50, "AW50_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_aw50, "AW50_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_aw50, "AW50_PostFrame"); aw50damage = register_cvar("furien30_aw50_damage", "150"); //| AW50 Damage |// aw50clip = register_cvar("furien30_aw50_clip", "15"); //| AW50 Clip |// aw50reloadtime = register_cvar("furien30_aw50_reload_time", "2.93"); //| AW50 Reload Time |// aw50recoil = register_cvar("furien30_aw50_recoil", "0.8"); //| AW50 Recoil |// } AW50_Precache() { register_forward(FM_PrecacheEvent, "AW50_PrecacheEvent_Post", 1); precache_model(AW50Model_V); precache_model(AW50Model_P); precache_model(AW50Model_W); for(new i = 0; i < sizeof(AW50_Sound); i++) engfunc(EngFunc_PrecacheSound, AW50_Sound[i]); for(new i = 0; i < sizeof(AW50_Generic); i++) engfunc(EngFunc_PrecacheGeneric, AW50_Generic[i]); } AW50_Natives() { register_native("get_user_aw50", "get_user_aw50", 1); register_native("set_user_aw50", "set_user_aw50", 1); } AW50_Menu(const Num[] = "1") { new _AW50[256]; formatex(_AW50,sizeof(_AW50)-1,"\wAW50"); menu_additem(Menu, _AW50, Num, 0); } public AW50_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "awp") && get_user_weapon(Attacker) == CSW_AW50) { if(get_user_aw50(Attacker)) set_msg_arg_string(4, "AW50"); } return PLUGIN_CONTINUE; } public AW50_ViewModel(id) { if(get_user_weapon(id) == CSW_AW50 && get_user_aw50(id)) { set_pev(id, pev_viewmodel2, AW50Model_V); set_pev(id, pev_weaponmodel2, AW50Model_P); } } public AW50_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new _AW50 = find_ent_by_owner(-1, weapon_aw50, entity); if(get_user_aw50(Owner) && is_valid_ent(_AW50) && equal(model, "models/w_awp.mdl")) { entity_set_int(_AW50, EV_INT_impulse, AW50_WEAPONKEY); HaveAW50[Owner] = false; entity_set_model(entity, AW50Model_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public AW50_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_AW50 && get_user_aw50(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public AW50_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != aw50_event) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public AW50_PrecacheEvent_Post(type, const name[]) { if (equal("events/awp.sc", name)) { aw50_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public AW50_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_AW50 && get_user_aw50(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(aw50damage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(aw50damage)); } } } } public AW50_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_AW50) return HAM_IGNORED; if(!get_user_aw50(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public AW50_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == AW50_WEAPONKEY) { HaveAW50[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, AW50_WEAPONKEY) } } public AW50_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_aw50(Owner)) { set_pev(Owner, pev_viewmodel2, AW50Model_V); set_pev(Owner, pev_weaponmodel2, AW50Model_P); set_pdata_float(Owner, 83, 1.13, 5); set_weapon_anim(Owner, 5); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) aw50_reload[Owner] = 0; } } public AW50_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if (get_user_aw50(id)) { pev(id,pev_punchangle,cl_pushangle[id]); aw50_clip[id] = cs_get_weapon_ammo(Weapon); } } public AW50_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; if(aw50_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_aw50(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(aw50recoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, AW50_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(1,3)); } } } public AW50_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_aw50(id)) return HAM_IGNORED; aw50_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_AW50); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(aw50clip)) return HAM_SUPERCEDE; aw50_clip[id] = Clip; aw50_reload[id] = 1; return HAM_IGNORED; } public AW50_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_aw50(id)) return HAM_IGNORED; if(aw50_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(aw50reloadtime); set_pdata_int(ent, 51, aw50_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 3); set_weapon_anim(id, 4); return HAM_IGNORED; } public AW50_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_aw50(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_AW50); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(aw50clip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_AW50, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; aw50_reload[id] = 0; } return HAM_IGNORED; } public Hook_AW50(id) { engclient_cmd(id, weapon_aw50); } public get_user_aw50(id) { return HaveAW50[id]; } public set_user_aw50(id, aw50) { if(aw50) { if(!HaveAW50[id]) { drop_primary_weapons(id); HaveAW50[id] = true; aw50_reload[id] = 0; WeaponList(id, AW50_WEAPONKEY) fm_give_item(id, weapon_aw50); new Clip = fm_get_user_weapon_entity(id, CSW_AW50); cs_set_weapon_ammo(Clip, get_pcvar_num(aw50clip)); } } else { if(HaveAW50[id]) { HaveAW50[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //------------------------------------------| M79 |---------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined M79 M79_Init() { register_clcmd("furien30_m79", "Hook_M79"); register_event("CurWeapon", "M79_ViewModel", "be", "1=1"); register_event("WeapPickup","M79_ViewModel","b","1=19"); register_forward(FM_SetModel, "M79_WorldModel"); register_forward(FM_UpdateClientData, "M79_UpdateClientData", 1); register_forward(FM_CmdStart, "M79_CmdStart"); RegisterHam(Ham_Item_Deploy , weapon_m79, "M79_Deploy_Post", 1); RegisterHam(Ham_Item_Holster , weapon_m79, "M79_Holster"); RegisterHam(Ham_Item_AddToPlayer, weapon_m79, "M79_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_m79, "M79_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_m79, "M79_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_m79, "M79_PostFrame"); register_touch(M79_CLASS, "*", "M79_Touch"); m79damage = register_cvar("furien30_m79_damage", "150"); //| M79 Damage |// m79radius = register_cvar("furien30_m79_radius", "220.0"); //| M79 Recoil |// m79knockback = register_cvar("furien30_m79_knockback" ,"4"); //| M79 KnockBack |// m79reloadtime = register_cvar("furien30_m79_reload_time", "2.83"); //| M79 Reload Time |// } M79_Precache() { m79_trail = precache_model("sprites/xbeam3.spr"); m79_explode = precache_model("sprites/furien30_weapons/explode.spr"); precache_model(M79Model_V); precache_model(M79Model_P); precache_model(M79Model_W); precache_model(M79Model_S); for(new i = 0; i < sizeof(M79_Sound); i++) engfunc(EngFunc_PrecacheSound, M79_Sound[i]); for(new i = 0; i < sizeof(M79_Generic); i++) engfunc(EngFunc_PrecacheGeneric, M79_Generic[i]); } M79_Natives() { register_native("get_user_m79", "get_user_m79", 1); register_native("set_user_m79", "set_user_m79", 1); } M79_Menu(id, const Num[] = "1") { new _M79[256]; if(VIPSILVER_LEVEL || get_user_flags(id) & VIPGOLD_LEVEL) formatex(_M79,sizeof(_M79)-1,"\wM79"); else formatex(_M79,sizeof(_M79)-1,"\dM79 \w- \rOnly VIP"); menu_additem(Menu, _M79, Num, 0); } public M79_ViewModel(id) { if(get_user_weapon(id) == CSW_M79 && get_user_m79(id)) { set_pev(id, pev_viewmodel2, M79Model_V); set_pev(id, pev_weaponmodel2, M79Model_P); set_pdata_int(id, 361, get_pdata_int(id, 361) | (1<<6)); } } public M79_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new _M79 = find_ent_by_owner(-1, weapon_m79, entity); if(get_user_m79(Owner) && is_valid_ent(_M79) && equal(model, "models/w_deagle.mdl")) { entity_set_int(_M79, EV_INT_impulse, M79_WEAPONKEY); HaveM79[Owner] = false; entity_set_model(entity, M79Model_W); set_pdata_int(Owner, 361, get_pdata_int(Owner, 361) & ~ (1<<6)); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public M79_UpdateClientData(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_M79 && get_user_m79(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public M79_CmdStart(id, uc_handle, seed) { if(is_user_alive(id) && is_user_connected(id)) { static CurButton; CurButton = get_uc(uc_handle, UC_Buttons); new Float:NextAttack = get_pdata_float(id, 83, 5); if(CurButton & IN_ATTACK) { if(get_user_weapon(id) == CSW_M79 && get_user_m79(id)) { static _M79; _M79 = fm_find_ent_by_owner(-1, weapon_m79, id); if(cs_get_weapon_ammo(_M79) > 0 && !m79_reload[id] && NextAttack <= 0.0) { set_weapon_anim(id, random_num(1,2)); emit_sound(id, CHAN_WEAPON, M79_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); M79_Fire(id); static Float:Punch_Angles[3]; Punch_Angles[0] = random_float(-7.0, -10.0); Punch_Angles[1] = 0.0; Punch_Angles[2] = 0.0; set_pev(id, pev_punchangle, Punch_Angles); cs_set_weapon_ammo(_M79, cs_get_weapon_ammo(_M79) - 1); if(cs_get_weapon_ammo(_M79) > 0 && !m79_reload[id] && NextAttack <= 0.0) set_pdata_float(id, 83, m79_shotdelay, 5); } CurButton &= ~IN_ATTACK; set_uc(uc_handle, UC_Buttons, CurButton); } } } } public M79_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == M79_WEAPONKEY) { HaveM79[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, M79_WEAPONKEY) } } public M79_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_m79(Owner)) { set_pev(Owner, pev_viewmodel2, M79Model_V); set_pev(Owner, pev_weaponmodel2, M79Model_P); set_pdata_float(Owner, 83, 1.03, 5); set_weapon_anim(Owner, 5); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) m79_reload[Owner] = 0; set_pdata_int(Owner, 361, get_pdata_int(Owner, 361) | (1<<6)); } } public M79_Holster(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_m79(Owner)) { set_pdata_int(Owner, 361, get_pdata_int(Owner, 361) & ~ (1<<6)); } } public M79_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_m79(id)) return HAM_IGNORED; m79_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_M79); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= 1) return HAM_SUPERCEDE; m79_clip[id] = Clip; m79_reload[id] = 1; return HAM_IGNORED; } public M79_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_m79(id)) return HAM_IGNORED; if(m79_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(m79reloadtime); set_pdata_int(ent, 51, m79_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, random_num(1,2)); return HAM_IGNORED; } public M79_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_m79(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_M79); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(1 - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_M79, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; m79_reload[id] = 0; } return HAM_IGNORED; } public M79_Fire(id) { new ent, Float:Origin[3], Float:Angles[3], Float:Velocity[3]; ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); engfunc(EngFunc_GetAttachment, id, 0, Origin, Angles); pev(id, pev_angles, Angles); set_pev(ent, pev_origin, Origin); set_pev(ent, pev_angles, Angles); set_pev(ent, pev_solid, SOLID_SLIDEBOX); set_pev(ent, pev_movetype, MOVETYPE_BOUNCE); set_pev(ent, pev_classname, M79_CLASS); set_pev(ent, pev_owner, id); engfunc(EngFunc_SetModel, ent, M79Model_S); set_pev(ent, pev_mins, {-1.0, -1.0, -1.0}); set_pev(ent, pev_maxs, {1.0, 1.0, 1.0}); velocity_by_aim(id, 2000, Velocity); set_pev(ent, pev_velocity, Velocity); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BEAMFOLLOW); // TE id write_short(ent); // entity:attachment to follow write_short(m79_trail); // sprite index write_byte(10); // life in 0.1's write_byte(3); // line width in 0.1's write_byte(255); // r write_byte(255); // g write_byte(255); // b write_byte(200); // brightness message_end(); set_pev(ent, pev_iuser4, 0); } public M79_Touch(grenade, touch) { if(pev_valid(grenade)) { static Float:GrenadeOrigin[3]; pev(grenade, pev_origin, GrenadeOrigin); new id = pev(grenade, pev_owner); message_begin(MSG_BROADCAST ,SVC_TEMPENTITY); write_byte(TE_EXPLOSION); engfunc(EngFunc_WriteCoord, GrenadeOrigin[0]); engfunc(EngFunc_WriteCoord, GrenadeOrigin[1]); engfunc(EngFunc_WriteCoord, GrenadeOrigin[2]); write_short(m79_explode); // sprite index write_byte(20); // scale in 0.1's write_byte(30); // framerate write_byte(0); // flags message_end(); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_WORLDDECAL) engfunc(EngFunc_WriteCoord, GrenadeOrigin[0]) engfunc(EngFunc_WriteCoord, GrenadeOrigin[1]) engfunc(EngFunc_WriteCoord, GrenadeOrigin[2]) write_byte(random_num(46, 48)) message_end() if(is_user_connected(touch) && is_user_alive(touch) && !fm_get_user_godmode(touch) && get_user_team(touch) != get_user_team(id) && touch != id) { new Float:VictimOrigin[3] pev(touch, pev_origin, VictimOrigin); new Float:Damage = get_pcvar_float(m79damage) new BloodColor = ExecuteHam(Ham_BloodColor, touch); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(VictimOrigin[0])); write_coord(floatround(VictimOrigin[1])); write_coord(floatround(VictimOrigin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } make_knockback(touch, GrenadeOrigin, get_pcvar_float(m79knockback) * Damage); if(get_user_health(touch) > Damage) { ExecuteHam(Ham_TakeDamage, touch, id, id, Damage, DMG_BLAST); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, touch); write_byte(0); write_byte(0); write_long(DMG_BLAST); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, touch); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(255); write_byte(255); write_byte(255); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, touch); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else { death_message(id, touch, "M79"); } } else { static ClassName[32]; pev(touch, pev_classname, ClassName, charsmax(ClassName)); if(equal(ClassName, "func_breakable")) { if(entity_get_float(touch, EV_FL_health) <= get_pcvar_num(m79damage)) { force_use(id, touch); } } } for(new Victim = 1; Victim < get_maxplayers(); Victim++) { if(is_user_connected(Victim) && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id) && Victim != id && Victim != touch) { new Float:VictimOrigin[3], Float:Distance_F, Distance; pev(Victim, pev_origin, VictimOrigin); Distance_F = get_distance_f(GrenadeOrigin, VictimOrigin); Distance = floatround(Distance_F); if(Distance <= get_pcvar_float(m79radius)) { new Float:DistanceRatio, Float:Damage; DistanceRatio = floatdiv(float(Distance), get_pcvar_float(m79radius)); Damage = get_pcvar_float(m79damage) - floatround(floatmul(get_pcvar_float(m79damage), DistanceRatio)); new BloodColor = ExecuteHam(Ham_BloodColor, Victim); if(BloodColor != -1) { new Amount = floatround(Damage); Amount *= 2; //according to HLSDK message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(floatround(VictimOrigin[0])); write_coord(floatround(VictimOrigin[1])); write_coord(floatround(VictimOrigin[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(BloodColor); write_byte(min(max(3, Amount/10), 16)); message_end(); } make_knockback(Victim, GrenadeOrigin, get_pcvar_float(m79knockback)*Damage); if(get_user_health(Victim) > Damage) { ExecuteHam(Ham_TakeDamage, Victim, id, id, Damage, DMG_BLAST); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, Victim); write_byte(0); write_byte(0); write_long(DMG_BLAST); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, Victim); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(255); write_byte(255); write_byte(255); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, Victim); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else { death_message(id, Victim, "M79"); } } } } engfunc(EngFunc_RemoveEntity, grenade); } } public Hook_M79(id) { engclient_cmd(id, weapon_m79); } public get_user_m79(id) { return HaveM79[id]; } public set_user_m79(id, m79) { if(m79) { if(!HaveM79[id]) { drop_secondary_weapons(id); HaveM79[id] = true; m79_reload[id] = 0; WeaponList(id, M79_WEAPONKEY) fm_give_item(id, weapon_m79); new Clip = fm_get_user_weapon_entity(id, CSW_M79); cs_set_weapon_ammo(Clip, 1); } } else { if(HaveM79[id]) { HaveM79[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //--------------------------------------| Dual Deagle |------------------------------------------------------ //======================================= sDs|Aragon* ======================================================= #if defined DUALDEAGLE DualDeagle_Init() { register_clcmd("furien30_dualdeagle", "Hook_DualDeagle"); register_message(get_user_msgid("DeathMsg"), "DualDeagle_DeathMsg"); register_event("CurWeapon", "DualDeagle_ViewModel", "be", "1=1"); register_event("WeapPickup","DualDeagle_ViewModel","b","1=19"); register_forward(FM_SetModel, "DualDeagle_WorldModel"); register_forward(FM_UpdateClientData, "DualDeagle_UpdateClientData", 1); register_forward(FM_PlaybackEvent, "DualDeagle_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "DualDeagle_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "DualDeagle_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "DualDeagle_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "DualDeagle_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "DualDeagle_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "DualDeagle_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "DualDeagle_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "DualDeagle_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "DualDeagle_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_dualdeagle, "DualDeagle_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_dualdeagle, "DualDeagle_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_dualdeagle, "DualDeagle_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_dualdeagle, "DualDeagle_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_dualdeagle, "DualDeagle_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_dualdeagle, "DualDeagle_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_dualdeagle, "DualDeagle_PostFrame"); dualdeagledamage = register_cvar("furien30_dualdeagle_damage", "45"); //| DualDeagle Damage |// dualdeagleclip = register_cvar("furien30_dualdeagle_clip", "14"); //| DualDeagle Clip |// dualdeaglereloadtime = register_cvar("furien30_dualdeagle_reload_time", "4.6"); //| DualDeagle Reload Time |// dualdeaglerecoil = register_cvar("furien30_dualdeagle_recoil", "0.8"); //| DualDeagle Recoil |// } DualDeagle_Precache() { register_forward(FM_PrecacheEvent, "DualDeagle_PrecacheEvent_Post", 1); precache_model(DualDeagleModel_V); precache_model(DualDeagleModel_P); precache_model(DualDeagleModel_W); for(new i = 0; i < sizeof(DualDeagle_Sound); i++) engfunc(EngFunc_PrecacheSound, DualDeagle_Sound[i]); for(new i = 0; i < sizeof(DualDeagle_Generic); i++) engfunc(EngFunc_PrecacheGeneric, DualDeagle_Generic[i]); } DualDeagle_Natives() { register_native("get_user_dualdeagle", "get_user_dualdeagle", 1); register_native("set_user_dualdeagle", "set_user_dualdeagle", 1); } DualDeagle_Menu(const Num[] = "1") { new DualDeagle[256]; formatex(DualDeagle,sizeof(DualDeagle)-1,"\wDualDeagle"); menu_additem(Menu, DualDeagle, Num, 0); } public DualDeagle_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "elite") && get_user_weapon(Attacker) == CSW_DUALDEAGLE) { if(get_user_dualdeagle(Attacker)) set_msg_arg_string(4, "Dual Deagle"); } return PLUGIN_CONTINUE; } public DualDeagle_ViewModel(id) { if(get_user_weapon(id) == CSW_DUALDEAGLE && get_user_dualdeagle(id)) { set_pev(id, pev_viewmodel2, DualDeagleModel_V); set_pev(id, pev_weaponmodel2, DualDeagleModel_P); } } public DualDeagle_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new DualDeagle = find_ent_by_owner(-1, weapon_dualdeagle, entity); if(get_user_dualdeagle(Owner) && is_valid_ent(DualDeagle) && equal(model, "models/w_elite.mdl")) { entity_set_int(DualDeagle, EV_INT_impulse, DUALDEAGLE_WEAPONKEY); HaveDualDeagle[Owner] = false; entity_set_model(entity, DualDeagleModel_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public DualDeagle_UpdateClientData(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_DUALDEAGLE && get_user_dualdeagle(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public DualDeagle_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != dualdeagle_event || !IsInPrimaryAttack) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public DualDeagle_PrecacheEvent_Post(type, const name[]) { if(equal("events/elite.sc", name)) { dualdeagle_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public DualDeagle_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_DUALDEAGLE && get_user_dualdeagle(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(dualdeagledamage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(dualdeagledamage)); } } } } public DualDeagle_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_DUALDEAGLE) return HAM_IGNORED; if(!get_user_dualdeagle(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public DualDeagle_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == DUALDEAGLE_WEAPONKEY) { HaveDualDeagle[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, DUALDEAGLE_WEAPONKEY) } } public DualDeagle_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_dualdeagle(Owner)) { set_pev(Owner, pev_viewmodel2, DualDeagleModel_V); set_pev(Owner, pev_weaponmodel2, DualDeagleModel_P); set_pdata_float(Owner, 83, 1.03, 5); set_weapon_anim(Owner, 15); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) dualdeagle_reload[Owner] = 0; } } public DualDeagle_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if(get_user_dualdeagle(id)) { IsInPrimaryAttack = true; pev(id,pev_punchangle,cl_pushangle[id]); dualdeagle_clip[id] = cs_get_weapon_ammo(Weapon); } } public DualDeagle_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373); IsInPrimaryAttack = false; if(dualdeagle_clip[id] > cs_get_weapon_ammo(Weapon) && dualdeagle_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_dualdeagle(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(dualdeaglerecoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, DualDeagle_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); switch(random_num(0, 1)) { case 0: set_weapon_anim(id, random_num(2,6)); case 1: set_weapon_anim(id, random_num(8,12)); } return HAM_SUPERCEDE; } return HAM_IGNORED; } return HAM_IGNORED; } public DualDeagle_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_dualdeagle(id)) return HAM_IGNORED; dualdeagle_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_DUALDEAGLE); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(dualdeagleclip)) return HAM_SUPERCEDE; dualdeagle_clip[id] = Clip; dualdeagle_reload[id] = 1; return HAM_IGNORED; } public DualDeagle_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_dualdeagle(id)) return HAM_IGNORED; if(dualdeagle_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(dualdeaglereloadtime); set_pdata_int(ent, 51, dualdeagle_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 14); return HAM_IGNORED; } public DualDeagle_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_dualdeagle(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_DUALDEAGLE); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(dualdeagleclip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_DUALDEAGLE, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; dualdeagle_reload[id] = 0; } return HAM_IGNORED; } public Hook_DualDeagle(id) { engclient_cmd(id, weapon_dualdeagle); } public get_user_dualdeagle(id) { return HaveDualDeagle[id]; } public set_user_dualdeagle(id, dualdeagle) { if(dualdeagle) { if(!HaveDualDeagle[id]) { drop_secondary_weapons(id); HaveDualDeagle[id] = true; dualdeagle_reload[id] = 0; WeaponList(id, DUALDEAGLE_WEAPONKEY) fm_give_item(id, weapon_dualdeagle); new Clip = fm_get_user_weapon_entity(id, CSW_DUALDEAGLE); cs_set_weapon_ammo(Clip, get_pcvar_num(dualdeagleclip)); } } else { if(HaveDualDeagle[id]) { HaveDualDeagle[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //---------------------------------------| Infinity |-------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined INFINITY Infinity_Init() { register_clcmd("furien30_infinity", "Hook_Infinity"); register_message(get_user_msgid("DeathMsg"), "Infinity_DeathMsg"); register_event("CurWeapon", "Infinity_ViewModel", "be", "1=1"); register_event("WeapPickup","Infinity_ViewModel","b","1=19"); register_forward(FM_SetModel, "Infinity_WorldModel"); register_forward(FM_UpdateClientData, "Infinity_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "Infinity_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "Infinity_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "Infinity_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "Infinity_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "Infinity_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "Infinity_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "Infinity_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "Infinity_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "Infinity_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "Infinity_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_infinity, "Infinity_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_infinity, "Infinity_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_infinity, "Infinity_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_infinity, "Infinity_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_infinity, "Infinity_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_infinity, "Infinity_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_infinity, "Infinity_PostFrame"); infinitydamage = register_cvar("furien30_infinity_damage", "40"); //| Infinity Damage |// infinityclip = register_cvar("furien30_infinity_clip", "16"); //| Infinity Clip |// infinityreloadtime = register_cvar("furien30_infinity_reload_time", "4.03"); //| Infinity Reload Time |// infinityrecoil = register_cvar("furien30_infinity_recoil", "0.8"); //| Infinity Recoil |// } Infinity_Precache() { register_forward(FM_PrecacheEvent, "Infinity_PrecacheEvent_Post", 1); precache_model(InfinityModel_V); precache_model(InfinityModel_P); precache_model(InfinityModel_W); for(new i = 0; i < sizeof(Infinity_Sound); i++) engfunc(EngFunc_PrecacheSound, Infinity_Sound[i]); for(new i = 0; i < sizeof(Infinity_Generic); i++) engfunc(EngFunc_PrecacheGeneric, Infinity_Generic[i]); } Infinity_Natives() { register_native("get_user_infinity", "get_user_infinity", 1); register_native("set_user_infinity", "set_user_infinity", 1); } Infinity_Menu(const Num[] = "1") { new Infinity[256]; formatex(Infinity,sizeof(Infinity)-1,"\wInfinity"); menu_additem(Menu, Infinity, Num, 0); } public Infinity_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "elite") && get_user_weapon(Attacker) == CSW_INFINITY) { if(get_user_infinity(Attacker)) set_msg_arg_string(4, "Infinity"); } return PLUGIN_CONTINUE; } public Infinity_ViewModel(id) { if(get_user_weapon(id) == CSW_INFINITY && get_user_infinity(id)) { set_pev(id, pev_viewmodel2, InfinityModel_V); set_pev(id, pev_weaponmodel2, InfinityModel_P); } } public Infinity_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new Infinity = find_ent_by_owner(-1, weapon_infinity, entity); if(get_user_infinity(Owner) && is_valid_ent(Infinity) && equal(model, "models/w_elite.mdl")) { entity_set_int(Infinity, EV_INT_impulse, INFINITY_WEAPONKEY); HaveInfinity[Owner] = false; entity_set_model(entity, InfinityModel_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public Infinity_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_INFINITY && get_user_infinity(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public Infinity_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != infinity_event || !IsInPrimaryAttack) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public Infinity_PrecacheEvent_Post(type, const name[]) { if(equal("events/elite.sc", name)) { infinity_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public Infinity_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_INFINITY && get_user_infinity(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(infinitydamage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(infinitydamage)); } } } } public Infinity_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_INFINITY) return HAM_IGNORED; if(!get_user_infinity(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public Infinity_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == INFINITY_WEAPONKEY) { HaveInfinity[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, INFINITY_WEAPONKEY) } } public Infinity_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_infinity(Owner)) { set_pev(Owner, pev_viewmodel2, InfinityModel_V); set_pev(Owner, pev_weaponmodel2, InfinityModel_P); set_pdata_float(Owner, 83, 1.23, 5); set_weapon_anim(Owner, 15); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) infinity_reload[Owner] = 0; } } public Infinity_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if(get_user_infinity(id)) { IsInPrimaryAttack = true; pev(id,pev_punchangle,cl_pushangle[id]); infinity_clip[id] = cs_get_weapon_ammo(Weapon); } } public Infinity_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373); IsInPrimaryAttack = false; if(infinity_clip[id] > cs_get_weapon_ammo(Weapon) && infinity_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_infinity(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(infinityrecoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, Infinity_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); switch(random_num(0, 1)) { case 0: set_weapon_anim(id, random_num(2,6)); case 1: set_weapon_anim(id, random_num(8,12)); } return HAM_SUPERCEDE; } return HAM_IGNORED; } return HAM_IGNORED; } public Infinity_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_infinity(id)) return HAM_IGNORED; infinity_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_INFINITY); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(infinityclip)) return HAM_SUPERCEDE; infinity_clip[id] = Clip; infinity_reload[id] = 1; return HAM_IGNORED; } public Infinity_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_infinity(id)) return HAM_IGNORED; if(infinity_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(infinityreloadtime); set_pdata_int(ent, 51, infinity_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 14); return HAM_IGNORED; } public Infinity_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_infinity(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_INFINITY); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(infinityclip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_INFINITY, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; infinity_reload[id] = 0; } return HAM_IGNORED; } public Hook_Infinity(id) { engclient_cmd(id, weapon_infinity); } public get_user_infinity(id) { return HaveInfinity[id]; } public set_user_infinity(id, infinity) { if(infinity) { if(!HaveInfinity[id]) { drop_secondary_weapons(id); HaveInfinity[id] = true; infinity_reload[id] = 0; WeaponList(id, INFINITY_WEAPONKEY) fm_give_item(id, weapon_infinity); new Clip = fm_get_user_weapon_entity(id, CSW_INFINITY); cs_set_weapon_ammo(Clip, get_pcvar_num(infinityclip)); } } else { if(HaveInfinity[id]) { HaveInfinity[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //--------------------------------------| DeagleGold |------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined DEAGLEGOLD DeagleGold_Init() { register_clcmd("furien30_deaglegold", "Hook_DeagleGold"); register_message(get_user_msgid("DeathMsg"), "DeagleGold_DeathMsg"); register_event("CurWeapon", "DeagleGold_ViewModel", "be", "1=1"); register_event("WeapPickup","DeagleGold_ViewModel","b","1=19"); register_forward(FM_SetModel, "DeagleGold_WorldModel"); register_forward(FM_UpdateClientData, "DeagleGold_UpdateClientData", 1); register_forward(FM_PlaybackEvent, "DeagleGold_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "DeagleGold_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "DeagleGold_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "DeagleGold_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "DeagleGold_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "DeagleGold_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "DeagleGold_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "DeagleGold_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "DeagleGold_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "DeagleGold_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_deaglegold, "DeagleGold_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_deaglegold, "DeagleGold_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_deaglegold, "DeagleGold_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_deaglegold, "DeagleGold_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_deaglegold, "DeagleGold_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_deaglegold, "DeagleGold_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_deaglegold, "DeagleGold_PostFrame"); deaglegolddamage = register_cvar("furien30_deaglegold_damage", "50"); //| DeagleGold Damage |// deaglegoldclip = register_cvar("furien30_deaglegold_clip", "7"); //| DeagleGold Clip |// deaglegoldreloadtime = register_cvar("furien30_deaglegold_reload_time", "2.2"); //| DeagleGold Reload Time |// deaglegoldrecoil = register_cvar("furien30_deaglegold_recoil", "0.8"); //| DeagleGold Recoil |// } DeagleGold_Precache() { register_forward(FM_PrecacheEvent, "DeagleGold_PrecacheEvent_Post", 1); precache_model(DeagleGoldModel_V); precache_model(DeagleGoldModel_P); precache_model(DeagleGoldModel_W); for(new i = 0; i < sizeof(DeagleGold_Sound); i++) engfunc(EngFunc_PrecacheSound, DeagleGold_Sound[i]); } DeagleGold_Natives() { register_native("get_user_deaglegold", "get_user_deaglegold", 1); register_native("set_user_deaglegold", "set_user_deaglegold", 1); } DeagleGold_Menu(const Num[] = "1") { new DeagleGold[256]; formatex(DeagleGold,sizeof(DeagleGold)-1,"\wDeagleGold"); menu_additem(Menu, DeagleGold, Num, 0); } public DeagleGold_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "deagle") && get_user_weapon(Attacker) == CSW_DEAGLEGOLD) { if(get_user_deaglegold(Attacker)) set_msg_arg_string(4, "Deagle Gold"); } return PLUGIN_CONTINUE; } public DeagleGold_ViewModel(id) { if(get_user_weapon(id) == CSW_DEAGLEGOLD && get_user_deaglegold(id)) { set_pev(id, pev_viewmodel2, DeagleGoldModel_V); set_pev(id, pev_weaponmodel2, DeagleGoldModel_P); } } public DeagleGold_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new DeagleGold = find_ent_by_owner(-1, weapon_deaglegold, entity); if(get_user_deaglegold(Owner) && is_valid_ent(DeagleGold) && equal(model, "models/w_deagle.mdl")) { entity_set_int(DeagleGold, EV_INT_impulse, DEAGLEGOLD_WEAPONKEY); HaveDeagleGold[Owner] = false; entity_set_model(entity, DeagleGoldModel_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public DeagleGold_UpdateClientData(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_DEAGLEGOLD && get_user_deaglegold(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public DeagleGold_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != deaglegold_event || !IsInPrimaryAttack) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public DeagleGold_PrecacheEvent_Post(type, const name[]) { if(equal("events/deagle.sc", name)) { deaglegold_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public DeagleGold_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_DEAGLEGOLD && get_user_deaglegold(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(deaglegolddamage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(deaglegolddamage)); } } } } public DeagleGold_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_DEAGLEGOLD) return HAM_IGNORED; if(!get_user_deaglegold(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public DeagleGold_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == DEAGLEGOLD_WEAPONKEY) { HaveDeagleGold[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, DEAGLEGOLD_WEAPONKEY) } } public DeagleGold_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_deaglegold(Owner)) { set_pev(Owner, pev_viewmodel2, DeagleGoldModel_V); set_pev(Owner, pev_weaponmodel2, DeagleGoldModel_P); set_pdata_float(Owner, 83, 1.03, 5); set_weapon_anim(Owner, 5); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) deaglegold_reload[Owner] = 0; } } public DeagleGold_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if(get_user_deaglegold(id)) { IsInPrimaryAttack = true; pev(id,pev_punchangle,cl_pushangle[id]); deaglegold_clip[id] = cs_get_weapon_ammo(Weapon); } } public DeagleGold_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; IsInPrimaryAttack = false; if(deaglegold_clip[id] > cs_get_weapon_ammo(Weapon) && deaglegold_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_deaglegold(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(deaglegoldrecoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, DeagleGold_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(1,2)); return HAM_SUPERCEDE; } return HAM_IGNORED; } return HAM_IGNORED; } public DeagleGold_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_deaglegold(id)) return HAM_IGNORED; deaglegold_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_DEAGLEGOLD); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(deaglegoldclip)) return HAM_SUPERCEDE; deaglegold_clip[id] = Clip; deaglegold_reload[id] = 1; return HAM_IGNORED; } public DeagleGold_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_deaglegold(id)) return HAM_IGNORED; if(deaglegold_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(deaglegoldreloadtime); set_pdata_int(ent, 51, deaglegold_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 4); return HAM_IGNORED; } public DeagleGold_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_deaglegold(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_DEAGLEGOLD); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(deaglegoldclip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_DEAGLEGOLD, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; deaglegold_reload[id] = 0; } return HAM_IGNORED; } public Hook_DeagleGold(id) { engclient_cmd(id, weapon_deaglegold); } public get_user_deaglegold(id) { return HaveDeagleGold[id]; } public set_user_deaglegold(id, deaglegold) { if(deaglegold) { if(!HaveDeagleGold[id]) { drop_secondary_weapons(id); HaveDeagleGold[id] = true; deaglegold_reload[id] = 0; WeaponList(id, DEAGLEGOLD_WEAPONKEY) fm_give_item(id, weapon_deaglegold); new Clip = fm_get_user_weapon_entity(id, CSW_DEAGLEGOLD); cs_set_weapon_ammo(Clip, get_pcvar_num(deaglegoldclip)); } } else { if(HaveDeagleGold[id]) { HaveDeagleGold[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //-----------------------------------------| K5 |---------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined K5 K5_Init() { register_clcmd("furien30_k5", "Hook_K5"); register_message(get_user_msgid("DeathMsg"), "K5_DeathMsg"); register_event("CurWeapon", "K5_ViewModel", "be", "1=1"); register_event("WeapPickup","K5_ViewModel","b","1=19"); register_forward(FM_SetModel, "K5_WorldModel"); register_forward(FM_UpdateClientData, "K5_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "K5_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "K5_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "K5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "K5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "K5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "K5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "K5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "K5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "K5_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "K5_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_k5, "K5_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_k5, "K5_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_k5, "K5_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_k5, "K5_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_k5, "K5_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_k5, "K5_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_k5, "K5_PostFrame"); k5damage = register_cvar("furien30_k5_damage", "45"); //| K5 Damage |// k5clip = register_cvar("furien30_k5_clip", "12"); //| K5 Clip |// k5reloadtime = register_cvar("furien30_k5_reload_time", "2.32"); //| K5 Reload Time |// k5recoil = register_cvar("furien30_k5_recoil", "0.8"); //| K5 Recoil |// } K5_Precache() { register_forward(FM_PrecacheEvent, "K5_PrecacheEvent_Post", 1); precache_model(K5Model_V); precache_model(K5Model_P); precache_model(K5Model_W); for(new i = 0; i < sizeof(K5_Sound); i++) engfunc(EngFunc_PrecacheSound, K5_Sound[i]); } K5_Natives() { register_native("get_user_k5", "get_user_k5", 1); register_native("set_user_k5", "set_user_k5", 1); } K5_Menu(const Num[] = "1") { new _K5[256]; formatex(_K5,sizeof(_K5)-1,"\wK5"); menu_additem(Menu, _K5, Num, 0); } public K5_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "p228") && get_user_weapon(Attacker) == CSW_K5) { if(get_user_k5(Attacker)) set_msg_arg_string(4, "K5"); } return PLUGIN_CONTINUE; } public K5_ViewModel(id) { if(get_user_weapon(id) == CSW_K5 && get_user_k5(id)) { set_pev(id, pev_viewmodel2, K5Model_V); set_pev(id, pev_weaponmodel2, K5Model_P); } } public K5_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new _K5 = find_ent_by_owner(-1, weapon_k5, entity); if(get_user_k5(Owner) && is_valid_ent(_K5) && equal(model, "models/w_p228.mdl")) { entity_set_int(_K5, EV_INT_impulse, K5_WEAPONKEY); HaveK5[Owner] = false; entity_set_model(entity, K5Model_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public K5_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_K5 && get_user_k5(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public K5_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != k5_event || !IsInPrimaryAttack) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public K5_PrecacheEvent_Post(type, const name[]) { if(equal("events/p228.sc", name)) { k5_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public K5_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_K5 && get_user_k5(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(k5damage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(k5damage)); } } } } public K5_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_K5) return HAM_IGNORED; if(!get_user_k5(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public K5_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == K5_WEAPONKEY) { HaveK5[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, K5_WEAPONKEY) } } public K5_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_k5(Owner)) { set_pev(Owner, pev_viewmodel2, K5Model_V); set_pev(Owner, pev_weaponmodel2, K5Model_P); set_pdata_float(Owner, 83, 1.32, 5); set_weapon_anim(Owner, 6); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) k5_reload[Owner] = 0; } } public K5_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if(get_user_k5(id)) { IsInPrimaryAttack = true; pev(id,pev_punchangle,cl_pushangle[id]); k5_clip[id] = cs_get_weapon_ammo(Weapon); } } public K5_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373) ; IsInPrimaryAttack = false; if(k5_clip[id] > cs_get_weapon_ammo(Weapon) && k5_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_k5(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(k5recoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, K5_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(1,2)); return HAM_SUPERCEDE; } return HAM_IGNORED; } return HAM_IGNORED; } public K5_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_k5(id)) return HAM_IGNORED; k5_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_K5); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(k5clip)) return HAM_SUPERCEDE; k5_clip[id] = Clip; k5_reload[id] = 1; return HAM_IGNORED; } public K5_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_k5(id)) return HAM_IGNORED; if(k5_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(k5reloadtime); set_pdata_int(ent, 51, k5_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 5); return HAM_IGNORED; } public K5_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_k5(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_K5); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(k5clip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_K5, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; k5_reload[id] = 0; } return HAM_IGNORED; } public Hook_K5(id) { engclient_cmd(id, weapon_k5); } public get_user_k5(id) { return HaveK5[id]; } public set_user_k5(id, k5) { if(k5) { if(!HaveK5[id]) { drop_secondary_weapons(id); HaveK5[id] = true; k5_reload[id] = 0; WeaponList(id, K5_WEAPONKEY) fm_give_item(id, weapon_k5); new Clip = fm_get_user_weapon_entity(id, CSW_K5); cs_set_weapon_ammo(Clip, get_pcvar_num(k5clip)); } } else { if(HaveK5[id]) { HaveK5[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //-----------------------------------------| Skull1 |---------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined SKULL1 Skull1_Init() { register_clcmd("furien30_skull1", "Hook_Skull1"); register_message(get_user_msgid("DeathMsg"), "Skull1_DeathMsg"); register_event("CurWeapon", "Skull1_ViewModel", "be", "1=1"); register_event("WeapPickup","Skull1_ViewModel","b","1=19"); register_forward(FM_SetModel, "Skull1_WorldModel"); register_forward(FM_UpdateClientData, "Skull1_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "Skull1_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "Skull1_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "Skull1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "Skull1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "Skull1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "Skull1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "Skull1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "Skull1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "Skull1_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "Skull1_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_skull1, "Skull1_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_skull1, "Skull1_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_skull1, "Skull1_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_skull1, "Skull1_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_skull1, "Skull1_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_skull1, "Skull1_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_skull1, "Skull1_PostFrame"); skull1damage = register_cvar("furien30_skull1_damage", "55"); //| Skull1 Damage |// skull1clip = register_cvar("furien30_skull1_clip", "7"); //| Skull1 Clip |// skull1reloadtime = register_cvar("furien30_skull1_reload_time", "2.53"); //| Skull1 Reload Time |// skull1recoil = register_cvar("furien30_skull1_recoil", "0.8"); //| Skull1 Recoil |// } Skull1_Precache() { register_forward(FM_PrecacheEvent, "Skull1_PrecacheEvent_Post", 1); precache_model(Skull1Model_V); precache_model(Skull1Model_P); precache_model(Skull1Model_W); for(new i = 0; i < sizeof(Skull1_Sound); i++) engfunc(EngFunc_PrecacheSound, Skull1_Sound[i]); for(new i = 0; i < sizeof(Skull1_Generic); i++) engfunc(EngFunc_PrecacheGeneric, Skull1_Generic[i]); } Skull1_Natives() { register_native("get_user_skull1", "get_user_skull1", 1); register_native("set_user_skull1", "set_user_skull1", 1); } Skull1_Menu(const Num[] = "1") { new Skull1[256]; formatex(Skull1,sizeof(Skull1)-1,"\wSkull1"); menu_additem(Menu, Skull1, Num, 0); } public Skull1_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "deagle") && get_user_weapon(Attacker) == CSW_SKULL1) { if(get_user_skull1(Attacker)) set_msg_arg_string(4, "Skull1"); } return PLUGIN_CONTINUE; } public Skull1_ViewModel(id) { if(get_user_weapon(id) == CSW_SKULL1 && get_user_skull1(id)) { set_pev(id, pev_viewmodel2, Skull1Model_V); set_pev(id, pev_weaponmodel2, Skull1Model_P); } } public Skull1_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new Skull1 = find_ent_by_owner(-1, weapon_skull1, entity); if(get_user_skull1(Owner) && is_valid_ent(Skull1) && equal(model, "models/w_deagle.mdl")) { entity_set_int(Skull1, EV_INT_impulse, SKULL1_WEAPONKEY); HaveSkull1[Owner] = false; entity_set_model(entity, Skull1Model_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public Skull1_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_SKULL1 && get_user_skull1(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public Skull1_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != skull1_event || !IsInPrimaryAttack) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public Skull1_PrecacheEvent_Post(type, const name[]) { if(equal("events/deagle.sc", name)) { skull1_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public Skull1_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_SKULL1 && get_user_skull1(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(skull1damage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(skull1damage)); } } } } public Skull1_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_SKULL1) return HAM_IGNORED; if(!get_user_skull1(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public Skull1_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == SKULL1_WEAPONKEY) { HaveSkull1[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, SKULL1_WEAPONKEY) } } public Skull1_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_skull1(Owner)) { set_pev(Owner, pev_viewmodel2, Skull1Model_V); set_pev(Owner, pev_weaponmodel2, Skull1Model_P); set_pdata_float(Owner, 83, 1.01, 5); set_weapon_anim(Owner, 7); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) skull1_reload[Owner] = 0; } } public Skull1_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if(get_user_skull1(id)) { IsInPrimaryAttack = true; pev(id,pev_punchangle,cl_pushangle[id]); skull1_clip[id] = cs_get_weapon_ammo(Weapon); } } public Skull1_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373); IsInPrimaryAttack = false; if(skull1_clip[id] > cs_get_weapon_ammo(Weapon) && skull1_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_skull1(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(skull1recoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, Skull1_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(2,3)); return HAM_SUPERCEDE; } return HAM_IGNORED; } return HAM_IGNORED; } public Skull1_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_skull1(id)) return HAM_IGNORED; skull1_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_SKULL1); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(skull1clip)) return HAM_SUPERCEDE; skull1_clip[id] = Clip; skull1_reload[id] = 1; return HAM_IGNORED; } public Skull1_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_skull1(id)) return HAM_IGNORED; if(skull1_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(skull1reloadtime); set_pdata_int(ent, 51, skull1_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 6); return HAM_IGNORED; } public Skull1_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_skull1(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_SKULL1); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(skull1clip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_SKULL1, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; skull1_reload[id] = 0; } return HAM_IGNORED; } public Hook_Skull1(id) { engclient_cmd(id, weapon_skull1); } public get_user_skull1(id) { return HaveSkull1[id]; } public set_user_skull1(id, skull1) { if(skull1) { if(!HaveSkull1[id]) { drop_secondary_weapons(id); HaveSkull1[id] = true; skull1_reload[id] = 0; WeaponList(id, SKULL1_WEAPONKEY) fm_give_item(id, weapon_skull1); new Clip = fm_get_user_weapon_entity(id, CSW_SKULL1); cs_set_weapon_ammo(Clip, get_pcvar_num(skull1clip)); } } else { if(HaveSkull1[id]) { HaveSkull1[id] = false; } } } #endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //---------------------------------------| Anaconda |-------------------------------------------------------- //======================================= sDs|Aragon* ======================================================= #if defined ANACONDA Anaconda_Init() { register_clcmd("furien30_anaconda", "Hook_Anaconda"); register_message(get_user_msgid("DeathMsg"), "Anaconda_DeathMsg"); register_event("CurWeapon", "Anaconda_ViewModel", "be", "1=1"); register_event("WeapPickup","Anaconda_ViewModel","b","1=19"); register_forward(FM_SetModel, "Anaconda_WorldModel"); register_forward(FM_UpdateClientData, "Anaconda_UpdateClientData_Post", 1); register_forward(FM_PlaybackEvent, "Anaconda_PlaybackEvent"); RegisterHam(Ham_TakeDamage, "player", "Anaconda_TakeDamage"); RegisterHam(Ham_TraceAttack, "worldspawn", "Anaconda_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "player", "Anaconda_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_breakable", "Anaconda_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_wall", "Anaconda_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door", "Anaconda_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_door_rotating", "Anaconda_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_plat", "Anaconda_TraceAttack_Post", 1); RegisterHam(Ham_TraceAttack, "func_rotating", "Anaconda_TraceAttack_Post", 1); RegisterHam(Ham_Item_Deploy , weapon_anaconda, "Anaconda_Deploy_Post", 1); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_anaconda, "Anaconda_PrimaryAttack"); RegisterHam(Ham_Weapon_PrimaryAttack, weapon_anaconda, "Anaconda_PrimaryAttack_Post", 1); RegisterHam(Ham_Item_AddToPlayer, weapon_anaconda, "Anaconda_AddToPlayer"); RegisterHam(Ham_Weapon_Reload, weapon_anaconda, "Anaconda_Reload"); RegisterHam(Ham_Weapon_Reload, weapon_anaconda, "Anaconda_Reload_Post", 1); RegisterHam(Ham_Item_PostFrame, weapon_anaconda, "Anaconda_PostFrame"); anacondadamage = register_cvar("furien30_anaconda_damage", "50"); //| Anaconda Damage |// anacondaclip = register_cvar("furien30_anaconda_clip", "7"); //| Anaconda Clip |// anacondareloadtime = register_cvar("furien30_anaconda_reload_time", "2.33"); //| Anaconda Reload Time |// anacondarecoil = register_cvar("furien30_anaconda_recoil", "0.8"); //| Anaconda Recoil |// } Anaconda_Precache() { register_forward(FM_PrecacheEvent, "Anaconda_PrecacheEvent_Post", 1); precache_model(AnacondaModel_V); precache_model(AnacondaModel_P); precache_model(AnacondaModel_W); for(new i = 0; i < sizeof(Anaconda_Sound); i++) engfunc(EngFunc_PrecacheSound, Anaconda_Sound[i]); for(new i = 0; i < sizeof(Anaconda_Generic); i++) engfunc(EngFunc_PrecacheGeneric, Anaconda_Generic[i]); } Anaconda_Natives() { register_native("get_user_anaconda", "get_user_anaconda", 1); register_native("set_user_anaconda", "set_user_anaconda", 1); } Anaconda_Menu(const Num[] = "1") { new Anaconda[256]; formatex(Anaconda,sizeof(Anaconda)-1,"\wAnaconda"); menu_additem(Menu, Anaconda, Num, 0); } public Anaconda_DeathMsg(msg_id, msg_dest, id) { static TruncatedWeapon[33], Attacker, Victim; get_msg_arg_string(4, TruncatedWeapon, charsmax(TruncatedWeapon)); Attacker = get_msg_arg_int(1); Victim = get_msg_arg_int(2); if(!is_user_connected(Attacker) || Attacker == Victim) return PLUGIN_CONTINUE; if(equal(TruncatedWeapon, "deagle") && get_user_weapon(Attacker) == CSW_ANACONDA) { if(get_user_anaconda(Attacker)) set_msg_arg_string(4, "Anaconda"); } return PLUGIN_CONTINUE; } public Anaconda_ViewModel(id) { if(get_user_weapon(id) == CSW_ANACONDA && get_user_anaconda(id)) { set_pev(id, pev_viewmodel2, AnacondaModel_V); set_pev(id, pev_weaponmodel2, AnacondaModel_P); } } public Anaconda_WorldModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; static ClassName[33]; entity_get_string(entity, EV_SZ_classname, ClassName, charsmax(ClassName)); if(!equal(ClassName, "weaponbox")) return FMRES_IGNORED; new Owner = entity_get_edict(entity, EV_ENT_owner); new Anaconda = find_ent_by_owner(-1, weapon_anaconda, entity); if(get_user_anaconda(Owner) && is_valid_ent(Anaconda) && equal(model, "models/w_deagle.mdl")) { entity_set_int(Anaconda, EV_INT_impulse, ANACONDA_WEAPONKEY); HaveAnaconda[Owner] = false; entity_set_model(entity, AnacondaModel_W); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public Anaconda_UpdateClientData_Post(id, sendweapons, cd_handle) { if(is_user_alive(id) && is_user_connected(id)) { if(get_user_weapon(id) == CSW_ANACONDA && get_user_anaconda(id)) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001); } } public Anaconda_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if(!is_user_connected(invoker)) return FMRES_IGNORED; if(eventid != anaconda_event || !IsInPrimaryAttack) return FMRES_IGNORED; playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2); return FMRES_SUPERCEDE; } public Anaconda_PrecacheEvent_Post(type, const name[]) { if(equal("events/deagle.sc", name)) { anaconda_event = get_orig_retval(); return FMRES_HANDLED; } return FMRES_IGNORED; } public Anaconda_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) { if(is_user_connected(attacker) && !(damagetype & DMG_HEGRENADE)) { new Body, Target, Float:NewDamage; if(get_user_weapon(attacker) == CSW_ANACONDA && get_user_anaconda(attacker)) { if(is_user_connected(victim)) { get_user_aiming(attacker, Target, Body, 999999); NewDamage = float(get_damage_body(Body, get_pcvar_float(anacondadamage))); SetHamParamFloat(4, NewDamage); } else { SetHamParamFloat(4, get_pcvar_float(anacondadamage)); } } } } public Anaconda_TraceAttack_Post(ent, attacker, Float:Damage, Float:Dir[3], pentru, DamageType) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_weapon(attacker) != CSW_ANACONDA) return HAM_IGNORED; if(!get_user_anaconda(attacker)) return HAM_IGNORED; static Float:End[3]; get_tr2(pentru, TR_vecEndPos, End); Make_Bullet(attacker, End); return HAM_HANDLED; } public Anaconda_AddToPlayer(Weapon, id) { if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == ANACONDA_WEAPONKEY) { HaveAnaconda[id] = true; entity_set_int(Weapon, EV_INT_impulse, 0); WeaponList(id, ANACONDA_WEAPONKEY) } } public Anaconda_Deploy_Post(entity) { static Owner; Owner = get_pdata_cbase(entity, 41, 4); if(get_user_anaconda(Owner)) { set_pev(Owner, pev_viewmodel2, AnacondaModel_V); set_pev(Owner, pev_weaponmodel2, AnacondaModel_P); set_pdata_float(Owner, 83, 1.03, 5); set_weapon_anim(Owner, 5); static clip; clip = cs_get_weapon_ammo(entity); if(clip > 0) anaconda_reload[Owner] = 0; } } public Anaconda_PrimaryAttack(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); if(get_user_anaconda(id)) { IsInPrimaryAttack = true; pev(id,pev_punchangle,cl_pushangle[id]); anaconda_clip[id] = cs_get_weapon_ammo(Weapon); } } public Anaconda_PrimaryAttack_Post(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new ActiveItem = get_pdata_cbase(id, 373); IsInPrimaryAttack = false; if(anaconda_clip[id] > cs_get_weapon_ammo(Weapon) && anaconda_clip[id] > 0 && pev_valid(ActiveItem)) { if(is_user_alive(id) && get_user_anaconda(id)) { set_pdata_int(ActiveItem, 57, Shell, 4) ; set_pdata_float(id, 111, get_gametime()); new Float:Push[3]; pev(id,pev_punchangle,Push); xs_vec_sub(Push,cl_pushangle[id],Push); xs_vec_mul_scalar(Push,get_pcvar_float(anacondarecoil),Push); xs_vec_add(Push,cl_pushangle[id],Push); set_pev(id,pev_punchangle,Push); emit_sound(id, CHAN_WEAPON, Anaconda_Sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_weapon_anim(id, random_num(1,2)); return HAM_SUPERCEDE; } return HAM_IGNORED; } return HAM_IGNORED; } public Anaconda_Reload(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_anaconda(id)) return HAM_IGNORED; anaconda_clip[id] = -1; new Ammo = cs_get_user_bpammo(id, CSW_ANACONDA); if(Ammo <= 0) return HAM_SUPERCEDE; new Clip = get_pdata_int(ent, 51, 4); if(Clip >= get_pcvar_num(anacondaclip)) return HAM_SUPERCEDE; anaconda_clip[id] = Clip; anaconda_reload[id] = 1; return HAM_IGNORED; } public Anaconda_Reload_Post(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_anaconda(id)) return HAM_IGNORED; if(anaconda_clip[id] == -1) return HAM_IGNORED; new Float:reload_time = get_pcvar_float(anacondareloadtime); set_pdata_int(ent, 51, anaconda_clip[id], 4); set_pdata_float(ent, 48, reload_time, 4); set_pdata_float(id, 83, reload_time, 5); set_pdata_int(ent, 54, 1, 4); set_weapon_anim(id, 4); return HAM_IGNORED; } public Anaconda_PostFrame(ent) { if(!pev_valid(ent)) return HAM_IGNORED; new id; id = pev(ent, pev_owner); if(!is_user_alive(id) || !get_user_anaconda(id)) return HAM_IGNORED; new Float:NextAttack = get_pdata_float(id, 83, 5); new Ammo = cs_get_user_bpammo(id, CSW_ANACONDA); new Clip = get_pdata_int(ent, 51, 4); new InReload = get_pdata_int(ent, 54, 4); if(InReload && NextAttack <= 0.0) { new Temp = min(get_pcvar_num(anacondaclip) - Clip, Ammo); set_pdata_int(ent, 51, Clip + Temp, 4); cs_set_user_bpammo(id, CSW_ANACONDA, Ammo - Temp); set_pdata_int(ent, 54, 0, 4); InReload = 0; anaconda_reload[id] = 0; } return HAM_IGNORED; } public Hook_Anaconda(id) { engclient_cmd(id, weapon_anaconda); } public get_user_anaconda(id) { return HaveAnaconda[id]; } public set_user_anaconda(id, anaconda) { if(anaconda) { if(!HaveAnaconda[id]) { drop_secondary_weapons(id); HaveAnaconda[id] = true; anaconda_reload[id] = 0; WeaponList(id, ANACONDA_WEAPONKEY) fm_give_item(id, weapon_anaconda); new Clip = fm_get_user_weapon_entity(id, CSW_ANACONDA); cs_set_weapon_ammo(Clip, get_pcvar_num(anacondaclip)); } } else { if(HaveAnaconda[id]) { HaveAnaconda[id] = false; } } } #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////// // Stock's | //========================================================================================================== public WeaponList(id, WEAPONKEY) { new Message_WeaponList = get_user_msgid("WeaponList") switch(WEAPONKEY) { #if defined CROSSBOW case CROSSBOW_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveCrossBow[id] ? "furien30_crossbow" : "weapon_scout"); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(9); // NumberInSlot (1...N) write_byte(CSW_CROSSBOW); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined ETHEREAL case ETHEREAL_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveEthereal[id] ? "furien30_ethereal" : "weapon_galil"); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(17); // NumberInSlot (1...N) write_byte(CSW_ETHEREAL); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined DUALMP7A1 case DUALMP7A1_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveDualMP7A1[id] ? "furien30_dualmp7a1" : "weapon_mp5navy"); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(7); // NumberInSlot (1...N) write_byte(CSW_DUALMP7A1); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined K1ASES case K1ASES_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveK1ases[id] ? "furien30_k1ases" : "weapon_mp5navy"); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(7); // NumberInSlot (1...N) write_byte(CSW_K1ASES); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined F2000 case F2000_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveF2000[id] ? "furien30_f2000" : "weapon_aug"); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(14); // NumberInSlot (1...N) write_byte(CSW_F2000); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined HK416 case HK416_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveHK416[id] ? "furien30_hk416" : "weapon_m4a1"); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(6); // NumberInSlot (1...N) write_byte(CSW_HK416); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined OICW case OICW_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveOICW[id] ? "furien30_oicw" : "weapon_galil"); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(17); // NumberInSlot (1...N) write_byte(CSW_OICW); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined AK47KNIFE case AK47KNIFE_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveAK47Knife[id] ? "furien30_ak47knife" : "weapon_ak47"); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_AK47KNIFE); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined TAR21 case TAR21_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveTar21[id] ? "furien30_tar21" : "furien30_sg552"); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(10); // NumberInSlot (1...N) write_byte(CSW_TAR21); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined AT4 case AT4_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveAT4[id] ? "furien30_at4" : "weapon_m249"); // WeaponName write_byte(3); // PrimaryAmmoID write_byte(200); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_AT4); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined SALAMANDER case SALAMANDER_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveSalamander[id] ? "furien30_salamander" : "weapon_m249"); // WeaponName write_byte(3); // PrimaryAmmoID write_byte(200); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_SALAMANDER); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined M134 case M134_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveM134[id] ? "furien30_m134" : "weapon_m249"); // WeaponName write_byte(3); // PrimaryAmmoID write_byte(200); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(4); // NumberInSlot (1...N) write_byte(CSW_M134); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined THOMPSON case THOMPSON_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveThompson[id] ? "furien30_thompson" : "weapon_p90"); // WeaponName write_byte(7); // PrimaryAmmoID write_byte(100); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(8); // NumberInSlot (1...N) write_byte(CSW_THOMPSON); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined QUADBARREL case QUADBARREL_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveQuadBarrel[id] ? "furien30_quadbarrel" : "weapon_m3"); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_QUADBARREL); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined DUALBARREL case DUALBARREL_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveDualBarrel[id] ? "furien30_dualbarrel" : "weapon_m3"); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_DUALBARREL); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined M1887 case M1887_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveM1887[id] ? "furien30_m1887" : "weapon_xm1014"); // WeaponName write_byte(5); // PrimaryAmmoID write_byte(32); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(12); // NumberInSlot (1...N) write_byte(CSW_M1887); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined L85 case L85_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveL85[id] ? "furien30_l85" : "weapon_famas"); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(18); // NumberInSlot (1...N) write_byte(CSW_L85); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined SKULL5 case SKULL5_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveSkull5[id] ? "furien30_skull5" : "weapon_sg550"); // WeaponName write_byte(4); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(10); // NumberInSlot (1...N) write_byte(CSW_SKULL5); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined SL8 case SL8_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveSL8[id] ? "furien30_sl8" : "weapon_g3sg1"); // WeaponName write_byte(2); // PrimaryAmmoID write_byte(90); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(3); // NumberInSlot (1...N) write_byte(CSW_SL8); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined AW50 case AW50_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveAW50[id] ? "furien30_aw50" : "weapon_awp"); // WeaponName write_byte(1); // PrimaryAmmoID write_byte(30); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(0); // SlotID (0...N) write_byte(2); // NumberInSlot (1...N) write_byte(CSW_AW50); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined M79 case M79_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveM79[id] ? "furien30_m79" : "weapon_deagle"); // WeaponName write_byte(8); // PrimaryAmmoID write_byte(35); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_M79); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined SKULL1 case SKULL1_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveSkull1[id] ? "furien30_skull1" : "weapon_deagle"); // WeaponName write_byte(8); // PrimaryAmmoID write_byte(35); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_SKULL1); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined ANACONDA case ANACONDA_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveAnaconda[id] ? "furien30_anaconda" : "weapon_deagle"); // WeaponName write_byte(8); // PrimaryAmmoID write_byte(35); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(1); // NumberInSlot (1...N) write_byte(CSW_ANACONDA); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined DUALDEAGLE case DUALDEAGLE_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveDualDeagle[id] ? "furien30_dualdeagle" : "weapon_elite"); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_DUALDEAGLE); // WeaponID write_byte(0); // Flags message_end(); } #endif #if defined INFINITY case INFINITY_WEAPONKEY: { message_begin(MSG_ONE, Message_WeaponList, _, id); write_string(HaveInfinity[id] ? "furien30_infinity" : "weapon_elite"); // WeaponName write_byte(10); // PrimaryAmmoID write_byte(120); // PrimaryAmmoMaxAmount write_byte(-1); // SecondaryAmmoID write_byte(-1); // SecondaryAmmoMaxAmount write_byte(1); // SlotID (0...N) write_byte(5); // NumberInSlot (1...N) write_byte(CSW_INFINITY); // WeaponID write_byte(0); // Flags message_end(); } #endif } } stock death_message(Killer, Victim, const Weapon[]) { set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET); ExecuteHamB(Ham_Killed, Victim, Killer, 2); set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT); make_deathmsg(Killer, Victim, 0, Weapon); cs_set_user_money(Killer, cs_get_user_money(Killer) + 300); message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo")); write_byte(Killer); // id write_short(pev(Killer, pev_frags)); // frags write_short(cs_get_user_deaths(Killer)); // deaths write_short(0); // class? write_short(get_user_team(Killer)); // team message_end(); message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo")); write_byte(Victim); // id write_short(pev(Victim, pev_frags)); // frags write_short(cs_get_user_deaths(Victim)); // deaths write_short(0); // class? write_short(get_user_team(Victim)); // team message_end(); } public make_knockback(Victim, Float:origin[3], Float:maxspeed) { new Float:fVelocity[3]; kickback(Victim, origin, maxspeed, fVelocity); entity_set_vector(Victim, EV_VEC_velocity, fVelocity); return(1); } stock kickback(ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3]) { new Float:fEntOrigin[3]; entity_get_vector(ent, EV_VEC_origin, fEntOrigin); new Float:fDistance[3]; fDistance[0] = fEntOrigin[0] - fOrigin[0]; fDistance[1] = fEntOrigin[1] - fOrigin[1]; fDistance[2] = fEntOrigin[2] - fOrigin[2]; new Float:fTime = (vector_distance(fEntOrigin,fOrigin) / fSpeed); fVelocity[0] = fDistance[0] / fTime; fVelocity[1] = fDistance[1] / fTime; fVelocity[2] = fDistance[2] / fTime; return(fVelocity[0] && fVelocity[1] && fVelocity[2]); } stock Make_Bullet(id, Float:Origin[3]) { // Find target new target, body; get_user_aiming(id, target, body, 999999); if(target > 0 && target <= get_maxplayers()) { new Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3]; pev(id, pev_origin, fStart); velocity_by_aim(id, 64, fVel); fStart[0] = Origin[0]; fStart[1] = Origin[1]; fStart[2] = Origin[2]; fEnd[0] = fStart[0]+fVel[0]; fEnd[1] = fStart[1]+fVel[1]; fEnd[2] = fStart[2]+fVel[2]; new res; engfunc(EngFunc_TraceLine, fStart, fEnd, 0, target, res); get_tr2(res, TR_vecEndPos, fRes); message_begin(MSG_BROADCAST, SVC_TEMPENTITY) ; write_byte(TE_BLOODSPRITE); write_coord(floatround(fStart[0])); write_coord(floatround(fStart[1])); write_coord(floatround(fStart[2])); write_short(BloodSpray); write_short(BloodDrop); write_byte(70); write_byte(random_num(1,2)); message_end(); } else { new decal = 41; if(target) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_DECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_byte(decal); write_short(target); message_end(); } else { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_WORLDDECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_byte(decal); message_end(); } message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_GUNSHOTDECAL); write_coord(floatround(Origin[0])); write_coord(floatround(Origin[1])); write_coord(floatround(Origin[2])); write_short(id); write_byte(decal); message_end(); } } stock set_weapon_anim(id, anim) { set_pev(id, pev_weaponanim, anim); if(is_user_connected(id)) { message_begin(MSG_ONE, SVC_WEAPONANIM, _, id); write_byte(anim); write_byte(pev(id, pev_body)); message_end(); } } stock get_damage_body(body, Float:damage) { switch(body) { case HIT_HEAD: damage *= 1.3; case HIT_STOMACH: damage *= 1.0; case HIT_CHEST: damage *= 1.1; case HIT_LEFTARM: damage *= 0.7; case HIT_RIGHTARM: damage *= 0.7; case HIT_LEFTLEG: damage *= 0.75; case HIT_RIGHTLEG: damage *= 0.75; default: damage *= 1.0; } return floatround(damage); } stock drop_primary_weapons(Player) { static weapons[32], num, i, weaponid; num = 0; get_user_weapons(Player, weapons, num); for(i = 0; i < num; i++) { weaponid = weapons [i]; if(((1<<weaponid) & PRIMARY_WEAPONS_BITSUM)) { static wname[32]; get_weaponname(weaponid, wname, charsmax(wname)); engclient_cmd(Player, "drop", wname); } } } stock drop_secondary_weapons(Player) { // Get user weapons static weapons [32], num, i, weaponid; num = 0; // reset passed weapons count(bugfix) get_user_weapons(Player, weapons, num); // Loop through them and drop primaries for(i = 0; i < num; i++) { // Prevent re-indexing the array weaponid = weapons [i]; // We definetely are holding primary gun if(((1<<weaponid) & SECONDARY_WEAPONS_BITSUM)) { // Get weapon entity static wname[32]; get_weaponname(weaponid, wname, charsmax(wname)); // Player drops the weapon and looses his bpammo engclient_cmd(Player, "drop", wname); } } } stock fm_get_user_bpammo(index, weapon) { static offset switch(weapon) { case CSW_AWP: offset = 377 case CSW_SCOUT, CSW_AK47, CSW_G3SG1: offset = 378 case CSW_M249: offset = 379 case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: offset = 380 case CSW_M3, CSW_XM1014: offset = 381 case CSW_USP, CSW_UMP45, CSW_MAC10: offset = 382 case CSW_FIVESEVEN, CSW_P90: offset = 383 case CSW_DEAGLE: offset = 384 case CSW_P228: offset = 385 case CSW_GLOCK18, CSW_TMP, CSW_ELITE, CSW_MP5NAVY: offset = 386 default: offset = 0 } return offset ? get_pdata_int(index, offset) : 0 } stock fm_set_user_bpammo(index, weapon, amount) { static offset switch(weapon) { case CSW_AWP: offset = 377 case CSW_SCOUT, CSW_AK47, CSW_G3SG1: offset = 378 case CSW_M249: offset = 379 case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: offset = 380 case CSW_M3, CSW_XM1014: offset = 381 case CSW_USP, CSW_UMP45, CSW_MAC10: offset = 382 case CSW_FIVESEVEN, CSW_P90: offset = 383 case CSW_DEAGLE: offset = 384 case CSW_P228: offset = 385 case CSW_GLOCK18, CSW_TMP, CSW_ELITE, CSW_MP5NAVY: offset = 386 default: offset = 0 } if(offset) set_pdata_int(index, offset, amount) return 1 } #define clamp_byte(%1) ( clamp( %1, 0, 255 ) ) #define pack_color(%1,%2,%3) ( %3 + ( %2 << 8 ) + ( %1 << 16 ) ) stock HudMessage(const id, const message[], red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 0.01, Float:holdtime = 3.0, Float:fadeintime = 0.01, Float:fadeouttime = 0.01) { new count = 1, players[32]; if(id) players[0] = id; else get_players(players, count, "ch"); { for(new i = 0; i < count; i++) { if(is_user_connected(players[i])) { new color = pack_color(clamp_byte(red), clamp_byte(green), clamp_byte(blue)) message_begin(MSG_ONE_UNRELIABLE, SVC_DIRECTOR, _, players[i]); write_byte(strlen(message) + 31); write_byte(DRC_CMD_MESSAGE); write_byte(effects); write_long(color); write_long(_:x); write_long(_:y); write_long(_:fadeintime); write_long(_:fadeouttime); write_long(_:holdtime); write_long(_:fxtime); write_string(message); message_end(); } } } } stock ColorChat(const id, const input[], any:...) { new count = 1, players[32]; static msg[191]; vformat(msg, 190, input, 3); replace_all(msg, 190, "!g", "^4"); replace_all(msg, 190, "!y", "^1"); replace_all(msg, 190, "!t", "^3"); if(id) players[0] = id; else get_players(players, count, "ch"); { for(new i = 0; i < count; i++) { if(is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par } */
Este un plugin cu meniu de arme la ct pentru furien , si vad ca si playerii pot deschide meniul de vip si pot lua arme