Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*VISITE NOSSO SITE: http://www.sampknd.com/
- VISITE NOSSO FACEBOOK: http://www.facebook.com/SampKnd
- SAMP KND MELHOR BLOG DE SAMP DO BRASIL
- */
- #include <a_samp>
- #include <SII> //Include Obrigatoria
- #define LOCAL_VEICULOS "Veiculos/" //Pasta no ScriptFiles
- #define MAX_SELLING_VEHICLES 500
- #define BoxVeiculos 2012
- enum vInfo
- {
- vCriado,
- Float:vPosX,
- Float:vPosY,
- Float:vPosZ,
- Float:vRotZ,
- vModelo,
- vCor1,
- vCor2,
- vTrancado,
- vDono[MAX_PLAYER_NAME],
- vID
- }
- new VehicleInfo[MAX_SELLING_VEHICLES][vInfo],
- QuantidadeDeVeiculosCarregados, CarregadoMaisNaoCriado;
- new VehicleName[212][] = {
- {"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"Sentinel"},{"Dumper"},{"Firetruck"},
- {"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus"},{"Voodoo"},{"Pony"},{"Mule"},{"Cheetah"},{"Ambulance"},
- {"Leviathan"},{"Moonbeam"},{"Esperanto"},{"Taxi"},{"Washington"},{"Bobcat"},{"Mr Whoopee"},{"BF Injection"},
- {"Hunter"},{"Premier"},{"Enforcer"},{"Securicar"},{"Banshee"},{"Predator"},{"Bus"},{"Rhino"},{"Barracks"},
- {"Hotknife"},{"Trailer 1"},{"Previon"},{"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},
- {"Packer"},{"Monster"},{"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram"},{"Trailer 2"},{"Turismo"},
- {"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee"},{"Caddy"},{"Solair"},{"Berkley's RC Van"},{"Skimmer"},
- {"PCJ-600"},{"Faggio"},{"Freeway"},{"RC Baron"},{"RC Raider"},{"Glendale"},{"Oceanic"},{"Sanchez"},{"Sparrow"},
- {"Patriot"},{"Quad"},{"Coastguard"},{"Dinghy"},{"Hermes"},{"Sabre"},{"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},
- {"Comet"},{"BMX"},{"Burrito"},{"Camper"},{"Marquis"},{"Baggage"},{"Dozer"},{"Maverick"},{"News Chopper"},{"Rancher"},
- {"FBI Rancher"},{"Virgo"},{"Greenwood"},{"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},{"Police Maverick"},
- {"Boxville"},{"Benson"},{"Mesa"},{"RC Goblin"},{"Hotring Racer A"},{"Hotring Racer B"},{"Bloodring Banger"},
- {"Rancher"},{"Super GT"},{"Elegant"},{"Journey"},{"Bike"},{"Mountain Bike"},{"Beagle"},{"Cropdust"},{"Stunt Plane"},
- {"Tanker"}, {"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal"},{"Hydra"},{"FCR-900"},{"NRG-500"},
- {"HPV1000"},{"Cement Truck"},{"Tow Truck"},{"Fortune"},{"Cadrona"},{"FBI Truck"},{"Willard"},{"Forklift"},
- {"Tractor"},{"Combine"},{"Feltzer"},{"Remington"},{"Slamvan"},{"Blade"},{"Freight"},{"Streak"},{"Vortex"},
- {"Vincent"},{"Bullet"},{"Clover"},{"Sadler"},{"Firetruck LA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},
- {"Tampa"},{"Sunrise"},{"Merit"},{"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},
- {"Uranus"},{"Jester"},{"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"},
- {"Bandito"},{"Freight Flat"},{"Streak Carriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},{"Broadway"},
- {"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},{"Tug"},{"Trailer 3"},{"Emperor"},
- {"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"Freight Carriage"},{"Trailer 3"},{"Andromada"},{"Dodo"},{"RC Cam"},{"Launch"},
- {"LSPD Car"},{"SFPD Car"},{"LVPD Car"},{"Police Ranger"},{"Picador"},{"S.W.A.T. Van"},{"Alpha"},{"Phoenix"},
- {"Glendale"},{"Sadler"},{"Luggage Trailer A"},{"Luggage Trailer B"},{"Stair Trailer"},{"Boxville"},{"Farm Plow"},
- {"Utility Trailer"}};
- enum pInfo
- {
- pNumeroVeiculo
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- main()
- {
- }
- public OnGameModeInit()
- {
- SII_LoadVehicles();
- AddPlayerClass(0, 2119.4000, -1125.9000, 25.4000, 210.0000, 0, 0, 0, 0, 0, 0);
- Create3DTextLabel("Use /ComprarVeiculo", -1, 2132.0000, -1150.3000, 24.2000, 40.0, 0, 1);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- PlayerInfo[playerid][pNumeroVeiculo] = INVALID_VEHICLE_ID;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- GivePlayerMoney(playerid, 100000);
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(!strcmp("/comprarveiculo", cmdtext, true))
- {
- if(QuantidadeDeVeiculosCarregados >= MAX_SELLING_VEHICLES) return SendClientMessage(playerid, -1, "[Erro] O Numero Maximo de Veiculos Ja foi Atingido.");
- else if(PlayerInfo[playerid][pNumeroVeiculo] != INVALID_VEHICLE_ID) return SendClientMessage(playerid, -1, "[Erro] Você já tem um veiculo.");
- else if(!IsPlayerInRangeOfPoint(playerid, 1.5, 2132.0000, -1150.3000, 24.2000)) return SendClientMessage(playerid, -1, "[Erro] Você não está na Concessionaria.");
- else if(GetPlayerMoney(playerid) < 100000) return SendClientMessage(playerid, -1, "[Erro] Você não tem $100.000 para comprar um carro.");
- ShowPlayerDialog(playerid, BoxVeiculos, DIALOG_STYLE_INPUT, "Veiculos", "Insira o Nome/ID Do Veiculo Desejado:", "Comprar", "Sair");
- return 1;
- }
- else if(!strcmp("/meuveiculo", cmdtext, true))
- {
- if(PlayerInfo[playerid][pNumeroVeiculo] == INVALID_VEHICLE_ID) return SendClientMessage(playerid, -1, "[Erro] Você não tem um veiculo.");
- ShowPlayerDialog(playerid, BoxVeiculos+1, DIALOG_STYLE_LIST, "Meu Veiculo", ">> Estacionar\n>> Trancar\n>> Destrancar\n>> Pintar\n>> Vender", "Selecionar", "Sair");
- return 1;
- }
- else if(strcmp("/creditos", cmdtext, true) == 0)
- {
- SendClientMessage(playerid, -1, "Creditos a Dr_Pawno.");
- return 1;
- }
- return 0;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == BoxVeiculos)
- {
- if(!response) return 1;
- new Id = -1;
- if(!IsNumeric(inputtext))
- {
- for(new i = 0; i < sizeof(VehicleName); i++)
- {
- if(!strcmp(inputtext, VehicleName[i], true))
- {
- Id = i + 400;
- break;
- }
- }
- if(Id == -1) return ShowPlayerDialog(playerid, BoxVeiculos, DIALOG_STYLE_INPUT, "Veiculos", "Nome/ID Invalido. Insira um Nome/ID Valido Abaixo:", "Comprar", "Sair");
- }
- else
- {
- Id = strval(inputtext);
- if(Id < 400 || Id > 611) return ShowPlayerDialog(playerid, BoxVeiculos, DIALOG_STYLE_INPUT, "Veiculos", "Nome/ID Invalido. Insira um Nome/ID Valido Abaixo:", "Comprar", "Sair");
- }
- 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");
- new i = ChecarNumeroMaisProximo();
- VehicleInfo[i][vCriado] = true;
- VehicleInfo[i][vPosX] = 2134.5500;
- VehicleInfo[i][vPosY] = -1127.1500;
- VehicleInfo[i][vPosZ] = 26.1000;
- VehicleInfo[i][vRotZ] = 90.0000;
- VehicleInfo[i][vModelo] = Id;
- VehicleInfo[i][vCor1] = 1;
- VehicleInfo[i][vCor2] = 1;
- VehicleInfo[i][vTrancado] = false;
- strmid(VehicleInfo[i][vDono], GetPlayerNameEx(playerid), 0, strlen(GetPlayerNameEx(playerid)), 255);
- 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);
- PlayerInfo[playerid][pNumeroVeiculo] = i;
- PutPlayerInVehicle(playerid, VehicleInfo[i][vID], 0);
- QuantidadeDeVeiculosCarregados = i;
- SII_SaveVehicle(i);
- GivePlayerMoney(playerid, -100000);
- return 1;
- }
- else if(dialogid == BoxVeiculos+1)
- {
- if(!response) return 1;
- new n = PlayerInfo[playerid][pNumeroVeiculo],
- i = VehicleInfo[n][vID];
- switch(listitem)
- {
- case 0:
- {
- if(!IsPlayerInVehicle(playerid, i))
- {
- SendClientMessage(playerid, -1, "[Erro] Você não esta no seu veiculo.");
- return ShowPlayerDialog(playerid, BoxVeiculos+1, DIALOG_STYLE_LIST, "Meu Veiculo", ">> Estacionar\n>> Trancar\n>> Destrancar\n>> Pintar\n>> Vender", "Selecionar", "Sair");
- }
- new Float:PosX,
- Float:PosY,
- Float:PosZ,
- Float:RotZ;
- GetVehiclePos(i, PosX, PosY, PosZ);
- GetVehicleZAngle(i, RotZ);
- VehicleInfo[i][vPosX] = PosX;
- VehicleInfo[i][vPosY] = PosY;
- VehicleInfo[i][vPosZ] = PosZ;
- VehicleInfo[i][vRotZ] = RotZ;
- SII_SaveVehicle(n);
- DestroyVehicle(i);
- 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);
- PutPlayerInVehicle(playerid, VehicleInfo[n][vID], 0);
- SendClientMessage(playerid, -1, "Veiculo Estacionado!");
- return 1;
- }
- case 1:
- {
- if(!VehicleInfo[n][vTrancado])
- {
- TrancarVeiculo(i, true);
- VehicleInfo[n][vTrancado] = true;
- SendClientMessage(playerid, -1, "Veiculo Trancado!");
- SII_SaveVehicle(n);
- return 1;
- }
- else
- {
- SendClientMessage(playerid, -1, "[Erro] Veiculo já Trancado.");
- return ShowPlayerDialog(playerid, BoxVeiculos+1, DIALOG_STYLE_LIST, "Meu Veiculo", ">> Estacionar\n>> Trancar\n>> Destrancar\n>> Pintar\n>> Vender", "Selecionar", "Sair");
- }
- }
- case 2:
- {
- if(VehicleInfo[n][vTrancado])
- {
- TrancarVeiculo(i, false);
- VehicleInfo[n][vTrancado] = false;
- SendClientMessage(playerid, -1, "Veiculo Destrancado!");
- SII_SaveVehicle(n);
- return 1;
- }
- else
- {
- SendClientMessage(playerid, -1, "[Erro] Veiculo já não esta Trancado.");
- return ShowPlayerDialog(playerid, BoxVeiculos+1, DIALOG_STYLE_LIST, "Meu Veiculo", ">> Estacionar\n>> Trancar\n>> Destrancar\n>> Pintar\n>> Vender", "Selecionar", "Sair");
- }
- }
- case 3:
- {
- ShowPlayerDialog(playerid, BoxVeiculos-1, DIALOG_STYLE_INPUT, "Pintar", "Insira o ID da Cor 1 que você deseja:", "Pintar", "Voltar");
- return 1;
- }
- case 4:
- {
- VehicleInfo[i][vCriado] = false;
- VehicleInfo[i][vPosX] = 2134.5500;
- VehicleInfo[i][vPosY] = -1127.1500;
- VehicleInfo[i][vPosZ] = 26.1000;
- VehicleInfo[i][vRotZ] = 90.0000;
- VehicleInfo[i][vModelo] = 400;
- VehicleInfo[i][vCor1] = 1;
- VehicleInfo[i][vCor2] = 1;
- VehicleInfo[i][vTrancado] = false;
- strmid(VehicleInfo[i][vDono], "Ninguem", 0, strlen("Ninguem"), 255);
- DestroyVehicle(i);
- SII_SaveVehicle(n);
- PlayerInfo[playerid][pNumeroVeiculo] = INVALID_VEHICLE_ID;
- GivePlayerMoney(playerid, 100000);
- SendClientMessage(playerid, -1, "Você vendeu seu veiculo.");
- return 1;
- }
- default:
- {
- //?
- }
- }
- }
- else if(dialogid == BoxVeiculos-1)
- {
- if(!response) return ShowPlayerDialog(playerid, BoxVeiculos+1, DIALOG_STYLE_LIST, "Meu Veiculo", ">> Estacionar\n>> Trancar\n>> Destrancar\n>> Pintar\n>> Vender", "Selecionar", "Sair");
- else if(!strlen(inputtext)) return ShowPlayerDialog(playerid, BoxVeiculos-1, DIALOG_STYLE_INPUT, "Pintar", "Insira o ID da Cor 1 que você deseja:", "Pintar", "Voltar");
- else if(!IsNumeric(inputtext)) return ShowPlayerDialog(playerid, BoxVeiculos-1, DIALOG_STYLE_INPUT, "Pintar", "Insira o ID da Cor 1 que você deseja:", "Pintar", "Voltar");
- new Cor1 = strval(inputtext);
- if(Cor1 < 0 || Cor1 > 126 && Cor1 < 130 || Cor1 > 175) return ShowPlayerDialog(playerid, BoxVeiculos-1, DIALOG_STYLE_INPUT, "Pintar", "Insira um ID Valido:", "Pintar", "Voltar");
- new n = PlayerInfo[playerid][pNumeroVeiculo];
- VehicleInfo[n][vCor1] = Cor1;
- ShowPlayerDialog(playerid, BoxVeiculos-2, DIALOG_STYLE_INPUT, "Pintar", "Insira o ID da Cor 2 que você deseja:", "Pintar", "Voltar");
- return 1;
- }
- else if(dialogid == BoxVeiculos-2)
- {
- if(!response) return ShowPlayerDialog(playerid, BoxVeiculos+1, DIALOG_STYLE_LIST, "Meu Veiculo", ">> Estacionar\n>> Trancar\n>> Destrancar\n>> Pintar\n>> Vender", "Selecionar", "Sair");
- else if(!strlen(inputtext)) return ShowPlayerDialog(playerid, BoxVeiculos-2, DIALOG_STYLE_INPUT, "Pintar", "Insira o ID da Cor 2 que você deseja:", "Pintar", "Voltar");
- else if(!IsNumeric(inputtext)) return ShowPlayerDialog(playerid, BoxVeiculos-2, DIALOG_STYLE_INPUT, "Pintar", "Insira o ID da Cor 2 que você deseja:", "Pintar", "Voltar");
- new Cor2 = strval(inputtext);
- if(Cor2 < 0 || Cor2 > 126 && Cor2 < 130 || Cor2 > 175) return ShowPlayerDialog(playerid, BoxVeiculos-2, DIALOG_STYLE_INPUT, "Pintar", "Insira um ID Valido:", "Pintar", "Voltar");
- new n = PlayerInfo[playerid][pNumeroVeiculo],
- i = VehicleInfo[n][vID];
- VehicleInfo[n][vCor2] = Cor2;
- SII_SaveVehicle(n);
- ChangeVehicleColor(i, VehicleInfo[n][vCor1], VehicleInfo[n][vCor2]);
- return 1;
- }
- return 1;
- }
- //----------------------------------------------------------------------------//
- stock GetPlayerNameEx(playerid)
- {
- new pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- return pName;
- }
- stock ChecarNumeroMaisProximo()
- {
- new string[64],
- Valor, i;
- for(i = 0; i <= QuantidadeDeVeiculosCarregados; i++)
- {
- format(string, sizeof(string), "%s%d.txt", LOCAL_VEICULOS, i);
- if(!fexist(string)) continue;
- INI_Open(string);
- Valor = INI_ReadInt("Criado");
- INI_Close();
- if(!Valor) break;
- }
- if(Valor) return QuantidadeDeVeiculosCarregados + 1;
- return i;
- }
- stock IsNumeric(const string[])
- {
- new length = strlen(string);
- if(length==0) return false;
- for(new i = 0; i < length; i++)
- {
- if((string[i] > '9' || string[i] < '0' && string[i] != '-' && string[i] != '+')
- || (string[i] == '-' && i != 0) || (string[i] == '+' && i !=0 )) return false;
- }
- if(length == 1 && (string[0] == '-' || string[0] == '+')) return false;
- return true;
- }
- stock IsABoat(model)
- {
- if(model == 472 || model == 473 || model == 493 || model == 595 || model == 484 || model == 430 || model == 453 || model == 452 || model == 446 || model == 454) return 1;
- return 0;
- }
- stock IsAHelicopter(model)
- {
- if(model == 548 || model == 425 || model == 417 || model == 487 || model == 488 || model == 497 || model == 563 || model == 447 || model == 469) return 1;
- return 0;
- }
- stock IsAAirplane(model)
- {
- 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;
- return 0;
- }
- stock IsAInvalid(model)
- {
- if(model == 538 || model == 532 || model == 406 || model == 537 || model == 588 || model == 423 || model == 574 || model == 449 || model == 539 || model == 407 || model >= 604
- || model == 408 || model == 416 || model == 420 || model == 427 || model == 431 || model == 432 || model == 435 || model == 437 || model == 438 || model == 441 || model == 448
- || model == 450 || model == 459 || model == 464 || model == 465 || model == 470 || model == 490 || model == 494 || model == 495 || model == 501 || model == 502 || model == 503
- || model == 504 || model == 523 || model == 525 || model == 528 || model == 544 || model == 573 || model == 584 || model == 590 || model == 591 || model == 594 || model == 596
- || model == 597 || model == 598 || model == 599 || model == 601) return 1;
- return 0;
- }
- stock TrancarVeiculo(vehicleid, bool:Trancar)
- {
- new engine, lights, alarm, doors, bonnet, boot, objective;
- GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
- SetVehicleParamsEx(vehicleid, engine, lights, alarm, Trancar, bonnet, boot, objective);
- return 1;
- }
- //----------------------------------------------------------------------------//
- //SII
- stock SII_SaveVehicle(Number)
- {
- new TickCount = GetTickCount(),
- string[128];
- format(string, sizeof(string), "%s%d.txt", LOCAL_VEICULOS, Number);
- INI_Open(string);
- INI_WriteInt("Criado", VehicleInfo[Number][vCriado]);
- INI_WriteFloat("PosX", VehicleInfo[Number][vPosX]);
- INI_WriteFloat("PosY", VehicleInfo[Number][vPosY]);
- INI_WriteFloat("PosZ", VehicleInfo[Number][vPosZ]);
- INI_WriteFloat("RotZ", VehicleInfo[Number][vRotZ]);
- INI_WriteInt("Modelo", VehicleInfo[Number][vModelo]);
- INI_WriteInt("Cor1", VehicleInfo[Number][vCor1]);
- INI_WriteInt("Cor2", VehicleInfo[Number][vCor2]);
- INI_WriteInt("Trancado", VehicleInfo[Number][vTrancado]);
- INI_WriteString("Dono", VehicleInfo[Number][vDono]);
- INI_Save();
- INI_Close();
- printf("[SII] Veiculo %d Salvo em %dms.", Number, GetTickCount()-TickCount);
- return 1;
- }
- stock SII_LoadVehicles()
- {
- new TickCount = GetTickCount(),
- string[128];
- for(new i = 0; i < MAX_SELLING_VEHICLES; i++)
- {
- format(string, sizeof(string), "%s%d.txt", LOCAL_VEICULOS, i);
- if(fexist(string))
- {
- INI_Open(string);
- VehicleInfo[i][vCriado] = INI_ReadInt("Criado");
- VehicleInfo[i][vPosX] = INI_ReadFloat("PosX");
- VehicleInfo[i][vPosY] = INI_ReadFloat("PosY");
- VehicleInfo[i][vPosZ] = INI_ReadFloat("PosZ");
- VehicleInfo[i][vRotZ] = INI_ReadFloat("RotZ");
- VehicleInfo[i][vModelo] = INI_ReadInt("Modelo");
- VehicleInfo[i][vCor1] = INI_ReadInt("Cor1");
- VehicleInfo[i][vCor2] = INI_ReadInt("Cor2");
- VehicleInfo[i][vTrancado] = INI_ReadInt("Trancado");
- INI_ReadString("Dono", VehicleInfo[i][vDono], MAX_PLAYER_NAME);
- INI_Close();
- QuantidadeDeVeiculosCarregados ++;
- if(!VehicleInfo[i][vCriado]) CarregadoMaisNaoCriado ++;
- else
- {
- 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);
- if(VehicleInfo[i][vTrancado]) TrancarVeiculo(VehicleInfo[i][vID], true);
- }
- }
- }
- printf("[SII] %d(%d)/%d Veiculos Carregados em %dms.", QuantidadeDeVeiculosCarregados, QuantidadeDeVeiculosCarregados-CarregadoMaisNaoCriado, MAX_SELLING_VEHICLES, GetTickCount()-TickCount);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement