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

San Andreas Multiplayer (SA-MP) => Leírások/Útmutatók => SA-MP: Szerverfejlesztés => Függvények => A témát indította: divkn - 2015. Május 02. - 23:42:14

Cím: GetPlayerPoolSize
Írta: divkn - 2015. Május 02. - 23:42:14
GetPlayerPoolSize


Lekérdezi a legnagyobb létrehozott playerid számát.
Szükséges kliens/szerver verzió: 0.3.7 RC2 vagy újabb.
Paraméterei
 
(Nincsenek paraméterei)

 
VisszatéréseA legnagyobb létrehozott playerid számával.
Példa
 
for(new i = 0; i <= GetPlayerPoolSize(); i++)
{
if(IsPlayerConnected(i))
{
SetPlayerHealth(i,100.0);
}
}

 
Kapcsolódó funkciók
GetVehiclePoolSize
Forrás: http://wiki.sa-mp.com/wiki/GetPlayerPoolSize
Cím: GetPlayerPoolSize
Írta: _[G]M[K]_Sh1ft_ - 2016. Január 03. - 17:20:22
Megjegyzés/Érdekesség/Észrevétel: Nem tudom hogy azóta javítva lett, ((vagy csak nekem csinál olyat,)) hogy mikor újraindítom a szervert, az első játékos mikor fellép, a GetPlayerPoolSize() fgv. nem működik megfelelően az OnPlayerConnect() fgv. alatt. Annak ellenére hogy a visszaadott értéke =0.
!De ha a játékos kilép, és újra belép/vagy más akkor már megfelelően működik.
Cím: GetPlayerPoolSize
Írta: divkn - 2016. Január 03. - 18:16:17
És tényleg. Először lehívja az OnPlayerConnect eljárást aztán változik meg PlayerPool mérete. gj kye.
Mondjuk nem nagy meglepetés, mert van pár funkció amivel hasonló problémákkal ütközik, mint például a Kick funkció.
Cím: GetPlayerPoolSize
Írta: kos - 2017. Július 22. - 07:25:15
Idézetet írta: _[G
M[K]_Sh1ft_ date=1451838022]


   
      Megjegyzés/Érdekesség/Észrevétel: Nem tudom hogy azóta javítva lett, ((vagy csak nekem csinál olyat,)) hogy mikor újraindítom a szervert, az első játékos mikor fellép, a GetPlayerPoolSize() fgv. nem működik megfelelően az OnPlayerConnect() fgv. alatt. Annak ellenére hogy a visszaadott értéke =0.
   
   
      !De ha a játékos kilép, és újra belép/vagy más akkor már megfelelően működik.
   


 
 
 Azèrt van ez mert a player id 1 ember esetèn 0 és a 0 értek a poolsize-ban 1re ugrik 0ról. Tehàt vagy képtelen érzékelni 1 embert vagy a script hibás mert i < pool érték kell mert ha egyenlőt is adunk az 2 értéket fog szàmolni. Mikor meghívja az érték 1 lesz de az i =0 értékkel meg 2 számolást végez. Tehát i = 1 <= pool vagy i = 0 < poll.
 
Lehetséges javítás:
 
for(new i = 0; i < GetPlayerPoolSize(); i++)
 
for(new i = 0; i < GetPlayerPoolSize()+1; i++)
 
Vagy
 
for(new i = 1; i <= GetPlayerPoolSize(); i++)
 
for(new i = 1; i <= GetPlayerPoolSize()+1; i++)
 
Amíg nem javítják +1 értéket kell adni.