[Pedido] Armas nas costas?!
#1

Boa tarde users, estou com uma grande dъvida diante de AttachedObject, gostaria que uma determinada arma, colocaremos como exemplo uma M4:

PHP код:
SetPlayerAttachedObjectplayerid03561, -0.109213, -0.1584380.110446190.4433130.0000000.0000001.1065211.0000001.333984 ); 
Porйm, alguns sistemas que vi nгo fazia uma funзгo especнfica que seria:

Quando o usuбrio nгo estб com a arma em mгos, ela fica posicionada nas costas.
Quando a arma nгo estб nas costas, obviamente, ficarб nas mгos do usuбrio. Essa funзгo, utilizada no OnPlayerUpdate, se me recordo.

Alguйm poderia me ajudar?
Reply
#2

Crie uma variбvel, para saber qual arma o jogador estб segurando:

PHP код:
new wHolding[MAX_PLAYERS]; 
E quantas variбveis for necessбrio para armas pelo corpo. Isso depende do seu sistema.

Vamor admitir que a variбvel que determina que ele tem um M4 no corpo й verdadeira.

Sete o valor de wHolding de um jogador, para o ID da arma que ele estб segurando. Como vai fazer isto? GetPlayerWeapon em OnPlayerUpdate, ou em um timer per-player de 500ms ja deve dar.

Quando vocк obter esta arma nova, vocк vai ter duas possibilidades:

Ela й uma arma que estб no corpo, ou uma arma que jб foi retirada do corpo e estб empunhada.

PHP код:
if(wHolding[playerid] != GetPlayerWeapon(playerid))
{
    
// Trocou de arma
    // Coloca a que ele estava segurando no corpo
    // Tira a que ele estб segurando do corpo
    
wHolding[playerid] = GetPlayerWeapon(playerid);

Й tudo uma questгo de usar condiзхes e variбveis.

@Edit

Isso aqui й um sistema funcional para uma shotgun:

PHP код:
new bool:Addon[MAX_PLAYERS][10];
new 
wHolding[MAX_PLAYERS];
public 
OnPlayerUpdate(playerid)
{
    if(
wHolding[playerid] != GetPlayerWeapon(playerid))
    {
        
// Trocou de Arma
    
        
if(GetPlayerWeapon(playerid) == 25)
        {
            
Addon[playerid][0] = true;
            
cmd_snc(playerid);
        }
        else if(
wHolding[playerid] == 25)
        {
            
Addon[playerid][0] = false;
            
cmd_snc(playerid);
        }
        
        
wHolding[playerid] = GetPlayerWeapon(playerid);
    }
    return 
1;
}
CMD:snc(playerid)
{
    if(
Addon[playerid][0] == false)
    {
        
SetPlayerAttachedObject(playerid,0,349,1,0.3,-0.12,0.20,0,160,0);
        
Addon[playerid][0] = true;
        
SetPlayerArmedWeapon(playerid,0);
    }
    else
    {
        
Addon[playerid][0] = false;
        
RemovePlayerAttachedObject(playerid,0);
        
SetPlayerArmedWeapon(playerid,25);
    }
    return 
1;

Reply


Forum Jump:


Users browsing this thread: