11/03/2024 22:47
(Esta mensagem foi modificada pela última vez a: 11/03/2024 22:49 por Notknown.)
(11/03/2024 21:23)Aranha Escreveu:(11/03/2024 21:14)Notknown Escreveu:(11/03/2024 19:19)blabla666 Escreveu: Olá. Boa noite! estou fazendo um sistema em meu servidor, coloquei uns atores e quero cortar as animações de quando ele toma tiros;
Após ele tomar uns 4 tiros, ele automaticamente caí, usei a função 'ClearDynamicActorAnimations' na public 'OnPlayerGiveDamageActor' e mesmo assim não funcionou. Alguém pode me ajudar?
Arrume A Public Que Voce esta usando, Inves de "OnPlayerGiveDamageActor" use "OnPlayerGiveDamageDynamicActor"
Estou tendo o mesmo problema tentei de todo jeito nao consigo ajeitar isso
Código:public OnPlayerGiveDamageDynamicActor(playerid, STREAMER_TAG_ACTOR:actorid, Float:amount, weaponid, bodypart)
{
new playerWeapon = GetPlayerWeapon(playerid);
if(playerWeapon >= 22 && playerWeapon <= 42)
{
if(BlockAssaltouCaixa[playerid] == -1)
{
if(IsPlayerInRangeOfPoint(playerid, 10.0, 885.6487, 2009.5953, -15.3484))
{
if(ORG[playerid] >= 0)
{
if(STREAMER_TAG_ACTOR:actorid == actormercadinho)
{
if(CaixaMercadinho > 0)
{
TogglePlayerControllable(playerid, 0);
RoubarMercadinho[playerid] = SetTimerEx("RoubarLojaMercadinho", 20000, false, "i", playerid);
ApplyDynamicActorAnimation(actormercadinho, "ROB_BANK","SHP_HandsUp_Scr", 4.1, 1, 0, 0, 0, 3000);
SendClientMessage(playerid, -1, "| ASSALTO | Perdeu perdeu passa grana!!");
BlockAssaltouCaixa[playerid] = 30;
ApplyAnimation(playerid, "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 0, 0, 1); // anime roubar
}
else
{
return SendClientMessage(playerid, -1, "| ASSALTO |O caixa esta vazio!!");
}
}
}
}
}
}
return 1;
}
Poderia me dizer como voce esta criando os atores?
caso voce deixe eles imortal a função OnPlayerGiveDamageDynamicActor não iria funcionar e claro, caso voce tenha um timer que bloqueie esta função de ser roubada apos um tempo, se voce utilizar uma arma que possua duas, tipo a sawn-off que voce aperte uma vez so e sai dois tiros a função iria ser chamada duas vezes.
Tinha Feito Um simples teste utilizando a base do seu codigo e funcionou ate que de boa, embora inves de usar essa função eu utilizaria a função da include a players "GetPlayerCameraTargetActor" ja que seria e so voce mirar no npc desejado que ele iniciaria a função de roubar o npc
base
Código:
#include a_samp
#include streamer
new actormercadinho[1];
new RoubarMercadinho[MAX_PLAYERS];
public OnGameModeInit()
{
actormercadinho[0] = CreateDynamicActor(71, -2653.0618,-209.9351,4.3045,76.6137, false, 100.0, 0, 0); //cordenada aleatoria ignore
}
public OnPlayerGiveDamageDynamicActor(playerid, STREAMER_TAG_ACTOR:actorid, Float:amount, weaponid, bodypart)
{
if(STREAMER_TAG_ACTOR:actorid == actormercadinho[0])
{
ApplyDynamicActorAnimation(actormercadinho[0], "ROB_BANK","SHP_HandsUp_Scr", 4.0,0,1,1,1,0);
RoubarMercadinho[playerid] = SetTimerEx("RoubarLojaMercadinho", 500, false, "i", playerid);
}
return 1;
}
forward RoubarLojaMercadinho(playerid);
public RoubarLojaMercadinho(playerid)
{
GivePlayerMoney(playerid, 5000);
return 1;
}