ricop522

[FS] Compra de Veículos by Toribio

Aug 7th, 2011
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.71 KB | None | 0 0
  1. // Filterscript de comprar ve�culos by Fl�vio Toribio
  2.  
  3. #include <a_samp>
  4.  
  5. #define MAX_RENT_VEHICLES 50 //coloque aqui o m�ximo de ve�clos que pode colocar pra alugar
  6.  
  7. forward VerificarVeiculos();
  8.  
  9. new RentVehicle[MAX_RENT_VEHICLES];
  10. new VehiclePrice[MAX_VEHICLES];
  11. new VehicleOwner[MAX_VEHICLES][MAX_PLAYER_NAME];
  12. new VehicleName[MAX_VEHICLES][MAX_PLAYER_NAME];
  13. new rentid;
  14.  
  15. stock AddRentableVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, price, name[])
  16. {
  17.         RentVehicle[rentid] = CreateVehicle(modelid, x, y, z, angle, color1, color2, 6000);
  18.         if(!RentVehicle[rentid] || !price || !name[0]) return -1;
  19.         VehiclePrice[RentVehicle[rentid]] = price;
  20.         strmid(VehicleName[RentVehicle[rentid]], name, 0, strlen(name));
  21.         return rentid++;
  22. }
  23.  
  24. stock bool:IsVehicleRentable(vehicleid)
  25. {
  26.         for(new i; i < MAX_RENT_VEHICLES; i++)
  27.                 if(RentVehicle[i] == vehicleid)
  28.                         return true;
  29.         return false;
  30. }
  31.  
  32. stock SetVehicleOwner(vehicleid, owner[])
  33. {
  34.         if(!IsVehicleRentable(vehicleid)) return 0;
  35.         strmid(VehicleOwner[vehicleid], owner, 0, strlen(owner));
  36.         return 1;
  37. }
  38.  
  39. stock GetVehicleOwner(vehicleid, destine[])
  40. {
  41.         if(!IsVehicleRentable(vehicleid) || !VehicleOwner[vehicleid][0])
  42.         {
  43.                 format(destine, 8, "ninguem");
  44.                 return 0;
  45.         }
  46.         format(destine, strlen(VehicleOwner[vehicleid]), "%s", VehicleOwner[vehicleid]);
  47.         return 1;
  48. }
  49.  
  50. stock bool:IsVehicleOwned(vehicleid)
  51. {
  52.         return !VehicleOwner[vehicleid][0] || !IsVehicleRentable(vehicleid) ? false : true;
  53. }
  54.  
  55. stock bool:IsPlayerVehicleOwner(playerid, vehicleid)
  56. {
  57.         new pname[MAX_PLAYER_NAME];
  58.         GetPlayerName(playerid, pname, sizeof pname);
  59.         return !strcmp(VehicleOwner[vehicleid], pname, false);
  60. }
  61.  
  62. public OnFilterScriptInit()
  63. {
  64.         printf("Filterscript de comprar veiculos by Fl�vio Toribio");
  65.         AddRentableVehicle(555, 2149.5, -1134.0, 25.4, 270.15, 1, 1, 20000, "este Fusca");
  66.         AddRentableVehicle(411, 2149.0, -1136.1, 25.4, 270.15, 1, 1, 50000, "este Infernus");
  67.         //e assim por diante...
  68.         SetTimer("VerificarVeiculos", 5000, 1);
  69.         return 1;
  70. }
  71.  
  72. public OnPlayerStateChange(playerid, newstate, oldstate)
  73. {
  74.         if(newstate == PLAYER_STATE_DRIVER)
  75.         {
  76.                 new vehicleid = GetPlayerVehicleID(playerid);
  77.                 if(IsVehicleRentable(vehicleid))
  78.                 {
  79.                         new string[128], owner[MAX_PLAYER_NAME];
  80.                         TogglePlayerControllable(playerid, false);
  81.                         GetVehicleOwner(vehicleid, owner);
  82.                         if(!IsVehicleOwned(vehicleid))
  83.                         {
  84.                                 format(string, sizeof string, "Compre %s por apenas %d reais! Digite: /comprar",
  85.                                         VehicleName[vehicleid], VehiclePrice[vehicleid]);
  86.                         } else if(IsPlayerVehicleOwner(playerid, vehicleid))
  87.                         {
  88.                                 TogglePlayerControllable(playerid, true);
  89.                                 format(string, sizeof string, "Bem vindo a seu ve�culo, %s.", owner);
  90.                         } else {
  91.                                 format(string, sizeof string, "Ops, %s pertence � %s.",
  92.                                         VehicleName[vehicleid], owner);
  93.                         }
  94.                         SendClientMessage(playerid, 0xFFFFFFAA, string);
  95.                 }
  96.         }
  97.         return 1;
  98. }
  99.  
  100. public VerificarVeiculos()
  101. {
  102.         for(new i; i < MAX_VEHICLES; i++)
  103.         {
  104.                 if(GetVehicleModel(i) < 400 && GetVehicleModel(i) > 612 && IsVehicleRentable(i))
  105.                 {
  106.                         for(new j = i; j < MAX_RENT_VEHICLES; j++)
  107.                         {
  108.                                 VehiclePrice[j] = VehiclePrice[j+1];
  109.                                 VehicleName[j] = VehicleName[j+1];
  110.                                 VehicleOwner[j] = VehicleOwner[j+1];
  111.                         }
  112.                         rentid--;
  113.                 }
  114.         }
  115. }
  116.  
  117. public OnPlayerCommandText(playerid, cmdtext[])
  118. {
  119.         if(!strcmp(cmdtext, "/comprar", true))
  120.         {
  121.                 new vehicleid = GetPlayerVehicleID(playerid);
  122.                 if(!vehicleid)
  123.                 {
  124.                         SendClientMessage(playerid, 0xFF0000AA, "V� a uma concession�ra e entre em um ve�culo!");
  125.                         return 1;
  126.                 }
  127.                 new string[128];
  128.                 if(!IsVehicleOwned(vehicleid))
  129.                 {
  130.                         if(GetPlayerMoney(playerid) >= VehiclePrice[vehicleid])
  131.                         {
  132.                                 new pname[MAX_PLAYER_NAME];
  133.                                 GetPlayerName(playerid, pname, sizeof pname);
  134.                                 SetVehicleOwner(vehicleid, pname);
  135.                                 GivePlayerMoney(playerid, -VehiclePrice[vehicleid]);
  136.                                 TogglePlayerControllable(playerid, true);
  137.                                 format(string, sizeof string, "Agora %s � de sua autoria!", VehicleName[vehicleid]);
  138.                                 SendClientMessage(playerid, 0xFFFFFFAA, string);
  139.                         } else {
  140.                                 format(string, sizeof string, "Voc� n�o tem %d reais!", VehiclePrice[vehicleid]);
  141.                                 SendClientMessage(playerid, 0xFF0000AA, string);
  142.                                 return 1;
  143.                         }
  144.                 } else if(IsPlayerVehicleOwner(playerid, vehicleid))
  145.                 {
  146.                         format(string, sizeof string, "Voc� j� � dono d%s!", VehicleName[vehicleid]);
  147.                         SendClientMessage(playerid, 0xFF0000AA, string);
  148.                 } else {
  149.                         new owner[MAX_PLAYER_NAME];
  150.                         GetVehicleOwner(vehicleid, owner);
  151.                         format(string, sizeof string, "Ops, %s pertence � %s.", VehicleName[vehicleid], owner);
  152.                         SendClientMessage(playerid, 0xFF0000AA, string);
  153.                 }
  154.                 return 1;
  155.         }
  156.         return 0;
  157. }
  158.  
  159. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  160. {
  161.         if(newkeys == 16 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  162.         {
  163.                 if(IsVehicleRentable(GetPlayerVehicleID(playerid)))
  164.                 {
  165.                         TogglePlayerControllable(playerid, true);
  166.                         RemovePlayerFromVehicle(playerid);
  167.                 }
  168.         }
  169.         return 1;
  170. }
Advertisement
Add Comment
Please, Sign In to add comment