War System

Započeo Balsa.
11. Okt. 2017.
2,142
pregleda
18
postova
Balsa.
5
Crime Lord
11. Okt. 2017.
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 >= 1 && teamRed >= 1)
{
if(teamBlue == 2) {  ftext = "YAKUZA"; }
else if(teamBlue == 3) {  ftext = "LA COSA NOSTRA"; }
else if(teamBlue == 4) {  ftext = "GROVE STREET"; }
else if(teamBlue == 5) {  ftext = "BALLAS"; }
if(teamRed == 2) {  ztext = "YAKUZA"; }
else if(teamRed == 3) {  ztext = "LA COSA NOSTRA"; }
else if(teamRed == 4) {  ztext = "GROVE STREET"; }
else if(teamRed == 5) {  ztext = "BALLAS"; }
teamBlueKills[teamBlue]++;
Tim1Skor++;
PlayerInfo++;
}
else if(teamRed >= 1 && teamBlue >= 1)
{
if(teamBlue == 2) {  ftext = "YAKUZA"; }
else if(teamBlue == 3) {  ftext = "LA COSA NOSTRA"; }
else if(teamBlue == 4) {  ftext = "GROVE STREET"; }
else if(teamBlue == 5) {  ftext = "BALLAS"; }
if(teamRed == 2) {  ztext = "YAKUZA"; }
else if(teamRed == 3) {  ztext = "LA COSA NOSTRA"; }
else if(teamRed == 4) {  ztext = "GROVE STREET"; }
else if(teamRed == 5) {  ztext = "BALLAS"; }
teamRedKills[teamRed]++;
Tim2Skor++;
PlayerInfo++;
}

A ovo mi je kod komande /war
	if(strcmp(cmd, "/war", true) == 0)
{
if(IsPlayerConnected(playerid) && gPlayerLogged == 1)
{
if(PlayerInfo == 2 || PlayerInfo == 3 || PlayerInfo == 4 || PlayerInfo == 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 >= 1) return SCM(playerid, COLOR_LIGHTRED, "ERROR: Trenutno ste na waru - ne mozete koristiti ovu komandu.");
if(Warteam >= 1) return SCM(playerid, COLOR_LIGHTRED, "ERROR: Odabrani lider je vec u ratu - kada zavrsi pokušajte ponovno");
if(PlayerInfo == PlayerInfo) return SCM(playerid, COLOR_LIGHTRED, "ERROR: Nemozete ponuditi war lideru iste organizacije u kojoj ste vi.");
if(Spraying == 0)
{
if(PlayerInfo == 2 || PlayerInfo == 3 || PlayerInfo == 4 || PlayerInfo == 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, 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, COLOR_GOLD, string);
Warer = 1;
WarOffer = playerid;
WarAccept = playerid;
WarAccept = 1;
SprayAccept = 1;
SetTimerEx("SprayAccepter", 30000, false, "%i", id);
SetTimerEx("SprayTime", 30000, false, "%i", playerid);
Spraying = 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 == 2 || PlayerInfo == 3 || PlayerInfo == 4 || PlayerInfo == 5)
{
GetPlayerName(id, giveplayer, sizeof(giveplayer));
{
TextDrawShowForPlayer(playerid, Warur2);
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,WarSec);
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 .
Baky
4
Enforcer
11. Okt. 2017.
Zna li neko pls ?? Izvinite za DP al treba mi hitnooo
Shomy Script
6
Godfather
11. Okt. 2017.
Je l' si stavio SetTimerEx kod komande war za kraj rata?
Baky
4
Enforcer
11. Okt. 2017.
Quote from October 11, 2017, 7:52 pm:
Je l' si stavio SetTimerEx kod komande war za kraj rata?

Nemam komandu za kraj rata, trebalo je samo nakon 20 min da zavrsi
Shomy Script
6
Godfather
12. Okt. 2017.
Baky wrote on October 11, 2017, 7:52 pm:
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?
Baky
4
Enforcer
12. Okt. 2017.
Vidis nema mi
forward WarTime();
public WarTime()
{
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i))
{
if(Warteam >= 1)
{
if(WarMin <= 20 && WarSec <= 1200)
{
new string;
if(teamBlue == 2) {  ftext = "Yakuza"; }
else if(teamBlue == 3) {  ftext = "La Cosa Nostra"; }
else if(teamBlue == 4) {  ftext = "Grove Gang"; }
else if(teamBlue == 5) {  ftext = "Ballas Gang"; }
if(teamRed == 2) {  ztext = "Yakuza"; }
else if(teamRed == 3) {  ztext = "La Cosa Nostra"; }
else if(teamRed == 4) {  ztext = "Grove Gang"; }
else if(teamRed == 5) {  ztext = "Ballas Gang"; }
if(teamRedKills[teamRed] > teamBlueKills[Warnjiska[teamRed]])
{
format(string, 128, "INFO: War je zavrsio pobjedom organizacije %s sa %d killova - cestitke.", ztext, teamRedKills[teamRed]);
SCM(i, COLOR_GOLD, string);
}
else if(teamRedKills[teamRed] < teamBlueKills[Warnjiska[teamRed]])
{
format(string, 128, "INFO: War je zavrsio pobjedom organizacije %s sa %d killova - cestitke.", ftext, teamBlueKills[Warnjiska[teamRed]]);
SCM(i, COLOR_GOLD, string);
}
else if(teamRedKills[teamRed] == teamBlueKills[Warnjiska[teamRed]])
{
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] = 0;
teamRedKills[teamRed] = 0;
teamBlue = 0;
teamRed = 0;
Warteam = 0;
Warnjiska = 0;
TextDrawHideForPlayer(i, Warur2);
TextDrawHideForPlayer(i, Warur);
KillTimer(WarTimuska);
}
else
{
if(WarSec > 0)
{
new string;
WarSec--;
format(string, 256, "~w~%02d:%02d", WarMin,WarSec);
TextDrawSetString(Warur2, string);
}
else if(WarSec <= 0)
{
new string;
WarSec = 59;
WarMin--;
format(string, 256, "~w~%02d:%02d", WarMin,WarSec);
TextDrawSetString(Warur2, string);
}
}
}
}
}
return 1;

Sta da dodam ovdje?
Odnosno gdje taj SetTimerEx
Sadin
4
Made Man
12. Okt. 2017.
Mali brief oko war sistema:

01: komanda kojom lider šalje lideru poziv za war -> /war
02: komanda kojom drugi lider prihvata war -> /accept
03: čim lider accepta war kreće timer od 20 minuta (ili koliko već) -> znači timer treba početi otkucavati na komandi /accept
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
Baky
4
Enforcer
12. Okt. 2017.
Contixo wrote on October 12, 2017, 10:50 am:
Mali brief oko war sistema:

01: komanda kojom lider šalje lideru poziv za war -> /war
02: komanda kojom drugi lider prihvata war -> /accept
03: čim lider accepta war kreće timer od 20 minuta (ili koliko već) -> znači timer treba početi otkucavati na komandi /accept
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
Shomy Script
6
Godfather
12. Okt. 2017.
Baky wrote on October 12, 2017, 4:33 pm:
Yna li neko 😕
Uzmi iz drugog moda ili nadji na internetu neku FS, pretesko je za objasniti pocetnicima war system
Dowla
5
Underboss
12. Okt. 2017.
Ubacis ovaj sistem,izmenis neke stvari da ne budes bas isto i et..
Link:
http://balkan-samp.com/forum/index.php?topic=114364.msg757253#msg757253
Baky
4
Enforcer
13. Okt. 2017.
Ma moze li neko da mi prepravi kod i da mi odvrojava i racuna killove. Ili makar jedno od toga.
ophion
5
OG Legend
14. Okt. 2017.
Smatram da je rijeseno, pa lock, ako nije, posalji pp da unlockam temu.
ophion
5
OG Legend
14. Okt. 2017.
Unlockovano na zahtjev autora.
Baky
4
Enforcer
15. Okt. 2017.
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 >= 1)
{
if(WarMin <= 20 && WarSec <= 1200)
{
new string;
if(teamBlue == 2) {  ftext = "Yakuza"; }
else if(teamBlue == 3) {  ftext = "La Cosa Nostra"; }
else if(teamBlue == 4) {  ftext = "Grove Gang"; }
else if(teamBlue == 5) {  ftext = "Ballas Gang"; }
if(teamRed == 2) {  ztext = "Yakuza"; }
else if(teamRed == 3) {  ztext = "La Cosa Nostra"; }
else if(teamRed == 4) {  ztext = "Grove Gang"; }
else if(teamRed == 5) {  ztext = "Ballas Gang"; }
if(teamRedKills[teamRed] > teamBlueKills[Warnjiska[teamRed]])
{
format(string, 128, "INFO: War je zavrsio pobjedom organizacije %s sa %d killova - cestitke.", ztext, teamRedKills[teamRed]);
SCM(i, COLOR_GOLD, string);
}
else if(teamRedKills[teamRed] < teamBlueKills[Warnjiska[teamRed]])
{
format(string, 128, "INFO: War je zavrsio pobjedom organizacije %s sa %d killova - cestitke.", ftext, teamBlueKills[Warnjiska[teamRed]]);
SCM(i, COLOR_GOLD, string);
}
else if(teamRedKills[teamRed] == teamBlueKills[Warnjiska[teamRed]])
{
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] = 0;
teamRedKills[teamRed] = 0;
teamBlue = 0;
teamRed = 0;
Warteam = 0;
Warnjiska = 0;
TextDrawHideForPlayer(i, Warur2);
TextDrawHideForPlayer(i, Warur);
KillTimer(WarTimuska);
}
else
{
if(WarSec > 0)
{
new string;
WarSec--;
format(string, 256, "~w~%02d:%02d", WarMin,WarSec);
TextDrawSetString(Warur2, string);
}
else if(WarSec <= 0)
{
new string;
WarSec = 59;
WarMin--;
format(string, 256, "~w~%02d:%02d", WarMin,WarSec);
TextDrawSetString(Warur2, string);
}
}
}
}
}
return 1;

Sta da dodam ovdje?
Odnosno gdje taj SetTimerEx
Sadin
4
Made Man
15. Okt. 2017.
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.

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha