JawsCraft

Vehicle Container

May 16th, 2016
1,296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.16 KB | None | 0 0
  1. #include <a_samp>
  2. #include <streamer>
  3. #include <zcmd>
  4.  
  5. new IsInVehicle[MAX_PLAYERS];
  6.  
  7. public OnFilterScriptInit()
  8. {
  9. print("\n--------------------------------------");
  10. print(" FilterScript By JawsPlus ");
  11. print("--------------------------------------\n");
  12. CreateDynamicObject(19321, 225.77921, 1778.15930, 300.00000, 0.00000, 0.00000, 0.00000,-1,3);
  13. CreateDynamicObject(19321, 225.77921, 1771.00867, 300.00000, 0.00000, 0.00000, 0.00000,-1,3);
  14.  
  15. CreateVehicle(456, -1712.4635, 13.0354, 3.7423, 0.0000, -1, -1, 100);
  16. CreateVehicle(456, -1708.0593, 11.0412, 3.7423, 0.0000, -1, -1, 100);
  17. CreateVehicle(456, -1703.7712, 9.2236, 3.7423, 0.0000, -1, -1, 100);
  18.  
  19. return 1;
  20. }
  21.  
  22. COMMAND:container(playerid,prams[])
  23. {
  24. SetPlayerPos(playerid,-1704.5363,18.5412,3.5547);
  25. SetPlayerInterior(playerid, 0);
  26. IsInVehicle[playerid] = 0;
  27. SetPlayerVirtualWorld(playerid,0);
  28. return 1;
  29. }
  30.  
  31. public OnPlayerConnect(playerid)
  32. {
  33. IsInVehicle[playerid] = 0;
  34. }
  35.  
  36. public OnPlayerUpdate(playerid)
  37. {
  38. new vehicleid = GetNearest_Vehicle(playerid,4);
  39. new Float:vx, Float:vy, Float:vz;
  40. GetTrunkPos(vehicleid,vx,vy,vz);
  41. new Float:vx1, Float:vy1, Float:vz1;
  42. GetVehiclePos(vehicleid, vx1,vy1,vz1);
  43. if(IsPlayerInRangeOfPoint(playerid,3.0, vx,vy,vz1))
  44. {
  45. if (GetVehicleModel(vehicleid) == 456)
  46. {
  47. GameTextForPlayer(playerid,"~G~Press 'Y' to enter",1000,4);
  48. }
  49. }
  50. }
  51.  
  52. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  53. {
  54. if (newkeys == KEY_YES && IsInVehicle[playerid] == 0)
  55. {
  56. new vehicleid = GetNearest_Vehicle(playerid,4);
  57. new Float:vx, Float:vy, Float:vz;
  58. GetTrunkPos(vehicleid,vx,vy,vz);
  59. new Float:vx1, Float:vy1, Float:vz1;
  60. GetVehiclePos(vehicleid, vx1,vy1,vz1);
  61. if(IsPlayerInRangeOfPoint(playerid,3.0, vx,vy,vz1))
  62. {
  63. if (GetVehicleModel(vehicleid) == 456)
  64. {
  65. SetPlayerPos(playerid, 225.7954, 1781.4277, 299.5544);
  66. SetPlayerTime(playerid, 00,00);
  67. SetPlayerFacingAngle(playerid, 180);
  68. SetCameraBehindPlayer(playerid);
  69. SetPlayerInterior(playerid, 3);
  70. SetPlayerVirtualWorld(playerid,vehicleid);
  71. IsInVehicle[playerid] = vehicleid;
  72. SendClientMessage(playerid, 0xffffff,"Press 'Enter' to exit");
  73. }
  74. }
  75. }
  76. if (newkeys == KEY_SECONDARY_ATTACK && IsInVehicle[playerid] != 0)
  77. {
  78. new Float:vx, Float:vy, Float:vz;
  79. GetTrunkPos(IsInVehicle[playerid],vx,vy,vz);
  80. new Float:vx1, Float:vy1, Float:vz1;
  81. GetVehiclePos(IsInVehicle[playerid], vx1,vy1,vz1);
  82. SetPlayerPos(playerid, vx,vy, vz1+2);
  83. SetPlayerInterior(playerid, 0);
  84. SetPlayerVirtualWorld(playerid,0);
  85. IsInVehicle[playerid] = 0;
  86. return 1;
  87. }
  88. return 1;
  89. }
  90.  
  91. public OnPlayerDeath(playerid,killerid,reason)
  92. {
  93. if(IsInVehicle[playerid] == 1)
  94. {
  95. IsInVehicle[playerid] = 0;
  96. }
  97. }
  98.  
  99. public OnPlayerDisconnect(playerid , reason)
  100. {
  101. IsInVehicle[playerid] = 0;
  102. }
  103.  
  104. stock GetNearest_Vehicle(playerid, Float:distance)
  105. {
  106. new Float:xX,Float:yY,Float:zZ,retElement = -1;
  107. for(new i = 0; i < MAX_VEHICLES; i++)
  108. {
  109. GetVehiclePos(i, xX, yY, zZ);
  110. new Float:odist = GetPlayerDistanceFromPoint(playerid, xX, yY, zZ);
  111. if (retElement == -1)
  112. {
  113. retElement = i;
  114. distance = odist;
  115. }
  116. else if (odist < distance)
  117. {
  118. retElement = i;
  119. distance = odist;
  120. }
  121. }
  122. return retElement;
  123. }
  124.  
  125. stock GetXYBehindVehicle(vehicleid, &Float:x2, &Float:y2, Float:distance)
  126. {
  127. new Float:a;
  128. GetVehiclePos(vehicleid, x2, y2, a);
  129. GetVehicleZAngle(vehicleid, a);
  130. x2 += (distance * floatsin(-a+180, degrees));
  131. y2 += (distance * floatcos(-a+180, degrees));
  132. }
  133.  
  134. stock GetTrunkPos(vehicleid, &Float: x3, &Float:y3, &Float:z3)
  135. {
  136. new Float: x, Float: y;
  137. new Float: sizeX, Float: sizeY, Float:sizeZ[2];
  138.  
  139. GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, sizeX, sizeY, sizeZ[0]);
  140.  
  141. GetXYBehindVehicle(vehicleid, x, y, sizeY/2);
  142. x3 = x;
  143. y3 = y;
  144.  
  145. GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_REAR_BUMPER_Z , sizeX, sizeY, sizeZ[1]);
  146.  
  147. z3 = (sizeZ[1] + sizeZ[0]/2);
  148. }
Advertisement
Add Comment
Please, Sign In to add comment