[Ajuda] Comando sem erros, mas nгo funciona bem.
#1

pawn Код:
CMD:dararma(playerid, params[])
{
    new playa;
    new gun;
    new ammo;
    new sendername[MAX_PLAYER_NAME], giveplayer[MAX_PLAYER_NAME];
    new string[256];
    SendClientMessage(playerid, COLOR_WHITE, "________________________[ Dar Armas ]________________________");
    SendClientMessage(playerid, COLOR_WHITE, "Comando: /dararma [playerid/PartOfName] [weaponid] [balas]");
    SendClientMessage(playerid, COLOR_WHITE, "3(Club) | 4(knife) | 5(bat) | 6(Shovel) | 7(Cue) | 8(Katana) | 10-13(Dildo) | 14(Flowers)");
    SendClientMessage(playerid, COLOR_WHITE, "16(Grenades) | 18(Molotovs) | 22(Pistol) | 23(SPistol) 24(Eagle) | 25(Shotgun) | 27(SPAS12)");
    SendClientMessage(playerid, COLOR_WHITE, "29(MP5) | 30(AK47) | 31(M4) | 33(Rifle) | 34(Sniper) | 35(Bazooka) | 37(Flamethrower)");
    SendClientMessage(playerid, COLOR_WHITE, "41(Spray) | 42(Fire Extinguisher) | 43(Camera) | 46(Parachute)");
    SendClientMessage(playerid, COLOR_WHITE, "______________________________________________________________");
    if(gun > 1||gun < 47)
    if(ammo <1||ammo > 999)
    { SendClientMessage(playerid, COLOR_WHITE, "Tens de escolher entre , 1-999 balas."); return 1; }
   
    if(PlayerInfo[playerid][Adminlevel] < 1) return SendClientMessage(playerid,COLOR_RED,".:: You are not authorized to use this command ::.");
    if(sscanf(params, "iab",playerid, gun, ammo)) return SendClientMessage(playerid, COLOR_WHITE, "Comando: /dararma [ID] [Arma] [Balas]");

    GetPlayerName(playa, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, 256, "[%s]deu ao player %s a arma - %d com %d balas.", sendername, giveplayer, gun, ammo);
    SendClientMessage(playerid, COLOR_WHITE, string);
    GivePlayerWeapon(playa, gun, ammo);
    return 1;
}
Sempre que digito o comando /dararma [id] [id Arma] [balas]
Aparece-me isto:

pawn Код:
SendClientMessage(playerid, COLOR_WHITE, "________________________[ Dar Armas ]________________________");
    SendClientMessage(playerid, COLOR_WHITE, "Comando: /dararma [playerid/PartOfName] [weaponid] [balas]");
    SendClientMessage(playerid, COLOR_WHITE, "3(Club) | 4(knife) | 5(bat) | 6(Shovel) | 7(Cue) | 8(Katana) | 10-13(Dildo) | 14(Flowers)");
    SendClientMessage(playerid, COLOR_WHITE, "16(Grenades) | 18(Molotovs) | 22(Pistol) | 23(SPistol) 24(Eagle) | 25(Shotgun) | 27(SPAS12)");
    SendClientMessage(playerid, COLOR_WHITE, "29(MP5) | 30(AK47) | 31(M4) | 33(Rifle) | 34(Sniper) | 35(Bazooka) | 37(Flamethrower)");
    SendClientMessage(playerid, COLOR_WHITE, "41(Spray) | 42(Fire Extinguisher) | 43(Camera) | 46(Parachute)");
    SendClientMessage(playerid, COLOR_WHITE, "______________________________________________________________");
Ajuda ?
Reply
#2

tmp = strtok(cmdtext,idx); ?
ou nгo, nгo sei usar zcmd , :/
Reply
#3

Este comando, estб feito sem erros e sem warnings, porйm nao estб a funcionar bem.
Reply
#4

ainda acho que precisaria de
pawn Код:
if(sscanf(params, "uii", playa,gun, ammo))
pois, o comando nгo tem erro, mais nгo tem uma funзгo que faзa ele trabalhar e.e
acho que tas a faltar isso /\
Reply
#5

pawn Код:
CMD:dararma(playerid, params[])
{
    new playa;
    new gun;
    new ammo;
    new sendername[MAX_PLAYER_NAME], giveplayer[MAX_PLAYER_NAME];
    new string[256];
    if(gun > 1||gun < 47) return SendClientMessage(playerid,-1,"((minimo - 1 | Maximo - 47))");
    if(ammo <1||ammo > 999) return SendClientMessage(playerid, COLOR_WHITE, "Tens de escolher entre , 1-999 balas.");
    if(PlayerInfo[playerid][Adminlevel] < 1) return SendClientMessage(playerid,COLOR_RED,".:: You are not authorized to use this command ::.");
    if(sscanf(params, "udd",playerid, gun, ammo))
        {
                SendClientMessage(playerid, COLOR_WHITE, "Comando: /dararma [ID] [Arma] [Balas]");
                SendClientMessage(playerid, COLOR_WHITE, "________________________[ Lista de Armas ]________________________");
                SendClientMessage(playerid, COLOR_WHITE, "Comando: /dararma [playerid/PartOfName] [weaponid] [balas]");
                SendClientMessage(playerid, COLOR_WHITE, "3(Club) | 4(knife) | 5(bat) | 6(Shovel) | 7(Cue) | 8(Katana) | 10-13(Dildo) | 14(Flowers)");
                SendClientMessage(playerid, COLOR_WHITE, "16(Grenades) | 18(Molotovs) | 22(Pistol) | 23(SPistol) 24(Eagle) | 25(Shotgun) | 27(SPAS12)");
                SendClientMessage(playerid, COLOR_WHITE, "29(MP5) | 30(AK47) | 31(M4) | 33(Rifle) | 34(Sniper) | 35(Bazooka) | 37(Flamethrower)");
                SendClientMessage(playerid, COLOR_WHITE, "41(Spray) | 42(Fire Extinguisher) | 43(Camera) | 46(Parachute)");
                SendClientMessage(playerid, COLOR_WHITE, "______________________________________________________________");
        return true;
        }
    GetPlayerName(playa, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, 256, "[%s]deu ao player %s a arma - %d com %d balas.", sendername, giveplayer, gun, ammo);
    SendClientMessage(playerid, COLOR_WHITE, string);
    GivePlayerWeapon(playa, gun, ammo);
    return 1;
}
Notas: Use "u" - para id do player, use "i" ou "d" - para numeros, neste caso armas e balas, vocк colocou a mensagem antes do sscanf, logico que irб aparecer essa mensagem primeiro.

Reply
#6

Continua a nao funcionar, a arma e a quantidade de balas nao й dada ao player referido no comando.
Reply
#7

sabia que faltava isso e.e
Reply
#8

testa o meu.
Reply
#9

pawn Код:
CMD:dararma(playerid, params[])
{
    if(PlayerInfo[playerid][Adminlevel] < 1) return SendClientMessage(playerid,COLOR_RED,".:: You are not authorized to use this command ::.");
    new id, arma, bala;
    new nome[MAX_PLAYER_NAME][2];
    new string[128];
    if(sscanf(params, "dii",id, arma, bala))
    {
        SendClientMessage(playerid, COLOR_WHITE, "Comando: /dararma [ID] [Arma] [Balas]");
        SendClientMessage(playerid, COLOR_WHITE, "________________________[ Lista de Armas ]________________________");
        SendClientMessage(playerid, COLOR_WHITE, "Comando: /dararma [playerid/PartOfName] [weaponid] [balas]");
        SendClientMessage(playerid, COLOR_WHITE, "3(Club) | 4(knife) | 5(bat) | 6(Shovel) | 7(Cue) | 8(Katana) | 10-13(Dildo) | 14(Flowers)");
        SendClientMessage(playerid, COLOR_WHITE, "16(Grenades) | 18(Molotovs) | 22(Pistol) | 23(SPistol) 24(Eagle) | 25(Shotgun) | 27(SPAS12)");
        SendClientMessage(playerid, COLOR_WHITE, "29(MP5) | 30(AK47) | 31(M4) | 33(Rifle) | 34(Sniper) | 35(Bazooka) | 37(Flamethrower)");
        SendClientMessage(playerid, COLOR_WHITE, "41(Spray) | 42(Fire Extinguisher) | 43(Camera) | 46(Parachute)");
        SendClientMessage(playerid, COLOR_WHITE, "______________________________________________________________");
        return true;
    }
    if(arma > 1||arma < 47) return SendClientMessage(playerid,-1,"((minimo - 1 | Maximo - 47))");
    if(bala <1||bala > 999) return SendClientMessage(playerid, COLOR_WHITE, "Tens de escolher entre , 1-999 balas.");
    GetPlayerName(id, nome[0], 24);
    GetPlayerName(playerid, nome[1], 24);
    format(string, 128, "[%s]deu ao player %s a arma - %d com %d balas.", nome[0], nome[1], arma, bala);
    SendClientMessage(playerid, COLOR_WHITE, string);
    GivePlayerWeapon(id, arma, bala);
    return 1;
}
Reply
#10

Rico o teu code nгo muda nada praticamente, e para que usar "d" se vocк tem o "u" que й proprio para os ids dos players...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)