Szerző Téma: [ Leírás ]A játékos változókról (PVar)  (Megtekintve 4997 alkalommal)

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
[ Leírás ]A játékos változókról (PVar)
« Dátum: 2010. november 13. - 16:37:25 »
+3 Show voters
A játékos változók
 
Üdv mindenkinek.

Ebben a leírásban szeretném nektek bemutatni a player variables-t, vagyis a játékos változókat.


Kezdjük is.


Nos, a PVar egy új módja a játékos változók hatékony készítésére, mely dinamikus, egyszerû a használata, ámde gyorsabb mint a sima j. változók!


A PVar-ok minden filterszkriptben, játékmódban egy idõben használható.


A PVar-ok a SA-MP 0.3a R5 kiadásától használható, ennek mérete MAX_PLAYERS.


Néhány egyéb információ:


- A PVarok automatikusan törlõdnek amikor egy játékos elhagyja a szervert, vagyis nem kell állítgatni a változó értékét.


- Nincs szükség bonyolult enum/játékos információk szerkezeteire.


- Memória takarékos


- Könnyedén kiiratható a PVar-ok listája, így minden egyszerûbben tárolódik el.


- Ha PVar még nem készült el, alapértemezett értéke mindig 0.


- A PVar-ok nagyon nagy karakterláncokat képesek \"tartani\" vagyis tárolni, amelyet dinamikusan olvassa be.

Funkciók:
SetPVarInt
Megváltoztathatod egy játékos változó értékét, csak egész számot írj be.
Paraméterek:

playerid       - A játékos azonosítószáma


varname     -  A változó neve


int_value    -  A változó értéke

Példa:
 
