Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <dini>
- #include <zcmd>
- #include <streamer>
- #include <sscanf>
- #define FILEPATH "/Parking/slot/%d.ini"
- #define FILEPATH1 "/Parking/slot/"
- #define MAX_PARKING 500
- #define Loop(%0,%1,%2) for(new %0 = %2; %0 < %1; %0++)
- enum parkingInfo
- {
- ParkingCP,
- ParkingLabel,
- }
- new PInfo[MAX_PARKING][parkingInfo];
- new Parkingslot[MAX_PARKING][parkingInfo] =
- {
- };
- new LastParkingCP[MAX_PLAYERS];
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Parking System by JawsCraft ");
- print("--------------------------------------\n");
- for(new i, j = sizeof(Parkingslot); i < j; i++)
- {
- ReloadParking(i);
- }
- return 1;
- }
- public OnPlayerEnterDynamicCP(playerid, checkpointid)
- {
- for(new i, j = sizeof(Parkingslot); i < j; i++)
- {
- if(checkpointid == PInfo[i][ParkingCP])
- {
- new file[100],name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- format(file,sizeof file,"%s%d.ini",FILEPATH1,i);
- new price = dini_Int(file,"price");
- new owner[250];
- format(owner,sizeof owner,"%s",dini_Get(file,"Owner"));
- new ds[250];
- format(ds,sizeof ds,"{ffffff}Are you sure you want to buy {c0c0c0}Parking Slow ID %d {ffffff}with {ffff00}$%d",i,price);
- if(!strcmp(owner, "No Owner"))
- {
- ShowPlayerDialog(playerid,4578,DIALOG_STYLE_MSGBOX,"Parknig Slot",ds,"Yes","Cancel");
- }
- LastParkingCP[playerid] = i;
- }
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == 4578)
- {
- if(!response)return 1;
- if(response)
- {
- new file[100],name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- format(file,sizeof file,"%s%d.ini",FILEPATH1,LastParkingCP[playerid]);
- new price = dini_Int(file,"price");
- dini_Set(file,"Owner",name);
- GivePlayerMoney(playerid,-price);
- ReloadParking(LastParkingCP[playerid]);
- }
- }
- if(dialogid == 4579)
- {
- if(!response)return 1;
- if(response)
- {
- new file[100],name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- format(file,sizeof file,"%s%d.ini",FILEPATH1,LastParkingCP[playerid]);
- new price = dini_Int(file,"price");
- dini_Set(file,"Owner","No Owner");
- GivePlayerMoney(playerid,price/2);
- ReloadParking(LastParkingCP[playerid]);
- }
- }
- return 0;
- }
- COMMAND:parkingsell(playerid,params[])
- {
- for(new i, j = sizeof(Parkingslot); i < j; i++)
- {
- if(IsPlayerInDynamicCP(playerid, PInfo[i][ParkingCP]))
- {
- new file[100],name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- format(file,sizeof file,"%s%d.ini",FILEPATH1,i);
- new owner[250];
- format(owner,sizeof owner,"%s",dini_Get(file,"Owner"));
- new price = dini_Int(file,"price");
- if(!strcmp(owner, "No Owner"))return SendClientMessage(playerid,0xFF0000,"{ff0000}[ERROR] {FFFFFF}This is not your parking slot.");
- new sellps[250];
- format(sellps,sizeof sellps,"{ffffff}Are you sure you want to sell your parking slot and get {ffff00}$%d {ffffff}back?",price/2);
- ShowPlayerDialog(playerid,4579,DIALOG_STYLE_MSGBOX,"Parknig Slot",sellps,"Yes","Cancel");
- }
- }
- return 1;
- }
- COMMAND:createparking(playerid, params[])
- {
- new price;
- new h = GetFreeParkingID();
- if(!IsPlayerAdmin(playerid)) return 0;
- if(sscanf(params, "d", price))return SendClientMessage(playerid,0xFF0000,"{ff0000}[USAGE] {FFFFFF}/createpark [price]");
- if(h > MAX_PARKING)return SendClientMessage(playerid,0xFF0000,"{ff0000}[ERROR] {FFFFFF}Reached max parking slot!");
- new Float:X,Float:Y,Float:Z , worldid, interiorid;
- GetPlayerPos(playerid,X,Y,Z);
- interiorid = GetPlayerInterior(playerid);
- worldid = GetPlayerVirtualWorld(playerid);
- new file[100];
- format(file,sizeof file,"%s%d.ini",FILEPATH1,h);
- SendClientMessage(playerid,0xFF0000,file);
- dini_Create(file);
- dini_FloatSet(file,"posX",X);
- dini_FloatSet(file,"posY",Y);
- dini_FloatSet(file,"posZ",Z);
- dini_IntSet(file,"world",worldid);
- dini_IntSet(file,"interior",interiorid);
- dini_IntSet(file,"price",price);
- dini_Set(file,"Owner","No Owner");
- LoadParking(h);
- return 1;
- }
- COMMAND:loadparking(playerid,params[])
- {
- new file;
- if(sscanf(params, "d", file))return SendClientMessage(playerid,0xFF0000,"{ff0000}[USAGE] {FFFFFF}/loadparking [ID]");
- ReloadParking(file);
- return 1;
- }
- stock GetFreeParkingID()
- {
- Loop(parkid, MAX_PARKING, 0)
- {
- if(!fexist(ParkFile(parkid)))
- {
- return parkid;
- }
- }
- return -1;
- }
- stock ParkFile(parkid)
- {
- new filename[250];
- format(filename, sizeof(filename), FILEPATH, parkid);
- return filename;
- }
- stock LoadParking(parkid)
- {
- new file[100];
- format(file,sizeof file,"%s%d.ini",FILEPATH1,parkid);
- new Float:X = dini_Float(file,"posX");
- new Float:Y = dini_Float(file,"posY");
- new Float:Z = dini_Float(file,"posZ");
- new worldid = dini_Int(file,"world");
- new interiorid = dini_Int(file,"interior");
- new price = dini_Int(file,"price");
- new owner[250];
- format(owner,sizeof owner,"%s",dini_Get(file,"Owner"));
- PInfo[parkid][ParkingCP] = CreateDynamicCP(X, Y, Z,4, worldid, interiorid, -1, 10);
- new parkinglabel[250];
- format(parkinglabel,sizeof parkinglabel,"[PARKING]\n{FFFFFF}Owner : %s\nPrice : %d",owner,price);
- PInfo[parkid][ParkingLabel] = CreateDynamic3DTextLabel(parkinglabel, 0xFF0000, X, Y, Z, 10, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, worldid, interiorid, -1, 10);
- }
- stock UnloadParking(parkid)
- {
- DestroyDynamicCP(PInfo[parkid][ParkingCP]);
- DestroyDynamic3DTextLabel(PInfo[parkid][ParkingLabel]);
- }
- stock ReloadParking(parkid)
- {
- UnloadParking(parkid);
- LoadParking(parkid);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement