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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Leírások/Útmutatók => A témát indította: GroX - 2010. március 25. - 21:39:56

Cím: [TuT] Enum használata
Írta: GroX - 2010. március 25. - 21:39:56
Nos ez kb a 3. tutom.
Régen láttam ilyesféle tutot a forumon valószínuleg törölve lett.
Egy tároló használatát fogom leírni. Ami a fájlkezelést is kényelmesebbé teheti.
Eloször hozzuk létre:
 

enum Info //Mátrix létrehozása
{
Name[MAX_PLAYER_NAME], //Név tároló
Money, //Pénz tároló
Score, //Pont tároló
}; //Lezárjuk

 
A 3 tároló ezen belül lehet akármi, ha lebegopontos értéket akarunk beilleszteni akkor Float: elotag kell, ha esetleg logikai változót akarsz (bár nem ajánlom) akkor bool:
Lehet több tároló is nem csak 3.
Nos most egy tömböt hozzunk létre amivel felhasználhatjuk ezt az egészet:
 
new pInfo[MAX_PLAYERS][info];

 
A MAX_PLAYERS a méretet jelenti, az Info résszel beágyazzuk a tömbbe a mátrixot. Általában használatkor a MAX_PLAYERS helyére a játékos azonosító kerül, vagy ha mindenkire vonatkozzon akkor a ciklusban létrehozott azonosító.
Dolgozzunk vele egy kicsit (Egy kis fájlba mentés):
 
public OnPlayerConnect(playerid)
{
new str[128]; //Karakterlánc létrehozása
new player[MAX_PLAYER_NAME]; //Változó a játékos nevéhez
GetPlayerName(playerid,player,sizeof(player)); //Lekérdezzük a játékos nevét
format(str,sizeof(str),\"/account/%s.ini\",player); //Megformázzuk a karakterláncot a játékos fájlának a helyére
pInfo[playerid][score] = dini_Int(str,\"Score\"); //A Score tárolót beállítjuk a fájlban tárolt értékre
pInfo[playerid][Money] = dini_Int(Account(playerid),\"Money\"); //A Money tárolót beállítjuk a fájlban tárolt értékre
return 1;
}

 
Persze nem csak így lehet használni, lehet sokféle értéket megadni a tárolónak:
 
pInfo[playerid][Money] = 5000;

 (Csak példának)
Ez a tároló még ráadásul abban is jobb mint az átlagos lekérdezés, hogy el is tárolja rendesen, nem csak a függvényen/cikluson belül (Ugyebár elveszik az érték, a függvény végén, ha csak átlagosan lekérdezzük, de ennél nem.).
Remélem azért valamennyire értheto ;)
Cím: [TuT] Enum használata
Írta: Depi - 2010. március 25. - 21:47:32
Ezt már eddig is tudtam használni,de hasznos és értheto Tutoriál,gratulálok  :)
Cím: [TuT] Enum használata
Írta: TengeriMalac - 2010. március 26. - 06:36:20
enum Info //Mátrix létrehozása
{
Name, //Név tároló
Money, //Pénz tároló
Score, //Pont tároló
}; //Lezárjuk

 
Az utolsó mellé nem kell \",\" \"vesszo\"
Tehát
 
enum Info //Mátrix létrehozása
{
Name, //Név tároló
Money, //Pénz tároló
Score //Pont tároló
}; //Lezárjuk
Cím: [TuT] Enum használata
Írta: GroX - 2010. március 26. - 13:06:13
Idézetet írta: TengeriMalac date=1269581780\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1099\" data-ipsquote-contentclass=\"forums_Topic

enum Info //Mátrix létrehozása
{
Name, //Név tároló
Money, //Pénz tároló
Score, //Pont tároló
}; //Lezárjuk

 
Az utolsó mellé nem kell \",\" \"vesszo\"
Tehét
 
enum Info //Mátrix létrehozása
{
Name, //Név tároló
Money, //Pénz tároló
Score //Pont tároló
}; //Lezárjuk

 

Igaz nem kell de bajt sem okoz. :)
ALIEN, és hell kösz :D
Cím: [TuT] Enum használata
Írta: Vampesz - 2010. március 26. - 16:06:00
SZép TuT lett grat :)
Cím: [TuT] Enum használata
Írta: Csabesz - 2010. április 04. - 11:52:24
Észre vettem egy apró hibát.
A név tárolónak nem adtál értéket, így nem fog tárolásra kerülni a játékos neve.
 

enum Info //Mátrix létrehozása
{
Name, //Név tároló
Money, //Pénz tároló
Score //Pont tároló
};  //Lezárjuk

 
Helyett:
 

enum Info //Mátrix létrehozása
{
Name[MAX_PLAYER_NAME], //Név tároló
Money, //Pénz tároló
Score //Pont tároló
};  //Lezárjuk

 
Kérlek javítsd!  :shy:
Amúgy szép leírás lenne.  ;)
Cím: [TuT] Enum használata
Írta: GroX - 2010. április 04. - 15:17:46
Javítva. :)
El is felejtettem...