[Duda] Comandos con sscanf2
#1

Hola amigos, me gustaria que me dierais comandos de admin pero con sscanf2
Esque eh probado con:

pawn Код:
dcmd_ban(playerid, params[])
{
    new
        id,
        reason[64];
    if (PlayerInfo[playerid][Admin] >= 3)
    {
    if (sscanf(params, "uz", id, reason)) SendClientMessage(playerid, 0xFF0000AA, "Usage: \"/ban <playerid/partname> <reason (optional)>\"");
    else if (id == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, "Player not found");
    else
    {
        BanEx(id, reason);
        format(reason, sizeof (reason), "%s Ha Sido Baneado Por el Administrador %s, %s %s.", id, nick(playerid), reason[0] ? (" Razуn: ") : (""), reason);
        MensajeTodos(0xFF0000AA, reason);
        Mensaje(playerid, 0x00FF00AA, "Jugador Baneado Correctamente.");
    }
    }
    return 1;
}

dcmd_kick(playerid, params[])
{
    new
        id,
        reason[64];
    if (PlayerInfo[playerid][Admin] >= 1)
    {
    if (sscanf(params, "dz", id, reason)) SendClientMessage(playerid, 0xFF0000AA, "Usa: \"/kick <playerid/partname> <reason (optional)>\"");
    else if (id == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, "Jugador desconectado!");
    else
    {
        Kick(id);
        format(reason, sizeof (reason), "%s Ha sido Kickeado Por el Administrador %s, %s %s.", id, nick(playerid), reason[0] ? (" Razуn: ") : (""), reason);
        MensajeTodos(0xFF0000AA, reason);
        Mensaje(playerid, 0x00FF00AA, "Jugador Kickeado.");
    }
    }
    return 1;
}
Y eh puesto en on player commandtext lo otro de dcmd(kick, etc);
Y no me iba, me salia Unknown Command :S

Saludos, ojala me ayuden.

P.D: Y si, soy admin :l
Reply
#2

postea la definicion del cmd dentro de OnPlayerConnect. y si queres los codigos, va en pedidos.

aca te corrijo un toque el primer cmd
pawn Код:
dcmd_ban(playerid, params[])
{
    new id, reason[128];
    if (PlayerInfo[playerid][Admin] >= 3){
        if (sscanf(params, "uz", id, reason)) return SendClientMessage(playerid, 0xFF0000AA, "Usage: \"/ban <playerid/partname> <reason (optional)>\"");
        SendClientMessage(playerid, 0xFF0000AA, "Player not found");
        BanEx(id, reason);
        format(reason, sizeof (reason), "%s Ha Sido Baneado Por el Administrador %s, %s %s.", id, nick(playerid), reason[0] ? (" Razуn: ") : (""), reason);
        MensajeTodos(0xFF0000AA, reason);
        Mensaje(playerid, 0x00FF00AA, "Jugador Baneado Correctamente.");
    }
    return 1;
}
Reply
#3

Dirй algo;

Actualizate simio.

dcmd es muy lento, te recomiendo ZCMD o y_commands
sscanf versiуn stock es lento e inseguro, mejor el plugin de sscanf que es rбpido, tiene mбs caracterнsticas, y es mбs seguro.

Fuera de eso, te dejo el kick, y espero que puedas hacer el ban:



pawn Код:
CMD:kick(playerid, params[])
{
    if (PlayerInfo[playerid][Admin] < 3)
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "No eres admin");
        return 1;
    }


    new
        szReason[128],
        iTarget
    ;

    if (!sscanf(params, "uS(No reason)[128]", iTarget, szReason))
    {
        SendClientMessage(iTarget, 0x00FF00FF, "Has sido kickeado, razуn:");
        SendClientMessage(iTarget, 0x00FF00FF, szReason);
        Kick(iTarget);
        return 1;
    }
    else
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "Uso: /kick <Jugador> <Razуn>");
        return 1;
    }


    return 1;
}

EDIT: Usбs el ternary operator y no podйs hacer un comando de kick/ban usando dcmd y sscanf o_o
Reply
#4

Pff, yo no entiendo como mierda hacer ese tipo de comandos es lo malo, pero bueh, lo intentare

P.D: Y quiero que diga: "%s Ha Sido kickeado por el Administrador %s, Razуn: %s."
Reply
#5

Quote:
Originally Posted by Pepot
Посмотреть сообщение
Pff, yo no entiendo como mierda hacer ese tipo de comandos es lo malo, pero bueh, lo intentare

P.D: Y quiero que diga: "%s Ha Sido kickeado por el Administrador %s, Razуn: %s."
usa format para eso. y como te dije antes
si queres codigos y q e lo hagan, va en pedidos.
Reply
#6

Quote:
Originally Posted by Pepot
Посмотреть сообщение
Pff, yo no entiendo como mierda hacer ese tipo de comandos es lo malo, pero bueh, lo intentare

P.D: Y quiero que diga: "%s Ha Sido kickeado por el Administrador %s, Razуn: %s."
A mн me molesta bastante que tenйs un cуdigo que sacaste de algъn otro script, si no te compila, ni lo mirбs y pedнs ayuda en el foro. Si compila lo testйas y no funciona, pedнs ayuda en el foro sin siquiera haber mirado el cуdigo.
Por esa razуn cuando algo funciona y querйs agregarle algo, pedнs ayuda en el foro.

No digo que estй mal pedir ayuda en el foro, pero si estas sacando pedazitos de script de todos lados y despuйs querйs modificarlos/fixearlos/lo que sea, intentб hacerlo vos con un poco de esfuerzo, porque despuйs tu script va a terminar siendo una compilaciуn de pedazitos de scripts de otros scripts y el resto va a ser hecho con nuestra ayuda. їquй es lo divertido de tener un script asн?

Esta vez no tengo ganas de insultar ni nada de eso, ya que cuando lo hice la vez anterior me diу una infracciуn Zamaroht ( xD), pero sуlo te digo que intentes mirar un poco los scripts y entender como funcionan, para que de paso tambiйn aprendas un poco, cuando me iniciй en PAWN aprendн lo bбsico mirando los GMs que traнa el server de 0.2.2, asi que sн es posible arreglar/modificar un comando mirando como funciona un ejemplo que te dieron.


Un saludo.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)