Problem oko respawn svih vozila komande

Započeo Wudy, Jul 13, 2020, 16:34:39 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Kod: Kod od RTC komande koja respawna samo vozilo u kojem se nalazis(koja radi)
YCMD:rtc(playerid, params[], help)
{
    #pragma unused help
	#pragma unused params
    if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,""SRWBOJA"(( information ))"BELA" :Moras se ulogovati da bi koristio ovu komandu!");
	if (PlayerInfo[playerid][pGM] >= 1 || PlayerInfo[playerid][pAdmin] >= 1)
	{
	    if(AdminDuty[playerid] == 0 && GMDuty[playerid] == 0) return SCM(playerid,-1,""SRWBOJA"(( information ))"BELA" : "SIVA"Morate biti na Admin & Supporter duznosti!");
		if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid,-1,""SRWBOJA"[GRESKA] "BELA"Morate biti u vozilu!");
		RTC(GetPlayerVehicleID(playerid));
		SCM(playerid,-1,""SPLAVA"[Server] "BELA"Respawnovali ste vozilo!");
	}
	else
	{
		SCM(playerid,-1, ""ORANGE"[Server] "BELA"Samo Admini & Supporteri!");
	}
	return 1;
}

Komanda koju sam pokusao da Copy pastujem
YCMD:rac(playerid, params[], help)
{
    #pragma unused help
    if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,"BB:RP | "CRVENA"Moras se ulogovati da bi koristio ovu komandu!");
	if(PlayerInfo[playerid][pAdmin] < 1) return SCM(playerid, -1, ""CRVENA"[BB:RP] "SIVA"Samo Vlasnik.");
    if(AdminDuty[playerid] == 0) return SCM(playerid,-1,""CRVENA"[BB:RP] "SIVA"Morate biti na admin duznosti!");
	if(RespawnVozila == 1) return SCM(playerid, -1, ""CRVENA"[GRESKA] "BELA"Respawn je vec pokrenut!");
	new string[512]; RespawnVozila = 1;
	format(string,sizeof string, ""SZELENA"<<< "BELA"Admin %s je pokrenuo respawn privatnih vozila za 20 sec! "SZELENA">>>", GetName(playerid));
	SendClientMessageToAll(-1, string);
	SendClientMessageToAll(-1, ""SZELENA"<<< "BELA"Udjite u svoje vozilo ukoliko zelite da ga zadrzite! "SZELENA">>>");
	SetTimer("Respawn", 20000, false);
	return 1;
}

Problem(error/warning): error 017: undefined symbol "RespawnVozila" ----> A nakon sto ga definujem dobijem hrpu errora na ovoj liniji koda
if(RespawnVozila == 1) return SCM(playerid, -1, ""CRVENA"[GRESKA] "BELA"Respawn je vec pokrenut!");

Deo skripte: [ pawn ]Gore iznad[ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]//[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): //
Poslednja Izmena: Jul 17, 2020, 21:27:55 POSLE PODNE od Svabо

Evo errori:
.pwn(28332) : error 029: invalid expression, assumed zero
.pwn(28332) : warning 215: expression has no effect
.pwn(28332) : error 001: expected token: ";", but found ")"
.pwn(28332) : error 029: invalid expression, assumed zero
.pwn(28332) : fatal error 107: too many error messages on one line

Brate izvini ako znas pa ti ja ovdje serem ko da si pocetnik, ali ako si definiso na ovaj nacin
#define RespawnVozila 0;
, ne misli se na to.
Vec moras napravit varijablu koja ce ti cuvati vrijednost RespawnVozila true ili false, ili 0 i 1.
Znaci deklarises
new RespawnVozila = 0;
negdje na pocetku gdje ti se nalaze globalne varijable.

Hvala puno, errori su nestali, ali se auta ne respawnaju, a kada nakon vise od 20 sekundi pokrenem opet pise da je pokrenuta. Pocetnik sam, pa cenim kritiku i zahvalan sam ti.

eh pa to ti je problem unutar ove funkcije Respawn, tu moras stavit RespawnVozila=0, tako da kad se nakon 20 sekundi izvrsi respawn, vrijednost ponovo postaje 0, tako da kad sljedeci put ponovo dolazi do provjere dal je RespawnVozila==1 bude 0, ako me razumijes. A sto ti se ne respawnaju to se isto nalazi tu u Respawn funkciji, tako da najbolje da postavis citav kod Respawn funkcije ovdje

PS. Ono sto ti radis ovom komandom je da provjeravas dal je vec pokrenut respawn... ako nije onda ispisuje nesto, ali ovdje se nigdje ne vrsi respawn, nego se pomocu ovog SetTimer poziva funkcija Respawn, zapravo stima se tako da se pozove i izvrsi nakon 20 sekundi, eh sad sta se nalazi unutar nje to je posebna prica
Poslednja Izmena: Jul 13, 2020, 21:20:45 POSLE PODNE od Rizzzla

Nasao sam ovo
RespawnNearbyVehicles(playerid, Float:radi, ignoreveicle = INVALID_PLAYER_ID)
{
	new Float:x, Float:y, Float:z;
	GetPlayerPos(playerid, x, y, z);
	for(new i=1; i<MAX_VEHICLES; i++)
	{
		if(ignoreveicle != i && GetVehicleModel(i))
		{
			new Float:posx, Float:posy, Float:posz;
			new Float:tempposx, Float:tempposy, Float:tempposz;
			GetVehiclePos(i, posx, posy, posz);
			tempposx = (posx - x);
			tempposy = (posy - y);
			tempposz = (posz - z);
			if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
			{
				RTC(i);
			}
		}
	}
}

forward RTC(vehicleid);
public RTC(vehicleid)
{
    SetVehicleHealth(vehicleid, 1000.0);
    SetVehicleToRespawn(vehicleid);
    return 1;
}

Nadam se da moze pomoci, ako ne nema veze. Zahvalan sam i do sada

Nije to, vidis ovo SetTimer("Respawn", 20000, false); to ti je linija iz tvoje komande gore, to ti je tajmer koji se postavlja na 20 sekundi, kad istekne 20 sekundi poziva se funkcija Respawn (ovo sto pise unutar navodnika), eh sad ti moras naci tu funkciju ako je imas i popravit, ako nemas onda stavi ovo u skriptu
public Respawn()
{
       for(new v = 0; v < MAX_VEHICLES; v++)
   {
       SetVehicleToRespawn(v);
   }
        RespawnVozila=0;
   return 1;
}

ovim ces respawnat sva vozila bez obzira dal ima neko u njima il ne, a da bi i to ostvario moracespravit jos jednu funkciju


Hvala ti punoooo na brzom odgovoru
Citatwarning 235: public function lacks forward declaration (symbol "Respawn") [public Respawn()]
warning 217: loose indentation [RespawnVozila=0;]
(2941) : warning 217: loose indentation[return 1;]
ovo su upozorenja koja dpbijam i koja linija koda
#define MAX_VOZILA  2000

p.s. Kako da napravim tu Varijablu. Mozda, ako je igrac u autu return 1?

Ovako, prvi warning, znaci da ti fali public za funkciju koju pravis, primer :

forward Nesto();
public Nesto()
{
	//Code
	return 1;
}


Drugi i treci warning ti je za lose poredjan kod, da se tako izrazim, sta to znaci?

NekaFunkcija()
{
	SendClientMessage(playerid, -1, "Sve full!");
		SendClientMessage(playerid, -1, "Ovde ce baciti warning");
	SendClientMessage(playerid, -1, "Sve full!");
}


Samo ga poredjaj kako treba, ako si ucio C++ i C# trebalo bi da znas kako da ga "poredjas"


Hvala, resio sam warninge, nisam ni primetio da nisam dobro "poredjao"   ;)
Odo da testiram...
Jos samo da napravim da se nemogu respawn ako ima igrac u autu i tjt.
Hvala Vam, najbolji ste!!!

Prosto, koristi samo proveru IsPlayerInAnyVehicle, tako mozes proveriti da li je igrac u vozilu