goto label

Započeo monsterking
29. Jul 2022. Zaključano
345
pregleda
5
postova
monsterking
3
Hustler
29. Jul 2022.
Problem(error/warning): Kako mogu da koristim goto na globalnom nivou (da skoči u drugi callback)? Ako može...
Ovo trenutno mi daje error:
(1099) : error 019: not a label: "rankedit"

Deo skripte:
public OnPlayerText(playerid, text[])
{
  new rank = GetPVarInt(playerid, "PlayerEditingOrgRank");
  if(rank > 0)
  {
          if(strlen(text) < 3 || strlen(text) > MAX_ORG_RANK_NAME)
          return ERROR(playerid, " ime ranka mora biti izmedju 3 i "#MAX_ORG_RANK_NAME" karaktera");
      new org = GetPVarInt(playerid, "PlayerEditingOrg");
      SCMF(playerid, COLOR_GOLD, "%s | Ime ranka %s[%d] promijenjeno u %s", OrgInfo, OrgRankovi, rank, text);
      strmid(OrgRankovi, text, 0, strlen(text), MAX_ORG_RANK_NAME);
      goto rankedit;
  }
        new rankskin = GetPVarInt(playerid, "PlayerEditingOrgSkin");
  if(rankskin > 0)
  {
      new skin = strval(text);
      if(skin < 0 || skin == 74 || skin > 299)
          return ERROR(playerid, " skinovi mogu biti 0-73 i 75-299 ");
        new org = GetPVarInt(playerid, "PlayerEditingOrg");
      SCMF(playerid, COLOR_GOLD, "%s | Skin ranka %s[%d] promijenjen u %d", OrgInfo, OrgRankovi, rankskin, skin);
      OrgSkinovi = skin;
      goto skinedit;
  }
 
  return 0;
} //linija 1099

// Ovo je u odgovorima na dijaloge
case 5:
{
  rankedit:
  {
      format(string, sizeof(string), "1. %s\n2. %s\n3. %s\n4. %s\n5. %s\n6. %s", OrgRankovi, OrgRankovi, OrgRankovi, OrgRankovi, OrgRankovi, OrgRankovi);
      ShowPlayerDialog(playerid, DIALOG_EDIT_ORG_RANKOVI, DIALOG_STYLE_LIST, "Promjena rankova", string, "Odabir", "Odustani");
  }
}
case 6:
{
    skinedit:
    {
      format(string, sizeof(string), "%d\n%d\n%d\n%d\n%d\n%d", OrgSkinovi, OrgSkinovi, OrgSkinovi, OrgSkinovi, OrgSkinovi, OrgSkinovi);
      ShowPlayerDialog(playerid, DIALOG_EDIT_ORG_SKINOVI, DIALOG_STYLE_LIST, "Promjena skinova", string, "Odabir", "Odustani");
    }
}


Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Vaš odgovor

Slika/video ingame problema(obavezno ako je ingame problem): link slike
Dime123
4
Made Man
30. Jul 2022.
ShowPlayerDialog(playerid, DIALOG_EDIT_ORG_RANKOVI

public OnPlayerText(playerid, text[])
{
new rank = GetPVarInt(playerid, "PlayerEditingOrgRank");
}
😕😕😕😕😕😕😕? zasto u onplayertext?
NegativeIQ
5
Kingpin
30. Jul 2022.
Ovako prvo da kazem, goto je najgora naredba koja je ikad izmisljena u programiranju a u sustini je jump instrukcija. Ironicno ali izgleda da pawn ne dozvoljava jump izvan opsega pa zato i dobijas da nije definisan label. A ne dozvoljava zato da ne bi dolazilo do memory leakova. Inace goto naredba ti je nepotrebna ako programiras kao covek.

To receno, vidim da koristis OnPlayerText bez ikakvih provera za ono sta je uneto i slicno. Verovatno zelis da nakon komande ili sta vec igrac direktno u chat navede skin id ili nesto slicno...Moj savet je da koristis ko i svi mi ovde komande za takve stvari, ili eventualno dialoge. Ako se odlucis za komande, takodje preporucujem da koristis neki od command processora ZCMD, iZCMD, y_commands ili nesto slicno. Poenta je da ti svaka komanda u sustini bude jedna funkcija i da nemas spagetti kod u OnPlayerCommandText.

Ako zelis da se nesto moze odraditi na vise nacina (komanda, dialog, textdraw...), najpametnije je da napravis funkciju koju ces pozivati da ti handle sve to. Znaci ti u dialogu i komadi saniras i validujes input, i onda samo pozoves tu funkciju. Tako neces ponavljati kod (sto koliko vidim sada pokusavas da uradis).
monsterking
3
Hustler
30. Jul 2022.
Upravu si, prva mi je ideja naravno bila da prikažem input style dijalog u koji bih kucao i najlogičnija je opcija.. sad kad pogledam stvarno ne znam kako mi je ovo palo na pamet i zašto.. valjda da probam nešto što nisam do sad radio iako je nelogično i nepotrebno. Eto, naučio sam bar nešto u vezi pawn-a. Uradiću ovo unutar dijaloga jednostavno, preglednije i jednostavnije. Hvala, može lock 😄
NegativeIQ
5
Kingpin
30. Jul 2022.
Inace ovo ti nije samo u vezi pawn, ovo ti je u svakom jeziku koji ima goto funkciju.
Inace lock cu ovo kao reseno

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha