thanatos7
#1
Estrella 
podrian ayudarme con este plugin? yo quiero ponerlo con esto: ADMIN_RCON osea quiero que los administradores que tengan el acceso puedan comprarlo y no todo el mundo: free - admin con cualquier letra, aqui les dejo el codigo para que me puedan decir que linea tengo que cambiar o modificar para componer esa funcion. pacman

Código PHP:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <cstrike>

#define PLUGIN "[CSO] Pri: Thanatos-7"
#define VERSION "1.0"
#define VERSION "1.0"
#define AUTHOR "Dev!l"

#define ENG_NULLENT        -1
#define EV_INT_WEAPONKEY    EV_INT_impulse

#define WEAPONKEY 754247

const USE_STOPPED 0
const PDATA_SAFE 2
const OFFSET_LINUX_WEAPONS 4
const OFFSET_WEAPONOWNER 41
const m_flNextAttack 83
const m_szAnimExtention 492

#define WEAP_LINUX_XTRA_OFF        4
#define m_flTimeWeaponIdle            48
#define m_iClip                    51
#define m_fInReload                54
#define PLAYER_LINUX_XTRA_OFF    5

#define RELOAD_TIME        4.5

new const v_model[] = "models/thanatos7/v_thanatos7.mdl"
new const p_model[] = "models/thanatos7/p_thanatos7.mdl"
new const w_model[] = "models/thanatos7/w_thanatos7.mdl"
new const SCYTHE_MODEL[] = "models/thanatos7/thanatos7_scythe.mdl"

new const sound[10][] = 
{
    
"weapons/thanatos7-1.wav",
    
"weapons/thanatos7_bdraw.wav",
    
"weapons/thanatos7_bidle2.wav",
    
"weapons/thanatos7_clipin1.wav",
    
"weapons/thanatos7_clipin2.wav",
    
"weapons/thanatos7_clipout1.wav",
    
"weapons/thanatos7_clipout2.wav",
    
"weapons/thanatos7_draw.wav",
    
"weapons/thanatos7_scythereload.wav",
    
"weapons/thanatos7_scytheshoot.wav"
}

new const 
sprite[4][] = 
{
    
"sprites/weapon_thanatos7.txt",
    
"sprites/thanatos7/640hud7.spr",
    
"sprites/thanatos7/640hud13.spr",
    
"sprites/thanatos7/640hud117.spr"
}

enum
{
    
IDLE 0,
    
BIDLE,
    
BIDLE2,
    
SHOOT1,
    
BSHOOT1,
    
SHOOT2,
    
BSHOOT2,
    
RELOAD,
    
BRELOAD,
    
SCYTHESHOOT,
    
SCYTHERELOAD,
    
DRAW,
    
BDRAW
}

#define write_coord_f(%1)    engfunc(EngFunc_WriteCoord,%1)

new const GUNSHOT_DECALS[] = { 4142434445 }

new 
g_had_thanatos7[33], g_thanatos7_ammo[33], g_mode[33], g_reload[33]
new 
Float:cl_pushangle[33][3], g_clip_ammo[33], g_old_weapon[33]
new 
g_IsInPrimaryAttackg_orig_event_thanatos7g_thanatos7_TmpClip[33], EntgmsgWeaponListg_MaxPlayers ,g_Msg_StatusIcon
new cvar_dmg_scythecvar_clip_thanatos7cvar_thanatos7_ammocvar_recoil_thanatos7cvar_dmg_thanatos7
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_mp5navy""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" }
            
enum
{
    
MODE_NOLMAL 1,
    
MODE_CHANGING_1,
    
MODE_CHANGING_2,
    
MODE_BOLT
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_forward(FM_PlaybackEvent"fwPlaybackEvent")
    
register_forward(FM_CmdStart"fw_CmdStart")
    
register_forward(FM_SetModel"fw_SetModel")
    
register_touch("scythe""*""fw_Touch")
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1)
    
register_event("CurWeapon""Event_CurWeapon""be""1=1")
    
    
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)
    
    
RegisterHam(Ham_TraceAttack"player""fw_TraceAttack")
    
RegisterHam(Ham_TraceAttack"worldspawn""fw_TraceAttack")
    
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)
    
    for (new 
1sizeof WEAPONENTNAMESi++)
        if (
WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_DeployWEAPONENTNAMES[i], "fw_Item_Deploy_Post"1)
    
    
RegisterHam(Ham_Item_AddToPlayer"weapon_m249""fw_AddToPlayer_Post"1)
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_m249""fw_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_m249""fw_PrimaryAttack_Post"1)
    
RegisterHam(Ham_Item_PostFrame"weapon_m249""fw_ItemPostFrame")
    
RegisterHam(Ham_Weapon_Reload"weapon_m249""fw_Reload")
    
RegisterHam(Ham_Weapon_Reload"weapon_m249""fw_Reload_Post"1)
    
RegisterHam(Ham_Weapon_WeaponIdle"weapon_m249""fw_Idleanim"1)
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
    
cvar_recoil_thanatos7 register_cvar("cso_thanatos7_recoil""0.45")
    
cvar_dmg_thanatos7 register_cvar("cso_dmg_thanatos7""60.0")
    
cvar_dmg_scythe register_cvar("cso_dmg_scythe""100.0")
    
cvar_clip_thanatos7 register_cvar("cso_thanatos7_clip""120")
    
cvar_thanatos7_ammo register_cvar("cso_thanatos7_ammo""240")
    
    
register_clcmd("arma1""get_thanatos")
    
    
gmsgWeaponList get_user_msgid("WeaponList")
    
g_Msg_StatusIcon get_user_msgid("StatusIcon")
    
g_MaxPlayers get_maxplayers()
    
    
register_clcmd("weapon_thanatos7""hook_weapon")
}

public 
plugin_precache()
{
    
precache_model(v_model)
    
precache_model(p_model)
    
precache_model(w_model)
    
precache_model(SCYTHE_MODEL)
    
    for(new 
0sizeof(sound); i++) 
        
precache_sound(sound[i])
        
    for(new 
1sizeof(sprite); i++)
        
precache_model(sprite[i])
        
    
register_forward(FM_PrecacheEvent"fw_PrecacheEvent_Post"1)
}

public 
fw_PlayerKilled(id)
{
    
remove_thanatos7(id)
}


public 
hook_weapon(id)
{
    
engclient_cmd(id"weapon_m249")
    return
}

public 
fw_PrecacheEvent_Post(type, const name[])
{
    if(
equal("events/m249.sc"name))
        
g_orig_event_thanatos7 get_orig_retval()
}

public 
get_thanatos(id)
{
    if(!
is_user_alive(id))
        return
        
    new 
iWep2 give_item(id,"weapon_m249")
    if( 
iWep2 )
    {
        
cs_set_weapon_ammo(iWep2get_pcvar_num(cvar_clip_thanatos7))
        
cs_set_user_bpammo (idCSW_M249get_pcvar_num(cvar_thanatos7_ammo))
        
set_weapons_timeidle(idCSW_M2492.0)
        
set_player_nextattackx(id2.0)
        
set_weapon_anim(idDRAW)
    }
    
g_had_thanatos7[id] = 1
    g_mode
[id] = MODE_NOLMAL
    g_thanatos7_ammo
[id] = 0
    g_reload
[id] = 1
    update_specialammo
(idg_thanatos7_ammo[id], g_thanatos7_ammo[id] > 0)
    
    
message_begin(MSG_ONEgmsgWeaponList, {0,0,0}, id)
    
write_string("weapon_thanatos7")
    
write_byte(3)
    
write_byte(200)
    
write_byte(-1)
    
write_byte(-1)
    
write_byte(0)
    
write_byte(4)
    
write_byte(CSW_M249)
    
write_byte(0)
    
message_end()
}

public 
remove_thanatos7(id)
{
    
update_specialammo(idg_thanatos7_ammo[id], 0)
        
    
g_had_thanatos7[id] = 0
    g_thanatos7_ammo
[id] = 0
    g_reload
[id] = 1
}

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 || !g_had_thanatos7[iAttacker])
        return
        
    
SetHamParamFloat(3get_pcvar_float(cvar_dmg_thanatos7))
    
    static 
Float:flEnd[3], Float:myOrigin[3]
    
    
pev(iAttackerpev_originmyOrigin)
    
