Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: MaRe[X] poslato Januar 08, 2023, 10:26:41 PRE PODNE

Naslov: Pomoc odo systema
Poruka od: MaRe[X] poslato Januar 08, 2023, 10:26:41 PRE PODNE
Pitanje/savjet: Kako da napravim da se vozilo na eve
ntu uvek samo fixa, da je uvek na 100%, da se nikad ne kvari?
Opširnije:
Dodatno:
Naslov: Odg: Pomoc odo systema
Poruka od: Hok poslato Januar 08, 2023, 11:57:42 PRE PODNE
alt+f4
Naslov: Odg: Pomoc odo systema
Poruka od: V01D poslato Januar 08, 2023, 14:45:49 POSLE PODNE
Najbolje napravis neku promenljivu koja odredjuje da li je igrac na eventu, na primer isOnEvent[playerid]

Onda napravimo nesto ovako :

[pawn]ptask eventRepairCheck[1000](playerid) {

   if(!isOnEvent[playerid]) return 0;

   if(IsPlayerInAnyVehicle(playerid)) return RepairVehicle(GetPlayerVehicleID(playerid));
}[/pawn]

Ovo iznad je primer sa ptask, timer koji se vrti za svakog igraca posebno na svaku jednu sekundu. Bolje je koristiti rekurziju, znaci onog momenta kada udje u event vozilo pozoves timer, i zatim ga ponovno pozivas unutar istog sve dok je igrac na eventu. Sto bi izgledalo nesto na ovaj fazon :

[pawn]//kada igrac sedne u vozilo za event i even pocne
defer eventRepairCheck(playerid); //pozivamo timer
isOnEvent[playerid] = true; //postavimo promenljivu

//timer
timer eventRepairCheck[1000](playerid) {

   if(!isOnEvent[playerid]) return 0; //proveravamo da li je na eventu

   if(IsPlayerInAnyVehicle(playerid)) { //proveravamo da li je u vozilu

      RepairVehicle(GetPlayerVehicleID(playerid)); //popravimo vozilo
      defer eventRepairCheck(playerid); //pozovemo opet timer

      return 1;
   }

   return 1;
}[/pawn]
Naslov: Odg: Pomoc odo systema
Poruka od: emmett wajtt poslato Januar 08, 2023, 15:06:07 POSLE PODNE
Citat: V01D poslato Januar 08, 2023, 14:45:49 POSLE PODNE
Najbolje napravis neku promenljivu koja odredjuje da li je igrac na eventu, na primer isOnEvent[playerid]

Onda napravimo nesto ovako :

[pawn]ptask eventRepairCheck[1000](playerid) {

   if(!isOnEvent[playerid]) return 0;

   if(IsPlayerInAnyVehicle(playerid)) return RepairVehicle(GetPlayerVehicleID(playerid));
}[/pawn]

Ovo iznad je primer sa ptask, timer koji se vrti za svakog igraca posebno na svaku jednu sekundu. Bolje je koristiti rekurziju, znaci onog momenta kada udje u event vozilo pozoves timer, i zatim ga ponovno pozivas unutar istog sve dok je igrac na eventu. Sto bi izgledalo nesto na ovaj fazon :

[pawn]//kada igrac sedne u vozilo za event i even pocne
defer eventRepairCheck(playerid); //pozivamo timer
isOnEvent[playerid] = true; //postavimo promenljivu

//timer
timer eventRepairCheck[1000](playerid) {

   if(!isOnEvent[playerid]) return 0; //proveravamo da li je na eventu

   if(IsPlayerInAnyVehicle(playerid)) { //proveravamo da li je u vozilu

      RepairVehicle(GetPlayerVehicleID(playerid)); //popravimo vozilo
      defer eventRepairCheck(playerid); //pozovemo opet timer

      return 1;
   }

   return 1;
}[/pawn]
repeat
Naslov: Odg: Pomoc odo systema
Poruka od: V01D poslato Januar 08, 2023, 16:23:47 POSLE PODNE
Citat: deksyseksy poslato Januar 08, 2023, 15:06:07 POSLE PODNE
repeat

U ovakvom primeru nema potrebe
Naslov: Odg: Pomoc odo systema
Poruka od: MaRe[X] poslato Januar 10, 2023, 22:21:05 POSLE PODNE
Hvala :)