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: bbTamas - 2013. szeptember 21. - 15:14:52

Cím: Globális változónál nem enged értéket hozzárendelni
Írta: bbTamas - 2013. szeptember 21. - 15:14:52
Mód elején létrehoztam egy globális változót.
new 3dtext[MAX_PLAYERS][32];
Egy függvénybe hozzárendeltem egy string értéket.
Aztán egy másik függvényben nulláznám a változó értékét, vagy értéket adnák neki akkor ezt írja ki:
3dtext[playerid] = \"kutya\";
 
error 047: array sizes do not match, or destination array is too small

 
És ez miért van?
Mindent jól csináltam, értem, hogy azt írja ki, hogy túl kicsi a tömb mérete, de hát a tömb mérete megfelelõ.
Cím: Globális változónál nem enged értéket hozzárendelni
Írta: jana4 - 2013. szeptember 21. - 17:57:25
Ne használd azonosításra a \'3dtext\'-et. Valamint a helyes alkalmazási mód:
 
new Text3D: szoveg[MAX_PLAYERS][32];
Cím: Globális változónál nem enged értéket hozzárendelni
Írta: bbTamas - 2013. szeptember 21. - 18:39:24
Értem, hogy nem a legjobb változónév, de hiába írom át a változó nevét a hiba akkor is fenáll.
Pontosabban leírom a kérdést.
Létrehozok egy globális tömböt, és értéktípusként stringet adok meg.
OnDialogResponse függvény alatt egy dialoban értéket adok.
De egy másik helyen, rendelnék hozzá új értéket, vagy nulláznám.
Hiába jó a tömb mérete hiába csinálom jól akkor is ezt írja ki és nem tudom, hogy miért.
 
error 047: array sizes do not match, or destination array is too small
Cím: Globális változónál nem enged értéket hozzárendelni
Írta: Zsolesszka - 2013. szeptember 21. - 20:27:14
Ne használj változót szám érték kezdéssel, csak az angol abc betûivel kezd, max pár speciális írás jellel esetleg.
 
new 3dtext[MAX_PLAYERS][32];[/quote]
_3dtext[
t3dtext[
Cím: Globális változónál nem enged értéket hozzárendelni
Írta: bbTamas - 2013. szeptember 24. - 19:14:44
Köszönöm a választ, de az igazi probléma az, hogy létrehozok egy globális változót, és adtam neki értéket.
Viszont egy függvényben pl: szeretnék értéket adni neki:
 
globális változó neve = \'0\'; 

 
Erre ír hibát ki a fordító.
De ha egy másik változónak adok értéket, és azt rendelem hozzá, akkor is ezt a hibát írja ki a fordító.
És ötletem sincs, hogy miért írja ki ezt a hibát a fordító, mert nem tömb mérete a hiba.
Cím: Globális változónál nem enged értéket hozzárendelni
Írta: jana4 - 2013. szeptember 24. - 19:22:25
globális változó neve = 0;

 
Karakter(lánc) esetén:
 
new var[6] = \"Nulla\";
Cím: Globális változónál nem enged értéket hozzárendelni
Írta: Zsolesszka - 2013. szeptember 24. - 19:34:09
Talán ha leírnád azokat a változókat, hamarabb kapnál választ a problémádra.
Cím: Globális változónál nem enged értéket hozzárendelni
Írta: bbTamas - 2013. szeptember 24. - 19:42:01
error 047: array sizes do not match, or destination array is too small

 
Így csináltam én is, nem a változó nevével és típusával nem a gond.
Nem az a gond.
 
enum info
{
VehPlate[32],
Admin
}
pInfo[playerid][info];

 
Egy függvénybe adok neki értéke, pl:
 
pInfo[playerid][VehPlate] = \'macska\';

 
Egy másik függvényben nulláznám.
 
pInfo[playerid][VehPlate] = \'0\';

 
De nem engedi mert mindig ezt írja ki:
 
error 047: array sizes do not match, or destination array is too small
Cím: Globális változónál nem enged értéket hozzárendelni
Írta: Zsolesszka - 2013. szeptember 24. - 20:16:13
Az enum típusú változónál szokott így panaszkodni a fordító.
Használj valami eljárást erre a célra, mondjuk format-ot.
http://wiki.sa-mp.com/wiki/Format
Cím: Globális változónál nem enged értéket hozzárendelni
Írta: bbTamas - 2013. szeptember 24. - 20:33:59
ɐʞzssǝlosz Köszönöm a válaszodat, így már jó. :)
Nem gondoltam volna, hogy enum-nál ilyennek is vannak.
Mindenki kapott egy pluszt aki segített.