Advertisement
Guest User

Untitled

a guest
Sep 18th, 2014
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. // Used for throwing a road flare
  2.  
  3. #include <YSI\y_hooks>
  4.  
  5. forward RoadFlare(playerid);
  6. public RoadFlare(playerid)
  7. {
  8. if(ReadyToThrow[playerid] == THROW_TYPE_NONE)
  9. {
  10. GivePlayerWeapon(playerid, 1, 1);
  11. SetPlayerAttachedObject(playerid, 6, 354, 6, 0.037000, -0.034999, 0.166000, -64.199996, 0.000000, -89.499992, 1.000000, 1.000000, 1.000000);
  12. ReadyToThrow[playerid] = THROW_TYPE_FLARE;
  13. return 1;
  14. }
  15. return 0;
  16. }
  17.  
  18. hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  19. {
  20. #if defined USE_RNPC
  21. if(IsPlayerNPC(playerid)) return 1;
  22. #endif
  23.  
  24. if(!IsPlayerInAnyVehicle(playerid))
  25. {
  26. if(ReadyToThrow[playerid] == THROW_TYPE_FLARE && newkeys & KEY_FIRE)
  27. {
  28. new Float:x, Float:y, Float:z, Float:faoffset;
  29. GetPlayerPos(playerid, x, y, z);
  30. PlayAnimation(playerid, "GRENADE", "WEAPON_throw", 4.1, 0, 0, 0, 0, 0);
  31.  
  32. MRandFloatRange(-15.0, 15.0, faoffset);
  33.  
  34. // Create throw frames
  35. new ThrowIndex = CreateThrowFrames(playerid, 15, 7.0, 4.0, 20.0, 20.0, 0.1, faoffset, x, y, z);
  36.  
  37. // Create the throw object on frames
  38. CreateThrowObject(ThrowIndex, 354, x, y, z, 0.0, 0.0, 0.0);
  39.  
  40. // Callback function
  41. SetThrowCallBack(ThrowIndex, "Flare");
  42.  
  43. // Throw the flare
  44. SetTimerEx("ThrowFlare", 100, false, "ii", playerid, ThrowIndex);
  45.  
  46. // Player can't throw now
  47. ReadyToThrow[playerid] = THROW_TYPE_NONE;
  48. }
  49. }
  50. return 1;
  51. }
  52.  
  53. // Start throwing the flare
  54. forward ThrowFlare(playerid, index);
  55. public ThrowFlare(playerid, index)
  56. {
  57. SetTimerEx("ClearThrowAnim", 400, false, "i", playerid);
  58. RemovePlayerAttachedObject(playerid, 6);
  59.  
  60. StartThrowAnim(playerid, index);
  61.  
  62. return 1;
  63. }
  64.  
  65. // Flare was thrown and landed
  66. OnThrown:Flare(playerid, index)
  67. {
  68. ThrowObjects[index][CurrThrowFrame]--;
  69.  
  70. DestroyThrowObject(index);
  71.  
  72. new tmpobj = CreateDynamicObject(354,
  73. ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameX],
  74. ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameY],
  75. ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameZ],
  76. 0.0, 0.0, 0.0, -1, -1, -1, 300.0);
  77.  
  78. // Distract zombies
  79. DistractZombies(ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameX],
  80. ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameY],
  81. ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameZ],
  82. 10000);
  83.  
  84. foreach(new i : Player)
  85. {
  86. if(IsPlayerInRangeOfPoint(i, 300.0, ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameX],
  87. ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameY],
  88. ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameZ])) Streamer_Update(i);
  89. }
  90. SetTimerEx("RemoveFlare", 536400, false, "i", tmpobj);
  91.  
  92. }
  93.  
  94. forward RemoveFlare(objectid);
  95. public RemoveFlare(objectid) { DestroyDynamicObject(objectid); }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement