Szerző Téma: Array-ek  (Megtekintve 668 alkalommal)

Array-ek
« Dátum: 2013. május 29. - 20:58:04 »
0 Show voters
Sziasztok!
Nekem egy olyan egyszerû kérdésem lenne, hogy létezik-e olyan array, aminek 3 \'slotja\' van.
Teszemazt példának a GF:   PlayerInfo[playerid][pInfo].
Na most a kérdésem az igazából az lenne, hogy ehhez lehet-e még rakni egy változót?
Mondjuk  Bag[playerid][bSlot][bItemID], vagy valami ilyesmit.
// Gondoltam megkérdezem, hátha valaki már járt errefele a témában. Mondjuk sokáig tartott rájönni hogy ez a gebasz a scriptembe, mivel errort nem kapok rá, és kifagyasztani se fagyasztja a szervert ha strmid-elek bele mondjuk.

Array-ek
« Válasz #1 Dátum: 2013. május 29. - 21:07:24 »
+1 Show voters
Nem teljesen világos mit akarsz tudni, de ha arra amire gondolok akkor igen írhatsz hozzá de már csak számokkal illetve definíciókkal hivatkozhatsz rá.
 

enum pInfo
{
    array[3]
};
new PlayerInfo[MAX_PLAYERS][pInfo];
//majd így hivatkozhatsz rá:
PlayerInfo[playerid][array][0] = 10;
PlayerInfo[playerid][array][1] = 20;
PlayerInfo[playerid][array][2] = 30;

Array-ek
« Válasz #2 Dátum: 2013. május 29. - 21:10:37 »
0 Show voters
Igen, igen, pontosan erre gondoltam.
Kipróbáltam, sajnos ugyanúgy nemképes beolvasni. Semmi error, semmi warning,csak simán nem olvassa be.
Apropó még egy kérdés: PlayerInfo[playerid][array][0] = 20
                                        Ilyen helyett én string tárolására gondoltam. Nem vagyok egy nagy zseni (vagy legalább is nem tapasztaltam még ilyet hogy tudjam), ilyet lehet csinálni?
Na jó, konkrétan:
 
enum itemInfo
{
iName[128],
iAmount,  // A cucc mennyisége
};
new Taska[MAX_PLAYERS][MAX_INVENTORY_ITEMS][itemInfo];

 
Van itt nekem ez.  És pl. ez a kód hogy :
 
strmid(Taska[playerid][itemtoload][iName],itemstringasload,0,strlen(itemstringasload));
//tehát pl. a 0-ás IDJü playernek, az 1. item slotjának, a nevét írná át. Elméletben. Csak hogy ez nem akar mûködni sehogysem.

 
 Nehéz kifejeznem amire gondolok sajnos, de megvalósítani így akartam. Egy háromdimenziós array kell, csak string változóval.. És itt valahogy nem tudja betölteni a 3. részbe.
Még nem sikerült ezt megoldanom sajnos, és kezdek elpártolni ennek a megoldhatóságától.
« Utoljára szerkesztve: 2013. május 29. - 22:10:28 írta Norbivar »

Array-ek
« Válasz #3 Dátum: 2013. május 30. - 09:17:29 »
0 Show voters
A strmid az mintha bugos lenne 0.3x-nél, nekem se mûködik.
Próbáld így:
 
strcat(Taska[playerid][itemtoload][iName], itemstringasload, 128);

 
vagy format-tal.

Array-ek
« Válasz #4 Dátum: 2013. május 30. - 18:07:07 »
0 Show voters
Köszi, nagyon-nagyon sokat segítettél :)
//Formattal sikerült megcsinálni, bár míg rájöttem hogy a hossznál strlen-t ilyenre nemszabad használni az is volt 2-3 crash ideje :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal