Armas nas costas?! -
Ley - 24.04.2015
Boa tarde users, estou com uma grande dъvida diante de AttachedObject, gostaria que uma determinada arma, colocaremos como exemplo uma M4:
PHP код:
SetPlayerAttachedObject( playerid, 0, 356, 1, -0.109213, -0.158438, 0.110446, 190.443313, 0.000000, 0.000000, 1.106521, 1.000000, 1.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?
Re: Armas nas costas?! -
arakuta - 24.04.2015
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;
}