SetPVarInt(playerid, \"ElsoPVarom\", 1);

 


GetPVarInt
Lekérdezi a játékos változó értékét, egész számmal tér vissza.
Paraméterek:

playerid     - A játékos azonosítószáma


varname    - A változó neve

Példa:
 
GetPVarInt(playerid, \"ElsoPVarom\");

 


SetPVarString
Megváltoztathatod egy játékos változó értékét, csak karakterláncot írj be.
Paraméterek:

playerid           - A játékos azonosítószáma


varname          -  A változó neve


string_value    -  A változó értéke

Példa:
 
SetPVarString(playerid, \"ElsoPVarom\", \"Elsõ karakterláncos PVarom!\");

 


GetPVarString
Lekérdezi a játékos változó értékét, karakterlánccal tér vissza.
Paraméterek:

playerid                 - A játékos azonosítószáma


varname               - A változó neve


&string_return      - A lekérdezendõ karakterlánc eltárolásának a helye


len                         - A karakterlánc hosszúsága

Példa:
 

new eltarolas[64]; // létrehozunk egy 64 cellás karakterláncot
GetPVarString(playerid, \"ElsoPVarom\", eltarolas, 64); // lekérdezzük a változó értékét és eltároljuk
printf(\"Kiadott üzenet: %s\", eltarolas); // majd betöltjük a karakterláncot az eltarolasból és kiiratjuk a szerverkonzolba

 


SetPVarFloat
Megváltoztathatod egy játékos változó értékét, csak lebegõpontos számot írj be.
Paraméterek:

playerid              - A játékos azonosítószáma


varname            - A változó neve


float_value        - A lebegõpontos változó értéke amit elszeretnénk menteni a PVar-ba

Példa:
 

new pos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
SetPVarFloat(playerid, \"XKOORD\", pos[0]);
SetPVarFloat(playerid, \"YKOORD\", pos[1]);
SetPVarFloat(playerid, \"ZKOORD\", pos[2]);

 


GetPVarFloat
Lekérdezi a játékos változó értékét, lebegõpontos számmal tér vissza.
Paraméterek:

playerid              - A játékos azonosítószáma


varname            - A változó neve

Példa:
 
SetPlayerPos(playerid, GetPVarFloat(playerid,\"XKOORD\"), GetPVarFloat(playerid,\"YKOORD\"), GetPVarFloat(playerid,\"ZKOORD\")); // Itt pedig az eltárolt koordinátákat betöltjük, és elteleportáljuk a játékost ezekre a koordinátákra

 
DeletePVar
Töröl egy játékos változót.
Paraméterek:

playerid     - A játékos azonosítószáma


varname   - A változó neve

Példa:
 
DeletePVar(playerid, \"ElsoPVarom\");

 
Egyéb funkciók:
GetPVarType
Lekérdezi, és visszatér a játékos változód típusával.  (integer, string, float)
Paraméterek:

playerid     - A játékos azonosítószáma


varname   - A változó neve

Példa:
 

SetPVarInt(playerid, \"Negyven\", 40);
SetPVarString(playerid, \"UdvSzoveg\", \"Üdvözöllek\");
SetPVarFloat(playerid, \"KettoEgeszNegy\", 2.4);
printf(\"Null típus: %d\", GetPVarType(playerid, \"NincsIttSemmi\"));
printf(\"Egész szám típus (%d):  %d\", GetPVarInt(playerid, \"Negyven\"), GetPVarType(playerid, \"Negyven\"));
printf(\"Lebegõpontos típus (%f):  %d\", GetPVarFloat(playerid, \"KettoEgeszNegy\"), GetPVarType(playerid, \"KettoEgeszNegy\"));
new szoveg[10];
GetPVarString(playerid, \"UdvSzoveg\", text, 10);
printf(\"Karakterlánc típus (%s): %d\", text, GetPVarType(playerid, \"UdvSzoveg\"));

 
A funkciók paramétereit megtalálhatod a http://jump.fm/ACACR oldalon.
Ha segítség kell, írj PM-et nekem, PVar tárggyal!
Példaszkript: http://sampforum.hu/index.php?topic=6068.0
Ezt a szkriptet ne használjátok, mert hibás, csak tanulmányozzátok!
 
Kiegészítés #1
 
Nemrég olvastam a hivatalos fórumon, hogy sokkal gyorsabban lekérdezhetjük a PVarunk értékét ha pl. GetPVarInt helyett GetPVarType-ot használunk. (a paraméterek ugyanazok)

Lényeg: Ha a PVar 1 vagy 0, csak akkor használható.

Sok szerencsét, jó játékot, jó szkriptelést!

ScreaM
« Utoljára szerkesztve: 2011. március 26. - 18:28:42 írta ScreaM »

Nem elérhető nyE

  • 1745
    • Profil megtekintése
[ Leírás ]A játékos változókról (PVar)
« Válasz #1 Dátum: 2010. november 13. - 18:28:58 »
0 Show voters
Mikor lesz kiegészítve?

Nem elérhető Popec16

  • 1267
    • Profil megtekintése
[ Leírás ]A játékos változókról (PVar)
« Válasz #2 Dátum: 2010. november 13. - 23:29:14 »
0 Show voters
Üdv!
Jó ez a leírás kiegészíteni felesleges...! :D
Ügyin leírtad a lényeget!
 ;)

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
[ Leírás ]A játékos változókról (PVar)
« Válasz #3 Dátum: 2010. november 14. - 18:09:55 »
0 Show voters
Szerintem csak péntek fele lesz kiegészítve. Sajnálom. Iskola problémák

Am kösz  :) ;)

[ Leírás ]A játékos változókról (PVar)
« Válasz #4 Dátum: 2010. november 14. - 18:32:51 »
0 Show voters
Te konkrétan megelõztél  :D
Szép leírás,most akartam írni egyett én is.

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
[ Leírás ]A játékos változókról (PVar)
« Válasz #5 Dátum: 2011. február 15. - 19:07:48 »
0 Show voters
Kiegészítve egy kis aprósággal.  ;)

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
[ Leírás ]A játékos változókról (PVar)
« Válasz #6 Dátum: 2011. február 15. - 19:09:57 »
0 Show voters
Idézetet írta: ScreaM date=1289662645\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"4163\" data-ipsquote-contentclass=\"forums_Topic
Nos, a PVar egy új módja a játékos változók hatékony készítésére, mely dinamikus, egyszerû a használata, ámde gyorsabb mint a sima j. változók!
 
Ez nem igaz.

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
[ Leírás ]A játékos változókról (PVar)
« Válasz #7 Dátum: 2011. február 15. - 19:15:04 »
0 Show voters
Sokkal hatékonyabb és gyorsabb mint a sima játékos változók (new abc[500];)

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
[ Leírás ]A játékos változókról (PVar)
« Válasz #8 Dátum: 2011. február 15. - 20:33:19 »
0 Show voters
Idézetet írta: ScreaM date=1297793704\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"4163\" data-ipsquote-contentclass=\"forums_Topic
Sokkal hatékonyabb és gyorsabb mint a sima játékos változók (new abc[500];)
 
Hatékonyabb, az igaz, és ezzel én is egyet értek, de nem gyorsabb.

[ Leírás ]A játékos változókról (PVar)
« Válasz #9 Dátum: 2011. február 15. - 20:46:37 »
0 Show voters
Idézetet írta: kurta999 date=1297798399\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"4163\" data-ipsquote-contentclass=\"forums_Topic


Sokkal hatékonyabb és gyorsabb mint a sima játékos változók (new abc[500];)
 
Hatékonyabb, az igaz, és ezzel én is egyet értek, de nem gyorsabb.
 
[/quote]
Ez így van.

Nem elérhető Epsilon

  • 1854
    • Profil megtekintése
[ Leírás ]A játékos változókról (PVar)
« Válasz #10 Dátum: 2011. március 26. - 16:51:36 »
0 Show voters
Idézetet írta: ChuckNorris date=1297799197\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"4163\" data-ipsquote-contentclass=\"forums_Topic


 

Sokkal hatékonyabb és gyorsabb mint a sima játékos változók (new abc[500];)
 
Hatékonyabb, az igaz, és ezzel én is egyet értek, de nem gyorsabb.
 
[/quote]
Ez így van.
 
[/quote]
+1


A kiegészítés kezdõk számára félrevezetõ lehet, érdemes lenne tágabban elmagyarázni.

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
[ Leírás ]A játékos változókról (PVar)
« Válasz #11 Dátum: 2011. március 26. - 18:29:26 »
0 Show voters
Kiegészítve!

Nem elérhető Epsilon

  • 1854
    • Profil megtekintése
[ Leírás ]A játékos változókról (PVar)
« Válasz #12 Dátum: 2011. április 17. - 10:05:20 »
0 Show voters
Megemlítendõ, hogy ezeket nem kell le-fel csatlakozásnál nullázni. (automatikus)
(a példaszkriptben ezt tetted)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal