Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // = • = • = • = • = • = DINAMICNO KREIRANJE RENT VOZILA = • = • = • = • = • =//
- /*
- Informacije:
- FS Izradio - Shomy
- FS Sadrzi komande /kreirajrent /rent /unrent
- Da bi FS Radila, morate ubaciti u Vasem scriptfiles folderu, folder "Rent"
- */
- // = • INCLUDE • = //
- #include < a_samp >
- #include < YSI\y_ini >
- #include < YSI\y_commands >
- #include < sscanf2 >
- // = • DEFINE • = //
- #define MAX_RENT 150
- #define RENT_FILE "/Rent/%d.ini"
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 150
- #undef MAX_VEHICLES
- #define MAX_VEHICLES 2000
- #define SCM SendClientMessage
- #define SPD ShowPlayerDialog
- #define DSI DIALOG_STYLE_INPUT
- #define DIALOG_RENT 1
- #define DIALOG_CREATERENT 2
- // = • ENUM • = //
- enum rInfo
- {
- Float:PosX,
- Float:PosY,
- Float:PosZ,
- rModel,
- Float:RotA,
- Boja1,
- Boja2
- }
- enum sInfo
- {
- KreiraniRent
- }
- // = • NEW • = //
- new RentInfo[ MAX_RENT ][ rInfo ];
- new bool:RentaoVozilo[ MAX_PLAYERS ];
- new bool:RentanoVozilo[ MAX_VEHICLES ];
- new ServerInfo[ sInfo ];
- new Rentano[ MAX_PLAYERS ];
- new RentTimer[ MAX_PLAYERS ];
- new pravljenirent;
- // = • PUBLICS • = //
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_CREATERENT)
- {
- if(response)
- {
- new model, boja1, boja2, Float:X,Float:Y,Float:Z,Float:A;
- GetPlayerPos(playerid, X,Y,Z);
- GetPlayerFacingAngle(playerid, A);
- if(sscanf(inputtext, "ddd", model, boja1, boja2)) return SPD(playerid, DIALOG_CREATERENT, DSI, "KREIRANJE RENT","Unesite ID Rent vozila, Boju vozila 1, Boju vozila 2","U redu","Izlaz");
- if(model < 400 || model > 611) { SPD(playerid, DIALOG_CREATERENT, DSI, "KREIRANJE RENT","Unesite ID Rent vozila, Boju vozila 1, Boju vozila 2","U redu","Izlaz"); SCM(playerid, -1, "Model vozila ne moze biti manji od 400 ili veci od 611."); }
- SetPlayerPos(playerid, X+1.5, Y, Z);
- pravljenirent = CreateVehicle(model, X,Y,Z, A, boja1, boja2, -1);
- RentInfo[ pravljenirent ][ PosX ] = X;
- RentInfo[ pravljenirent ][ PosY ] = Y;
- RentInfo[ pravljenirent ][ PosZ ] = Z;
- RentInfo[ pravljenirent ][ RotA ] = A;
- RentInfo[ pravljenirent ][ Boja1 ] = boja1;
- RentInfo[ pravljenirent ][ Boja2 ] = boja2;
- RentInfo[ pravljenirent ][ rModel ] = model;
- SaveRent(pravljenirent);
- SCM(playerid, -1, "Kreirali ste RENT Vozilo.");
- }
- }
- else if(dialogid == DIALOG_RENT)
- {
- if(!response) { RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); }
- else if(response)
- {
- new vreme;
- if(sscanf(inputtext, "d", vreme)) return SPD(playerid, DIALOG_RENT, DSI, "RENT","Upisite vreme renta. 1 minut = 10$","U redu","Izlaz");
- if(vreme < 1 || vreme > 60) { SPD(playerid, DIALOG_RENT, DSI, "RENT","Upisite vreme renta. 1 minut = 10$","U redu","Izlaz"); SCM(playerid, -1, "Rent vreme ne moze biti manje od 1 ili vece od 60 !"); }
- if(vreme*10 > GetPlayerMoney(playerid)) { SPD(playerid, DIALOG_RENT, DSI, "RENT","Upisite vreme renta. 1 minut = 10$","U redu","Izlaz"); SCM(playerid, -1, "Nemate dovoljno novca za to vreme."); }
- RentaoVozilo[ playerid ] = true;
- RentanoVozilo[ GetPlayerVehicleID(playerid) ] = true;
- TogglePlayerControllable(playerid, 1);
- Rentano[ playerid ] = GetPlayerVehicleID(playerid);
- GivePlayerMoney(playerid, -vreme*10);
- SCM(playerid, -1, "Iznajmili ste vozilo.");
- RentTimer[ playerid ] = SetTimerEx("RentVreme", vreme*60000, false, "i", playerid);
- }
- }
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(newstate == PLAYER_STATE_DRIVER) { if(Rentano[ playerid ] != GetPlayerVehicleID(playerid)) { TogglePlayerControllable(playerid, 0); SCM(playerid, -1, "Da iznajmite vozilo kucajte - /rent"); } }
- return 1;
- }
- forward RentVreme(playerid, vehicleid);
- public RentVreme(playerid, vehicleid)
- {
- Rentano[ playerid ] = -1;
- RentaoVozilo[ playerid ] = false;
- SetVehicleToRespawn(Rentano[ playerid ]);
- LinkVehicleToInterior(Rentano[ playerid ], 0);
- RentanoVozilo[ Rentano[ playerid ] ] = false;
- SCM(playerid, -1, "Isteklo je vreme renta. Vozilo je vraceno.");
- return true;
- }
- forward LoadRent(id, name[], value[]);
- public LoadRent(id, name[], value[])
- {
- INI_Float("Lokacija X", RentInfo[ id ][ PosX ]);
- INI_Float("Lokacija Y", RentInfo[ id ][ PosY ]);
- INI_Float("Lokacija Z", RentInfo[ id ][ PosZ ]);
- INI_Float("Rotacija A", RentInfo[ id ][ RotA ]);
- INI_Int("Model Vozila", RentInfo[ id ][ rModel ]);
- INI_Int("Boja 1", RentInfo[ id ][ Boja1 ]);
- INI_Int("Boja 2", RentInfo[ id ][ Boja2 ]);
- return 1;
- }
- public OnFilterScriptInit()
- {
- LoadRents();
- return 1;
- }
- // = • CMD • = //
- YCMD:kreirajrent(playerid, params[], help)
- {
- #pragma unused help
- #pragma unused params
- if(IsPlayerAdmin(playerid))
- {
- if(ServerInfo[ KreiraniRent ] >= MAX_RENT) return SCM(playerid, -1, "Prestigli ste limit.");
- SPD(playerid, DIALOG_CREATERENT, DSI, "KREIRANJE RENT","Unesite ID Rent vozila, Boju vozila 1, Boju vozila 2","U redu","Izlaz");
- }
- return 1;
- }
- YCMD:rent(playerid, params[], help)
- {
- #pragma unused help
- #pragma unused params
- if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SCM(playerid, -1, "Niste na mestu vozaca.");
- if(Rentano[ playerid ] == GetPlayerVehicleID(playerid)) return SCM(playerid, -1, "Niste u rent vozilu !");
- if(RentaoVozilo[ playerid ]) return SCM(playerid, -1, "Vec ste iznajmili vozilo.");
- if(RentanoVozilo[ GetPlayerVehicleID(playerid) ]) return SCM(playerid, -1, "To vozilo je vec rentano.");
- SPD(playerid, DIALOG_RENT, DSI, "RENT","Upisite vreme renta. 1 minut = 10$","U redu","Izlaz");
- TogglePlayerControllable(playerid, 0);
- return 1;
- }
- YCMD:unrent(playerid, params[], help)
- {
- #pragma unused help
- #pragma unused params
- if(!RentaoVozilo[ playerid ]) return SCM(playerid, -1, "Niste iznajmili vozilo.");
- KillTimer(RentTimer[ playerid ]);
- SetVehicleToRespawn(Rentano[ playerid ]);
- RentaoVozilo[ playerid ] = false;
- RentanoVozilo[ Rentano[ playerid ] ] = false;
- Rentano[ playerid ] = -1;
- SCM(playerid, -1, "Vratili ste iznamljeno vozilo.");
- return 1;
- }
- // = • STOCK • = //
- stock SaveRent( id )
- {
- new rFile[ 60 ];
- format(rFile, sizeof(rFile), RENT_FILE, id);
- new INI:File = INI_Open(rFile);
- INI_WriteFloat(File, "Pozicija X", RentInfo[ id ][ PosX ]);
- INI_WriteFloat(File, "Pozicija Y", RentInfo[ id ][ PosY ]);
- INI_WriteFloat(File, "Pozicija Z", RentInfo[ id ][ PosZ ]);
- INI_WriteFloat(File, "Rotacija A", RentInfo[ id ][ RotA ]);
- INI_WriteInt(File, "Model Vozila", RentInfo[ id ][ rModel ]);
- INI_WriteInt(File, "Boja 1", RentInfo[ id ][ Boja1 ]);
- INI_WriteInt(File, "Boja 2", RentInfo[ id ][ Boja2 ]);
- INI_Close(File);
- return 1;
- }
- stock LoadRents()
- {
- for(new i = 1; i < MAX_RENT; i++)
- {
- new rFile[50];
- format(rFile, sizeof(rFile), RENT_FILE, i);
- if(fexist(rFile))
- {
- INI_ParseFile(rFile, "LoadRent", .bExtra = true, .extra = i);
- pravljenirent = CreateVehicle(RentInfo[ i ][ rModel ], RentInfo[ i ][ PosX ],RentInfo[ i ][ PosY ],RentInfo[ i ][ PosZ ], RentInfo[ i ][ RotA ], RentInfo[ i ][ Boja1 ], RentInfo[ i ][ Boja2 ], -1);
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement