Hola, Chicos ¿Como estan? espereo que bien se me presento un problema con el plugin reportsysteam de kilkizon y flamingo creo que se llama así bueno al momento de dar un ban y kick no se manda el ban ni el kick y me manda este error en consola:
L 04/15/2018 - 19:02:03: [AMXX] Run time error 4 (plugin "ReportSystem.amxx") - debug not enabled!
L 04/15/2018 - 19:02:03: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes
Mando aqui el texto del plugin a ver si tiene un error
L 04/15/2018 - 19:02:03: [AMXX] Run time error 4 (plugin "ReportSystem.amxx") - debug not enabled!
L 04/15/2018 - 19:02:03: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes
Mando aqui el texto del plugin a ver si tiene un error
Código PHP:
#include <amxmodx>
#include <amxmisc>
/* ================================================================================================
Vars, Defines, Const
================================================================================================*/
#define MIN_CARACTERES 10
new const ReportFile[ ] = "Reportes.txt";
new const CommandMessageMode[ ] = "Detalles";
new const Commands[ ][ ] = { "say /report" , "say /reportar" };
new const OpcionesReporte[ ][ ] = { "Insultar" , "Cheats" , "Abuso de bugs", "Etc... " };
new const Minutos_de_ban[] = { 0, 5, 10, 15, 20, 30, 60, 120, 600 };
new MaxPlayers;
new inMessageMode[ 33 ], OptionSelected[ 33 ] , PlayerIDSelected[ 33 ] , UserIDSelected[ 33 ],
PlayerDetalles[ 33 ][ 128 ], PlayerMinutesBan[ 33 ], Reportes[ 33 ], Name[ 33 ][ 32 ], Authid[ 33 ][ 35 ];
/* ================================================================================================
Main Forwards
================================================================================================*/
public plugin_init()
{
register_plugin( "New Report System", "1.0", "FloresMagon & kikizon" );
static k;
for( k = 0 ; k < sizeof Commands ; ++k )
register_clcmd( Commands[ k ] , "clcmdReport" );
register_clcmd( CommandMessageMode , "clcmdDetalles" );
register_clcmd( "say /reescribir", "clcmdReescribir" );
register_clcmd( "say /players", "ShowMenuPlayers" );
MaxPlayers = get_maxplayers();
}
public client_putinserver( index )
{
get_user_name( index, Name[index], 31 );
get_user_authid( index, Authid[index], 34 );
ResetVars( index );
}
public client_infochanged( index )
{
get_user_info( index, "name", Name[index], 31 );
}
/* ================================================================================================
Clcmds
================================================================================================*/
public clcmdReport( index )
{
if( Reportes[ index ] )
{
client_print( index, print_center, "*** Ya hiciste tu reporte en este mapa ***" );
return PLUGIN_HANDLED;
}
static menu, k;
menu = menu_create( "\r[ Sistema de Reporte M-R ] \wSelecciona una opcion:", "menu_report" );
for( k = 0 ; k < sizeof OpcionesReporte ; ++k )
menu_additem( menu , OpcionesReporte[k] , "" );
menu_display( index , menu );
return PLUGIN_HANDLED;
}
public menu_report( index , menu , item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
OptionSelected[ index ] = item;
ShowMenuPlayers( index );
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public clcmdReescribir( index )
{
if( !inMessageMode[ index ] )
{
client_print( index, print_chat, "No habias completado el reporte" );
client_print( index, print_chat, "Para volver a hacer el reporte tipea, /report " );
return PLUGIN_HANDLED;
}
client_cmd( index , "messagemode ^"%s^"", CommandMessageMode );
return PLUGIN_HANDLED;
}
public clcmdDetalles( index )
{
if( !inMessageMode[ index ] )
{
client_print( index, print_center, "*** NO PERMITIDO ***" );
return PLUGIN_HANDLED;
}
read_args( PlayerDetalles[ index ], 127 );
remove_quotes( PlayerDetalles[ index ] ) ;
trim( PlayerDetalles[ index ] );
if( !is_valid_msg(index) )
{
client_print( index , print_chat , "[ Sistema de Reporte M-R ] Tu mensaje contiene errores" );
client_print( index , print_chat , "[ Sistema de Reporte M-R ] Si deseas volver a escribir, tipea /reescribir" );
PlayerDetalles[ index ] = "^0";
return PLUGIN_HANDLED;
}
SendReport(index);
return PLUGIN_HANDLED;
}
/* ================================================================================================
Menus
================================================================================================*/
/*
Players Menu
*/
public ShowMenuPlayers( index )
{
static IDS[20], menu, i;
menu = menu_create("\r[ Sistema de Reporte M-R] \wSelecciona a quien quieres reportar:", "menu_players" );
for( i = 1 ; i <= MaxPlayers ; ++i )
{
if( !is_user_connected(i) || i == index ) continue;
formatex( IDS , charsmax(IDS) , "%d %d" , i , get_user_userid(i) )
menu_additem( menu , Name[i] , IDS );
}
menu_display( index , menu );
}
public menu_players( index , menu , item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
static varsinuso, buffer[12], szid[3], szuserid[9];
menu_item_getinfo(menu, item, varsinuso, buffer, charsmax(buffer), _, _, varsinuso);
parse(buffer, szid, charsmax(szid), szuserid, charsmax(szuserid));
PlayerIDSelected[ index ] = str_to_num(szid);
UserIDSelected[ index ] = str_to_num(szuserid);
if( !is_user_connected( PlayerIDSelected[ index ] )
|| UserIDSelected[ index ] != get_user_userid( PlayerIDSelected[index]) )
{
client_print( index , print_chat, "[ Sistema de Reporte M-R ] El jugador se ha desconectado. (%d)", PlayerIDSelected[ index ] );
return PLUGIN_HANDLED;
}
inMessageMode[ index ] = true;
client_cmd( index , "messagemode ^"%s^"", CommandMessageMode );
menu_destroy( menu );
return PLUGIN_HANDLED;
}
/*
Send Report to admin ( Menu )
*/
SendReport(index)
{
static i, menu, String[ 300 ], ASD[ 20 ];
formatex( String, charsmax( String ), "\r[ Sistema de Reporte M-R ] \y%s \wa reportado a \y%s^n\wRazon:\y %s", Name[index], Name[ PlayerIDSelected[index] ], OpcionesReporte[ OptionSelected[index] ] );
menu = menu_create( String , "menu_adm" );
formatex( ASD, 19, "%d %d", index, get_user_userid(index) );
menu_additem( menu , "\wVer Detalles" , ASD );
menu_additem( menu , "\rSancionar directamente" , ASD );
menu_additem( menu , "\yIgnorar^n", "3" );
for( i = 1 ; i <= MaxPlayers ; ++i )
{
if( !is_user_connected(i) || !is_user_admin(i) ) continue;
menu_display( i , menu );
}
CreateLog( index );
Reportes[ index ] = true;
}
public menu_adm( index , menu , item )
{
if( item == MENU_EXIT || item == 2 )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
static varsinuso, buffer[12], szid[3], szuserid[9], playerid, userid;
menu_item_getinfo(menu, item, varsinuso, buffer, charsmax(buffer), _, _, varsinuso);
parse(buffer, szid, charsmax(szid), szuserid, charsmax(szuserid));
playerid = str_to_num(szid);
userid = str_to_num(szuserid);
if( !is_user_connected( playerid )
|| userid != get_user_userid( playerid ) )
{
client_print( index , print_chat, "[ Sistema de Reporte M-R ] El jugador que hizo el reporte se ha desconectado. (%d)", playerid );
return PLUGIN_HANDLED;
}
PlayerIDSelected[ index ] = PlayerIDSelected[ playerid ];
UserIDSelected[ index ] = UserIDSelected[ playerid ];
OptionSelected[ index ] = OptionSelected[ playerid ];
switch( item )
{
case 0:
{
static String[ 3500 ], Ip[2][20], len; len = 0
get_user_ip( playerid , Ip[0], 19, 1 );
get_user_ip( PlayerIDSelected[index] , Ip[1], 19, 1 );
len += formatex( String[len], sizeof String-len, "<!doctype html>\
<html>\
<head>\
<title>Reportes</title>\
</head>\
<body bgcolor=^"000000^">\
<h1><span style=^"color:#00FF00;^">Reporte</span></h1>\
<p><span style=^"color:#FF0000;^"><strong>====================================================</strong></span></p>\
<p> </p>" );
len += formatex( String[len], sizeof String-len, "<p><span style=^"color:#40E0D0;^">%s</span>\
<span style=^"color:#FFF0F5;^">(</span><span style=^"color:#40E0D0;^">%s</span>\
<span style=^"color:#FFF0F5;^">)(</span><span style=^"color:#40E0D0;^">%s</span>", Name[playerid], Ip[0], Authid[playerid] );
len += formatex( String[len], sizeof String-len,"<span style=^"color:#FFF0F5;^">)</span><span style=^"color:#00FF00;^">Ha reportado a </span>\
<span style=^"color:#40E0D0;^">%s</span>\
<span style=^"color:#FFF0F5;^">(</span><span style=^"color:#40E0D0;^">%s</span>", Name[PlayerIDSelected[index]], Ip[1] );
len += formatex( String[len], sizeof String-len,"<span style=^"color:#FFF0F5;^">)(</span><span style=^"color:#40E0D0;^">%s</span>\
<span style=^"color:#FFF0F5;^">)</span></p>",
Authid[PlayerIDSelected[index]] );
len += formatex(String[len], sizeof String-len, "<p> </p>\
<p><span style=^"color:#00FF00;^">Razon</span>:\
<span style=^"color:#40E0D0;^">%s</span></p>", OpcionesReporte[ OptionSelected[ index ] ] );
len += formatex(String[len], sizeof String-len, "<p><span style=^"color:#00FF00;^">Mas Info:</span></p><p> </p>\
<p><span style=^"color:#FF0000;^"><strong>============================\
========================</strong></span></p><p> </p>" );
len += formatex(String[len], sizeof String-len, "<p><span style=^"color:#00FF00;^">%s</span></p><p> </p>\
<p><span style=^"color:#FF0000;^"><strong>====================================================</strong></span></p>",
PlayerDetalles[ index ]);
len += formatex( String[len], sizeof String-len, "<p> </p><p><span style=^"color:#FFF0F5;^">Si tu ban fue mal dado ir: </span></p>\
<p><span style=^"color:#FFF0F5;^">fb</span></p>\
<p><span style=^"color:#FFF0F5;^">fb</span></p>\
<p><span style=^"color:#FFF0F5;^">fb</span></p>\
</body></html>" );
show_motd( index, String, "Reporte" );
ShowMenuSancion( index );
}
case 1: ShowMenuSancion( index );
}
ResetVars( playerid );
menu_destroy( menu );
return PLUGIN_HANDLED;
}
/*
Menu Sancion
*/
ShowMenuSancion( index )
{
static menu, String[128];
formatex( String, 127, "\r[ Sistema de Reporte M-R ] \wElige la opcion a aplicar contra:^n^t^t^t^t\y%s", Name[ PlayerIDSelected[index] ] );
menu = menu_create( String , "menu_sancion" );
menu_additem( menu , "Mandar Advertencia^n^t^t\dSe abre un MOTD con la advertencia^n", "1" );
menu_additem( menu , "Banear^n^t^t\dUsted especifica los minutos a banear^n^n", "2" );
menu_additem( menu , "Kickear", "3" );
menu_display( index , menu );
}
public menu_sancion( index , menu , item )
{
switch( item )
{
case 0:
{
SendAdvert( index );
client_print( index, print_chat, "[ Sistema de Reporte M-R ] Se envio una advertencia a %s", Name[PlayerIDSelected[index]] );
}
case 1: ShowMenuMinutes( index );
case 2: client_cmd( index, "amx_kick ^"%s^" ^"%s^"", Name[PlayerIDSelected[index]], OpcionesReporte[ OptionSelected[index] ]);
case MENU_EXIT: { menu_destroy( menu ); return PLUGIN_HANDLED; }
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
/*
Choose Minutes Ban
*/
ShowMenuMinutes( index )
{
static i, String[128], menuban; menuban = menu_create( "\r[ Sistema de Reporte M-R ] \wCuantos minutos?", "menu_ban" );
for( i = 0; i < sizeof Minutos_de_ban; ++i)
{
if( i == 0 )
formatex( String, charsmax( String ), "\rPermanente" );
else
formatex( String, charsmax( String ), "%d Minutos", Minutos_de_ban[i] );
menu_additem( menuban, String, "" );
}
menu_display( index , menuban );
}
public menu_ban( index, menu, item )
{
if( item != MENU_EXIT )
{
PlayerMinutesBan[ index ] = Minutos_de_ban[item];
ShowConfirmMenu( index );
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
/*
Ban Confirm Menu
*/
ShowConfirmMenu( index )
{
static menu, String[128], minutes[50];
if( PlayerMinutesBan[index] == 0 )
formatex( minutes, charsmax(minutes), "\rPermanente" );
else
formatex( minutes, charsmax(minutes), "\r%d Minutos", PlayerMinutesBan[index] );
formatex( String, charsmax( String ), "\r[ Sistema de Reporte M-R ] \wEstas seguro de esta accion ?^n\y\dBanear \y%s %s", Name[ PlayerIDSelected[index] ], minutes );
menu = menu_create( String, "menu_confirm" );
menu_additem( menu, "Si, estoy seguro^n", "1" );
menu_additem( menu, "No, Re Introducir tiempo de ban", "2" );
menu_additem( menu, "No, Solo enviar una advertencia", "3" );
menu_display( index, menu );
}
public menu_confirm( index , menu , item )
{
switch( item )
{
case 0:
{
client_cmd( index, "amx_banip ^"%s^" ^"%d^" ^"%s^"",
Name[ PlayerIDSelected[index] ], PlayerMinutesBan[ index ], OpcionesReporte[ OptionSelected[index] ] );
ResetVars( index );
}
case 1: ShowMenuMinutes( index );
case 2:
{
SendAdvert( index );
client_print( index, print_chat, "[ Sistema de Reporte M-R ] Se envio una advertencia a %s", Name[PlayerIDSelected[index]] );
ResetVars(index);
}
case MENU_EXIT:
{
menu_destroy( menu );
ResetVars(index);
return PLUGIN_HANDLED;
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
/*
Stocks 'N Internal Functions
*/
SendAdvert( index )
{
static String[ 2500 ], len; len = 0;
len += formatex( String[len], sizeof String-len, "<!doctype html><html><head>\
<title>Advertencia</title></head><body bgcolor=^"#000000^">\
<h1 style=^"text-align: center;^"><span style=^"color:#FF0000;^">Advertencia</span></h1>");
len += formatex( String[len], sizeof String-len, "<p><span style=^"color:#00FF00;^">====================================================</span></p>\
<p><span style=^"color:#FFF0F5;^">El admin</span><span style=^"color:#00FF00;^"> </span><span style=^"color:#FF0000;^">%s</span><span style=^"color:#00FF00;^">", Name[index] );
len += formatex( String[len], sizeof String-len, "</span><span style=^"color:#FFF0F5;^">te ha enviado una</span><span style=^"color:#00FF00;^"> </span><span style=^"color:#B22222;^">advertencia</span>\
<span style=^"color:#FFF0F5;^">, ya que recibio un reporte </span></p><p><span style=^"color:#FFF0F5;^">sobre ti.</span></p>");
len += formatex( String[len], sizeof String-len, "<p> </p><p><span style=^"color:#FFF0F5;^">Razon:</span><span style=^"color:#00FF00;^">\
</span><span style=^"color:#FF0000;^">%s</span></p>\
<p><span style=^"color:#00FF00;^">====================================================</span></p>"
, OpcionesReporte[ OptionSelected[index] ] );
len += formatex( String[len], sizeof String-len, "<p><span style=^"color:#FFF0F5;^">Si tu ban fue mal dado ir: </span></p>\
<p><span style=^"color:#FFF0F5;^">fb</span></p>\
<p><span style=^"color:#FFF0F5;^">fb</span></p>\
<p><span style=^"color:#FFF0F5;^">fb</span></p>\
</body></html>");
show_motd( PlayerIDSelected[index], String, "Advertencia" );
}
CreateLog( index )
{
static String[ 512 ], Name[2][32], Ip[2][20], authid[2][35];
get_user_name( index , Name[0], 31 );
get_user_name( PlayerIDSelected[index] , Name[1], 31 );
get_user_ip( index , Ip[0], 19, 1 );
get_user_ip( PlayerIDSelected[index] , Ip[1], 19, 1 );
get_user_authid( index, authid[0], 34 );
get_user_authid( PlayerIDSelected[index], authid[1], 34 );
formatex( String, charsmax(String), "^n^n%s <%s><%s> Ha reportado a %s <%s><%s> Razon: %s^nMas Info:^n%s^n==========================",
Name[0], Ip[0], authid[0], Name[1], Ip[1], authid[1], OpcionesReporte[ OptionSelected[index] ], PlayerDetalles[index] );
log_to_file( ReportFile, String );
}
ResetVars( index )
{
inMessageMode[ index ] = Reportes[ index ] = false;
OptionSelected[ index ] = -1;
PlayerIDSelected[ index ] = UserIDSelected[ index ] = PlayerMinutesBan[index] = 0;
PlayerDetalles[ index ][0] = EOS;
}
stock is_valid_msg(index)
{
if ( strlen( PlayerDetalles[index] ) < MIN_CARACTERES )
return false;
if( containi( PlayerDetalles[index], "%" ) != -1 )
return false;
if( !is_user_connected(PlayerIDSelected[index]) || UserIDSelected[ index ] != get_user_userid( PlayerIDSelected[index]) )
return false;
return true;
}