Per-player variable system" ili skraceno "PVar" je nova metoda stvaranja varijabli za igraca u pawnu na veoma dobar nacin za kojeg su varijabli stvoreni globalno, sto znaci da se mogu koristiti u gamemodu i filterskriptama u isto vreme.
ovaj istem koji je, ako se ne varam, uveden od SA:MP 0.3a R5 verzije pa jos ima nekoliko prednosti od obicnih polja sa MAX_PLAYERS velicinom.
PVar-ove mozete deliti i pristupiti im preko gamemod skripta i filterskripta, sto je lakse za uredjivanje vase skripte
PVar-ovi automatski brisu podatke kada igrac napusti igricu, sto znaci da uopste nije potrebno da restartujete varijable pod onplayerconnect ,
nema potrebe za kompleksne enumerator strukture,
stedi memoriju.
lako mozete da enumerisati i uskladiti PVar listu - to je lakse za otklanjanje greski i za postavljanje informacija za igrace,
iako PVar nije bio napravljen, vratice vrednost 0
funkcije za stavljanje ilite uzimanje PVar-ova su:
SetPVarInt
SetPVarInt
SetPVarString
GetPVarString
SetPVarFloat
GetPVarFloat
DeletePVar
e sada,da krenemo od pocetka:
SetPVarInt: zapisuje se kao integer, i to je funkcija za dodeljivanje, a vise o njoj mozete videti na ovom linku http://wiki.sa-mp.com/wiki/SetPVarInt
klasican primer za dodavanje
SetPVarInt(playerid, "Level", 1);//to sada postavlja igracu level 1GetPVarInt: http://wiki.sa-mp.com/wiki/GetPVarInt
if(GetPVarInt(playerid, "Level") == 1) SendClientMessage(playerid, -1, "vi ste nivo 1, pocetnik ste.");SetPVarString: vise o njemu cete naci na ovom linku,a inace on se koristi za dodeljivanje http://wiki.sa-mp.com/wiki/SetPVarString
primera radi:
new imeIgraca; // definisemo ime
GetPlayerName(playerid, imeIgraca, MAX_PLAYER_NAME); // uzmemo ime
SetPVarString(playerid, "ime", imeIgraca); // dodelimo Per-player varijabluGetPVarString: to je primajuca funkcija, a vise o njoj mozete naci ovde http://wiki.sa-mp.com/wiki/GetPVarString
primera radi:
new
_imeIgraca;
GetPlayerName(playerid, _imeIgraca, MAX_PLAYER_NAME);
GetPVarString(playerid, "ime", _imeIgraca, MAX_PLAYER_NAME);
if(!strcmp(_imeIgraca, _imeIgraca, true)) SendClientMessage(playerid, -1, "uu wow, super ime :).");SetPVarFloat: float funkcija, koristi se za dodeljivanje, a vise o njoj mozete naci ovde http://wiki.sa-mp.com/wiki/SetPVarFloat
primera radi:
new Float:pozicija; // definisemo float vrednost
GetPlayerPos(playerid, pozicija, pozicija, pozicija); // uzimanje pozicije
SetPVarFloat(playerid, "x", pozicija); // setujemo per player varijablu
SetPVarFloat(playerid, "y", pozicija); // isto
SetPVarFloat(playerid, "z", pozicija); // istoGetPVarFloat: funckija za primanje http://wiki.sa-mp.com/wiki/GetPVarFloat
primera radi:
SetPlayerPos(playerid, GetPVarFloat(playerid, "x"), GetPVarFloat(playerid, "y"), GetPVarFloat(playerid, "z"));i jos zadnja DeletePVar: tu se nema sta objasnjavati, ona sluzi za brisanje Per player varijable http://wiki.sa-mp.com/wiki/DeletePVar
primera radi:
DeletePVar(playerid, "Level");imamo tu jos par funkcija, ali tesko da ce se one koristiti nekada, mislim, mozda i hoce, ali nece skoro 🙂
ako mislite da nisam objasnjavao do detalja, nisam imao sta objasnjavati, na pocetku tuta sam objasnio sve, a na dole sam samo davao primere, to je to
-Blaeks