[Pedido] Comando verificar arma de um jogador
#1

O titulo jб falei tudo, alguйm tem um comando base de verificar arma de um jogador mais sу adm, mais isso eu vejo, sу quero um comando base mesmo, pois nгo sei como fazer uma base e quais as funзхes.. tipo quero uma soluзгo para a criaзгo..
Reply
#2

GetPlayerWeapon (retorna o modelo da arma atual que o player estб segurando)

Base de exemplo:

Код:
public OnPlayerDeath(playerid, killerid, reason)
{
if(GetPlayerWeapon(killerid) == 38) Ban(killerid); //banir player caso ele tenha minigun return 1;
}
GetPlayerWeaponData (retorna o modelo de todas as armas e a quantidade de muniзгo que o player tem em cada uma)

Base de exemplo:

Код:
new weapons[13][2];
 
for (new i = 0; i <= 12; i++)
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);//retorna modelo e muniзгo de cada arma
}
Aconselho a ler a wiki inteira caso queira mesmo aprender as funзхes e callbacks do SA-MP
Reply
#3

fiz isso aqui rбpido, mais nгo й funcional, afs..

pawn Код:
if(strcmp(cmd, "/checkweapons", true) == 0 || strcmp(cmd, "/checkw", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(gLogged[playerid] == 1)
            {
                if (PlayerInfo[playerid][pAdmin] < 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD1,"ERRO: You are not authorized");
                    return true;
                }
                if(PlayerInfo[playerid][pAdminStats] != 0)
                {
                    SendClientMessage(playerid,COLOR_GRAD1,"ERRO: Vocк nгo estб no modo admin! (/trabalhar)");
                    return true;
                }
                temp = strtok(cmdtext,idx);
                if (!strlen(temp))
                {
                    SendClientMessage(playerid, COLOR_GRAD1, "USE: /checkweapons [ID/Nome]");
                    return true;
                }
                targetid = ReturnUser(temp);
                if (targetid == INVALID_PLAYER_ID)
                {
                    SendClientMessage(playerid, COLOR_ERROR, "That player is offline");
                    return true;
                }
                new weaponsmodel, ammunition;

                GetPlayerName(targetid, pNameGive, sizeof(pNameGive));

                format(string, sizeof(string), "%s has the following weapons:", pNameGive);
                SendClientMessage(playerid, COLOR_ADMIN_INFO, string);

                for (new i=0; i<9; i++)
                {
                    GetPlayerWeaponData(targetid, i, weaponsmodel, ammunition);
                    if(weaponsmodel != 0)
                    {
                        format(string, sizeof(string), "%d: %d (%d)", i, weaponsmodel, ammunition);
                        SendClientMessage(playerid, COLOR_ADMIN_INFO, string);
                    }
                }
            }
        }
        return true;
    }
Reply
#4

Quote:
Originally Posted by JoshNudock
Посмотреть сообщение
fiz isso aqui rбpido, mais nгo й funcional, afs..

pawn Код:
if(strcmp(cmd, "/checkweapons", true) == 0 || strcmp(cmd, "/checkw", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(gLogged[playerid] == 1)
            {
                if (PlayerInfo[playerid][pAdmin] < 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD1,"ERRO: You are not authorized");
                    return true;
                }
                if(PlayerInfo[playerid][pAdminStats] != 0)
                {
                    SendClientMessage(playerid,COLOR_GRAD1,"ERRO: Vocк nгo estб no modo admin! (/trabalhar)");
                    return true;
                }
                temp = strtok(cmdtext,idx);
                if (!strlen(temp))
                {
                    SendClientMessage(playerid, COLOR_GRAD1, "USE: /checkweapons [ID/Nome]");
                    return true;
                }
                targetid = ReturnUser(temp);
                if (targetid == INVALID_PLAYER_ID)
                {
                    SendClientMessage(playerid, COLOR_ERROR, "That player is offline");
                    return true;
                }
                new weaponsmodel, ammunition;

                GetPlayerName(targetid, pNameGive, sizeof(pNameGive));

                format(string, sizeof(string), "%s has the following weapons:", pNameGive);
                SendClientMessage(playerid, COLOR_ADMIN_INFO, string);

                for (new i=0; i<9; i++)
                {
                    GetPlayerWeaponData(targetid, i, weaponsmodel, ammunition);
                    if(weaponsmodel != 0)
                    {
                        format(string, sizeof(string), "%d: %d (%d)", i, weaponsmodel, ammunition);
                        SendClientMessage(playerid, COLOR_ADMIN_INFO, string);
                    }
                }
            }
        }
        return true;
    }
Quais erros apareceram? Porque pelo que vi aqui parece ser funcional...
Reply
#5

Quote:
Originally Posted by n0minal
Посмотреть сообщение
Quais erros apareceram? Porque pelo que vi aqui parece ser funcional...
Eu achei o erro, esta na declaraзгo das variбveis weaponsmode e ammunition...
Reply
#6

Verdade, precisa ser indexada, depois vi o erro mas tava com preguiзa de editar, indexa ai pf, estou indo dormir
Reply
#7

Quote:
Originally Posted by n0minal
Посмотреть сообщение
Verdade, precisa ser indexada, depois vi o erro mas tava com preguiзa de editar, indexa ai pf, estou indo dormir
Sem problemas

@TOPIC Tem duas coisas que estбs fazendo de errado, a primeira claro, й o que foi comentado, sua variбvel nгo foi "indexada", ou seja, a declaraзгo da mesma estб a apenas a guardar um valor, e o outro problema й que esta rodando o loop em apenas 8 vezes, em vista que o total de slots й 12
pawn Код:
if(strcmp(cmd, "/checkweapons", true) == 0 || strcmp(cmd, "/checkw", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(gLogged[playerid] == 1)
            {
                if (PlayerInfo[playerid][pAdmin] < 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD1,"ERRO: You are not authorized");
                    return true;
                }
                if(PlayerInfo[playerid][pAdminStats] != 0)
                {
                    SendClientMessage(playerid,COLOR_GRAD1,"ERRO: Vocк nгo estб no modo admin! (/trabalhar)");
                    return true;
                }
                temp = strtok(cmdtext,idx);
                if (!strlen(temp))
                {
                    SendClientMessage(playerid, COLOR_GRAD1, "USE: /checkweapons [ID/Nome]");
                    return true;
                }
                targetid = ReturnUser(temp);
                if (targetid == INVALID_PLAYER_ID)
                {
                    SendClientMessage(playerid, COLOR_ERROR, "That player is offline");
                    return true;
                }
                //Aqui declarei uma multi-variбvel para evitar a criaзгo de outra variбvel desnecessбria
                new weapons[2][13];

                GetPlayerName(targetid, pNameGive, sizeof(pNameGive));

                format(string, sizeof(string), "%s has the following weapons:", pNameGive);
                SendClientMessage(playerid, COLOR_ADMIN_INFO, string);

                for (new i=0; i <= 12; i++)
                {
                    GetPlayerWeaponData(targetid, i, weapons[0][i], weapons[1][i]);
                    if(weapons[0][i] != 0)
                    {
                        format(string, sizeof(string), "%d: %d (%d)", i, weapons[0][i], weapons[1][i]);
                        SendClientMessage(playerid, COLOR_ADMIN_INFO, string);
                    }
                }
            }
        }
        return true;
    }
Reply
#8

Valeu geral! sempre vcs me ajudam! obrigado mesmo pela humildade! vlW! +rep!
Reply
#9

Bruno e n0minal, deu esses erros..

Quote:

