Advertisement
Guest User

Actors system (for tws)

a guest
Jan 21st, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.03 KB | None | 0 0
  1. //requires sscanf2 and ZCMD, this goddamn script is made by the food pizza
  2.  
  3. #include <a_actor>
  4.  
  5. native GetActorPoolSize();
  6.  
  7. forward OnPlayerGiveDamageActor(playerid, damaged_actorid, Float:amount, weaponid, bodypart);
  8.  
  9. native GetPlayerTargetActor(playerid);
  10.  
  11.  
  12. CMD:spawnactor(playerid, params[])
  13. {
  14.     new Float:Pos[3],skinid,str[256],bool:invulnerability,Float:Angle;
  15.     if(sscanf(params,"il",skinid,invulnerability)) return SendClientMessage(playerid,COLOR_PURPLE,"USAGE: /spawnactor [skinid] [Vulnerability (0: invulnerable / 1: vulnerable)]");
  16.     GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
  17.     GetPlayerFacingAngle(playerid, Angle);
  18.     new Actor = CreateActor(skinid, Pos[0], Pos[1], Pos[2], 0);
  19.     SetPlayerPos(playerid,Pos[0]+1,Pos[1]+1,Pos[2]);
  20.     SetActorFacingAngle(Actor, Angle);
  21.     format(str,sizeof(str),"Actor %d was created! Pos: x[%f], y[%f], z[%f]",Actor,Pos[0],Pos[1],Pos[2]);
  22.     SendClientMessage(playerid,COLOR_GREEN,str);
  23.     if(invulnerability == false)
  24.     {
  25.         SetActorInvulnerable(Actor, true);
  26.         SendClientMessage(playerid,COLOR_GREEN,"This actor is invulnerable!");
  27.     }
  28.     else if(invulnerability == true)
  29.     {
  30.         SetActorInvulnerable(Actor,false);
  31.         SendClientMessage(playerid,COLOR_GREEN,"This actor is vulnerable!");
  32.     }
  33.     return 1;
  34. }
  35.  
  36. CMD:removeactor(playerid, params[])
  37. {
  38.     new actorid,str[256];
  39.     if(sscanf(params,"i",actorid)) return SendClientMessage(playerid,COLOR_PURPLE,"USAGE: /removeactor [actor id]");
  40.     format(str,sizeof(str),"Actor %d was removed!",actorid);
  41.     if(IsValidActor(actorid))
  42.     {
  43.         SendClientMessage(playerid,COLOR_GREEN,str);
  44.         DestroyActor(actorid);
  45.     }
  46.     return 1;
  47. }
  48.  
  49. CMD:clearallactors(playerid, params[])
  50. {
  51.     for(new i = 0, j = GetActorPoolSize(); i <= j; i++)
  52.     {
  53.         if(IsValidActor(i))
  54.         {
  55.             DestroyActor(i);
  56.         }
  57.     }
  58.     return 1;
  59. }
  60.  
  61. CMD:gotoactor(playerid, params[])
  62. {
  63.     new Float:Pos[3],actorid,str[256];
  64.     if(sscanf(params,"i",actorid)) return SendClientMessage(playerid,COLOR_PURPLE,"USAGE: /gotoactor [actor id]");
  65.     GetActorPos(actorid,Pos[0],Pos[1],Pos[2]);
  66.     SetPlayerPos(playerid,Pos[0]+3,Pos[1],Pos[2]+8);
  67.     format(str,sizeof(str),"You have been teleported to actor %d!",actorid);
  68.     SendClientMessage(playerid,COLOR_GREEN,str);
  69.     return 1;
  70. }
  71.  
  72. CMD:allactors(playerid, params[])
  73. {
  74.     new str[400];
  75.     for(new i = 0, j = GetActorPoolSize(); i <= j; i++)
  76.     {
  77.         if(IsValidActor(i))
  78.         {
  79.             format(str,sizeof(str),"Actor: %d | vulnerability: %d",i,!IsActorInvulnerable(i));
  80.             SendClientMessage(playerid,COLOR_GREEN,str);
  81.         }
  82.     }
  83.     return 1;
  84. }
  85.  
  86. CMD:setactoranim(playerid, params[])
  87. {
  88.     new animation[256],actorid,str[256];
  89.     if(sscanf(params,"is[100]",actorid,animation)) return SendClientMessage(playerid,COLOR_PURPLE,"USAGE: /setactoranim [actor id] [animation]");
  90.     if(IsValidActor(actorid))
  91.     {
  92.         if(strcmp(animation, "injured") == 0)
  93.         {
  94.             ApplyActorAnimation(actorid, "SWEET", "Sweet_injuredloop", 4.1, 1, 0, 0, 0, 0);
  95.             ApplyActorAnimation(actorid, "SWEET", "Sweet_injuredloop", 4.1, 1, 0, 0, 0, 0);
  96.             format(str,sizeof(str),"Applied animation '%s' on Actor %d",animation,actorid);
  97.             SendClientMessage(playerid,COLOR_GREEN,str);
  98.         }
  99.         if(strcmp(animation, "handsup") == 0)
  100.         {
  101.             ApplyActorAnimation(actorid, "SHOP", "SHP_Rob_HandsUp", 4.1, 1, 0, 0, 0, 0);
  102.             ApplyActorAnimation(actorid, "SHOP", "SHP_Rob_HandsUp", 4.1, 1, 0, 0, 0, 0);
  103.             format(str,sizeof(str),"Applied animation '%s' on Actor %d",animation,actorid);
  104.             SendClientMessage(playerid,COLOR_GREEN,str);
  105.         }
  106.         if(strcmp(animation, "aim") == 0)
  107.         {
  108.             ApplyActorAnimation(actorid, "SHOP", "SHP_Gun_Aim", 4.1, 1, 0, 0, 0, 0);
  109.             ApplyActorAnimation(actorid, "SHOP", "SHP_Gun_Aim", 4.1, 1, 0, 0, 0, 0);
  110.             format(str,sizeof(str),"Applied animation '%s' on Actor %d",animation,actorid);
  111.             SendClientMessage(playerid,COLOR_GREEN,str);
  112.         }
  113.         if(strcmp(animation, "sit") == 0)
  114.         {
  115.             ApplyActorAnimation(actorid, "BEACH", "ParkSit_M_loop", 4.1, 1, 0, 0, 0, 0);
  116.             ApplyActorAnimation(actorid, "BEACH", "ParkSit_M_loop", 4.1, 1, 0, 0, 0, 0);
  117.             format(str,sizeof(str),"Applied animation '%s' on Actor %d",animation,actorid);
  118.             SendClientMessage(playerid,COLOR_GREEN,str);
  119.         }
  120.         if(strcmp(animation, "lean") == 0)
  121.         {
  122.             ApplyActorAnimation(actorid, "GANGS", "leanIDLE", 4.1, 1, 0, 0, 0, 0);
  123.             ApplyActorAnimation(actorid, "GANGS", "leanIDLE", 4.1, 1, 0, 0, 0, 0);
  124.             format(str,sizeof(str),"Applied animation '%s' on Actor %d",animation,actorid);
  125.             SendClientMessage(playerid,COLOR_GREEN,str);
  126.         }
  127.     }
  128.     else return SendClientMessage(playerid,COLOR_RED,"Invalid actor id!");
  129.     return 1;
  130. }
  131.  
  132. CMD:cancelactoranim(playerid, params[])
  133. {
  134.     new actorid;
  135.     if(sscanf(params,"i",actorid)) return SendClientMessage(playerid,COLOR_PURPLE,"USAGE: /cancelactoranim [actor id]");
  136.     if(IsValidActor(actorid))
  137.     {
  138.         ClearActorAnimations(actorid);
  139.         SendClientMessage(playerid,COLOR_GREEN,"Animation canceled!");
  140.     }
  141.     else return SendClientMessage(playerid,COLOR_RED,"Invalid actor id!");
  142.     return 1;
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement