Junior Member
|
05-23-2021
, 17:59
what is written on this line is not executed
|
#1
|
I was wondering why, when I buy this extra item, it is not unavailable for purchase and not pops up like this item has already been purchased
What is written on this line is not executed
PHP Code:
public zp_fw_items_select_pre(id, pItem)
{
if(pItem != g_iItem) return ZP_ITEM_AVAILABLE;
if(zp_core_is_zombie(id)) return ZP_ITEM_DONT_SHOW;
if(g_has_ethereal[id])
{
zp_items_menu_text_add("\r[Buyed]")
return ZP_ITEM_NOT_AVAILABLE;
}
return ZP_ITEM_AVAILABLE;
}
PHP Code:
#include < amxmodx >
#include < cstrike >
#include < xs >
#include < fun >
#include < engine >
#include < fakemeta >
#include < hamsandwich >
#include < zp50_items >
#include < zombieplague >
new const PLUGIN_VERSION[ ] = "0.0.1";
const OFFSET_WEAPONOWNER = 41
const OFFSET_LINUX = 5
const OFFSET_LINUX_WEAPONS = 4
const WEAP_KEY = 545464464
const MAX_PLAYERS = 32
const m_iClip = 51
const m_fInReload = 54
const m_flNextAttack = 83
const m_flNextPrimaryAttack = 46
enum ( <<=1 )
{
DROP_PRIMARY = 1,
DROP_SECONDARY
};
const IDLE = 0
const RELOAD = 1
const DRAW = 2
const SHOOT_1 = 3
const SHOOT_2 = 5
new const g_iMuzzleFlash[ ] = "sprites/ex.spr" ;
new const g_iTrace[ ] = "sprites/laserbeam.spr"
#define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)
#define HoldCBaseWeapon(%0) ( get_user_weapon( %0 ) == g_iWeaponID && g_pWeaponA[ %0 ] )
#define IsValidPrivateData(%0) ( pev_valid( %0 ) == 2 )
#define WEAPON_BITSUM ((1<<CSW_UMP45))
new const WEAPON_SOUND_FIRE[ ] = "weapons/ethereal_shoot1.wav";
new WEAPON_BASE_NAME[ ] = "weapon_ump45";
const Float:RELOAD_TIME = 3.0
const AMMO_WEAPON = 180
new V_MODEL_ETHEREAL[ ] = "models/Lp/v_ethereal.mdl";
new P_MODEL_ETHEREAL[ ] = "models/Lp/p_ethereal.mdl";
new W_MODEL_ETHEREAL[ ] = "models/Lp/w_ethereal.mdl";
new const OTHER_SOUNDS[ ] [ ] =
{
"weapons/ethereal_reload.wav" ,
"weapons/ethereal_draw.wav"
};
new const TRACE_ATTACK[ ] [ ] =
{
"func_breakable" ,
"func_wall" ,
"func_door" ,
"func_plat" ,
"func_rotating" ,
"worldspawn"
};
new g_iItem , g_iOriginEvent , g_iMaxPlayers , g_iForwardIndex, gmsgWeaponList;
new Float:cl_pushangle[ MAX_PLAYERS + 1 ][ 3 ], g_IndexBlood[ 2 ]
new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 };
new g_pWeaponA[ MAX_PLAYERS + 1 ] ,
bool:g_iPrimaryAttack;
new g_iClipAmmo[ MAX_PLAYERS + 1 ],
g_TmpClip[ MAX_PLAYERS + 1 ] ,
g_iWeaponID = 0;
new g_BeamSprite
new const Sound_Zoom[] = { "weapons/zoom.wav" }
new g_hasZoom[33], g_has_ethereal[33], Float: g_Reload[33]
new cvar_speed , cvar_damage , cvar_recoil , cvar_ammo , cvar_clip , cvar_scale_muzzle , cvar_one_round
const WEAPONS_PRIMARY_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);
public plugin_precache()
{
precache_model(V_MODEL_ETHEREAL);
precache_model(P_MODEL_ETHEREAL);
precache_model(W_MODEL_ETHEREAL);
precache_sound(Sound_Zoom);
precache_sound(WEAPON_SOUND_FIRE);
new pFile;
for( pFile = 0 ; pFile < sizeof OTHER_SOUNDS; pFile++ )
{
precache_sound ( OTHER_SOUNDS[ pFile ] );
}
precache_model( g_iMuzzleFlash )
g_BeamSprite = precache_model( g_iTrace )
precache_generic( "sprites/weapon_ethereal.txt" );
precache_generic( "sprites/wpn/640hud74.spr" );
precache_generic( "sprites/wpn/640hud7x.spr" );
precache_generic("sprites/wpn/weapon_ethereal.txt");
precache_generic("sprites/wpn/640hud2.spr");
precache_generic("sprites/wpn/640hud74.spr");
precache_generic("sprites/wpn/640hud7.spr");
g_IndexBlood[0] = precache_model("sprites/blood.spr");
g_IndexBlood[1] = precache_model("sprites/bloodspray.spr");
g_iForwardIndex = register_forward( FM_PrecacheEvent, "Forward_PrecacheEventPost", true );
}
public plugin_init()
{
register_plugin( "[CSO] Ethereal" , PLUGIN_VERSION , "Shurik07" );
register_clcmd( "weapon_ethereal", "weapon_hook_an" );
unregister_forward( FM_PrecacheEvent, g_iForwardIndex, true );
register_forward(FM_SetModel, "Forward_SetModel" , false );
register_forward(FM_PlaybackEvent, "Forward_PlayBackEvent" , false )
register_forward(FM_UpdateClientData, "Forward_UpdateClientData" , true );
register_forward(FM_CmdStart, "fw_CmdStart");
RegisterHam(Ham_Item_AddToPlayer, WEAPON_BASE_NAME, "CBaseWeapon__AddToPlayer__Pre" , .Post = false );
RegisterHam(Ham_Item_Deploy, WEAPON_BASE_NAME , "CBaseWeapon__Deploy__Post", .Post = true );
RegisterHam(Ham_Weapon_PrimaryAttack, WEAPON_BASE_NAME, "CBaseWeapon__PrimaryAttack__Pre" , .Post = false );
RegisterHam(Ham_Weapon_PrimaryAttack, WEAPON_BASE_NAME, "CBaseWeapon_PrimaryAttack_Post", .Post = true );
RegisterHam(Ham_Item_PostFrame, WEAPON_BASE_NAME, "CBaseWeapon__PostFrame__Pre" , .Post = false );
RegisterHam(Ham_Weapon_Reload, WEAPON_BASE_NAME, "CBaseWeapon__Reload_Pre" , .Post = false );
RegisterHam(Ham_Weapon_Reload, WEAPON_BASE_NAME, "CBaseWeapon__Reload_Post", .Post = true );
RegisterHam(Ham_TakeDamage, "player", "CBasePlayer__TakeDamage__Pre" , .Post = false );
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("CurWeapon", "event_CurWeapon", "b", "1=1");
register_event("DeathMsg", "event_DeathMsg", "a", "1>0");
for ( new i = 0 ; i < sizeof TRACE_ATTACK ; i++ )
{
RegisterHam( Ham_TraceAttack, TRACE_ATTACK[ i ], "CbaseEntity__TraceAttack__Post",.Post = true );
}
cvar_speed = register_cvar( "ethereal_speed" , "0.1" )
cvar_damage = register_cvar( "ethereal_damage" , "2.5" )
cvar_recoil = register_cvar( "ethereal_recoil" , "0.2" )
cvar_ammo = register_cvar( "ethereal_ammo" , "35" )
cvar_clip = register_cvar( "ethereal_clip" , "25" )
cvar_scale_muzzle = register_cvar( "ethereal_muzzle_scale" , "0.1" )
cvar_one_round = register_cvar( "ethereal_one_round" , "0" )
g_iItem = zp_register_extra_item( "Ethereal", 35, ZP_TEAM_HUMAN );
g_iMaxPlayers = get_maxplayers();
g_iWeaponID = get_weaponid( WEAPON_BASE_NAME );
}
public zp_fw_items_select_pre(id, pItem)
{
if(pItem != g_iItem) return ZP_ITEM_AVAILABLE;
if(zp_core_is_zombie(id)) return ZP_ITEM_DONT_SHOW;
if(g_has_ethereal[id])
{
zp_items_menu_text_add("\r[Buyed]")
return ZP_ITEM_NOT_AVAILABLE;
}
return ZP_ITEM_AVAILABLE;
}
public zp_extra_item_selected( pPlayer , pItem )
{
if( pItem == g_iItem )
{
UTIL__DropWeapons( pPlayer )
{
drop_primary(pPlayer);
}
g_pWeaponA[ pPlayer ] = true;
new pEntity;
pEntity = give_item( pPlayer , WEAPON_BASE_NAME );
if( pEntity > 0 )
{
cs_set_weapon_ammo( pEntity, get_pcvar_num( cvar_clip ) );
}
cs_set_user_bpammo( pPlayer , g_iWeaponID , get_pcvar_num( cvar_ammo ) );
UTIL__WeaponList( pPlayer, "weapon_ethereal" , 6, AMMO_WEAPON, -1, -1, 0 , 15, g_iWeaponID , 0 );
new sName[32]
get_user_name(pPlayer, sName, 31)
set_hudmessage((255), (0), (255), -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1)
show_hudmessage(0, "%s comprou a Ethereal!", sName)
}
}
public weapon_hook_an( pPlayer )
{
engclient_cmd( pPlayer, WEAPON_BASE_NAME);
return PLUGIN_HANDLED;
}
public zp_user_humanized_post( pPlayer )
{
g_pWeaponA[ pPlayer ] = false;
}
public client_disconnect( pPlayer )
{
g_pWeaponA[ pPlayer ] = false;
}
public event_CurWeapon(id)
{
if (!is_user_alive(id) || zp_core_is_zombie(id)) return PLUGIN_HANDLED;
if (read_data(2) == CSW_UMP45 && g_has_ethereal[id])
{
set_pev(id, pev_viewmodel2, V_MODEL_ETHEREAL);
set_pev(id, pev_weaponmodel2, P_MODEL_ETHEREAL);
}
return PLUGIN_CONTINUE;
}
public event_round_start()
{
if(get_pcvar_num(cvar_one_round))
{
for (new id; id <= 32; id++)
{
g_pWeaponA[ id ] = false;
}
}
}
public event_DeathMsg()
{
g_has_ethereal[read_data(2)] = false;
}
public Forward_PrecacheEventPost(type, const pName[ ] )
{
if ( equal ("events/ump45.sc", pName ) )
{
g_iOriginEvent = get_orig_retval( );
return FMRES_HANDLED;
}
return FMRES_IGNORED;
}
public Forward_SetModel( pEntity, pModel[])
{
if( !is_valid_ent( pEntity ) )
{
return FMRES_IGNORED;
}
static szClassName [ 33 ]
entity_get_string( pEntity, EV_SZ_classname, szClassName, charsmax ( szClassName ) )
if( !equal ( szClassName, "weaponbox" ) )
{
return FMRES_IGNORED;
}
static pOwner , pModel
pModel = find_ent_by_owner ( -1, WEAPON_BASE_NAME, pEntity );
pOwner = entity_get_edict(pEntity, EV_ENT_owner)
if ( g_pWeaponA [ pOwner ] && is_valid_ent ( pModel ) )
{
entity_set_int( pModel, EV_INT_impulse, WEAP_KEY);
entity_set_model( pEntity, W_MODEL_ETHEREAL);
g_pWeaponA [ pOwner ] = false;
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public Forward_UpdateClientData( pPlayer , SendWeapons, CD_Handle )
{
if ( !HoldCBaseWeapon( pPlayer ) )
{
return HAM_IGNORED;
}
static Float:fGametime;
fGametime = get_gametime();
set_cd ( CD_Handle, CD_flNextAttack, fGametime + 0.001 );
return FMRES_HANDLED;
}
public Forward_PlayBackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
{
if ( ( eventid != g_iOriginEvent) || !g_iPrimaryAttack )
{
return FMRES_IGNORED;
}
if (!( 1 <= invoker <= g_iMaxPlayers ) )
{
return FMRES_IGNORED;
}
if( flags & FEV_GLOBAL )
{
flags &= ~FEV_GLOBAL;
}
playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
return FMRES_SUPERCEDE
}
public fw_CmdStart(id, uc_handle, seed)
{
if(g_Reload[id])
return PLUGIN_HANDLED
if(!is_user_alive(id))
return PLUGIN_HANDLED
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_UMP45 && g_pWeaponA[id] && !g_hasZoom[id] == true)
{
g_hasZoom[id] = true
cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 0)
emit_sound(id, CHAN_ITEM, Sound_Zoom, 0.20, 2.40, 0, 100)
}
else if(szWeapID == CSW_UMP45 && g_pWeaponA[id] && g_hasZoom[id])
{
g_hasZoom[id] = false
cs_set_user_zoom(id, CS_RESET_ZOOM, 0)
}
}
return PLUGIN_HANDLED
}
public CbaseEntity__TraceAttack__Post(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
{
if ( !is_user_connected( iAttacker ) || !HoldCBaseWeapon( iAttacker ) )
{
return HAM_HANDLED;
}
new Float:vecEnd[3];
get_tr2(ptr, TR_vecEndPos, vecEnd);
new iDecal = GUNSHOT_DECALS[ random_num( 0 , sizeof( GUNSHOT_DECALS ) - 1 ) ]
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_GUNSHOTDECAL);
write_coord_f( vecEnd[0]);
write_coord_f(vecEnd[1]);
write_coord_f(vecEnd[2]);
write_short(iEnt);
write_byte(iDecal);
message_end();
return HAM_IGNORED;
}
public CBaseWeapon__AddToPlayer__Pre( pEnity , pPlayer )
{
if( !pev_valid( pEnity ) && !is_user_connected( pPlayer ) )
{
return HAM_IGNORED;
}
if( pev( pEnity, pev_impulse ) == WEAP_KEY || g_pWeaponA[ pPlayer ] )
{
g_pWeaponA[ pPlayer ] = true;
UTIL__WeaponList( pPlayer, "weapon_ethereal" , 6, AMMO_WEAPON, -1, -1, 0 , 15, g_iWeaponID , 0 );
return HAM_HANDLED;
}
else
{
UTIL__WeaponList( pPlayer, WEAPON_BASE_NAME , 6, AMMO_WEAPON, -1, -1, 0 , 15, g_iWeaponID , 0 );
}
return HAM_IGNORED;
}
public CBaseWeapon__Deploy__Post( pEntity )
{
if( !IsValidPrivateData( pEntity ) )
{
return HAM_HANDLED;
}
new pId
pId = get_pdata_cbase( pEntity , OFFSET_WEAPONOWNER , OFFSET_LINUX_WEAPONS );
if (!g_pWeaponA[pId] )
{
return HAM_IGNORED;
}
set_pev(pId, pev_viewmodel2, V_MODEL_ETHEREAL);
set_pdata_float( pId, m_flNextAttack, 1.0, OFFSET_LINUX);
UTIL_SenwWeaponAnim( pId, DRAW );
set_pev(pId, pev_weaponmodel2, P_MODEL_ETHEREAL);
return HAM_IGNORED;
}
public CBaseWeapon__PrimaryAttack__Pre(pEntity)
{
if( !IsValidPrivateData( pEntity ) )
{
return HAM_IGNORED;
}
new pId;
pId = get_pdata_cbase( pEntity , OFFSET_WEAPONOWNER , OFFSET_LINUX_WEAPONS );
if ( !HoldCBaseWeapon( pId ) )
{
return HAM_IGNORED;
}
g_iClipAmmo[pId] = cs_get_weapon_ammo(pEntity);
pev( pId , pev_punchangle , cl_pushangle[ pId ] );
g_iPrimaryAttack = true;
return HAM_IGNORED;
}
public CBaseWeapon_PrimaryAttack_Post( pEntity )
{
if( !IsValidPrivateData( pEntity ) )
{
return HAM_IGNORED;
}
g_iPrimaryAttack = false;
new pId = get_pdata_cbase( pEntity, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS );
if ( !HoldCBaseWeapon( pId ) )
{
return HAM_IGNORED;
}
if (!g_iClipAmmo[pId])
{
return HAM_IGNORED;
}
emit_sound( pId, CHAN_WEAPON, WEAPON_SOUND_FIRE, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
UTIL_SenwWeaponAnim( pId, random_num( SHOOT_1 , SHOOT_2 ) );
LaserBeam(pId , 7 , 100 , 50 , 253 )
#if defined SET__MUZZLE
UTIL_MakeMuzzle( pId )
#endif
new Float:Push[ 3 ];
pev( pId, pev_punchangle, Push );
xs_vec_sub( Push , cl_pushangle[ pId ] , Push );
xs_vec_mul_scalar( Push, get_pcvar_float( cvar_recoil ) , Push );
xs_vec_add( Push, cl_pushangle[ pId ] , Push );
set_pev( pId, pev_punchangle, Push );
set_pdata_float( pEntity, m_flNextPrimaryAttack , get_pcvar_float( cvar_speed ) , OFFSET_LINUX_WEAPONS );
return HAM_IGNORED;
}
public CBasePlayer__TakeDamage__Pre( pevVictim, pevInflictor, pevAttacker, Float:damage)
{
if ( pevVictim == pevAttacker || !pevAttacker )
{
return HAM_HANDLED;
}
if ( !is_user_connected( pevAttacker ) || !HoldCBaseWeapon( pevAttacker ) )
{
return HAM_HANDLED;
}
SetHamParamFloat(4, damage * get_pcvar_float( cvar_damage ) )
return HAM_IGNORED;
}
public CBaseWeapon__PostFrame__Pre( pEntity )
{
if( !IsValidPrivateData( pEntity ) )
{
return HAM_HANDLED;
}
new pId;
pId = get_pdata_cbase( pEntity , OFFSET_WEAPONOWNER , OFFSET_LINUX_WEAPONS );
if ( !is_user_connected( pId ) && !HoldCBaseWeapon( pId ) && !g_iMaxPlayers )
{
return HAM_HANDLED;
}
new fInReload = get_pdata_int( pEntity, 54, OFFSET_LINUX_WEAPONS );
new Float:flNextAttack = get_pdata_float( pId, m_flNextAttack, OFFSET_LINUX_WEAPONS );
new iClip = get_pdata_int( pEntity, m_iClip, OFFSET_LINUX_WEAPONS );
new iAmmoType = 376 + get_pdata_int( pEntity, 49, OFFSET_LINUX_WEAPONS );
new iBpAmmo = get_pdata_int( pId, iAmmoType, OFFSET_LINUX );
if ( fInReload && flNextAttack <= 1.4 )
{
new j = min( get_pcvar_num( cvar_clip ) - iClip, iBpAmmo);
set_pdata_int( pEntity, m_iClip, iClip + j, OFFSET_LINUX_WEAPONS );
set_pdata_int( pId, iAmmoType, iBpAmmo-j, OFFSET_LINUX );
set_pdata_int( pEntity, 54, 0, OFFSET_LINUX_WEAPONS );
fInReload = 0;
}
return HAM_IGNORED;
}
public CBaseWeapon__Reload_Pre(pEntity)
{
if( !IsValidPrivateData( pEntity ) )
{
return HAM_HANDLED;
}
new pId;
pId = get_pdata_cbase( pEntity , OFFSET_WEAPONOWNER , OFFSET_LINUX_WEAPONS );
if ( !is_user_connected( pId ) || !HoldCBaseWeapon( pId ) )
{
return HAM_IGNORED;
}
static iClipExtra;
iClipExtra = get_pcvar_num( cvar_clip );
g_TmpClip[pId] = -1;
new iAmmoType = 376 + get_pdata_int( pEntity, 49, OFFSET_LINUX_WEAPONS );
new iBpAmmo = get_pdata_int( pId, iAmmoType, OFFSET_LINUX );
new iClip = get_pdata_int( pEntity, m_iClip, OFFSET_LINUX );
if ( iBpAmmo <= 0 || iClip >= iClipExtra )
{
return HAM_SUPERCEDE;
}
g_TmpClip[pId] = iClip;
return HAM_HANDLED;
}
public CBaseWeapon__Reload_Post( pEntity )
{
if( !IsValidPrivateData( pEntity ) )
{
return HAM_HANDLED;
}
new pId = get_pdata_cbase( pEntity , OFFSET_WEAPONOWNER , OFFSET_LINUX_WEAPONS );
if ( !HoldCBaseWeapon( pId ) )
{
return HAM_IGNORED;
}
if (g_TmpClip[ pId ] == -1)
{
return HAM_IGNORED;
}
set_pdata_float( pId, m_flNextAttack, RELOAD_TIME , OFFSET_LINUX);
UTIL_SenwWeaponAnim(pId, RELOAD);
return HAM_HANDLED;
}
public Sprite(id)
{
message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
write_string("weapon_ethereal")
write_byte(6)
write_byte(100)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(15)
write_byte(12)
write_byte(0)
message_end()
}
stock UTIL__DropWeapons( pPlayer )
{
for( new pWeapon = CSW_P228; pWeapon <= CSW_P90; pWeapon++ )
{
if( ( ( 1 << pWeapon ) & WEAPONS_PRIMARY_BITSUM ) )
{
new strWeaponName[ 32 ];
get_weaponname( pWeapon, strWeaponName, charsmax( strWeaponName ) );
if(equal(strWeaponName, WEAPON_BASE_NAME) )
{
engclient_cmd( pPlayer, "drop", strWeaponName );
}
}
}
}
stock UTIL_SenwWeaponAnim(const pPlayer, const Sequence)
{
set_pev(pPlayer, pev_weaponanim, Sequence)
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = pPlayer)
write_byte(Sequence)
write_byte(pev(pPlayer, pev_body))
message_end()
}
UTIL__WeaponList( pPlayer, const szWeapon[ ], int, int2, int3, int4, int5, int6, int7, int8 )
{
message_begin( MSG_ONE, get_user_msgid( "WeaponList" ) , _, pPlayer );
write_string( szWeapon );
write_byte( int );
write_byte( int2);
write_byte( int3 );
write_byte( int4 );
write_byte( int5 );
write_byte( int6 );
write_byte( int7 );
write_byte( int8 );
message_end( );
}
stock UTIL_MakeMuzzle( pId )
{
new pEntity = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
new Float:vecOrigin[ 3 ]
pev( pId, pev_origin, vecOrigin )
entity_set_origin( pEntity, vecOrigin )
entity_set_model( pEntity, g_iMuzzleFlash )
entity_set_int( pEntity, EV_INT_solid, SOLID_NOT )
entity_set_int( pEntity, EV_INT_movetype, MOVETYPE_NOCLIP )
entity_set_string( pEntity, EV_SZ_classname, "muzzle_et" )
entity_set_float( pEntity, EV_FL_animtime, get_gametime() )
entity_set_float( pEntity, EV_FL_framerate, 50.0 )
set_pev( pEntity, pev_scale, get_pcvar_float( cvar_scale_muzzle ) )
set_pev( pEntity, pev_spawnflags, SF_SPRITE_ONCE)
set_pev(pEntity, pev_rendermode, kRenderTransAdd)
set_pev(pEntity, pev_renderamt, 255.0)
set_pev(pEntity, pev_skin, pId )
set_pev(pEntity, pev_body, 1)
set_pev(pEntity, pev_aiment, pId)
entity_set_float(pEntity, EV_FL_nextthink, get_gametime() + 5.0 );
DispatchSpawn( pEntity );
set_task( 1.0 , "rem_ent" , pEntity )
}
public rem_ent( iEnt )
{
remove_entity( iEnt )
}
stock LaserBeam(id , Size , Red , Grenn , Blue )
{
static End[3]
get_user_origin(id, End, 3)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte (TE_BEAMENTPOINT)
write_short( id |0x1000 )
write_coord(End[0])
write_coord(End[1])
write_coord(End[2])
write_short(g_BeamSprite)
write_byte(0)
write_byte(1)
write_byte(1)
write_byte(Size)
write_byte(4)
write_byte(Red)
write_byte(Grenn)
write_byte(Blue)
write_byte(255)
write_byte(0)
message_end()
}
stock drop_primary(id)
{
new weapons[32], num;
get_user_weapons(id, weapons, num);
for (new i = 0; i < num; i++)
{
if (WEAPON_BITSUM & (1<<weapons[i]))
{
static wname[32];
get_weaponname(weapons[i], wname, sizeof wname - 1);
engclient_cmd(id, "drop", wname);
}
}
}
Last edited by Itz; 05-23-2021 at 23:30.
|
|