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
[pawn]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]++;
}[/pawn]
A ovo mi je kod komande /war
[pawn] 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;
}[/pawn]
A ovo kod komande /score
[pawn] 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;
}[/pawn]
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
Je l' si stavio SetTimerEx kod komande war za kraj rata?
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
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?
Vidis nema mi
[pawn]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[128];
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[128];
WarSec--;
format(string, 256, "~w~%02d:%02d", WarMin,WarSec);
TextDrawSetString(Warur2, string);
}
else if(WarSec <= 0)
{
new string[128];
WarSec = 59;
WarMin--;
format(string, 256, "~w~%02d:%02d", WarMin,WarSec);
TextDrawSetString(Warur2, string);
}
}
}
}
}
return 1;[/pawn]
Sta da dodam ovdje?
Odnosno gdje taj SetTimerEx
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
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
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
Ma moze li neko da mi prepravi kod i da mi odvrojava i racuna killove. Ili makar jedno od toga.
Smatram da je rijeseno, pa lock, ako nije, posalji pp da unlockam temu.
Unlockovano na zahtjev autora.
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.
[pawn]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[128];
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[128];
WarSec--;
format(string, 256, "~w~%02d:%02d", WarMin,WarSec);
TextDrawSetString(Warur2, string);
}
else if(WarSec <= 0)
{
new string[128];
WarSec = 59;
WarMin--;
format(string, 256, "~w~%02d:%02d", WarMin,WarSec);
TextDrawSetString(Warur2, string);
}
}
}
}
}
return 1;[/pawn]
Sta da dodam ovdje?
Odnosno gdje taj SetTimerEx
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.
Rijesio sam 70% problema.
Samo mi jos ima ovo. Kod jedne orge na kraj wara uvjek pise da je x a kod druge da je pobijedila ta koja jes. Znaci kako to da resim? A ne ponavlja mi se nista dva puta no iz jedne poruke. Kad sitgnem kuci poslacu vam kodove.i objasnit detaljnjje
Zna li neko????
Rijesio sam. Hvala svima. Lock