Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Dynamic Carownership by RAPlaY - Balkanska verzija
- //---------------------------- [ Include ] -------------------------------------
- #include <a_samp>
- #include <YSI\y_commands>
- #include <YSI\y_ini>
- #include <YSI\y_va>
- #include <sscanf2>
- //---------------------------- [ Define ] -------------------------------------
- #define ERROR(%0,%1) SendClientMessage(%0, 0xfa5555AA, "[ERROR] "%1)
- #define USAGE(%0,%1) SendClientMessage(%0, 0xDED6BAFF, "[USAGE] "%1)
- #define INFO(%0,%1) SendClientMessage(%0, 0x396DFAFF, "[INFO] "%1)
- #define MAX_CARS (150)
- #define VEH_FILE "Vehicles/%d.ini"
- #define GetVehicleNameEx(%0) CarNames[(%0) - 400]
- //---------------------------- [ Colors ] -------------------------------------
- #define col_white "{FFFFFF}"
- #define col_red "{FFFF00}"
- //--------------------------- [ Enumators ] ------------------------------------
- enum {
- DIALOG_CARCOLORS,
- DIALOG_CARINFO,
- DIALOG_CARSELL
- }
- enum pInfo {
- pVehicleKey,
- pMoney
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- enum vInfo {
- vOwner[24],
- vModel,
- Float:vPosition[4],
- vPrice,
- vColor[2],
- carID,
- vGPS,
- vLocked,
- vOwned
- }
- new VehicleInfo[MAX_CARS][vInfo],
- vehicleFile[32],
- countVehicles = 0,
- engine, alarm, lights, doors, bonnet, boot, objective;
- enum pVariables {
- bool:PlayerInSaleVehicle,
- bool:vehLocated,
- pBuyingFrom,
- pBuyingPrice
- }
- new PlayerVariables[MAX_PLAYERS][pVariables];
- //--------------------------- [ Variables ] ------------------------------------
- new PlayerText:CosTD[MAX_PLAYERS][3];
- new CarNames[][] = {
- "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel",
- "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo",
- "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto",
- "Taxi", "Washington", "Bobcat", "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", "Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood",
- "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick", "Boxvillde",
- "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger",
- "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle",
- "Cropduster", "Stunt", "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", "Hustler", "Intruder", "Primo", "Cargobob",
- "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster",
- "Monster", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger",
- "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart",
- "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley",
- "Stafford", "BF-400", "News Van", "Tug", "Trailer 3", "Emperor", "Wayfarer", "Euros",
- "Hotdog", "Club", "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch",
- "LShowPlayerDialog Car", "SFPD Car", "LVPD Car", "Police Ranger", "Picador", "S.W.A.T Tank", "Alpha",
- "Phoenix", "Glendale", "Sadler", "Luggage Trailer 1", "Luggage Trailer 2", "Stairs Trailer",
- "Boxville", "Utility Trailer 1", "Utility Trailer 2"
- };
- //--------------------------- [ Callback's ] -----------------------------------
- public OnFilterScriptInit() {
- for(new i = (1); i < MAX_CARS; i++) {
- format(vehicleFile, sizeof(vehicleFile), VEH_FILE, i);
- if(fexist(vehicleFile)) {
- INI_ParseFile(vehicleFile, "loadVehicle", .bExtra = true, .extra = i);
- VehicleInfo[i][carID] = CreateVehicle(VehicleInfo[i][vModel], VehicleInfo[i][vPosition][0], VehicleInfo[i][vPosition][1], VehicleInfo[i][vPosition][2], VehicleInfo[i][vPosition][3], VehicleInfo[i][vColor][0], VehicleInfo[i][vColor][1], 50000);
- SetVehicleParamsEx(VehicleInfo[i][carID], engine, lights, alarm, VehicleInfo[i][vLocked], bonnet, boot, objective);
- countVehicles++;
- }
- }
- printf("Ucitano [%d] Carownership vozila.", countVehicles);
- return (true);
- }
- public OnFilterScriptExit() {
- for(new i = (1); i < MAX_CARS; i++) {
- format(vehicleFile, sizeof(vehicleFile), VEH_FILE, i);
- if(fexist(vehicleFile)) {
- saveVehicle(i);
- }
- }
- return (true);
- }
- public OnPlayerConnect(playerid) {
- PlayerVariables[playerid][PlayerInSaleVehicle] = false;
- PlayerVariables[playerid][vehLocated] = false;
- PlayerVariables[playerid][pBuyingFrom] = -1;
- PlayerVariables[playerid][pBuyingPrice] = -1;
- if (fexist(UserPath(playerid))) {
- INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
- }
- else {
- PlayerInfo[playerid][pVehicleKey] = -1;
- SavePlayer(playerid);
- }
- return (true);
- }
- public OnPlayerDisconnect(playerid, reason) {
- SavePlayer(playerid);
- return (true);
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- new r = PlayerInfo[playerid][pVehicleKey],
- jebemtisvufamiliju = GetPlayerVehicleID(playerid);
- if(dialogid == DIALOG_CARCOLORS) {
- if(response) {
- switch (listitem) {
- case 0: {
- if(GetPlayerMoney(playerid) < 500) return ERROR(playerid, "Nemate dovoljno novca za farbanje vozila!!");
- VehicleInfo[r][vColor][0] = 128;
- VehicleInfo[r][vColor][1] = 128;
- ChangeVehicleColor(jebemtisvufamiliju, VehicleInfo[r][vColor][0], VehicleInfo[r][vColor][1]);
- GivePlayerMoney(playerid, -500);
- INFO(playerid, "You successfully repainted your vehicle!");
- saveVehicle(r);
- }
- case 1: {
- if(GetPlayerMoney(playerid) < 500) return ERROR(playerid, "Nemate dovoljno novca za farbanje vozila!!");
- VehicleInfo[r][vColor][0] = 3;
- VehicleInfo[r][vColor][1] = 3;
- ChangeVehicleColor(jebemtisvufamiliju, VehicleInfo[r][vColor][0], VehicleInfo[r][vColor][1]);
- GivePlayerMoney(playerid, -500);
- INFO(playerid, "You successfully repainted your vehicle!");
- saveVehicle(r);
- }
- case 2: {
- if(GetPlayerMoney(playerid) < 500) return ERROR(playerid, "Nemate dovoljno novca za farbanje vozila!!");
- VehicleInfo[r][vColor][0] = 222;
- VehicleInfo[r][vColor][1] = 222;
- ChangeVehicleColor(jebemtisvufamiliju, VehicleInfo[r][vColor][0], VehicleInfo[r][vColor][1]);
- GivePlayerMoney(playerid, -500);
- INFO(playerid, "You successfully repainted your vehicle!");
- saveVehicle(r);
- }
- case 3: {
- if(GetPlayerMoney(playerid) < 500) return ERROR(playerid, "Nemate dovoljno novca za farbanje vozila!!");
- VehicleInfo[r][vColor][0] = 194;
- VehicleInfo[r][vColor][1] = 194;
- ChangeVehicleColor(jebemtisvufamiliju, VehicleInfo[r][vColor][0], VehicleInfo[r][vColor][1]);
- GivePlayerMoney(playerid, -500);
- INFO(playerid, "You successfully repainted your vehicle!");
- saveVehicle(r);
- }
- case 4: {
- if(GetPlayerMoney(playerid) < 500) return ERROR(playerid, "Nemate dovoljno novca za farbanje vozila!!");
- VehicleInfo[r][vColor][0] = 211;
- VehicleInfo[r][vColor][1] = 211;
- ChangeVehicleColor(jebemtisvufamiliju, VehicleInfo[r][vColor][0], VehicleInfo[r][vColor][1]);
- GivePlayerMoney(playerid, -500);
- INFO(playerid, "You successfully repainted your vehicle!");
- saveVehicle(r);
- }
- case 5: {
- if(GetPlayerMoney(playerid) < 500) return ERROR(playerid, "Nemate dovoljno novca za farbanje vozila!!");
- VehicleInfo[r][vColor][0] = 162;
- VehicleInfo[r][vColor][1] = 162;
- ChangeVehicleColor(jebemtisvufamiliju, VehicleInfo[r][vColor][0], VehicleInfo[r][vColor][1]);
- GivePlayerMoney(playerid, -500);
- INFO(playerid, "You successfully repainted your vehicle!");
- saveVehicle(r);
- }
- case 6: {
- if(GetPlayerMoney(playerid) < 500) return ERROR(playerid, "Nemate dovoljno novca za farbanje vozila!!");
- VehicleInfo[r][vColor][0] = 130;
- VehicleInfo[r][vColor][1] = 130;
- ChangeVehicleColor(jebemtisvufamiliju, VehicleInfo[r][vColor][0], VehicleInfo[r][vColor][1]);
- GivePlayerMoney(playerid, -500);
- INFO(playerid, "You successfully repainted your vehicle!");
- saveVehicle(r);
- }
- case 7: {
- if(GetPlayerMoney(playerid) < 500) return ERROR(playerid, "Nemate dovoljno novca za farbanje vozila!!");
- VehicleInfo[r][vColor][0] = 251;
- VehicleInfo[r][vColor][1] = 251;
- ChangeVehicleColor(jebemtisvufamiliju, VehicleInfo[r][vColor][0], VehicleInfo[r][vColor][1]);
- GivePlayerMoney(playerid, -500);
- INFO(playerid, "You successfully repainted your vehicle!");
- saveVehicle(r);
- }
- case 8: {
- if(GetPlayerMoney(playerid) < 500) return ERROR(playerid, "Nemate dovoljno novca za farbanje vozila!!");
- VehicleInfo[r][vColor][0] = 173;
- VehicleInfo[r][vColor][1] = 173;
- ChangeVehicleColor(jebemtisvufamiliju, VehicleInfo[r][vColor][0], VehicleInfo[r][vColor][1]);
- GivePlayerMoney(playerid, -500);
- INFO(playerid, "You successfully repainted your vehicle!");
- saveVehicle(r);
- }
- case 9: {
- if(GetPlayerMoney(playerid) < 500) return ERROR(playerid, "Nemate dovoljno novca za farbanje vozila!!");
- VehicleInfo[r][vColor][0] = 1;
- VehicleInfo[r][vColor][1] = 1;
- ChangeVehicleColor(jebemtisvufamiliju, VehicleInfo[r][vColor][0], VehicleInfo[r][vColor][1]);
- GivePlayerMoney(playerid, -500);
- INFO(playerid, "You successfully repainted your vehicle!");
- saveVehicle(r);
- }
- case 10: {
- if(GetPlayerMoney(playerid) < 500) return ERROR(playerid, "Nemate dovoljno novca za farbanje vozila!!");
- VehicleInfo[r][vColor][0] = 0;
- VehicleInfo[r][vColor][1] = 0;
- ChangeVehicleColor(jebemtisvufamiliju, VehicleInfo[r][vColor][0], VehicleInfo[r][vColor][1]);
- GivePlayerMoney(playerid, -500);
- INFO(playerid, "You successfully repainted your vehicle!");
- saveVehicle(r);
- }
- }
- }
- }
- if(dialogid == DIALOG_CARSELL) {
- if(response) {
- new id, price;
- if(sscanf(inputtext, "ii", id, price)) return ERROR(playerid, "Moras ukucati ID igraca i CIJENU vozila!");
- if(id == playerid) return ERROR(playerid, "Ne mozes sam sebi prodati vozilo!");
- if(!IsPlayerInRangeOfPlayer(playerid, 10.0, id)) return ERROR(playerid, "Moras biti sa igracem!");
- if(price < 1000 || price > 1000000) return ERROR(playerid, "Cijena ne moze biti manja od 1.000$ a veca od 1.000.000$!");
- PlayerVariables[id][pBuyingFrom] = playerid;
- PlayerVariables[id][pBuyingPrice] = price;
- va_SendClientMessage(playerid, -1, "Ponudio si igracu "col_red"%s "col_white"tvoje vozilo po cijeni od $"col_red"%d", GetName(id), price);
- va_SendClientMessage(id, 0xEAFF00FF, "-------------- [ Dobili ste ponutu za kupovinu vozila["col_red" %s{EAFF00}) ] ----------------", GetVehicleNameEx(VehicleInfo[PlayerInfo[playerid][pVehicleKey]][vModel]));
- va_SendClientMessage(playerid, -1, "Dobili ste ponudu od "col_red"%s "col_white"cijena $"col_red"%d", GetName(id), price);
- INFO(id, "Ukucajte /car accept da kupite vozilo!");
- }
- }
- return (false);
- }
- public OnPlayerEnterCheckpoint(playerid) {
- if(PlayerVariables[playerid][vehLocated] == true) {
- DisablePlayerCheckpoint(playerid);
- PlayerVariables[playerid][vehLocated] = false;
- GameTextForPlayer(playerid, "~r~Stigli ste!", 1500, 5);
- }
- return (true);
- }
- public OnPlayerStateChange(playerid, newstate, oldstate) {
- new vehicleid = GetPlayerVehicleID(playerid);
- if(oldstate == PLAYER_STATE_ONFOOT || newstate == PLAYER_STATE_DRIVER) {
- for(new i = (0); i < MAX_CARS; i++) {
- format(vehicleFile, sizeof(vehicleFile), VEH_FILE, i);
- if(fexist(vehicleFile)) {
- if(vehicleid == VehicleInfo[i][carID]) {
- if(VehicleInfo[i][vOwned] == 0) {
- va_SendClientMessage(playerid, -1, "Ukucaj /buyvehicle da kupis vozilo!");
- CreateCosTD(playerid, true);
- new strInfo[60];
- format(strInfo, sizeof(strInfo), "~g~model: ~w~%s~n~~g~cijena: $~w~%d", GetVehicleNameEx(VehicleInfo[i][vModel]), VehicleInfo[i][vPrice]);
- PlayerTextDrawSetString(playerid, CosTD[playerid][2], strInfo);
- SetVehicleParamsEx(VehicleInfo[i][carID], 0, lights, alarm, 0, bonnet, boot, objective);
- }
- else if(VehicleInfo[i][vOwned] == 1) {
- va_SendClientMessage(playerid, -1, ""col_white"Vozilo registrovano na: "col_red"%s", VehicleInfo[i][vOwner]);
- SetVehicleParamsEx(VehicleInfo[i][carID], 1, lights, alarm, VehicleInfo[i][vLocked], bonnet, boot, objective);
- }
- }
- }
- }
- }
- if(oldstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_ONFOOT) {
- if(PlayerVariables[playerid][PlayerInSaleVehicle] == true) {
- CreateCosTD(playerid, false);
- }
- }
- return (true);
- }
- YCMD:cvehicle(playerid, params[], help) {
- #pragma unused help
- new model, price, vehID = NextVehicleID(), Float:plPositions[4];
- GetPlayerPos(playerid, plPositions[0], plPositions[1], plPositions[2]);
- GetPlayerFacingAngle(playerid, plPositions[3]);
- if(!IsPlayerAdmin(playerid)) return ERROR(playerid, "Morate biti RCON Administrator!");
- if(countVehicles >= MAX_CARS) return ERROR(playerid, "Na serveru je dostignut maksimalan broj vozila!");
- if(sscanf(params, "ii", model, price)) return USAGE(playerid, "/cvehicle [Model ID] [Price]");
- if(model < 400 || model > 610) return ERROR(playerid, "Nepoznat model!");
- if(price < 2000 || price > 1000000) return ERROR(playerid, "Cijena ne moze biti manja od 2000$ a veca od 1.000.000$!");
- format(VehicleInfo[vehID][vOwner], 24, "Drzava");
- VehicleInfo[vehID][vModel] = model;
- VehicleInfo[vehID][vPosition][0] = plPositions[0];
- VehicleInfo[vehID][vPosition][1] = plPositions[1];
- VehicleInfo[vehID][vPosition][2] = plPositions[2];
- VehicleInfo[vehID][vPosition][3] = plPositions[3];
- VehicleInfo[vehID][vPrice] = price;
- VehicleInfo[vehID][vColor][0] = 1;
- VehicleInfo[vehID][vColor][1] = 1;
- VehicleInfo[vehID][vGPS] = 0;
- VehicleInfo[vehID][vLocked] = 0;
- VehicleInfo[vehID][vOwned] = 0;
- saveVehicle(vehID);
- VehicleInfo[vehID][carID] = CreateVehicle(VehicleInfo[vehID][vModel], VehicleInfo[vehID][vPosition][0], VehicleInfo[vehID][vPosition][1], VehicleInfo[vehID][vPosition][2], VehicleInfo[vehID][vPosition][3], VehicleInfo[vehID][vColor][0], VehicleInfo[vehID][vColor][1], 50000);
- INFO(playerid, "Vozilo kreirano.");
- SetPlayerPos(playerid, plPositions[0], plPositions[1], plPositions[2]+2.3);
- return (true);
- }
- YCMD:buyvehicle(playerid, params[], help) {
- #pragma unused help
- new vehicleid = GetPlayerVehicleID(playerid);
- if(PlayerInfo[playerid][pVehicleKey] != -1) return ERROR(playerid, "Vec imas vozilo!");
- for(new i = (0); i < MAX_CARS; i++) {
- format(vehicleFile, sizeof(vehicleFile), VEH_FILE, i);
- if(fexist(vehicleFile)) {
- if(vehicleid == VehicleInfo[i][carID]) {
- if(VehicleInfo[i][vOwned] == 1) {
- ERROR(playerid, "This vehicle is not for sale!");
- return (1);
- }
- else {
- if(GetPlayerMoney(playerid) < VehicleInfo[i][vPrice]) return ERROR(playerid, "Nemas dovoljno novca za kupovinu vozila!");
- PlayerInfo[playerid][pVehicleKey] = i;
- VehicleInfo[i][vOwned] = 1;
- format(VehicleInfo[i][vOwner], 24, "%s", GetName(playerid));
- GivePlayerMoney(playerid, -VehicleInfo[i][vPrice]);
- saveVehicle(i);
- SavePlayer(playerid);
- RemovePlayerFromVehicle(playerid);
- CreateCosTD(playerid, false);
- }
- }
- }
- }
- return (true);
- }
- YCMD:car(playerid, params[], help) {
- #pragma unused help
- new option[9],
- k = PlayerInfo[playerid][pVehicleKey];
- if(sscanf(params, "s[9]", option)) {
- USAGE(playerid, "/car [Opcija]");
- SendClientMessage(playerid, -1, "Opcije: info, locate, park, buygps");
- SendClientMessage(playerid, -1, "Opcije: color, lock, sell, accept");
- SendClientMessage(playerid, -1, "Opcije: delete ("col_red"UPOZORENJE: "col_white"vase vozilo ce biti potpuno izbrisano iz baze)");
- SendClientMessage(playerid, -1, "-------------------------------------------");
- return (1);
- }
- if(strcmp(option, "info", true) == 0) {
- if(PlayerInfo[playerid][pVehicleKey] == -1) return ERROR(playerid, "Nemas vozilo!");
- new strVeh[250];
- format(strVeh, sizeof(strVeh), ""col_red"_______________________________\n\n\
- "col_red"Model: "col_white"%s\n\
- "col_red"Price: "col_white"%d$\n\
- "col_red"Boja 1(ID): "col_white"%d\n\
- "col_red"Boja 2(ID): "col_white"%d\n\n\
- "col_red"_______________________________", GetVehicleNameEx(VehicleInfo[k][vModel]), VehicleInfo[k][vPrice], VehicleInfo[k][vColor][0], VehicleInfo[k][vColor][1]);
- ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, ""col_white"Vehicle info", strVeh, "Close", "");
- }
- else if(strcmp(option, "locate", true) == 0) {
- if(PlayerInfo[playerid][pVehicleKey] == -1) return ERROR(playerid, "Nemas vozilo!");
- if(VehicleInfo[k][vGPS] == 0) return ERROR(playerid, "Nemate GPS u vasem vozilu!");
- new Float:locPos[3];
- GetVehiclePos(VehicleInfo[k][carID], locPos[0], locPos[1], locPos[2]);
- PlayerVariables[playerid][vehLocated] = true;
- SetPlayerCheckpoint(playerid, locPos[0], locPos[1], locPos[2], 5.0);
- INFO(playerid, "Your vehicle is located on map.");
- }
- else if(strcmp(option, "park", true) == 0) {
- new Float:playerPos[4];
- if(PlayerInfo[playerid][pVehicleKey] == -1) return ERROR(playerid, "Nemas vozilo!");
- if(GetPlayerVehicleID(playerid) != VehicleInfo[k][carID]) return ERROR(playerid, "Moras biti u svom vozilu!");
- GetVehiclePos(GetPlayerVehicleID(playerid), playerPos[0], playerPos[1], playerPos[2]);
- GetVehicleZAngle(GetPlayerVehicleID(playerid), playerPos[3]);
- VehicleInfo[k][vPosition][0] = playerPos[0];
- VehicleInfo[k][vPosition][1] = playerPos[1];
- VehicleInfo[k][vPosition][2] = playerPos[2];
- VehicleInfo[k][vPosition][3] = playerPos[3];
- saveVehicle(k);
- DestroyVehicle(VehicleInfo[k][carID]);
- VehicleInfo[k][carID] = CreateVehicle(VehicleInfo[k][vModel], VehicleInfo[k][vPosition][0], VehicleInfo[k][vPosition][1], VehicleInfo[k][vPosition][2], VehicleInfo[k][vPosition][3], VehicleInfo[k][vColor][0], VehicleInfo[k][vColor][1], 50000);
- INFO(playerid, "You have successfully parked vehicle.");
- }
- else if(strcmp(option, "color", true) == 0) {
- if(PlayerInfo[playerid][pVehicleKey] == -1) return ERROR(playerid, "Nemas vozilo!");
- if(GetPlayerVehicleID(playerid) != VehicleInfo[k][carID]) return ERROR(playerid, "Moras biti u svom vozilu!");
- INFO(playerid, "Repainting vehicle costs $500.");
- ShowPlayerDialog(playerid, DIALOG_CARCOLORS, DIALOG_STYLE_LIST, ""col_white"Vehicle colors", "Green\nRed\nOrange\nYellow\nPurple\nDark blue\nLight blue\nGrey\nBrown\nWhite\nBlack", "Select", "Cancel");
- }
- else if(strcmp(option, "buygps", true) == 0) {
- if(PlayerInfo[playerid][pVehicleKey] == -1) return ERROR(playerid, "Nemas vozilo!");
- if(GetPlayerVehicleID(playerid) != VehicleInfo[k][carID]) return ERROR(playerid, "Moras biti u svom vozilu!");
- if(VehicleInfo[k][vGPS] == 1) return ERROR(playerid, "Vec imas GPS!");
- if(GetPlayerMoney(playerid) < 800) return ERROR(playerid, "Nemas dovoljno novca da bi kupio GPS!");
- VehicleInfo[k][vGPS] = 1;
- GivePlayerMoney(playerid, -800);
- saveVehicle(k);
- INFO(playerid, "You have successfully buyed GPS.");
- }
- else if(strcmp(option, "lock", true) == 0) {
- if(PlayerInfo[playerid][pVehicleKey] == -1) return ERROR(playerid, "Nemas vozilo!");
- if(GetClosestVehicle(playerid) != VehicleInfo[k][carID]) return ERROR(playerid, "Moras biti u svom vozilu or close to your vehicle!");
- GetVehicleParamsEx(GetClosestVehicle(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
- if(VehicleInfo[k][vLocked] == VEHICLE_PARAMS_OFF) {
- SetVehicleParamsEx(VehicleInfo[k][carID], engine, lights, alarm, VEHICLE_PARAMS_ON, bonnet, boot, objective);
- GameTextForPlayer(playerid, "~r~Locked", 1500, 5);
- VehicleInfo[k][vLocked] = VEHICLE_PARAMS_ON;
- }
- else if(VehicleInfo[k][vLocked] == VEHICLE_PARAMS_ON) {
- SetVehicleParamsEx(VehicleInfo[k][carID], engine, lights, alarm, VEHICLE_PARAMS_OFF, bonnet, boot, objective);
- GameTextForPlayer(playerid, "~g~Unlocked", 1500, 5);
- VehicleInfo[k][vLocked] = VEHICLE_PARAMS_OFF;
- }
- }
- else if(strcmp(option, "delete", true) == 0) {
- if(PlayerInfo[playerid][pVehicleKey] == -1) return ERROR(playerid, "Nemas vozilo!");
- if(GetPlayerVehicleID(playerid) != VehicleInfo[k][carID]) return ERROR(playerid, "Moras biti u svom vozilu!");
- DeleteVehicle(PlayerInfo[playerid][pVehicleKey]);
- countVehicles--;
- PlayerInfo[playerid][pVehicleKey] = -1;
- SavePlayer(playerid);
- DestroyVehicle(GetPlayerVehicleID(playerid));
- SendClientMessage(playerid, 0xFFFF00FF, "Obrisali ste vozilo iz baze podataka.");
- }
- else if(strcmp(option, "sell", true) == 0) {
- if(PlayerInfo[playerid][pVehicleKey] == -1) return ERROR(playerid, "Nemas vozilo!");
- if(PlayerVariables[playerid][pBuyingFrom] != -1) return ERROR(playerid, "Vec prodajete vozilo!");
- if(GetPlayerVehicleID(playerid) != VehicleInfo[k][carID]) return ERROR(playerid, "Moras biti u svom vozilu!");
- ShowPlayerDialog(playerid, DIALOG_CARSELL, DIALOG_STYLE_INPUT, ""col_white"Vehicle sale", "Type ID of player and PRICE of vehicle in empty space", "Offer", "Cancel");
- }
- else if(strcmp(option, "accept", true) == 0) {
- if(PlayerVariables[playerid][pBuyingFrom] == -1) return ERROR(playerid, "Ne kupujete vozilo!");
- if(PlayerVariables[playerid][pBuyingPrice] == -1) return ERROR(playerid, "Ne kupujete vozilo!");
- if(GetPlayerVehicleID(playerid) != VehicleInfo[PlayerInfo[PlayerVariables[playerid][pBuyingFrom]][pVehicleKey]][carID]) return ERROR(playerid, "You must be in vehicle wich you want to buy!");
- GivePlayerMoney(PlayerVariables[playerid][pBuyingFrom], PlayerVariables[playerid][pBuyingPrice]);
- GivePlayerMoney(playerid, -PlayerVariables[playerid][pBuyingPrice]);
- PlayerInfo[playerid][pVehicleKey] = PlayerInfo[PlayerVariables[playerid][pBuyingFrom]][pVehicleKey];
- format(VehicleInfo[PlayerInfo[playerid][pVehicleKey]][vOwner], 24, "%s", GetName(playerid));
- PlayerInfo[PlayerVariables[playerid][pBuyingFrom]][pVehicleKey] = -1;
- saveVehicle(PlayerInfo[playerid][pVehicleKey]);
- SavePlayer(playerid);
- SavePlayer(PlayerVariables[playerid][pBuyingFrom]);
- va_SendClientMessage(playerid, -1, "Kupili ste vozilo od "col_red"%s "col_white"po cijeni $"col_red"%d", GetName(PlayerVariables[playerid][pBuyingFrom]), PlayerVariables[playerid][pBuyingPrice]);
- va_SendClientMessage(PlayerVariables[playerid][pBuyingFrom], -1, "Prodali ste vozilo igracu "col_red"%s "col_white"po cijeni $"col_red"%d", GetName(playerid), PlayerVariables[playerid][pBuyingPrice]);
- PlayerVariables[playerid][pBuyingFrom] = -1;
- PlayerVariables[playerid][pBuyingPrice] = -1;
- }
- return (true);
- }
- //----------------------------- [ Other ] --------------------------------------
- stock ClearChat(playerid, lines) {
- for(new i = (0); i < lines; i++) {
- SendClientMessage(playerid, -1, "");
- }
- return (lines);
- }
- stock IsPlayerInRangeOfPlayer(playerid, Float:range, oplayerid) {
- new Float:Positions[3];
- GetPlayerPos(oplayerid, Positions[0], Positions[1], Positions[2]);
- if (IsPlayerInRangeOfPoint(playerid, range, Positions[0], Positions[1], Positions[2])) return 1;
- else return 0;
- }
- stock GetClosestVehicle(playerid) {
- new Float:posx, Float:posy, Float:posz, Float:dist, Float:closedist=9999, closeveh;
- for(new i=0; i < MAX_VEHICLES; i++) {
- if(GetVehiclePos(i, posx, posy, posz)) {
- dist = GetPlayerDistanceFromPoint(playerid, posx, posy, posz);
- if(dist < closedist) {
- closedist = dist;
- closeveh = i;
- }
- }
- }
- return closeveh;
- }
- forward LoadUser_data(playerid, name[], value[]);
- public LoadUser_data(playerid, name[], value[]) {
- INI_Int("VehicleKey", PlayerInfo[playerid][pVehicleKey]);
- return 1;
- }
- stock SavePlayer(playerid) {
- new INI:File = INI_Open(UserPath(playerid));
- INI_SetTag(File, "data");
- INI_WriteInt(File, "VehicleKey", PlayerInfo[playerid][pVehicleKey]);
- INI_Close(File);
- return 1;
- }
- stock UserPath(playerid) {
- new string[128],
- playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid,playername,sizeof(playername));
- format(string,sizeof(string), "Vehicles/Players/%s", playername);
- return string;
- }
- forward loadVehicle(vehicleID, name[], value[]);
- public loadVehicle(vehicleID, name[], value[])
- {
- INI_String("Owner", VehicleInfo[vehicleID][vOwner], 24);
- INI_Int("Model", VehicleInfo[vehicleID][vModel]);
- INI_Float("Pos_X", VehicleInfo[vehicleID][vPosition][0]);
- INI_Float("Pos_Y", VehicleInfo[vehicleID][vPosition][1]);
- INI_Float("Pos_Z", VehicleInfo[vehicleID][vPosition][2]);
- INI_Float("Pos_A", VehicleInfo[vehicleID][vPosition][3]);
- INI_Int("Price", VehicleInfo[vehicleID][vPrice]);
- INI_Int("Color_1", VehicleInfo[vehicleID][vColor][0]);
- INI_Int("Color_2", VehicleInfo[vehicleID][vColor][1]);
- INI_Int("GPS", VehicleInfo[vehicleID][vGPS]);
- INI_Int("Locked", VehicleInfo[vehicleID][vLocked]);
- INI_Int("Owned", VehicleInfo[vehicleID][vOwned]);
- return (true);
- }
- stock saveVehicle(vehicleID)
- {
- format(vehicleFile, sizeof(vehicleFile), VEH_FILE, vehicleID);
- new INI:File = INI_Open(vehicleFile);
- INI_WriteString(File, "Owner", VehicleInfo[vehicleID][vOwner]);
- INI_WriteInt(File, "Model", VehicleInfo[vehicleID][vModel]);
- INI_WriteFloat(File, "Pos_X", VehicleInfo[vehicleID][vPosition][0]);
- INI_WriteFloat(File, "Pos_Y", VehicleInfo[vehicleID][vPosition][1]);
- INI_WriteFloat(File, "Pos_Z", VehicleInfo[vehicleID][vPosition][2]);
- INI_WriteFloat(File, "Pos_A", VehicleInfo[vehicleID][vPosition][3]);
- INI_WriteInt(File, "Price", VehicleInfo[vehicleID][vPrice]);
- INI_WriteInt(File, "Color_1", VehicleInfo[vehicleID][vColor][0]);
- INI_WriteInt(File, "Color_2", VehicleInfo[vehicleID][vColor][1]);
- INI_WriteInt(File, "GPS", VehicleInfo[vehicleID][vGPS]);
- INI_WriteInt(File, "Locked", VehicleInfo[vehicleID][vLocked]);
- INI_WriteInt(File, "Owned", VehicleInfo[vehicleID][vOwned]);
- INI_Close(File);
- return (true);
- }
- stock DeleteVehicle(id) {
- format(vehicleFile, sizeof(vehicleFile), VEH_FILE, id);
- if(fexist(vehicleFile)) {
- fremove(vehicleFile);
- }
- return (true);
- }
- stock NextVehicleID() {
- new id = (-1);
- for(new loop = (0), provjera = (-1), Data_[64] = "\0"; loop != MAX_CARS; ++ loop) {
- provjera = (loop+1);
- format(Data_, (sizeof Data_), VEH_FILE, provjera);
- if(!fexist(Data_)) {
- id = (provjera);
- break;
- }
- }
- return (id);
- }
- stock GetName(playerid) {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- return name;
- }
- stock CreateCosTD(playerid, bool:created) {
- if(created == false) {
- PlayerTextDrawHide(playerid, CosTD[playerid][0]);
- PlayerTextDrawHide(playerid, CosTD[playerid][1]);
- PlayerTextDrawHide(playerid, CosTD[playerid][2]);
- PlayerTextDrawDestroy(playerid, CosTD[playerid][0]);
- PlayerTextDrawDestroy(playerid, CosTD[playerid][1]);
- PlayerTextDrawDestroy(playerid, CosTD[playerid][2]);
- PlayerVariables[playerid][PlayerInSaleVehicle] = false;
- }
- else if(created == true) {
- CosTD[playerid][0] = CreatePlayerTextDraw(playerid,643.000000, 141.000000, "_");
- PlayerTextDrawBackgroundColor(playerid,CosTD[playerid][0], 255);
- PlayerTextDrawFont(playerid,CosTD[playerid][0], 1);
- PlayerTextDrawLetterSize(playerid,CosTD[playerid][0], 0.500000, 5.399999);
- PlayerTextDrawColor(playerid,CosTD[playerid][0], -1);
- PlayerTextDrawSetOutline(playerid,CosTD[playerid][0], 0);
- PlayerTextDrawSetProportional(playerid,CosTD[playerid][0], 1);
- PlayerTextDrawSetShadow(playerid,CosTD[playerid][0], 1);
- PlayerTextDrawUseBox(playerid,CosTD[playerid][0], 1);
- PlayerTextDrawBoxColor(playerid,CosTD[playerid][0], 68);
- PlayerTextDrawTextSize(playerid,CosTD[playerid][0], 500.000000, 0.000000);
- PlayerTextDrawSetSelectable(playerid,CosTD[playerid][0], 0);
- CosTD[playerid][1] = CreatePlayerTextDraw(playerid,530.000000, 134.000000, "vehicle on sale");
- PlayerTextDrawBackgroundColor(playerid,CosTD[playerid][1], 51);
- PlayerTextDrawFont(playerid,CosTD[playerid][1], 3);
- PlayerTextDrawLetterSize(playerid,CosTD[playerid][1], 0.300000, 1.300000);
- PlayerTextDrawColor(playerid,CosTD[playerid][1], -1);
- PlayerTextDrawSetOutline(playerid,CosTD[playerid][1], 1);
- PlayerTextDrawSetProportional(playerid,CosTD[playerid][1], 1);
- PlayerTextDrawSetSelectable(playerid,CosTD[playerid][1], 0);
- CosTD[playerid][2] = CreatePlayerTextDraw(playerid,508.000000, 155.000000, "~g~model: ~w~infernus~n~~g~price: $~w~100000");
- PlayerTextDrawBackgroundColor(playerid,CosTD[playerid][2], 51);
- PlayerTextDrawFont(playerid,CosTD[playerid][2], 3);
- PlayerTextDrawLetterSize(playerid,CosTD[playerid][2], 0.300000, 1.300000);
- PlayerTextDrawColor(playerid,CosTD[playerid][2], -1);
- PlayerTextDrawSetOutline(playerid,CosTD[playerid][2], 1);
- PlayerTextDrawSetProportional(playerid,CosTD[playerid][2], 1);
- PlayerTextDrawSetSelectable(playerid,CosTD[playerid][2], 0);
- PlayerTextDrawShow(playerid, CosTD[playerid][0]);
- PlayerTextDrawShow(playerid, CosTD[playerid][1]);
- PlayerTextDrawShow(playerid, CosTD[playerid][2]);
- PlayerVariables[playerid][PlayerInSaleVehicle] = true;
- }
- return (1);
- }
Advertisement
Add Comment
Please, Sign In to add comment