Arkadaşlar bende bir minigun plugini var bu plugini yüklüyorum oyun aciliyor oynuyoruz biraz süre geçtikten sonra server çöküyor smasını veriyorum bi bakarmısınız sorunu nedir birde tek roundluk sanırım onun round'unu uzatırsanız sevinirim

PHP- Kodu:
#include <amxmodx>#include <engine>#include <fakemeta>#include <fun>#include <hamsandwich>#include <xs>#include <cstrike>#include <zombieplague>#include <dhudmessage>
#define ENG_NULLENT            -1#define EV_INT_WEAPONKEY    EV_INT_impulse#define m134_WEAPONKEY     8567#define MAX_PLAYERS          32#define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
const USE_STOPPED 0const OFFSET_ACTIVE_ITEM 373const OFFSET_WEAPONOWNER 41const OFFSET_LINUX 5const OFFSET_LINUX_WEAPONS 4
#define WEAP_LINUX_XTRA_OFF        4#define m_fKnown                    44#define m_flNextPrimaryAttack         46#define m_flTimeWeaponIdle            48#define m_iClip                    51#define m_fInReload                54#define PLAYER_LINUX_XTRA_OFF    5#define m_flNextAttack                83
#define m134_RELOAD_TIME    5.0#define m134_DRAW_TIME     1.1#define m134_SHOOT1        1#define m134_SHOOT2        2#define m134_RELOAD        3#define m134_DRAW            4#define m134_FIRE_READY    5#define m134_FIRE_AFTER    6
#define write_coord_f(%1)    engfunc(EngFunc_WriteCoord,%1)
new const Fire_Sounds[][] = { "weapons/m134-1.wav" }new const g_shellent [] = "m134_shell"
new m134_s_V_MODEL[64] = "models/bc/v_m134_surv.mdl"new m134_V_MODEL[64] = "models/bc/v_m134_hum.mdl"new m134_P_MODEL[64] = "models/bc/p_m134.mdl"new m134_W_MODEL[64] = "models/bc/w_m134.mdl"
new const GUNSHOT_DECALS[] = { 4142434445 }
new 
cvar_dmg_m134cvar_dmg_m134_survivorcvar_recoil_m134g_itemid_m134cvar_clip_m134cvar_spd_m134cvar_m134_ammocvar_surv_m134cvar_speedrun_m134cvar_speedrunfire_m134 new g_MaxPlayersg_orig_event_m134g_IsInPrimaryAttacknew Float:cl_pushangle[MAX_PLAYERS 1][3], m_iBlood[2]new g_has_m134[33], g_clip_ammo[33], g_m134_TmpClip[33], oldweap[33], g_can[33], g_afterreload[33]new cvar_shells_m134cvar_shellshealth_m134new gmsgWeaponListshell_modeshell_mode2
const PRIMARY_WEAPONS_BIT_SUM = (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)new const WEAPONENTNAMES[][] = { """weapon_p228""""weapon_scout""weapon_hegrenade""weapon_xm1014""weapon_c4""weapon_mac10",            "weapon_aug""weapon_smokegrenade""weapon_elite""weapon_fiveseven""weapon_ump45""weapon_sg550",            "weapon_galil""weapon_famas""weapon_usp""weapon_glock18""weapon_awp""weapon_mp5navy""weapon_m249",            "weapon_m3""weapon_m4a1""weapon_tmp""weapon_g3sg1""weapon_flashbang""weapon_deagle""weapon_sg552",            "weapon_ak47""weapon_knife""weapon_p90" }
public 
plugin_init(){    register_plugin("[ZP] Extra: M134""1.0""LARS-DAY[BR]EAKER")    register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")    register_event("CurWeapon","CurrentWeapon","be","1=1")    RegisterHam(Ham_Item_AddToPlayer"weapon_m249""fw_m134_AddToPlayer")    RegisterHam(Ham_Use"func_tank""fw_UseStationary_Post"1)    RegisterHam(Ham_Use"func_tankmortar""fw_UseStationary_Post"1)    RegisterHam(Ham_Use"func_tankrocket""fw_UseStationary_Post"1)    RegisterHam(Ham_Use"func_tanklaser""fw_UseStationary_Post"1)    for (new 1sizeof WEAPONENTNAMESi++)    if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_DeployWEAPONENTNAMES[i], "fw_Item_Deploy_Post"1)    RegisterHam(Ham_Weapon_PrimaryAttack"weapon_m249""fw_m134_PrimaryAttack")    RegisterHam(Ham_Weapon_PrimaryAttack"weapon_m249""fw_m134_PrimaryAttack_Post"1)    RegisterHam(Ham_Item_PostFrame"weapon_m249""m134_ItemPostFrame")    RegisterHam(Ham_Weapon_Reload"weapon_m249""m134_Reload")    RegisterHam(Ham_Weapon_Reload"weapon_m249""m134_Reload_Post"1)    RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")    register_forward(FM_SetModel"fw_SetModel")    register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1)    register_forward(FM_PlaybackEvent"fwPlaybackEvent")    register_forward(FM_CmdStart"fw_CmdStart")    register_forward(FM_PlayerPreThink"fw_PlayerPreThink")    register_think(g_shellent,"think_shell")        RegisterHam(Ham_TraceAttack"worldspawn""fw_TraceAttack"1)    RegisterHam(Ham_TraceAttack"func_breakable""fw_TraceAttack"1)    RegisterHam(Ham_TraceAttack"func_wall""fw_TraceAttack"1)    RegisterHam(Ham_TraceAttack"func_door""fw_TraceAttack"1)    RegisterHam(Ham_TraceAttack"func_door_rotating""fw_TraceAttack"1)    RegisterHam(Ham_TraceAttack"func_plat""fw_TraceAttack"1)    RegisterHam(Ham_TraceAttack"func_rotating""fw_TraceAttack"1)        gmsgWeaponList get_user_msgid("WeaponList")
    
