[Tut] Per-player variable system koriscenja

Započeo Blaeks, Februar 02, 2013, 00:56:19 PRE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

u ovom tutorijalu cu se potruditi da vam pokazem kako da pocnete da koristite PVar funkcije.

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 1


GetPVarInt: 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[MAX_PLAYER_NAME]; // definisemo ime
GetPlayerName(playerid, imeIgraca, MAX_PLAYER_NAME); // uzmemo ime
SetPVarString(playerid, "ime", imeIgraca); // dodelimo Per-player varijablu


GetPVarString: to je primajuca funkcija, a vise o njoj mozete naci ovde http://wiki.sa-mp.com/wiki/GetPVarString

primera radi:


new
    _imeIgraca[MAX_PLAYER_NAME][2];
GetPlayerName(playerid, _imeIgraca[0], MAX_PLAYER_NAME);
GetPVarString(playerid, "ime", _imeIgraca[1], MAX_PLAYER_NAME);
if(!strcmp(_imeIgraca[0], _imeIgraca[1], 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[3]; // definisemo float vrednost
GetPlayerPos(playerid, pozicija[0], pozicija[1], pozicija[2]); // uzimanje pozicije
SetPVarFloat(playerid, "x", pozicija[0]); // setujemo per player varijablu
SetPVarFloat(playerid, "y", pozicija[1]); // isto
SetPVarFloat(playerid, "z", pozicija[2]); // isto


GetPVarFloat: 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
Poslednja Izmena: Februar 02, 2013, 01:00:18 PRE PODNE od Blaeks





Moram ovo tu stavit: http://forum.sa-mp.com/showthread.php?t=268499

Preporučujem svima da to pročitaju. Tutorial je o tome zašto ne koristit PVar-ove i napisao ga je Y_Less.

Last nick: Paradox

Citat: Joey_ poslato Februar 02, 2013, 23:23:46 POSLE PODNE
Moram ovo tu stavit: http://forum.sa-mp.com/showthread.php?t=268499

Preporučujem svima da to pročitaju. Tutorial je o tome zašto ne koristit PVar-ove i napisao ga je Y_Less.
imas pravo zato sto su za 30 do 40ms sporiji nego obicne varijable , i to ne poricem, ali daleko su napredniji nego obicne varijable, no svako ima pravo na svoj izbor , ja sam samo hteo da pokusam da pomognem  :)

PoÅ¡tujem to Å¡to si htio pomoći, sve 5. Samo daj mi reci po čemu su to PVar-ovi napredniji osim po tome Å¡to se mogu shareat izmeÄ'u GM-a i FS-a?

Last nick: Paradox

Citat: Joey_ poslato Februar 03, 2013, 11:56:23 PRE PODNE
PoÅ¡tujem to Å¡to si htio pomoći, sve 5. Samo daj mi reci po čemu su to PVar-ovi napredniji osim po tome Å¡to se mogu shareat izmeÄ'u GM-a i FS-a?
primera radi zato sto ih ne moras restartovat svaku po igracu pod onplayerconnect, i po tome sto se automatski brisu kada igrac napusti igricu

Ako ti to nazivaš naprednijim onda ne znaš što znači napredan kod. To što se tebi ne da napisat kratki kod za resetiranje varijable pri ulasku igrača u server je druga stvar.

Last nick: Paradox

Ja ne znam ti si ovde najveci car majke mi :D
Prodajem NL v3 mod sa bazom!
Ako si zainteresovan javi mi se na pm
U radu je i editovan mod (promenjena mesta bandi mafija, popravljeni bagovi i komande, etc.)

Citat: Joey_ poslato Februar 03, 2013, 12:36:49 POSLE PODNE
Ako ti to nazivaš naprednijim onda ne znaš što znači napredan kod. To što se tebi ne da napisat kratki kod za resetiranje varijable pri ulasku igrača u server je druga stvar.
da mi se, ali zasto vise kad moze i manje? :)

smokeone: to si meni rekao, ili joeyu? :)

Ali manje ne mora uvijek značit bolje. ;)

Last nick: Paradox

Citat: kristijan250 poslato Februar 03, 2013, 12:50:38 POSLE PODNE
Odlican Tut Mada ja ne ostavjam yini(najlaksi)~~~!!!!
izvini ali PVarovi nisu sistem spremanja, pvarovi su sistem varijabli, i oni se mogu koristiti uz Yini
hvala

tebi tebi :D
Prodajem NL v3 mod sa bazom!
Ako si zainteresovan javi mi se na pm
U radu je i editovan mod (promenjena mesta bandi mafija, popravljeni bagovi i komande, etc.)