War System


Započeo Balsa., Oktobar 11, 2017, 15:13:27 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: Balkan Gaming RPG/DM
Detaljan opis problema: Pa ovako imam war system i trebalo bi da kada igrac iz jedne org koja je u ratu ubije onog iz druge ta prva dobije +1 score i kada se kuca komanda /score koja samo vazi u warovima bude isto 0 koliko god puta jedan ubio drugu aa i jos jedan problem je taj sto ne odbrojava vreme i war se zavrsi samo kad ugasim srw.
Dio skripte:
Ovo mi pod OnPlayerDeath
public OnPlayerDeath(playerid, killerid, reason)
	{
    if(teamBlue[killerid] >= 1 && teamRed[playerid] >= 1)
 	{
 	if(teamBlue[killerid] == 2) {  ftext = "YAKUZA"; }
 	else if(teamBlue[killerid] == 3) {  ftext = "LA COSA NOSTRA"; }
 	else if(teamBlue[killerid] == 4) {  ftext = "GROVE STREET"; }
 	else if(teamBlue[killerid] == 5) {  ftext = "BALLAS"; }
 	if(teamRed[playerid] == 2) {  ztext = "YAKUZA"; }
 	else if(teamRed[playerid] == 3) {  ztext = "LA COSA NOSTRA"; }
 	else if(teamRed[playerid] == 4) {  ztext = "GROVE STREET"; }
 	else if(teamRed[playerid] == 5) {  ztext = "BALLAS"; }
 	teamBlueKills[teamBlue[killerid]]++;
 	Tim1Skor++;
 	PlayerInfo[playerid][pDeaths]++;
 	}
 	else if(teamRed[killerid] >= 1 && teamBlue[playerid] >= 1)
 	{
 	if(teamBlue[killerid] == 2) {  ftext = "YAKUZA"; }
 	else if(teamBlue[killerid] == 3) {  ftext = "LA COSA NOSTRA"; }
 	else if(teamBlue[killerid] == 4) {  ftext = "GROVE STREET"; }
 	else if(teamBlue[killerid] == 5) {  ftext = "BALLAS"; }
 	if(teamRed[playerid] == 2) {  ztext = "YAKUZA"; }
 	else if(teamRed[playerid] == 3) {  ztext = "LA COSA NOSTRA"; }
 	else if(teamRed[playerid] == 4) {  ztext = "GROVE STREET"; }
 	else if(teamRed[playerid] == 5) {  ztext = "BALLAS"; }
 	teamRedKills[teamRed[killerid]]++;
	Tim2Skor++;
 	PlayerInfo[playerid][pDeaths]++;
 	}

A ovo mi je kod komande /war
if(strcmp(cmd, "/war", true) == 0)
		{
		if(IsPlayerConnected(playerid) && gPlayerLogged[playerid] == 1)
		{
		if(PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pLeader] == 5)
		{
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return SCM(playerid, COLOR_DGOLD, "KORISTENJE: /war [ID/DioImena]");
		id = ReturnUser(tmp);
		if(id == playerid) return SCM(playerid, COLOR_LIGHTRED, "ERROR: Nemozete samom sebi ponuditi war - pokušajte sa liderom druge organizacije.");
		if(!IsPlayerConnected(id)) return SCM(playerid, COLOR_LIGHTRED, "ERROR: Odabrana osoba nije ulogirana u svoj korisnicki racun - pokusajte poslije.");
		if(Warteam[playerid] >= 1) return SCM(playerid, COLOR_LIGHTRED, "ERROR: Trenutno ste na waru - ne mozete koristiti ovu komandu.");
		if(Warteam[id] >= 1) return SCM(playerid, COLOR_LIGHTRED, "ERROR: Odabrani lider je vec u ratu - kada zavrsi pokušajte ponovno");
		if(PlayerInfo[playerid][pLeader] == PlayerInfo[id][pMember]) return SCM(playerid, COLOR_LIGHTRED, "ERROR: Nemozete ponuditi war lideru iste organizacije u kojoj ste vi.");
		if(Spraying[playerid] == 0)
		{
		if(PlayerInfo[id][pLeader] == 2 || PlayerInfo[id][pLeader] == 3 || PlayerInfo[id][pLeader] == 4 || PlayerInfo[id][pLeader] == 5)
		{
		format(string, 256, "INFO: Ponudili ste lideru %s war - ukoliko ga prihvati zapocinje war u trajanju od 20 minuta.", Ime(id));
		SCM(playerid, COLOR_GOLD, string);
		format(string, 256, "INFO: Vas lider %s je ponudio war lideru %s - ukoliko ga prihvati zapocinje war u trajanju od 20 minuta.", Ime(playerid), Ime(id));
		SendRadioMessage(PlayerInfo[playerid][pLeader], COLOR_DGOLD, string);
		format(string, 256, "INFO: Lider %s vam je ponudio war - upisite '/accept war' da prihvatite war u trajanju od 20 minuta.", Ime(playerid));
		SCM(id, COLOR_GOLD, string);
		format(string, 256, "INFO: Lider %s je ponudio war vašem lideru %s - ukoliko ga prihvati zapocinje war u trajanju od 20 minuta.", Ime(playerid), Ime(id));
		SendRadioMessage(PlayerInfo[id][pLeader], COLOR_GOLD, string);
		Warer[id] = 1;
		WarOffer[id] = playerid;
		WarAccept[id] = playerid;
		WarAccept[id] = 1;
		SprayAccept[id] = 1;
		SetTimerEx("SprayAccepter", 30000, false, "%i", id);
		SetTimerEx("SprayTime", 30000, false, "%i", playerid);
		Spraying[playerid] = 1;
		}
		else { SCM(playerid, COLOR_LIGHTRED, "ERROR: Ne mozete ponuditi war nekome tko nije lider bande/mafije."); }
		}
		else
		{
		SCM(playerid, COLOR_LIGHTRED, "ERROR: Morate pricekati minimalno 30 sekundi prije nove ponude za rat (/war).");
		}
		}
		else
		{
		SCM(playerid, COLOR_LIGHTRED, "ERROR: Niste autorizirani za koristenje ove komande - samo lideri banda/mafija.");
		}
		}
		return 1;
		}


A ovo kod komande /score
if(strcmp(cmd, "/score", true) == 0)
		{
		if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pMember] == 5)
		{
		GetPlayerName(id, giveplayer, sizeof(giveplayer));
		{
		TextDrawShowForPlayer(playerid, Warur2[playerid]);
 		format(string, 256, "{FFFFFF}Tim #1 (%s) %02d {FFD700}///{FFFFFF} Tim #2 (%s) %02d{FFD700}///{FFFFFF}Preostalo vrijeme: %02d:%02d", ztext, Tim2Skor, ftext, Tim1Skor, WarMin[playerid],WarSec[playerid]);
 		SCM(playerid, COLOR_GOLD, string);
 		}
		} else return SCM(playerid, COLOR_LIGHTRED, "ERROR: Niste autorizirani za koristenje ove komande - samo bande/mafije.");
 		return 1;
 		}

Neke slike/video za lakse dobivanje pomoci(neobavezno): //
P.S. Najvise mislim da je greska kod komande /score i kod onplayerdeath a da kod war nije .



Zna li neko pls ?? Izvinite za DP al treba mi hitnooo
BETA TEST IP : 94.23.208.199:9547
Fort Balkan RPG/DM
-----------------------------------------------------------------------------------
• Forum: www.fort-balkan.byethost9.com
• IP Servera: Uskoro
• Više o serveru: Work In PRogress
-----------------------------------------------------------------------------------
* Otvorenje foruma je 1. DECEMBRA u 19:00h !

Je l' si stavio SetTimerEx kod komande war za kraj rata?

Facebook - Klik



Citat: [ ATH ] Shomy Script poslato Oktobar 11, 2017, 21:52:58 POSLE PODNE
Je l' si stavio SetTimerEx kod komande war za kraj rata?
Nemam komandu za kraj rata, trebalo je samo nakon 20 min da zavrsi
BETA TEST IP : 94.23.208.199:9547
Fort Balkan RPG/DM
-----------------------------------------------------------------------------------
• Forum: www.fort-balkan.byethost9.com
• IP Servera: Uskoro
• Više o serveru: Work In PRogress
-----------------------------------------------------------------------------------
* Otvorenje foruma je 1. DECEMBRA u 19:00h !

Citat: Baky poslato Oktobar 11, 2017, 22:31:32 POSLE PODNE
Citat: [ ATH ] Shomy Script poslato Oktobar 11, 2017, 21:52:58 POSLE PODNE
Je l' si stavio SetTimerEx kod komande war za kraj rata?
Nemam komandu za kraj rata, trebalo je samo nakon 20 min da zavrsi
Pitam te da li si stavio timer za kraj war-a?

Facebook - Klik



Vidis nema mi

