Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Balsa. poslato Oktobar 11, 2017, 15:13:27 POSLE PODNE

Naslov: War System
Poruka od: Balsa. poslato Oktobar 11, 2017, 15:13:27 POSLE PODNE
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 .

Naslov: Odg: War System
Poruka od: [FB] Jack poslato Oktobar 11, 2017, 21:48:50 POSLE PODNE
Zna li neko pls ?? Izvinite za DP al treba mi hitnooo
Naslov: Odg: War System
Poruka od: Shomyy poslato Oktobar 11, 2017, 21:52:58 POSLE PODNE
Je l' si stavio SetTimerEx kod komande war za kraj rata?
Naslov: Odg: War System
Poruka od: [FB] Jack 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
Naslov: Odg: War System
Poruka od: Shomyy poslato Oktobar 12, 2017, 11:37:15 PRE PODNE
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?
Naslov: Odg: War System
Poruka od: [FB] Jack poslato Oktobar 12, 2017, 12:31:09 POSLE PODNE
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
Naslov: Odg: War System
Poruka od: 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
Naslov: Odg: War System
Poruka od: [FB] Jack poslato Oktobar 12, 2017, 13:19:20 POSLE PODNE
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
Naslov: Odg: War System
Poruka od: Shomyy poslato Oktobar 12, 2017, 18:46:27 POSLE PODNE
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
Naslov: Odg: War System
Poruka od: delete poslato Oktobar 12, 2017, 19:15:40 POSLE PODNE
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
Naslov: Odg: War System
Poruka od: [FB] Jack poslato Oktobar 13, 2017, 18:50:53 POSLE PODNE
Ma moze li neko da mi prepravi kod i da mi odvrojava i racuna killove. Ili makar jedno od toga.
Naslov: Odg: War System
Poruka od: Łuk@ poslato Oktobar 14, 2017, 03:10:53 PRE PODNE
Smatram da je rijeseno, pa lock, ako nije, posalji pp da unlockam temu.
Naslov: Odg: War System
Poruka od: Łuk@ poslato Oktobar 15, 2017, 01:30:32 PRE PODNE
Unlockovano na zahtjev autora.
Naslov: Odg: War System
Poruka od: [FB] Jack poslato Oktobar 15, 2017, 08:35:45 PRE PODNE
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
Naslov: Odg: War System
Poruka od: Contixo poslato Oktobar 15, 2017, 10:08:08 PRE PODNE
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.
Naslov: Odg: War System
Poruka od: [FB] Jack poslato Oktobar 15, 2017, 16:43:34 POSLE PODNE
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
Naslov: Odg: War System
Poruka od: [FB] Jack poslato Oktobar 15, 2017, 20:43:13 POSLE PODNE
Zna li neko????
Naslov: Odg: War System
Poruka od: [FB] Jack poslato Oktobar 16, 2017, 18:34:54 POSLE PODNE
Rijesio sam. Hvala svima. Lock