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:
//

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...

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

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.

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);
}

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
vehicleid = GetPlayerVehicleID(playerid);
u
vehicleid = GetPlayerVehicleID(i);

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:
vehicleid = GetPlayerVehicleID(playerid);


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
vehicleid = GetPlayerVehicleID(playerid);

ja sam promenio u
vehicleid = GetPlayerVehicleID(i);
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:
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;
}


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


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...

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[i]) continue;
	    SetVehicleToRespawn(i);
	}
	SCMA(-1,"{004AFF}[RESPAWN] {FFFFFF}Sva vozila su respawnovana! Naredni respawn je za 40 minuta!");
	return 1;
}


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...