SHARE
TWEET

Snowball System by DjReven

a guest Dec 24th, 2014 330 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  
  3. Filterscript by DjReven
  4. Skype: dominik.kunze99
  5. Do not remove the credits!
  6.  
  7. */
  8.  
  9. #include <a_samp>
  10. new SnowballActiviert[MAX_PLAYERS];
  11. new SnowballShootWait[MAX_PLAYERS];
  12. new Snowballvalue[MAX_PLAYERS];
  13.  
  14. public OnFilterScriptInit()
  15. {
  16.         print("\n--------------------------------------");
  17.         print(" Blank Filterscript by your name here");
  18.         print("--------------------------------------\n");
  19.         return 1;
  20. }
  21.  
  22. public OnFilterScriptExit()
  23. {
  24.         return 1;
  25. }
  26.  
  27. public OnPlayerConnect(playerid)
  28. {
  29.         return 1;
  30. }
  31.  
  32. public OnPlayerDisconnect(playerid, reason)
  33. {
  34.     SnowballActiviert[playerid] = 0;
  35.     SnowballShootWait[playerid] = 0;
  36.         Snowballvalue[playerid] = 0;
  37.         return 1;
  38. }
  39.  
  40. public OnPlayerCommandText(playerid, cmdtext[])
  41. {
  42.         if(strcmp(cmdtext,"/snowball",true)==0)
  43.         {
  44.             if(SnowballActiviert[playerid] == 0)
  45.             {
  46.                 SnowballActiviert[playerid] = 1;
  47.                 SendClientMessage(playerid,0xFFFFFFFF,"Du kannst nun mit LMB auf User Visieren und mit RMB auf diese schießen.");
  48.                 return 1;
  49.             }else{
  50.             SnowballActiviert[playerid] = 0;
  51.             SendClientMessage(playerid,0xFFFFFFFF,"Du schießt jetzt keine Schneebälle mehr!");
  52.             return 1;
  53.             }
  54.         }
  55.         if(strcmp(cmdtext,"/credits",true)==0)
  56.         {
  57.             SendClientMessage(playerid,0xFFFFFFFF,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
  58.             SendClientMessage(playerid,0xFFFFFFFF,"Snowball System by DjReven");
  59.             SendClientMessage(playerid,0xFFFFFFFF,"Skype: dominik.kunze99");
  60.                 SendClientMessage(playerid,0xFFFFFFFF,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
  61.         }
  62.         return 0;
  63. }
  64. Float:DistanceCameraTargetToLocation(Float:CamX, Float:CamY, Float:CamZ, Float:ObjX, Float:ObjY, Float:ObjZ, Float:FrX, Float:FrY, Float:FrZ) {
  65.  
  66.         new Float:TGTDistance;
  67.  
  68.         TGTDistance = floatsqroot((CamX - ObjX) * (CamX - ObjX) + (CamY - ObjY) * (CamY - ObjY) + (CamZ - ObjZ) * (CamZ - ObjZ));
  69.  
  70.         new Float:tmpX, Float:tmpY, Float:tmpZ;
  71.  
  72.         tmpX = FrX * TGTDistance + CamX;
  73.         tmpY = FrY * TGTDistance + CamY;
  74.         tmpZ = FrZ * TGTDistance + CamZ;
  75.  
  76.         return floatsqroot((tmpX - ObjX) * (tmpX - ObjX) + (tmpY - ObjY) * (tmpY - ObjY) + (tmpZ - ObjZ) * (tmpZ - ObjZ));
  77. }
  78.  
  79. stock Float:GetPointAngleToPoint(Float:x2, Float:y2, Float:X, Float:Y) {
  80.  
  81.   new Float:DX, Float:DY;
  82.   new Float:angle;
  83.  
  84.   DX = floatabs(floatsub(x2,X));
  85.   DY = floatabs(floatsub(y2,Y));
  86.  
  87.   if (DY == 0.0 || DX == 0.0) {
  88.     if(DY == 0 && DX > 0) angle = 0.0;
  89.     else if(DY == 0 && DX < 0) angle = 180.0;
  90.     else if(DY > 0 && DX == 0) angle = 90.0;
  91.     else if(DY < 0 && DX == 0) angle = 270.0;
  92.     else if(DY == 0 && DX == 0) angle = 0.0;
  93.   }
  94.   else {
  95.     angle = atan(DX/DY);
  96.  
  97.     if(X > x2 && Y <= y2) angle += 90.0;
  98.     else if(X <= x2 && Y < y2) angle = floatsub(90.0, angle);
  99.     else if(X < x2 && Y >= y2) angle -= 90.0;
  100.     else if(X >= x2 && Y > y2) angle = floatsub(270.0, angle);
  101.   }
  102.  
  103.   return floatadd(angle, 90.0);
  104. }
  105.  
  106. stock GetXYInFrontOfPoint(&Float:x, &Float:y, Float:angle, Float:distance) {
  107.         x += (distance * floatsin(-angle, degrees));
  108.         y += (distance * floatcos(-angle, degrees));
  109. }
  110.  
  111. stock IsPlayerAimingAt(playerid, Float:x, Float:y, Float:z, Float:radius) {
  112.   new Float:camera_x,Float:camera_y,Float:camera_z,Float:vector_x,Float:vector_y,Float:vector_z;
  113.   GetPlayerCameraPos(playerid, camera_x, camera_y, camera_z);
  114.   GetPlayerCameraFrontVector(playerid, vector_x, vector_y, vector_z);
  115.  
  116.         new Float:vertical, Float:horizontal;
  117.  
  118.         switch (GetPlayerWeapon(playerid)) {
  119.           case 34,35,36: {
  120.           if (DistanceCameraTargetToLocation(camera_x, camera_y, camera_z, x, y, z, vector_x, vector_y, vector_z) < radius) return true;
  121.           return false;
  122.           }
  123.           case 30,31: {vertical = 4.0; horizontal = -1.6;}
  124.           case 33: {vertical = 2.7; horizontal = -1.0;}
  125.           default: {vertical = 6.0; horizontal = -2.2;}
  126.         }
  127.  
  128.   new Float:angle = GetPointAngleToPoint(0, 0, floatsqroot(vector_x*vector_x+vector_y*vector_y), vector_z) - 270.0;
  129.   new Float:resize_x, Float:resize_y, Float:resize_z = floatsin(angle+vertical, degrees);
  130.   GetXYInFrontOfPoint(resize_x, resize_y, GetPointAngleToPoint(0, 0, vector_x, vector_y)+horizontal, floatcos(angle+vertical, degrees));
  131.  
  132.   if (DistanceCameraTargetToLocation(camera_x, camera_y, camera_z, x, y, z, resize_x, resize_y, resize_z) < radius) return true;
  133.   return false;
  134. }
  135. stock IsPlayerAimingAtPlayer(playerid, targetplayerid) {
  136.   new Float:x, Float:y, Float:z;
  137.   GetPlayerPos(targetplayerid, x, y, z);
  138.   return IsPlayerAimingAt(playerid, x, y, z, 1.1);
  139. }
  140. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  141. {
  142.         if((newkeys & KEY_HANDBRAKE) && (newkeys & KEY_FIRE))
  143.         {
  144.             if(GetPlayerWeapon(playerid) == 0 || GetPlayerWeapon(playerid) == 1)
  145.             {
  146.                     if(SnowballActiviert[playerid] == 1)
  147.                     {
  148.                         if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
  149.                         {
  150.                             if(Snowballvalue[playerid] >= 5)
  151.                             {
  152.                                 SendClientMessage(playerid,0xFFFFFFFF,"Du besitzt schon 5 Schneebälle!");
  153.                                 return 1;
  154.                             }else{
  155.                                 Snowballvalue[playerid] += 1;
  156.                                 SendClientMessage(playerid,0xFFFFFFFF,"Du hast ein Schneeball gebaut!");
  157.                                 return 1;
  158.                             }
  159.                         }else{
  160.                                     if(SnowballShootWait[playerid] == 0)
  161.                                     {
  162.                                                 if(Snowballvalue[playerid] >= 1)
  163.                                                 {
  164.                                                 SnowballShootWait[playerid] = 1;
  165.                                                 Snowballvalue[playerid] -= 1;
  166.                                                 SetTimerEx("SnowballShootActivieren",2000,0,"u",playerid);
  167.                                                 ApplyAnimation(playerid, "GRENADE", "WEAPON_throw", 4.0, 0, 0, 0, 0, 0, 1);
  168.                                                         for(new i=0; i<MAX_PLAYERS; i++)
  169.                                                         {
  170.                                                             if(IsPlayerConnected(i))
  171.                                                             {
  172.                                                                     if(IsPlayerAimingAtPlayer(playerid,i))
  173.                                                                     {
  174.                                                                         if(playerid != i)
  175.                                                                         {
  176.                                                                                     new Float:x,
  177.                                                                                         Float:y,
  178.                                                                                         Float:z;
  179.                                                                                         GetPlayerPos(playerid,x,y,z);
  180.                                                                                         if(IsPlayerInRangeOfPoint(i,20.0,x,y,z))
  181.                                                                                         {
  182.                                                                                             if(!IsPlayerInAnyVehicle(i))
  183.                                                                                             {
  184.                                                                                     ApplyAnimation(i,"FIGHT_B","HitB_1",4.0, 0, 0, 0, 0, 0, 1);
  185.                                                                                     return 1;
  186.                                                                             }
  187.                                                                                         }
  188.                                                                                 }
  189.                                                                         }
  190.                                                                 }
  191.                                                         }
  192.                                                 }else{
  193.                                                     SendClientMessage(playerid,0xFFFFFFFF,"Du besitzt keinen Schnellball!");
  194.                                                     return 1;
  195.                                                 }
  196.                                         }
  197.                             }
  198.                     }
  199.             }
  200.         }
  201.         return 1;
  202. }
  203.  
  204. forward SnowballShootActivieren(playerid);
  205. public SnowballShootActivieren(playerid)
  206. {
  207.     SnowballShootWait[playerid] = 0;
  208.         return 1;
  209. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top