SA-MP Forums Archive
every command is bugged - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: every command is bugged (/showthread.php?tid=371820)



every command is bugged - MarkoN - 24.08.2012

Ok , i made some commands ex.
pawn Код:
CMD:report(playerid, params[])
{
    new id, ime[MAX_PLAYER_NAME], ime2[MAX_PLAYER_NAME], razlog[64], poruka[256], porukalog[256], IP[16], IP2[16];

    GetPlayerIp(playerid, IP, sizeof(IP));
    GetPlayerIp(id, IP2, sizeof(IP2));

    GetPlayerName(playerid, ime, sizeof(ime));
    GetPlayerName(id, ime2, sizeof(ime2));
   
    if(iIgraca[playerid][Admin] < iIgraca[id][Admin]) return SendClientMessage(playerid, BOJA_CRVENA, "• Cant report and admin with higher level than you.");
    if(sscanf(params, "ds[64]", id, razlog)) return SendClientMessage(playerid, BOJA_CRVENA, "• Error. Use /report) [ID] [reason]");
    if(strlen(razlog) > 30) return SendClientMessage(playerid, BOJA_CRVENA,"• Reason is too long (Max. 30 letters)");
   
    format(poruka, sizeof(poruka), "Report • %s[%d], %s[%d] Reason • %s", ime, playerid, ime2, id, razlog);
    format(porukalog, sizeof(porukalog), "%s [IP : %d], reported %s [IP : %d] Razlog : %s", ime, IP, ime2, IP, razlog);

    PosaljiPorukuAdminima(BOJA_ZLATNA, poruka); // sends admins the message

    new File:Prijave;
    Prijave = fopen("prijave.log", io_append);
    fwrite(Prijave, porukalog);

    fclose(Prijave);
    SendClientMessage(playerid, BOJA_ЋUTA, "• Success. Youre message was logged, and sent to online administrators.");
    return 1;
}
But heres the problem, everytime ID 0 uses the commands it returns to him , like :
MarkoN[0] reported MarkoN[1] , but i actually repoted Wolf, and when he repots me its normal
Wolf[1] repoted MarkoN[0]. idk could be a sscanf bug or something. I updated everything , even downloaded the R2 server, but no use, every command does it like that... I changed the u param to d , that didnt work eather, and heres the log.
Код:
MarkoN [IP : 49] reported MarkoN [IP : 49] Reason : test
Wolf [IP : 48] reported MarkoN [IP : 49] Reason : test



Re: every command is bugged - aintaro - 24.08.2012

Let me know if this works:
Код:
CMD:report(playerid, params[])
{
    new id, ime[MAX_PLAYER_NAME], ime2[MAX_PLAYER_AME], razlog[64], poruka[256], porukalog[256], IP[16], IP2[16];
    GetPlayerName(playerid, ime, sizeof(ime));
    if(iIgraca[playerid][Admin] < iIgraca[id][Admin]) return SendClientMessage(playerid, BOJA_CRVENA, "• Cant report and admin with higher level than you.");
    if(sscanf(params, "us[64]", id, razlog)) return SendClientMessage(playerid, BOJA_CRVENA, "• Error. Use /report) [ID] [reason]");
    if(strlen(razlog) > 30) return SendClientMessage(playerid, BOJA_CRVENA,"• Reason is too long (Max. 30 letters)");
    format(poruka, sizeof(poruka), "Report • %s[%d], %s[%d] Reason • %s", ime, playerid, ime2, id, razlog);
    format(porukalog, sizeof(porukalog), "%s [IP : %d], reported %s [IP : %d] Razlog : %s", ime, IP, ime2, IP, razlog);
    PosaljiPorukuAdminima(BOJA_ZLATNA, poruka); // sends admins the message
    new File:Prijave;
    Prijave = fopen("prijave.log", io_append);
    fwrite(Prijave, porukalog);

    fclose(Prijave);
    SendClientMessage(playerid, BOJA_ЋUTA, "• Success. Youre message was logged, and sent to online administrators.");
    return 1;
}



Re: every command is bugged - MarkoN - 24.08.2012

you just changed the sscanf param 'd' into 'u' , wich wont work eather , thats why i tried changing it to d


Re: every command is bugged - Memoryz - 24.08.2012

Move this to the top of your command, you are checking information which will always be set to 0, because you didn't process params yet:

pawn Код:
if(sscanf(params, "ds[64]", id, razlog)) return SendClientMessage(playerid, BOJA_CRVENA, "• Error. Use /report) [ID] [reason]");
So basically, it's grabbing ID 0s name, which would be you, try it out, let him join as ID0, and you as ID1.


Re: every command is bugged - MarkoN - 24.08.2012

thanks, i didnt even know that you have to process params first. i reped you.