SA-MP Forums Archive
[Ajuda] comando /dararma - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] comando /dararma (/showthread.php?tid=541038)



comando /dararma - minimessi10 - 09.10.2014

olб, eu criei um comando para admin que da arma a um certo jogador, queria saber como faзo para que ele possa digitar o id da arma ou o nome dela.

exemplo: /dararma [id / nick] [arma / nome] [municao]
sei que tem algo haver com a funзгo GetWeaponName, mas ainda nгo pensei em uma forma para getar o id ou o nome da arma.

Meu CMD /dararma
pawn Код:
YCMD:dararma(playerid, params[], help)
{
    if(IsPlayerAdmin(playerid))
    {
        new id, arma, municao;
        if(sscanf(params, "udd", id, arma, municao))
        {
            SendClientMessage(playerid, COR_CORRECAO, "Use: /dararma [id / nick] [arma] [municao]");
            return 1;
        }
        if(id == INVALID_PLAYER_ID)
        {
            SendClientMessage(playerid, COR_VERMELHO, "| ERRO | Jogador(a) nгo estб conectado(a)!");
            return 1;
        }
        if(arma < 0 || arma > 46)
        {
            SendClientMessage(playerid, COR_VERMELHO, "| ERRO | ID de arma deve ser de 0 a 46!");
            return 1;
        }
        if(Ocultado[playerid] == false)
        {
            format(String, 128, "[CRAdmin] O(A) administrador(a) %s lhe deu a arma %s com %d de muniзгo.",GetName(playerid),GunName(arma),municao);
            SendClientMessage(id, COR_ADMIN, String);
        }
        format(String, 128, "[CRAdmin] Vocк deu a arma %s com %d de muniзгo para o(a) jogador(a) %s.",GunName(arma),municao,GetName(id));
        SendClientMessage(playerid, COR_CORRECAO, String);
        GivePlayerWeapon(id, arma, municao);
    }
    else SendClientMessage(playerid, COR_VERMELHO, "| ERRO | Vocк nгo й administrador(a)!");
    return 1;
}



Re: comando /dararma - MultiKill - 09.10.2014

Para digitar id ou o nome, vocк deverб fazer uma verificaзгo para saber se ele digitou um nъmero ou uma string.
Eu sei que й possнvel fazer um um diбlogo.


Re: comando /dararma - minimessi10 - 09.10.2014

dб tambйm por strtok mas nгo sei usar strtok nгo me importei muinto em aprender, mas quem saber o cуdigo ai de preferencia em sscanf mas se nгo tiver pode ser strtok mesmo =D


Re: comando /dararma - MultiKill - 09.10.2014

Vou fazer um exemplo:
pawn Код:
GetWeapon(weapon[])
{
    new id_weapon;
    switch(weapon)
    {
        case "Fist": id_weapon = 0;
        case "0": id_weapon = 0;
    }
    return id_weapon;
}

//Exemplo de uso:
GivePlayerWeapon(playerid, GetWeapon("Fist"), 0);
GivePlayerWeapon(playerid, GetWeapon("0"), 0);
para o id da arma, no sscanf vocк ira usar como uma string, mesmo que ele digite 0 vai ter que ser uma string. Dentro da funзгo ele verifica o que o jogador digitou, se ele digitou o nome da arma vai retornar ao id em uma variбvel do tipo inteiro, caso digite o id da arma que vai estar em uma string, vai retornar em inteiro.