Advertisement
StreetGT

Carrinha das motas v2

Aug 2nd, 2012
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 9.52 KB | None | 0 0
  1. // Sente-te livre para editares
  2. // Mantem apenas os meus creditos.
  3. // Carrinha das Motas v2 por StreetGT do www.forum.sa-mp.com
  4.  
  5. #include <a_samp>
  6.  
  7. new GetIn[MAX_PLAYERS], InteriorTruck[9], slot = 0;
  8. new van;
  9.  
  10. forward Float:GetDistanceBetweenVehicles(vehicleid,carid);
  11. forward Float:GetDistBetweenVehiclePlayer(v1, p2);
  12.  
  13. public OnFilterScriptInit()
  14. {
  15.     print("\n--------------------------------------");
  16.     print(" Carrinha das Motas por -> StreetGT <-");
  17.     print("--------------------------------------\n");
  18.     van = AddStaticVehicleEx(498,740.5068,-1332.7472,14.1702,269.5034,6,6,-1); // Mechanics Van
  19.     InteriorTruck[0]= CreateObject(11292, 2081.333496, -1375.118530, 300.764832, 0.0000, 0.0000, 0.0000);
  20.     InteriorTruck[1]= CreateObject(974, 2077.989258, -1376.559937, 300.831085, 0.0000, 0.0000, 0.0000);
  21.     InteriorTruck[2]= CreateObject(974, 2077.123047, -1374.362671, 300.655640, 0.0000, 0.0000, 270.0000);
  22.     InteriorTruck[3]= CreateObject(974, 2078.161133, -1373.030640, 300.330536, 0.0000, 0.0000, 0.0000);
  23.     InteriorTruck[4]= CreateObject(2395, 2080.772949, -1376.560547, 299.490601, 0.0000, 0.0000, 180.0000);
  24.     InteriorTruck[5]= CreateObject(1533, 2085.592773, -1373.328857, 299.552917, 0.0000, 0.0000, 270.0000);
  25.     InteriorTruck[6]= CreateObject(1533, 2085.569824, -1374.802246, 299.539307, 0.0000, 0.0000, 270.0000);
  26.     InteriorTruck[7]= CreateObject(1754, 2083.981445, -1373.538574, 299.553741, 0.0000, 0.0000, 0.0000);
  27.     InteriorTruck[8]= CreateObject(1754, 2083.128906, -1373.539063, 299.553741, 0.0000, 0.0000, 0.0000);
  28.     return 1;
  29. }
  30.  
  31. public OnFilterScriptExit()
  32. {
  33.     return 1;
  34. }
  35.  
  36. main()
  37. {
  38.     print("\n----------------------------------");
  39.     print(" Carrinha das Motas por StreetGT");
  40.     print(" Aproveita!");
  41.     print("----------------------------------\n");
  42. }
  43.  
  44.  
  45. public OnPlayerConnect(playerid)
  46. {
  47.     GetIn[playerid] = 0;
  48.     return 1;
  49. }
  50.  
  51. public OnPlayerDisconnect(playerid, reason)
  52. {
  53.     return 1;
  54. }
  55.  
  56. public OnPlayerSpawn(playerid)
  57. {
  58.     return 1;
  59. }
  60.  
  61. public OnPlayerDeath(playerid, killerid, reason)
  62. {
  63.     return 1;
  64. }
  65.  
  66. public OnVehicleSpawn(vehicleid)
  67. {
  68.     return 1;
  69. }
  70.  
  71. public OnVehicleDeath(vehicleid, killerid)
  72. {
  73.     return 1;
  74. }
  75.  
  76. public OnPlayerText(playerid, text[])
  77. {
  78.     return 1;
  79. }
  80.  
  81. public OnPlayerCommandText(playerid, cmdtext[])
  82. {
  83.     if(strcmp(cmdtext, "/descarregar", true) == 0)
  84.     {
  85.         if(IsPlayerConnected(playerid))
  86.         {
  87.             if(GetPlayerVehicleID(playerid) == van)
  88.             {
  89.                 if(slot == 0) return SendClientMessage(playerid, -1, "Não existe motas dentro da carrinha.");
  90.                 Descarregar();
  91.             }
  92.             else SendClientMessage(playerid, -1, "Tu não estás a conduzir a carrinha das motas!");
  93.         }
  94.     }
  95.     return 0;
  96. }
  97.  
  98. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  99. {
  100.     return 1;
  101. }
  102.  
  103. public OnPlayerExitVehicle(playerid, vehicleid)
  104. {
  105.     return 1;
  106. }
  107.  
  108. public OnPlayerStateChange(playerid, newstate, oldstate)
  109. {
  110.     return 1;
  111. }
  112.  
  113. public OnPlayerEnterCheckpoint(playerid)
  114. {
  115.     return 1;
  116. }
  117.  
  118. public OnPlayerLeaveCheckpoint(playerid)
  119. {
  120.     return 1;
  121. }
  122.  
  123. public OnPlayerEnterRaceCheckpoint(playerid)
  124. {
  125.     return 1;
  126. }
  127.  
  128. public OnPlayerLeaveRaceCheckpoint(playerid)
  129. {
  130.     return 1;
  131. }
  132.  
  133. public OnRconCommand(cmd[])
  134. {
  135.     return 1;
  136. }
  137.  
  138. public OnPlayerRequestSpawn(playerid)
  139. {
  140.     return 1;
  141. }
  142.  
  143. public OnObjectMoved(objectid)
  144. {
  145.     return 1;
  146. }
  147.  
  148. public OnPlayerObjectMoved(playerid, objectid)
  149. {
  150.     return 1;
  151. }
  152.  
  153. public OnPlayerPickUpPickup(playerid, pickupid)
  154. {
  155.     return 1;
  156. }
  157.  
  158. public OnVehicleMod(playerid, vehicleid, componentid)
  159. {
  160.     return 1;
  161. }
  162.  
  163. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  164. {
  165.     return 1;
  166. }
  167.  
  168. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  169. {
  170.     return 1;
  171. }
  172.  
  173. public OnPlayerSelectedMenuRow(playerid, row)
  174. {
  175.     return 1;
  176. }
  177.  
  178. public OnPlayerExitedMenu(playerid)
  179. {
  180.     return 1;
  181. }
  182.  
  183. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  184. {
  185.     return 1;
  186. }
  187.  
  188. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  189. {
  190.     if(newkeys & KEY_YES)
  191.     {
  192.         if(GetDistBetweenVehiclePlayer(van,playerid) <= 3 || IsPlayerInRangeOfPoint(playerid,3.0, 2084.6538,-1374.2390,300.5588))
  193.         {
  194.            GetInto(playerid);
  195.         }
  196.     }
  197.     if ((newkeys==KEY_ACTION) && (IsPlayerInAnyVehicle(playerid)) && (GetPlayerState(playerid)==PLAYER_STATE_DRIVER))
  198.     {
  199.         if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 498)
  200.         {
  201.             new vid = GetClosestVehicle(playerid);
  202.             new Float:x,Float:y,Float:z;
  203.             GetPosBehindVehicle(van,x,y,z);
  204.             if(VehicleToPoint(3.0,vid,x,y,z))
  205.             {
  206.                 if(IsABike(vid))
  207.                 {
  208.                     if(!IsVehicleInUse(vid))
  209.                     {
  210.                         if(slot == 0)
  211.                         {
  212.                             SetVehiclePos(vid,2077.8936,-1375.0763,300.154);
  213.                             SetVehicleZAngle(vid,183.4);
  214.                             slot++;
  215.                         }
  216.                         else if(slot == 1)
  217.                         {
  218.                             SetVehiclePos(vid,2078.9941,-1375.0520,300.1554);
  219.                             SetVehicleZAngle(vid,183.4);
  220.                             slot++;
  221.                         }
  222.                         else if(slot == 2)
  223.                         {
  224.                             SetVehiclePos(vid,2079.8987,-1375.0085,300.1540);
  225.                             SetVehicleZAngle(vid,183.4);
  226.                             slot++;
  227.                         }
  228.                         else if(slot == 3)
  229.                         {
  230.                             SetVehiclePos(vid,2081.0239,-1374.8945,300.1557);
  231.                             SetVehicleZAngle(vid,183.4);
  232.                             slot++;
  233.                         }
  234.                         else return SendClientMessage(playerid,-1,"A carrinha das motas já se encontra cheia!");
  235.                         if(slot >=0 && slot <= 4 ) { LinkVehicleToInterior(vid,1), SendClientMessage(playerid,0x33CCFFAA,"Veículo rebocado para o interior!"); }
  236.                     }
  237.                     else SendClientMessage(playerid, -1,"Este veículo não está desocupado!");
  238.                 }
  239.                 else SendClientMessage(playerid, -1,"Este veículo não é uma mota!");
  240.             }
  241.             else SendClientMessage(playerid, -1,"Não está nenhum veículo perto da mala!");
  242.         }
  243.     }
  244.     return 1;
  245. }
  246.  
  247. public OnRconLoginAttempt(ip[], password[], success)
  248. {
  249.     return 1;
  250. }
  251.  
  252. public OnPlayerUpdate(playerid)
  253. {
  254.     return 1;
  255. }
  256.  
  257. stock GetInto(playerid)
  258. {
  259.     if(IsPlayerConnected(playerid))
  260.     {
  261.         if(IsPlayerInAnyVehicle(playerid)) return 1;
  262.         if(GetIn[playerid] == 0)
  263.         {
  264.             if(GetDistBetweenVehiclePlayer(van,playerid) <= 3)
  265.             {
  266.                 GetIn[playerid] = 1;
  267.                 SetPlayerPos(playerid, 2084.479980, -1374.825928, 300.628052);
  268.                 SetPlayerFacingAngle(playerid, 0);
  269.                 SetCameraBehindPlayer(playerid);
  270.                 SetPlayerInterior(playerid, 1);
  271.             }
  272.         }
  273.         else if(GetIn[playerid] == 1)
  274.         {
  275.             if(IsPlayerInRangeOfPoint(playerid,3.0, 2084.6538,-1374.2390,300.5588))
  276.             {
  277.                 GetIn[playerid] = 0;
  278.                 new Float:X, Float:Y, Float:Z;
  279.                 GetVehiclePos(van, X, Y, Z);
  280.                 SetPlayerPos(playerid, X+4, Y, Z);
  281.                 SetPlayerInterior(playerid, 0);
  282.             }
  283.         }
  284.     }
  285.     return 1;
  286. }
  287.  
  288. Descarregar()
  289. {
  290.     for(new v = 0; v < MAX_VEHICLES; v++)
  291.     {
  292.         if(VehicleToPoint(20.0, v, 2084.479980, -1374.825928, 300.628052))
  293.         {
  294.             new Float:X, Float:Y, Float:Z;
  295.             GetVehiclePos(van, X, Y, Z);
  296.             SetVehiclePos(v, X+5, Y, Z);
  297.             LinkVehicleToInterior(v,0);
  298.             slot = 0;
  299.         }
  300.     }
  301.     return 1;
  302. }
  303.  
  304. stock GetPosBehindVehicle(vehicleid, &Float:x, &Float:y, &Float:z, Float:offset=0.5)
  305. {
  306.     new Float:vehicleSize[3], Float:vehiclePos[3];
  307.     GetVehiclePos(vehicleid, vehiclePos[0], vehiclePos[1], vehiclePos[2]);
  308.     GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, vehicleSize[0], vehicleSize[1], vehicleSize[2]);
  309.     GetXYBehindVehicle(vehicleid, vehiclePos[0], vehiclePos[1], (vehicleSize[1]/2)+offset);
  310.     x = vehiclePos[0];
  311.     y = vehiclePos[1];
  312.     z = vehiclePos[2];
  313.     return 1;
  314. }
  315.  
  316. GetXYBehindVehicle(vehicleid, &Float:q, &Float:w, Float:distance)
  317. {
  318.     new Float:a;
  319.     GetVehiclePos(vehicleid, q, w, a);
  320.     GetVehicleZAngle(vehicleid, a);
  321.     q += (distance * -floatsin(-a, degrees));
  322.     w += (distance * -floatcos(-a, degrees));
  323. }
  324.  
  325. public Float:GetDistBetweenVehiclePlayer(v1, p2)
  326. {
  327.     new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
  328.     if(!IsPlayerConnected(p2))
  329.     {
  330.         return -1.00;
  331.     }
  332.     GetVehiclePos(v1,x1,y1,z1);
  333.     GetPlayerPos(p2,x2,y2,z2);
  334.     return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
  335. }
  336.  
  337.  
  338. VehicleToPoint(Float:radi, vehicleid, Float:x, Float:y, Float:z)
  339. {
  340.     new Float:oldposx, Float:oldposy, Float:oldposz;
  341.     new Float:tempposx, Float:tempposy, Float:tempposz;
  342.     GetVehiclePos(vehicleid, oldposx, oldposy, oldposz);
  343.     tempposx = (oldposx -x);
  344.     tempposy = (oldposy -y);
  345.     tempposz = (oldposz -z);
  346.     if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  347.     {
  348.         return 1;
  349.     }
  350.     return 0;
  351. }
  352.  
  353. forward GetClosestVehicle(playerid);
  354. public GetClosestVehicle(playerid)
  355. {
  356.     new x,Float:dis,Float:dis2,car;
  357.     car = 0;
  358.     dis = 99999.99;
  359.     for ( x = 0; x < MAX_VEHICLES; x++ )
  360.     {
  361.         dis2 = GetDistBetweenVehiclePlayer(x,playerid);
  362.         if((dis2 < dis && dis2 < 8.0) && GetPlayerVehicleID(playerid) != x)
  363.         {
  364.             dis = dis2;
  365.             car = x;
  366.         }
  367.     }
  368.     return car;
  369. }
  370.  
  371. stock IsABike(carid)
  372. {
  373.     new id = GetVehicleModel(carid);
  374.     if(id==448 || id==581 || id==522 || id==461 || id==463 || id==521 || id==523 || id==586|| id==468 || id==471 )
  375.     {
  376.         return 1;
  377.     }
  378.     return 0;
  379. }
  380.  
  381.  
  382. stock IsVehicleInUse(vehicleid)
  383. {
  384.     new temp;
  385.     for(new i=0;i<GetMaxPlayers();i++)
  386.     {
  387.         if(IsPlayerConnected(i) && IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i)==PLAYER_STATE_DRIVER) { temp++; }
  388.     }
  389.     if(temp > 0)
  390.     {
  391.         return true;
  392.     }
  393.     else return false;
  394. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement