Pomoc oko zauzimanje zone


Započeo Hunter.#, Jun 10, 2019, 15:43:04 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Kad se zona vec zauzima neko moze da dodje i da kuca ponovo /zauzmi i zona da se zauzima i da se zbaguje ili kad onaj koji zauzima moze da kuca vise puta /zauzmi i da se ubaguje ceo chat,kako da postavim da kad neka zona se zauzima da nemoze ponovo da se kuca /zauzmi i da se zauzme
Deo skripte:
YCMD:zauzmi(playerid, params[], help)
{
	#pragma unused help
	new sat, minut, sekund;
	gettime(sat, minut, sekund);
	if(sat >= 3 && sat <= 7) return SCM(playerid, -1, ""SPLAVA"* Greska "BELA"Ne mozete zauzimati teritorije izmedju 7-3h!");
	new gunID = GetPlayerWeapon(playerid);
	new gunAmmo = GetPlayerAmmo(playerid);
	if(gunID != 0 && gunAmmo != 0)
	{
	}
	else return SCM(playerid, -1, ""SPLAVA"* Greska "BELA"Morate drzati oruzje u ruci kako biste zapoceli osvajanje teritorije!");
	if(PlayerInfo[playerid][pClan] == 1 || PlayerInfo[playerid][pLider] == 1 || PlayerInfo[playerid][pLider] == 7 || PlayerInfo[playerid][pClan] == 7) return SCM(playerid, -1, ""SPLAVA"* Greska "BELA"Vi ste clan drzavne organizacije, vi morate da vodite red oko igraca!");
	if(PlayerInfo[playerid][pClan] == 6 || PlayerInfo[playerid][pLider] == 6 || PlayerInfo[playerid][pClan] == 8 || PlayerInfo[playerid][pLider] == 8 || PlayerInfo[playerid][pClan] == 10 || PlayerInfo[playerid][pLider] == 10 || PlayerInfo[playerid][pClan] == 0 || PlayerInfo[playerid][pLider] == 0 ||
	PlayerInfo[playerid][pClan] == 14 || PlayerInfo[playerid][pLider] == 14 || PlayerInfo[playerid][pClan] == 18 || PlayerInfo[playerid][pLider] == 18) return SCM(playerid,SVETLOPLAVA,"Niste clan bande/mafije.");
	for(new id = 0; id < sizeof(GZ); id++)
	{
		if(IsPlayerInRangeOfPoint(playerid, 3.0, GZ[id][gPickupx], GZ[id][gPickupy], GZ[id][gPickupz]))
		{
			new string[126];
			new clan = PlayerInfo[playerid][pClan];
			new lider = PlayerInfo[playerid][pLider];
			if(GZ[id][zonaTeam] == 1)
			{
				if(clan == 2 || lider == 2) //----The Vinci Family
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 2)
			{
				if(clan == 3 || lider == 3) //----Black Dragon Triads
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 3)
			{
				if(clan == 4 || lider == 4) //----Groove Street Family
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 4)
			{
				if(clan == 5 || lider == 5) //----Ballas
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 5)
			{
				if(clan == 9 || lider == 9) //----Condor
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 6)
			{
				if(clan == 10 || lider == 10) //----Hitman
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 7)
			{
				if(clan == 11 || lider == 11) //----Blue Lagoon
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 8)
			{
				if(clan == 12 || lider == 12) //---- Vagos Gang
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 9)
			{
				if(clan == 13 || lider == 13) //----Da Naga Boys
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 10)
			{
				if(clan == 15 || lider == 15) //----Yakuza
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 11)
			{
				if(clan == 17 || lider == 17) //----Black Cobra Corporation
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 12)
			{
				if(clan == 19 || lider == 19) //----DeathRow
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 13)
			{
				if(clan == 20 || lider == 20) //----Russian Mafia
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 14)
			{
				if(clan == 21 || lider == 21) //----Gucci Gang
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 15)
			{
				if(clan == 22 || lider == 22) //----The Escobar Cartel
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			if(GZ[id][zonaTeam] == 16)
			{
				if(clan == 23 || lider == 23) //----Big Cartel Bulls
				{
					SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
					return 1;
				}
			}
			zonaid[playerid] = id;
			zonatime[playerid] = 300; //10min
			zonas[playerid] = 60;
			zonatimer[playerid] = SetTimerEx("ZonaZauzmi", 1000, true, "i", playerid);
			SCM(playerid,-1,""LeGeNDaJeCar"** ZAPOCEO SI ZAUZIMANJE TERITORIJE. "BELA"Moras ostati ziv sljedecih "CRVENA"5 minuta "BELA"kako bi je osvojio.");
			SCM(playerid,-1,""LeGeNDaJeCar"**** "BELA"Ne smijes se previse udaljiti od mjesta zauzimanja, jer ce zauzimanje biti prekinuto. "CRVENA"*****");
forward ZonaZauzmi(playerid);//na dnu skirpte ubaciti
public ZonaZauzmi(playerid) //na dnu skirpte ubaciti
{
	if(!IsPlayerInRangeOfPoint(playerid, 10.0, GZ[zonaid[playerid]][gPickupx], GZ[zonaid[playerid]][gPickupy], GZ[zonaid[playerid]][gPickupz]))
	{
		new id = zonaid[playerid];
		GangZoneStopFlashForAll(ZonaID[id]);
		PlayerTextDrawHide(playerid, klecanjetd[playerid]);
		zonaid[playerid] -= 1;
		zonatime[playerid] -= 1;
		KillTimer(zonatimer[playerid]);
		SCM(playerid, -1 ,""LeGeNDaJeCar"* Greska: "BELA"Niste uspeli da zauzmete teritoriju, udaljili ste se od mesta zauzimanja!");
		return 1;
	}
	zonatime[playerid] -= 1;
	if(zonatime[playerid] > 240 && zonatime[playerid] < 301)
	{
		if(zonas[playerid] == 1)
		{
			zonas[playerid] = 60;
		}
		zonas[playerid] -= 1;
		new text2[126];
		format(text2, sizeof(text2), "Zauzimanje u toku: 04:%d.",zonas[playerid]);
		PlayerTextDrawSetString(playerid,klecanjetd[playerid], text2);
		PlayerTextDrawShow(playerid, klecanjetd[playerid]);
	}
	if(zonatime[playerid] > 180 && zonatime[playerid] < 240)
	{
		if(zonas[playerid] == 1)
		{
			zonas[playerid] = 60;
		}
		zonas[playerid] -= 1;
		new text2[126];
		format(text2, sizeof(text2), "Zauzimanje u toku: 03:%d.",zonas[playerid]);
		PlayerTextDrawSetString(playerid,klecanjetd[playerid], text2);
		PlayerTextDrawShow(playerid, klecanjetd[playerid]);
	}
	if(zonatime[playerid] > 120 && zonatime[playerid] < 180)
	{
		if(zonas[playerid] == 1)
		{
			zonas[playerid] = 60;
		}
		zonas[playerid] -= 1;
		new text2[126];
		format(text2, sizeof(text2), "Zauzimanje u toku: 02:%d.",zonas[playerid]);
		PlayerTextDrawSetString(playerid,klecanjetd[playerid], text2);
		PlayerTextDrawShow(playerid, klecanjetd[playerid]);
	}
	if(zonatime[playerid] > 60 && zonatime[playerid] < 120)
	{
		if(zonas[playerid] == 1)
		{
			zonas[playerid] = 60;
		}
		zonas[playerid] -= 1;
		new text2[126];
		format(text2, sizeof(text2), "Zauzimanje u toku: 01:%d.",zonas[playerid]);
		PlayerTextDrawSetString(playerid,klecanjetd[playerid], text2);
		PlayerTextDrawShow(playerid, klecanjetd[playerid]);
	}
	if(zonatime[playerid] > 0 && zonatime[playerid] < 60)
	{
		if(zonas[playerid] == 1)
		{
			zonas[playerid] = 60;
		}
		zonas[playerid] -= 1;
		new text2[126];
		format(text2, sizeof(text2), "Zauzimanje u toku: 00:%d.",zonas[playerid]);
		PlayerTextDrawSetString(playerid,klecanjetd[playerid], text2);
		PlayerTextDrawShow(playerid, klecanjetd[playerid]);
	}
	if(zonatime[playerid] < 1)
	{
		PlayerTextDrawHide(playerid, klecanjetd[playerid]);
		SCM(playerid,-1,"Uspesno ste zauzeli ovu zonu!");
		KillTimer(zonatimer[playerid]);
		new clan = PlayerInfo[playerid][pClan];
		new lider = PlayerInfo[playerid][pLider];
		new id = zonaid[playerid];
		GangZoneStopFlashForAll(ZonaID[id]);
		new string[256];
		new sttatus[64];
		if(GZ[id][zonaTeam] == 1) { sttatus = "The Vinci Family"; }
		else if(GZ[id][zonaTeam] == 2) { sttatus = "Black Dragon Triads"; }
		else if(GZ[id][zonaTeam] == 3) { sttatus = "Groove Street Family"; }
		else if(GZ[id][zonaTeam] == 4) { sttatus = "Ballas"; }
		else if(GZ[id][zonaTeam] == 5) { sttatus = "Condor"; }
		else if(GZ[id][zonaTeam] == 6) { sttatus = "Hitman"; }
		else if(GZ[id][zonaTeam] == 7) { sttatus = "Blue Lagoon"; }
		else if(GZ[id][zonaTeam] == 8) { sttatus = "Vagos Gang"; }
		else if(GZ[id][zonaTeam] == 9) { sttatus = "Da Naga Boys"; }
		else if(GZ[id][zonaTeam] == 10) { sttatus = "Yakuza"; }
		else if(GZ[id][zonaTeam] == 11) { sttatus = "Black Cobra Corporation"; }
		else if(GZ[id][zonaTeam] == 12) { sttatus = "DeathRow"; }
		else if(GZ[id][zonaTeam] == 13) { sttatus = "Russian Mafia"; }
		else if(GZ[id][zonaTeam] == 14) { sttatus = "Gucci Gang"; }
		else if(GZ[id][zonaTeam] == 15) { sttatus = "The Escobar Cartel"; }
		else if(GZ[id][zonaTeam] == 16) { sttatus = "Big Cartel Bulls"; }
		if(PlayerInfo[playerid][pClan] > 0)
		{
			format(string,sizeof(string),"{0A9DC9}#Obavestenje: Vasa organizacija je prosirila svoju vladavinu na jos jednu teritoriju. Clan %s je zauzeo teritoriju koju je kontrolisala organizacija %s i dobio 5000$.",GetName(playerid),sttatus);
			SendFamilyMessage(PlayerInfo[playerid][pClan],-1,string);
		}
		else
		{
			format(string,sizeof(string),"{0A9DC9}#Obavestenje: Vasa organizacija je prosirila svoju vladavinu na jos jednu teritoriju. Clan %s je zauzeo teritoriju koju je kontrolisala organizacija %s i dobio 5000$.",GetName(playerid),sttatus);
			SendFamilyMessage(PlayerInfo[playerid][pLider],-1,string);
		}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): //
Poslednja Izmena: Jun 13, 2019, 16:48:26 POSLE PODNE od Bašovski

Prosto je;

Kreiraš varijablu za svaku zonu ( ubaciš unutar enuma, mape il šta već koristiš ) i kada se zona zauzima stavis na true i ako je true onda nemoj dozvolit komandu, eazy as that :D
If nobody cares to accept you and wants you in this world,
accept yourself and you will see that you don’t need them and their selfish ideas.

Citat: FaLLeN poslato Jun 10, 2019, 15:52:21 POSLE PODNE
Prosto je;

Kreiraš varijablu za svaku zonu ( ubaciš unutar enuma, mape il šta već koristiš ) i kada se zona zauzima stavis na true i ako je true onda nemoj dozvolit komandu, eazy as that :D
NPR OVAKO:
if(GZ[id][gPreuzeto] > 0) return SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ova teritorija je nedavno zauzeta, pricekajte malo!");
			GZ[id][gPreuzeto] = 5;

Zašto = 5?

new gzZauzeta[MAX_ZONES];


Ovo kada krene da zauzima:

gzZauzeta[zonaid] += gettime() + koliko_sekundi_zelis_da_se_ne_moze_zauzimati;


I ovo za proveru:

if(gettime() < gzZauzeta[zonaid]) return SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ova teritorija je nedavno zauzeta, pricekajte malo!");


EDIT: Ovo je samo primer i radi i kada igrac samo krene da zauzima ako tako namestis, ne i ako je uspeo ( tj sekunde ce krenut od kada je poceo ne od kada je zavrsio ) :D
Poslednja Izmena: Jun 10, 2019, 16:04:28 POSLE PODNE od FaLLeN
If nobody cares to accept you and wants you in this world,
accept yourself and you will see that you don’t need them and their selfish ideas.

Eo vako
Prvo dodaj enum - pZauzima,
Drugo dodaj pod OnPlayerConnect - PlayerInfo[playerid][pZauzima] = 0;
Trece dodaj pod OnPlayerDissconect - PlayerInfo[playerid][pZauzima] = 0; //kod prekidanja zauzimanja stavi
Cetvrto dodaj pod OnPlayerDeath - PlayerInfo[playerid][pZauzima] = 0; //kod prekidanja zauzimanja kad umre igrac
Peto dodaj pod cmd:zauzmi - if(PlayerInfo[playerid][pZauzima] == 1) return SCM(playerid, -1, ""CRVENA"[ZONA]"BELA" Ova zona se vec napada od neke bande/mafije!");
Eto ti ako budes imao errora i warninga javi se!
AKO ZNAS ZA BOGA I ZA GLAVU ZIVU NE BRANI MI DOKTORE RAKIJU I PIVU

Citat: Aggressive poslato Jun 10, 2019, 21:50:23 POSLE PODNE
Eo vako
Prvo dodaj enum - pZauzima,
Drugo dodaj pod OnPlayerConnect - PlayerInfo[playerid][pZauzima] = 0;
Trece dodaj pod OnPlayerDissconect - PlayerInfo[playerid][pZauzima] = 0; //kod prekidanja zauzimanja stavi
Cetvrto dodaj pod OnPlayerDeath - PlayerInfo[playerid][pZauzima] = 0; //kod prekidanja zauzimanja kad umre igrac
Peto dodaj pod cmd:zauzmi - if(PlayerInfo[playerid][pZauzima] == 1) return SCM(playerid, -1, ""CRVENA"[ZONA]"BELA" Ova zona se vec napada od neke bande/mafije!");
Eto ti ako budes imao errora i warninga javi se!
O moj bože kastrirajte me na mestu.

I šta onda da loopuje kroz sve igrače ako neko drugi hoće da zauzme?
Enum? Za? Nauči strukturu enuma i za šta se koristi!
1 i 0?! bool je single cell ... !
Logičnije je svakako da kreira funkciju nego da resetuje var na nulu tj na false i ovaj sistem funkcionira tako da igrač čim izaÄ'e iz zone stopa zauzimanje ako se dobro sećam tkd nema potrebe da li igrač već zauzima...

NE slušaj citirani post...

Za promenu nauči osnove i ne cimaj nas za svaku glupost, nećemo ti uvek na tacni davati stvari !
If nobody cares to accept you and wants you in this world,
accept yourself and you will see that you don’t need them and their selfish ideas.

Citat: FaLLeN poslato Jun 10, 2019, 22:03:59 POSLE PODNE
O moj bože kastrirajte me na mestu.

I šta onda da loopuje kroz sve igrače ako neko drugi hoće da zauzme?
Enum? Za? Nauči strukturu enuma i za šta se koristi!
1 i 0?! bool je single cell ... !
Logičnije je svakako da kreira funkciju nego da resetuje var na nulu tj na false i ovaj sistem funkcionira tako da igrač čim izaÄ'e iz zone stopa zauzimanje ako se dobro sećam tkd nema potrebe da li igrač već zauzima...

NE slušaj citirani post...

Za promenu nauči osnove i ne cimaj nas za svaku glupost, nećemo ti uvek na tacni davati stvari !
Pa pomozi mu ti onda ako mislis da znas i pravis se pametan
AKO ZNAS ZA BOGA I ZA GLAVU ZIVU NE BRANI MI DOKTORE RAKIJU I PIVU

Citat: Aggressive poslato Jun 10, 2019, 22:06:52 POSLE PODNE
Pa pomozi mu ti onda ako mislis da znas i pravis se pametan
Pa Fallen je upravu i napisao je kod kako treba ne znam zasto se javljas, u drugoj temi trazis pomoc a ovde se pravis pametan...  ::)

Ljudi ovako stavio sam post neko da mi pomogne jer mi je potrebna pomoc a ne da se svadjate!

Citat: Legend.. poslato Jun 11, 2019, 10:45:42 PRE PODNE
Ljudi ovako stavio sam post neko da mi pomogne jer mi je potrebna pomoc a ne da se svadjate!
A da ti naucis one najosnovnije osnove jebenog skriptanja?
Ubacujes tu neke sisteme vrv ces sutra pricati da si SILNI SKRIPTER jer si ti kao uradio mod tj pokrao tudje sisteme a jebeni bool var ne znas da kreiras? Jesi umobolestan?

https://wiki.open.mp
If nobody cares to accept you and wants you in this world,
accept yourself and you will see that you don’t need them and their selfish ideas.

Citat: FaLLeN poslato Jun 11, 2019, 11:36:24 PRE PODNE
A da ti naucis one najosnovnije osnove jebenog skriptanja?
Ubacujes tu neke sisteme vrv ces sutra pricati da si SILNI SKRIPTER jer si ti kao uradio mod tj pokrao tudje sisteme a jebeni bool var ne znas da kreiras? Jesi umobolestan?

https://wiki.open.mp
Upravu si da ne znam da napravim ni bool i takve stvari ali bar pokusavam da naucim i zato mi je potrebna pomoc zato sto ne znam