Ayuda, me frustro con estos comandos :'(
#1

Hola, miren estuve aprendiendo a utilizar sscanf y hice el siguiente comando, pero me salen dos errores:

pawn Код:
CMD:banear(playerid, params[])
{
    new Jugador[256], Razon[256], Razon2[256];
    if(PlayersData[playerid][Admin] >= 5) return SendClientMessage(playerid, Color_Gris, "No estas logueado como administrador");
    if(sscanf(params, "us", Jugador, Razon)) return SendClientMessage(playerid, Color_Gris, "Uso correcto: /ban [ID] [Razуn]");
    {
        new NombreDelJugador[MAX_PLAYER_NAME];
        GetPlayerName(Jugador, NombreDelJugador, 45);
        format(Razon2, sizeof(Razon2), "%s fue baneado por un administrador. Razуn: %s", NombreDelJugador, Razon);
        SendClientMessageToAll(Color_Gris, Razon2);
        Kick(Jugador);
    }
    return 1;
}
Y me saltan dos errores:

Код:
C:\Users\Servidor\Desktop\Escritorio\samp03e_svr_R2_win32\gamemodes\lvtdm.pwn(384) : error 035: argument type mismatch (argument 1)
C:\Users\Servidor\Desktop\Escritorio\samp03e_svr_R2_win32\gamemodes\lvtdm.pwn(387) : error 035: argument type mismatch (argument 1)
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


2 Errors.
Y son en estas dos lineas:
pawn Код:
Kick(Jugador);
pawn Код:
GetPlayerName(Jugador, NombreDelJugador, 45);
Ayudaa
Gracias de antemano
Reply
#2

Cambia jugador por playerid. Por cierto veo muy mal ese cmd...
Reply
#3

їY como estaria bien echo?.
Reply
#4

pawn Код:
CMD:banear(playerid, params[])
{
    if(PlayersData[playerid][Admin] >= 5) return SendClientMessage(playerid, Color_Gris, "No estas logueado como administrador");
    if(sscanf(params, "us[64]", params[0], params[1])) return SendClientMessage(playerid, Color_Gris, "Uso correcto: /ban [ID] [Razуn]");
    new Razon2[128];
    new NombreDelJugador[MAX_PLAYER_NAME];
    GetPlayerName(params[0], NombreDelJugador, MAX_PLAYER_NAME);
    format(Razon2, sizeof(Razon2), "%s fue baneado por un administrador. Razуn: %s", NombreDelJugador, params[1]);
    SendClientMessageToAll(Color_Gris, Razon2);
    Kick(params[0]);
    return 1;
}
Reply
#5

Gracias :3 +rep
Reply
#6

cambia:
pawn Код:
new Jugador[256]//string
por :
pawn Код:
new Jugador //integer
ese era tu problema...
saludos.
Reply
#7

Bue, puse el comando de Adri1 no daba ningun error, pero cuando lo fui a chequear no funciona :/
Reply
#8

pawn Код:
if(params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "El jugador no esta .");
Probб agregando esa linea antes de hacerle kick, tuve un problema parecido CREO que lo solucionй asн. No tiene mucho sentido pero probб.
Reply
#9

pawn Код:
CMD:banear(playerid, params[]){
    new jugador, data[144], razon[144], nombre[25];
    if(PlayersData[playerid][Admin] >= 5) return SendClientMessage(playerid, -1, "No estas logueado como administrador");
    if(sscanf(params, "rs[144]", jugador, razon)) return SendClientMessage(playerid, -1, "Uso correcto: /ban [ID] [Razуn]");
    if(!IsPlayerConnected(jugador)) return SendClientMessage(playerid, -1, "el jugador no esta conectado!.");
    if(jugador==INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "el jugador no es correcto!.");
    GetPlayerName(jugador, nombre, sizeof(nombre));
    format(data, sizeof(data), "%s fue baneado por un administrador. Razуn: %s", nombre, razon);
    SendClientMessageToAll(-1, data);
    Kick(jugador);
    return true;
}
NOTA: recuerda el bug del Kick --> https://sampwiki.blast.hk/wiki/Kick
Reply
#10

Ese comando estб muy extraсo, mira hice este, prueba y dime.

pawn Код:
command(banear, playerid, params[])
{
    if(PlayersData[playerid][Admin] >= 5)
    {
        new Mensaje[144], Razon[55];
        if(sscanf(params, "us[55]", params[0], Razon)) return SendClientMessage(playerid, Color_Gris, "Uso correcto: /ban [playerid] [razуn].");
        if(IsPlayerConnected(params[0]) && params[0] != INVALID_PLAYER_ID)
        {
            if(params[0] != playerid)
            {
                if(PlayersData[playerid][Admin] > PlayerInfo[params[0]][Admin])
                {
                    format(Mensaje, sizeof(Mensaje), "%s fue baneado por el administrador %s. Razon: %s.", Nombre(params[0]), Nombre(playerid), Razon);
                    SendClientMessageToAll(Color_Gris, Message);
                    Kick(params[0]); // cambialo por Ban(params[0]);
                }
                else
                {
                    SendClientMessage(playerid, Color_Gris, "No puedes banear a un administrador con mayor nivel que tu.");
                }
            }
            else
            {
                SendClientMessage(playerid, Color_Gris, "No puedes banearte tu mismo.");
            }
        }
        else
        {
            SendClientMessage(playerid, Color_Gris, "Player no conectado.");
        }
    }
    else
    {
        SendClientMessage(playerid, Color_Gris, "No estas logueado como administrador.");
    }
    return 1;
}

stock Nombre(playerid) // Saca el nombre en todo tu script con/ Nombre(playerid).
{
    new nombre[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nombre, MAX_PLAYER_NAME);
    return nombre;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)