get_tr2(ptrTR_vecEndPosflEnd)
        
    if(!
is_user_alive(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()

        
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 
fw_UpdateClientData_Post(idsendweaponsCD_Handle)
{
    if(!
is_user_alive(id) || (get_user_weapon(id) != CSW_M249 || !g_had_thanatos7[id]))
        return 
FMRES_IGNORED
    
    set_cd
(CD_HandleCD_flNextAttackhalflife_time () + 0.001)
    
    return 
FMRES_HANDLED
}

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_had_thanatos7[iOwner])
        {
            
g_had_thanatos7[iOwner] = 0
            
            entity_set_int
(iStoredAugIDEV_INT_WEAPONKEYWEAPONKEY)
            
set_pev(iStoredAugIDpev_iuser4g_thanatos7_ammo[iOwner])
            
entity_set_model(entityw_model)
            
            return 
FMRES_SUPERCEDE
        
}
    }
    return 
FMRES_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 
Event_CurWeapon(id)
{
    if(!
is_user_alive(id))
        return
        
    if(
get_user_weapon(id) != CSW_M249 && g_old_weapon[id] == CSW_M249
    {
        
update_specialammo(idg_thanatos7_ammo[id], 0)
    }
    
g_old_weapon[id] = get_user_weapon(id)
        
    
replace_weapon_models(idread_data(2))
}

replace_weapon_models(idweaponid)
{
    switch (
weaponid)
    {
        case 
CSW_M249:
        {
            if(
g_had_thanatos7[id])
            {
                
set_pev(idpev_viewmodel2v_model)
                
set_pev(idpev_weaponmodel2p_model)
                
update_specialammo(idg_thanatos7_ammo[id], g_thanatos7_ammo[id] > 0)
                
g_reload[id] = 1
                
if(g_mode[id] == MODE_NOLMAL)
                {
                    if(
g_old_weapon[id] != CSW_M249
                    {
                        
set_weapon_anim(idDRAW)
                        
set_weapons_timeidle(idCSW_M2492.0)
                        
set_player_nextattackx(id2.0)

                        
remove_task(id)
                        
message_begin(MSG_ONEgmsgWeaponList, {0,0,0}, id)
                        
write_string("weapon_thanatos7")
                        
write_byte(3)
                        
write_byte(200)
                        
write_byte(-1)
                        
write_byte(-1)
                        
write_byte(0)
                        
write_byte(4)
                        
write_byte(CSW_M249)
                        
write_byte(0)
                        
message_end()
                    }
                }
                else if(
g_mode[id] == MODE_BOLT && g_thanatos7_ammo[id] == 1)
                {
                    if(
g_old_weapon[id] != CSW_M249
                    {
                        
set_weapon_anim(idBDRAW)
                        
set_weapons_timeidle(idCSW_M2492.0)
                        
set_player_nextattackx(id2.0)
                        
                        
remove_task(id)
                        
message_begin(MSG_ONEgmsgWeaponList, {0,0,0}, id)
                        
write_string("weapon_thanatos7")
                        
write_byte(3)
                        
write_byte(200)
                        
write_byte(-1)
                        
write_byte(-1)
                        
write_byte(0)
                        
write_byte(4)
                        
write_byte(CSW_M249)
                        
write_byte(0)
                        
message_end()
                    }
                }
            }
        }
    }
    
g_old_weapon[id] = get_user_weapon(id)
}

public 
fw_AddToPlayer_Post(weaponid)
{
    if(!
is_valid_ent(weapon) || !is_user_connected(id))
        return 
HAM_IGNORED
    
    
if(entity_get_int(weaponEV_INT_WEAPONKEY) == WEAPONKEY)
    {
        
g_had_thanatos7[id] = 1
        g_thanatos7_ammo
[id] = pev(weaponpev_iuser4)
        
        
message_begin(MSG_ONEgmsgWeaponList, {0,0,0}, id)
        
write_string("weapon_thanatos7")
        
write_byte(3)
        
write_byte(200)
        
write_byte(-1)
        
write_byte(-1)
        
write_byte(0)
        
write_byte(4)
        
write_byte(CSW_M249)
        
write_byte(0)
        
message_end()
    }
    else
    {
        
message_begin(MSG_ONEgmsgWeaponList, {0,0,0}, id)
        
write_string("weapon_m249")
        
write_byte(3)
        
write_byte(200)
        
write_byte(-1)
        
write_byte(-1)
        
write_byte(0)
        
write_byte(4)
        
write_byte(CSW_M249)
        
write_byte(0)
        
message_end()
    }
    return 
HAM_IGNORED
}

public 
fw_PrimaryAttack(Weapon)
{
    new 
Player get_pdata_cbase(Weapon414)
    
    if (!
g_had_thanatos7[Player])
        return
    
    
g_IsInPrimaryAttack 1
    pev
(Player,pev_punchangle,cl_pushangle[Player])
    
    
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
}

public 
fw_PrimaryAttack_Post(Weapon)
{
    
g_IsInPrimaryAttack 0
    
new Player get_pdata_cbase(Weapon414)
    
    new 
szClipszAmmo
    get_user_weapon
(PlayerszClipszAmmo)
        
    if(
g_had_thanatos7[Player])
    {
        if(
szClip <= 0emit_sound(PlayerCHAN_WEAPONsound[5], VOL_NORMATTN_NORM0PITCH_NORM)
    }
    
    if(
g_had_thanatos7[Player])
    {
        if (!
g_clip_ammo[Player])
            return
            
        new 
Float:push[3]
        
pev(Player,pev_punchangle,push)
        
xs_vec_sub(push,cl_pushangle[Player],push)
        
        
xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_thanatos7),push)
        
xs_vec_add(push,cl_pushangle[Player],push)
        
set_pev(Player,pev_punchangle,push)
        
emit_sound(PlayerCHAN_WEAPONsound[0], 1.0ATTN_NORM0PITCH_NORM)
        if(
g_mode[Player] == MODE_NOLMAL)
        {    
            
set_weapon_anim(PlayerSHOOT1)
        }
        else if(
g_mode[Player] == MODE_BOLT)
        {
            
set_weapon_anim(PlayerBSHOOT1)
        }
        
    }
}

public 
fw_CmdStart(iduc_handleseed)
{
    if(!
is_user_alive(id) || !is_user_connected(id))
        return
    if(
get_user_weapon(id) != CSW_M249 || !g_had_thanatos7[id])
        return
    
    static 
entent fm_get_user_weapon_entity(idCSW_M249)
    if(!
pev_valid(ent))
        return
        
    new 
szClipszAmmo
    get_user_weapon
(idszClipszAmmo)
    
    static 
CurButton
    CurButton 
get_uc(uc_handleUC_Buttons)
    
    if(
CurButton IN_ATTACK2 && szClip >= 1)
    {
        
CurButton &= ~IN_ATTACK2
        set_uc
(uc_handleUC_ButtonsCurButton)
        
        if(
get_pdata_float(ent464) > 0.0 || get_pdata_float(ent474) > 0.0
            return
            
        if(
g_mode[id] == MODE_NOLMAL)
        {
            
set_weapons_timeidle(idCSW_M2494.0)
            
set_player_nextattackx(id4.0)
            
set_weapon_anim(idSCYTHERELOAD)
            
g_reload[id] = 0
            emit_sound
(idCHAN_WEAPONsound[8], 1.0ATTN_NORM0PITCH_NORM)
            
set_task(0.1"change_mode"id)
            
g_mode[id] = MODE_CHANGING_1
        
        
}
        else if(
g_mode[id] == MODE_BOLT)
        {
            if(
g_thanatos7_ammo[id] == 0)
                return
                
            
set_weapons_timeidle(idCSW_M2494.0)
            
set_player_nextattackx(id4.0)
            
Scythe_Shoot(id)
            static 
Float:PunchAngles[3]
            
PunchAngles[0] = -10.0
            update_specialammo
(idg_thanatos7_ammo[id], 0)
            
g_thanatos7_ammo[id]--
            
update_specialammo(idg_thanatos7_ammo[id], g_thanatos7_ammo[id] > 0)
            
g_reload[id] = 0
            set_weapon_anim
(idSCYTHESHOOT)
            
emit_sound(idCHAN_WEAPONsound[9], 1.0ATTN_NORM0PITCH_NORM)
            
set_task(0.1"change_mode"id)
            
g_mode[id] = MODE_CHANGING_2
        
}
    }
}

public 
change_mode(id)
{
    if(
g_mode[id] == MODE_CHANGING_1)
    {
        
g_mode[id] = MODE_NOLMAL
        set_task
(3.5"fil_scythe"id)
    }
    else if(
g_mode[id] == MODE_CHANGING_2)
    {
        
g_reload[id] = 1
        g_mode
[id] = MODE_NOLMAL
    
}
}

public 
fil_scythe(id)
{
    
set_weapons_timeidle(idCSW_M2490.5)
    
set_player_nextattackx(id0.5)
    
g_mode[id] = MODE_BOLT
    update_specialammo
(idg_thanatos7_ammo[id], 0)
    
g_thanatos7_ammo[id]++
    
update_specialammo(idg_thanatos7_ammo[id], 1)
    
reload_on(id)
}

public 
reload_on(id)
{
    
g_reload[id] = 1
}

public 
Scythe_Shoot(id)
{
    static 
Float:StartOrigin[3], Float:TargetOrigin[3], Float:angles[3], Float:angles_fix[3]
    
get_position(id2.04.0, -1.0StartOrigin)

    
pev(id,pev_v_angle,angles)
    
Ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
    if(!
pev_valid(Ent)) return
    
angles_fix[0] = 360.0 angles[0]
    
angles_fix[1] = angles[1]
    
angles_fix[2] = angles[2]
    
set_pev(Entpev_movetypeMOVETYPE_FLY)
    
set_pev(Entpev_ownerid)
    
    
entity_set_string(EntEV_SZ_classname"scythe")
    
engfunc(EngFunc_SetModelEntSCYTHE_MODEL)
    
set_pev(Entpev_mins,{ -0.1, -0.1, -0.1 })
    
set_pev(Entpev_maxs,{ 0.10.10.1 })
    
set_pev(Entpev_originStartOrigin)
    
set_pev(Entpev_anglesangles_fix)
    
set_pev(Entpev_solidSOLID_BBOX)
    
set_pev(Entpev_frame0.0)
    
set_entity_anim(Ent1)
    
entity_set_float(EntEV_FL_nextthinkhalflife_time() + 0.01)
    
    static 
Float:Velocity[3]
    
fm_get_aim_origin(idTargetOrigin)
    
get_speed_vector(StartOriginTargetOrigin750.0Velocity)
    
set_pev(Entpev_velocityVelocity)
}

public 
fw_Touch(EntId)
{
    
// If ent is valid
    
if(!pev_valid(Ent))
        return
    if(
pev(Entpev_movetype) == MOVETYPE_NONE)
        return
        
    
set_pev(Entpev_movetypeMOVETYPE_NONE)
    
set_pev(Entpev_solidSOLID_NOT)
    
set_entity_anim(Ent1)
    
entity_set_float(EntEV_FL_nextthinkhalflife_time() + 0.01)
    
    
set_task(0.1"action_scythe"Ent)
    
set_task(9.0"remove"Ent)
}

public 
remove(Ent)
{
    if(!
pev_valid(Ent))
        return
        
    
remove_entity(Ent)
}

public 
action_scythe(Ent)
{
    if(!
pev_valid(Ent))
        return
        
    
Damage_scythe(Ent)
}

public 
Damage_scythe(Ent)
{
    if(!
pev_valid(Ent))
        return
    
    static 
idid pev(Entpev_owner)
    new 
Float:origin[3]
    
pev(Entpev_originorigin)
    
    
// Alive...
    
new FM_NULLENT
    
// Get distance between victim and epicenter
    
while((find_ent_in_sphere(aorigin80.0)) != 0)
    {
        if (
id == a)
            continue
    
        if(
pev(apev_takedamage) != DAMAGE_NO)
        {
            
ExecuteHamB(Ham_TakeDamageaididget_pcvar_float(cvar_dmg_scythe), DMG_BULLET)
        }
    }
    
set_task(0.1"action_scythe"Ent)
}
    
public 
fw_Idleanim(Weapon)
{
    new 
id get_pdata_cbase(Weapon414)
    
g_reload[id] = 1

    
if(!is_user_alive(id) || !g_had_thanatos7[id] || get_user_weapon(id) != CSW_M249)
        return 
HAM_IGNORED;
    
    if(
g_mode[id] == MODE_NOLMAL && g_thanatos7_ammo[id] == && get_pdata_float(Weapon484) <= 0.25)
    {
        
set_weapon_anim(idIDLE)
        
set_pdata_float(Weapon4820.04)
        return 
HAM_SUPERCEDE;
    }
    
    if(
g_mode[id] == MODE_BOLT && g_thanatos7_ammo[id] == && get_pdata_float(Weapon484) <= 0.25
    {
        
set_weapon_anim(idrandom_num(BIDLEBIDLE2))
        
set_pdata_float(Weapon4820.04)
        return 
HAM_SUPERCEDE;
    }

    return 
HAM_IGNORED;
}

public 
update_ammo(id)
{
    if(!
is_user_alive(id))
        return
    
    static 
weapon_entweapon_ent fm_find_ent_by_owner(-1"weapon_m249"id)
    if(
pev_valid(weapon_ent)) cs_set_weapon_ammo(weapon_ent1)    
    
    
cs_set_user_bpammo(idCSW_M2490)
    
    
engfunc(EngFunc_MessageBeginMSG_ONE_UNRELIABLEget_user_msgid("CurWeapon"), {000}, id)
    
write_byte(1)
    
write_byte(CSW_M249)
    
write_byte(-1)
    
message_end()
    
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("AmmoX"), _id)
    
write_byte(3)
    
write_byte(g_thanatos7_ammo[id])
    
message_end()
}

public 
update_specialammo(idAmmoOn)
{
    static 
AmmoSprites[33]
    
format(AmmoSpritessizeof(AmmoSprites), "number_%d"Ammo)
      
    
message_begin(MSG_ONE_UNRELIABLEg_Msg_StatusIcon, {0,0,0}, id)
    
write_byte(On)
    
write_string(AmmoSprites)
    
write_byte(42// red
    
write_byte(212// green
    
write_byte(255// blue
    
message_end()
}

public 
fw_ItemPostFramewpn )
{
    new 
id pev(wpnpev_owner)
    if(!
is_user_connected(id))
        return 
HAM_IGNORED
    
    
if(!g_had_thanatos7[id])
        return 
HAM_IGNORED
        
    
if(g_reload[id] == 0)
        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(wpnm_iClipWEAP_LINUX_XTRA_OFF)
    new 
fInReload get_pdata_int(wpnm_fInReloadWEAP_LINUX_XTRA_OFF)
    
    if(
fInReload && flNextAttack <= 0.0)
    {
        new 
min(get_pcvar_num(cvar_clip_thanatos7) - iClipiBpAmmo)
        
set_pdata_int(wpnm_iClipiClip jWEAP_LINUX_XTRA_OFF)
        
cs_set_user_bpammo(idCSW_M249iBpAmmo-j)
        
set_pdata_int(wpnm_fInReload0WEAP_LINUX_XTRA_OFF)
        
fInReload 0
    
}
    return 
HAM_IGNORED
}

public 
fw_Reloadwpn ) {
    new 
id pev(wpnpev_owner)
    if(!
is_user_connected(id))
        return 
HAM_IGNORED
    
    
if(!g_had_thanatos7[id])
        return 
HAM_IGNORED
        
    
if(g_reload[id] == 0)
        return 
HAM_IGNORED
                
    g_thanatos7_TmpClip
[id] = -1
    
new iBpAmmo cs_get_user_bpammo(idCSW_M249)
    new 
iClip get_pdata_int(wpnm_iClipWEAP_LINUX_XTRA_OFF)
    if(
iBpAmmo <= 0)
        return 
HAM_SUPERCEDE
    
    
if(iClip >= get_pcvar_num(cvar_clip_thanatos7))
        return 
HAM_SUPERCEDE
    
    g_thanatos7_TmpClip
[id] = iClip
    
return HAM_IGNORED
}

public 
fw_Reload_Post(weapon) {
    new 
id pev(weaponpev_owner)
    if(!
is_user_connected(id))
        return 
HAM_IGNORED
        
    
if(!g_had_thanatos7[id])
        return 
HAM_IGNORED
        
    
if(g_thanatos7_TmpClip[id] == -1)
        return 
HAM_IGNORED
        
    
if(g_reload[id] == 0)
        return 
HAM_IGNORED
        
    set_pdata_int
(weaponm_iClipg_thanatos7_TmpClip[id], WEAP_LINUX_XTRA_OFF)
    
set_pdata_float(weaponm_flTimeWeaponIdleRELOAD_TIMEWEAP_LINUX_XTRA_OFF)
    
set_pdata_float(idm_flNextAttackRELOAD_TIMEPLAYER_LINUX_XTRA_OFF)
    
set_pdata_int(weaponm_fInReload1WEAP_LINUX_XTRA_OFF)
    
    if(
g_mode[id] == MODE_NOLMAL && g_thanatos7_ammo[id] == 0)
    {
        
set_weapon_anim(idRELOAD)
        
set_pdata_float(weapon4820.04)
    }
    else if(
g_mode[id] == MODE_BOLT && g_thanatos7_ammo[id] == 1)
    {
        
set_weapon_anim(idBRELOAD)
        
set_pdata_float(weapon4820.04)
    }
    return 
HAM_IGNORED
}

public 
fwPlaybackEvent(flagsinvokereventidFloat:delayFloat:origin[3], Float:angles[3], Float:fparam1Float:fparam2iParam1iParam2bParam1bParam2)
{
    if ((
eventid != g_orig_event_thanatos7) || !g_IsInPrimaryAttack)
        return 
FMRES_IGNORED
    
if (!(<= invoker <= g_MaxPlayers))
        return 
FMRES_IGNORED

    playback_event
(flags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
    
    return 
FMRES_SUPERCEDE
}

stock set_weapon_anim(idanim)
{
    if(!
is_user_alive(id))
        return
    
    
set_pev(idpev_weaponanimanim)
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, {000}, id)
    
write_byte(anim)
    
write_byte(pev(idpev_body))
    
message_end()
}

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]
    static 
Float:numnum 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;
}

stock get_position(id,Float:forwFloat:rightFloat:upFloat:vStart[])
{
    static 
Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
    
    
pev(idpev_originvOrigin)
    
pev(idpev_view_ofsvUp//for player
    
xs_vec_add(vOriginvUpvOrigin)
    
pev(idpev_v_anglevAngle// if normal entity ,use pev_angles
    
    
angle_vector(vAngleANGLEVECTOR_FORWARDvForward//or use EngFunc_AngleVectors
    
angle_vector(vAngleANGLEVECTOR_RIGHTvRight)
    
angle_vector(vAngleANGLEVECTOR_UPvUp)
    
    
vStart[0] = vOrigin[0] + vForward[0] * forw vRight[0] * right vUp[0] * up
    vStart
[1] = vOrigin[1] + vForward[1] * forw vRight[1] * right vUp[1] * up
    vStart
[2] = vOrigin[2] + vForward[2] * forw vRight[2] * right vUp[2] * up
}

stock set_weapons_timeidle(idWeaponId ,Float:TimeIdle)
{
    if(!
is_user_alive(id))
        return
        
    static 
entwpnentwpn fm_get_user_weapon_entity(idWeaponId)
    if(!
pev_valid(entwpn)) 
        return
        
    
set_pdata_float(entwpn46TimeIdleOFFSET_LINUX_WEAPONS)
    
set_pdata_float(entwpn47TimeIdleOFFSET_LINUX_WEAPONS)
    
set_pdata_float(entwpn48TimeIdle 0.5OFFSET_LINUX_WEAPONS)
}

stock set_player_nextattackx(idFloat:nexttime)
{
    if(!
is_user_alive(id))
        return
        
    
set_pdata_float(idm_flNextAttacknexttime5)
}

stock fm_cs_get_weapon_ent_owner(ent)
{
    return 
get_pdata_cbase(entOFFSET_WEAPONOWNEROFFSET_LINUX_WEAPONS)
}

stock set_entity_anim(entanim)
{
    
entity_set_float(entEV_FL_animtimeget_gametime())
    
entity_set_float(entEV_FL_framerate1.0)
    
entity_set_int(entEV_INT_sequenceanim)    

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)