Moj Gamemode od 0:
Bio sam pravio rent sistem motora i sve radi nema erora niti nista i kad dodem ig prvo moram ukucati /unrent tek onda sjest na vozilo i rentati ga.Ali stvar
je u tome da meni skripta sva vozila stavlja pod rent ne samo ta odredena nego sve :
Koji dio skripte da stavim:
Neke slike/video za lakse dobivanje pomoci(neobavezno):
[POMOC]Pomjesani id
1,159
pregleda
14
postova
pre 9 godina
Moras da odredis broj vozila koliko imas za rent npr RentVozila;
I onda da definises u OnGameModeInit tih npr 20 rent vozila , RentVozilo = AddStaticVehicleEx(.....
i tako sva vozila sto imas za rent i onda u CMD:rent ili kako si vec stavio das uslov da igrac mora da bude u vozilima za rent
I onda da definises u OnGameModeInit tih npr 20 rent vozila , RentVozilo = AddStaticVehicleEx(.....
i tako sva vozila sto imas za rent i onda u CMD:rent ili kako si vec stavio das uslov da igrac mora da bude u vozilima za rent
pre 9 godina
Evo ovako sve je dobro definirano...
Imam jedno vozilo koje je probno
new Rent definirano je 1 jer dodajemo za 1 vise
i kada je tako definirano ne radi! znaci onda mi ne izbacuje poruku da mogu rentati to vozilo niti nista
a kada stavim za dva vise onda mi izbacuje poruku.....
i jos k tome mogu usvako vozilo sjest i ikucat rent sto nema logike a nisu definirana ta vozila
i kada udem na server prvo moram kucati /unrent da bi mogao rentati
Imam jedno vozilo koje je probno
new Rent definirano je 1 jer dodajemo za 1 vise
i kada je tako definirano ne radi! znaci onda mi ne izbacuje poruku da mogu rentati to vozilo niti nista
a kada stavim za dva vise onda mi izbacuje poruku.....
i jos k tome mogu usvako vozilo sjest i ikucat rent sto nema logike a nisu definirana ta vozila
i kada udem na server prvo moram kucati /unrent da bi mogao rentati
pre 9 godina
Vidim da nikakve kodove nisi slao ali ajde da ti od prilike objasnim kako bi to trebalo da izgleda. Uzmemo primer 1 obicnu varijablu koju bi stavio negde na vrh scripte kod ostalih slicnih.
Tu istu varijablu bi trebalo da u public OnPlayerConnect postavimo na 0.
A isto tako bi trebali i kod publica OnPlayerDisconnect da ponistimo to da bi se ajd da kazemo vozilo rtc i da bi neko drugi mogao da ga iskoristi jer je ovaj otisao sa servera.
I zatim kod samog renta trebas da postavis ID vozila na ovu varijablu... To je veoma jednostavno samo proveris ID vozila i zapises mu, naravno to stavljas tamo kod renta.
I to bi bila sva filozofija sada ako ces da pravis neku komandu /unrent jednostavno samo proveris da li igrac vec ima rent vozilo ili ne eno ti primer gore sto sam pisao za public OnPlayerDisconnect i onda mu sklonis isto to ili mu saljes poruku da nema rent vozilo...
new RentVozilo;Tu istu varijablu bi trebalo da u public OnPlayerConnect postavimo na 0.
RentVozilo = 0;A isto tako bi trebali i kod publica OnPlayerDisconnect da ponistimo to da bi se ajd da kazemo vozilo rtc i da bi neko drugi mogao da ga iskoristi jer je ovaj otisao sa servera.
if (RentVozilo > 0) // Proveravamo da li igrac ima na sebi rentano vozilo jer ako je na 0 kao sto smo podesili na konekciji znaci da nema vozilo ako je vise od 0 znaci da imamo rent vozilo
{
SetVehicleToRespawn(RentVozilo); // Rtc rent vozilo odnosno ID vozila koji smo zapisali na varijablu kada smo rentali vozilo
RentVozilo = 0; // Takodje mozemo opet postaviti i varijablu na 0
}
I zatim kod samog renta trebas da postavis ID vozila na ovu varijablu... To je veoma jednostavno samo proveris ID vozila i zapises mu, naravno to stavljas tamo kod renta.
RentVozilo = GetPlayerVehicleID(playerid);I to bi bila sva filozofija sada ako ces da pravis neku komandu /unrent jednostavno samo proveris da li igrac vec ima rent vozilo ili ne eno ti primer gore sto sam pisao za public OnPlayerDisconnect i onda mu sklonis isto to ili mu saljes poruku da nema rent vozilo...
pre 9 godina
evo imamo ovako sve
ali ja mogu sva vozila i dalje rentati
evo komande
new Rent;
#define RENT_VOZILA 999
new rvozila;
forward IstekRenta(playerid);
public IstekRenta(playerid)
{
Rent = -1;
SetVehicleToRespawn(Rent);
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
return 1;
} rvozila = AddStaticVehicleEx(522,1669.8160000,-1881.5861000,13.2070000,0.0000000,-1,-1,15000); //NRG-500
rvozila = AddStaticVehicle(522,1669.8160000,-1881.5861000,13.2070000,0.0000000,-1,-1,15000); //NRG-500
rvozila = AddStaticVehicle(522,1669.8160000,-1881.5861000,13.2070000,0.0000000,-1,-1,15000); //NRG-500 ali ja mogu sva vozila i dalje rentati
evo komande
YCMD:rent(playerid, params[], help)
{
#pragma unused help
#pragma unused params
if(Rent != -1)//ovaj dio provjerava dali smo vec rentali neko od rentanih vozila
{
SCM(playerid, -1, "Vec si iznajmio vozilo, prvo vrati iznjamljeno pa mozes opet rentat");
return 1;
}
if(Rent == GetPlayerVehicleID(playerid))//ovaj dio provjerava dali je neko vec rentao to vozilo
{
SCM(playerid, -1, "Neko je vec rentao ovo vozilo.");
return 1;
}
if(GetPlayerVehicleID(playerid) >= rvozila)
{
SPD(playerid,RENT_VOZILA,DIALOG_STYLE_LIST, "Odaberite vrijeme","10 minuta\n20 minuta\n30 minuta\n60 minuta", "U redu", "Odustani");
}
else return SCM(playerid, -1, "Nisi u vozilu za iznjamljivanje vozila");
return 1;
}
YCMD:unrent(playerid, params[], help)
{
#pragma unused help
#pragma unused params
new v= GetPlayerVehicleID(playerid);
if(Rent != -1)
{
if(v== Rent)
{
TogglePlayerControllable(playerid, 1);
}
SetVehicleToRespawn(Rent);//respawna rentano vozilo
RemovePlayerFromVehicle(playerid);//izbacuje igraca iz vozila
Rent = -1;//postavlja varijablu na -1 sto znaci da ce igrac ponovno moc rentat vozilo
SCM(playerid,-1,"Vratio si rentano vozilo");
}
return 1;
}
YCMD:exit(playerid, params[], help)
{
#pragma unused help
#pragma unused params
if(GetPlayerVehicleID(playerid) >= rvozila && GetPlayerVehicleID(playerid) <= rvozila)
{
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
}
return 1;
}
stock VecRentano(vehid)
{
foreach(Player,i)
{
if(Rent == vehid) return true;
}
return false;
}
pre 9 godina
Komanda za rent bi trebala ovako da ti bude.
Takodje uradim sam public za ta rent vozila da bude jednostavnije jer ces mozda jos negde koristiti pa ako ga nemas evo.
I to bi trebalo sada da ti bude ok ali ono sto mene sada isto brine jeste tvoj public IstekRenta znaci ti na varijablu na kojoj postavljas ID rent vozila isto tako mu i skidas to po -1 kao neko vreme i kako on sada da dobije tacno vreme renta odnosno tu se ustvari i desi problem do pomesanja ID-ova jer ti njemu kada zapises ID vozila koji je rentao isto tako odma mu i menjas taj ID zbog tog isteka. Moras napraviti 2 varijable jednu za rent gde ce biti samo ID da bi ti ove provere u komandi dobro radile i drugu za vreme renta i onda nece dolaziti do mesanja ID-ova...
YCMD:rent(playerid, params[], help)
{
#pragma unused help
#pragma unused params
new
carid = GetPlayerVehicleID(playerid);
if (!RentVozila(carid)) return SCM (playerid, -1, "Nisi u vozilu za iznjamljivanje vozila");
if (Rent > 0) return SCM (playerid, -1, "Vec si iznajmio vozilo, prvo vrati iznjamljeno pa mozes opet rentat");
else
{
foreach (Player, i)
{
if (Rent == carid) return SCM(playerid, -1, "Neko je vec rentao ovo vozilo.");
}
SPD (playerid, RENT_VOZILA, DIALOG_STYLE_LIST, "Odaberite vrijeme","10 minuta\n20 minuta\n30 minuta\n60 minuta", "U redu", "Odustani");
}
return 1;
}Takodje uradim sam public za ta rent vozila da bude jednostavnije jer ces mozda jos negde koristiti pa ako ga nemas evo.
forward RentVozila(carid);
public RentVozila(carid)
{
for (new i = 0; i < sizeof(rvozila); i++)
{
if (carid == rvozila) return 1;
}
return 0;
}I to bi trebalo sada da ti bude ok ali ono sto mene sada isto brine jeste tvoj public IstekRenta znaci ti na varijablu na kojoj postavljas ID rent vozila isto tako mu i skidas to po -1 kao neko vreme i kako on sada da dobije tacno vreme renta odnosno tu se ustvari i desi problem do pomesanja ID-ova jer ti njemu kada zapises ID vozila koji je rentao isto tako odma mu i menjas taj ID zbog tog isteka. Moras napraviti 2 varijable jednu za rent gde ce biti samo ID da bi ti ove provere u komandi dobro radile i drugu za vreme renta i onda nece dolaziti do mesanja ID-ova...
pre 9 godina
Pa ne znam onda ko ga je radio ali si ti poslao kodove sa tim i ne vidim sta je tu problem 😄
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava