[ajuda] comando de dar arma
#1

eu gostaria de colocar um comando que o player desse a sua arma que estб segurando para outro player, como faзo?
Reply
#2

pawn Код:
CMD:dararma(playerid, params[])
{
    new userid, arma, municao, string[128], string2[128], nome[MAX_PLAYER_NAME], nome2[MAX_PLAYER_NAME];
    if(sscanf(params, "u", userid)) return SendClientMessage(playerid, -1, "Use: /dararma [ID]");
    if(GetPlayerWeapon(playerid) == 0) return SendClientMessage(playerid, -1, "Vocк nгo estб com nenhuma arma equipada");
    if(!IsPlayerConnected(userid)) return SendClientMessage(playerid, -1, "Jogador nгo conectado");
    GetPlayerName(playerid, nome, MAX_PLAYER_NAME);
    GetPlayerName(userid, nome2, MAX_PLAYER_NAME);
    arma = GetPlayerWeapon(playerid);
    municao = GetPlayerAmmo(playerid);
    GivePlayerWeapon(userid, arma, municao);
    RemovePlayerWeapon(playerid, arma);
    format(string, 128, "O jogador %s te deu a arma de ID %d com %d balas", nome, arma, municao);
    format(string2, 128, "Vocк deu para o jogador %s a arma de ID %d com %d balas", nome2, arma, municao);
    SendClientMessage(userid, -1, string);
    SendClientMessage(playerid, -1, string2);
    return 1;
}


stock RemovePlayerWeapon(playerid, weaponid)//By Garfield
{
    if(!IsPlayerConnected(playerid) || weaponid < 0 || weaponid > 50)
        return;

    new
        saveweapon[13],
        saveammo[13];

    for(new slot = 0; slot < 13; slot++)
        GetPlayerWeaponData(playerid, slot, saveweapon[slot], saveammo[slot]);

    ResetPlayerWeapons(playerid);

    for(new slot; slot < 13; slot++)
    {
        if(saveweapon[slot] == weaponid || saveammo[slot] == 0)
            continue;

        GivePlayerWeapon(playerid, saveweapon[slot], saveammo[slot]);
    }

    GivePlayerWeapon(playerid, 0, 1);
}
Reply
#3

Tente:

pawn Код:
if(strcmp(cmd, "/dararma", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /dararma [id] [arma id(ex. 24 = Eagle)] [muniзгo]");
                return true;
            }
            new playa;
            new gun;
            new ammo;
            playa = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
            gun = strval(tmp);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD1, "USE: /dararma [id] [arma id] [muniзгo]");
                SendClientMessage(playerid, COLOR_GRAD4, "3(Cassetete) 4(Faca) 5(Taco de Baseball) 6(Pб) 7(Espada) 8(Katana) 10-13(Vibrador) 14(Flores) 16(Granadas) 17(Granada Gбs) 18(Molotovs) 22(Pistola)");
                SendClientMessage(playerid, COLOR_GRAD3, "23(Pistola com Silenciador) 24(Eagle) 25(Escopeta) 29(MP5) 30(AK47) 31(M4) 33(Rifle) 34(Sniper) 37(Lanзa Chamas) 41(spray) 42(extintor) 43(Camera) 46(Paraquedas)");
                return true;
            }
            if(gun < 1 || gun > 46 || gun==38 || gun==35 || gun==37 || gun==44 || gun==45 || gun==9  || gun==26 || gun==27 || gun==28 || gun==32)
            { SendClientMessage(playerid, COLOR_GRAD1, "   ID Proibido!"); return true; }
            tmp = strtok(cmdtext, idx);
            ammo = strval(tmp);
            if(ammo <1||ammo > 999)
            { SendClientMessage(playerid, COLOR_GRAD1, "   O minimo de muniзгo й 1 e o mбximo й 999!"); return true; }
                if(IsPlayerConnected(playa))
                {
                    if(playa != INVALID_PLAYER_ID)
                    {
                        GivePlayerWeapon(playa, gun, ammo);
                    }
                }

        }
        return true;
    }
Reply
#4

Quote:
Originally Posted by leosivi
Посмотреть сообщение
Tente:

pawn Код:
if(strcmp(cmd, "/dararma", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /dararma [id] [arma id(ex. 24 = Eagle)] [muniзгo]");
                return true;
            }
            new playa;
            new gun;
            new ammo;
            playa = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
            gun = strval(tmp);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD1, "USE: /dararma [id] [arma id] [muniзгo]");
                SendClientMessage(playerid, COLOR_GRAD4, "3(Cassetete) 4(Faca) 5(Taco de Baseball) 6(Pб) 7(Espada) 8(Katana) 10-13(Vibrador) 14(Flores) 16(Granadas) 17(Granada Gбs) 18(Molotovs) 22(Pistola)");
                SendClientMessage(playerid, COLOR_GRAD3, "23(Pistola com Silenciador) 24(Eagle) 25(Escopeta) 29(MP5) 30(AK47) 31(M4) 33(Rifle) 34(Sniper) 37(Lanзa Chamas) 41(spray) 42(extintor) 43(Camera) 46(Paraquedas)");
                return true;
            }
            if(gun < 1 || gun > 46 || gun==38 || gun==35 || gun==37 || gun==44 || gun==45 || gun==9  || gun==26 || gun==27 || gun==28 || gun==32)
            { SendClientMessage(playerid, COLOR_GRAD1, "   ID Proibido!"); return true; }
            tmp = strtok(cmdtext, idx);
            ammo = strval(tmp);
            if(ammo <1||ammo > 999)
            { SendClientMessage(playerid, COLOR_GRAD1, "   O minimo de muniзгo й 1 e o mбximo й 999!"); return true; }
                if(IsPlayerConnected(playa))
                {
                    if(playa != INVALID_PLAYER_ID)
                    {
                        GivePlayerWeapon(playa, gun, ammo);
                    }
                }

        }
        return true;
    }
Vocк ao menos leu o post?
Reply
#5

Quote:
Originally Posted by Los
Посмотреть сообщение
pawn Код:
CMD:dararma(playerid, params[])
{
    new userid, arma, municao, string[128], string2[128], nome[MAX_PLAYER_NAME], nome2[MAX_PLAYER_NAME];
    if(sscanf(params, "u", userid)) return SendClientMessage(playerid, -1, "Use: /dararma [ID]");
    if(GetPlayerWeapon(playerid) == 0) return SendClientMessage(playerid, -1, "Vocк nгo estб com nenhuma arma equipada");
    if(!IsPlayerConnected(userid)) return SendClientMessage(playerid, -1, "Jogador nгo conectado");
    GetPlayerName(playerid, nome, MAX_PLAYER_NAME);
    GetPlayerName(userid, nome2, MAX_PLAYER_NAME);
    arma = GetPlayerWeapon(playerid);
    municao = GetPlayerAmmo(playerid);
    GivePlayerWeapon(userid, arma, municao);
    RemovePlayerWeapon(playerid, arma);
    format(string, 128, "O jogador %s te deu a arma de ID %d com %d balas", nome, arma, municao);
    format(string2, 128, "Vocк deu para o jogador %s a arma de ID %d com %d balas", nome2, arma, municao);
    SendClientMessage(userid, -1, string);
    SendClientMessage(playerid, -1, string2);
    return 1;
}


stock RemovePlayerWeapon(playerid, weaponid)//By Garfield
{
    if(!IsPlayerConnected(playerid) || weaponid < 0 || weaponid > 50)
        return;

    new
        saveweapon[13],
        saveammo[13];

    for(new slot = 0; slot < 13; slot++)
        GetPlayerWeaponData(playerid, slot, saveweapon[slot], saveammo[slot]);

    ResetPlayerWeapons(playerid);

    for(new slot; slot < 13; slot++)
    {
        if(saveweapon[slot] == weaponid || saveammo[slot] == 0)
            continue;

        GivePlayerWeapon(playerid, saveweapon[slot], saveammo[slot]);
    }

    GivePlayerWeapon(playerid, 0, 1);
}
apareceram 26 erros ao compilar, todos eram sobre "return 1;"
Reply
#6

Quote:
Originally Posted by bombomloko
Посмотреть сообщение
apareceram 26 erros ao compilar, todos eram sobre "return 1;"
Vocк usa zcmd ou strcmp?
Reply
#7

uso strcmp
Reply
#8

Quote:
Originally Posted by bombomloko
Посмотреть сообщение
uso strcmp
Entгo basta converter do ZCMD e sscanf para strcmp e strtok..
Reply
#9

entгo como ficaria o comando? pq aqui da erro do "params" que nгo foi identificado
Reply
#10

vocк editou o cуdigo?

se sim, manda ai pra nois ver como ficou..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)