[Ajuda] Sistema de /suspeito por nivel
#1

Bom, eu nгo consegui achar uma formula de fazer isso, gostaque que o sistema em vez de apenas pela descriзгo do crime, tivesse que escolher o nivel tambйm.
O comando seria assim;

Sintaxe: /su [id] [nivel] [descriзгo do crime]

Atualmente o comando estб assim;

pawn Код:
if(strcmp(cmd, "/suspect", true) == 0 || strcmp(cmd, "/su", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(Caido[playerid] == 1)
            {
                SendClientMessage(playerid, TEAM_CYAN_COLOR, "Vocк estб muito machucado.");
                return 1;
            }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, " (/su)spect [ id ] [Descriзгo do Crime]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if(PlayerInfo[playerid][pTanabolisante] > 0) return SendClientMessage(playerid,COLOR_GREY," Vocк estб suspenso!");
            if (gTeam[playerid] == 2 || IsACop(playerid))
            {
                if(IsPlayerConnected(giveplayerid))
                {
                    if(giveplayerid != INVALID_PLAYER_ID)
                    {
                            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            new length = strlen(cmdtext);
                            while ((idx < length) && (cmdtext[idx] <= ' '))
                            {
                                idx++;
                            }
                            new offset = idx;
                            new result[64];
                            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                            {
                                result[idx - offset] = cmdtext[idx];
                                idx++;
                            }
                            result[idx - offset] = EOS;
                            if(!strlen(result))
                            {
                                SendClientMessage(playerid, COLOR_GRAD2, " (/su)speito [ id ] [crime]");
                                return 1;
                            }
                            if(WantedPoints[giveplayerid] == 0) { WantedPoints[giveplayerid] = 3; }
                            else { WantedPoints[giveplayerid]+= 2; }
                            SetPlayerCriminal(giveplayerid,playerid, result);
                            PlayerInfo[giveplayerid][pWantedLevel] += 1;
                            return 1;
                    }
                }
                else
                {
                        format(string, sizeof(string), "   %d nгo estб conectado.", giveplayerid);
                        SendClientMessage(playerid, COLOR_GRAD1, string);
                        return 1;
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD2, "   Vocк nгo й policial!");
            }
        }
        return 1;
    }
Quem puder ajudar, desde jб agradeзo!
Reply
#2

usa ZCMD + SSCANF. Й muito mais otimizado, e bem mais facil de aprender.

Vou deixar o link do tutorial: https://sampforum.blast.hk/showthread.php?tid=277842

E um simples exemplo de su.

pawn Код:
CMD:su(playerid,params[])
{
    new id, crime[20], nivel, a[120];
    if(sscanf(params,"dsd",id,crime,nivel)) return SendClientMessage(playerid,-1,"Uso: /su [ID][CRIME][NIVEL]");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-1,"ID Invбlido");
    SetPlayerWantedLevel(playerid,GetPlayerWantedLevel(playerid) + nivel);
    format(a,sizeof a,"Vocк cometeu um crime! [%s][%d niveis]. Acusante: [%s]",crime,nivel,GetName(playerid));
    SendClientMessage(playerid,-1,a);
    return 1;
}
Sу precisa arrumar algumas condiзхes pra checar se й cop... etc.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)