Error 035 - MSelection

Započeo BuhaBosko, Novembar 26, 2024, 23:18:05 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Prebacivao sam se sa MSelectiona na Eselection i imam ove errore, neko da pomogne pliz ?

\pawno\include\eSelection.inc(203) : error 035: argument type mismatch (argument 3)
\pawno\include\eSelection.inc(298) : error 035: argument type mismatch (argument 3)


https://pastebin.com/Fni3yuML /// 203
https://pastebin.com/w4Y8zaTg /// 298

// Zbog relevantnih poruka o rešavanju problema, neće se ukloniti tekst autora. Molimo Vas da ubuduće koristite zvanični formular za prijavu problema radi lakšeg i bržeg rešavanja.
Poslednja Izmena: Novembar 30, 2024, 06:42:12 PRE PODNE od Dragi Razlog: Dodatak + naslov

Ovako izgleda funkcija:
PlayerTextDrawSetString(playerid, textdraw, const string[]);

model[g_eMenuModelText] mora biti tipa const string[]. Ako je to neki drugi tip (npr. broj, niz koji nije označen kao const, itd.), dobićeš tu grešku.

Uveri se da g_MenuItemText[playerid][count] takođe vraća ispravan niz tipa const string[]. Najverovatnije da se zbog ovoga dešava greška.

Proveri model definiciju.

Ne znam, uveri se da g_eMenuModelText vraća validan indeks u opsegu koji je definisan za model. Na primer, ako MAX_MODELS ima vrednost 10, g_eMenuModelText mora biti između 0 i 9.

P.S. Razmisli o debuggingu. Zamisli da postoji nekoliko stubova za rešavanje problema. E, jedan od njih predstavlja debugging, ispis grešaka u konzoli.
Poslednja Izmena: Novembar 27, 2024, 00:40:20 PRE PODNE od Dragi

Izvini, u 2. paragrafu nisam mislio na g_MenuItemText, to je ID TextDrawa, nego na treći argument model[g_eMenuModelText].


Problem se verovatno nalazi u liniji gde se koristi PlayerTextDrawSetString sa g_MenuHeaderText[playerid]. Postoje nekoliko potencijalnih problema koji mogu izazvati grešku:

g_MenuHeaderText nije pravilno inicijalizovan ili kreiran za playerid.

Proveri da li je g_MenuHeaderText[playerid] validan (npr. da li je TextDraw kreiran za tog igrača pre nego što pokušavaš da postaviš tekst).
header niz nije validan ili ima nedozvoljene vrednosti.

Uveri se da header sadrži odgovarajuću vrednost, bez null pointer-a ili grešaka u formatu.
Indeks playerid nije validan.

Proveri da li playerid spada u opseg igrača koji su povezani na server.
PlayerTextDrawSetString možda ne podržava prazan string.

Ako je header prazan string (""), probaj da ga postaviš na neku podrazumevanu vrednost.
Popravka koda sa dodatnim proverama:
Evo ispravljenog koda sa dodatnim proverama da se izbegnu potencijalne greške:
static stock ShowModelSelectionMenuTextDraws(playerid, const header[])
{
    // Uništavanje prethodnih TD-ova
    DestroyModelSelectionPlayerTDs(playerid);
    CreateModelSelectionPlayerTDs(playerid);

    for (new Iter:i = list_iter(g_MenuModels[playerid]), count = 0, model[g_eMenuModelData]; iter_inside(i); iter_move_next(i))
    {
        if (count >= MAX_ITEM_PER_PAGE) break;

        iter_get_arr(i, model);
        SetModelSelectionModelBox(playerid, count, model);
        count++;
    }

    // Provera da li postoji igračeva stranica
    if (g_MenuPageNumber[playerid] != INVALID_TEXT_DRAW)
    {
        new page[8];
        format(page, sizeof(page), "1/%d", (list_size(g_MenuModels[playerid]) / MAX_ITEM_PER_PAGE) + 1);
        PlayerTextDrawSetString(playerid, g_MenuPageNumber[playerid], page);
    }

    // Provera validnosti header-a i g_MenuHeaderText[playerid]
    if (g_MenuHeaderText[playerid] != INVALID_TEXT_DRAW && header[0] != EOS)
    {
        PlayerTextDrawSetString(playerid, g_MenuHeaderText[playerid], header);
        PlayerTextDrawShow(playerid, g_MenuHeaderText[playerid]);
    }

    // Prikaz ostalih TD-ova
    PlayerTextDrawShow(playerid, g_MenuPageNumber[playerid]);
    TextDrawShowForPlayer(playerid, g_MenuRightArrow);
    TextDrawShowForPlayer(playerid, g_MenuLeftArrow);
    TextDrawShowForPlayer(playerid, g_MenuBackground);
    TextDrawShowForPlayer(playerid, g_MenuTopBanner);
    TextDrawShowForPlayer(playerid, g_MenuBottomBanner);
    TextDrawShowForPlayer(playerid, g_MenuCloseButton);

    SelectTextDraw(playerid, -1);
}
Opet testiraj kod za svaki slučaj.
ƘƛƧƤЄƦƧƘƳ

Original kod je savršen od tog include-a i nema potrebe da se edituje.

Rešili smo preko Discorda ovo. Za one kojima se isto desi, krakto rečeno. Nemojte apdejtovati eSelection u Dimijevom kodu i rešen problem, čovek koristi rewritovan eSelection i nije čudo zašto ne radi.

Citat: Dragi poslato Novembar 27, 2024, 18:23:07 POSLE PODNEOriginal kod je savršen od tog include-a i nema potrebe da se edituje.

Rešili smo preko Discorda ovo. Za one kojima se isto desi, krakto rečeno. Nemojte apdejtovati eSelection u Dimijevom kodu i rešen problem, čovek koristi rewritovan eSelection i nije čudo zašto ne radi.
uff, mogu zamisliti...