Crear un log de comandos
#1

Hola, estoy un poco enredado con este tema...
En mi server existe el comando /dardinero que le da dinero a los demбs jugadores, y resulta que hay administradores que abusan de eso. Y me gustarнa que cada vez que se use ese comando se cree en un *.txt y con una razуn...
Este el es comando:
pawn Код:
if(strcmp(cmd, "/dardinero", true) == 0)
        {
            new moneys;
            cmd = strtok(cmdtext, idx);
            if(!strlen(cmd))
            {
                SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad]");
                return 1;
            }
            giveplayerid = strval(cmd);
            cmd = strtok(cmdtext, idx);
            if(!strlen(cmd))
            {
                SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad]");
                return 1;
            }
            moneys = strval(cmd);
            if (IsPlayerConnected(giveplayerid))
            {
                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                GetPlayerName(playerid, sendername, sizeof(sendername));
                moneyhax_GivePlayerMoney(giveplayerid, moneys);
                format(string, sizeof(string), "Le has dado $%d a %s[ID: %d]",moneys,giveplayer,giveplayerid);
                SendClientMessage(playerid,COLOR_ADMIN,string);
                format(string, sizeof(string), "AdminCmd: %s [ID: %d] Te dio $%d",sendername,playerid,moneys);
                SendClientMessage(giveplayerid,COLOR_ADMIN,string);
                format(string, sizeof(string), "%s le dio $%d a %d",sendername,moneys,giveplayer); //este es lo que quiero que diga en el *.txt
                SaveToFile("plata",string);

            } else {
                format(string, sizeof(string), "A quien le esperas dar dinero si el ID %d No esta conectado.", giveplayerid);
                SendClientMessage(playerid, COLOR_WHITE, string);
            }
            return 1;
        }
Intentй hacerlo, copiando el kick log de ladmin... pero no resultу...
Ojala me puedan ayudar.
Reply
#2

Explicб cual es el problema, їNo se te crea el archivo?, їTe da error?, o cuбl.
Reply
#3

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Explicб cual es el problema, їNo se te crea el archivo?, їTe da error?, o cuбl.
En verdad no es tanto un problema, si no mas una ayuda.
Resulta que cuando intente hacerlo por mi cuenta... si tenia muchos errores (no creaba el archivo, el comando en si no funcionaba, etc...), por eso vine a acб a ver si ustedes me podнan guiar para poder hacer esto de forma correcta.


______

Lo que quiero hacer, bбsicamente es que cuando alguien (Administrador) use el comando /dardinero. Que se cree una linea en un .txt... por ejemplo

Код:
Admin godoy32 le dio a mOcOGraNde $1500000, porquй Tenia hambre
No se si me explique mejor ahora
pd: la imaginaciуn que tengo xD
Reply
#4

Probб asн:

pawn Код:
// CMD
    if(strcmp(cmd, "/dardinero", true) == 0)
    {
        new moneys;
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad]");
            return 1;
        }
        giveplayerid = strval(cmd);
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad]");
            return 1;
        }
        moneys = strval(cmd);
        if (IsPlayerConnected(giveplayerid))
        {
            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            moneyhax_GivePlayerMoney(giveplayerid, moneys);
            format(string, sizeof(string), "Le has dado $%d a %s[ID: %d]",moneys,giveplayer,giveplayerid);
            SendClientMessage(playerid,COLOR_ADMIN,string);
            format(string, sizeof(string), "AdminCmd: %s [ID: %d] Te dio $%d",sendername,playerid,moneys);
            SendClientMessage(giveplayerid,COLOR_ADMIN,string);
            format(string, sizeof(string), "%s le dio $%d a %d",sendername,moneys,giveplayer); //este es lo que quiero que diga en el *.txt
            new File:log = fopen("plata.txt", io_append);
            fwrite(log, string);
            fclose(log);
        }
        else
        {
            format(string, sizeof(string), "A quien le esperas dar dinero si el ID %d No esta conectado.", giveplayerid);
            SendClientMessage(playerid, COLOR_WHITE, string);
        }
        return 1;
    }
Reply
#5

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Probб asн:

pawn Код:
// CMD
    if(strcmp(cmd, "/dardinero", true) == 0)
    {
        new moneys;
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad]");
            return 1;
        }
        giveplayerid = strval(cmd);
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad]");
            return 1;
        }
        moneys = strval(cmd);
        if (IsPlayerConnected(giveplayerid))
        {
            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            moneyhax_GivePlayerMoney(giveplayerid, moneys);
            format(string, sizeof(string), "Le has dado $%d a %s[ID: %d]",moneys,giveplayer,giveplayerid);
            SendClientMessage(playerid,COLOR_ADMIN,string);
            format(string, sizeof(string), "AdminCmd: %s [ID: %d] Te dio $%d",sendername,playerid,moneys);
            SendClientMessage(giveplayerid,COLOR_ADMIN,string);
            format(string, sizeof(string), "%s le dio $%d a %d",sendername,moneys,giveplayer); //este es lo que quiero que diga en el *.txt
            new File:log = fopen("plata.txt", io_append);
            fwrite(log, string);
            fclose(log);
        }
        else
        {
            format(string, sizeof(string), "A quien le esperas dar dinero si el ID %d No esta conectado.", giveplayerid);
            SendClientMessage(playerid, COLOR_WHITE, string);
        }
        return 1;
    }
Perfecto!
ahora lo ultimo.... para que sea /dardinero [id] [cantidad] [razon], como lo podrнa hacer??
Reply
#6

Intentб asн:

pawn Код:
//CMD
    if(strcmp(cmd, "/dardinero", true) == 0)
    {
        new moneys;
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad] [razуn]");
            return 1;
        }
        giveplayerid = strval(cmd);
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad] [razуn]");
            return 1;
        }
        moneys = strval(cmd);
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad] [razуn]");
            return 1;
        }
        if (IsPlayerConnected(giveplayerid))
        {
            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            moneyhax_GivePlayerMoney(giveplayerid, moneys);
            format(string, sizeof(string), "Le has dado $%d a %s[ID: %d]",moneys,giveplayer,giveplayerid);
            SendClientMessage(playerid,COLOR_ADMIN,string);
            format(string, sizeof(string), "AdminCmd: %s [ID: %d] Te dio $%d",sendername,playerid,moneys);
            SendClientMessage(giveplayerid,COLOR_ADMIN,string);
            format(string, sizeof(string), "%s le dio $%d a %d, razуn: %s\n", sendername, moneys, giveplayer, cmd);
            new File:log = fopen("plata.txt", io_append);
            fwrite(log, string);
            fclose(log);
        }
        else
        {
            format(string, sizeof(string), "A quien le esperas dar dinero si el ID %d No esta conectado.", giveplayerid);
            SendClientMessage(playerid, COLOR_WHITE, string);
        }
        return 1;
    }
Le agreguй \n para que haga salto de lнnea en el archivo.
Reply
#7

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Intentб asн:

pawn Код:
//CMD
    if(strcmp(cmd, "/dardinero", true) == 0)
    {
        new moneys;
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad] [razуn]");
            return 1;
        }
        giveplayerid = strval(cmd);
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad] [razуn]");
            return 1;
        }
        moneys = strval(cmd);
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad] [razуn]");
            return 1;
        }
        if (IsPlayerConnected(giveplayerid))
        {
            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            moneyhax_GivePlayerMoney(giveplayerid, moneys);
            format(string, sizeof(string), "Le has dado $%d a %s[ID: %d]",moneys,giveplayer,giveplayerid);
            SendClientMessage(playerid,COLOR_ADMIN,string);
            format(string, sizeof(string), "AdminCmd: %s [ID: %d] Te dio $%d",sendername,playerid,moneys);
            SendClientMessage(giveplayerid,COLOR_ADMIN,string);
            format(string, sizeof(string), "%s le dio $%d a %d, razуn: %s\n", sendername, moneys, giveplayer, cmd);
            new File:log = fopen("plata.txt", io_append);
            fwrite(log, string);
            fclose(log);
        }
        else
        {
            format(string, sizeof(string), "A quien le esperas dar dinero si el ID %d No esta conectado.", giveplayerid);
            SendClientMessage(playerid, COLOR_WHITE, string);
        }
        return 1;
    }
Le agreguй \n para que haga salto de lнnea en el archivo.
Muchas gracias! Funciona todo perfecto
ya te aсadi reputacion
Reply
#8

Tengo un pequeсo problema... que cuando pongo por ejemplo /dardinero 1 500 estoy probando
en el plata.txt solo sale godoy32 le dio $0 a vichoo, razуn: estoy
es decir, solo sale 1 palabra...
Reply
#9

Si, error :P.

pawn Код:
//
    if(strcmp(cmd, "/dardinero", true) == 0)
    {
        new moneys;
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad] [razуn]");
            return 1;
        }
        giveplayerid = strval(cmd);
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad] [razуn]");
            return 1;
        }
        moneys = strval(cmd);
        new length = strlen(cmdtext);
        while ((idx < length) && (cmdtext[idx] <= ' '))
        {
            idx++;
        }
        new offset = idx;
        new result[128];
        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
        {
            result[idx - offset] = cmdtext[idx];
            idx++;
        }
        result[idx - offset] = EOS;
        if(!strlen(result))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Usa: /dardinero [id del jugador] [cantidad] [razуn]");
            return 1;
        }
        if (IsPlayerConnected(giveplayerid))
        {
            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            moneyhax_GivePlayerMoney(giveplayerid, moneys);
            format(string, sizeof(string), "Le has dado $%d a %s[ID: %d]",moneys,giveplayer,giveplayerid);
            SendClientMessage(playerid,COLOR_ADMIN,string);
            format(string, sizeof(string), "AdminCmd: %s [ID: %d] Te dio $%d",sendername,playerid,moneys);
            SendClientMessage(giveplayerid,COLOR_ADMIN,string);
            format(string, sizeof(string), "%s le dio $%d a %d, razуn: %s\n", sendername, moneys, giveplayer, result);
            new File:log = fopen("plata.txt", io_append);
            fwrite(log, string);
            fclose(log);
        }
        else
        {
            format(string, sizeof(string), "A quien le esperas dar dinero si el ID %d No esta conectado.", giveplayerid);
            SendClientMessage(playerid, COLOR_WHITE, string);
        }
        return 1;
    }
Reply
#10

Ahora si
No quiero ser mal agradecido ni nada de eso...
Pero no me hace el salto de linea... queda todo recorrido en una sola :S
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)