[Duda]їArray Index out of Bounds?
#1

Bueno la cuestiуn es que estaba haciendo un sistema de tarjetas de credito para un SV y le metн un sistema que cuando te dan la tarjeta se te asigne una contraseсa al azar. Bueno la cuestiуn es que cuando hago el dialog para comparar si la contraseсa del jugador y la introducida es la correcta me larga estos 2 errores
pawn Код:
warning 213: tag mismatch
error 032: array index out of bounds (variable "PlayerInfo")
Las lнneas son:
pawn Код:
if(dialogid == DR)
    {
        if(!response)
        {
            SendClientMessage(playerid, -1, "OPERACIУN CANCELADA.");
        } else
        {
            if(strcmp(inputtext, PlayerInfo[playerid][tPassword], true) == 0)
            {
                ShowPlayerDialog(playerid, DELEGIR, DIALOG_STYLE_LIST, "Tarjeta\n\nElige tu operaciуn", "- Retirar\nBalance\nDepositar", "Aceptar", "Cancelar");
            }
            else
            {
                SendClientMessage(playerid, -1, "CONTRASEСA: INCORRECTA.");
            }
        }
    }
        //--------Acб siguen los dialogs
Y el comando donde se le asigna la contraseсa:
pawn Код:
if (strcmp("/dtarjeta", cmdtext, true, 10) == 0)
    {
        new tmp1[128], string[128], tmp2[128], idx,ejugador, cmd[128], cantidad;
        cmd = strtok(cmdtext, idx);
        tmp1 = strtok(cmdtext, idx);
        cantidad = strval(tmp2);
        ejugador = strval(tmp1);
        if(TarjetaInfo[playerid][pTarjeta] == false)
        {
            if(strlen(tmp1))
            {
                if(strlen(tmp2))
                {
                    if(GetPlayerMoney(ejugador) >= cantidad)
                    {
                       
                        TarjetaInfo[playerid][pTarjeta] = true;
                        TarjetaInfo[playerid][tMonto] = cantidad;
                        format(string, sizeof(string), "%s te dio una tarjeta con un valor de %d", PlayerName(playerid), cantidad);
                        SendClientMessage(ejugador, -1, string);
                        format(string, sizeof(string), "Diste a %s una tarjeta con valor de %d", PlayerName(ejugador), cantidad);
                        SendClientMessage(playerid, -1, string);
                        GivePlayerMoney(ejugador, -cantidad);
                        //ShowPlayerDialog(playerid, DTARJETA, DIALOG_STYLE_INPUT, "Tarjeta", " - - - - * Seguridad -  - - - - \nTarjeta: Ingresa la contraseсa de tu tarjeta.", "Aceptar", "Cancelar");
                        new rand;
                        rand = random(10000);
                        TarjetaInfo[playerid][tPassword] = rand;
                        format(string, sizeof(string), "El nъmero PIN de tu tarjeta es %d", TarjetaInfo[playerid][tPassword]);
                        SendClientMessage(ejugador, -1, string);
                        //TarjetaInfo[playerid][tPassword] = password;
                    } else SendClientMessage(playerid, -1, "El jugador no tiene suficente dinero para pagar la tarjeta");
                } else SendClientMessage(playerid, -1, "Uso: /dtarjeta <id> <monto>");
            } else SendClientMessage(playerid, -1, "Uso: /dtarjeta <id> <monto>");
        } else SendClientMessage(playerid, -1, "Ese jugador ya tiene una tarjeta!");
        return 1;
    }
//acб hay otros comandos...
Y el enum
[/pawn]
pawn Код:
enum tInfo
{
    tValor,
    tMonto,
    tResto,
    tPassword[128],
    tTotal,
    tCompra,
    bool:pTarjeta
};
new TarjetaInfo[MAX_PLAYERS][tInfo];
Agradecerнa su ayuda ya que intentй de todo y no pude solucionar ese error..
Reply
#2

Exactamente que lineas son las del error?
Reply
#3

Quote:
Originally Posted by xSDx
Посмотреть сообщение
Exactamente que lineas son las del error?
Exactamente la 127 lo que serнa
pawn Код:
if(strcmp(inputtext, PlayerInfo[playerid][tPassword], true) == 0)
Reply
#4

me parece que para comparar variables de texto debes usar strind, strinf (o como se escriba ahora no estoy en mi pc para ponerte un ejemplo si gustas esperar o puedes ver temas sobre eso
Reply
#5

Quote:
Originally Posted by xSDx
Посмотреть сообщение
me parece que para comparar variables de texto debes usar strind, strinf (o como se escriba ahora no estoy en mi pc para ponerte un ejemplo si gustas esperar o puedes ver temas sobre eso
A ver buscarй por ****** o por aquн. Gracias por la ayuda.
Reply
#6

Aqui esta: https://sampwiki.blast.hk/wiki/Strfind

Saludos y espero te sirva
Reply
#7

Quote:
Originally Posted by xSDx
Посмотреть сообщение
Aqui esta: https://sampwiki.blast.hk/wiki/Strfind

Saludos y espero te sirva
Hmm no lo pude solucionar. Intentй pero me tirу el mismo error. їAlguna idea de quй significa eso?
Reply
#8

Es PlayerInfo[playerid][tPassword] o TarjetaInfo[playerid][tPassword] ?
Reply
#9

Quote:
Originally Posted by enigma513
Посмотреть сообщение
Es PlayerInfo[playerid][tPassword] o TarjetaInfo[playerid][tPassword] ?
LOL mal, tenнas razуn. No me dн cuenta jaja que despistado que soy. Gracias.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)