C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(26052) : error 017: undefined symbol "temp"
C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(26053) : error 017: undefined symbol "temp"
C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(2605 : error 017: undefined symbol "targetid"
C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(2605 : error 017: undefined symbol "temp"
C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(26059) : error 017: undefined symbol "targetid"
C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(26067) : error 017: undefined symbol "targetid"
C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(26072) : error 017: undefined symbol "targetid"
C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(57567) : error 017: undefined symbol "giveplayeri"
C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(57635) : error 017: undefined symbol "giveplayeri"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


9 Errors.

Oque faзo? afs, sou um burro!

pawn Код:
if (strcmp(cmd, "/checkweapons", true) == 0 || strcmp(cmd, "/checkw", true) == 0) //https://sampforum.blast.hk/showthread.php?pid=3318174#pid3318174&posted=1#post3318174
    {
        if (IsPlayerConnected(playerid))
        {
            if (PlayerInfo[playerid][pAdmin] < 1)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "ERRO: Vocк nгo tem nнvel administrativo suficiente.");
                return true;
            }
            if (PlayerInfo[playerid][pAdminStats] != 0)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "ERRO: Vocк nгo estб no modo admin! (/trabalhar)");
                return true;
            }
            temp = strtok(cmdtext, idx);
            if (!strlen(temp)) // erro aqui 26053
            {
                SendClientMessage(playerid, COLOR_GRAD1, "USE: /checkweapons [ID/Nome]");
                return true;
            }
            targetid = ReturnUser(temp);
            if (targetid == INVALID_PLAYER_ID) // erro aqui 26059
            {
                SendClientMessage(playerid, COLOR_GRAD1, "ID/Nome Invбlido.");
                return true;
            }
            //Aqui declarei uma multi-variбvel para evitar a criaзгo de outra variбvel desnecessбria
            new weapons[2][13];

            format(string, sizeof(string), "Armas de %s:", GetPlayerNameRP(targetid));
            SendClientMessage(playerid, COLOR_ADMIN_INFO, string);

            for (new i = 0; i <= 12; i++)
            {
                GetPlayerWeaponData(targetid, i, weapons[0][i], weapons[1][i]);
                if (weapons[0][i] != 0)
                {
                    format(string, sizeof(string), "%d: %d (%d)", i, weapons[0][i], weapons[1][i]);
                    SendClientMessage(playerid, COLOR_ADMIN_INFO, string);
                }
            }
        }
        return true;
    }
Reply
#10

Alguйm pode me ajudar? nгo consigo resolver este error, oque faзo??

pawn Код:
if (strcmp(cmd, "/checkweapons", true) == 0 || strcmp(cmd, "/checkw", true) == 0) //https://sampforum.blast.hk/showthread.php?pid=3318174#pid3318174&posted=1#post3318174
    {
        if (IsPlayerConnected(playerid))
        {
            new temp[256];
            if (PlayerInfo[playerid][pAdmin] < 1)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "ERRO: Vocк nгo tem nнvel administrativo suficiente.");
                return true;
            }
            if (PlayerInfo[playerid][pAdminStats] != 0)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "ERRO: Vocк nгo estб no modo admin! (/trabalhar)");
                return true;
            }
            temp = strtok(cmdtext, idx);
            if (!strlen(temp))
            {
                SendClientMessage(playerid, COLOR_GRAD1, "USE: /checkweapons [ID/Nome]");
                return true;
            }
            targetid = ReturnUser(temp); //erro aqui 26116
            if (targetid == INVALID_PLAYER_ID) //erro aqui 26117
            {
                SendClientMessage(playerid, COLOR_GRAD1, "ID/Nome Invбlido.");
                return true;
            }
            //Aqui declarei uma multi-variбvel para evitar a criaзгo de outra variбvel desnecessбria
            new weapons[2][13];

            format(string, sizeof(string), "Armas de %s:", GetPlayerNameRP(targetid)); //erro aqui 26125
            SendClientMessage(playerid, COLOR_ADMIN_INFO, string);

            for (new i = 0; i <= 12; i++)
            {
                GetPlayerWeaponData(targetid, i, weapons[0][i], weapons[1][i]); //erro aqui 26130
                if (weapons[0][i] != 0)
                {
                    format(string, sizeof(string), "%d: %d (%d)", i, weapons[0][i], weapons[1][i]);
                    SendClientMessage(playerid, COLOR_ADMIN_INFO, string);
                }
            }
        }
        return true;
    }
Quote:

C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(26116) : error 017: undefined symbol "targetid"
C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(26117) : error 017: undefined symbol "targetid"
C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(26125) : error 017: undefined symbol "targetid"
C:\Documents and Settings\P.Henrique\Desktop\Nova pasta\gamemodes\BSL.pwn(26130) : error 017: undefined symbol "targetid"

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)