Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Hunter.# poslato Jun 10, 2019, 15:43:04 POSLE PODNE

Naslov: Pomoc oko zauzimanje zone
Poruka od: Hunter.# poslato Jun 10, 2019, 15:43:04 POSLE PODNE
Problem(error/warning): Kad se zona vec zauzima neko moze da dodje i da kuca ponovo /zauzmi i zona da se zauzima i da se zbaguje ili kad onaj koji zauzima moze da kuca vise puta /zauzmi i da se ubaguje ceo chat,kako da postavim da kad neka zona se zauzima da nemoze ponovo da se kuca /zauzmi i da se zauzme
Deo skripte: [pawn]YCMD:zauzmi(playerid, params[], help)
{
   #pragma unused help
   new sat, minut, sekund;
   gettime(sat, minut, sekund);
   if(sat >= 3 && sat <= 7) return SCM(playerid, -1, ""SPLAVA"* Greska "BELA"Ne mozete zauzimati teritorije izmedju 7-3h!");
   new gunID = GetPlayerWeapon(playerid);
   new gunAmmo = GetPlayerAmmo(playerid);
   if(gunID != 0 && gunAmmo != 0)
   {
   }
   else return SCM(playerid, -1, ""SPLAVA"* Greska "BELA"Morate drzati oruzje u ruci kako biste zapoceli osvajanje teritorije!");
   if(PlayerInfo[playerid][pClan] == 1 || PlayerInfo[playerid][pLider] == 1 || PlayerInfo[playerid][pLider] == 7 || PlayerInfo[playerid][pClan] == 7) return SCM(playerid, -1, ""SPLAVA"* Greska "BELA"Vi ste clan drzavne organizacije, vi morate da vodite red oko igraca!");
   if(PlayerInfo[playerid][pClan] == 6 || PlayerInfo[playerid][pLider] == 6 || PlayerInfo[playerid][pClan] == 8 || PlayerInfo[playerid][pLider] == 8 || PlayerInfo[playerid][pClan] == 10 || PlayerInfo[playerid][pLider] == 10 || PlayerInfo[playerid][pClan] == 0 || PlayerInfo[playerid][pLider] == 0 ||
   PlayerInfo[playerid][pClan] == 14 || PlayerInfo[playerid][pLider] == 14 || PlayerInfo[playerid][pClan] == 18 || PlayerInfo[playerid][pLider] == 18) return SCM(playerid,SVETLOPLAVA,"Niste clan bande/mafije.");
   for(new id = 0; id < sizeof(GZ); id++)
   {
      if(IsPlayerInRangeOfPoint(playerid, 3.0, GZ[id][gPickupx], GZ[id][gPickupy], GZ[id][gPickupz]))
      {
         new string[126];
         new clan = PlayerInfo[playerid][pClan];
         new lider = PlayerInfo[playerid][pLider];
         if(GZ[id][zonaTeam] == 1)
         {
            if(clan == 2 || lider == 2) //----The Vinci Family
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 2)
         {
            if(clan == 3 || lider == 3) //----Black Dragon Triads
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 3)
         {
            if(clan == 4 || lider == 4) //----Groove Street Family
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 4)
         {
            if(clan == 5 || lider == 5) //----Ballas
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 5)
         {
            if(clan == 9 || lider == 9) //----Condor
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 6)
         {
            if(clan == 10 || lider == 10) //----Hitman
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 7)
         {
            if(clan == 11 || lider == 11) //----Blue Lagoon
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 8)
         {
            if(clan == 12 || lider == 12) //---- Vagos Gang
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 9)
         {
            if(clan == 13 || lider == 13) //----Da Naga Boys
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 10)
         {
            if(clan == 15 || lider == 15) //----Yakuza
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 11)
         {
            if(clan == 17 || lider == 17) //----Black Cobra Corporation
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 12)
         {
            if(clan == 19 || lider == 19) //----DeathRow
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 13)
         {
            if(clan == 20 || lider == 20) //----Russian Mafia
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 14)
         {
            if(clan == 21 || lider == 21) //----Gucci Gang
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 15)
         {
            if(clan == 22 || lider == 22) //----The Escobar Cartel
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         if(GZ[id][zonaTeam] == 16)
         {
            if(clan == 23 || lider == 23) //----Big Cartel Bulls
            {
               SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ne mozete zauzimati svoju teritoriju!");
               return 1;
            }
         }
         zonaid[playerid] = id;
         zonatime[playerid] = 300; //10min
         zonas[playerid] = 60;
         zonatimer[playerid] = SetTimerEx("ZonaZauzmi", 1000, true, "i", playerid);
         SCM(playerid,-1,""LeGeNDaJeCar"** ZAPOCEO SI ZAUZIMANJE TERITORIJE. "BELA"Moras ostati ziv sljedecih "CRVENA"5 minuta "BELA"kako bi je osvojio.");
         SCM(playerid,-1,""LeGeNDaJeCar"**** "BELA"Ne smijes se previse udaljiti od mjesta zauzimanja, jer ce zauzimanje biti prekinuto. "CRVENA"*****");
forward ZonaZauzmi(playerid);//na dnu skirpte ubaciti
public ZonaZauzmi(playerid) //na dnu skirpte ubaciti
{
   if(!IsPlayerInRangeOfPoint(playerid, 10.0, GZ[zonaid[playerid]][gPickupx], GZ[zonaid[playerid]][gPickupy], GZ[zonaid[playerid]][gPickupz]))
   {
      new id = zonaid[playerid];
      GangZoneStopFlashForAll(ZonaID[id]);
      PlayerTextDrawHide(playerid, klecanjetd[playerid]);
      zonaid[playerid] -= 1;
      zonatime[playerid] -= 1;
      KillTimer(zonatimer[playerid]);
      SCM(playerid, -1 ,""LeGeNDaJeCar"* Greska: "BELA"Niste uspeli da zauzmete teritoriju, udaljili ste se od mesta zauzimanja!");
      return 1;
   }
   zonatime[playerid] -= 1;
   if(zonatime[playerid] > 240 && zonatime[playerid] < 301)
   {
      if(zonas[playerid] == 1)
      {
         zonas[playerid] = 60;
      }
      zonas[playerid] -= 1;
      new text2[126];
      format(text2, sizeof(text2), "Zauzimanje u toku: 04:%d.",zonas[playerid]);
      PlayerTextDrawSetString(playerid,klecanjetd[playerid], text2);
      PlayerTextDrawShow(playerid, klecanjetd[playerid]);
   }
   if(zonatime[playerid] > 180 && zonatime[playerid] < 240)
   {
      if(zonas[playerid] == 1)
      {
         zonas[playerid] = 60;
      }
      zonas[playerid] -= 1;
      new text2[126];
      format(text2, sizeof(text2), "Zauzimanje u toku: 03:%d.",zonas[playerid]);
      PlayerTextDrawSetString(playerid,klecanjetd[playerid], text2);
      PlayerTextDrawShow(playerid, klecanjetd[playerid]);
   }
   if(zonatime[playerid] > 120 && zonatime[playerid] < 180)
   {
      if(zonas[playerid] == 1)
      {
         zonas[playerid] = 60;
      }
      zonas[playerid] -= 1;
      new text2[126];
      format(text2, sizeof(text2), "Zauzimanje u toku: 02:%d.",zonas[playerid]);
      PlayerTextDrawSetString(playerid,klecanjetd[playerid], text2);
      PlayerTextDrawShow(playerid, klecanjetd[playerid]);
   }
   if(zonatime[playerid] > 60 && zonatime[playerid] < 120)
   {
      if(zonas[playerid] == 1)
      {
         zonas[playerid] = 60;
      }
      zonas[playerid] -= 1;
      new text2[126];
      format(text2, sizeof(text2), "Zauzimanje u toku: 01:%d.",zonas[playerid]);
      PlayerTextDrawSetString(playerid,klecanjetd[playerid], text2);
      PlayerTextDrawShow(playerid, klecanjetd[playerid]);
   }
   if(zonatime[playerid] > 0 && zonatime[playerid] < 60)
   {
      if(zonas[playerid] == 1)
      {
         zonas[playerid] = 60;
      }
      zonas[playerid] -= 1;
      new text2[126];
      format(text2, sizeof(text2), "Zauzimanje u toku: 00:%d.",zonas[playerid]);
      PlayerTextDrawSetString(playerid,klecanjetd[playerid], text2);
      PlayerTextDrawShow(playerid, klecanjetd[playerid]);
   }
   if(zonatime[playerid] < 1)
   {
      PlayerTextDrawHide(playerid, klecanjetd[playerid]);
      SCM(playerid,-1,"Uspesno ste zauzeli ovu zonu!");
      KillTimer(zonatimer[playerid]);
      new clan = PlayerInfo[playerid][pClan];
      new lider = PlayerInfo[playerid][pLider];
      new id = zonaid[playerid];
      GangZoneStopFlashForAll(ZonaID[id]);
      new string[256];
      new sttatus[64];
      if(GZ[id][zonaTeam] == 1) { sttatus = "The Vinci Family"; }
      else if(GZ[id][zonaTeam] == 2) { sttatus = "Black Dragon Triads"; }
      else if(GZ[id][zonaTeam] == 3) { sttatus = "Groove Street Family"; }
      else if(GZ[id][zonaTeam] == 4) { sttatus = "Ballas"; }
      else if(GZ[id][zonaTeam] == 5) { sttatus = "Condor"; }
      else if(GZ[id][zonaTeam] == 6) { sttatus = "Hitman"; }
      else if(GZ[id][zonaTeam] == 7) { sttatus = "Blue Lagoon"; }
      else if(GZ[id][zonaTeam] == 8) { sttatus = "Vagos Gang"; }
      else if(GZ[id][zonaTeam] == 9) { sttatus = "Da Naga Boys"; }
      else if(GZ[id][zonaTeam] == 10) { sttatus = "Yakuza"; }
      else if(GZ[id][zonaTeam] == 11) { sttatus = "Black Cobra Corporation"; }
      else if(GZ[id][zonaTeam] == 12) { sttatus = "DeathRow"; }
      else if(GZ[id][zonaTeam] == 13) { sttatus = "Russian Mafia"; }
      else if(GZ[id][zonaTeam] == 14) { sttatus = "Gucci Gang"; }
      else if(GZ[id][zonaTeam] == 15) { sttatus = "The Escobar Cartel"; }
      else if(GZ[id][zonaTeam] == 16) { sttatus = "Big Cartel Bulls"; }
      if(PlayerInfo[playerid][pClan] > 0)
      {
         format(string,sizeof(string),"{0A9DC9}#Obavestenje: Vasa organizacija je prosirila svoju vladavinu na jos jednu teritoriju. Clan %s je zauzeo teritoriju koju je kontrolisala organizacija %s i dobio 5000$.",GetName(playerid),sttatus);
         SendFamilyMessage(PlayerInfo[playerid][pClan],-1,string);
      }
      else
      {
         format(string,sizeof(string),"{0A9DC9}#Obavestenje: Vasa organizacija je prosirila svoju vladavinu na jos jednu teritoriju. Clan %s je zauzeo teritoriju koju je kontrolisala organizacija %s i dobio 5000$.",GetName(playerid),sttatus);
         SendFamilyMessage(PlayerInfo[playerid][pLider],-1,string);
      }[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): //
Naslov: Odg: Pomoc oko zauzimanje zone
Poruka od: FaLLeN poslato Jun 10, 2019, 15:52:21 POSLE PODNE
Prosto je;

Kreiraš varijablu za svaku zonu ( ubaciš unutar enuma, mape il šta već koristiš ) i kada se zona zauzima stavis na true i ako je true onda nemoj dozvolit komandu, eazy as that :D
Naslov: Odg: Pomoc oko zauzimanje zone
Poruka od: Hunter.# poslato Jun 10, 2019, 15:59:18 POSLE PODNE
Citat: FaLLeN poslato Jun 10, 2019, 15:52:21 POSLE PODNE
Prosto je;

Kreiraš varijablu za svaku zonu ( ubaciš unutar enuma, mape il šta već koristiš ) i kada se zona zauzima stavis na true i ako je true onda nemoj dozvolit komandu, eazy as that :D
NPR OVAKO:
[pawn]if(GZ[id][gPreuzeto] > 0) return SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ova teritorija je nedavno zauzeta, pricekajte malo!");
         GZ[id][gPreuzeto] = 5;[/pawn]
Naslov: Odg: Pomoc oko zauzimanje zone
Poruka od: FaLLeN poslato Jun 10, 2019, 16:02:29 POSLE PODNE
Zašto = 5?

[pawn]new gzZauzeta[MAX_ZONES];[/pawn]

Ovo kada krene da zauzima:

[pawn]gzZauzeta[zonaid] += gettime() + koliko_sekundi_zelis_da_se_ne_moze_zauzimati;[/pawn]

I ovo za proveru:

[pawn]if(gettime() < gzZauzeta[zonaid]) return SCM(playerid, -1, ""LeGeNDaJeCar"* Greska "BELA"Ova teritorija je nedavno zauzeta, pricekajte malo!");[/pawn]

EDIT: Ovo je samo primer i radi i kada igrac samo krene da zauzima ako tako namestis, ne i ako je uspeo ( tj sekunde ce krenut od kada je poceo ne od kada je zavrsio ) :D
Naslov: Odg: Pomoc oko zauzimanje zone
Poruka od: // lestra poslato Jun 10, 2019, 21:50:23 POSLE PODNE
Eo vako
Prvo dodaj enum - pZauzima,
Drugo dodaj pod OnPlayerConnect - PlayerInfo[playerid][pZauzima] = 0;
Trece dodaj pod OnPlayerDissconect - PlayerInfo[playerid][pZauzima] = 0; //kod prekidanja zauzimanja stavi
Cetvrto dodaj pod OnPlayerDeath - PlayerInfo[playerid][pZauzima] = 0; //kod prekidanja zauzimanja kad umre igrac
Peto dodaj pod cmd:zauzmi - if(PlayerInfo[playerid][pZauzima] == 1) return SCM(playerid, -1, ""CRVENA"[ZONA]"BELA" Ova zona se vec napada od neke bande/mafije!");
Eto ti ako budes imao errora i warninga javi se!
Naslov: Odg: Pomoc oko zauzimanje zone
Poruka od: FaLLeN poslato Jun 10, 2019, 22:03:59 POSLE PODNE
Citat: Aggressive poslato Jun 10, 2019, 21:50:23 POSLE PODNE
Eo vako
Prvo dodaj enum - pZauzima,
Drugo dodaj pod OnPlayerConnect - PlayerInfo[playerid][pZauzima] = 0;
Trece dodaj pod OnPlayerDissconect - PlayerInfo[playerid][pZauzima] = 0; //kod prekidanja zauzimanja stavi
Cetvrto dodaj pod OnPlayerDeath - PlayerInfo[playerid][pZauzima] = 0; //kod prekidanja zauzimanja kad umre igrac
Peto dodaj pod cmd:zauzmi - if(PlayerInfo[playerid][pZauzima] == 1) return SCM(playerid, -1, ""CRVENA"[ZONA]"BELA" Ova zona se vec napada od neke bande/mafije!");
Eto ti ako budes imao errora i warninga javi se!
O moj bože kastrirajte me na mestu.

I šta onda da loopuje kroz sve igrače ako neko drugi hoće da zauzme?
Enum? Za? Nauči strukturu enuma i za šta se koristi!
1 i 0?! bool je single cell ... !
Logičnije je svakako da kreira funkciju nego da resetuje var na nulu tj na false i ovaj sistem funkcionira tako da igrač čim izaÄ'e iz zone stopa zauzimanje ako se dobro sećam tkd nema potrebe da li igrač već zauzima...

NE slušaj citirani post...

Za promenu nauči osnove i ne cimaj nas za svaku glupost, nećemo ti uvek na tacni davati stvari !
Naslov: Odg: Pomoc oko zauzimanje zone
Poruka od: // lestra poslato Jun 10, 2019, 22:06:52 POSLE PODNE
Citat: FaLLeN poslato Jun 10, 2019, 22:03:59 POSLE PODNE
O moj bože kastrirajte me na mestu.

I šta onda da loopuje kroz sve igrače ako neko drugi hoće da zauzme?
Enum? Za? Nauči strukturu enuma i za šta se koristi!
1 i 0?! bool je single cell ... !
Logičnije je svakako da kreira funkciju nego da resetuje var na nulu tj na false i ovaj sistem funkcionira tako da igrač čim izaÄ'e iz zone stopa zauzimanje ako se dobro sećam tkd nema potrebe da li igrač već zauzima...

NE slušaj citirani post...

Za promenu nauči osnove i ne cimaj nas za svaku glupost, nećemo ti uvek na tacni davati stvari !
Pa pomozi mu ti onda ako mislis da znas i pravis se pametan
Naslov: Odg: Pomoc oko zauzimanje zone
Poruka od: __vedran.xyz77 poslato Jun 11, 2019, 01:24:42 PRE PODNE
Citat: Aggressive poslato Jun 10, 2019, 22:06:52 POSLE PODNE
Pa pomozi mu ti onda ako mislis da znas i pravis se pametan
Pa Fallen je upravu i napisao je kod kako treba ne znam zasto se javljas, u drugoj temi trazis pomoc a ovde se pravis pametan...  ::)
Naslov: Odg: Pomoc oko zauzimanje zone
Poruka od: Hunter.# poslato Jun 11, 2019, 10:45:42 PRE PODNE
Ljudi ovako stavio sam post neko da mi pomogne jer mi je potrebna pomoc a ne da se svadjate!
Naslov: Odg: Pomoc oko zauzimanje zone
Poruka od: FaLLeN poslato Jun 11, 2019, 11:36:24 PRE PODNE
Citat: Legend.. poslato Jun 11, 2019, 10:45:42 PRE PODNE
Ljudi ovako stavio sam post neko da mi pomogne jer mi je potrebna pomoc a ne da se svadjate!
A da ti naucis one najosnovnije osnove jebenog skriptanja?
Ubacujes tu neke sisteme vrv ces sutra pricati da si SILNI SKRIPTER jer si ti kao uradio mod tj pokrao tudje sisteme a jebeni bool var ne znas da kreiras? Jesi umobolestan?

https://wiki.open.mp
Naslov: Odg: Pomoc oko zauzimanje zone
Poruka od: Hunter.# poslato Jun 11, 2019, 12:05:30 POSLE PODNE
Citat: FaLLeN poslato Jun 11, 2019, 11:36:24 PRE PODNE
A da ti naucis one najosnovnije osnove jebenog skriptanja?
Ubacujes tu neke sisteme vrv ces sutra pricati da si SILNI SKRIPTER jer si ti kao uradio mod tj pokrao tudje sisteme a jebeni bool var ne znas da kreiras? Jesi umobolestan?

https://wiki.open.mp
Upravu si da ne znam da napravim ni bool i takve stvari ali bar pokusavam da naucim i zato mi je potrebna pomoc zato sto ne znam