Advertisement
Rhayziin

RecreateActor

May 11th, 2015
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.75 KB | None | 0 0
  1. //By Rhayziin (http://forum.sa-mp.com/showthread.php?t=573829)
  2.  
  3. public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float: amount, weaponid, bodypart)
  4. {
  5.     new StringActor[150], WeaponName[24]; //Criando as variáveis que amazenará o nome da arma(WeaponName) e a mensagem que será transmitida no chat(StringActor)
  6.  
  7.     GetWeaponName(weaponid, WeaponName, sizeof (WeaponName)); //Pegando o nome da arma que foi usada para causa dano ao Ator
  8.  
  9.     if(!IsActorInvulnerable(damaged_actorid)) //Verificando se o Ator é vulnerável, se sim, segue o código. Se não, o código abaixo não é executado
  10.     {
  11.         new Float:Actor_Health; //Criando a variável que armazenará a vida do Ator
  12.         GetActorHealth(damaged_actorid, Actor_Health); //Pegando a vida atual do Ator
  13.         SetActorHealth(damaged_actorid, Actor_Health-amount); //Aplicando o dano ao Ator
  14.  
  15.         format(StringActor, sizeof(StringActor), "ActorID: %d | VW: %d | Arma: %s | BodyPartID: %d | Dano: %.0f | Vida: %.0f", damaged_actorid, GetActorVirtualWorld(damaged_actorid), WeaponName, bodypart, amount, Actor_Health-amount); //Formatando a mensagem que será enviada no chat
  16.         SendClientMessage(playerid, -1, StringActor); //Enviando a mensagem no chat
  17.        
  18.         if(Actor_Health-amount <= 0.0) RecreateActor(damaged_actorid, 306); //Se a vida do Ator chegar a 0 (ou menos) ele é recriado.
  19.     }
  20.     return 1;
  21. }
  22.  
  23. stock RecreateActor(ActorID, SkinID)
  24. {
  25.     new Float:PosActor[4];
  26.     GetActorPos(ActorID, PosActor[0], PosActor[1], PosActor[2]);
  27.     GetActorFacingAngle(ActorID, PosActor[3]);
  28.  
  29.     DestroyActor(ActorID);
  30.  
  31.     CreateActor(SkinID, PosActor[0], PosActor[1], PosActor[2], PosActor[3]);
  32.     SetActorInvulnerable(ActorID, false);
  33.     SetActorHealth(ActorID, 100);
  34.     return 1;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement