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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: ppatrik2012 - 2014. március 22. - 10:56:26

Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 22. - 10:56:26
A cím mindent elmond, ezt hogyan lehet?
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: rcsbakos2 - 2014. március 22. - 11:21:50
Hello csak azt akarod pl.: hogy akkor forogjon tovább a függvény ha csak m4 van a kezébe:?
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 22. - 12:00:17
Igazából amit én akarok, az ennél komplikáltabb :D A lényeg, hogy nem tudom hogy tudom lekérdezni a játékosnál lévõ fegyvereket, illetve külön csak azt amit fog.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: KovaNovik - 2014. március 22. - 12:55:16
Nem vagyok benne biztos, de azért megpróbálok segíteni:
GetPlayerWeapon -- Amit a kezében tart fegyver, azzal tér vissza.
GetPlayerWeaponData -- Leginkább tömbbe le tudod kérni vele az összes fegyvert.
Szvsz jobb, ha változóban tárolod, és azt adod neki oda, amit elõvett. Persze DM szerverekre jó az alap fegyverrendszer is.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 22. - 16:47:34
Valaki kicsit konkrétabban leírná, hogy merre van az arra? :D
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ZyZu. - 2014. március 22. - 17:10:44
Idézetet írta: ppatrik2012 date=1395503254\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47287\" data-ipsquote-contentclass=\"forums_Topic
Valaki kicsit konkrétabban leírná, hogy merre van az arra? :D
 
Ennyire nehéz a fórumon keresgélni egy kicsit majd elolvasni a MAGYAR leírást? Egy kicsit próbálj önálló lenni a fórumon és használni a keresés gombját.  ;)
http://sampforum.hu/index.php?topic=20997.0
http://wiki.sa-mp.com/wiki/GetPlayerWeapon
http://sampforum.hu/index.php?topic=20998.0
http://wiki.sa-mp.com/wiki/GetPlayerWeaponData
http://sampforum.hu/index.php?topic=44133.0
http://wiki.sa-mp.com/wiki/GetPlayerWeaponState
Bemásoltam neked a magyar leírásokat és az angolt.. ne legyen olyan probléma, hogy csak magyar van.. :) Ebbõl szerintem ki tudsz igazodni..
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 22. - 17:15:35
Köszi, de ezt nem értem.. Most ez mit csinálna? :O
 
//Minden információt lekérünk.
//Elsõ érték: Fegyver ID. Második érték: Töltényszám.
new weapons[13][2];
for (new i = 0; i < 13; i++)
{
    GetPlayerWeaponData(playerid, i, weapons[0], weapons[1]);
}

 
Mármint levan írva, de miért \"
i,weapons[0],weapons[1]); 

 
ezt nem értem..
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: Dfoglalo - 2014. március 22. - 18:45:17
Egy for ciklus végigmegy az összes játékos ID-n, majd lekéri minden ID-hez kapcsolódóan a WeaponData-t, amelyeket eltárol változókba.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 22. - 18:55:10
De a kapcsos zárójelben az i és a szám mit jelent? :O
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: Dfoglalo - 2014. március 22. - 18:58:13
Az a játékos id-je. Az i változó. Amelynek az értékét mindig 1-el növeli a for ciklus, ezáltal minden játékos WeaponData-ját lekérdezi és eltárolja egy-egy változóba, amelyen van 2 tömb, a játékos ID-je, és gondolom a fegyver száma. Pl. ha az i éppen 3, akkor késõbb a weapons[playerid][1] azt fogja jelenteni, hogy weapons[3][1], így az adott játékosra fog vonatkozni a dolog, nem pedig más fegyver adatait tudod majd lekérni a playerid használatával. Nem tudom, mennyire érhetõ a dolog.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 22. - 19:19:06
Na jó, lehet azért mert este van, de nem esik le.. Hogy néz ki ez egy gyakorlati helyzetben?
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: Konstantin - 2014. március 22. - 19:27:48
Az i az maga a játékos(ok) azonosítója, ID-je amikor megnyomod a TAB-ot a játékba akkor oldalt mutatja. Azért nem playerid(vagy más változó) van ott, mert egy for ciklust használunk, ezzel az összes ID lehetõséget (még azoknak is akik nincsenek a szerveren) lekérdezi vagyis az azonosítókat 0 1 2 3 stb. ameddig a szerver limitbe mehet, amelyik id-n nem lesz játékos annak a fegyver lekérdezésénél nem kapunk értéket, 0 lesz.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 23. - 07:57:40
Akkor csak 1 játékosnak a fegyvereit hogy tudom lekérdezni, illetve hogy adom meg, hogy meik \"sloton\" lévõ fegyvereket kérdezze le?
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: KovaNovik - 2014. március 23. - 09:55:46
A tömbbõl a megfelelõ számú fegyvert kéred le esetleg?
Nézd át a hivatalos wikin az Arrays és Loops részeket.
A tömböket én röviden így mondanám el:



new cucc0,cucc1,cucc2,cucc3;

 
HELYETT
 
new cucc[4];

 
És ezt..
 

cucc0 = 37;
cucc1 = 52;

 
HELYETT
 

cucc[0] = 37;
cucc[1] = 52;

 
-vel adom meg.
Tehát a 5 különféle cuccot tárolhatunk.
VISZONT!
 
new cucc[2][5];

 
-tel, pedig 2 ember van, és mindkét embernek 5 cucca.
A számozást 0-tól kezdjük mindig.
Tehát a..
 
cucc[0][3] = 32;

-vel a 0. játékosunk 3. cuccát adjuk meg.
Ez a ciklusoknál lesz hasznos.
 
A ciklusokat pedig így magyaráznám:



Létrehozol egy változót, (ami általában i), és megcsinálsz egy mûveletet, majd ugyanezt a mûveletet addig ismétled, amíg a feltevésed igaz.
Pl.

for(new i = 0; i < MAX_PLAYERS; i++) //Amíg az i kisebb mint a maximum játékosszám (500 alapból)
    {
        if(!IsPlayerConnected(i)) continue; //Ha nincs csatlakozva a játékos akit éppen nézzünk, akkor hagyja ki az utána következõ dolgokat.
        GivePlayerWeapon(i, 24, 200);
    }
    return 1;

 
Ez mindenkinek ad egy dezit.
Miért?
Ez fut le: létrehozza az i-t, aminek 0 az értéke. Ha nincs ilyen játékos, kihagyja a dolgot. Ha van, ad neki fegyvert. Mivel vége a mûveletnek, hozzáad egyet az ihez, ami így 1 lesz. Ha nincs fent ilyen idjû játékos, akkor kihagyja, de ha van, ad neki dezit. És ezt megcsinálja 500-szor.
Mostmár érted? :D
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: Dfoglalo - 2014. március 23. - 10:49:23
KovaNovik, adtam egy +t a magyarázatodra :D De visszaveszem, ha nem írod át a ciklusban a fegyver adásmál a playerid-t i-re :P
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 23. - 13:36:02
Na jó, repül tõlem is a + :D De még nem zárnék.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: Dfoglalo - 2014. március 23. - 13:59:58
De egyébként nem tudom, hogy még miért nincs okod zárni, hiszen bõven ki lett fejtve minden, valamint az elsõ hozzászólások között meg lett adva, hogy mely két függvényt kell használnod a dologhoz. Ha nem tiszta, leírom én is neked:


A GetPlayerWeapon függvény lekérdezi a játékos kezében lévõ fegyvert. Példa:
 
printf(\"A kezedben lévõ fegyver ID-je: %d\", GetPlayerWeapon(playerid));

 
A GetPlayerWeaponData függvény lekérdezi a játékosnál, adott sloton lévõ fegyverét, és az ahhoz tartozó töltényeit. Példa:
 
new slot = 3, fegyverID, toltenyszam;
GetPlayerWeaponData(playerid, slot, fegyerID, toltenyszam);
printf(\"A(z) %d ID-jû játékos %d-es/as sloton lévõ fegyvere a %d ID-jû fegyver, benne %d tölténnyel.\", playerid, slot, fegyverID, toltenyszam);
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 24. - 20:55:06
Köszönöm :) Most már boldogulni fogok, csak nem volt sok idõm belekezdeni egy projectbe :D  Ment a + a segítõknek.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 22. - 10:56:26
A cím mindent elmond, ezt hogyan lehet?
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: rcsbakos2 - 2014. március 22. - 11:21:50
Hello csak azt akarod pl.: hogy akkor forogjon tovább a függvény ha csak m4 van a kezébe:?
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 22. - 12:00:17
Igazából amit én akarok, az ennél komplikáltabb :D A lényeg, hogy nem tudom hogy tudom lekérdezni a játékosnál lévõ fegyvereket, illetve külön csak azt amit fog.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: KovaNovik - 2014. március 22. - 12:55:16
Nem vagyok benne biztos, de azért megpróbálok segíteni:
GetPlayerWeapon -- Amit a kezében tart fegyver, azzal tér vissza.
GetPlayerWeaponData -- Leginkább tömbbe le tudod kérni vele az összes fegyvert.
Szvsz jobb, ha változóban tárolod, és azt adod neki oda, amit elõvett. Persze DM szerverekre jó az alap fegyverrendszer is.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 22. - 16:47:34
Valaki kicsit konkrétabban leírná, hogy merre van az arra? :D
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ZyZu. - 2014. március 22. - 17:10:44
Idézetet írta: ppatrik2012 date=1395503254\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47287\" data-ipsquote-contentclass=\"forums_Topic
Valaki kicsit konkrétabban leírná, hogy merre van az arra? :D
 
Ennyire nehéz a fórumon keresgélni egy kicsit majd elolvasni a MAGYAR leírást? Egy kicsit próbálj önálló lenni a fórumon és használni a keresés gombját.  ;)
http://sampforum.hu/index.php?topic=20997.0
http://wiki.sa-mp.com/wiki/GetPlayerWeapon
http://sampforum.hu/index.php?topic=20998.0
http://wiki.sa-mp.com/wiki/GetPlayerWeaponData
http://sampforum.hu/index.php?topic=44133.0
http://wiki.sa-mp.com/wiki/GetPlayerWeaponState
Bemásoltam neked a magyar leírásokat és az angolt.. ne legyen olyan probléma, hogy csak magyar van.. :) Ebbõl szerintem ki tudsz igazodni..
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 22. - 17:15:35
Köszi, de ezt nem értem.. Most ez mit csinálna? :O
 
//Minden információt lekérünk.
//Elsõ érték: Fegyver ID. Második érték: Töltényszám.
new weapons[13][2];
for (new i = 0; i < 13; i++)
{
    GetPlayerWeaponData(playerid, i, weapons[0], weapons[1]);
}

 
Mármint levan írva, de miért \"
i,weapons[0],weapons[1]); 

 
ezt nem értem..
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: Dfoglalo - 2014. március 22. - 18:45:17
Egy for ciklus végigmegy az összes játékos ID-n, majd lekéri minden ID-hez kapcsolódóan a WeaponData-t, amelyeket eltárol változókba.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 22. - 18:55:10
De a kapcsos zárójelben az i és a szám mit jelent? :O
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: Dfoglalo - 2014. március 22. - 18:58:13
Az a játékos id-je. Az i változó. Amelynek az értékét mindig 1-el növeli a for ciklus, ezáltal minden játékos WeaponData-ját lekérdezi és eltárolja egy-egy változóba, amelyen van 2 tömb, a játékos ID-je, és gondolom a fegyver száma. Pl. ha az i éppen 3, akkor késõbb a weapons[playerid][1] azt fogja jelenteni, hogy weapons[3][1], így az adott játékosra fog vonatkozni a dolog, nem pedig más fegyver adatait tudod majd lekérni a playerid használatával. Nem tudom, mennyire érhetõ a dolog.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 22. - 19:19:06
Na jó, lehet azért mert este van, de nem esik le.. Hogy néz ki ez egy gyakorlati helyzetben?
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: Konstantin - 2014. március 22. - 19:27:48
Az i az maga a játékos(ok) azonosítója, ID-je amikor megnyomod a TAB-ot a játékba akkor oldalt mutatja. Azért nem playerid(vagy más változó) van ott, mert egy for ciklust használunk, ezzel az összes ID lehetõséget (még azoknak is akik nincsenek a szerveren) lekérdezi vagyis az azonosítókat 0 1 2 3 stb. ameddig a szerver limitbe mehet, amelyik id-n nem lesz játékos annak a fegyver lekérdezésénél nem kapunk értéket, 0 lesz.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 23. - 07:57:40
Akkor csak 1 játékosnak a fegyvereit hogy tudom lekérdezni, illetve hogy adom meg, hogy meik \"sloton\" lévõ fegyvereket kérdezze le?
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: KovaNovik - 2014. március 23. - 09:55:46
A tömbbõl a megfelelõ számú fegyvert kéred le esetleg?
Nézd át a hivatalos wikin az Arrays és Loops részeket.
A tömböket én röviden így mondanám el:



new cucc0,cucc1,cucc2,cucc3;

 
HELYETT
 
new cucc[4];

 
És ezt..
 

cucc0 = 37;
cucc1 = 52;

 
HELYETT
 

cucc[0] = 37;
cucc[1] = 52;

 
-vel adom meg.
Tehát a 5 különféle cuccot tárolhatunk.
VISZONT!
 
new cucc[2][5];

 
-tel, pedig 2 ember van, és mindkét embernek 5 cucca.
A számozást 0-tól kezdjük mindig.
Tehát a..
 
cucc[0][3] = 32;

-vel a 0. játékosunk 3. cuccát adjuk meg.
Ez a ciklusoknál lesz hasznos.
 
A ciklusokat pedig így magyaráznám:



Létrehozol egy változót, (ami általában i), és megcsinálsz egy mûveletet, majd ugyanezt a mûveletet addig ismétled, amíg a feltevésed igaz.
Pl.

for(new i = 0; i < MAX_PLAYERS; i++) //Amíg az i kisebb mint a maximum játékosszám (500 alapból)
    {
        if(!IsPlayerConnected(i)) continue; //Ha nincs csatlakozva a játékos akit éppen nézzünk, akkor hagyja ki az utána következõ dolgokat.
        GivePlayerWeapon(i, 24, 200);
    }
    return 1;

 
Ez mindenkinek ad egy dezit.
Miért?
Ez fut le: létrehozza az i-t, aminek 0 az értéke. Ha nincs ilyen játékos, kihagyja a dolgot. Ha van, ad neki fegyvert. Mivel vége a mûveletnek, hozzáad egyet az ihez, ami így 1 lesz. Ha nincs fent ilyen idjû játékos, akkor kihagyja, de ha van, ad neki dezit. És ezt megcsinálja 500-szor.
Mostmár érted? :D
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: Dfoglalo - 2014. március 23. - 10:49:23
KovaNovik, adtam egy +t a magyarázatodra :D De visszaveszem, ha nem írod át a ciklusban a fegyver adásmál a playerid-t i-re :P
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 23. - 13:36:02
Na jó, repül tõlem is a + :D De még nem zárnék.
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: Dfoglalo - 2014. március 23. - 13:59:58
De egyébként nem tudom, hogy még miért nincs okod zárni, hiszen bõven ki lett fejtve minden, valamint az elsõ hozzászólások között meg lett adva, hogy mely két függvényt kell használnod a dologhoz. Ha nem tiszta, leírom én is neked:


A GetPlayerWeapon függvény lekérdezi a játékos kezében lévõ fegyvert. Példa:
 
printf(\"A kezedben lévõ fegyver ID-je: %d\", GetPlayerWeapon(playerid));

 
A GetPlayerWeaponData függvény lekérdezi a játékosnál, adott sloton lévõ fegyverét, és az ahhoz tartozó töltényeit. Példa:
 
new slot = 3, fegyverID, toltenyszam;
GetPlayerWeaponData(playerid, slot, fegyerID, toltenyszam);
printf(\"A(z) %d ID-jû játékos %d-es/as sloton lévõ fegyvere a %d ID-jû fegyver, benne %d tölténnyel.\", playerid, slot, fegyverID, toltenyszam);
Cím: Fegyverek lekérdezése, kézben lévõ fegyver külön kérdezése
Írta: ppatrik2012 - 2014. március 24. - 20:55:06
Köszönöm :) Most már boldogulni fogok, csak nem volt sok idõm belekezdeni egy projectbe :D  Ment a + a segítõknek.