Advertisement
Guest User

Carrinha das motas

a guest
Apr 8th, 2012
438
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.47 KB | None | 0 0
  1. // Sente-te livre para editares
  2. // Mantem apenas os meus creditos.
  3. // Carrinha das Motas 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.             if(IsABike(vid))
  203.             {
  204.                 if(!IsVehicleInUse(vid))
  205.                 {
  206.                     if(slot == 0)
  207.                     {
  208.                         SetVehiclePos(vid,2077.8936,-1375.0763,300.154);
  209.                         SetVehicleZAngle(vid,183.4);
  210.                         slot++;
  211.                     }
  212.                     else if(slot == 1)
  213.                     {
  214.                         SetVehiclePos(vid,2078.9941,-1375.0520,300.1554);
  215.                         SetVehicleZAngle(vid,183.4);
  216.                         slot++;
  217.                     }
  218.                     else if(slot == 2)
  219.                     {
  220.                         SetVehiclePos(vid,2079.8987,-1375.0085,300.1540);
  221.                         SetVehicleZAngle(vid,183.4);
  222.                         slot++;
  223.                     }
  224.                     else if(slot == 3)
  225.                     {
  226.                         SetVehiclePos(vid,2081.0239,-1374.8945,300.1557);
  227.                         SetVehicleZAngle(vid,183.4);
  228.                         slot++;
  229.                     }
  230.                     else return SendClientMessage(playerid,-1,"A carrinha das motas já se encontra cheia!");
  231.                     if(slot >=0 && slot <= 4 ) { LinkVehicleToInterior(vid,1), SendClientMessage(playerid,0x33CCFFAA,"Veículo rebocado para o interior!"); }
  232.                 }
  233.                 else SendClientMessage(playerid, -1,"Este veículo não está desocupado!");
  234.             }
  235.             else SendClientMessage(playerid, -1,"Este veículo não é uma mota!");
  236.         }
  237.     }
  238.     return 1;
  239. }
  240.  
  241. public OnRconLoginAttempt(ip[], password[], success)
  242. {
  243.     return 1;
  244. }
  245.  
  246. public OnPlayerUpdate(playerid)
  247. {
  248.     return 1;
  249. }
  250.  
  251. stock GetInto(playerid)
  252. {
  253.     if(IsPlayerConnected(playerid))
  254.     {
  255.         if(IsPlayerInAnyVehicle(playerid)) return 1;
  256.         if(GetIn[playerid] == 0)
  257.         {
  258.             if(GetDistBetweenVehiclePlayer(van,playerid) <= 3)
  259.             {
  260.                 GetIn[playerid] = 1;
  261.                 SetPlayerPos(playerid, 2084.479980, -1374.825928, 300.628052);
  262.                 SetPlayerFacingAngle(playerid, 0);
  263.                 SetCameraBehindPlayer(playerid);
  264.                 SetPlayerInterior(playerid, 1);
  265.             }
  266.         }
  267.         else if(GetIn[playerid] == 1)
  268.         {
  269.             if(IsPlayerInRangeOfPoint(playerid,3.0, 2084.6538,-1374.2390,300.5588))
  270.             {
  271.                 GetIn[playerid] = 0;
  272.                 new Float:X, Float:Y, Float:Z;
  273.                 GetVehiclePos(van, X, Y, Z);
  274.                 SetPlayerPos(playerid, X+4, Y, Z);
  275.                 SetPlayerInterior(playerid, 0);
  276.             }
  277.         }
  278.     }
  279.     return 1;
  280. }
  281.  
  282. Descarregar()
  283. {
  284.     for(new v = 0; v < MAX_VEHICLES; v++)
  285.     {
  286.         if(VehicleToPoint(20.0, v, 2084.479980, -1374.825928, 300.628052))
  287.         {
  288.             new Float:X, Float:Y, Float:Z;
  289.             GetVehiclePos(van, X, Y, Z);
  290.             SetVehiclePos(v, X+5, Y, Z);
  291.             LinkVehicleToInterior(v,0);
  292.             slot = 0;
  293.         }
  294.     }
  295.     return 1;
  296. }
  297.  
  298. public Float:GetDistBetweenVehiclePlayer(v1, p2)
  299. {
  300.     new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
  301.     if(!IsPlayerConnected(p2))
  302.     {
  303.         return -1.00;
  304.     }
  305.     GetVehiclePos(v1,x1,y1,z1);
  306.     GetPlayerPos(p2,x2,y2,z2);
  307.     return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
  308. }
  309.  
  310.  
  311. VehicleToPoint(Float:radi, vehicleid, Float:x, Float:y, Float:z)
  312. {
  313.     new Float:oldposx, Float:oldposy, Float:oldposz;
  314.     new Float:tempposx, Float:tempposy, Float:tempposz;
  315.     GetVehiclePos(vehicleid, oldposx, oldposy, oldposz);
  316.     tempposx = (oldposx -x);
  317.     tempposy = (oldposy -y);
  318.     tempposz = (oldposz -z);
  319.     if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  320.     {
  321.         return 1;
  322.     }
  323.     return 0;
  324. }
  325.  
  326. forward GetClosestVehicle(playerid);
  327. public GetClosestVehicle(playerid)
  328. {
  329.     new x,Float:dis,Float:dis2,car;
  330.     car = 0;
  331.     dis = 99999.99;
  332.     for ( x = 0; x < MAX_VEHICLES; x++ )
  333.     {
  334.         dis2 = GetDistBetweenVehiclePlayer(x,playerid);
  335.         if((dis2 < dis && dis2 < 8.0) && GetPlayerVehicleID(playerid) != x)
  336.         {
  337.             dis = dis2;
  338.             car = x;
  339.         }
  340.     }
  341.     return car;
  342. }
  343.  
  344. stock IsABike(carid)
  345. {
  346.     new id = GetVehicleModel(carid);
  347.     if(id==448 || id==581 || id==522 || id==461 || id==463 || id==521 || id==523 || id==586|| id==468 || id==471 )
  348.     {
  349.         return 1;
  350.     }
  351.     return 0;
  352. }
  353.  
  354.  
  355. stock IsVehicleInUse(vehicleid)
  356. {
  357.     new temp;
  358.     for(new i=0;i<GetMaxPlayers();i++)
  359.     {
  360.         if(IsPlayerConnected(i) && IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i)==PLAYER_STATE_DRIVER) { temp++; }
  361.     }
  362.     if(temp > 0)
  363.     {
  364.         return true;
  365.     }
  366.     else return false;
  367. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement