/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <cstrike>
#include <amxmisc>
#include <fun>
#if AMXX_VERSION_NUM < 183
//
https://forums.allie...160&postcount=1
#include <colorchat>
#endif
#pragma tabsize 0
new bool: hascan[33],target[33],targetIP[35],targetNAME[33],adminNAME[33],gCvarMoveSpec,gCvarMinutesToGive,admin_spec,ban_time,
SyncHudMessage,show_ban_menu_time,team,TAG[] = "[WarGods]"
public plugin_init() {
register_plugin("WarGods Cerere", "1.0", "DanN");//edit by lev - v2?..
register_clcmd ( "say", "hook_say" );
register_clcmd ( "say_team", "hook_say" );
gCvarMoveSpec = register_cvar( "wg_move_spec", "1" );
gCvarMinutesToGive = register_cvar( "wg_min_to_response", "10" );//in minute
admin_spec = register_cvar( "wg_admin_must_be_spec", "0" );
ban_time = register_cvar( "wg_ban_time_minutes", "43200" );//in minute
show_ban_menu_time=register_cvar( "wg_show_ban_menu", "15.0" );//in secunde
SyncHudMessage=CreateHudSyncObj(13)
}
public client_putinserver(id){
if(is_user_bot(id)||is_user_hltv(id)) return
hascan[id] = false;
target[id]=0
}
#if AMXX_VERSION_NUM < 183
public client_disconnect(id)
#else
public client_disconnected(id)
#endif
{
if(is_user_bot(id)||is_user_hltv(id)) return
if(hascan[id]&&get_pcvar_num(ban_time)>=0){
client_print_color( 0, print_team_default, "%s^3 %s^1 a parasit serverul in timp ce trebuia sa prezinte^4 WG^x01 si a primit ban", TAG, get_name(id));
server_cmd( "addip %d %s;wait;writeip", get_pcvar_num(ban_time),targetIP );
}
hascan[id]=false
target[id]=0
}
public hook_say ( id ){
new szSaid[ 195 ]
read_args( szSaid, charsmax( szSaid ) );
remove_quotes( szSaid );
if( containi( szSaid, "/scan" ) != -1 ){
if(!is_user_admin(id)) return PLUGIN_HANDLED
for(new x=1;x<=get_maxplayers();x++){
if(!is_user_connected(x)||is_user_bot(x)||is_user_hltv(x)) continue
if(hascan[x]){
client_print_color( id, print_team_default, "%s^3 Deja se afla in curs o cerere de wg, ceruta de %s lu %s", TAG, adminNAME, targetNAME);
return PLUGIN_HANDLED
}
break
}
new ltarget[ 33 ];copy( ltarget, charsmax( ltarget ), szSaid[ 6 ] );
if(!ltarget[0]){
client_print_color( id, print_team_default, "%s^3 Folosire corecta /scan NICK",TAG)
return PLUGIN_HANDLED
}
new player = cmd_target( id, ltarget, CMDTARGET_NO_BOTS );
if( player ){
if(hascan[player]){
client_print_color( id, print_team_default, "%s^3 Lu^4 %s^3 i s-a cerut deja o scanare wargods de catre^4 %s", TAG, targetNAME, adminNAME);
return PLUGIN_HANDLED;
}
if(get_pcvar_num(admin_spec)==1&&cs_get_user_team(id)!=CS_TEAM_SPECTATOR){
client_print_color( id, print_team_default, "%s^3 Trebuie sa fii SPECTATOR pentru a cere WG", TAG);
return PLUGIN_HANDLED
}
new timer[ 25 ],text[255]
get_time("%d/%m/%Y - %H:%M:%S", timer,charsmax(timer));
target[id]=player
hascan[player] = true;
adminNAME=get_name(id)
targetIP=get_ip(player)
targetNAME=get_name(player)
team=get_user_team(player)
client_print_color(0, print_team_default, "%s^4 %s^3 ii cere scanare Wargods lu^4 %s. Data/Ora:^3 %s", TAG, adminNAME, targetNAME, timer);
client_print_color(0, print_team_default, "%s^3 De asemenea are si el o poza cu mesajul ca ia cerut, in caz de neprezentare are dovada pentru ban.", TAG);
client_print_color(0, print_team_default, "%s^3 Link download WG^4 www.wargods.ro/wcd/download.php", TAG);
if(get_pcvar_num(gCvarMoveSpec)==1){
if(is_user_alive(player)) user_silentkill(player)
if(cs_get_user_team(player)==CS_TEAM_T||cs_get_user_team(player)==CS_TEAM_CT) cs_set_user_team(player,CS_TEAM_SPECTATOR)
}
set_task( get_pcvar_float( show_ban_menu_time ), "BanThis", id );
client_print_color(player, print_team_default, "%s^3 Ai %d minut%s pentru a prezenta WG-ul cerut de %s", TAG,get_pcvar_num( gCvarMinutesToGive ),get_pcvar_num( gCvarMinutesToGive )==1?"":"e",adminNAME);
client_cmd(player, "echo ;Snapshot;Snapshot");
client_cmd(id, "echo ;Snapshot;Snapshot");
formatex(text,charsmax(text),"%s %s %s i-a cerut o scanare WG jucatorului %s",TAG,timer,adminNAME,targetNAME)
write_file("addons/amxmodx/logs/wg.txt",text,-1)
} else client_print_color(id, print_team_default, "%s Tinta invalida", TAG);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public BanThis( id ){
new MenuTitle[ 125 ],BanMenu
formatex( MenuTitle, sizeof( MenuTitle ), "\d|\r WG\d |\y Mertia\r %s\y ban?", targetNAME );
BanMenu = menu_create( MenuTitle, "BanHandler" );
menu_additem( BanMenu, "\yDa");
menu_additem( BanMenu, "\yNu");
menu_additem( BanMenu, "Intreaba-ma mai incolo");
menu_additem( BanMenu, "Ma descurc singur");
menu_display( id, BanMenu, 0 );
}
public BanHandler( id, menu, item ){
switch( item ){
case 0:{
hascan[target[id]]=false
target[id]=0
if( is_user_connected( id ) ) client_cmd( id, "amx_addban ^"%s^" %d ^"Neprezentare WG la timp^"", targetIP,get_pcvar_num(ban_time) );
else server_cmd( "addip %d %s;wait;writeip",get_pcvar_num(ban_time), targetIP );
set_hudmessage( 0, 255, 0, -1.0, -1.0, 0, 5.0, 10.0 );
ShowSyncHudMsg( 0, SyncHudMessage, "%s l-a Banat pe %s (IP: %s)^n Motiv: Problema la WG !", adminNAME, targetNAME, targetIP );
}
case 1:{
set_hudmessage( 0, 255, 0, -1.0, -1.0, 0, 5.0, 10.0 );
ShowSyncHudMsg( 0, SyncHudMessage, "%s l-a Crutat pe %s (IP: %s)^nMotiv: WG CURAT !", adminNAME, targetNAME, targetIP );
if(is_user_connected(target[id])&&cs_get_user_team(target[id])==CS_TEAM_SPECTATOR){
switch(team){
case 1: cs_set_user_team(target[id],CS_TEAM_T)
case 2: cs_set_user_team(target[id],CS_TEAM_CT)
}
hascan[target[id]]=false
}
target[id]=0
}
case 2: if(is_user_connected(id)&&is_user_admin(id)&&is_user_connected(target[id])) set_task(get_pcvar_float( show_ban_menu_time ),"BanThis",id);
case 3: return;
}
}
stock get_name ( const id ) {
new name [ 33 ];get_user_name ( id, name, charsmax(name) );
return name
}
stock get_ip( const id ) {
new ip [ 35 ];get_user_ip ( id, ip, charsmax(ip),1 );
return ip
}