Code:
/*
___________________________________________________________________________________________________________
===========================================================================================================
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
___________________________________
|= =|
|= Advanced Eliminate =|
|= ¯¯¯¯¯¯¯¯ ¯by¯¯¯¯¯¯ =|
|= ¯¯Askhanar =|
|= ¯¯¯¯¯¯¯¯ =|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
__________________________________________________________________________________________________________
|==========================================================================================================|
| |
| Copyright © 2012, Askhanar |
| Acest fisier este prevazut asa cum este ( fara garantii ) |
| |
|==========================================================================================================|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- ¦ « Prieteni » ¦ -
** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * *
* * Rap^ Frosten TheBeast AZAEL! * *
* * fuzy razvan W-strafer RZV SNKT * *
* * ahonen Arion pHum d e w * *
* * gLobe syBlow kvL^ krom3 * *
* * Henk DANYEL SimpLe XENON^ * *
* * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
- ¦ « Multumiri » ¦ -
** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * *
* * o war3ft mod celor ce au creat modul war3ft pentru ca am luat * *
* * din plugin-ul lor ultimate-ul de la * *
* * rasa undead ( acela de explodeaza ). * *
* * * * * *
* * o Rap^ pentru ca m-a ajutat tot timpul cu * *
* * testatul si imbunatatirea plugin-ului * *
* * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
__________________________________________________________________________________________________________
|==========================================================================================================|
* *
* *
** **
* *
* *
** **
* *
* *
|****************************************************************************************|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
#include < amxmodx >
#include < amxmisc >
#include < fun >
#include < ColorChat >
#pragma semicolon 1
#define PLUGIN "Advanced Eliminate"
#define VERSION "0.1.5"
#define ELIMINATETASK 112233 //Nu modifica..
#define ELIMINATE_ACCESS ADMIN_LEVEL_E
new const EliminateDataFile[ ] = "EliminateData.txt";
new const EliminateLogFile[ ] = "EliminateLog.txt";
new const EliminateExplodeSpr[ ] = "sprites/zerogxplode.spr";
new const EliminateShockWaveSpr[ ] = "sprites/shockwave.spr";
new const EliminateSmokeSpr[ ] = "sprites/steam1.spr";
new const EliminateExplodeSound[ ] = "ambience/particle_suck1.wav";
enum _:eDatas
{
TIME[ 32 ],
NAME[ 32 ],
IP[ 32 ],
AUTHID[ 35 ],
ANAME[ 32 ],
AIP[ 32 ],
AAUTHID[ 35 ],
REASON[ 32 ]
}
new Array:g_aData;
new g_iEliminates;
new cvar_tag;
new cvar_site;
new SyncHudMessage;
new ExplodeSpr, ShockWaveSpr, SmokeSpr;
new vOrigin[ 33 ][ 3 ];
//De aici nu va mai explic..pentru ca nu e nevoie sa intelegeti voi...
//Daca modificati sunteti bun raspunzatori.
public plugin_init( )
{
register_plugin( PLUGIN, VERSION, "Askhanar" );
cvar_tag = register_cvar( "ae_tag", "[ - ]" );
cvar_site = register_cvar( "ae_site", "-" );
register_concmd( "amx_eliminate", "ConCmdEliminate", -1, "< nume / parte din nume > < motiv >" );
register_concmd( "amx_uneliminate", "ConCmdUnEliminate", -1, "< ip / steamid > < motiv >" );
register_concmd( "amx_printeliminates", "ConCmdPrintEliminates", -1, "" );
register_concmd( "amx_reloadeliminates", "ConCmdReloadEliminates", -1, "" );
g_aData = ArrayCreate( eDatas );
SyncHudMessage = CreateHudSyncObj( );
server_print( "%s Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect!", PLUGIN );
server_print( "%s Pentru mai multe detalii y/m: red_bull2oo6 | steam: red_bull2oo6 !", PLUGIN );
new File[ 128 ];
get_configsdir( File, sizeof ( File ) -1 );
formatex( File, sizeof ( File ) -1, "%s/%s", File, EliminateLogFile );
if( !file_exists( File ) )
{
write_file( File ,"In acest log veti gasi urmatoarele informatii:", -1 );
write_file( File ,"Cine, cand si cui a dat eliminate dar si pe ce motiv.",-1 );
write_file( File ,"Cine, cand si cui a scos eliminarea dar si pe ce motiv.",-1 );
write_file( File ,"",-1 );
write_file( File ,"",-1 );
}
get_configsdir( File, sizeof ( File ) -1 );
formatex( File, sizeof ( File ) -1, "%s/%s", File, EliminateDataFile );
if( !file_exists( File ) )
{
write_file( File ,";Ip-urile / Steamid-urile userilor eliminati permanent !", -1 );
write_file( File ,";",-1 );
write_file( File ,";",-1 );
}
LoadEliminates( );
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
public plugin_precache( )
{
ExplodeSpr = precache_model( EliminateExplodeSpr );
ShockWaveSpr = precache_model( EliminateShockWaveSpr );
SmokeSpr = precache_model( EliminateSmokeSpr );
precache_sound( EliminateExplodeSound );
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
public client_authorized( id )
{
if ( is_user_bot( id ) || is_user_hltv( id ) ) return 0;
vOrigin[ id ][ 0 ] = 0;
vOrigin[ id ][ 1 ] = 0;
vOrigin[ id ][ 2 ] = 0;
new ip[ 32 ], authid[ 35 ], bool:IsSteamUser = false;
get_user_ip( id, ip , sizeof ( ip ) -1, 1 );
get_user_authid( id, authid, sizeof ( authid ) -1 );
IsSteamUser = ( authid[ 7 ] == ':' ? true : false );
new eData[ eDatas ];
for( new i = 0; i < g_iEliminates ; i++ )
{
ArrayGetArray( g_aData, i, eData );
if( !IsSteamUser && equal( eData[ IP ], ip ) || IsSteamUser && equal( eData[ AUTHID ], authid ) )
{
PrintConsoleInfo( id, eData[ NAME ], eData[ IP ], eData[ AAUTHID ], eData[ REASON ],
eData[ ANAME ], eData[ AIP ], eData[ AAUTHID ], eData[ TIME ] );
set_task( 1.0, "TaskDisconnectPlayer", id + ELIMINATETASK );
break;
}
}
return 0;
}
public client_disconnect( id )
{
vOrigin[ id ][ 0 ] = 0;
vOrigin[ id ][ 1 ] = 0;
vOrigin[ id ][ 2 ] = 0;
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
public ConCmdEliminate( id )
{
if( !HasUserAccess( id ) )
{
client_cmd( id, "echo Nu ai acces la aceasta comanda !" );
return 1;
}
new FirstArg[ 32 ], SecondArg[ 32 ];
new Player;
read_argv( 1, FirstArg , sizeof ( FirstArg ) -1 );
read_argv( 2, SecondArg , sizeof ( SecondArg ) -1 );
if( equal( FirstArg, "" ) || equal( SecondArg, "" ) )
{
client_cmd( id, "echo amx_eliminate < nume / parte din nume > < motiv > !" );
return 1;
}
Player = cmd_target( id, FirstArg, 8 );
if( !Player || !is_user_connected( Player ) ) return 1;
set_hudmessage( random( 256 ), random( 256 ), random( 256 ), -1.0, random_float( 0.10, 0.23 ), 0, 0.0, 5.0, 0.1, 0.2, 3 );
ShowSyncHudMsg( 0, SyncHudMessage, "%s a fost eliminat de pe server !^nI-au fost stricate majoritatea fisierelor !^nA primit ban permanent !", get_name( Player ) );
client_cmd( 0, "spk ^"vox/bizwarn _comma _comma detected user and eliminate^"" );
ColorChat( 0, RED,"^x04%s^x03 %s^x01 l-a eliminat pe^x03 %s^x01 Motiv:^x03 %s^x01 !", get_tag( ), get_name( id ), get_name( Player ), SecondArg );
client_cmd( id, "echo %s a fost eliminat !", get_name( Player ) );
client_cmd( id, "echo Motiv: %s !", SecondArg );
client_cmd( Player, "-forward;wait;-back;wait;-moveleft;wait;-moveright;wait;-duck;wait;-showscores" );
client_cmd( Player, "-attack;wait;-attack2" );
PrintConsoleInfo( Player, get_name( Player ), get_ip( Player ), get_authid( Player ), SecondArg,
get_name( id ), get_ip( id ), get_authid( id ), _get_time( ) );
LogToConfigs( "Admin %s [%s] (%s) - l-a eliminat pe - %s [%s] (%s) - Motiv: %s ",
get_name( id ), get_authid( id ), get_ip( id ), get_name( Player ),
get_authid( Player ), get_ip( Player ), SecondArg );
if( is_user_alive( Player ) )
{
CreateEliminateEffects( Player + ELIMINATETASK );
}
EliminateUser( id, Player, SecondArg );
set_task( 5.0, "TaskDisconnectPlayerFromSV", Player + ELIMINATETASK );
return 1;
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
public ConCmdUnEliminate( id )
{
if( !HasUserAccess( id ) )
{
client_cmd( id, "echo Nu ai acces la aceasta comanda !" );
return 1;
}
new FirstArg[ 32 ], SecondArg[ 32 ];
new bool:EliminationFound = false;
read_argv( 1, FirstArg , sizeof ( FirstArg ) -1 );
read_argv( 2, SecondArg , sizeof ( SecondArg ) -1 );
if( equal( FirstArg, "" ) || equal( SecondArg, "" ) )
{
if( id == 0 )
{
server_print( "amx_eliminate < ip / steamid > < motiv > !" );
return 1;
}
else
{
client_cmd( id, "echo amx_eliminate < ip / steamid > < motiv > !" );
return 1;
}
}
new plugin_info[ 128 ];
if( id == 0 )
{
formatex( plugin_info, sizeof ( plugin_info ) -1,"************ %s v%s by %s ***********", PLUGIN, VERSION, "Askhanar");
}
else
{
formatex( plugin_info, sizeof ( plugin_info ) -1,"echo ^"************ %s v%s by %s ***********^"", PLUGIN, VERSION, "Askhanar");
}
new eData[ eDatas ];
for( new i = 0; i < g_iEliminates ; i++ )
{
ArrayGetArray( g_aData, i, eData );
if( equal( eData[ IP ], FirstArg ) || equal( eData[ AUTHID ], FirstArg ) )
{
if( id == 0)
{
server_print( "****************************************************");
server_print( "************* Informatii despre scoaterea eliminarii ***********" );
server_print( "* " );
server_print( "* Nume: %s", eData[ NAME ] );
server_print( "* Ip: %s",eData[ IP ] );
server_print( "* Steamid: %s", eData[ AUTHID ] );
server_print( "* Motiv: %s ", eData[ REASON ] );
server_print( "* Durata: Permanenta" );
server_print( "* Nume Admin: %s", eData[ ANAME ] );
server_print( "* Ip Admin: %s", eData[ AIP ] );
server_print( "* Steamid Admin: %s", eData[ AAUTHID ] );
server_print( "* Data/Ora: %s", eData[ TIME ] );
server_print( "* " );
server_print( "* Comanda executata cu succes !" );
server_print( "* Eliminarea de pe ip-ul / steamid-ul |%s| a fost scoasa.", FirstArg );
server_print( "* ");
server_print( "****************************************************");
server_print( "%s", plugin_info );
server_print( "****************************************************");
EliminationFound = true;
LogToConfigs( "-----------------------------------------------------------------------------------------------------------------------------------------------");
LogToConfigs( "ADMIN %s (%s) - a scos eliminarea ce urmeaza ! - Motiv: %s", get_name( id ), get_ip( id ), SecondArg );
LogToConfigs( "ELIMINARE:| %s | Admin %s [%s] (%s) - l-a eliminat pe %s [%s] (%s) - Motiv: %s",
eData[ TIME ], eData[ ANAME ], eData[ AAUTHID ],
eData[ AIP ], eData[ NAME ], eData[ AAUTHID ], eData[ IP ],
eData[ REASON ] );
LogToConfigs( "-----------------------------------------------------------------------------------------------------------------------------------------------");
}
else
{
client_cmd( id, "echo ^"****************************************************^"");
client_cmd( id, "echo ^"************* Informatii despre scoaterea eliminarii ***********^"" );
client_cmd( id, "echo ^"* ^"" );
client_cmd( id, "echo ^"* Nume: %s^"", eData[ NAME ] );
client_cmd( id, "echo ^"* Ip: %s^"", eData[ IP ] );
client_cmd( id, "echo ^"* Steamid: %s^"", eData[ AAUTHID ] );
client_cmd( id, "echo ^"* Motiv: %s ^"", eData[ REASON ] );
client_cmd( id, "echo ^"* Durata: Permanenta^"" );
client_cmd( id, "echo ^"* Nume Admin: %s^"", eData[ ANAME ] );
client_cmd( id, "echo ^"* Ip Admin: %s^"", eData[ AIP ] );
client_cmd( id, "echo ^"* Steamid Admin: %s^"",eData[ AAUTHID] );
client_cmd( id, "echo ^"* Data/Ora: %s^"", eData[ TIME ] );
client_cmd( id, "echo ^"* ^"" );
client_cmd( id, "echo ^"* Comanda executata cu succes !^"" );
client_cmd( id, "echo ^"* Eliminarea de pe ip-ul / steamid-ul |%s| a fost scoasa.^"", FirstArg );
client_cmd( id, "echo ^"* ^"");
client_cmd( id, "echo ^"****************************************************^"");
client_cmd( id, "%s", plugin_info );
client_cmd( id, "echo ^"****************************************************^"");
EliminationFound = true;
LogToConfigs( "-----------------------------------------------------------------------------------------------------------------------------------------------");
LogToConfigs( "ADMIN %s (%s) - a scos eliminarea ce urmeaza ! - Motiv: %s", get_name( id ), get_ip( id ), SecondArg );
LogToConfigs( "ELIMINARE:| %s | Admin %s [%s] (%s) - l-a eliminat pe %s [%s] (%s) - Motiv: %s",
eData[ TIME ], eData[ ANAME ], eData[ AAUTHID ],
eData[ AIP ], eData[ NAME ], eData[ AAUTHID ], eData[ IP ],
eData[ REASON ] );
LogToConfigs( "-----------------------------------------------------------------------------------------------------------------------------------------------");
client_cmd( 0, "spk vox/doop" );
ColorChat( 0, RED,"^x04%s^x03 %s^x01 i-a scos eliminarea lui^x03 %s^x01 !", get_tag( ), get_name( id ), eData[ NAME ] );
}
RemoveEliminate( i );
break;
}
}
if( !EliminationFound )
{
if( id == 0 )
{
server_print( "****************************************************" );
server_print( "****************************************************" );
server_print( "* " );
server_print( "* Comanda nu poate fi executata !" );
server_print( "* Ip-ul / steamid-ul |%s|", FirstArg );
server_print( "* Nu a fost gasit in baza de date." );
server_print( "* " );
server_print( "****************************************************");
server_print( "%s", plugin_info );
server_print( "****************************************************");
}
else
{
client_cmd( id, "echo ^"****************************************************^"" );
client_cmd( id, "echo ^"****************************************************^"" );
client_cmd( id, "echo ^"* ^"" );
client_cmd( id, "echo ^"* Comanda nu poate fi executata !^"" );
client_cmd( id, "echo ^"* Ip-ul / steamid-ul |%s|^"", FirstArg );
client_cmd( id, "echo ^"* Nu a fost gasit in baza de date.^"" );
client_cmd( id, "echo ^"* ^"" );
client_cmd( id, "echo ^"****************************************************^"");
client_cmd( id, "%s", plugin_info );
client_cmd( id, "echo ^"****************************************************^"");
}
}
return 1;
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
public ConCmdPrintEliminates( id )
{
if( !( get_user_flags( id ) & ELIMINATE_ACCESS ) )
{
client_cmd( id, "echo Nu ai acces la aceasta comanda !" );
return 1;
}
if( g_iEliminates == 0 )
{
if( id == 0 )
{
server_print( "Nu am gasit nicio eliminare in baza de date !" );
return 1;
}
else
{
client_cmd( id, "echo Nu am gasit nicio eliminare in baza de date !" );
return 1;
}
}
new start , end, pos_to_num;
new position[ 5 ];
read_argv( 1, position, sizeof ( position ) - 1 );
pos_to_num = str_to_num( position );
start = min( pos_to_num, g_iEliminates ) - 1;
if( start <= 0 ) start = 0;
end = min( start + 5, g_iEliminates ); // nu modifica aici mai mult de 5 ca iti va da reliable channel overflowed
new plugin_info[ 128 ];
new eData[ eDatas ];
if( id == 0 )
{
formatex( plugin_info, sizeof ( plugin_info ) -1,"************ %s v%s by %s ***********", PLUGIN, VERSION, "Askhanar");
server_print( "****************************************************" );
server_print( "* Nr total de eliminari: %d | Eliminari vizualizate acum: %d - %d", g_iEliminates, start + 1, end );
server_print( "* " );
for( new i = start ; i < end ; i++ )
{
ArrayGetArray( g_aData, i, eData );
server_print( "***************** Detaliile eliminarii #%d *******************", i + 1 );
server_print( "* " );
server_print( "* " );
server_print( "* Nume: %s", eData[ NAME ] );
server_print( "* Ip: %s", eData[ IP ] );
server_print( "* Steamid: %s", eData[ AUTHID ] );
server_print( "* Motiv: %s ", eData[ REASON ] );
server_print( "* Durata: Permanenta" );
server_print( "* Nume Admin: %s", eData[ ANAME ] );
server_print( "* Ip Admin: %s", eData[ AIP ] );
server_print( "* Steamid Admin: %s", eData[ AAUTHID ] );
server_print( "* Data/Ora: %s", eData[ TIME ] );
server_print( "* " );
server_print( "* " );
}
server_print( "****************************************************");
server_print( "%s", plugin_info );
server_print( "****************************************************");
}
else
{
formatex( plugin_info, sizeof ( plugin_info ) -1,"echo ^"************ %s v%s by %s ***********^"", PLUGIN, VERSION, "Askhanar");
client_cmd( id, "echo ^"****************************************************^"");
client_cmd( id, "echo ^"* Nr total de eliminari: %d | Eliminari vizualizate acum: %d - %d^"",g_iEliminates, start + 1, end );
client_cmd( id, "echo ^"* ^"" );
for( new i = start ; i < end ; i++ )
{
ArrayGetArray( g_aData, i, eData );
client_cmd( id, "echo ^"***************** Detaliile eliminarii #%d *******************^"", i + 1 );
client_cmd( id, "echo ^"* ^"" );
client_cmd( id, "echo ^"* Nume: %s^"", eData[ NAME ] );
client_cmd( id, "echo ^"* Ip: %s^"", eData[ IP ] );
client_cmd( id, "echo ^"* Steamid: %s^"", eData[ AUTHID ] );
client_cmd( id, "echo ^"* Motiv: %s ^"", eData[ REASON ] );
client_cmd( id, "echo ^"* Durata: Permanenta^"" );
client_cmd( id, "echo ^"* Nume Admin: %s^"", eData[ ANAME ] );
client_cmd( id, "echo ^"* Ip Admin: %s^"",eData[ AIP] );
client_cmd( id, "echo ^"* Steamid Admin: %s^"", eData[ AAUTHID ] );
client_cmd( id, "echo ^"* Data/Ora: %s^"", eData[ TIME ] );
client_cmd( id, "echo ^"* ^"" );
client_cmd( id, "echo ^"* ^"" );
}
client_cmd( id, "echo ^"****************************************************^"");
client_cmd( id, "%s", plugin_info );
client_cmd( id, "echo ^"****************************************************^"");
}
return 1;
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
public ConCmdReloadEliminates( id )
{
if( !( get_user_flags( id ) & ELIMINATE_ACCESS ) )
{
client_cmd( id, "echo Nu ai acces la aceasta comanda !");
return 1;
}
g_iEliminates = 0;
ArrayClear( g_aData );
if( id == 0 )
{
server_print( "Eliminarile vor fi reincarcate !" );
}
else
{
client_cmd( id, "echo Eliminarile vor fi reincarcate !" );
}
LoadEliminates( );
if( id == 0 )
{
server_print( "Am incarcat cu succes %d eliminari.", g_iEliminates );
}
else
{
client_cmd( id, "echo Am incarcat cu succes %d eliminari.", g_iEliminates );
}
return 1;
}
public EliminateUser( id, Player, const reason[ ] )
{
new file[ 128 ];
get_configsdir( file, sizeof ( file ) -1 );
formatex( file, sizeof ( file ) -1,"%s/%s", file, EliminateDataFile );
new f = fopen( file, "a+" );
fprintf( f, "^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"^n",
_get_time( ), get_name( Player ), get_ip( Player ), get_authid( Player ),
get_name( id ), get_ip( id ), get_authid( id ), reason );
fclose( f );
static eData[ eDatas ];
copy( eData[ NAME ], sizeof ( eData[ NAME ] ) -1, get_name( Player ) );
copy( eData[ IP ], sizeof ( eData[ IP ] ) -1, get_ip( Player ) );
copy( eData[ AUTHID ], sizeof ( eData[ AUTHID ] ) -1, get_authid( Player ) );
copy( eData[ REASON ], sizeof ( eData[ REASON ] ) -1, reason );
copy( eData[ ANAME ], sizeof ( eData[ ANAME ] ) -1, get_name( id ) );
copy( eData[ AIP ], sizeof ( eData[ AIP ] ) -1, get_ip( id ) );
copy( eData[ AAUTHID ], sizeof ( eData[ AAUTHID ] ) -1, get_authid( id ));
copy( eData[ TIME ], sizeof ( eData[ TIME ] ) -1, _get_time( ) );
ArrayPushArray( g_aData, eData );
g_iEliminates++;
return 0;
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
public LoadEliminates( )
{
if( g_iEliminates )
{
ArrayClear( g_aData );
g_iEliminates = 0;
}
new file[ 128 ];
get_configsdir( file, sizeof ( file ) -1 );
formatex( file, sizeof ( file ) -1,"%s/%s", file, EliminateDataFile );
if( file_exists( file ) )
{
new iFile = fopen( file, "rt" );
new szDateAndTime[ 32 ], szName[ 32 ], szIp[ 25 ], szSteamId[ 35 ],
szAdminName[ 32 ], szAdminIp[ 25 ], szAdminSteamId[ 35 ],
szReason[ 32 ];
new szFileData[ 512 ], eData[ eDatas ];
while( !feof( iFile ) )
{
fgets( iFile, szFileData, sizeof ( szFileData ) - 1);
if( !szFileData[ 0 ] || szFileData[ 0 ] == ';'
|| ( szFileData[ 0 ] == '/' && szFileData[ 1 ] == '/' ) )
continue;
parse( szFileData,\
szDateAndTime, sizeof ( szDateAndTime ) -1,\
szName, sizeof ( szName ) -1,\
szIp, sizeof ( szIp ) -1,\
szSteamId, sizeof ( szSteamId ) -1,\
szAdminName, sizeof ( szAdminName ) -1,\
szAdminIp, sizeof ( szAdminIp ) -1,\
szAdminSteamId, sizeof ( szAdminSteamId ) -1,\
szReason, sizeof ( szReason ) -1 );
copy( eData[ NAME ], sizeof ( eData[ NAME ] ) -1, szName );
copy( eData[ IP ], sizeof ( eData[ IP ] ) -1, szIp );
copy( eData[ AUTHID ], sizeof ( eData[ AUTHID ] ) -1, szSteamId );
copy( eData[ REASON ], sizeof ( eData[ REASON ] ) -1, szReason );
copy( eData[ ANAME ], sizeof ( eData[ ANAME ] ) -1, szAdminName );
copy( eData[ AIP ], sizeof ( eData[ AIP ] ) -1, szAdminIp );
copy( eData[ AAUTHID ], sizeof ( eData[ AAUTHID ] ) -1, szAdminSteamId );
copy( eData[ TIME ], sizeof ( eData[ TIME ] ) -1, szDateAndTime );
ArrayPushArray( g_aData, eData );
g_iEliminates++;
}
fclose( iFile );
}
Log( "[INFO] - Am incarcat cu succes %d eliminari din %s", g_iEliminates, file );
return 0;
}
public RemoveEliminate( i )
{
ArrayDeleteItem( g_aData, i );
g_iEliminates--;
new file[ 128 ];
get_configsdir( file, sizeof ( file ) -1 );
formatex( file, sizeof ( file ) -1,"%s/%s", file, EliminateDataFile );
new iFile = fopen( file, "wt" );
fprintf( iFile, ";Fisierul in care Advanced Eliminate stocheaza datele userilor eliminati^n" );
fprintf( iFile, ";^n" );
fprintf( iFile, ";^n" );
new eData[ eDatas ];
for( new i = 0; i < g_iEliminates; i++ )
{
ArrayGetArray( g_aData, i, eData );
fprintf( iFile, "^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"^n",
eData[ TIME ], eData[ NAME ], eData[ IP ], eData[ AUTHID ],
eData[ ANAME ], eData[ AIP ], eData[ AAUTHID ], eData[ REASON ] );
}
fclose( iFile );
}
public LogToConfigs( const msg[ ], any:...)
{
new message[ 256 ];
vformat( message, sizeof ( message ) -1, msg , 2 );
new file[ 128 ], log[ 256 ];
get_configsdir( file, sizeof ( file ) -1 );
formatex( file, sizeof ( file ) -1,"%s/%s", file, EliminateLogFile );
if( !file_exists( file ) )
{
write_file( file ,"In acest log veti gasi urmatoarele informatii:", -1 );
write_file( file ,"Cine, cand si cui a dat eliminate dar si pe ce motiv.",-1 );
write_file( file ,"Cine, cand si cui a scos eliminarea dar si pe ce motiv.",-1 );
write_file( file ,"",-1 );
write_file( file ,"",-1 );
}
formatex( log, sizeof (log ) -1,"|%s| - %s ", _get_time( ), message );
write_file( file, log, -1 );
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
public Log( const msg[ ], any:...)
{
new message[ 256 ];
vformat( message, sizeof ( message ) -1, msg , 2 );
new dir[ 64 ], file[ 128 ], log[ 256 ];
if( !dir[ 0 ] )
{
get_basedir( dir, sizeof ( dir ) -1 );
formatex( file, sizeof ( file ) -1,"%s/logs/AdvancedEliminate.log", dir );
}
formatex( log, sizeof (log ) -1,"|%s| %s ", _get_time( ), message );
write_file( file, log, -1 );
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
public PrintConsoleInfo( id, const name[ ], const ip[ ], const steamid[ ], const reason[ ], const admin_name[ ], const admin_ip[ ], const admin_steamid[ ], const dateandtime[ ] )
{
new plugin_info[ 128 ];
formatex( plugin_info, sizeof ( plugin_info ) -1,"echo ^"*********** %s v%s by %s ************^"", PLUGIN, VERSION, "Askhanar");
client_cmd( id, "echo ^"****************************************************^"") ;
client_cmd( id, "echo ^"***************Informatii despre eliminarea de pe server*********^"" );
client_cmd( id, "echo ^"* ^"" );
client_cmd( id, "echo ^"* Nume: %s^"", name );
client_cmd( id, "echo ^"* Ip: %s^"", ip );
client_cmd( id, "echo ^"* Steamid: %s^"", steamid );
client_cmd( id, "echo ^"* Motiv: %s ^"", reason );
client_cmd( id, "echo ^"* Durata: Permanenta^"" );
client_cmd( id, "echo ^"* Nume Admin: %s^"", admin_name );
client_cmd( id, "echo ^"* Ip Admin: %s^"", admin_ip );
client_cmd( id, "echo ^"* Steamid Admin: %s^"", admin_steamid );
client_cmd( id, "echo ^"* Data/Ora: %s^"", dateandtime );
client_cmd( id, "echo ^"* Daca te simti neindreptatit contacteaza-ne pe:^"");
client_cmd( id, "echo ^"* %s^"", get_site( ) );
client_cmd( id, "echo ^"* ^"" );
client_cmd( id, "echo ^"****************************************************^"") ;
client_cmd( id, "%s", plugin_info );
client_cmd( id, "echo ^"****************************************************^"") ;
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
/*======================================= - ¦ Askhanar ¦ - =======================================*/
public TaskDisconnectPlayer( id )
{
id -= ELIMINATETASK;
server_cmd( "kick #%i ^"Ai fost eliminat de pe acest server, verifica-ti consola !^"", get_user_userid( id ) );
}
public TaskDisconnectPlayerFromSV( id )
{
id -= ELIMINATETASK;
if( !is_user_connected( id ) ) return 1;
server_cmd( "kick #%i ^"Ai fost eliminat de pe acest server, verifica-ti consola !^"", get_user_userid( id ) );
return 1;
}
public CreateEliminateEffects( id )
{
id -= ELIMINATETASK;
if( !is_user_connected( id ) ) return 1;
get_user_origin( id, vOrigin[ id ] );
Create_TE_IMPLOSION( vOrigin[ id ], 100, 20, 5 );
emit_sound( id, CHAN_STATIC, EliminateExplodeSound, 1.0, ATTN_NORM, 0, PITCH_NORM );
set_task( 0.5, "CreateExplosionEffect", id + ELIMINATETASK );
set_task( 0.5, "CreateBlastCirclesEffect", id + ELIMINATETASK );
return 0;
}
public CreateExplosionEffect( id )
{
id -= ELIMINATETASK;
if( !is_user_connected( id ) ) return 1;
new Origin[ 3 ],vPosition[ 3 ];
Origin[ 0 ] = vOrigin[ id ][ 0 ];
Origin[ 1 ] = vOrigin[ id ][ 1 ];
Origin[ 2 ] = vOrigin[ id ][ 2 ];
vPosition[ 0 ] = vOrigin[ id ][ 0 ] + random_num( -100, 100 );
vPosition[ 1 ] = vOrigin[ id ][ 1 ] + random_num( -100, 100 );
vPosition[ 2 ] = vOrigin[ id ][ 2 ] + random_num( -50, 50 );
Create_TE_EXPLOSION( Origin, vPosition, ExplodeSpr, (random_num(0,20) + 20), 12, 0 );
Create_TE_Smoke( Origin, vPosition, SmokeSpr, 60, 10 );
user_silentkill( id );
return 0;
}
public CreateBlastCirclesEffect( id )
{
id -= ELIMINATETASK;
if( !is_user_connected( id ) ) return 1;
new Origin[ 3], vPosition[3];
Origin[ 0 ] = vOrigin[ id ][ 0 ];
Origin[ 1 ] = vOrigin[ id ][ 1 ];
Origin[ 2 ] = vOrigin[ id ][ 2 ] - 16;
vPosition[ 0 ] = vOrigin[ id ][ 0];
vPosition[ 1 ] = vOrigin[ id ][ 1 ];
vPosition[ 2 ] = vOrigin[ id ][ 2 ] + 250;
Create_TE_BEAMCYLINDER( Origin, Origin, vPosition, ShockWaveSpr, 0, 0, 6, 16, 0, 188, 220, 255, 255, 0 );
vOrigin[id][ 2 ] = ( Origin[2] - 250 ) + ( 250 / 2 );
Create_TE_BEAMCYLINDER( Origin, Origin, vPosition, ShockWaveSpr, 0, 0, 6, 16, 0, 188, 220, 255, 255, 0 );
return 0;
}
stock Create_TE_IMPLOSION( position[ 3 ], radius, count, life )
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte ( TE_IMPLOSION );
write_coord( position[ 0 ] ); // position (X)
write_coord( position[ 1 ] ); // position (Y)
write_coord( position[ 2 ] ); // position (Z)
write_byte ( radius ); // radius
write_byte ( count ); // count
write_byte ( life ); // life in 0.1's
message_end( );
}
stock Create_TE_EXPLOSION( origin[ 3 ], origin2[ 3 ], iSprite, scale, frameRate, flags )
{
message_begin( MSG_PVS, SVC_TEMPENTITY, origin );
write_byte( TE_EXPLOSION );
write_coord( origin2[ 0 ] ); // position (X)
write_coord( origin2[ 1 ] ); // position (Y)
write_coord( origin2[ 2 ] ); // position (Z)
write_short( iSprite ); // sprite index
write_byte( scale ); // scale in 0.1's
write_byte( frameRate ); // framerate
write_byte( flags ); // flags
message_end( );
}
stock Create_TE_Smoke( originSight[ 3 ], position[ 3 ], iSprite, scale, framerate )
{
message_begin( MSG_PVS, SVC_TEMPENTITY, originSight );
write_byte( TE_SMOKE );
write_coord( position[ 0 ] ); // Position
write_coord( position[ 1 ] );
write_coord( position[ 2 ] );
write_short( iSprite ); // Sprite index
write_byte( scale ); // scale * 10
write_byte( framerate ); // framerate
message_end( );
}
stock Create_TE_BEAMCYLINDER( origin[ 3 ], center[ 3 ], axis[ 3 ], iSprite, startFrame, frameRate, life, width, amplitude, red, green, blue, brightness, speed )
{
message_begin( MSG_PAS, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( center[ 0 ] ); // center position (X)
write_coord( center[ 1 ] ); // center position (Y)
write_coord( center[ 2 ] ); // center position (Z)
write_coord( axis[ 0 ] ); // axis and radius (X)
write_coord( axis[ 1 ] ); // axis and radius (Y)
write_coord( axis[ 2 ] ); // axis and radius (Z)
write_short( iSprite ); // sprite index
write_byte( startFrame ); // starting frame
write_byte( frameRate ); // frame rate in 0.1's
write_byte( life ); // life in 0.1's
write_byte( width ); // line width in 0.1's
write_byte( amplitude ) ; // noise amplitude in 0.01's
write_byte( red ); // color (red)
write_byte( green ); // color (green)
write_byte( blue ); // color (blue)
write_byte( brightness ); // brightness
write_byte( speed ); // scroll speed in 0.1's
message_end( );
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
stock get_name( id )
{
new name[ 32 ];
get_user_name( id, name, sizeof ( name ) -1 );
return name;
}
stock get_ip( id )
{
new ip[ 32 ];
get_user_ip( id, ip, sizeof ( ip ) -1, 1 );
return ip;
}
stock get_authid( id )
{
new authid[ 35 ];
get_user_authid( id, authid, sizeof ( authid ) -1 );
return authid;
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
stock get_tag( )
{
new tag[ 32 ];
get_pcvar_string( cvar_tag, tag, sizeof ( tag ) -1 );
return tag;
}
stock get_site( )
{
new site[ 32 ];
get_pcvar_string( cvar_site, site, sizeof ( site ) -1 );
return site;
}
stock _get_time( )
{
new logtime[ 32 ];
get_time("%d.%m.%Y - %H:%M:%S", logtime ,sizeof ( logtime ) -1 );
return logtime;
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/
stock bool:HasUserAccess( id )
{
if( get_user_flags( id ) & ELIMINATE_ACCESS )
return true;
return false;
}
public ShakeScreen( id, const Float:seconds )
{
message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( 1<<13 );
message_end( );
}
public FadeScreen( id, const Float:seconds, const red, const green, const blue, const alpha )
{
message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), _, id );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( floatround( 4096.0 * seconds, floatround_round ) );
write_short( 0x0000 );
write_byte( red );
write_byte( green );
write_byte( blue );
write_byte( alpha );
message_end( );
}
/*======================================= - ¦ Askhanar ¦ - =======================================*/