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: totar - 2012. Január 22. - 17:00:23

Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: totar - 2012. Január 22. - 17:00:23
üdv
az lenne a kérdésem, hogy melyik a jobb?
GetMaxPlayers() vagy MAX_PLAYERS?
Mert olvastam vhol, hogy valakinek a MAX_PLAYERS helyett GetMaxPlayers()-t használta, és a cpu használatot csökkentette.
asszem 4332 rõl 534-re ez csak ilyen érzékeltetési arány....
ne ez igaz?
átírjam a MAX_PLAYERS-eket GetMaxPlayers()-re??
itt a link:
http://forum.sa-mp.com/showthread.php?t=180159
valami ilyenmit vettem le...
help pls
Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: Pedró - 2012. Január 22. - 17:15:51
[pawn]#undef MAX_PLAYERS
#define MAX_PLAYERS 50 //50 = ahány slotos a szervered[/pawn]
Ezt berakod a Gm-ed elejébe és akkor felér a GetMaxPlayers() függvénnyel a MAX_PLAYERS definíció..
Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: Gang[St]e[R] - 2012. Január 22. - 17:29:45
Használd a foreach.incet annál jobb nincs.
Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: Pedró - 2012. Január 22. - 17:47:23
\" post=\"215375\" timestamp=\"1327249785\"]
Használd a foreach.incet annál jobb nincs.
 
[/quote]
format(string, sizeof(string), \"Játékosok a szerveren: %d/%d\", playerscount, foreach));
WTF? :D
javítanám:
Használd a foreach függvénykönyvtárat ciklusoknál!
Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: totar - 2012. Január 22. - 17:51:18
Akkor szerintetek maradjon ez? mert nekem is ez van a modba, csak megtaláltam a topicot...
mert nekem az is a baj, hogy a szeróm tulterheli a sunwell cpu-t, és ezél gondoltam, meg a hiv. forumon is írták...
Szóval értitek
 
Idézetet írta: Pedro date=1327248951\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"15963\" data-ipsquote-contentclass=\"forums_Topic
[pawn]#undef MAX_PLAYERS
#define MAX_PLAYERS 50 //50 = ahány slotos a szervered[/pawn]
Ezt berakod a Gm-ed elejébe és akkor felér a GetMaxPlayers() függvénnyel a MAX_PLAYERS definíció..
 
Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: Gang[St]e[R] - 2012. Január 22. - 20:46:25
a foreach azért jobb, mert ott a MAX_PLAYERS mindig anyi ahány játékos van a szerveren.
Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: kurta999 - 2012. Január 22. - 21:05:30
GetMaxPlayers() -> Lefut egy funkció, ami kiolvassa a server.cfg-bõl a maxplayers értéket. ( Szerintem egy változó értékét adja vissza, ami azt a max értéket tárolja )
MAX_PLAYERS -> Egy difinált érték, a preprocessor lecseréli és csak egy szám lesz ott.
Legjobb megoldás a samp.inc-ben annyira átírni, amennyi slotos a szervered és mindenhol a GetMaxPlayers()-ot MAX_PLAYERS-ra cserélni.
Én úgy csinálom, ez a leggyorsabb és legjobb megoldás.
Ciklusra pedig a foreach, abból is a legújabb verzió.
Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: Gang[St]e[R] - 2012. Január 22. - 21:08:51
Lett 0.3d-re foreach?
Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: Kovacs_Richard - 2012. Január 23. - 02:02:19
MAX_PLAYERID vagy GetMaxPlayers()? én személy szerint egyiket se használnám :) ha tényleg a sebesség csökkentésre mész akkor a leggyorsabb változatot ajánlom...amit szerintem már elõttem is megemlítettek csak kicsit rosszul fogalmazták meg...
\"a foreach azért jobb, mert ott a MAX_PLAYERS mindig anyi ahány játékos van a szerveren.\"
szerintem ez téves, mivel ha tényleg így mûködik akkor egy rakás *****, már bocs :)
a legnagyobb ID-t kell eltárolni fel-le csatlakozásoknál változtatni ezt az értéket :)
ha mondjuk van fent 3 játékos:
ID 0
ID 3
ID 8
akkor is max 8x lép be a ciklus magba mivel a legnagyobb ID 8 :) és a ciklus 1. sorába ezt írd:
[pawn]if(!IsPlayerConnected(i)) { continue; }[/pawn]
és máris átugorja a \"lyukakat\" :)
én személyszerint igy használnám de te döntesz, ennél gyorsabb módszer szerintem nincs, azaz talán 1 akad...
Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: kurta999 - 2012. Január 23. - 07:06:47
a foreach a leggyorsabb, mivel az nem hívja meg még az IsPlayerConnected()-ot sem. Azt megoldja egy tömb olvasásával, ami sokkal gyorsabb, mint a funkció meghívása.
[pawn]
foreach(Player, i)[/pawn]
Ebbõl ez lesz:
[pawn]for (new i = YSI_gSPlayer; _:i != -1; i = YSI_gAPlayer)[/pawn]

Ennyi. Semmi ellenõrzés.


Ezalá mehet a kódod és fut.
Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: totar - 2012. Január 23. - 14:21:40
Köszönöm a sok választ, de én azt szeretném, hogy gyors legyen, és ne terheljen....
Nekem most így vannak:
 

for(new i = 0; i < MAX_PLAYERS; i++)
{
   if (IsPlayerConnected(i))
   {

 
akkor ennél jobb a kurtáé, vagy a Ricsié?
Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: kurta999 - 2012. Január 23. - 18:50:16
foreach(Player, i)
http://sampforum.hu/index.php?topic=12093.0
Ennél NINCS gyorsabb..
Cím: GetMaxPlayers() / MAX_PLAYERS melyik a jobb?
Írta: totar - 2012. Január 23. - 19:58:37
Köszönöm
ezt fogom használni!!!