Guest User

RPG

a guest
Jul 26th, 2012
386
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 17.61 KB | None | 0 0
  1. //----------------------------------------------------------------------------//
  2. //By Dr_Pawno
  3.  
  4. #include <a_samp>
  5. #include <SII> //Include Obrigatoria
  6.  
  7. #define LOCAL_VEICULOS "Veiculos/"  //Pasta no ScriptFiles
  8.  
  9. #define MAX_SELLING_VEHICLES 500
  10.  
  11. #define BoxVeiculos 2012
  12.  
  13. enum vInfo
  14. {
  15.     vCriado,
  16.     Float:vPosX,
  17.     Float:vPosY,
  18.     Float:vPosZ,
  19.     Float:vRotZ,
  20.     vModelo,
  21.     vCor1,
  22.     vCor2,
  23.     vTrancado,
  24.     vDono[MAX_PLAYER_NAME],
  25.     vID
  26. }
  27. new VehicleInfo[MAX_SELLING_VEHICLES][vInfo],
  28.     QuantidadeDeVeiculosCarregados, CarregadoMaisNaoCriado;
  29.  
  30. new VehicleName[212][] = {
  31. {"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"Sentinel"},{"Dumper"},{"Firetruck"},
  32. {"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus"},{"Voodoo"},{"Pony"},{"Mule"},{"Cheetah"},{"Ambulance"},
  33. {"Leviathan"},{"Moonbeam"},{"Esperanto"},{"Taxi"},{"Washington"},{"Bobcat"},{"Mr Whoopee"},{"BF Injection"},
  34. {"Hunter"},{"Premier"},{"Enforcer"},{"Securicar"},{"Banshee"},{"Predator"},{"Bus"},{"Rhino"},{"Barracks"},
  35. {"Hotknife"},{"Trailer 1"},{"Previon"},{"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},
  36. {"Packer"},{"Monster"},{"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram"},{"Trailer 2"},{"Turismo"},
  37. {"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee"},{"Caddy"},{"Solair"},{"Berkley's RC Van"},{"Skimmer"},
  38. {"PCJ-600"},{"Faggio"},{"Freeway"},{"RC Baron"},{"RC Raider"},{"Glendale"},{"Oceanic"},{"Sanchez"},{"Sparrow"},
  39. {"Patriot"},{"Quad"},{"Coastguard"},{"Dinghy"},{"Hermes"},{"Sabre"},{"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},
  40. {"Comet"},{"BMX"},{"Burrito"},{"Camper"},{"Marquis"},{"Baggage"},{"Dozer"},{"Maverick"},{"News Chopper"},{"Rancher"},
  41. {"FBI Rancher"},{"Virgo"},{"Greenwood"},{"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},{"Police Maverick"},
  42. {"Boxville"},{"Benson"},{"Mesa"},{"RC Goblin"},{"Hotring Racer A"},{"Hotring Racer B"},{"Bloodring Banger"},
  43. {"Rancher"},{"Super GT"},{"Elegant"},{"Journey"},{"Bike"},{"Mountain Bike"},{"Beagle"},{"Cropdust"},{"Stunt Plane"},
  44. {"Tanker"}, {"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal"},{"Hydra"},{"FCR-900"},{"NRG-500"},
  45. {"HPV1000"},{"Cement Truck"},{"Tow Truck"},{"Fortune"},{"Cadrona"},{"FBI Truck"},{"Willard"},{"Forklift"},
  46. {"Tractor"},{"Combine"},{"Feltzer"},{"Remington"},{"Slamvan"},{"Blade"},{"Freight"},{"Streak"},{"Vortex"},
  47. {"Vincent"},{"Bullet"},{"Clover"},{"Sadler"},{"Firetruck LA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},
  48. {"Tampa"},{"Sunrise"},{"Merit"},{"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},
  49. {"Uranus"},{"Jester"},{"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"},
  50. {"Bandito"},{"Freight Flat"},{"Streak Carriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},{"Broadway"},
  51. {"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},{"Tug"},{"Trailer 3"},{"Emperor"},
  52. {"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"Freight Carriage"},{"Trailer 3"},{"Andromada"},{"Dodo"},{"RC Cam"},{"Launch"},
  53. {"LSPD Car"},{"SFPD Car"},{"LVPD Car"},{"Police Ranger"},{"Picador"},{"S.W.A.T. Van"},{"Alpha"},{"Phoenix"},
  54. {"Glendale"},{"Sadler"},{"Luggage Trailer A"},{"Luggage Trailer B"},{"Stair Trailer"},{"Boxville"},{"Farm Plow"},
  55. {"Utility Trailer"}};
  56.  
  57. enum pInfo
  58. {
  59.     pNumeroVeiculo
  60. }
  61. new PlayerInfo[MAX_PLAYERS][pInfo];
  62.  
  63.  
  64. main()
  65. {
  66. }
  67.  
  68. public OnGameModeInit()
  69. {
  70.     SII_LoadVehicles();
  71.     AddPlayerClass(0, 2119.4000, -1125.9000, 25.4000, 210.0000, 0, 0, 0, 0, 0, 0);
  72.     Create3DTextLabel("Use /ComprarVeiculo", -1, 2132.0000, -1150.3000, 24.2000, 40.0, 0, 1);
  73.     return 1;
  74. }
  75.  
  76. public OnPlayerConnect(playerid)
  77. {
  78.     PlayerInfo[playerid][pNumeroVeiculo] = INVALID_VEHICLE_ID;
  79.     return 1;
  80. }
  81.  
  82. public OnPlayerSpawn(playerid)
  83. {
  84.     GivePlayerMoney(playerid, 100000);
  85.     return 1;
  86. }
  87.  
  88. public OnPlayerCommandText(playerid, cmdtext[])
  89. {
  90.     if(!strcmp("/comprarveiculo", cmdtext, true))
  91.     {
  92.         if(QuantidadeDeVeiculosCarregados >= MAX_SELLING_VEHICLES) return SendClientMessage(playerid, -1, "[Erro] O Numero Maximo de Veiculos Ja foi Atingido.");
  93.         else if(PlayerInfo[playerid][pNumeroVeiculo] != INVALID_VEHICLE_ID) return SendClientMessage(playerid, -1, "[Erro] Você já tem um veiculo.");
  94.         else if(!IsPlayerInRangeOfPoint(playerid, 1.5, 2132.0000, -1150.3000, 24.2000)) return SendClientMessage(playerid, -1, "[Erro] Você não está na Concessionaria.");
  95.         else if(GetPlayerMoney(playerid) < 100000) return SendClientMessage(playerid, -1, "[Erro] Você não tem $100.000 para comprar um carro.");
  96.  
  97.         ShowPlayerDialog(playerid, BoxVeiculos, DIALOG_STYLE_INPUT, "Veiculos", "Insira o Nome/ID Do Veiculo Desejado:", "Comprar", "Sair");
  98.         return 1;
  99.     }
  100.     else if(!strcmp("/meuveiculo", cmdtext, true))
  101.     {
  102.         if(PlayerInfo[playerid][pNumeroVeiculo] == INVALID_VEHICLE_ID) return SendClientMessage(playerid, -1, "[Erro] Você não tem um veiculo.");
  103.        
  104.         ShowPlayerDialog(playerid, BoxVeiculos+1, DIALOG_STYLE_LIST, "Meu Veiculo", ">> Estacionar\n>> Trancar\n>> Destrancar\n>> Pintar\n>> Vender", "Selecionar", "Sair");
  105.         return 1;
  106.     }
  107.     else if(strcmp("/creditos", cmdtext, true) == 0)
  108.     {
  109.         SendClientMessage(playerid, -1, "Creditos a Dr_Pawno.");
  110.         return 1;
  111.     }
  112.     return 0;
  113. }
  114.  
  115. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  116. {
  117.     if(dialogid == BoxVeiculos)
  118.     {
  119.         if(!response) return 1;
  120.         new Id = -1;
  121.         if(!IsNumeric(inputtext))
  122.         {
  123.             for(new i = 0; i < sizeof(VehicleName); i++)
  124.             {
  125.                 if(!strcmp(inputtext, VehicleName[i], true))
  126.                 {
  127.                     Id = i + 400;
  128.                     break;
  129.                 }
  130.             }
  131.             if(Id == -1) return ShowPlayerDialog(playerid, BoxVeiculos, DIALOG_STYLE_INPUT, "Veiculos", "Nome/ID Invalido. Insira um Nome/ID Valido Abaixo:", "Comprar", "Sair");
  132.         }
  133.         else
  134.         {
  135.             Id = strval(inputtext);
  136.             if(Id < 400 || Id > 611) return ShowPlayerDialog(playerid, BoxVeiculos, DIALOG_STYLE_INPUT, "Veiculos", "Nome/ID Invalido. Insira um Nome/ID Valido Abaixo:", "Comprar", "Sair");
  137.         }
  138.         if(IsABoat(Id) || IsAHelicopter(Id) || IsAAirplane(Id) || IsAInvalid(Id)) return ShowPlayerDialog(playerid, BoxVeiculos, DIALOG_STYLE_INPUT, "Veiculos", "Nome/ID Bloqueado. Insira um Nome/ID Abaixo:", "Comprar", "Sair");
  139.  
  140.         new i = ChecarNumeroMaisProximo();
  141.            
  142.         VehicleInfo[i][vCriado] = true;
  143.         VehicleInfo[i][vPosX] = 2134.5500;
  144.         VehicleInfo[i][vPosY] = -1127.1500;
  145.         VehicleInfo[i][vPosZ] = 26.1000;
  146.         VehicleInfo[i][vRotZ] = 90.0000;
  147.         VehicleInfo[i][vModelo] = Id;
  148.         VehicleInfo[i][vCor1] = 1;
  149.         VehicleInfo[i][vCor2] = 1;
  150.         VehicleInfo[i][vTrancado] = false;
  151.         strmid(VehicleInfo[i][vDono], GetPlayerNameEx(playerid), 0, strlen(GetPlayerNameEx(playerid)), 255);
  152.         VehicleInfo[i][vID] = CreateVehicle(VehicleInfo[i][vModelo], VehicleInfo[i][vPosX], VehicleInfo[i][vPosY], VehicleInfo[i][vPosZ], VehicleInfo[i][vRotZ], VehicleInfo[i][vCor1], VehicleInfo[i][vCor2], -1);
  153.         PlayerInfo[playerid][pNumeroVeiculo] = i;
  154.         PutPlayerInVehicle(playerid, VehicleInfo[i][vID], 0);
  155.         QuantidadeDeVeiculosCarregados = i;
  156.         SII_SaveVehicle(i);
  157.         GivePlayerMoney(playerid, -100000);
  158.         return 1;
  159.     }
  160.     else if(dialogid == BoxVeiculos+1)
  161.     {
  162.         if(!response) return 1;
  163.         new n = PlayerInfo[playerid][pNumeroVeiculo],
  164.             i = VehicleInfo[n][vID];
  165.         switch(listitem)
  166.         {
  167.             case 0:
  168.             {
  169.                 if(!IsPlayerInVehicle(playerid, i))
  170.                 {
  171.                     SendClientMessage(playerid, -1, "[Erro] Você não esta no seu veiculo.");
  172.                     return ShowPlayerDialog(playerid, BoxVeiculos+1, DIALOG_STYLE_LIST, "Meu Veiculo", ">> Estacionar\n>> Trancar\n>> Destrancar\n>> Pintar\n>> Vender", "Selecionar", "Sair");
  173.                 }
  174.                
  175.                 new Float:PosX,
  176.                     Float:PosY,
  177.                     Float:PosZ,
  178.                     Float:RotZ;
  179.  
  180.                 GetVehiclePos(i, PosX, PosY, PosZ);
  181.                 GetVehicleZAngle(i, RotZ);
  182.                    
  183.                 VehicleInfo[i][vPosX] = PosX;
  184.                 VehicleInfo[i][vPosY] = PosY;
  185.                 VehicleInfo[i][vPosZ] = PosZ;
  186.                 VehicleInfo[i][vRotZ] = RotZ;
  187.                 SII_SaveVehicle(n);
  188.                 DestroyVehicle(i);
  189.                 VehicleInfo[n][vID] = CreateVehicle(VehicleInfo[i][vModelo], VehicleInfo[i][vPosX], VehicleInfo[i][vPosY], VehicleInfo[i][vPosZ], VehicleInfo[i][vRotZ], VehicleInfo[i][vCor1], VehicleInfo[i][vCor2], -1);
  190.                 PutPlayerInVehicle(playerid, VehicleInfo[n][vID], 0);
  191.                
  192.                 SendClientMessage(playerid, -1, "Veiculo Estacionado!");
  193.                 return 1;
  194.             }
  195.             case 1:
  196.             {
  197.                 if(!VehicleInfo[n][vTrancado])
  198.                 {
  199.                     TrancarVeiculo(i, true);
  200.                     VehicleInfo[n][vTrancado] = true;
  201.                     SendClientMessage(playerid, -1, "Veiculo Trancado!");
  202.                     SII_SaveVehicle(n);
  203.                     return 1;
  204.                 }
  205.                 else
  206.                 {
  207.                     SendClientMessage(playerid, -1, "[Erro] Veiculo já Trancado.");
  208.                     return ShowPlayerDialog(playerid, BoxVeiculos+1, DIALOG_STYLE_LIST, "Meu Veiculo", ">> Estacionar\n>> Trancar\n>> Destrancar\n>> Pintar\n>> Vender", "Selecionar", "Sair");
  209.                 }
  210.             }
  211.             case 2:
  212.             {
  213.                 if(VehicleInfo[n][vTrancado])
  214.                 {
  215.                     TrancarVeiculo(i, false);
  216.                     VehicleInfo[n][vTrancado] = false;
  217.                     SendClientMessage(playerid, -1, "Veiculo Destrancado!");
  218.                     SII_SaveVehicle(n);
  219.                     return 1;
  220.                 }
  221.                 else
  222.                 {
  223.                     SendClientMessage(playerid, -1, "[Erro] Veiculo já não esta Trancado.");
  224.                     return ShowPlayerDialog(playerid, BoxVeiculos+1, DIALOG_STYLE_LIST, "Meu Veiculo", ">> Estacionar\n>> Trancar\n>> Destrancar\n>> Pintar\n>> Vender", "Selecionar", "Sair");
  225.                 }
  226.             }
  227.             case 3:
  228.             {
  229.                 ShowPlayerDialog(playerid, BoxVeiculos-1, DIALOG_STYLE_INPUT, "Pintar", "Insira o ID da Cor 1 que você deseja:", "Pintar", "Voltar");
  230.                 return 1;
  231.             }
  232.             case 4:
  233.             {
  234.                 VehicleInfo[i][vCriado] = false;
  235.                 VehicleInfo[i][vPosX] = 2134.5500;
  236.                 VehicleInfo[i][vPosY] = -1127.1500;
  237.                 VehicleInfo[i][vPosZ] = 26.1000;
  238.                 VehicleInfo[i][vRotZ] = 90.0000;
  239.                 VehicleInfo[i][vModelo] = 400;
  240.                 VehicleInfo[i][vCor1] = 1;
  241.                 VehicleInfo[i][vCor2] = 1;
  242.                 VehicleInfo[i][vTrancado] = false;
  243.                 strmid(VehicleInfo[i][vDono], "Ninguem", 0, strlen("Ninguem"), 255);
  244.                 DestroyVehicle(i);
  245.                 SII_SaveVehicle(n);
  246.                
  247.                 PlayerInfo[playerid][pNumeroVeiculo] = INVALID_VEHICLE_ID;
  248.                 GivePlayerMoney(playerid, 100000);
  249.                 SendClientMessage(playerid, -1, "Você vendeu seu veiculo.");
  250.                 return 1;
  251.             }
  252.             default:
  253.             {
  254.                 //?
  255.             }
  256.         }
  257.     }
  258.     else if(dialogid == BoxVeiculos-1)
  259.     {
  260.         if(!response) return ShowPlayerDialog(playerid, BoxVeiculos+1, DIALOG_STYLE_LIST, "Meu Veiculo", ">> Estacionar\n>> Trancar\n>> Destrancar\n>> Pintar\n>> Vender", "Selecionar", "Sair");
  261.         else if(!strlen(inputtext)) return ShowPlayerDialog(playerid, BoxVeiculos-1, DIALOG_STYLE_INPUT, "Pintar", "Insira o ID da Cor 1 que você deseja:", "Pintar", "Voltar");
  262.         else if(!IsNumeric(inputtext)) return ShowPlayerDialog(playerid, BoxVeiculos-1, DIALOG_STYLE_INPUT, "Pintar", "Insira o ID da Cor 1 que você deseja:", "Pintar", "Voltar");
  263.  
  264.         new Cor1 = strval(inputtext);
  265.         if(Cor1 < 0 || Cor1 > 126 && Cor1 < 130 || Cor1 > 175) return ShowPlayerDialog(playerid, BoxVeiculos-1, DIALOG_STYLE_INPUT, "Pintar", "Insira um ID Valido:", "Pintar", "Voltar");
  266.        
  267.        
  268.         new n = PlayerInfo[playerid][pNumeroVeiculo];
  269.            
  270.         VehicleInfo[n][vCor1] = Cor1;
  271.         ShowPlayerDialog(playerid, BoxVeiculos-2, DIALOG_STYLE_INPUT, "Pintar", "Insira o ID da Cor 2 que você deseja:", "Pintar", "Voltar");
  272.         return 1;
  273.     }
  274.     else if(dialogid == BoxVeiculos-2)
  275.     {
  276.         if(!response) return ShowPlayerDialog(playerid, BoxVeiculos+1, DIALOG_STYLE_LIST, "Meu Veiculo", ">> Estacionar\n>> Trancar\n>> Destrancar\n>> Pintar\n>> Vender", "Selecionar", "Sair");
  277.         else if(!strlen(inputtext)) return ShowPlayerDialog(playerid, BoxVeiculos-2, DIALOG_STYLE_INPUT, "Pintar", "Insira o ID da Cor 2 que você deseja:", "Pintar", "Voltar");
  278.         else if(!IsNumeric(inputtext)) return ShowPlayerDialog(playerid, BoxVeiculos-2, DIALOG_STYLE_INPUT, "Pintar", "Insira o ID da Cor 2 que você deseja:", "Pintar", "Voltar");
  279.  
  280.         new Cor2 = strval(inputtext);
  281.         if(Cor2 < 0 || Cor2 > 126 && Cor2 < 130 || Cor2 > 175) return ShowPlayerDialog(playerid, BoxVeiculos-2, DIALOG_STYLE_INPUT, "Pintar", "Insira um ID Valido:", "Pintar", "Voltar");
  282.  
  283.  
  284.         new n = PlayerInfo[playerid][pNumeroVeiculo],
  285.             i = VehicleInfo[n][vID];
  286.  
  287.         VehicleInfo[n][vCor2] = Cor2;
  288.         SII_SaveVehicle(n);
  289.         ChangeVehicleColor(i, VehicleInfo[n][vCor1], VehicleInfo[n][vCor2]);
  290.         return 1;
  291.     }
  292.     return 1;
  293. }
  294.  
  295. //----------------------------------------------------------------------------//
  296.  
  297. stock GetPlayerNameEx(playerid)
  298. {
  299.     new pName[MAX_PLAYER_NAME];
  300.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  301.     return pName;
  302. }
  303.  
  304. stock ChecarNumeroMaisProximo()
  305. {
  306.     new string[64],
  307.         Valor, i;
  308.     for(i = 0; i <= QuantidadeDeVeiculosCarregados; i++)
  309.     {
  310.         format(string, sizeof(string), "%s%d.txt", LOCAL_VEICULOS, i);
  311.         if(!fexist(string)) continue;
  312.         INI_Open(string);
  313.         Valor = INI_ReadInt("Criado");
  314.         INI_Close();
  315.         if(!Valor) break;
  316.     }
  317.     if(Valor) return QuantidadeDeVeiculosCarregados + 1;
  318.     return i;
  319. }
  320.  
  321. stock IsNumeric(const string[])
  322. {
  323.     new length = strlen(string);
  324.     if(length==0) return false;
  325.     for(new i = 0; i < length; i++)
  326.     {
  327.         if((string[i] > '9' || string[i] < '0' && string[i] != '-' && string[i] != '+')
  328.         || (string[i] == '-' && i != 0) || (string[i] == '+' && i !=0 )) return false;
  329.     }
  330.     if(length == 1 && (string[0] == '-' || string[0] == '+')) return false;
  331.     return true;
  332. }
  333.  
  334. stock IsABoat(model)
  335. {
  336.     if(model == 472 || model == 473 || model == 493 || model == 595 || model == 484 || model == 430 || model == 453 || model == 452 || model == 446 || model == 454) return 1;
  337.     return 0;
  338. }
  339.  
  340. stock IsAHelicopter(model)
  341. {
  342.     if(model == 548 || model == 425 || model == 417 || model == 487 || model == 488 || model == 497 || model == 563 || model == 447 || model == 469) return 1;
  343.     return 0;
  344. }
  345.  
  346. stock IsAAirplane(model)
  347. {
  348.     if(model == 592 || model == 577 || model == 511 || model == 512 || model == 593 || model == 520 || model == 553 || model == 476 || model == 519 || model == 460 || model == 513) return 1;
  349.     return 0;
  350. }
  351.  
  352. stock IsAInvalid(model)
  353. {
  354.     if(model == 538 || model == 532 || model == 406 || model == 537 || model == 588 || model == 423 || model == 574 || model == 449 || model == 539 || model == 407 || model >= 604
  355.     || model == 408 || model == 416 || model == 420 || model == 427 || model == 431 || model == 432 || model == 435 || model == 437 || model == 438 || model == 441 || model == 448
  356.     || model == 450 || model == 459 || model == 464 || model == 465 || model == 470 || model == 490 || model == 494 || model == 495 || model == 501 || model == 502 || model == 503
  357.     || model == 504 || model == 523 || model == 525 || model == 528 || model == 544 || model == 573 || model == 584 || model == 590 || model == 591 || model == 594 || model == 596
  358.     || model == 597 || model == 598 || model == 599 || model == 601) return 1;
  359.     return 0;
  360. }
  361.  
  362. stock TrancarVeiculo(vehicleid, bool:Trancar)
  363. {
  364.     new engine, lights, alarm, doors, bonnet, boot, objective;
  365.     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  366.     SetVehicleParamsEx(vehicleid, engine, lights, alarm, Trancar, bonnet, boot, objective);
  367.     return 1;
  368. }
  369.  
  370. //----------------------------------------------------------------------------//
  371. //SII
  372.  
  373. stock SII_SaveVehicle(Number)
  374. {
  375.     new TickCount = GetTickCount(),
  376.         string[128];
  377.  
  378.     format(string, sizeof(string), "%s%d.txt", LOCAL_VEICULOS, Number);
  379.     INI_Open(string);
  380.     INI_WriteInt("Criado", VehicleInfo[Number][vCriado]);
  381.     INI_WriteFloat("PosX", VehicleInfo[Number][vPosX]);
  382.     INI_WriteFloat("PosY", VehicleInfo[Number][vPosY]);
  383.     INI_WriteFloat("PosZ", VehicleInfo[Number][vPosZ]);
  384.     INI_WriteFloat("RotZ", VehicleInfo[Number][vRotZ]);
  385.     INI_WriteInt("Modelo", VehicleInfo[Number][vModelo]);
  386.     INI_WriteInt("Cor1", VehicleInfo[Number][vCor1]);
  387.     INI_WriteInt("Cor2", VehicleInfo[Number][vCor2]);
  388.     INI_WriteInt("Trancado", VehicleInfo[Number][vTrancado]);
  389.     INI_WriteString("Dono", VehicleInfo[Number][vDono]);
  390.     INI_Save();
  391.     INI_Close();
  392.  
  393.     printf("[SII] Veiculo %d Salvo em %dms.", Number, GetTickCount()-TickCount);
  394.     return 1;
  395. }
  396.  
  397. stock SII_LoadVehicles()
  398. {
  399.     new TickCount = GetTickCount(),
  400.         string[128];
  401.        
  402.     for(new i = 0; i < MAX_SELLING_VEHICLES; i++)
  403.     {
  404.         format(string, sizeof(string), "%s%d.txt", LOCAL_VEICULOS, i);
  405.         if(fexist(string))
  406.         {
  407.             INI_Open(string);
  408.             VehicleInfo[i][vCriado] = INI_ReadInt("Criado");
  409.             VehicleInfo[i][vPosX] = INI_ReadFloat("PosX");
  410.             VehicleInfo[i][vPosY] = INI_ReadFloat("PosY");
  411.             VehicleInfo[i][vPosZ] = INI_ReadFloat("PosZ");
  412.             VehicleInfo[i][vRotZ] = INI_ReadFloat("RotZ");
  413.             VehicleInfo[i][vModelo] = INI_ReadInt("Modelo");
  414.             VehicleInfo[i][vCor1] = INI_ReadInt("Cor1");
  415.             VehicleInfo[i][vCor2] = INI_ReadInt("Cor2");
  416.             VehicleInfo[i][vTrancado] = INI_ReadInt("Trancado");
  417.             INI_ReadString("Dono", VehicleInfo[i][vDono], MAX_PLAYER_NAME);
  418.             INI_Close();
  419.             QuantidadeDeVeiculosCarregados ++;
  420.             if(!VehicleInfo[i][vCriado]) CarregadoMaisNaoCriado ++;
  421.             else
  422.             {
  423.                 VehicleInfo[i][vID] = CreateVehicle(VehicleInfo[i][vModelo], VehicleInfo[i][vPosX], VehicleInfo[i][vPosY], VehicleInfo[i][vPosZ], VehicleInfo[i][vRotZ], VehicleInfo[i][vCor1], VehicleInfo[i][vCor2], -1);
  424.                 if(VehicleInfo[i][vTrancado]) TrancarVeiculo(VehicleInfo[i][vID], true);
  425.                
  426.             }
  427.         }
  428.     }
  429.     printf("[SII] %d(%d)/%d Veiculos Carregados em %dms.", QuantidadeDeVeiculosCarregados, QuantidadeDeVeiculosCarregados-CarregadoMaisNaoCriado, MAX_SELLING_VEHICLES, GetTickCount()-TickCount);
  430.     return 1;
  431. }
Advertisement
Add Comment
Please, Sign In to add comment