- /*
- AUG GUARDIAN v1.0a by YunusReyiz
- Fixed situations:
- -The previous version of the gun was adapted to Galil and appeared as hud AUG.
- For this reason it caused some errors.
- The cause is that the AUG is not fully steady in zoom at speed settings.
- Now their speeds are set to true AUG with completely fixed.
- -While in Galil, there were some redundancy codes, although they were obligatory.
- After the AUG, some nonsense code was removed.
- (POSTSCRIPT: If v1.1 comes it is probably possible to add muzzleflash. It's also likely to be free.
- But it comes late because I'm bored and lazy.)
- Good game.
- */
- #include <amxmodx>
- #include <engine>
- #include <fakemeta>
- #include <fakemeta_util>
- #include <fun>
- #include <hamsandwich>
- #include <xs>
- #include <cstrike>
- #include <zombie_escape>
- new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
- new g_event, g_has[33], g_clip[33], oldweap[33], Float:recoil[33]
- new zoom[33], Float:g_flNextUseTime[33]
- new g_iItemID
- public plugin_init()
- {
- register_plugin("[Weapon]: AUG Guardian", "1.0a", "YunusReyiz")
- register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
- register_event("CurWeapon","CurrentWeapon","be","1=1")
- register_forward(FM_SetModel, "SetModel")
- register_forward(FM_UpdateClientData, "UpdateClientData_Post", 1)
- register_forward(FM_PlaybackEvent, "PlaybackEvent")
- RegisterHam(Ham_TraceAttack, "worldspawn", "TraceAttack", 1)
- RegisterHam(Ham_TraceAttack, "player", "TraceAttack")
- RegisterHam(Ham_Item_AddToPlayer, "weapon_aug", "AddToPlayer")
- RegisterHam(Ham_Item_PostFrame, "weapon_aug", "ItemPostFrame")
- //RegisterHam(Ham_Item_Deploy, "weapon_aug", "ItemDeploy_Post", 1)
- RegisterHam(Ham_Weapon_Reload, "weapon_aug", "Reload")
- RegisterHam(Ham_Weapon_Reload, "weapon_aug", "Reload_Post", 1)
- RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_aug", "PrimaryAttack")
- RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_aug", "PrimaryAttack_Post", 1)
- //register_clcmd("say aug", "give_weapon")
- g_iItemID = ze_register_item("AUG Guardian", 300, 0)
- }
- public plugin_precache()
- {
- precache_model("models/Legolas/v_buffaug2.mdl")
- precache_model("models/Legolas/p_buffaug.mdl")
- precache_model("models/Legolas/w_buffaug.mdl")
- precache_sound("weapons/buffaug-1.wav")
- //precache_generic("sprites/weapon_augx.txt")
- //register_clcmd("weapon_aug", "weapon_hook")
- }
- /*public weapon_hook(id)
- {
- engclient_cmd(id, "weapon_aug")
- return PLUGIN_HANDLED
- }*/
- public TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
- {
- if(!is_user_alive(iAttacker))
- return
- new g_currentweapon = get_user_weapon(iAttacker)
- if(g_currentweapon != CSW_AUG) return
- if(!g_has[iAttacker]) return
- static Float:flEnd[3]
- get_tr2(ptr, TR_vecEndPos, flEnd)
- if(iEnt)
- {
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
- write_byte(TE_DECAL)
- engfunc(EngFunc_WriteCoord,flEnd[0])
- engfunc(EngFunc_WriteCoord,flEnd[1])
- engfunc(EngFunc_WriteCoord,flEnd[2])
- write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
- write_short(iEnt)
- message_end()
- }
- else
- {
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
- write_byte(TE_WORLDDECAL)
- engfunc(EngFunc_WriteCoord,flEnd[0])
- engfunc(EngFunc_WriteCoord,flEnd[1])
- engfunc(EngFunc_WriteCoord,flEnd[2])
- write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
- message_end()
- }
- SetHamParamFloat(3, float(41))
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
- write_byte(TE_GUNSHOTDECAL)
- engfunc(EngFunc_WriteCoord,flEnd[0])
- engfunc(EngFunc_WriteCoord,flEnd[1])
- engfunc(EngFunc_WriteCoord,flEnd[2])
- write_short(iAttacker)
- write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
- message_end()
- }
- public PrecacheEvent_Post(type, const name[]) if(equal("events/aug.sc", name)) g_event = get_orig_retval()
- public client_disconnect(id) g_has[id] = false
- public SetModel(ent, model[])
- {
- if(!is_valid_ent(ent))
- return FMRES_IGNORED
- static szClassName[33]
- entity_get_string(ent, EV_SZ_classname, szClassName, charsmax(szClassName))
- if(!equal(szClassName, "weaponbox"))
- return FMRES_IGNORED
- if(equal(model, "models/w_aug.mdl"))
- {
- if(!is_valid_ent(find_ent_by_owner(-1, "weapon_aug", ent)))
- return FMRES_IGNORED
- if(g_has[entity_get_edict(ent, EV_ENT_owner)])
- {
- entity_set_int(find_ent_by_owner(-1, "weapon_aug", ent), EV_INT_impulse, 45488)
- g_has[entity_get_edict(ent, EV_ENT_owner)] = false
- entity_set_model(ent, "models/w_buffaug.mdl")
- return FMRES_SUPERCEDE
- }
- }
- return FMRES_IGNORED
- }
- public give_weapon(id)
- {
- new iWep2 = give_item(id,"weapon_aug")
- if( iWep2 > 0 )
- {
- cs_set_weapon_ammo(iWep2, 30)
- cs_set_user_bpammo (id, CSW_AUG, 700)
- set_anim(id, 2)
- set_pdata_float(id, 83, 1.0, 5)
- }
- g_has[id] = true
- }
- public ze_select_item_pre(id, itemid)
- {
- if (itemid != g_iItemID)
- return ZE_ITEM_AVAILABLE
- if (ze_is_user_zombie(id))
- return ZE_ITEM_DONT_SHOW
- return ZE_ITEM_AVAILABLE
- }
- public ze_select_item_post(id, itemid)
- {
- if (itemid != g_iItemID)
- return
- give_weapon(id)
- }
- /*public ItemDeploy_Post(id)
- {
- static owner
- owner = fm_cs_get_weapon_ent_owner(id)
- static weaponid
- weaponid = cs_get_weapon_id(id)
- replace_weapon_models(owner, weaponid)
- }*/
- /*stock fm_cs_get_weapon_ent_owner(ent)
- {
- return get_pdata_cbase(ent, 41, 4)
- }*/
- public AddToPlayer(wpn, id)
- {
- if(!is_valid_ent(wpn) || !is_user_connected(id))
- return HAM_IGNORED
- if(entity_get_int(wpn, EV_INT_impulse) == 45488)
- {
- g_has[id] = true
- entity_set_int(wpn, EV_INT_impulse, 0)
- }
- return HAM_IGNORED
- }
- public CurrentWeapon(id)
- {
- replace_weapon_models(id, read_data(2))
- if(read_data(2) != CSW_AUG || !g_has[id]) return
- /*static Float:iSpeed
- if(g_has[id]) iSpeed = 0.8
- static weapon[32],Ent
- get_weaponname(read_data(2),weapon,31)
- Ent = find_ent_by_owner(-1,weapon,id)
- if(Ent)
- {
- static Float:Delay
- Delay = get_pdata_float( Ent, 46, 4) * iSpeed
- if (Delay > 0.0)
- {
- set_pdata_float(Ent, 46, Delay, 4)
- }
- }*/
- static Ent; Ent = fm_get_user_weapon_entity(id, CSW_AUG)
- if(!pev_valid(Ent)) return
- set_pdata_float(Ent, 46, 0.065, 4)
- set_pdata_float(Ent, 47, 0.065, 4)
- }
- replace_weapon_models(id, wpnid)
- {
- switch (wpnid)
- {
- case CSW_AUG:
- {
- if(g_has[id])
- {
- set_pev(id, pev_viewmodel2, "models/Legolas/v_buffaug2.mdl")
- set_pev(id, pev_weaponmodel2, "models/Legolas/p_buffaug.mdl")
- if(oldweap[id] != CSW_AUG)
- {
- set_anim(id, 2)
- set_pdata_float(id, 83, 1.0, 5)
- //set_weapon_list(id, "weapon_aug", CSW_AUG)
- }
- }
- }
- }
- oldweap[id] = wpnid
- }
- public UpdateClientData_Post(Player, SendWeapons, CD_Handle)
- {
- if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_AUG || !g_has[Player]))
- return FMRES_IGNORED
- set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
- return FMRES_HANDLED
- }
- public PrimaryAttack(wpn)
- {
- new id = get_pdata_cbase(wpn, 41, 4)
- if (!g_has[id]) return
- }
- public PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
- {
- if ((eventid != g_event))
- return FMRES_IGNORED
- if (!(1 <= invoker <= get_maxplayers()))
- return FMRES_IGNORED
- playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
- return FMRES_SUPERCEDE
- }
- public PrimaryAttack_Post(wpn)
- {
- new id = get_pdata_cbase(wpn, 41, 4)
- if(!is_user_alive(id) || !g_has[id] || cs_get_weapon_ammo(wpn) <= 0)
- return
- static Float:Push[3]
- pev(id, pev_punchangle, Push)
- xs_vec_sub(Push, recoil[id], Push)
- xs_vec_mul_scalar(Push, 0.5, Push)
- xs_vec_add(Push, recoil[id], Push)
- set_pev(id,pev_punchangle,Push)
- emit_sound(id, CHAN_WEAPON, "weapons/buffaug-1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
- set_anim(id, random_num(3,5))
- }
- stock set_anim(const Player, const Sequence)
- {
- set_pev(Player, pev_weaponanim, Sequence)
- message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
- write_byte(Sequence)
- write_byte(pev(Player, pev_body))
- message_end()
- }
- public message_DeathMsg(msg_id, msg_dest, id)
- {
- static szTruncatedWeapon[33], iAttacker, iVictim
- get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
- iAttacker = get_msg_arg_int(1)
- iVictim = get_msg_arg_int(2)
- if(!is_user_connected(iAttacker) || iAttacker == iVictim)
- return PLUGIN_CONTINUE
- if(equal(szTruncatedWeapon, "aug") && get_user_weapon(iAttacker) == CSW_AUG)
- {
- if(g_has[iAttacker])
- set_msg_arg_string(4, "aug")
- }
- return PLUGIN_CONTINUE
- }
- public ItemPostFrame(wpn)
- {
- new id = pev(wpn, pev_owner)
- if (!is_user_connected(id)) return HAM_IGNORED
- if (!g_has[id])return HAM_IGNORED
- static iClipExtra
- iClipExtra = 50
- new Float:flNextAttack = get_pdata_float(id, 83, 5)
- new iBpAmmo = cs_get_user_bpammo(id, CSW_AUG)
- new iClip = get_pdata_int(wpn, 51, 4)
- new fInReload = get_pdata_int(wpn, 54, 4)
- if( fInReload && flNextAttack <= 0.0 )
- {
- new j = min(iClipExtra - iClip, iBpAmmo)
- set_pdata_int(wpn, 51, iClip + j, 4)
- cs_set_user_bpammo(id, CSW_AUG, iBpAmmo-j)
- set_pdata_int(wpn, 54, 0, 4)
- fInReload = 0
- }
- return HAM_IGNORED
- }
- public Reload(wpn)
- {
- new id = pev(wpn, pev_owner)
- if(!is_user_connected(id)) return HAM_IGNORED
- if(!g_has[id]) return HAM_IGNORED
- static iClipExtra
- //if(g_has[id])
- iClipExtra = 50
- g_clip[id] = -1
- new iBpAmmo = cs_get_user_bpammo(id, CSW_AUG)
- new iClip = get_pdata_int(wpn, 51, 4)
- if (iBpAmmo <= 0)
- return HAM_SUPERCEDE
- if (iClip >= iClipExtra)
- return HAM_SUPERCEDE
- g_clip[id] = iClip
- return HAM_IGNORED
- }
- public Reload_Post(wpn)
- {
- new id = pev(wpn, pev_owner)
- if (!is_user_connected(id))
- return HAM_IGNORED
- if (!g_has[id])
- return HAM_IGNORED
- if (g_clip[id] == -1)
- return HAM_IGNORED
- //zoom[id] = 0
- //cs_set_user_zoom(id, CS_RESET_ZOOM, 1)
- set_pdata_int(wpn, 51, g_clip[id], 4)
- set_pdata_int(wpn, 54, 1, 4)
- set_pdata_float(wpn, 48, 2.0, 4)
- set_pdata_float(id, 83, 2.0, 5)
- set_anim(id, 1)
- return HAM_IGNORED
- }
- /*public Holster_Post(wpn)
- {
- static id
- id = get_pdata_cbase(wpn, 41, 4)
- g_flNextUseTime[id] = 0.0
- if(g_has[id])
- {
- zoom[id] = false
- cs_set_user_zoom(id, CS_RESET_ZOOM, 1)
- }
- }*/
- /*public CmdStart(id, uc_handle, seed)
- {
- if (!is_user_alive(id) || !g_has[id])
- return FMRES_IGNORED
- if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !(pev(id, pev_oldbuttons) & IN_ATTACK2))
- {
- new szClip, szAmmo
- new szWeapID = get_user_weapon(id, szClip, szAmmo)
- if(szWeapID == CSW_AUG && g_has[id] && !zoom[id] == true)
- {
- zoom[id] = 1
- cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 1)
- emit_sound(id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100)
- }
- else if(szWeapID == CSW_AUG && g_has[id] && zoom[id])
- {
- zoom[id] = false
- cs_set_user_zoom(id, CS_RESET_ZOOM, 0)
- }
- }
- return FMRES_IGNORED
- }*/
- /*stock set_weapon_list(id, const weapon_namee[], const CSW_NAMEE)
- {
- message_begin(MSG_ONE, get_user_msgid("WeaponList"), {0,0,0}, id)
- write_string(weapon_namee)
- write_byte(4)
- write_byte(90)
- write_byte(-1)
- write_byte(-1)
- write_byte(0)
- write_byte(14)
- write_byte(CSW_NAMEE)
- message_end()
- }*/
AUG Guardian problem
AUG Guardian problem
-
- Veteran Member
- Posts: 407
- Joined: 5 years ago
- Contact:
Mystic Viper wrote: ↑5 years agoWhen i drop the weapon the server is shutting down because of model. I mean when i drop the weapons the server kicked me and said reason for shut down for set model or something like that idk
/* AUG GUARDIAN v1.0a by YunusReyiz Fixed situations: -The previous version of the gun was adapted to Galil and appeared as hud AUG. For this reason it caused some errors. The cause is that the AUG is not fully steady in zoom at speed settings. Now their speeds are set to true AUG with completely fixed. -While in Galil, there were some redundancy codes, although they were obligatory. After the AUG, some nonsense code was removed. (POSTSCRIPT: If v1.1 comes it is probably possible to add muzzleflash. It's also likely to be free. But it comes late because I'm bored and lazy.) Good game. */ #include <amxmodx> #include <engine> #include <fakemeta> #include <fakemeta_util> #include <fun> #include <hamsandwich> #include <xs> #include <cstrike> #include <zombie_escape> new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 } new g_event, g_has[33], g_clip[33], oldweap[33], Float:recoil[33] new zoom[33], Float:g_flNextUseTime[33] new g_iItemID public plugin_init() { register_plugin("[Weapon]: AUG Guardian", "1.0a", "YunusReyiz") register_message(get_user_msgid("DeathMsg"), "message_DeathMsg") register_event("CurWeapon","CurrentWeapon","be","1=1") register_forward(FM_SetModel, "SetModel") register_forward(FM_UpdateClientData, "UpdateClientData_Post", 1) register_forward(FM_PlaybackEvent, "PlaybackEvent") RegisterHam(Ham_TraceAttack, "worldspawn", "TraceAttack", 1) RegisterHam(Ham_TraceAttack, "player", "TraceAttack") RegisterHam(Ham_Item_AddToPlayer, "weapon_aug", "AddToPlayer") RegisterHam(Ham_Item_PostFrame, "weapon_aug", "ItemPostFrame") //RegisterHam(Ham_Item_Deploy, "weapon_aug", "ItemDeploy_Post", 1) RegisterHam(Ham_Weapon_Reload, "weapon_aug", "Reload") RegisterHam(Ham_Weapon_Reload, "weapon_aug", "Reload_Post", 1) RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_aug", "PrimaryAttack") RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_aug", "PrimaryAttack_Post", 1) //register_clcmd("say aug", "give_weapon") g_iItemID = ze_register_item("AUG Guardian", 300, 0) } public plugin_precache() { precache_model("models/Legolas/v_buffaug2.mdl") precache_model("models/Legolas/p_buffaug.mdl") precache_model("models/Legolas/w_buffaug.mdl") precache_sound("weapons/buffaug-1.wav") //precache_generic("sprites/weapon_augx.txt") //register_clcmd("weapon_aug", "weapon_hook") } /*public weapon_hook(id) { engclient_cmd(id, "weapon_aug") return PLUGIN_HANDLED }*/ public TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType) { if(!is_user_alive(iAttacker)) return new g_currentweapon = get_user_weapon(iAttacker) if(g_currentweapon != CSW_AUG) return if(!g_has[iAttacker]) return static Float:flEnd[3] get_tr2(ptr, TR_vecEndPos, flEnd) if(iEnt) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_DECAL) engfunc(EngFunc_WriteCoord,flEnd[0]) engfunc(EngFunc_WriteCoord,flEnd[1]) engfunc(EngFunc_WriteCoord,flEnd[2]) write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)]) write_short(iEnt) message_end() } else { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_WORLDDECAL) engfunc(EngFunc_WriteCoord,flEnd[0]) engfunc(EngFunc_WriteCoord,flEnd[1]) engfunc(EngFunc_WriteCoord,flEnd[2]) write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)]) message_end() } SetHamParamFloat(3, float(41)) message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_GUNSHOTDECAL) engfunc(EngFunc_WriteCoord,flEnd[0]) engfunc(EngFunc_WriteCoord,flEnd[1]) engfunc(EngFunc_WriteCoord,flEnd[2]) write_short(iAttacker) write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)]) message_end() } public PrecacheEvent_Post(type, const name[]) if(equal("events/aug.sc", name)) g_event = get_orig_retval() public client_disconnect(id) g_has[id] = false public SetModel(ent, model[]) { if(!is_valid_ent(ent)) return FMRES_IGNORED static szClassName[33] entity_get_string(ent, EV_SZ_classname, szClassName, charsmax(szClassName)) if(!equal(szClassName, "weaponbox")) return FMRES_IGNORED if(equal(model, "models/w_aug.mdl")) { if(!is_valid_ent(find_ent_by_owner(-1, "weapon_aug", ent))) return FMRES_IGNORED if(g_has[entity_get_edict(ent, EV_ENT_owner)]) { entity_set_int(find_ent_by_owner(-1, "weapon_aug", ent), EV_INT_impulse, 45488) g_has[entity_get_edict(ent, EV_ENT_owner)] = false entity_set_model(ent, "models/w_buffaug.mdl") return FMRES_SUPERCEDE } } return FMRES_IGNORED } public give_weapon(id) { new iWep2 = give_item(id,"weapon_aug") if( iWep2 > 0 ) { cs_set_weapon_ammo(iWep2, 30) cs_set_user_bpammo (id, CSW_AUG, 700) set_anim(id, 2) set_pdata_float(id, 83, 1.0, 5) } g_has[id] = true } public ze_select_item_pre(id, itemid) { if (itemid != g_iItemID) return ZE_ITEM_AVAILABLE if (ze_is_user_zombie(id)) return ZE_ITEM_DONT_SHOW return ZE_ITEM_AVAILABLE } public ze_select_item_post(id, itemid) { if (itemid != g_iItemID) return give_weapon(id) } /*public ItemDeploy_Post(id) { static owner owner = fm_cs_get_weapon_ent_owner(id) static weaponid weaponid = cs_get_weapon_id(id) replace_weapon_models(owner, weaponid) }*/ /*stock fm_cs_get_weapon_ent_owner(ent) { return get_pdata_cbase(ent, 41, 4) }*/ public AddToPlayer(wpn, id) { if(!is_valid_ent(wpn) || !is_user_connected(id)) return HAM_IGNORED if(entity_get_int(wpn, EV_INT_impulse) == 45488) { g_has[id] = true entity_set_int(wpn, EV_INT_impulse, 0) } return HAM_IGNORED } public CurrentWeapon(id) { replace_weapon_models(id, read_data(2)) if(read_data(2) != CSW_AUG || !g_has[id]) return /*static Float:iSpeed if(g_has[id]) iSpeed = 0.8 static weapon[32],Ent get_weaponname(read_data(2),weapon,31) Ent = find_ent_by_owner(-1,weapon,id) if(Ent) { static Float:Delay Delay = get_pdata_float( Ent, 46, 4) * iSpeed if (Delay > 0.0) { set_pdata_float(Ent, 46, Delay, 4) } }*/ static Ent; Ent = fm_get_user_weapon_entity(id, CSW_AUG) if(!pev_valid(Ent)) return set_pdata_float(Ent, 46, 0.065, 4) set_pdata_float(Ent, 47, 0.065, 4) } replace_weapon_models(id, wpnid) { switch (wpnid) { case CSW_AUG: { if(g_has[id]) { set_pev(id, pev_viewmodel2, "models/Legolas/v_buffaug2.mdl") set_pev(id, pev_weaponmodel2, "models/Legolas/p_buffaug.mdl") if(oldweap[id] != CSW_AUG) { set_anim(id, 2) set_pdata_float(id, 83, 1.0, 5) //set_weapon_list(id, "weapon_aug", CSW_AUG) } } } } oldweap[id] = wpnid } public UpdateClientData_Post(Player, SendWeapons, CD_Handle) { if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_AUG || !g_has[Player])) return FMRES_IGNORED set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001) return FMRES_HANDLED } public PrimaryAttack(wpn) { new id = get_pdata_cbase(wpn, 41, 4) if (!g_has[id]) return } public PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) { if ((eventid != g_event)) return FMRES_IGNORED if (!(1 <= invoker <= get_maxplayers())) return FMRES_IGNORED playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2) return FMRES_SUPERCEDE } public PrimaryAttack_Post(wpn) { new id = get_pdata_cbase(wpn, 41, 4) if(!is_user_alive(id) || !g_has[id] || cs_get_weapon_ammo(wpn) <= 0) return static Float:Push[3] pev(id, pev_punchangle, Push) xs_vec_sub(Push, recoil[id], Push) xs_vec_mul_scalar(Push, 0.5, Push) xs_vec_add(Push, recoil[id], Push) set_pev(id,pev_punchangle,Push) emit_sound(id, CHAN_WEAPON, "weapons/buffaug-1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) set_anim(id, random_num(3,5)) } stock set_anim(const Player, const Sequence) { set_pev(Player, pev_weaponanim, Sequence) message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player) write_byte(Sequence) write_byte(pev(Player, pev_body)) message_end() } public message_DeathMsg(msg_id, msg_dest, id) { static szTruncatedWeapon[33], iAttacker, iVictim get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon)) iAttacker = get_msg_arg_int(1) iVictim = get_msg_arg_int(2) if(!is_user_connected(iAttacker) || iAttacker == iVictim) return PLUGIN_CONTINUE if(equal(szTruncatedWeapon, "aug") && get_user_weapon(iAttacker) == CSW_AUG) { if(g_has[iAttacker]) set_msg_arg_string(4, "aug") } return PLUGIN_CONTINUE } public ItemPostFrame(wpn) { new id = pev(wpn, pev_owner) if (!is_user_connected(id)) return HAM_IGNORED if (!g_has[id])return HAM_IGNORED static iClipExtra iClipExtra = 50 new Float:flNextAttack = get_pdata_float(id, 83, 5) new iBpAmmo = cs_get_user_bpammo(id, CSW_AUG) new iClip = get_pdata_int(wpn, 51, 4) new fInReload = get_pdata_int(wpn, 54, 4) if( fInReload && flNextAttack <= 0.0 ) { new j = min(iClipExtra - iClip, iBpAmmo) set_pdata_int(wpn, 51, iClip + j, 4) cs_set_user_bpammo(id, CSW_AUG, iBpAmmo-j) set_pdata_int(wpn, 54, 0, 4) fInReload = 0 } return HAM_IGNORED } public Reload(wpn) { new id = pev(wpn, pev_owner) if(!is_user_connected(id)) return HAM_IGNORED if(!g_has[id]) return HAM_IGNORED static iClipExtra //if(g_has[id]) iClipExtra = 50 g_clip[id] = -1 new iBpAmmo = cs_get_user_bpammo(id, CSW_AUG) new iClip = get_pdata_int(wpn, 51, 4) if (iBpAmmo <= 0) return HAM_SUPERCEDE if (iClip >= iClipExtra) return HAM_SUPERCEDE g_clip[id] = iClip return HAM_IGNORED } public Reload_Post(wpn) { new id = pev(wpn, pev_owner) if (!is_user_connected(id)) return HAM_IGNORED if (!g_has[id]) return HAM_IGNORED if (g_clip[id] == -1) return HAM_IGNORED //zoom[id] = 0 //cs_set_user_zoom(id, CS_RESET_ZOOM, 1) set_pdata_int(wpn, 51, g_clip[id], 4) set_pdata_int(wpn, 54, 1, 4) set_pdata_float(wpn, 48, 2.0, 4) set_pdata_float(id, 83, 2.0, 5) set_anim(id, 1) return HAM_IGNORED } /*public Holster_Post(wpn) { static id id = get_pdata_cbase(wpn, 41, 4) g_flNextUseTime[id] = 0.0 if(g_has[id]) { zoom[id] = false cs_set_user_zoom(id, CS_RESET_ZOOM, 1) } }*/ /*public CmdStart(id, uc_handle, seed) { if (!is_user_alive(id) || !g_has[id]) return FMRES_IGNORED if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !(pev(id, pev_oldbuttons) & IN_ATTACK2)) { new szClip, szAmmo new szWeapID = get_user_weapon(id, szClip, szAmmo) if(szWeapID == CSW_AUG && g_has[id] && !zoom[id] == true) { zoom[id] = 1 cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 1) emit_sound(id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100) } else if(szWeapID == CSW_AUG && g_has[id] && zoom[id]) { zoom[id] = false cs_set_user_zoom(id, CS_RESET_ZOOM, 0) } } return FMRES_IGNORED }*/ /*stock set_weapon_list(id, const weapon_namee[], const CSW_NAMEE) { message_begin(MSG_ONE, get_user_msgid("WeaponList"), {0,0,0}, id) write_string(weapon_namee) write_byte(4) write_byte(90) write_byte(-1) write_byte(-1) write_byte(0) write_byte(14) write_byte(CSW_NAMEE) message_end() }*/
not sure , but try this :
Code: Select all
/*
AUG GUARDIAN v1.0a by YunusReyiz
Fixed situations:
-The previous version of the gun was adapted to Galil and appeared as hud AUG.
For this reason it caused some errors.
The cause is that the AUG is not fully steady in zoom at speed settings.
Now their speeds are set to true AUG with completely fixed.
-While in Galil, there were some redundancy codes, although they were obligatory.
After the AUG, some nonsense code was removed.
(POSTSCRIPT: If v1.1 comes it is probably possible to add muzzleflash. It's also likely to be free.
But it comes late because I'm bored and lazy.)
Good game.
*/
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <cstrike>
#include <zombie_escape>
new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
new g_event, g_has[33], g_clip[33], oldweap[33], Float:recoil[33]
new zoom[33], Float:g_flNextUseTime[33]
new g_iItemID
public plugin_init()
{
register_plugin("[Weapon]: AUG Guardian", "1.0a", "YunusReyiz")
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
register_event("CurWeapon","CurrentWeapon","be","1=1")
register_forward(FM_SetModel, "SetModel")
register_forward(FM_UpdateClientData, "UpdateClientData_Post", 1)
register_forward(FM_PlaybackEvent, "PlaybackEvent")
RegisterHam(Ham_TraceAttack, "worldspawn", "TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "player", "TraceAttack")
RegisterHam(Ham_Item_AddToPlayer, "weapon_aug", "AddToPlayer")
RegisterHam(Ham_Item_PostFrame, "weapon_aug", "ItemPostFrame")
RegisterHam(Ham_Item_Deploy, "weapon_aug", "ItemDeploy_Post", 1)
RegisterHam(Ham_Weapon_Reload, "weapon_aug", "Reload")
RegisterHam(Ham_Weapon_Reload, "weapon_aug", "Reload_Post", 1)
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_aug", "PrimaryAttack")
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_aug", "PrimaryAttack_Post", 1)
//register_clcmd("say aug", "give_weapon")
g_iItemID = ze_register_item("AUG Guardian", 300, 0)
}
public plugin_precache()
{
precache_model("models/Legolas/v_buffaug2.mdl")
precache_model("models/Legolas/p_buffaug.mdl")
precache_model("models/Legolas/w_buffaug.mdl")
precache_sound("weapons/buffaug-1.wav")
//precache_generic("sprites/weapon_augx.txt")
//register_clcmd("weapon_aug", "weapon_hook")
}
/*public weapon_hook(id)
{
engclient_cmd(id, "weapon_aug")
return PLUGIN_HANDLED
}*/
public TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
{
if(!is_user_alive(iAttacker))
return
new g_currentweapon = get_user_weapon(iAttacker)
if(g_currentweapon != CSW_AUG) return
if(!g_has[iAttacker]) return
static Float:flEnd[3]
get_tr2(ptr, TR_vecEndPos, flEnd)
if(iEnt)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_DECAL)
engfunc(EngFunc_WriteCoord,flEnd[0])
engfunc(EngFunc_WriteCoord,flEnd[1])
engfunc(EngFunc_WriteCoord,flEnd[2])
write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
write_short(iEnt)
message_end()
}
else
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_WORLDDECAL)
engfunc(EngFunc_WriteCoord,flEnd[0])
engfunc(EngFunc_WriteCoord,flEnd[1])
engfunc(EngFunc_WriteCoord,flEnd[2])
write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
message_end()
}
SetHamParamFloat(3, float(41))
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_GUNSHOTDECAL)
engfunc(EngFunc_WriteCoord,flEnd[0])
engfunc(EngFunc_WriteCoord,flEnd[1])
engfunc(EngFunc_WriteCoord,flEnd[2])
write_short(iAttacker)
write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
message_end()
}
public PrecacheEvent_Post(type, const name[]) if(equal("events/aug.sc", name)) g_event = get_orig_retval()
public client_disconnect(id) g_has[id] = false
public SetModel(ent, model[])
{
if(!is_valid_ent(ent))
return FMRES_IGNORED
static szClassName[33]
entity_get_string(ent, EV_SZ_classname, szClassName, charsmax(szClassName))
if(!equal(szClassName, "weaponbox"))
return FMRES_IGNORED
if(equal(model, "models/w_aug.mdl"))
{
if(!is_valid_ent(find_ent_by_owner(-1, "weapon_aug", ent)))
return FMRES_IGNORED
if(g_has[entity_get_edict(ent, EV_ENT_owner)])
{
entity_set_int(find_ent_by_owner(-1, "weapon_aug", ent), EV_INT_impulse, 45488)
g_has[entity_get_edict(ent, EV_ENT_owner)] = false
entity_set_model(ent, "models/w_buffaug.mdl")
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
public give_weapon(id)
{
new iWep2 = give_item(id,"weapon_aug")
if( iWep2 > 0 )
{
cs_set_weapon_ammo(iWep2, 30)
cs_set_user_bpammo (id, CSW_AUG, 700)
set_anim(id, 2)
set_pdata_float(id, 83, 1.0, 5)
}
g_has[id] = true
}
public ze_select_item_pre(id, itemid)
{
if (itemid != g_iItemID)
return ZE_ITEM_AVAILABLE
if (ze_is_user_zombie(id))
return ZE_ITEM_DONT_SHOW
return ZE_ITEM_AVAILABLE
}
public ze_select_item_post(id, itemid)
{
if (itemid != g_iItemID)
return
give_weapon(id)
}
/*public ItemDeploy_Post(id)
{
static owner
owner = fm_cs_get_weapon_ent_owner(id)
static weaponid
weaponid = cs_get_weapon_id(id)
replace_weapon_models(owner, weaponid)
}*/
/*stock fm_cs_get_weapon_ent_owner(ent)
{
return get_pdata_cbase(ent, 41, 4)
}*/
public AddToPlayer(wpn, id)
{
if(!is_valid_ent(wpn) || !is_user_connected(id))
return HAM_IGNORED
if(entity_get_int(wpn, EV_INT_impulse) == 45488)
{
g_has[id] = true
entity_set_int(wpn, EV_INT_impulse, 0)
}
return HAM_IGNORED
}
public CurrentWeapon(id)
{
replace_weapon_models(id, read_data(2))
if(read_data(2) != CSW_AUG || !g_has[id]) return
/*static Float:iSpeed
if(g_has[id]) iSpeed = 0.8
static weapon[32],Ent
get_weaponname(read_data(2),weapon,31)
Ent = find_ent_by_owner(-1,weapon,id)
if(Ent)
{
static Float:Delay
Delay = get_pdata_float( Ent, 46, 4) * iSpeed
if (Delay > 0.0)
{
set_pdata_float(Ent, 46, Delay, 4)
}
}*/
static Ent; Ent = fm_get_user_weapon_entity(id, CSW_AUG)
if(!pev_valid(Ent)) return
set_pdata_float(Ent, 46, 0.065, 4)
set_pdata_float(Ent, 47, 0.065, 4)
}
replace_weapon_models(id, wpnid)
{
switch (wpnid)
{
case CSW_AUG:
{
if(g_has[id])
{
set_pev(id, pev_viewmodel2, "models/Legolas/v_buffaug2.mdl")
set_pev(id, pev_weaponmodel2, "models/Legolas/p_buffaug.mdl")
if(oldweap[id] != CSW_AUG)
{
set_anim(id, 2)
set_pdata_float(id, 83, 1.0, 5)
//set_weapon_list(id, "weapon_aug", CSW_AUG)
}
}
}
}
oldweap[id] = wpnid
}
public UpdateClientData_Post(Player, SendWeapons, CD_Handle)
{
if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_AUG || !g_has[Player]))
return FMRES_IGNORED
set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
return FMRES_HANDLED
}
public PrimaryAttack(wpn)
{
new id = get_pdata_cbase(wpn, 41, 4)
if (!g_has[id]) return
}
public PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
{
if ((eventid != g_event))
return FMRES_IGNORED
if (!(1 <= invoker <= get_maxplayers()))
return FMRES_IGNORED
playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
return FMRES_SUPERCEDE
}
public PrimaryAttack_Post(wpn)
{
new id = get_pdata_cbase(wpn, 41, 4)
if(!is_user_alive(id) || !g_has[id] || cs_get_weapon_ammo(wpn) <= 0)
return
static Float:Push[3]
pev(id, pev_punchangle, Push)
xs_vec_sub(Push, recoil[id], Push)
xs_vec_mul_scalar(Push, 0.5, Push)
xs_vec_add(Push, recoil[id], Push)
set_pev(id,pev_punchangle,Push)
emit_sound(id, CHAN_WEAPON, "weapons/buffaug-1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
set_anim(id, random_num(3,5))
}
stock set_anim(const Player, const Sequence)
{
set_pev(Player, pev_weaponanim, Sequence)
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
write_byte(Sequence)
write_byte(pev(Player, pev_body))
message_end()
}
public message_DeathMsg(msg_id, msg_dest, id)
{
static szTruncatedWeapon[33], iAttacker, iVictim
get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
iAttacker = get_msg_arg_int(1)
iVictim = get_msg_arg_int(2)
if(!is_user_connected(iAttacker) || iAttacker == iVictim)
return PLUGIN_CONTINUE
if(equal(szTruncatedWeapon, "aug") && get_user_weapon(iAttacker) == CSW_AUG)
{
if(g_has[iAttacker])
set_msg_arg_string(4, "aug")
}
return PLUGIN_CONTINUE
}
public ItemPostFrame(wpn)
{
new id = pev(wpn, pev_owner)
if (!is_user_connected(id)) return HAM_IGNORED
if (!g_has[id])return HAM_IGNORED
static iClipExtra
iClipExtra = 50
new Float:flNextAttack = get_pdata_float(id, 83, 5)
new iBpAmmo = cs_get_user_bpammo(id, CSW_AUG)
new iClip = get_pdata_int(wpn, 51, 4)
new fInReload = get_pdata_int(wpn, 54, 4)
if( fInReload && flNextAttack <= 0.0 )
{
new j = min(iClipExtra - iClip, iBpAmmo)
set_pdata_int(wpn, 51, iClip + j, 4)
cs_set_user_bpammo(id, CSW_AUG, iBpAmmo-j)
set_pdata_int(wpn, 54, 0, 4)
fInReload = 0
}
return HAM_IGNORED
}
public Reload(wpn)
{
new id = pev(wpn, pev_owner)
if(!is_user_connected(id)) return HAM_IGNORED
if(!g_has[id]) return HAM_IGNORED
static iClipExtra
//if(g_has[id])
iClipExtra = 50
g_clip[id] = -1
new iBpAmmo = cs_get_user_bpammo(id, CSW_AUG)
new iClip = get_pdata_int(wpn, 51, 4)
if (iBpAmmo <= 0)
return HAM_SUPERCEDE
if (iClip >= iClipExtra)
return HAM_SUPERCEDE
g_clip[id] = iClip
return HAM_IGNORED
}
public Reload_Post(wpn)
{
new id = pev(wpn, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED
if (!g_has[id])
return HAM_IGNORED
if (g_clip[id] == -1)
return HAM_IGNORED
//zoom[id] = 0
//cs_set_user_zoom(id, CS_RESET_ZOOM, 1)
set_pdata_int(wpn, 51, g_clip[id], 4)
set_pdata_int(wpn, 54, 1, 4)
set_pdata_float(wpn, 48, 2.0, 4)
set_pdata_float(id, 83, 2.0, 5)
set_anim(id, 1)
return HAM_IGNORED
}
/*public Holster_Post(wpn)
{
static id
id = get_pdata_cbase(wpn, 41, 4)
g_flNextUseTime[id] = 0.0
if(g_has[id])
{
zoom[id] = false
cs_set_user_zoom(id, CS_RESET_ZOOM, 1)
}
}*/
/*public CmdStart(id, uc_handle, seed)
{
if (!is_user_alive(id) || !g_has[id])
return FMRES_IGNORED
if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !(pev(id, pev_oldbuttons) & IN_ATTACK2))
{
new szClip, szAmmo
new szWeapID = get_user_weapon(id, szClip, szAmmo)
if(szWeapID == CSW_AUG && g_has[id] && !zoom[id] == true)
{
zoom[id] = 1
cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 1)
emit_sound(id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100)
}
else if(szWeapID == CSW_AUG && g_has[id] && zoom[id])
{
zoom[id] = false
cs_set_user_zoom(id, CS_RESET_ZOOM, 0)
}
}
return FMRES_IGNORED
}*/
/*stock set_weapon_list(id, const weapon_namee[], const CSW_NAMEE)
{
message_begin(MSG_ONE, get_user_msgid("WeaponList"), {0,0,0}, id)
write_string(weapon_namee)
write_byte(4)
write_byte(90)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(14)
write_byte(CSW_NAMEE)
message_end()
}*/
not working...it s not showing the weapon on shop
- Night Fury
- Mod Developer
- Posts: 677
- Joined: 7 years ago
- Contact:
What is the full error?
Create an account or sign in to join the discussion
You need to be a member in order to post a reply
Create an account
Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute
Sign in
Who is online
Users browsing this forum: No registered users and 3 guests