[REQ] fm_set admin ?
I have little plugin im adding some gifts, but i want to add in some of cases (random gifts) i wanna add admin gift if is possible to give admin to steam id in users or to save a logs like to create a file logs.txt and if you open file the peoples who got this gift to give their "STEAMID" to the logs.txt
Like this gift(If someone get this gift to save his "STEAMID" in logs.txt and i will know who peoples got this gift i need only for one because i wanna make an admin gift and peoples who got that present(gift) to be shown in the log.txt or to give auto admin to them ?
PHP Code:
case 2: { fm_set_user_money( id, 0 ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti gi ukrade parite." ); }
PHP Code:
#include < amxmodx > #include < amxmisc > #include < fakemeta > #include < hamsandwich > #include < engine > #include < cellarray > #include < xs >
#define fm_find_ent_by_class( %1, %2 ) engfunc( EngFunc_FindEntityByString, %1, "classname", %2 ) #define fm_create_entity(%1) engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, %1 ) )
#define SS_MIN_DISTANCE 500.0 #define SS_MAX_LOOPS 100000
#pragma semicolon 1;
/* Modele cadouri */ new const model_present[ ][ ] = { "models/present/w_present.mdl","models/present/w_present2.mdl" };
new Array:g_vecSsOrigins; new Array:g_vecSsSpawns; new Array:g_vecSsUsed; new Float:g_flSsMinDist; new g_iSsTime;
new const g_szStarts[ ][ ] = { "info_player_start", "info_player_deathmatch" }; new const Float:g_flOffsets[ ] = { 3500.0, 3500.0, 1500.0 };
/* Offset-uri */ #if cellbits == 32 const OFFSET_CSMONEY = 115; #else const OFFSET_CSMONEY = 140; #endif const OFFSET_LINUX = 5;
new pcvar_respawn_time, pcvar_presents_on_map; new g_money; new g_bonus[ 33 ];
public plugin_init( ) { register_plugin( "XMAS GIFTS", "2.3.2", "KronoS" );
// Eventuri register_event( "HLTV", "spawn_gifts", "a", "1=0", "2=0" ); RegisterHam( Ham_Spawn, "player", "round_start", 1 ); RegisterHam( Ham_Killed, "player", "client_death", 1 ); RegisterHam( Ham_Item_PreFrame, "player", "FwdPreFramePost", 1 ); register_forward( FM_Touch, "forward_touch" );
// Cvar-uri pcvar_respawn_time = register_cvar( "presents_respawn_time", "60.0" ); pcvar_presents_on_map = register_cvar( "presents_on_map", "11" );
SsInit( 800.0 ); SsScan( ); XGIFTS_Spawn( );
g_money = get_user_msgid( "Money" ); }
public plugin_precache( ) { for ( new i = 0; i < sizeof model_present ; i++ ) engfunc( EngFunc_PrecacheModel, model_present[ i ] ); }
public spawn_gifts( ) XGIFTS_Spawn( );
public round_start( id ) { if ( g_bonus[id] > 0 ) { switch ( g_bonus[ id ] ) { case 1: fm_set_user_health( id, get_user_health( id ) + 50 ); case 2: fm_set_user_gravity( id, 800 ); } } }
public XGIFTS_Spawn( ) { new Float:fOrigin[ 3 ];
for ( new i = 0; i < get_pcvar_num( pcvar_presents_on_map ) ; i++ ) { if ( SsGetOrigin( fOrigin ) ) XGIFTS_Create( fOrigin ); } }
public XGIFTS_Create( const Float:fOrigin[ 3 ] ) { new ent = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
if ( pev_valid( ent ) ) { engfunc( EngFunc_SetModel, ent, model_present[ random_num( 0, sizeof model_present - 1 ) ] ); engfunc( EngFunc_SetOrigin, ent, fOrigin ); static Float:fMaxs[ 3 ] = { 2.0, 2.0, 4.0 }; static Float:fMins[ 3 ] = { -2.0, -2.0, -4.0 }; set_pev( ent, pev_solid, SOLID_BBOX ); engfunc( EngFunc_SetSize, ent, fMins, fMaxs ); engfunc( EngFunc_DropToFloor, ent );
switch ( random_num( 0, 1 ) ) { case 0: set_pev( ent, pev_classname, "small_present" ); case 1: set_pev( ent, pev_classname, "large_present" ); } } }
public XGIFTS_Respawn( iOrigin[ ] ) { new Float:fOrigin[ 3 ], auxOrigin[ 3 ];
auxOrigin[ 0 ] = iOrigin[ 0 ]; auxOrigin[ 1 ] = iOrigin[ 1 ]; auxOrigin[ 2 ] = iOrigin[ 2 ];
IVecFVec( auxOrigin, fOrigin ); XGIFTS_Create( fOrigin ); }
public client_death( id ) { if ( g_bonus[ id ] > 0 ) g_bonus[ id ] = 0; }
public FwdPreFramePost( iClient ) { if ( is_user_connected( iClient ) ) { if ( g_bonus[ iClient ] == 3 ) fm_set_user_maxspeed( iClient, 350.0 ); else if ( g_bonus[ iClient ] == 4 ) fm_set_user_maxspeed( iClient, 200.0 ); } }
public forward_touch( ent, id ) { if ( !pev_valid( ent ) ) return FMRES_IGNORED;
static class[ 20 ];
pev( ent, pev_classname, class, sizeof class - 1 );
if ( ( !equali( class, "small_present" ) && !equali( class, "large_present" ) ) ) return FMRES_IGNORED;
if ( !is_user_alive( id ) ) return FMRES_IGNORED;
set_pev( ent, pev_solid, SOLID_NOT ); set_pev( ent, pev_effects, EF_NODRAW );
if ( get_pcvar_float( pcvar_respawn_time ) > 0.0 ) { new Float:flOrigin[ 3 ], iOrigin[ 3 ];
entity_get_vector( ent, EV_VEC_origin, flOrigin );
FVecIVec( flOrigin, iOrigin );
set_task( get_pcvar_float( pcvar_respawn_time ), "XGIFTS_Respawn", _, iOrigin, 3 ); }
if ( equali( class, "small_present" ) ) { switch ( random_num( 0, 20 ) ) { case 0: { fm_set_user_money( id, fm_get_user_money( id ) + 500 ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade 500$" ); } case 1: { fm_set_user_money( id, 16000 ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade 16000$" ); } case 2: { fm_set_user_money( id, 0 ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti gi ukrade parite." ); } case 3: { fm_set_user_money( id, fm_get_user_money( id ) - 500 ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade 500$" ); } case 4: { fm_give_item( id, "weapon_awp" ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade awp" ); } case 5: { fm_give_item( id, "weapon_awp" ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade [ADMIN] podarok! Slikaj.." ); } case 6: { fm_set_user_money( id, fm_get_user_money( id ) - 500 ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade 500$" ); } case 7: { fm_set_user_money( id, 16000 ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade 16000$" ); } case 8: { fm_give_item( id, "weapon_hegrenade" ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade [Bomba].." ); } case 9: { fm_give_item( id, "weapon_m4a1" ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade M4.." ); } case 10: { fm_give_item( id, "weapon_ak47" ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti Dade AK47.." ); } case 11: { fm_give_item( id, "weapon_flashbang" ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade [FLASH BOMBA].." ); } case 12: { fm_give_item( id, "weapon_awp" ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade [ADMIN] podarok! Slikaj.." ); } case 13: { fm_give_item( id, "weapon_awp" ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade [ADMIN] podarok! Slikaj.." ); } case 14: { fm_set_user_money( id, 16000 ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade 16000$" ); } case 15: { fm_give_item( id, "weapon_mp5navy" ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade [MP5].." ); } case 16: { fm_give_item( id, "weapon_deagle" ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade [Deagle].." ); } case 17: { fm_give_item( id, "weapon_m4a1" ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti Dade [M4].." ); } case 18: { fm_give_item( id, "weapon_awp" ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade [ADMIN] podarok! Slikaj.." ); } case 19: { fm_give_item( id, "weapon_smokegrenade " ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade [DIMNA BOMBA].." ); } case 20: { fm_give_item( id, "weapon_smokegrenade " ); set_hudmessage( 255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade [DIMNA BOMBA].." ); } } } else if ( equali( class,"large_present" ) && !g_bonus[ id ] ) { switch (random_num(0,5)) { case 0: { fm_set_user_health( id, get_user_health( id ) + 50); g_bonus[ id ] = 1; large_present_hud( id ); } case 1: { fm_set_user_gravity( id, 800 ); g_bonus[ id ] = 2; large_present_hud( id ); } case 2: { fm_set_user_maxspeed( id, 350.0 ); g_bonus[ id ] = 3; large_present_hud( id ); } case 3: { fm_set_user_maxspeed( id, 200.0 ); g_bonus[ id ] = 4; large_present_hud( id ); } case 4: { fm_set_user_maxspeed( id, 200.0 ); g_bonus[ id ] = 4; large_present_hud( id ); } case 5: { fm_set_user_gravity( id, 800 ); g_bonus[ id ] = 2; large_present_hud( id ); } } }
return FMRES_IGNORED; }
public large_present_hud( id ) { if ( is_user_alive( id ) ) { if ( g_bonus[ id ] > 0 ) { switch( g_bonus[ id ] ) { case 1: { set_hudmessage( 0, 255, 0, 0.02, 0.73, 0, 6.0, 12.0); show_hudmessage( id, "[NG Xmas Gift] Zdravje+" ); } case 2: { set_hudmessage( 0, 255, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo mraz ti ja zema Gravitacija." ); } case 3: { set_hudmessage( 0, 255, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade Brzina." ); } case 4: { set_hudmessage( 200, 0, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti ja zema brzinata." ); } case 5: { set_hudmessage( 200, 0, 0, 0.02, 0.73, 0, 6.0, 12.0 ); show_hudmessage( id, "[NG Xmas Gift] Dedo Mraz ti dade [ADMIN] podarok! Slikaj.." ); } }
set_task( 12.0, "large_present_hud", id ); } } }
public client_disconnect( id ) g_bonus[ id ] = 0;
// Fakemeta Util stock fm_set_user_money( id, money, flash = 1 ) { set_pdata_int( id, OFFSET_CSMONEY, money, OFFSET_LINUX );
message_begin( MSG_ONE, g_money, { 0, 0, 0 }, id ); write_long( money ); write_byte( flash ); message_end( ); }
stock fm_get_user_money( id ) return get_pdata_int( id, OFFSET_CSMONEY, OFFSET_LINUX );
stock fm_set_user_health( id, health ) { ( health > 0 ) ? set_pev( id, pev_health, float( health ) ) : dllfunc( DLLFunc_ClientKill, id );
return 1; }
stock fm_give_item( index, const item[ ] ) { if ( !equal( item, "weapon_", 7 ) && !equal( item, "ammo_", 5 ) && !equal( item, "item_", 5 ) && !equal( item, "tf_weapon_", 10 ) ) return 0;
new ent = fm_create_entity( item) ;
if ( !pev_valid( ent ) ) return 0;
new Float:origin[ 3 ]; pev( index, pev_origin, origin ); set_pev( ent, pev_origin, origin ); set_pev( ent, pev_spawnflags, pev( ent, pev_spawnflags ) | SF_NORESPAWN ); dllfunc( DLLFunc_Spawn, ent );
new save = pev( ent, pev_solid ); dllfunc( DLLFunc_Touch, ent, index ); if ( pev( ent, pev_solid ) != save ) return ent;
engfunc( EngFunc_RemoveEntity, ent );
return -1; }
stock fm_set_user_gravity( index, Float:gravity = 800 ) { set_pev( index, pev_gravity, gravity );
return 1; }
stock fm_set_user_maxspeed( index, Float:speed = 800 ) { engfunc( EngFunc_SetClientMaxspeed, index, speed ); set_pev( index, pev_maxspeed, speed );
return 1; }
// Super spawns public SsInit( Float:mindist ) { g_flSsMinDist = mindist; g_vecSsOrigins = ArrayCreate( 3, 1 ); g_vecSsSpawns = ArrayCreate( 3, 1 ); g_vecSsUsed = ArrayCreate( 3, 1 ); }
stock SsClean( ) { g_flSsMinDist = 0.0; ArrayClear( g_vecSsOrigins ); ArrayClear( g_vecSsSpawns ); ArrayClear( g_vecSsUsed ); }
stock SsGetOrigin( Float:origin[ 3 ] ) { new Float:data[3], size; new ok = 1;
while ( ( size = ArraySize( g_vecSsOrigins ) ) ) { new idx = random_num( 0, size - 1 );
ArrayGetArray( g_vecSsOrigins, idx, origin );
new used = ArraySize( g_vecSsUsed ); for ( new i = 0; i < used ; i++ ) { ok = 0; ArrayGetArray( g_vecSsUsed, i, data ); if ( get_distance_f( data, origin ) >= g_flSsMinDist ) { ok = 1; break; } }
ArrayDeleteItem( g_vecSsOrigins, idx );
if ( ok ) { ArrayPushArray( g_vecSsUsed, origin ); return true; } }
return false; }
public SsScan( ) { new start, Float:origin[ 3 ], starttime;
starttime = get_systime( );
for ( start = 0 ; start < sizeof( g_szStarts ) ; start++ ) { server_print( "Searching for %s", g_szStarts[ start ] );
new ent;
if ( ( ent = engfunc( EngFunc_FindEntityByString, ent, "classname", g_szStarts[ start ] ) ) ) { new counter;
pev( ent, pev_origin, origin ); ArrayPushArray( g_vecSsSpawns, origin );
while ( counter < SS_MAX_LOOPS ) counter = GetLocation( origin, counter ); } }
g_iSsTime = get_systime( ); g_iSsTime -= starttime; }
GetLocation( Float:start[ 3 ], &counter ) { new Float:end[ 3 ];
for ( new i = 0 ; i < 3 ; i++ ) end[ i ] += random_float( 0.0 - g_flOffsets[ i ], g_flOffsets[ i ] );
if ( IsValid( start, end ) ) { start[ 0 ] = end[ 0 ]; start[ 1 ] = end[ 1 ]; start[ 2 ] = end[ 2 ];
ArrayPushArray( g_vecSsOrigins, end ); }
counter++; return counter; }
IsValid( Float:start[ 3 ], Float:end[ 3 ] ) { SetFloor( end ); end[ 2 ] += 36.0; new point = engfunc( EngFunc_PointContents, end ); if ( point == CONTENTS_EMPTY ) { if ( CheckPoints( end ) && CheckDistance( end ) && CheckVisibility( start, end ) ) { if ( !trace_hull( end, HULL_LARGE, -1 ) ) return true; } }
return false; }
CheckVisibility( Float:start[ 3 ], Float:end[ 3 ] ) { new tr;
engfunc( EngFunc_TraceLine, start, end, IGNORE_GLASS, -1, tr );
return ( get_tr2( tr, TR_pHit ) < 0 ); }
SetFloor( Float:start[ 3 ] ) { new tr, Float:end[ 3 ];
end[ 0 ] = start[ 0 ]; end[ 1 ] = start[ 1 ]; end[ 2 ] = -99999.9;
engfunc( EngFunc_TraceLine, start, end, DONT_IGNORE_MONSTERS, -1, tr ); get_tr2( tr, TR_vecEndPos, start ); }
CheckPoints( Float:origin[ 3 ] ) { new Float:data[ 3 ], tr, point;
data[ 0 ] = origin[ 0 ]; data[ 1 ] = origin[ 1 ]; data[ 2 ] = 99999.9;
engfunc( EngFunc_TraceLine, origin, data, DONT_IGNORE_MONSTERS, -1, tr ); get_tr2( tr, TR_vecEndPos, data ); point = engfunc( EngFunc_PointContents, data );
if ( point == CONTENTS_SKY && get_distance_f( origin, data ) < 250.0 ) return false;
data[ 2 ] = -99999.9;
engfunc( EngFunc_TraceLine, origin, data, DONT_IGNORE_MONSTERS, -1, tr ); get_tr2( tr, TR_vecEndPos, data ); point = engfunc( EngFunc_PointContents, data );
if ( point < CONTENTS_SOLID ) return false;
return true; }
CheckDistance( Float:origin[ 3 ] ) { new Float:dist, Float:data[ 3 ];
new count = ArraySize( g_vecSsSpawns );
for ( new i = 0; i < count ; i++ ) { ArrayGetArray( g_vecSsSpawns, i, data ); dist = get_distance_f( origin, data ); if ( dist < SS_MIN_DISTANCE ) return false; }
count = ArraySize( g_vecSsOrigins );
for ( new i = 0 ; i < count ; i++ ) { ArrayGetArray( g_vecSsOrigins, i, data ); dist = get_distance_f( origin, data ); if ( dist < SS_MIN_DISTANCE ) return false; }
return true; }
|