Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Hunter.# poslato Decembar 30, 2019, 17:13:54 POSLE PODNE

Naslov: Pomoc
Poruka od: Hunter.# poslato Decembar 30, 2019, 17:13:54 POSLE PODNE
Problem(error/warning): Napravio sam Rent System, ali nzm kako da namestim kad neki drugi igrac zeli da udje u vozilo koje je rentano od neki drugi igrac da ne moze moze li pomoc?
Dio skripte: //
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): //
Naslov: Odg: Pomoc
Poruka od: malipablo poslato Decembar 30, 2019, 17:17:18 POSLE PODNE
napravis u enumu ili neki niz ili iterator ako znas. primer bool:Rentano[MAX_VEHICLES]; i kada igrac rentuje to vozilo u Rentano[id vozila] uneses vrednost true i kada igrac izadje sa srw ili unrenta ili istekne rent postavis na false a proversu vrsis (if Rentano[id] == true )  ovo ti je ako je rentano
Naslov: Odg: Pomoc
Poruka od: Hunter.# poslato Decembar 30, 2019, 17:20:15 POSLE PODNE
Citat: malipablo poslato Decembar 30, 2019, 17:17:18 POSLE PODNE
napravis u enumu ili neki niz ili iterator ako znas. primer bool:Rentano[MAX_VEHICLES]; i kada igrac rentuje to vozilo u Rentano[id vozila] uneses vrednost true i kada igrac izadje sa srw ili unrenta ili istekne rent postavis na false a proversu vrsis (if Rentano[id] == true )  ovo ti je ako je rentano
foreach(Player, i)
   {
        if(VoziloRentano == GetPlayerVehicleID(playerid))
        {
           SCM(playerid,-1, ""ZELENA"[RENT]: "SIVA"Ne mozete uci vozilo koje vi niste rentali!");
           RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1);
           return 1;
          }
    }

OVAKO NES?
Naslov: Odg: Pomoc
Poruka od: malipablo poslato Decembar 30, 2019, 17:40:18 POSLE PODNE
https://wiki.sa-mp.com/wroot/index.php?title=OnPlayerEnterVehicle&redirect=no

Ovo iznad ti je callback kada igrac ULAZI u vozilo. Znaci napravis nesto ovako: new Rentano[MAX_VEHICLES] za sva vozila koja imas ili odredi vec.
Onda kada igrac rentuje vozilo, uzmes id vozila: https://wiki.sa-mp.com/wiki/GetPlayerVehicleID i ako ga je rent postavis Rentano[idvozila] = true;
Cim unrenta ili istekne ili izadje postavis na false i respawnas vozilo. Naravno ako drugi igrac pokusa da udje samo napravis proveru u ovom callbacku sto sam ti dao na pocetku da ako je Rentano[idvozila] == true samo mu postavis poziciju na trenutnu i tjt
Naslov: Odg: Pomoc
Poruka od: Hunter.# poslato Decembar 30, 2019, 17:43:32 POSLE PODNE
Citat: malipablo poslato Decembar 30, 2019, 17:40:18 POSLE PODNE
https://wiki.sa-mp.com/wroot/index.php?title=OnPlayerEnterVehicle&redirect=no

Ovo iznad ti je callback kada igrac ULAZI u vozilo. Znaci napravis nesto ovako: new Rentano[MAX_VEHICLES] za sva vozila koja imas ili odredi vec.
Onda kada igrac rentuje vozilo, uzmes id vozila: https://wiki.sa-mp.com/wiki/GetPlayerVehicleID i ako ga je rent postavis Rentano[idvozila] = true;
Cim unrenta ili istekne ili izadje postavis na false i respawnas vozilo. Naravno ako drugi igrac pokusa da udje samo napravis proveru u ovom callbacku sto sam ti dao na pocetku da ako je Rentano[idvozila] == true samo mu postavis poziciju na trenutnu i tjt
Tnx brate
Naslov: Odg: Pomoc
Poruka od: Hunter.# poslato Decembar 31, 2019, 12:36:16 POSLE PODNE
Citat: malipablo poslato Decembar 30, 2019, 17:40:18 POSLE PODNE
https://wiki.sa-mp.com/wroot/index.php?title=OnPlayerEnterVehicle&redirect=no

Ovo iznad ti je callback kada igrac ULAZI u vozilo. Znaci napravis nesto ovako: new Rentano[MAX_VEHICLES] za sva vozila koja imas ili odredi vec.
Onda kada igrac rentuje vozilo, uzmes id vozila: https://wiki.sa-mp.com/wiki/GetPlayerVehicleID i ako ga je rent postavis Rentano[idvozila] = true;
Cim unrenta ili istekne ili izadje postavis na false i respawnas vozilo. Naravno ako drugi igrac pokusa da udje samo napravis proveru u ovom callbacku sto sam ti dao na pocetku da ako je Rentano[idvozila] == true samo mu postavis poziciju na trenutnu i tjt
Evo ovako sam napravio:
Prvo napravio sam ovo: [pawn]new Rentano[MAX_PLAYERS];[/pawn]
Onda
[pawn]public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
        foreach(Player, i)
   {
        if(Rentano == GetPlayerVehicleID(playerid))
        {
           SCM(playerid,-1, ""ZELENA"[RENT]: "SIVA"Ne mozete uci u vozilo koje je rentao neki drugi igrac!");
           RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1);
           return 1;
          }
    }[/pawn]
I kad igrac renta vozilo:
                      [pawn]if(PlayerInfo[playerid][pNovacDzep] < 120) { SCM(playerid,-1,""SIVA"Nemate dovoljno novca "ZELENA"(120$)"SIVA"!"); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); return 1; }
         SCM(playerid,-1,""SRWBOJA"[INFO]: "BELA"Rentali ste Nebula za "ZELENA"120$.");
         new Float:xee, Float:yee, Float:zee;
         GetPlayerPos(playerid, xee, yee, zee);
           vozilorentee[playerid] = CreateVehicle(516, xee, yee, zee, 0, -1, -1, -1, 1);
           PutPlayerInVehicle(playerid,vozilorentee[playerid],0);
           g_NovacMinus(playerid,120);
         Rentano[playerid] = GetPlayerVehicleID(playerid);
         return 1;[/pawn]
I ponovo nece, kad zeli neko da udje u vozilo koje je rentao neki drugi igrac ne zabranuje mu nego moze da udje slobodno, ja zelim da mu zabrani da ne moze da udje u vozilo, a igrac koji je rentrao vozilo da moze
Naslov: Odg: Pomoc
Poruka od: malipablo poslato Decembar 31, 2019, 15:11:42 POSLE PODNE
Ne radis dobro.

Ovako definises prvu varijablu: new bool:Rentano[MAX_VEHICLES]; znaci za sva vozila a ne za igrace da ne moras da prolazis bezveze kroz sve

Znaci pod OnPlayerEnterVehicle ne radi foreach proveru jer vec imas playerid i vehicleid.
if( Rentano[vehicleid] == true ) { //zabranis mu ulaz npr setanjem iste pozicije sa SetPlayerPos }

Kada je vozilo rentano ono mora da ima vrednost Rentano[ ovde ide id vozila kao npr ono vehicleid ] = true;

A kada nije rentano Rentano[idvozila] = false;