cvar_dmg_m134 register_cvar("zp_m134_dmg""1.56")    cvar_dmg_m134_survivor register_cvar("zp_m134_dmg_survivor""3.25")    cvar_recoil_m134 register_cvar("zp_m134_recoil""2.5")    cvar_clip_m134 register_cvar("zp_m134_clip""200")    cvar_spd_m134 register_cvar("zp_m134_spd""0.75")    cvar_m134_ammo register_cvar("zp_m134_ammo""200")    cvar_surv_m134 register_cvar("zp_m134_givesurvivor""1")    cvar_speedrunfire_m134 register_cvar("zp_m134_speedrunfire""150.0")    cvar_speedrun_m134 register_cvar("zp_m134_speedrun""200.0")    cvar_shells_m134 register_cvar("zp_m134_shells""1")    cvar_shellshealth_m134 register_cvar("zp_m134_shellslife""5000.0")        g_itemid_m134 zp_register_extra_item("[Minigun] \rM134"61ZP_TEAM_HUMAN)    g_MaxPlayers get_maxplayers()}
public 
plugin_precache(){    precache_model(m134_s_V_MODEL)    precache_model(m134_V_MODEL)    precache_model(m134_P_MODEL)    precache_model(m134_W_MODEL)    for(new 0sizeof Fire_Soundsi++)    precache_sound(Fire_Sounds[i])        precache_sound("weapons/m134_clipoff.wav")    precache_sound("weapons/m134_clipon.wav")    precache_sound("weapons/m134_pinpull.wav")      precache_sound("weapons/m134_spindown.wav")       precache_sound("weapons/m134_spinup.wav")     shell_mode precache_model("models/bc/shell.mdl")    shell_mode2 precache_model("models/bc/shell2.mdl")    precache_generic("sprites/weapon_m134_bc.txt")    precache_generic("sprites/blackcat_cso/640hud7.spr")    precache_generic("sprites/blackcat_cso/640hud34.spr")    precache_generic("sprites/blackcat_cso/640hud35.spr")    m_iBlood[0] = precache_model("sprites/blood.spr")    m_iBlood[1] = precache_model("sprites/bloodspray.spr")    register_clcmd("weapon_m134_bc""weapon_hook")    register_forward(FM_PrecacheEvent"fwPrecacheEvent_Post"1)}
public 
weapon_hook(idengclient_cmd(id"weapon_m249")
public 
fw_TraceAttack(iEntiAttackerFloat:flDamageFloat:fDir[3], ptriDamageType){    if(!is_user_alive(iAttacker))        return
    new 
g_currentweapon get_user_weapon(iAttacker)
    if(
g_currentweapon != CSW_M249) return        if(!g_has_m134[iAttacker]) return
    static 
Float:flEnd[3]    get_tr2(ptrTR_vecEndPosflEnd)        if(iEnt)    {        message_begin(MSG_BROADCASTSVC_TEMPENTITY)        write_byte(TE_DECAL)        write_coord_f(flEnd[0])        write_coord_f(flEnd[1])        write_coord_f(flEnd[2])        write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])        write_short(iEnt)        message_end()    }    else    {        message_begin(MSG_BROADCASTSVC_TEMPENTITY)        write_byte(TE_WORLDDECAL)        write_coord_f(flEnd[0])        write_coord_f(flEnd[1])        write_coord_f(flEnd[2])        write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])        message_end()    }    message_begin(MSG_BROADCASTSVC_TEMPENTITY)    write_byte(TE_GUNSHOTDECAL)    write_coord_f(flEnd[0])    write_coord_f(flEnd[1])    write_coord_f(flEnd[2])    write_short(iAttacker)    write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])    message_end()}
public 
zp_user_humanized_post(idsurv){    g_has_m134[id] = false    if(surv && get_pcvar_num(cvar_surv_m134)) give_m134(id)}
public 
plugin_natives (){    register_native("give_weapon_m134""native_give_weapon_add"1)}public native_give_weapon_add(id){    give_m134(id)}
public 
fwPrecacheEvent_Post(type, const name[]){    if (equal("events/m249.sc"name))    {        g_orig_event_m134 get_orig_retval()        return FMRES_HANDLED    }    return FMRES_IGNORED}
public 
client_connect(id){    g_has_m134[id] = false}
public 
client_disconnect(id){    g_has_m134[id] = false}
public 
zp_user_infected_post(id){    if (zp_get_user_zombie(id))    {        g_has_m134[id] = false    }}
public 
user_can(id) {    g_can[id] = 2}
public 
user_can2(id) {    g_can[id] = 0}
public 
fw_SetModel(entitymodel[]){    if(!is_valid_ent(entity))        return FMRES_IGNORED        static szClassName[33]    entity_get_string(entityEV_SZ_classnameszClassNamecharsmax(szClassName))            if(!equal(szClassName"weaponbox"))        return FMRES_IGNORED        static iOwner        iOwner entity_get_edict(entityEV_ENT_owner)        if(equal(model"models/w_m249.mdl"))    {        static iStoredAugID                iStoredAugID find_ent_by_owner(ENG_NULLENT"weapon_m249"entity)            if(!is_valid_ent(iStoredAugID))            return FMRES_IGNORED            if(g_has_m134[iOwner])        {            entity_set_int(iStoredAugIDEV_INT_WEAPONKEYm134_WEAPONKEY)                        g_has_m134[iOwner] = false                        entity_set_model(entitym134_W_MODEL)                        return FMRES_SUPERCEDE        }    }    return FMRES_IGNORED}
public 
give_m134(id){    drop_weapons(id1)    new iWep2 give_item(id,"weapon_m249")    if( iWep2 )    {        cs_set_weapon_ammo(iWep2get_pcvar_num(cvar_clip_m134))        cs_set_user_bpammo (idCSW_M249get_pcvar_num(cvar_m134_ammo))            UTIL_PlayWeaponAnimation(idm134_DRAW)        set_pdata_float(idm_flNextAttackm134_DRAW_TIMEPLAYER_LINUX_XTRA_OFF)    }    g_has_m134[id] = true    message_begin(MSG_ONEgmsgWeaponList_id)    {        write_string("weapon_m134_bc")        write_byte(3)        write_byte(200)        write_byte(-1)        write_byte(-1)        write_byte(0)        write_byte(4)        write_byte(CSW_M249)    }    message_end()}
public 
zp_extra_item_selected(iditemid){    if(itemid != g_itemid_m134)        return
    
give_m134(id)}
public 
fw_m134_AddToPlayer(m134id){    if(!is_valid_ent(m134) || !is_user_connected(id))        return HAM_IGNORED        if(entity_get_int(m134EV_INT_WEAPONKEY) == m134_WEAPONKEY)    {        g_has_m134[id] = true                entity_set_int(m134EV_INT_WEAPONKEY0)                return HAM_HANDLED    }    return HAM_IGNORED}
public 
fw_UseStationary_Post(entitycalleractivatoruse_type){    if (use_type == USE_STOPPED && is_user_connected(caller))        replace_weapon_models(callerget_user_weapon(caller))}
public 
fw_Item_Deploy_Post(weapon_ent){    static owner    owner fm_cs_get_weapon_ent_owner(weapon_ent)        static weaponid    weaponid cs_get_weapon_id(weapon_ent)        replace_weapon_models(ownerweaponid)}
public 
CurrentWeapon(id){     replace_weapon_models(idread_data(2))
     if(
read_data(2) != CSW_M249 || !g_has_m134[id])          return          static Float:iSpeed     if(g_has_m134[id])          iSpeed get_pcvar_float(cvar_spd_m134)          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_floatEnt464) * iSpeed          if (Delay 0.0)          {               set_pdata_float(Ent46Delay4)          }     }}
replace_weapon_models(idweaponid){    switch (weaponid)    {        case CSW_M249:        {            if (zp_get_user_zombie(id))                return                        if(g_has_m134[id])            {                if(zp_get_user_survivor(id))                     set_pev(idpev_viewmodel2m134_s_V_MODEL)                else                    set_pev(idpev_viewmodel2m134_V_MODEL)
                
set_pev(idpev_weaponmodel2m134_P_MODEL)                    message_begin(MSG_ONEget_user_msgid("CurWeapon"), {0,0,0}, id)                 write_byte(1)                 write_byte(CSW_KNIFE)                 write_byte(0)                 message_end()
                if(
oldweap[id] != CSW_M249)                 {                    UTIL_PlayWeaponAnimation(idm134_DRAW)                    set_pdata_float(idm_flNextAttackm134_DRAW_TIMEPLAYER_LINUX_XTRA_OFF)                    message_begin(MSG_ONEgmsgWeaponList_id)                    {                        write_string("weapon_m134_bc")                        write_byte(3)                        write_byte(200)                        write_byte(-1)                        write_byte(-1)                        write_byte(0)                        write_byte(4)                        write_byte(CSW_M249)                    }                    message_end()                                }            }        }    }    if(weaponid != CSW_M249)    {        remove_task(id)        g_can[id] = 0        g_afterreload[id] = 0        if(oldweap[id] == CSW_M249 && g_has_m134[id])         {            message_begin(MSG_ONEget_user_msgid("CurWeapon"), {0,0,0}, id)             write_byte(1)             write_byte(CSW_KNIFE)             write_byte(0)             message_end()        }    }    oldweap[id] = weaponid}
public 
fw_UpdateClientData_Post(PlayerSendWeaponsCD_Handle){    if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_M249 || !g_has_m134[Player]))        return FMRES_IGNORED        set_cd(CD_HandleCD_flNextAttackhalflife_time () + 0.001)    return FMRES_HANDLED}
public 
fw_CmdStart(iduc_handleseed){    if(!is_user_alive(id) || zp_get_user_zombie(id) || get_user_weapon(id) != CSW_M249 || !g_has_m134[id])         return PLUGIN_HANDLED
    
new Float:flNextAttack get_pdata_float(idm_flNextAttackPLAYER_LINUX_XTRA_OFF)
    if(
flNextAttack 0.0)        return PLUGIN_HANDLED
    
new szClipszAmmo    get_user_weapon(idszClipszAmmo)
    if(
szClip <= 0)        return PLUGIN_HANDLED
    
if(!(pev(idpev_oldbuttons) & IN_ATTACK))    {        remove_task(id)        set_pdata_float(idm_flNextAttack0.0PLAYER_LINUX_XTRA_OFF)        g_can[id] = 0    }    if((pev(idpev_oldbuttons) & IN_ATTACK) && !(get_uc(uc_handleUC_Buttons) & IN_ATTACK))    {        remove_task(id)        set_task(1.0,"user_can2",id)        g_can[id] = 3        set_pdata_float(idm_flNextAttackm134_DRAW_TIMEPLAYER_LINUX_XTRA_OFF)        UTIL_PlayWeaponAnimation(id,m134_FIRE_AFTER)        g_can[id] = 0    }    return PLUGIN_HANDLED}
public 
fw_m134_PrimaryAttack(Weapon){    new Player get_pdata_cbase(Weapon414)        if (!g_has_m134[Player])        return HAM_IGNORED
    g_IsInPrimaryAttack 
1
    
if(g_afterreload[Player])    {        g_afterreload[Player] = 0        return HAM_SUPERCEDE    }    new Float:flNextAttack get_pdata_float(Playerm_flNextAttackPLAYER_LINUX_XTRA_OFF)
    if(
flNextAttack 0.0)        return HAM_IGNORED
    
new szClipszAmmo    get_user_weapon(PlayerszClipszAmmo)
    if(!
g_can[Player] || g_can[Player] == 3)    {        if(szClip <= 0)        {            UTIL_PlayWeaponAnimation(Player,m134_FIRE_AFTER)            set_pdata_float(Playerm_flNextAttackm134_DRAW_TIMEPLAYER_LINUX_XTRA_OFF)            return HAM_SUPERCEDE        }        set_task(1.0,"user_can",Player)        g_can[Player] = 1        set_pdata_float(Playerm_flNextAttack1.1PLAYER_LINUX_XTRA_OFF)        UTIL_PlayWeaponAnimation(Player,m134_FIRE_READY)        return HAM_SUPERCEDE    }    pev(Player,pev_punchangle,cl_pushangle[Player])        g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
    return 
HAM_IGNORED}
public 
fwPlaybackEvent(flagsinvokereventidFloat:delayFloat:origin[3], Float:angles[3], Float:fparam1Float:fparam2iParam1iParam2bParam1bParam2){    if ((eventid != g_orig_event_m134) || !g_IsInPrimaryAttack)        return FMRES_IGNORED    if (!(<= invoker <= g_MaxPlayers))    return FMRES_IGNORED
    playback_event
(flags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)    return FMRES_SUPERCEDE}
public 
fw_m134_PrimaryAttack_Post(Weapon){    g_IsInPrimaryAttack 0    new Player get_pdata_cbase(Weapon414)        if(!is_user_alive(Player))        return
    new 
szClipszAmmo    get_user_weapon(PlayerszClipszAmmo)
    if(
g_has_m134[Player])    {        if(g_can[Player] != 2)            return
        if(
szClip <= 0)        {            UTIL_PlayWeaponAnimation(Player,m134_FIRE_AFTER)            set_pdata_float(Playerm_flNextAttackm134_DRAW_TIMEPLAYER_LINUX_XTRA_OFF)        }
        if (!
g_clip_ammo[Player])            return                static Float:g_punchangle[3]        g_punchangle[0] = -get_pcvar_float(cvar_recoil_m134)        set_pev(Playerpev_punchangleg_punchangle);                 emit_sound(PlayerCHAN_WEAPONFire_Sounds[0], VOL_NORMATTN_NORM0PITCH_NORM)        UTIL_PlayWeaponAnimation(Playerrandom_num(m134_SHOOT1,m134_SHOOT2))        if(get_pcvar_num(cvar_shells_m134)) make_shell(Player)    }}
public 
fw_TakeDamage(victiminflictorattackerFloat:damage){    if (victim != attacker && is_user_connected(attacker))    {        if(get_user_weapon(attacker) == CSW_M249)        {            if(g_has_m134[attacker])            {                if(zp_get_user_survivor(attacker))                {                    SetHamParamFloat(4damage get_pcvar_float(cvar_dmg_m134_survivor))                }else {                    SetHamParamFloat(4damage get_pcvar_float(cvar_dmg_m134))                }            }        }    }}
public 
message_DeathMsg(msg_idmsg_destid){    static szTruncatedWeapon[33], iAttackeriVictim        get_msg_arg_string(4szTruncatedWeaponcharsmax(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"m249") && get_user_weapon(iAttacker) == CSW_M249)    {        if(g_has_m134[iAttacker])            set_msg_arg_string(4"m249")    }    return PLUGIN_CONTINUE}
stock fm_cs_get_current_weapon_ent(id){    return get_pdata_cbase(idOFFSET_ACTIVE_ITEMOFFSET_LINUX)}
stock fm_cs_get_weapon_ent_owner(ent){    return get_pdata_cbase(entOFFSET_WEAPONOWNEROFFSET_LINUX_WEAPONS)}
stock UTIL_PlayWeaponAnimation(const Player, const Sequence){    set_pev(Playerpev_weaponanimSequence)        message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player)    write_byte(Sequence)    write_byte(pev(Playerpev_body))    message_end()}
public 
m134_ItemPostFrame(weapon_entity) {     new id pev(weapon_entitypev_owner)     if (!is_user_connected(id))          return HAM_IGNORED
     
if (!g_has_m134[id])          return HAM_IGNORED
     
new Float:flNextAttack get_pdata_float(idm_flNextAttackPLAYER_LINUX_XTRA_OFF)
     new 
iBpAmmo cs_get_user_bpammo(idCSW_M249)     new iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)
     new 
fInReload get_pdata_int(weapon_entitym_fInReloadWEAP_LINUX_XTRA_OFF
     if( 
fInReload && flNextAttack <= 0.0 )     {         new min(get_pcvar_num(cvar_clip_m134) - iClipiBpAmmo)             set_pdata_int(weapon_entitym_iClipiClip jWEAP_LINUX_XTRA_OFF)         cs_set_user_bpammo(idCSW_M249iBpAmmo-j)                 set_pdata_int(weapon_entitym_fInReload0WEAP_LINUX_XTRA_OFF)         fInReload 0         g_can[id] = 0     }     return HAM_IGNORED}
public 
m134_Reload(weapon_entity) {     new id pev(weapon_entitypev_owner)     if (!is_user_connected(id))          return HAM_IGNORED
     
if (!g_has_m134[id])          return HAM_IGNORED
     g_m134_TmpClip
[id] = -1
     
new iBpAmmo cs_get_user_bpammo(idCSW_M249)     new iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)
     if (
iBpAmmo <= 0)          return HAM_SUPERCEDE
     
if (iClip >= get_pcvar_num(cvar_clip_m134))          return HAM_SUPERCEDE
     g_m134_TmpClip
[id] = iClip
     
return HAM_IGNORED}
public 
m134_Reload_Post(weapon_entity) {    new id pev(weapon_entitypev_owner)    if (!is_user_connected(id))        return HAM_IGNORED
    
if (!g_has_m134[id])        return HAM_IGNORED
    
if(zp_get_user_survivor(id) && get_pcvar_num(cvar_surv_m134))        return HAM_SUPERCEDE
    
new szClipszAmmo    get_user_weapon(idszClipszAmmo)
    if (
szClip == get_pcvar_num(cvar_clip_m134))        return HAM_IGNORED
    
if (szAmmo <= 0)        return HAM_IGNORED
    
if (g_m134_TmpClip[id] == -1)        return HAM_IGNORED
    set_pdata_int
(weapon_entitym_iClipg_m134_TmpClip[id], WEAP_LINUX_XTRA_OFF)
    
set_pdata_float(weapon_entitym_flTimeWeaponIdlem134_RELOAD_TIMEWEAP_LINUX_XTRA_OFF)
    
set_pdata_float(idm_flNextAttackm134_RELOAD_TIMEPLAYER_LINUX_XTRA_OFF)
    
set_pdata_int(weapon_entitym_fInReload1WEAP_LINUX_XTRA_OFF)
    
UTIL_PlayWeaponAnimation(idm134_RELOAD)
    
remove_task(id)    g_can[id] = 0    g_afterreload[id] = 1
    
return HAM_IGNORED}
public 
make_shell(id){    static Float:origin[3], Float:origin2[3],  Float:vSrc[3], Float:angles[3], Float:v_forward[3], Float:v_right[3], Float:v_up[3], Float:gun_position[3], Float:player_origin[3], Float:player_view_offset[3]    static Float:OriginX[3]    pev(idpev_v_angleangles)    pev(idpev_originOriginX)    engfunc(EngFunc_MakeVectorsangles)
    static 
Float:v_forward2[3], Float:v_right2[3], Float:v_up2[3], Float:vSrc2[3]
    
global_get(glb_v_forwardv_forward)    global_get(glb_v_rightv_right)    global_get(glb_v_upv_up)
    
global_get(glb_v_forwardv_forward2)    global_get(glb_v_rightv_right2)    global_get(glb_v_upv_up2)
    
//m_pPlayer->GetGunPosition( ) = pev->origin + pev->view_ofs    pev(id, pev_origin, player_origin)    pev(id, pev_view_ofs, player_view_offset)    xs_vec_add(player_origin, player_view_offset, gun_position)
    
xs_vec_mul_scalar(v_forward10.0v_forward)    xs_vec_mul_scalar(v_right3.0v_right)    xs_vec_mul_scalar(v_up, -8.0v_up)
    
xs_vec_mul_scalar(v_forward2random_float(0.0110.0), v_forward2)    xs_vec_mul_scalar(v_right2random_float(0.0, -2.5), v_right2)    xs_vec_mul_scalar(v_up2,-30.0v_up2)
    
xs_vec_add(gun_positionv_forwardorigin)    xs_vec_add(originv_rightorigin)    xs_vec_add(originv_uporigin)
    
xs_vec_add(gun_positionv_forward2origin2)    xs_vec_add(origin2v_right2origin2)    xs_vec_add(origin2v_up2origin2)
    
vSrc[0] = origin[0]    vSrc[1] = origin[1]    vSrc[2] = origin[2]
    
vSrc2[0] = origin2[0]    vSrc2[1] = origin2[1]    vSrc2[2] = origin2[2]
    new 
ent create_entity("info_target")    set_pev(entpev_classnameg_shellent)
    
engfunc(EngFunc_SetModel,ent"models/bc/shell.mdl")
    
set_pev(ent,pev_mins,Float:{-1.0,-1.0,0.0})    set_pev(ent,pev_maxs,Float:{1.0,1.0,1.0})    set_pev(ent,pev_size,Float:{-1.0,-1.0,0.0,1.0,1.0,1.0})    engfunc(EngFunc_SetSize,ent,Float:{-1.0,-1.0,0.0},Float:{1.0,1.0,1.0})
    
//set_pev(ent,pev_solid,SOLID_BBOX)    //set_pev(ent,pev_movetype,MOVETYPE_TOSS)
    
set_pev(entpev_originvSrc)
    static 
Float:newangles[3]    pev(id,pev_angles,newangles)    set_pev(ent,pev_anglesnewangles)
    static 
Float:flVelocity ]    get_speed_vector vSrc2vSrcrandom_float(100.0,150.0), flVelocity )    set_pev(ent,pev_velocity,flVelocity)
    
entity_set_float(entEV_FL_healthget_pcvar_float(cvar_shellshealth_m134))
    
entity_set_float(entEV_FL_nextthinkget_gametime() + 0.01)         new angle random_num(0,360)        message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY,_,id)    write_byte(TE_MODEL)    write_coord_f(OriginX[0])    write_coord_f(OriginX[1])    write_coord_f(OriginX[2])    write_coord_f(flVelocity[0])    write_coord_f(flVelocity[1])    write_coord_f(flVelocity[2])    write_angle(angle)    write_short(shell_mode)    write_byte(1)    write_byte(get_pcvar_num(cvar_shellshealth_m134) * 10)    message_end()
    
make_shell2(id)}
public 
make_shell2(id){    static Float:origin[3], Float:origin2[3],  Float:vSrc[3], Float:angles[3], Float:v_forward[3], Float:v_right[3], Float:v_up[3], Float:gun_position[3], Float:player_origin[3], Float:player_view_offset[3]    static Float:OriginX[3]    pev(idpev_v_angleangles)    pev(idpev_originOriginX)    engfunc(EngFunc_MakeVectorsangles)
    static 
Float:v_forward2[3] , Float:v_right2[3],  Float:v_up2[3] , Float:vSrc2[3]
    
global_get(glb_v_forwardv_forward)    global_get(glb_v_rightv_right)    global_get(glb_v_upv_up)
    
global_get(glb_v_forwardv_forward2)    global_get(glb_v_rightv_right2)    global_get(glb_v_upv_up2)
    
//m_pPlayer->GetGunPosition( ) = pev->origin + pev->view_ofs    pev(id, pev_origin, player_origin)    pev(id, pev_view_ofs, player_view_offset)    xs_vec_add(player_origin, player_view_offset, gun_position)
    
xs_vec_mul_scalar(v_forward13.0v_forward);    xs_vec_mul_scalar(v_rightrandom_float(-4.5,-6.0), v_right);    xs_vec_mul_scalar(v_up, -5.0v_up); // -3.0
    
xs_vec_mul_scalar(v_forward20.0v_forward2);    xs_vec_mul_scalar(v_right20.0v_right2);    xs_vec_mul_scalar(v_up20.0v_up2);
    
xs_vec_add(gun_positionv_forwardorigin)    xs_vec_add(originv_rightorigin)    xs_vec_add(originv_uporigin)
    
xs_vec_add(gun_positionv_forward2origin2)    xs_vec_add(origin2v_right2origin2)    xs_vec_add(origin2v_up2origin2)
    
vSrc[0] = origin[0]    vSrc[1] = origin[1]    vSrc[2] = origin[2]
    
vSrc2[0] = origin2[0]    vSrc2[1] = origin2[1]    vSrc2[2] = origin2[2]
    new 
ent create_entity("info_target")    set_pev(entpev_classnameg_shellent)
    
engfunc(EngFunc_SetModel,ent"models/bc/shell2.mdl")
    
set_pev(ent,pev_mins,Float:{-1.0,-1.0,0.0})    set_pev(ent,pev_maxs,Float:{1.0,1.0,1.0})    set_pev(ent,pev_size,Float:{-1.0,-1.0,0.0,1.0,1.0,1.0})    engfunc(EngFunc_SetSize,ent,Float:{-1.0,-1.0,0.0},Float:{1.0,1.0,1.0})
    
//set_pev(ent,pev_solid, SOLID_TRIGGER)    //set_pev(ent,pev_movetype, MOVETYPE_TOSS)        new angle = random_num(0,360)
    
set_pev(entpev_originvSrc)
    static 
Float:newangles[3]    pev(id,pev_angles,newangles)    set_pev(ent,pev_anglesnewangles)
    static 
Float:flVelocity ]    get_speed_vector vSrc2vSrcrandom_float(100.0200.0), flVelocity )    set_pev(ent,pev_velocity,flVelocity)        message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY,_,id)    write_byte(TE_MODEL)    write_coord_f(OriginX[0])    write_coord_f(OriginX[1])    write_coord_f(OriginX[2])    write_coord_f(flVelocity[0])    write_coord_f(flVelocity[1])    write_coord_f(flVelocity[2])    write_angle(angle)    write_short(shell_mode2)    write_byte(1)    write_byte(get_pcvar_num(cvar_shellshealth_m134) * 10)    message_end()
    
entity_set_float(entEV_FL_healthget_pcvar_float(cvar_shellshealth_m134))
    
entity_set_float(entEV_FL_nextthinkget_gametime() + 0.01) }
public 
think_shell(ent) {    if(!pev_valid(ent))        return            if(!(pev(ent,pev_flags) & FL_ONGROUND))    {        new Float:oldangles[3],Float:angles[3]        pev(ent,pev_angles,oldangles)        angles[0] = oldangles[0] + random_float(10.0,20.0)        angles[1] = oldangles[1] + random_float(10.0,20.0)        angles[2] = oldangles[2] + random_float(10.0,20.0)        set_pev(ent,pev_angles,angles)    }    entity_set_float(entEV_FL_healthentity_get_float(ent,EV_FL_health) - 10.0)     entity_set_float(entEV_FL_nextthinkget_gametime() + 0.01)     if(entity_get_float(ent,EV_FL_health) <= 0remove_entity(ent)}
stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speedFloat:new_velocity[3]){    new_velocity[0] = origin2[0] - origin1[0]    new_velocity[1] = origin2[1] - origin1[1]    new_velocity[2] = origin2[2] - origin1[2]    new Float:num floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2]))    new_velocity[0] *= num    new_velocity[1] *= num    new_velocity[2] *= num           return 1
public 
client_PreThink(id){    if(!is_user_alive(id) || zp_get_user_zombie(id) || !g_has_m134[id] || get_user_weapon(id) != CSW_M249)        return
    new 
szClipszAmmo    get_user_weapon(idszClipszAmmo)
    if(
szClip <= && szAmmo <= 0)        g_can[id] = 0
    set_dhudmessage
(2008000.91.000.0020.10.00.0)    show_dhudmessage(id"%d | %d [7.62mm]"szClipszAmmo) }
public 
fw_PlayerPreThink(id){    if(!is_user_alive(id) || zp_get_user_zombie(id) || !g_has_m134[id] || get_user_weapon(id) != CSW_M249)        return
    new 
szClip    get_user_weapon(idszClip)
    if(
g_can[id]) set_pev(idpev_maxspeedget_pcvar_float(cvar_speedrunfire_m134))    if(!g_can[id] || szClip <= 0set_pev(idpev_maxspeedget_pcvar_float(cvar_speedrun_m134))}
stock drop_weapons(iddropwhat){     static weapons[32], numiweaponid     num 0     get_user_weapons(idweaponsnum)          for (0numi++)     {          weaponid weapons[i]                    if (dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))          {               static wname[32]               get_weaponname(weaponidwnamesizeof wname 1)               engclient_cmd(id"drop"wname)          }     }} 
Ek olarak .sma

azp_weapon_m134.sma