Allied Modders en español

Versión completa: Ayuda con un error con un plugins de reportes
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
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

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[] = { 051015203060120600 };

new 
MaxPlayers;
new 
inMessageMode33 ], OptionSelected33 ] , PlayerIDSelected33 ] , UserIDSelected33 ], 
PlayerDetalles33 ][ 128 ], PlayerMinutesBan33 ], Reportes33 ], Name33 ][ 32 ], Authid33 ][ 35 ];

/* ===========================================================================​=====================
                Main Forwards
  ===========================================================================​=====================*/
  
public plugin_init() 
{
    
register_plugin"New Report System""1.0""FloresMagon & kikizon" );
    
    static 
k;
    for( 
sizeof Commands ; ++)
        
register_clcmdCommands] , "clcmdReport" );
        
    
register_clcmdCommandMessageMode "clcmdDetalles" );
    
register_clcmd"say /reescribir""clcmdReescribir" );
    
register_clcmd"say /players""ShowMenuPlayers" );
    
    
MaxPlayers get_maxplayers();
}

public 
client_putinserverindex )
{
    
get_user_nameindexName[index], 31 );
    
get_user_authidindexAuthid[index], 34 );
    
    
ResetVarsindex );
}

public 
client_infochangedindex )
{
    
get_user_infoindex"name"Name[index], 31 ); 
}

/* ===========================================================================​=====================
                    Clcmds
  ===========================================================================​=====================*/
  
public clcmdReportindex )
{
    if( 
Reportesindex ] )
    {
        
client_printindexprint_center"*** Ya hiciste tu reporte en este mapa ***" );
        return 
PLUGIN_HANDLED;
    }
    
    
    static 
menuk
    
menu menu_create"\r[ Sistema de Reporte M-R ] \wSelecciona una opcion:""menu_report" );
    
    for( 
sizeof OpcionesReporte ; ++)
        
menu_additemmenu OpcionesReporte[k] , "" );
    
    
menu_displayindex menu );
    return 
PLUGIN_HANDLED;
}

public 
menu_reportindex menu item )
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroymenu );
        return 
PLUGIN_HANDLED;
    }
    
    
    
OptionSelectedindex ] = item;
    
ShowMenuPlayersindex );
    
    
menu_destroymenu );
    return 
PLUGIN_HANDLED;
}

public 
clcmdReescribirindex )
{
    if( !
inMessageModeindex ] )
    {
        
client_printindexprint_chat"No habias completado el reporte" );
        
client_printindexprint_chat"Para volver a hacer el reporte tipea, /report " );
        return 
PLUGIN_HANDLED;
    }
        
    
client_cmdindex "messagemode ^"%s^""CommandMessageMode );
    return 
PLUGIN_HANDLED;
}

public 
clcmdDetallesindex )
{
    if( !
inMessageModeindex ] ) 
    {
        
client_printindexprint_center"*** NO PERMITIDO ***" );
        return 
PLUGIN_HANDLED;
    }
    
    
    
read_argsPlayerDetallesindex ], 127 ); 
    
remove_quotesPlayerDetallesindex ] ) ; 
    
trimPlayerDetallesindex ] );
    
    if( !
is_valid_msg(index) )
    {
        
client_printindex print_chat "[ Sistema de Reporte M-R ] Tu mensaje contiene errores" );
        
client_printindex print_chat "[ Sistema de Reporte M-R ] Si deseas volver a escribir, tipea /reescribir" );
        
PlayerDetallesindex ] = "^0";
        return 
PLUGIN_HANDLED;
    }
    
    
SendReport(index);
    return 
PLUGIN_HANDLED;
}

/* ===========================================================================​=====================
                    Menus
  ===========================================================================​=====================*/
  
  
  
 /*
  
        Players Menu
        
*/


public ShowMenuPlayersindex )
{
    static 
IDS[20], menui;
    
menu menu_create("\r[ Sistema de Reporte M-R] \wSelecciona a quien quieres reportar:""menu_players" );
    
    for( 
<= MaxPlayers ; ++)
    {
        if( !
is_user_connected(i) || == index ) continue;
        
        
formatexIDS charsmax(IDS) , "%d %d" get_user_userid(i) )        
        
menu_additemmenu Name[i] , IDS );
    }
    
    
menu_displayindex menu );    
}

public 
menu_playersindex menu item )
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroymenu );
        return 
PLUGIN_HANDLED;
    }
    
    static 
varsinusobuffer[12], szid[3], szuserid[9];
    
menu_item_getinfo(menuitemvarsinusobuffercharsmax(buffer), __varsinuso);    
    
parse(bufferszidcharsmax(szid), szuseridcharsmax(szuserid));
    
    
PlayerIDSelectedindex ] = str_to_num(szid);
    
UserIDSelectedindex ] = str_to_num(szuserid);
    
    if( !
is_user_connectedPlayerIDSelectedindex ] )
    || 
