#define FILTERSCRIPT#include <a_samp>#define piros 0xFF0000C8#define MAX_PING 250public OnPlayerUpdate(playerid){new string[256];new nev[MAX_PLAYER_NAME];GetPlayerName(playerid, nev, sizeof(nev));if(GetPlayerPing(playerid) >= MAX_PING){format(string, sizeof(string), \"%s ki lett rúgva a rendszer által!Indok: Magas ping: %d MAX: 250\", nev, MAX_PING);SendClientMessageToAll(piros, string); Kick(playerid);}return 1;}
#define FILTERSCRIPT#include <a_samp>#define piros 0xFF0000C8#define MAX_PING 250public OnPlayerUpdate(playerid){ new string[256]; new nev[MAX_PLAYER_NAME]; new ping; GetPlayerName(playerid, nev, sizeof(nev)); GetPlayerPing(playerid, ping); if(GetPlayerPing(playerid) >= MAX_PING) { format(string, sizeof(string), \"%s ki lett rúgva a rendszer által!Indok: Magas ping: %d MAX: 250\", nev, ping, MAX_PING); SendClientMessageToAll(piros, string); Kick(playerid); } return 1;}
<-\" post=\"381844\" timestamp=\"1357390824\"]Csak nekem tünt fel hogy kiiratod hogy ki lett rúgva, és azt is kiiratod hogy mennyi volt a pingje és hogy mennyi a max ping? Csak hogy nem kérdezted le a pingjét. #define FILTERSCRIPT#include <a_samp>#define piros 0xFF0000C8#define MAX_PING 250public OnPlayerUpdate(playerid){ new string[256]; new nev[MAX_PLAYER_NAME]; new ping; GetPlayerName(playerid, nev, sizeof(nev)); GetPlayerPing(playerid, ping); if(GetPlayerPing(playerid) >= MAX_PING) { format(string, sizeof(string), \"%s ki lett rúgva a rendszer által!Indok: Magas ping: %d MAX: 250\", nev, ping, MAX_PING); SendClientMessageToAll(piros, string); Kick(playerid); } return 1;} Nem teszteltem! Remélem mûködik! [/quote]Hát, alapból nem fog mûködni, mivel már átfordításnál argumentum hibát fog kiírni. Ezen felül nem találom jó ötletnek létrehozni a változót olyan helyen, ami meghívódik másodpercenként (átlagban) 14x.
#include <a_samp> #define FILTERSCRIPT #define piros 0xFF0000C8 #define MAX_PING 250 new ping; public OnPlayerUpdate(playerid) { ping = GetPlayerPing(playerid); if(ping >= MAX_PING) { new string[256], nev[MAX_PLAYER_NAME]; GetPlayerName(playerid, nev, sizeof(nev)); format(string, sizeof(string), \"%s ki lett rúgva a rendszer által! Indok: Magas ping. Ping: %d. Maximum ping: %d.\", nev, ping, MAX_PING); SendClientMessageToAll(piros, string); Kick(playerid); } return 1; }
Szerintem ez így nem teljesen jó.Így azt a pinget nézi ami abban a pillanatban van.Mivel hogyha 20-30 az átlag pinged és felugrik egyszer a max ping fölé, kickel a szerver.Úgy az igazi ( szerintem ), hogyha átlagot számolsz és a-szerint fut le a többi kód.
#include <a_samp>#define FILTERSCRIPT#define piros 0xFF0000C8#define MAX_PING 250 //Mennyi ping után dobja ki#define MAX_CHECKS 10 //Mennyi mérést átlagoljonnew Ping[MAX_PLAYERS][MAX_CHECKS], Last[MAX_PLAYERS]=0;public OnPlayerUpdate(playerid){new last=Last[playerid]; Ping[playerid][last] = GetPlayerPing(playerid);Last[playerid]++;new ping;for(new i; i<MAX_CHECKS; i++){ ping+=Ping[playerid]; //Összeadja a pingeket}ping/=MAX_CHECKS; if(ping >= MAX_PING) { new string[256], nev[MAX_PLAYER_NAME]; GetPlayerName(playerid, nev, sizeof(nev)); format(string, sizeof(string), \"%s ki lett rúgva a rendszer által! Indok: Magas ping. Ping: %d. Maximum ping: %d.\", nev, ping, MAX_PING); SendClientMessageToAll(piros, string); Kick(playerid); } return 1;}