[Ajuda] comando /dararma
#1

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;
}
Reply
#2

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.
Reply
#3

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
Reply
#4

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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)