[Ajuda] Armas no corpo bugado
#1

Eu estou usando o sistema que o wil postou em um comentario mais o problema й o seguinte, quando eu uso o comando, todos que estгo no servidor tem a mesma arma que eu, acoplada ao corpo.
Como eu faзo somente para o jogador que usou o comando estar com o objeto?

Код:
#include <a_samp>
#include <zcmd>
#include <foreach>
 
new pWeaponHold[MAX_PLAYERS];

CMD:armac(playerid, params[])
{
        if(GetPlayerWeapon(playerid) == -1)
                return SendClientMessage(playerid, 0xFF6347FF, "Vocк nгo possui nenhuma arma na mгo.");
       
        new gunname[128], string[128];
       
        if(!pWeaponHold[playerid])
        {
                if(GetPlayerWeapon(playerid) == 25 || GetPlayerWeapon(playerid) == 27 || GetPlayerWeapon(playerid) == 29 || GetPlayerWeapon(playerid) == 30 || GetPlayerWeapon(playerid) == 31 || GetPlayerWeapon(playerid) == 33 || GetPlayerWeapon(playerid) == 34)
                {
                        if(!pWeaponHold[playerid])
                        {
                        pWeaponHold[playerid] = GetPlayerWeapon(playerid);
                        GetWeaponName(GetPlayerWeapon(playerid), gunname, sizeof(gunname));
                        format(string, sizeof(string),"SERVIDOR: A sua %s foi acoplada ao seu corpo!",gunname);
                        SendClientMessage(playerid, 0xFFFF00FF, string);
                                return 1;
                        }
                        else
                        {
                        GetWeaponName(pWeaponHold[playerid], gunname, sizeof(gunname));
                        RemovePlayerAttachedObject(playerid, 4);
                        format(string, sizeof(string),"SERVIDOR: A sua %s foi desacoplada do seu corpo!",gunname);
                                SendClientMessage(playerid, 0xFFFF00FF, string);
                                pWeaponHold[playerid] = 0;
                        }
                }
                else
                {
                SendClientMessage(playerid, 0xFF6347FF, "Esta arma nгo pode ser acoplada a seu corpo.");
                }
        }
        else
        {
            RemovePlayerAttachedObject(playerid, 4);
            format(string, sizeof(string),"SERVIDOR: A arma em seu corpo foi desacoplada!");
                SendClientMessage(playerid, 0xFFFF00FF, string);
                pWeaponHold[playerid] = 0;
        }
        return 1;
}

stock RemoveWeaponHold(playerid, weaponid)
{
    if(weaponid == pWeaponHold[playerid])
        {
                RemovePlayerAttachedObject(playerid, 4);
                pWeaponHold[playerid] = 0;
        }
        return 1;
}
 
public OnGameModeInit()
{
        SetTimer("CheckArmaC", 1000, true);//1s
        return 1;
}
forward CheckArmaC(playerid);
public CheckArmaC(playerid)
{
        foreach (new i : Player)
        {
                if(pWeaponHold[playerid])
                {
                        new weapon;
                        switch(pWeaponHold[playerid])
                        {
                        case 22: weapon = 346;
                        case 23: weapon = 347;
                        case 24: weapon = 348;
                        case 25: weapon = 349;
                        case 27: weapon = 351;
                        case 29: weapon = 353;
                        case 30: weapon = 355;
                        case 31: weapon = 356;
                        }
                    if(GetPlayerWeapon(i) != pWeaponHold[playerid])
                    {
                        switch(pWeaponHold[playerid])
                                {
                                        case 25:
                                        {
                                        SetPlayerAttachedObject(i, 4, weapon, 1, 0.2049, 0.2430, -0.1359, -176.0000, 160.1999,6.5998);
                                        }
                                        case 27,29,30,31,33,34:
                                        {
                                        SetPlayerAttachedObject(i, 4, weapon, 1, 0.1298, 0.2230, -0.1500, 5.0998, 23.8999, -177.4998);
                                        }
                                }
                    }
                    else
                    {
                RemovePlayerAttachedObject(i, 4);
                        }
                }
        }
	return 1;
}
Reply
#2

Adicione a funзгo GetModelHold e troque sua ultima callback por essa:

PHP код:
GetModelHold(playerid) {
    new 
weapon;
    switch(
pWeaponHold[playerid])
    {
        case 
22weapon 346;
        case 
23weapon 347;
        case 
24weapon 348;
        case 
25weapon 349;
        case 
27weapon 351;
        case 
29weapon 353;
        case 
30weapon 355;
        case 
31weapon 356;
    }
    return 
weapon;  
}
forward CheckArmaC();
public 
CheckArmaC()
{
    foreach(new 
iPlayer)
    {
        if(
pWeaponHold[i] && GetPlayerWeapon(i) != pWeaponHold[i])
        {
            switch(
pWeaponHold[i])
            {
                case 
25SetPlayerAttachedObject(i4GetModelHold(i), 10.20490.2430, -0.1359, -176.0000160.19996.5998);
                case 
272930313334SetPlayerAttachedObject(i4GetModelHold(i), 10.12980.2230, -0.15005.099823.8999, -177.4998);
            }
        }
        else 
RemovePlayerAttachedObject(i4);
    }
    return 
1;

Reply
#3

Obrigado, funcionou !
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)