Započeo Balsa.
•11. Okt. 2017.War System
2,180
pregleda
18
postova
Crime Lord
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
247 / 250 XP
Početnik(0)
933
Postovi:
29
Teme:
Pridružio se:Sep. 2017
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
A ovo mi je kod komande /war
A ovo kod komande /score
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 .
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 .
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosAktivan Član
103 / 250 XP
Početnik(4)
2,282
Postovi:
120
Teme:
Pridružio se:Sep. 2017
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?
Enforcer
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
217
Postovi:
22
Teme:
Pridružio se:Okt. 2017
12. Okt. 2017.
Vidis nema mi
Sta da dodam ovdje?
Odnosno gdje taj SetTimerEx
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
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
385
Postovi:
93
Teme:
Pridružio se:Sep. 2011
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
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
Enforcer
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
217
Postovi:
22
Teme:
Pridružio se:Okt. 2017
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
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
Enforcer
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
217
Postovi:
22
Teme:
Pridružio se:Okt. 2017
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.
Sta da dodam ovdje?
Odnosno gdje taj SetTimerEx
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
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
385
Postovi:
93
Teme:
Pridružio se:Sep. 2011
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.
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