UserIDSelectedindex ] != get_user_useridPlayerIDSelected[index]) )
    {
        
client_printindex print_chat"[ Sistema de Reporte M-R ] El jugador se ha desconectado. (%d)"PlayerIDSelectedindex ] );
        return 
PLUGIN_HANDLED;
    }
    
    
    
inMessageModeindex ] = true;
    
client_cmdindex "messagemode ^"%s^""CommandMessageMode );
    
    
menu_destroymenu );
    return 
PLUGIN_HANDLED;
}

/*

        Send Report to admin ( Menu )
        
*/

SendReport(index)
{
    static 
imenuString300 ], ASD20 ];
    
    
formatexStringcharsmax( String ), "\r[ Sistema de Reporte M-R ] \y%s \wa reportado a \y%s^n\wRazon:\y %s"Name[index], NamePlayerIDSelected[index] ], OpcionesReporteOptionSelected[index] ] );
    
menu menu_createString "menu_adm" );
    
    
formatexASD19"%d %d"indexget_user_userid(index) );
    
menu_additemmenu "\wVer Detalles" ,  ASD );
    
menu_additemmenu "\rSancionar directamente" ASD );
    
    
menu_additemmenu "\yIgnorar^n""3" );
    
    for( 
<= MaxPlayers ; ++)
    {
        if( !
is_user_connected(i) || !is_user_admin(i) ) continue;
        
        
menu_displaymenu );
    }
    
    
CreateLogindex );    
    
Reportesindex ] = true;
}

public 
menu_admindex menu item )
{
    if( 
item == MENU_EXIT || item == )
    {
        
menu_destroymenu );
        return 
PLUGIN_HANDLED;
    }
    
    static 
varsinusobuffer[12], szid[3], szuserid[9], playeriduserid;
    
menu_item_getinfo(menuitemvarsinusobuffercharsmax(buffer), __varsinuso);    
    
parse(bufferszidcharsmax(szid), szuseridcharsmax(szuserid));
    
    
playerid str_to_num(szid);
    
userid str_to_num(szuserid);
    
    if( !
is_user_connectedplayerid )
    || 
userid != get_user_useridplayerid ) )
    {
        
client_printindex print_chat"[ Sistema de Reporte M-R ] El jugador que hizo el reporte se ha desconectado. (%d)"playerid );
        return 
PLUGIN_HANDLED;
    }
    
    
PlayerIDSelectedindex ] = PlayerIDSelectedplayerid ];
    
UserIDSelectedindex ] = UserIDSelectedplayerid ];
    
OptionSelectedindex ] = OptionSelectedplayerid ];
    
    
    switch( 
item )
    {
        case 
0
        {
            static 
String3500 ], Ip[2][20], lenlen 0
            get_user_ip
playerid Ip[0], 19);
            
get_user_ipPlayerIDSelected[index] , Ip[1], 19);
    
            
len += formatexString[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>&nbsp;</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>&nbsp;</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>&nbsp;</p>\
            <
p><span style=^"color:#FF0000;^"><strong>============================\
            ========================</
strong></span></p><p>&nbsp;</p>" );
            
            len += formatex(String[len], sizeof String-len, "
<p><span style=^"color:#00FF00;^">%s</span></p><p>&nbsp;</p>\
            <
p><span style=^"color:#FF0000;^"><strong>====================================================</strong></span></p>",
            PlayerDetalles[ index ]);
            
            len += formatex( String[len], sizeof String-len, "
<p>&nbsp;</p><p><span style=^"color:#FFF0F5;^">Si tu ban fue mal dado ir:&nbsp;</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, "
\rSistema de Reporte M-] \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-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( "
\rSistema de Reporte M-] \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 ), "
\rSistema de Reporte M-] \wEstas seguro de esta accion ?^n\y\dBanear \y%%s", Name[ PlayerIDSelected[index] ], minutes );
    menu = menu_create( String, "
menu_confirm" );
    
    menu_additem( menu, "
Siestoy seguro^n", "1" );
    menu_additem( menu, "
NoRe Introducir tiempo de ban", "2" );
    menu_additem( menu, "
NoSolo 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-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&nbsp;</span></p><p><span style=^"color:#FFF0F5;^">sobre ti.</span></p>");
            
    len += formatex( String[len], sizeof String-len, "
<p>&nbsp;</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:&nbsp;</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><%sHa reportado a %<%s><%sRazon: %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;

abri plugins.ini

cambia esto:
Cita:ReportSystem.amxx

por eso:
Cita:ReportSystem.amxx debug
!Hola!. Puse eso pero sigue diciendo esto con esto:


L 04/19/2018 - 18:23:14: [AMXX] Displaying debug trace (plugin "ReportSystem.amxx")
L 04/19/2018 - 18:23:14: [AMXX] Run time error 4: index out of bounds
L 04/19/2018 - 18:23:14: [AMXX] [0] ReportSystem.sma::SendAdvert (line 457)
L 04/19/2018 - 18:23:14: [AMXX] [1] ReportSystem.sma::menu_sancion (line 331)
URLs de referencia