Advertisement
Guest User

Untitled

a guest
May 30th, 2014
347
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.91 KB | None | 0 0
  1. #include <a_samp>
  2. #include <streamer>
  3. #include <zcmd>
  4. #include <foreach>
  5.  
  6. enum cPack {
  7. bool:CarePackageUsed,
  8. bool:CarePackageLanded,
  9. bool:PlaneMoveStage,
  10. Float:CarePackageRotation,
  11. CarePackagePlane,
  12. CarePackageFlare,
  13. CarePackageParachute,
  14. CarePackageBox,
  15. CarePackageStuff,
  16. Float:CarePackageLand[3],
  17. Text3D:CarePackageText
  18. }
  19. enum cPstuff {
  20. type,
  21. id,
  22. name[26],
  23. value
  24. }
  25. new CarePackageContains[][cPstuff] = {
  26. {0,9,"Chainsaw",1},
  27. {0,22,"Colt-45",50},
  28. {0,23,"Colt-45 Silenced",50},
  29. {0,24,"Desert Eagle",50},
  30. {0,25,"Shotgun",50},
  31. {0,26,"Sawnoff Shotgun",50},
  32. {0,27,"Combat Shotgun",50},
  33. {0,28,"Micro SMG/Uzi",50},
  34. {0,29,"MP5",50},
  35. {0,30,"AK-47",50},
  36. {0,31,"M4",50},
  37. {0,32,"TEC-9",50},
  38. {0,33,"Country Rifle",50},
  39. {0,34,"Sniper Rifle",50},
  40. {0,35,"RPG",50},
  41. {0,36,"Heat Seeker",50},
  42. //{0,38,"Minigun",50},
  43. {0,37,"Flamethrower",50}
  44. };
  45. new pCarePackage[MAX_PLAYERS][cPack];
  46. public OnFilterScriptInit() {
  47. print("\n--------------------------------------");
  48. print("Care Package System by EvilShadeZ");
  49. print("--------------------------------------\n");
  50. return 1;
  51. }
  52. CMD:carepackage(playerid, params[])
  53. {
  54. if(pCarePackage[playerid][CarePackageUsed] == true) return SendClientMessage(playerid,0xFF0000FF,"Care package is already incomming");
  55. new Float:X,Float:Y,Float:Z;
  56. GetPlayerPos(playerid,Float:X,Float:Y,Float:Z);
  57. CreateCarePackageForPlayer(playerid,Float:X,Float:Y,Float:Z);
  58. pCarePackage[playerid][CarePackageUsed] = true;
  59. return 1;
  60. }
  61. stock CreateCarePackageForPlayer(playerid,Float:X,Float:Y,Float:Z) {
  62. new angle = random(360);
  63. pCarePackage[playerid][PlaneMoveStage] = false;
  64. pCarePackage[playerid][CarePackageFlare] = CreateDynamicObject(18728,X,Y,Z-2,0,0,0,GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid),-1,250,250);
  65. pCarePackage[playerid][CarePackageLand][0] = X;
  66. pCarePackage[playerid][CarePackageLand][1] = Y;
  67. pCarePackage[playerid][CarePackageLand][2] = Z-1.5;
  68. pCarePackage[playerid][CarePackageRotation] = angle;
  69. GetXYFromPosWithAngle(X,Y,angle,300);
  70. pCarePackage[playerid][CarePackagePlane] = CreateDynamicObject(14553,X,Y,Z+75,11.9,0,-angle,GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid),-1,500,500);
  71. MoveDynamicObject(pCarePackage[playerid][CarePackagePlane], pCarePackage[playerid][CarePackageLand][0], pCarePackage[playerid][CarePackageLand][1], pCarePackage[playerid][CarePackageLand][2]+75, 30, 11.9, 0, -angle);
  72. Streamer_Update(playerid);
  73. pCarePackage[playerid][CarePackageLanded] = false;
  74. }
  75. public OnDynamicObjectMoved(objectid) {
  76. foreach(new i : Player) {
  77. if(objectid == pCarePackage[i][CarePackagePlane]) {
  78. if(pCarePackage[i][PlaneMoveStage] == false) {
  79. pCarePackage[i][PlaneMoveStage] = true;
  80. new Float:X,Float:Y,Float:Z,Float:PlaneFlyPos[2];
  81. GetDynamicObjectPos(objectid, X, Y, Z);
  82. PlaneFlyPos[0] = pCarePackage[i][CarePackageLand][0];
  83. PlaneFlyPos[1] = pCarePackage[i][CarePackageLand][1];
  84. GetXYFromPosWithAngle(PlaneFlyPos[0],PlaneFlyPos[1],pCarePackage[i][CarePackageRotation]+180,300);
  85. MoveDynamicObject(pCarePackage[i][CarePackagePlane], PlaneFlyPos[0], PlaneFlyPos[1], pCarePackage[i][CarePackageLand][2]+75, 30, 11.9, 0, -pCarePackage[i][CarePackageRotation]);
  86. //CarePackageParachute
  87. pCarePackage[i][CarePackageParachute] = CreateDynamicObject(2903,X,Y,Z,0,0,random(360),GetPlayerVirtualWorld(i),GetPlayerInterior(i),-1,200,200);
  88. MoveDynamicObject(pCarePackage[i][CarePackageParachute], pCarePackage[i][CarePackageLand][0], pCarePackage[i][CarePackageLand][1], pCarePackage[i][CarePackageLand][2], 15, 0, 0, random(360));
  89. Streamer_Update(i);
  90. break;
  91. } else if(pCarePackage[i][PlaneMoveStage] == true) {
  92. DestroyDynamicObject(objectid);
  93. pCarePackage[i][CarePackagePlane] = -1;
  94. break;
  95. }
  96. } else if(objectid == pCarePackage[i][CarePackageParachute]) {
  97. pCarePackage[i][CarePackageBox] = CreateDynamicObject(3013,pCarePackage[i][CarePackageLand][0], pCarePackage[i][CarePackageLand][1], pCarePackage[i][CarePackageLand][2]+0.7,0,0,random(360),GetPlayerVirtualWorld(i),GetPlayerInterior(i),-1,200,200);
  98. //CarePackageContains[][cPstuff]
  99. pCarePackage[i][CarePackageStuff] = random(sizeof(CarePackageContains));
  100. new string[128];
  101. pCarePackage[i][CarePackageLanded] = true;
  102. format(string,128,"{FFAF00}[{F3FF02}CARE PACKAGE{FFAF00}]\n{FFFFFF}%s",CarePackageContains[pCarePackage[i][CarePackageStuff]][name]);
  103. pCarePackage[i][CarePackageText] = Create3DTextLabel(string, 0x008080FF, pCarePackage[i][CarePackageLand][0], pCarePackage[i][CarePackageLand][1], pCarePackage[i][CarePackageLand][2]+1, 40.0, GetPlayerVirtualWorld(i), 0);
  104. DestroyDynamicObject(objectid);
  105. DestroyDynamicObject(pCarePackage[i][CarePackageFlare]);
  106. pCarePackage[i][CarePackageParachute] = -1;
  107. pCarePackage[i][CarePackageFlare] = -1;
  108. Streamer_Update(i);
  109. break;
  110. }
  111. }
  112. }
  113. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  114. {
  115. if (newkeys && KEY_SECONDARY_ATTACK)
  116. {
  117. foreach(new i : Player) {
  118. if(pCarePackage[i][CarePackageUsed] == true && pCarePackage[i][CarePackageLanded] == true) {
  119. if(IsPlayerInRangeOfPoint(playerid,2,pCarePackage[i][CarePackageLand][0], pCarePackage[i][CarePackageLand][1], pCarePackage[i][CarePackageLand][2])) {
  120. DestroyDynamicObject(pCarePackage[i][CarePackageBox]);
  121. Delete3DTextLabel(pCarePackage[i][CarePackageText]);
  122. pCarePackage[i][CarePackageBox] = -1;
  123. new string[128];
  124. format(string,sizeof(string),"{FFAF00}[{F3FF02}CARE PACKAGE{FFAF00}]{FFFFFF} You've picked up %s from care package.",CarePackageContains[pCarePackage[i][CarePackageStuff]][name]);
  125. SendClientMessage(playerid,0xFFFFFFFF,string);
  126. OnPlayerPickUpCarePackage(playerid,pCarePackage[i][CarePackageStuff]);
  127. pCarePackage[i][CarePackageUsed] = false;
  128. pCarePackage[i][CarePackageLanded] = false;
  129. break;
  130. }
  131. }
  132. }
  133. }
  134. return 1;
  135. }
  136. forward OnPlayerPickUpCarePackage(playerid,pickupid);
  137. public OnPlayerPickUpCarePackage(playerid,pickupid) {
  138. if(CarePackageContains[pickupid][type] == 0) GivePlayerWeapon(playerid,CarePackageContains[pickupid][id],CarePackageContains[pickupid][value]);
  139.  
  140. }
  141. public OnPlayerConnect(playerid) {
  142. pCarePackage[playerid][CarePackageUsed] = false;
  143. pCarePackage[playerid][CarePackageLanded] = false;
  144. pCarePackage[playerid][CarePackagePlane] = -1;
  145. pCarePackage[playerid][CarePackageFlare] = -1;
  146. pCarePackage[playerid][CarePackageParachute] = -1;
  147. return 1;
  148. }
  149. GetXYFromPosWithAngle(&Float:x, &Float:y,Float:Angle,Float:distance) {
  150. x += (distance * floatsin(Angle, degrees));
  151. y += (distance * floatcos(Angle, degrees));
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement