Respawn vozila sa igracem u njima

Započeo Neckiy, Maj 07, 2021, 02:13:08 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Imam problem, napravio sam respawn sistem ali ne znam kako da napravim da dok je igrac u vozilu to vozilo se nece respawnovati.
Deo skripte: [pawn]//[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Poslednja Izmena: Maj 08, 2021, 02:28:39 PRE PODNE od M Ө M Σ N Z I
Mnogo ljudi mi govori da sam autistican.
U pravu su...

[pawn]new bool: vzauzeto[MAX_VEHICLES];
if(!vzauzeto[vehicleid])
{
     SetVehicleToRespawn(vehicleid);
}
eto osnova neka sad zavrsi sb u timer-u[/pawn]

Jasno mi je sta hoces da uradim, samo, gde bih mogao da stavim to vzauzeto da proverava. Tj. gde da stavim da se vzauzeto = 1 a gde da bude 0. Kontao sam na OnPlayerEnterVehicle stavm da bude zauzeto a na Exit da bude 0 ali ako npr nekog bringam bez vozila, vozilo ce i dalje ostati da je zauzeto. Ako razumes sta hocu da kazem.
Mnogo ljudi mi govori da sam autistican.
U pravu su...

zasto bi uopce to napravio ? Cemu onda tipa poruka ko i na svim ostalim modovima udite u vase vozilo ako nezelite da bude respawan-ano tipa ja mislim
CitatNe idite uokolo tumačeći kako vam svijet duguje život. Svijet vam ne duguje ništa. On je bio prvi ovdje.

[pawn]
new bool:vehOccupied[MAX_VEHICLES] = {false,...};
new vehicleid=0;
for(new i = 0; i < MAX_PLAYERS; i++)
{

   if(!IsPlayerConnected(i)) continue;
   vehicleid = GetPlayerVehicleID(playerid);
   if(vehicleid == 0) continue;
   vehOccupied[vehicleid]=true;
}

for(new i = 0; i < MAX_VEHICLES; i++)
{
   if(vehOccupied[vehicleid]) continue;
    SetVehicleToRespawn(i);
}
[/pawn]
Ovako nesto bi trebalo da radi...

E imam problem, kad sam u vozilu ne respawna ali ne respawna nista iako sam ja samo u 1 vozilu.
Promenio sam ovaj deo [pawn]vehicleid = GetPlayerVehicleID(playerid);[/pawn] u [pawn]vehicleid = GetPlayerVehicleID(i);[/pawn]
pa kontam da je do toga ali ne moze da ocita playerid u OnGameModeInit
Mnogo ljudi mi govori da sam autistican.
U pravu su...

Ipak nije do toga sto sam promenio jer i sa playerid ne respawna ni jedno vozilo ako sam ja u bilo kojem od njih
Mnogo ljudi mi govori da sam autistican.
U pravu su...

Dobro si ti zamenio, moja je greska. Treba:
[pawn]   vehicleid = GetPlayerVehicleID(playerid);[/pawn]

Zameni, recompile i test. Pazi, one promenive nisu globalne nego lokalne. Znaci citav kod sto sam ti poslao je lokalni, bukvalno ga mozes samo ubaciti u neku funkciju ili komandu.

Pa ti i jesi napisao [pawn]vehicleid = GetPlayerVehicleID(playerid);[/pawn]
ja sam promenio u [pawn]vehicleid = GetPlayerVehicleID(i);[/pawn]
Mnogo ljudi mi govori da sam autistican.
U pravu su...

E vidi, pokusao sam i sa playerid i sa i i ni jedno ne radi. Dole cu ti poslati Timer koji automatski salje i kako timer izgleda.

OVO JE TIMER:
[pawn]forward RespawnVozila();
public RespawnVozila()
{
   new bool:vehOccupied[MAX_VEHICLES] = {false,...};
   new vehicleid=0;
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
      if(!IsPlayerConnected(i)) continue;
      vehicleid = GetPlayerVehicleID(i);
      if(vehicleid == 0) continue;
      vehOccupied[vehicleid]=true;
   }
   for(new i = 0; i < MAX_VEHICLES; i++)
   {
      if(vehOccupied[vehicleid]) continue;
       SetVehicleToRespawn(i);
   }
   SCMA(-1,"{004AFF}[RESPAWN] {FFFFFF}Sva vozila su respawnovana! Naredni respawn je za 40 minuta!");
   return 1;
}

forward RespawnMsg();
public RespawnMsg()
{
   SCMA(-1,"{004AFF}[RESPAWN] {FFFFFF}Sva vozila ce biti respawnovana za 5 minuta!");
   return 1;
}[/pawn]

A OVO SU TA DVA TIMERA U ONGAMEMODEINIT:
[pawn]   SetTimer("RespawnMsg", 15000, true);
    SetTimer("RespawnVozila", 20000, true);[/pawn]

EDIT: samo da napomenem i kad stavim vehicleid = GetPlayerVehicleID(i); i vehicleid = GetPlayerVehicleID(playerid); oba ne funkcionisu
Poslednja Izmena: Maj 07, 2021, 23:52:41 POSLE PODNE od Neckiy
Mnogo ljudi mi govori da sam autistican.
U pravu su...

[pawn]
forward RespawnVozila();
public RespawnVozila()
{
   new bool:vehOccupied[MAX_VEHICLES] = {false,...};
   new vehicleid=0;
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
      if(!IsPlayerConnected(i)) continue;
      vehicleid = GetPlayerVehicleID(i);
      if(vehicleid == 0) continue;
      vehOccupied[vehicleid]=true;
   }
   for(new i = 0; i < MAX_VEHICLES; i++)
   {
      if(vehOccupied) continue;
       SetVehicleToRespawn(i);
   }
   SCMA(-1,"{004AFF}[RESPAWN] {FFFFFF}Sva vozila su respawnovana! Naredni respawn je za 40 minuta!");
   return 1;
}
[/pawn]

Zajebo sam ja na 2 mesta koliko vidim :D
Jbg to je kad pises na forumu a ne u editor (kad sam kreten, ko mi brani da otvorim novi fajl...)
Uglavnom probaj ovo sto sam poslao sad pa javi ako radi i sta se desava ako ne.

Sve radi, hvala majstore!
Mnogo ljudi mi govori da sam autistican.
U pravu su...