Započeo monsterking
•29. Jul 2022.• Zaključanogoto label
366
pregleda
5
postova
Hustler
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
56
Postovi:
7
Teme:
Pridružio se:Feb. 2020
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:
Deo skripte:
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Slika/video ingame problema(obavezno ako je ingame problem): link slike
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š odgovorSlika/video ingame problema(obavezno ako je ingame problem): link slike
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
442
Postovi:
44
Teme:
Pridružio se:Apr. 2021
30. Jul 2022.
ShowPlayerDialog(playerid, DIALOG_EDIT_ORG_RANKOVI
public OnPlayerText(playerid, text[])
{
new rank = GetPVarInt(playerid, "PlayerEditingOrgRank");
}
😕😕😕😕😕😕😕? zasto u onplayertext?
public OnPlayerText(playerid, text[])
{
new rank = GetPVarInt(playerid, "PlayerEditingOrgRank");
}
😕😕😕😕😕😕😕? zasto u onplayertext?
Kingpin
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,136
Postovi:
10
Teme:
Pridružio se:Maj 2015
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).
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).
Hustler
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
56
Postovi:
7
Teme:
Pridružio se:Feb. 2020
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 😄
Kingpin
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,136
Postovi:
10
Teme:
Pridružio se:Maj 2015
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
Inace lock cu ovo kao reseno
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava