GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: HungaryUndead - 2016. December 05. - 21:27:32

Cím: Nem ad értéket a változónak
Írta: HungaryUndead - 2016. December 05. - 21:27:32
Csáó!
Jelenleg egy telefonos rendszert írok, eddig minden jól ment, viszont most amikor felveszi a player a telefont, akkor a változó értéke nem változik meg 1-re. Én nem látok benne hibát (és a fordító se), viszont mégse ad neki értéket.
Kód:
   if(dialogid == 73){    if(!response) return cmd_me(playerid,\"leteszi a telefont\");    new id = HivottID[playerid];    InPhone[playerid] = 1; //Itt kellene megváltoznia 1-re    InPhone[id] = 1;    Me(playerid,\"felveszi a telefont\");    SendClientMessage(id,blue,\"[PRPG - Mobil] \"hexfeher\"Felvették a telefont!\");    format(PhoneDialog[playerid],100,\"Beszélgetés kezdete: %s\\n\",GetDateTime());    format(PhoneDialog[id],100,\"Beszélgetés kezdete: %s\\n\",GetDateTime());    new cim1[64], cim2[64];    format(cim1,64,\"\"kek2\"Csatlakozva hozzá: %s\",pinfo[playerid][Phone]);    format(cim2,64,\"\"kek2\"Csatlakozva hozzá: %s\",pinfo[id][Phone]);    ShowPlayerDialog(playerid,74,DIALOG_STYLE_MSGBOX,cim2,PhoneDialog[playerid],\"Válasz\",\"Kilép\");    ShowPlayerDialog(id,74,DIALOG_STYLE_MSGBOX,cim1,PhoneDialog[id],\"Válasz\",\"Kilép\");}
Cím: Nem ad értéket a változónak
Írta: Memphis - 2016. December 05. - 22:38:54
Írj debugokat, a változókra. Például amivel baj van minden változó állításnál kiírod a playernek a változó értékét. Pl.:
wtf[playerid] = 1;
format(string, sizeof(string), \"DEBUG: wtf[playerid] = %d\", wtf[playerid]);
SCM(..);
De hogy még most is mennyien foglalkoztok ezzel a bullshit pawn nyelvel. Annyira problémás az egész. Mondjuk én azért ábrándultam ki belőle mert sok helyen megvan kötve a kezed tök feleslegesen.
Cím: Nem ad értéket a változónak
Írta: HungaryUndead - 2016. December 07. - 18:07:01
Csináltam ilyet, és miután lefutott a kód, a változónak nem volt értéke (még 0 sem) :D
Cím: Nem ad értéket a változónak
Írta: divkn - 2016. December 07. - 18:56:57
Második próbálkozás...
Attól függ hogy milyen leírót adsz meg egy változó értékének kiírásához. Karakter (%c) és/vagy karakterlánc (%s) leíró esetén a konzol vagy üzenőfal nem fog kiírni semmit, viszont a %d/%i leírónak már ki kéne írnia a változó értékét egész számban, kivéve ha nincs piszkálva a format/printf funkciók paraméterei vagy a PAWN operátorok, amit erősen kétlek.
Esetleg győződj meg arról hogy a tömb mérete megfelelő-e játékosok számára, viszont erről konzol értesít is téged hogy a tömb átlépte az indexszám határt, ezért azt a folyamatot átugorja, vagy változtasd meg a tömb nevét valami másra vagy egészítsd ki, hátha nem ütközik egy más deklarációba.
Cím: Nem ad értéket a változónak
Írta: HungaryUndead - 2016. December 11. - 22:50:18
Megváltoztattam a változó nevét, probáltam bool, string és intiger típusú változóként is, de nem. Arra viszont rájöttem, hogy a dialoggal van valami probléma, mivel paranccsal meg tudom változtatni, csak az OnDialogResponse callback alatt nem máködik.