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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: Zotyabuszos - 2012. február 25. - 15:50:16

Cím: Anti High Ping
Írta: Zotyabuszos - 2012. február 25. - 15:50:16
Ha idegesít ,hogy laggol a szervered az 1000 pingesek miatt egy megoldás:
Készítõ: Nocoxil
A többi #define-hoz:
 
#define MAX_PING 450 // definiáljuk mennyi legyen a max ping, ez átírható bármennyire

 
OnPlayerUpdate-hez:
 

if(gPlayerLogged[playerid] == 1 && GetPlayerPing(playerid) > MAX_PING) //  A gPlayerLogged-hez azt írd mikor a felhasználó be van jelentkezve. Lekérjük ,hogy a felhasználó be van-e jelentkezve és a pingjét. Ha be van jelentkezve összehasonlítjuk a MAX_PING értékével és ha nagyobb a játékos pingje akkor kickeljük.
       {
         SendClientMessage(playerid, COLOR_LIGHTRED, \"Túl nagy volt a pinged! (+450) Kickelve lettél! Kapcsold ki az egyéb alkalmazásokat játék közben!\"); // Üzenetben elküldjük az okát
        Kick(playerid); // Majd kickeljük
        return 0;
         }

 
Ha szeretnénk elõtte figyelmeztetni, hogy nagy a pingje, akkor ezt is odatehetjük:
 

     if(gPlayerLogged[playerid] == 1 && GetPlayerPing(playerid) > 350)
    {
         SendClientMessage(playerid, COLOR_LIGHTRED, \"Túl nagy a pinged! (+350) Kapcsold ki az egyéb alkalmazásokat játék közben!\");
        return 0;
    }

Összeségében:

public OnPlayerUpdate(playerid)
{
     if(gPlayerLogged[playerid] == 1 && GetPlayerPing(playerid) > MAX_PING)
    {
         SendClientMessage(playerid, COLOR_LIGHTRED, \"Túl nagy volt a pinged! (+450) Kickelve lettél! Kapcsold ki az egyéb alkalmazásokat játék közben!\");
        Kick(playerid);
        return 0;
    }
      if(gPlayerLogged[playerid] == 1 && GetPlayerPing(playerid) > 350)
    {
         SendClientMessage(playerid, COLOR_LIGHTRED, \"Túl nagy a pinged! (+350) Kapcsold ki az egyéb alkalmazásokat játék közben!\");
        return 0;
    }
return 1;
}

Teszteltem, mûködött
Cím: Anti High Ping
Írta: Flash - 2012. február 25. - 16:49:16
Jónak tûnik. :)
Am az OnPlayerUpdate fügvény lagoltatja a szervert. :/
Cím: Anti High Ping
Írta: Csabesz - 2012. február 25. - 17:02:32
A 350-et nem lehet módosítani?
Ha igen, akkor célszerû lenne ez a megoldás:
 
MAX_PING-100
Cím: Anti High Ping
Írta: Penzykee. - 2012. február 25. - 17:08:23
-100?
Cím: Anti High Ping
Írta: Norby - 2012. február 25. - 17:19:56
Idézetet írta: pEnZi date=1330186103\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"17504\" data-ipsquote-contentclass=\"forums_Topic
-100?
 
A MAX_PING bõl kivon -100 at az az 350 lesz :)
És ez szerintem is a jó megoldás, célszerûbb így használni!
Cím: Anti High Ping
Írta: kurta999 - 2012. február 25. - 17:21:08
Jó, de így nem a legjobb megoldás.
Átlagot kéne kiszámítani és akkor kickelni, amikor az átlaga nagyobb, mint a 450.
Mert ha egy pillanatra feljebb megy a pinged, akkor rögtön kickelni fog.
Valamikor a GetPlayerPing() pedig 65535-el tér vissza.
Cím: Anti High Ping
Írta: Zotyabuszos - 2012. február 25. - 17:30:06
Általában belépéskor figyeltem meg a 65535 -es pinget, ezért igazítottam a spawn-hoz.[/size] 
Cím: Anti High Ping
Írta: DrAkE - 2012. február 25. - 17:58:41
Idézetet írta: Zotyabuszos date=1330181416\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"17504\" data-ipsquote-contentclass=\"forums_Topic
Ha idegesít ,hogy laggol a szervered az 1000 pingesek miatt egy megoldás:
 
Szerintem sokan tévedésben vannak ez ügyben kapcsolatosan. Hiszen ha egy embernek nagy a pingje a következõk miatt lehetnek:
1. Tölt lefele, emiatt a hálózati terhelése nagyobb és nem tud gyorsan letölteni adatokat.
2. A feltöltése nem a legfényesebb.
3. Az internetkapcsolata lassú.
4. Távol van a szerver szolgáltatótól.
A szerver csak a klienst szolgálja ki, illetve a kliensek töltenek fel. Ha több embernek nagy a pingje attól nem fog laggolni.