Rent system

Započeo TONY x
24. Jul 2019.
1,319
pregleda
11
postova
tonimacak518
4
Enforcer
24. Jul 2019.
Problem(error/warning): Problem je oko rent systema. 1. Kada udjem ne freeza me i ne pokazuje mi poruku za rent.    2. Ako rentujem jedno i udjem u neko drugo umesto da kaze da vec imam jedno iznajmljeno, ono kaze da je to vozilo vec neko iznajmio (a nije). 3. Kada izadjem i opet udjem u svoje ispisuje da je to neko drugi rentovao.

Deo skripte: Ukoliko je potrebno poslacu i druge delove

public OnPlayerStateChange(playerid, newstate, oldstate)
{

    if(newstate == PLAYER_STATE_DRIVER)
    {
if(VecRentano(GetPlayerVehicleID(playerid)))
{
SCM(playerid, -1, "Neko je vec rentao ovo vozilo.");
  TogglePlayerControllable(playerid, 1);
        RemovePlayerFromVehicle(playerid);
}
}
return 1;
}


CMD:rent(playerid, params[])
{
if(Rent != -1)
{
SCM(playerid, ROZE, "Vec si iznajmio vozilo, prvo vrati iznjamljeno(/unrent) pa mozes opet rentat");
        TogglePlayerControllable(playerid, 1);
        RemovePlayerFromVehicle(playerid);
}
if(Rent == GetPlayerVehicleID(playerid))
{
SCM(playerid, CRVENA, "Neko je vec rentovao ovo vozilo !");
        TogglePlayerControllable(playerid, 1);
        RemovePlayerFromVehicle(playerid);
}
if(GetPlayerVehicleID(playerid) >= RentVozilo && GetPlayerVehicleID(playerid) <= RentVozilo)
{
SPD(playerid, DIALOG_RENT, DIALOG_STYLE_LIST, "Odaberite vreme","10 sec test      (100$)\n10 minuta      (150$)\n20 minuta      (200$)\n30 minuta      (300$)\n60 minuta      (350$)", ""zelena"U redu", ""crvena"Odustani");
}
else return SCM(playerid, CRVENA, "Nisi u RENT VOZILU !");

return 1;
}


case DIALOG_RENT:
{
if(response)
{
    new vehicleid;
    vehicleid = GetPlayerVehicleID(playerid);
            if(listitem == 0)
{
  if(Rent != -1)
{
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
}
else
{
  if(GetPlayerMoney(playerid) <  100) return SCM(playerid,-1,"Nema te dovoljno novca");
  GivePlayerMoney(playerid, -200);
                Rent = GetPlayerVehicleID(playerid);
                SCM(playerid,-1, "Rentao si vozilo na 10 sec test, ako ga zelis vratit kucaj /unrent");
                TogglePlayerControllable(playerid, 1);
                SetTimerEx("IstekRenta",10000, 0, "i", playerid);
                }
}
if(listitem == 1)
{
  if(Rent != -1)
{
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
}
else
{
                if(GetPlayerMoney(playerid) <  150) return SCM(playerid,-1,"Nema te dovoljno novca");
                GivePlayerMoney(playerid,-100);
                Rent = GetPlayerVehicleID(playerid);
SCM(playerid,-1, "Rentao si vozilo na 10 minuta, ako ga zelis vratit kucaj /unrent");
                TogglePlayerControllable(playerid, 1);
                SetTimerEx("IstekRenta",600000, 0, "i", playerid);
                }
}
if(listitem == 2)
{
  if(Rent != -1)
{
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
}
else
{
          if(GetPlayerMoney(playerid) <  200) return SCM(playerid,-1,"Nema te dovoljno novca");
                GivePlayerMoney(playerid, -200);
                Rent = GetPlayerVehicleID(playerid);
              SCM(playerid,-1, "Rentao si vozilo na 20 minuta, ako ga zelis vratit kucaj /unrent");
                TogglePlayerControllable(playerid, 1);
                SetTimerEx("IstekRenta",1200000, 0, "i", playerid);
                }
}
if(listitem == 3)
{
  if(Rent != -1)
{
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
}
else
{
            if(GetPlayerMoney(playerid) <  300) return SCM(playerid,-1,"Nema te dovoljno novca");
                GivePlayerMoney(playerid, -300);
                Rent = GetPlayerVehicleID(playerid);
SCM(playerid,-1, "Rentao si vozilo na 30 minuta, ako ga zelis vratit kucaj /unrent");
                TogglePlayerControllable(playerid, 1);
                SetTimerEx("IstekRenta",1800000, 0, "i", playerid);
                }

}
if(listitem == 4)
{
  if(Rent != -1)
{
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
}
else
{
            if(GetPlayerMoney(playerid) <  350) return SCM(playerid,-1,"Nema te dovoljno novca");
                GivePlayerMoney(playerid, -350);
                Rent = GetPlayerVehicleID(playerid);
SCM(playerid,-1, "Rentao si vozilo na 60 minuta, ako ga zelis vratit kucaj /unrent");
                TogglePlayerControllable(playerid, 1);
                SetTimerEx("IstekRenta",3600000, 0, "i", playerid);
                }
}
}
}



Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): nema potrebe
tonimacak518
4
Enforcer
24. Jul 2019.
Takodje sam zaboravio da stavim
stock VecRentano(vehid)
{
//foreach(new i : Player)
for(new i; i < MAX_PLAYERS; i++)
{
if(Rent == vehid) return true;
}
return false;
}


Ako treba jos nesto recite
Exnas.pwn
5
Godfather
24. Jul 2019.
Sto se tice freeza
TogglePlayerControllabe(playerid,0); // - Freeza igraca
TogglePlayerControllabe(playerid,1); // - unfreeza igraca


Za dalje mi se neda pisati msm da si zbagao to u stock VecRentano
tonimacak518
4
Enforcer
25. Jul 2019.
Pa gde može biti problem u vecrentano ?

Foreach nisam iskoristio već standardno
Exnas.pwn
5
Godfather
25. Jul 2019.
Pokusaj ovako mada nisam siguran da li ce da ti radi
 

public OnPlayerStateChange(playerid, newstate, oldstate)
{

    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(Rent == vehid)
    {
    SCM(playerid, -1, "Neko je vec rentao ovo vozilo.");
  TogglePlayerControllable(playerid, 1);
        RemovePlayerFromVehicle(playerid);
    }
    }
}
return 1;
}
eSADâ„¢
5
Kingpin
25. Jul 2019.
Sto se tice freeze napravi  se tajmer


stock h_freeze(playerid) {

    TogglePlayerControllable( playerid,  0 );
    SetTimerEx( "u_freeze", 2000,  false,  "i", playerid );

}

forward u_freeze(playerid);
public u_freeze(playerid) {

TogglePlayerControllable(playerid, 1);

}


Drugo u komandi nemas provjeru za ulazak u rent vozilo
Tr ece
if(Rent != -1)

zamjeni s
if(Rent == -1)

da ti prikaze poruku da li si rent ili ne
Exnas.pwn
5
Godfather
25. Jul 2019.
anderson87 wrote on July 25, 2019, 7:35 pm:
Sto se tice freeze napravi  se tajmer


stock h_freeze(playerid) {

    TogglePlayerControllable( playerid,  0 );
    SetTimerEx( "u_freeze", 2000,  false,  "i", playerid );

}

forward u_freeze(playerid);
public u_freeze(playerid) {

TogglePlayerControllable(playerid, 1);

}


Drugo u komandi nemas provjeru za ulazak u rent vozilo
Tr ece
if(Rent != -1)

zamjeni s
if(Rent == -1)

da ti prikaze poruku da li si rent ili ne


Da li sam ja glup ili ti retardiran  😄 .Msm ja nikada nisam koristio tajmer za freeze i unfreeze, ne vidim ni potrebu koriscenja toga.
eSADâ„¢
5
Kingpin
25. Jul 2019.
002 wrote on July 25, 2019, 8:34 pm:
Da li sam ja glup ili ti retardiran  😄 .Msm ja nikada nisam koristio tajmer za freeze i unfreeze, ne vidim ni potrebu koriscenja toga.


Koga boli qrac sta ti koristis, ja sto sam mu napisao nista nije pogresno,  da sam mu dao nesto sto nema nikakve veze sa temom pa hajd mozda bi i bio retardiran al da me nazivas retardom zbog koristenja tajmera za freeze... tu je ocigledno ispalo da si ti glup ne ja
James_SmithXDl
6
OG Legend
25. Jul 2019.
zar ti nije lakse ovako? (dao sam ti primjer)
new Haze_VoziloRent,Haze_VoziloRentano;
// ongamemodeinit
Haze_VoziloRent = 1;
Haze_VoziloRentano = -1;

i onda tako primijenis da ne pozivas nonstop for petlju za igrače bezveze msm mozes ti i tako ali ovako je lakse bolje barem po meni, nadam se da si skontao na koji nacin mislim.
Exnas.pwn
5
Godfather
25. Jul 2019.
anderson87 wrote on July 25, 2019, 9:33 pm:
Koga boli qrac sta ti koristis, ja sto sam mu napisao nista nije pogresno,  da sam mu dao nesto sto nema nikakve veze sa temom pa hajd mozda bi i bio retardiran al da me nazivas retardom zbog koristenja tajmera za freeze... tu je ocigledno ispalo da si ti glup ne ja


Vidi se da nisam pogresio, retard si cisti...
Gospodin Leo
4
Enforcer
26. Jul 2019.
Evo ja sam ti složio nešto nabrzaka, ove poruke i to tvoje sam ostavio. Uzmi dole kod i samo nadogradi šta ti je još potrebno, usput nisam testiro niti compile-o već sam na site-u pisao - tako da ako ima neka greška tagaj me pa ćemo riješiti. Izvoli i pastebin -> https://pastebin.com/nHWm5zEV.
// rent system - b samp help

new
bool: _RentVeh = false
_RentVehID = INVALID_VEHICLE_ID;

//
CMD:rent(playerid, params[]) {
new vehicleid = GetPlayerVehicleID(playerid);
if(_RentVeh == true)
return SCM(playerid, -1, "Vec si iznajmio vozilo, prvo vrati iznjamljeno(/unrent) pa mozes opet rentat"), RemovePlayerFromVehicle(playerid);

foreach(new i: Player) {
if(_RentVehID == vehicleid) {
SCM(playerid, CRVENA, "Neko je vec rentovao ovo vozilo !");
RemovePlayerFromVehicle(playerid);
}
}

if(vehicleid >= RentVozilo && vehicleid <= RentVozilo) {
ShowPlayerDialog(playerid, DIALOG_RENT, DIALOG_STYLE_LIST, "Odaberite vreme","Test (100$)\n....", ""zelena"U redu", ""crvena"Odustani");
}
else return SCM(playerid, CRVENA, "Nisi u RENT VOZILU !");
return (true);
}

//
public OnPlayerDisconnect(playerid, reason) {
if(_RentVeh == true)
DestroyRentVehicle(playerid, _RentVehID);
return (true);
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
case DIALOG_RENT: {
if(response) {
       
if(listitem == 0) {
  if(GetPlayerMoney(playerid) <  100) return SCM(playerid,-1,"Nema te dovoljno novca");
  GivePlayerMoney(playerid, -200);
       
_RentVehID = CreateVehicle(.....);
_RentVeh = (true);

        SCM(playerid,-1, "Rentao si vozilo na 10 sec test, ako ga zelis vratit kucaj /unrent");
        SetTimerEx("IstekRenta", 10*1000, (false), "dd", playerid, _RentVehID);
}
// dalje ti dodaj jos koliko oces item-a listanih.
}
}
return (true);
}

//
DestroyRentVehicle(playerid, vehicleid) {
// Resetira varijable i brise vozilo.

_RentVeh = (false);
_RentVehID = INVALID_VEHICLE_ID;
DestroyVehicle(vehicleid);
return (true);
}

//
forward IstekRenta(playerid, vehicleid);
public IstekRenta(playerid, vehicleid); {
// Reset - Isteklo vrijeme renta.
DestroyRentVehicle(playerid, vehicleid);

SendClientMessage(playerid, -1, "Isteklo je vase vrijeme renta.");
return (true);
}

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha