Advertisement
Chip7

[FS] Carrinha Das Motas

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