[Pomoc] Trafic Distance


Započeo ShadowNET, Mart 26, 2016, 15:29:23 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:0
Detaljan opis problema:Radim dynamican system trafika.I sad komandom napravitrafiku upisujem kordinate (x y z) mesta de sam uneo cmd u neki fajl.I sad kada imam vise trafika, kako da napravim da kada kupujem trafike skripta prodje kroz sve trafike na serveru i pomocu
IsPlayerInRangeOfPoint
proveri da li je blizu neke trafike.
napomena da je svaka tarfika definisana sa ID-jem.
Dio skripte:Evo ja sam probao ovako al kada imam vise trafika radi samo na jednoj.
CMD:kupitrafiku(playerid, params[])
{
	for(new t = 0; t < sizeof(TrafikInfo); t++)
	{
		if(!IsPlayerInRangeOfPoint(playerid, 2.0, TrafikInfo[t][TrafikaX], TrafikInfo[t][TrafikaY], TrafikInfo[t][TrafikaZ])) return SCM(playerid, Error, "Nisi blizu ni jedne trafike");
		if(TrafikInfo[t][TrafikaKupljena] == 1) return SCM(playerid, Error, "Ova trafika je vec kupljena");
		if(PlayerInfo[playerid][pTrafika] == 1) return SCM(playerid, Error, "Vec posedujes trafiku");
		new message[128];
		format(message, sizeof(message), "Uspesno si kupio trafiku ID: %d", TrafikInfo[t][TrafikID]);
		SCM(playerid, Zelena, message);
		break;
	}
	return 1;
}

Neke slike/video za lakse dobivanje pomoci(neobavezno):

ovako probaj:
CMD:kupitrafiku(playerid, params[])
{
	for(new t = 0; t < sizeof(TrafikInfo); t++)
	{
		if(!IsPlayerInRangeOfPoint(playerid, 2.0, TrafikInfo[t][TrafikaX], TrafikInfo[t][TrafikaY], TrafikInfo[t][TrafikaZ])) {
			SCM(playerid, Error, "Nisi blizu ni jedne trafike");
			continue;
		}
		if(TrafikInfo[t][TrafikaKupljena] == 1) {
			SCM(playerid, Error, "Ova trafika je vec kupljena");
			continue;
		}
		if(PlayerInfo[playerid][pTrafika] == 1) { 
			SCM(playerid, Error, "Vec posedujes trafiku");
			continue;
		}
		new message[35];
		format(message, sizeof(message), "Uspesno si kupio trafiku ID: %d", TrafikInfo[t][TrafikID]);
		SCM(playerid, Zelena, message);
		break;
	}
	return 1;
}


i pazi na stringove nema potrebe da je 128 kada je dovoljno 35...

My Bike KTM 450 SXF 2008

Sada kupuje trafike ali kada kupim trafiku on napise Nisi blizu ni jedne trafike i onda  Uspesno si kupio trafiku ID
Znaci salje i jedno i drugo


Sta ce mi else funkcija prolazi korz provere i ako je sve uredu odradi posao.
Zna li neko do cega je?

Citat: ShadowNET poslato Mart 27, 2016, 11:30:15 PRE PODNE
Sta ce mi else funkcija prolazi korz provere i ako je sve uredu odradi posao.
Zna li neko do cega je?

Znaci samo kad se kupi ispise onda da nisi blizu pa kupi? prvo da nisi blizu pa da si kupio? Msm ono ce uvjek ispisati da nisi blizu trafike jer je u loopu tako stavljeno ako imas 100 trafika i 101 ti trebas da kupis za svih 100 prvih ce napisati da nisi blizu njih...

ovako dodaj:
CMD:kupitrafiku(playerid, params[])
{
	new kupio = 0;
	if(PlayerInfo[playerid][pTrafika] == 1) { 
		SCM(playerid, Error, "Vec posedujes trafiku");
		return 1;
	}
	for(new t = 0; t < sizeof(TrafikInfo); t++)
	{
		if(TrafikInfo[t][TrafikaKupljena] == 1) {
			SCM(playerid, Error, "Ova trafika je vec kupljena");
			break;
		}
		new message[35];
		format(message, sizeof(message), "Uspesno si kupio trafiku ID: %d", TrafikInfo[t][TrafikID]);
		SCM(playerid, Zelena, message);
		kupio = 1;
		break;
	}
	if(kupio == 0) {
		SCM(playerid, Error, "Nisi blizu ni jedne trafike");
	}
	return 1;
}
Poslednja Izmena: Mart 27, 2016, 13:34:29 POSLE PODNE od Vuzimir

My Bike KTM 450 SXF 2008

Problem.Kod koje god trafike da stanem uvek pise kupio si trafiku ID 0

ovako dodaj:
CMD:kupitrafiku(playerid, params[])
{
	new kupio = 0;
	if(PlayerInfo[playerid][pTrafika] == 1) { 
		SCM(playerid, Error, "Vec posedujes trafiku");
		return 1;
	}
	for(new t = 0; t < sizeof(TrafikInfo); t++)
	{
        if(IsPlayerInRangeOfPoint(playerid, 2.0, TrafikInfo[t][TrafikaX], TrafikInfo[t][TrafikaY], TrafikInfo[t][TrafikaZ])) {
			if(TrafikInfo[t][TrafikaKupljena] == 1) {
				SCM(playerid, Error, "Ova trafika je vec kupljena");
				break;
			}
			new message[35];
			format(message, sizeof(message), "Uspesno si kupio trafiku ID: %d", TrafikInfo[t][TrafikID]);
			SCM(playerid, Zelena, message);
			kupio = 1;
			break;
		}
    }
	if(kupio == 0) {
		SCM(playerid, Error, "Nisi blizu ni jedne trafike");
	}
	return 1;
}
[/pawn]

My Bike KTM 450 SXF 2008