forward WarTime();
public WarTime()
{
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i))
{
if(Warteam[i] >= 1)
{
if(WarMin[i] <= 20 && WarSec[i] <= 1200)
{
new string[128];
if(teamBlue[i] == 2) {  ftext = "Yakuza"; }
else if(teamBlue[i] == 3) {  ftext = "La Cosa Nostra"; }
else if(teamBlue[i] == 4) {  ftext = "Grove Gang"; }
else if(teamBlue[i] == 5) {  ftext = "Ballas Gang"; }
if(teamRed[i] == 2) {  ztext = "Yakuza"; }
else if(teamRed[i] == 3) {  ztext = "La Cosa Nostra"; }
else if(teamRed[i] == 4) {  ztext = "Grove Gang"; }
else if(teamRed[i] == 5) {  ztext = "Ballas Gang"; }
if(teamRedKills[teamRed[i]] > teamBlueKills[Warnjiska[teamRed[i]]])
{
format(string, 128, "INFO: War je zavrsio pobjedom organizacije %s sa %d killova - cestitke.", ztext, teamRedKills[teamRed[i]]);
SCM(i, COLOR_GOLD, string);
}
else if(teamRedKills[teamRed[i]] < teamBlueKills[Warnjiska[teamRed[i]]])
{
format(string, 128, "INFO: War je zavrsio pobjedom organizacije %s sa %d killova - cestitke.", ftext, teamBlueKills[Warnjiska[teamRed[i]]]);
SCM(i, COLOR_GOLD, string);
}
else if(teamRedKills[teamRed[i]] == teamBlueKills[Warnjiska[teamRed[i]]])
{
format(string, 128, "INFO: War izmedu organizacija %s i %s je zavrsio izjednaceno - cestitke svima.", ftext,ztext);
SCM(i, COLOR_GOLD, string);
}
SetPlayerInterior(i, 0);
SetPlayerHealth(i, 0);
teamBlueKills[teamBlue[i]] = 0;
teamRedKills[teamRed[i]] = 0;
teamBlue[i] = 0;
teamRed[i] = 0;
Warteam[i] = 0;
Warnjiska[i] = 0;
TextDrawHideForPlayer(i, Warur2[i]);
TextDrawHideForPlayer(i, Warur[i]);
KillTimer(WarTimuska[i]);
}
else
{
if(WarSec[i] > 0)
{
new string[128];
WarSec[i]--;
format(string, 256, "~w~%02d:%02d", WarMin[i],WarSec[i]);
TextDrawSetString(Warur2[i], string);
}
else if(WarSec[i] <= 0)
{
new string[128];
WarSec[i] = 59;
WarMin[i]--;
format(string, 256, "~w~%02d:%02d", WarMin[i],WarSec[i]);
TextDrawSetString(Warur2[i], string);
}
}
}
}
}
return 1;

Sta da dodam ovdje?
Odnosno gdje taj SetTimerEx
BETA TEST IP : 94.23.208.199:9547
Fort Balkan RPG/DM
-----------------------------------------------------------------------------------
• Forum: www.fort-balkan.byethost9.com
• IP Servera: Uskoro
• Više o serveru: Work In PRogress
-----------------------------------------------------------------------------------
* Otvorenje foruma je 1. DECEMBRA u 19:00h !

Mali brief oko war sistema:

01: komanda kojom lider šalje lideru poziv za war -> /war [IDlidera]
02: komanda kojom drugi lider prihvata war -> /accept [war]
03: čim lider accepta war kreće timer od 20 minuta (ili koliko već) -> znači timer treba početi otkucavati na komandi /accept [war]
04: aktiviranjem tajmera stavljaš recimo neku pomoćnu varijablu na 1, i pod OnPlayerDeath publicu povećavaš smrti i ubistva zavisno kojeg tima ako je ta pomoćna varijabla na jedinici (recimo)
05: tajmer kad otkuca, war zaustavljaš, obustavljaš sve pomoćne varijable, ubijaš timer i to je to, ispisuješ na ekran rezultate wara

Citat: Contixo poslato Oktobar 12, 2017, 12:50:35 POSLE PODNE
Mali brief oko war sistema:

01: komanda kojom lider šalje lideru poziv za war -> /war [IDlidera]
02: komanda kojom drugi lider prihvata war -> /accept [war]
03: čim lider accepta war kreće timer od 20 minuta (ili koliko već) -> znači timer treba početi otkucavati na komandi /accept [war]
04: aktiviranjem tajmera stavljaš recimo neku pomoćnu varijablu na 1, i pod OnPlayerDeath publicu povećavaš smrti i ubistva zavisno kojeg tima ako je ta pomoćna varijabla na jedinici (recimo)
05: tajmer kad otkuca, war zaustavljaš, obustavljaš sve pomoćne varijable, ubijaš timer i to je to, ispisuješ na ekran rezultate wara
A mos mi rec kako tacno i gdje da dodam
BETA TEST IP : 94.23.208.199:9547
Fort Balkan RPG/DM
-----------------------------------------------------------------------------------
• Forum: www.fort-balkan.byethost9.com
• IP Servera: Uskoro
• Više o serveru: Work In PRogress
-----------------------------------------------------------------------------------
* Otvorenje foruma je 1. DECEMBRA u 19:00h !

Citat: Baky poslato Oktobar 12, 2017, 18:33:33 POSLE PODNE
Yna li neko ???
Uzmi iz drugog moda ili nadji na internetu neku FS, pretesko je za objasniti pocetnicima war system

Facebook - Klik




Ma moze li neko da mi prepravi kod i da mi odvrojava i racuna killove. Ili makar jedno od toga.
BETA TEST IP : 94.23.208.199:9547
Fort Balkan RPG/DM
-----------------------------------------------------------------------------------
• Forum: www.fort-balkan.byethost9.com
• IP Servera: Uskoro
• Više o serveru: Work In PRogress
-----------------------------------------------------------------------------------
* Otvorenje foruma je 1. DECEMBRA u 19:00h !

Smatram da je rijeseno, pa lock, ako nije, posalji pp da unlockam temu.
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci

Unlockovano na zahtjev autora.
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci

Samo ako neko moze da mi doda settimerex i tako to na mjesta gdje treba a i da mi doda da se killovi broje. Ako neko zna jedno  toga mozda ke o dovoljno
Ovo mi je kod kraja wara,
A za ostalo vidite u prvom u.

forward WarTime();
public WarTime()
{
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i))
{
if(Warteam[i] >= 1)
{
if(WarMin[i] <= 20 && WarSec[i] <= 1200)
{
new string[128];
if(teamBlue[i] == 2) {  ftext = "Yakuza"; }
else if(teamBlue[i] == 3) {  ftext = "La Cosa Nostra"; }
else if(teamBlue[i] == 4) {  ftext = "Grove Gang"; }
else if(teamBlue[i] == 5) {  ftext = "Ballas Gang"; }
if(teamRed[i] == 2) {  ztext = "Yakuza"; }
else if(teamRed[i] == 3) {  ztext = "La Cosa Nostra"; }
else if(teamRed[i] == 4) {  ztext = "Grove Gang"; }
else if(teamRed[i] == 5) {  ztext = "Ballas Gang"; }
if(teamRedKills[teamRed[i]] > teamBlueKills[Warnjiska[teamRed[i]]])
{
format(string, 128, "INFO: War je zavrsio pobjedom organizacije %s sa %d killova - cestitke.", ztext, teamRedKills[teamRed[i]]);
SCM(i, COLOR_GOLD, string);
}
else if(teamRedKills[teamRed[i]] < teamBlueKills[Warnjiska[teamRed[i]]])
{
format(string, 128, "INFO: War je zavrsio pobjedom organizacije %s sa %d killova - cestitke.", ftext, teamBlueKills[Warnjiska[teamRed[i]]]);
SCM(i, COLOR_GOLD, string);
}
else if(teamRedKills[teamRed[i]] == teamBlueKills[Warnjiska[teamRed[i]]])
{
format(string, 128, "INFO: War izmedu organizacija %s i %s je zavrsio izjednaceno - cestitke svima.", ftext,ztext);
SCM(i, COLOR_GOLD, string);
}
SetPlayerInterior(i, 0);
SetPlayerHealth(i, 0);
teamBlueKills[teamBlue[i]] = 0;
teamRedKills[teamRed[i]] = 0;
teamBlue[i] = 0;
teamRed[i] = 0;
Warteam[i] = 0;
Warnjiska[i] = 0;
TextDrawHideForPlayer(i, Warur2[i]);
TextDrawHideForPlayer(i, Warur[i]);
KillTimer(WarTimuska[i]);
}
else
{
if(WarSec[i] > 0)
{
new string[128];
WarSec[i]--;
format(string, 256, "~w~%02d:%02d", WarMin[i],WarSec[i]);
TextDrawSetString(Warur2[i], string);
}
else if(WarSec[i] <= 0)
{
new string[128];
WarSec[i] = 59;
WarMin[i]--;
format(string, 256, "~w~%02d:%02d", WarMin[i],WarSec[i]);
TextDrawSetString(Warur2[i], string);
}
}
}
}
}
return 1;

Sta da dodam ovdje?
Odnosno gdje taj SetTimerEx
BETA TEST IP : 94.23.208.199:9547
Fort Balkan RPG/DM
-----------------------------------------------------------------------------------
• Forum: www.fort-balkan.byethost9.com
• IP Servera: Uskoro
• Više o serveru: Work In PRogress
-----------------------------------------------------------------------------------
* Otvorenje foruma je 1. DECEMBRA u 19:00h !

Ja sam ti gore postavio kratke instrukcije kako treba da funkcionise war. Sta ti nije jasno?

Za SetTimerEx -> guglaj samp wikipediju da znas za sta je i kako se koristi
Za brojanje killova -> koristi OnPlayerDeath
Timer dodajes -> kad lider accepta war (kad ukuca ciljani lider komandu).

Ps. Ne mozes u timer dodavati isti timer. Timer pokreces u jednom dijelu skripte gdje treba da nesto otkucava a definises ga posebno u drugom dijelu skripte.
Poslednja Izmena: Oktobar 15, 2017, 10:10:11 PRE PODNE od Contixo