Я просто не могу найти адекватной причины добавить квар этот.юзабилити
В таком случае и значение пинга константой задавали бы)настроил один раз и воткнул на серв. Зачем дергать настройки постоянно?
Как сказал Sonyx - для повышения юзабилити и смены значения без компилирования плагина.Так, в каком случае мы будем менять квар, который будет контролировать кол-во проверок?
//// ping_checker.sma
//
// C:\Users\Serega\Desktop\AMX 1.8.3\amxmodx\scripting\ping_checker.sma(28) : error 037: invalid string (possibly non-terminated string)
// C:\Users\Serega\Desktop\AMX 1.8.3\amxmodx\scripting\ping_checker.sma(28 -- 30) : error 001: expected token: ",", but found "-identifier-"
//
// 2 Errors.
// Could not locate output file C:\Users\Serega\Desktop\AMX 1.8.3\amxmodx\scripting\compiled\ping_checker.amx (compile failed).
//
// Compilation Time: 0,61 sec
// ----------------------------------------
Небольшое дополнение:) Тогда NONE можно убрать.h1k3 Я думаю так будет правильнее.
Код:-enum { +enum player_s { TESTS, PING, NONE }; -new g_arPing[MAX_PLAYERS+1][NONE]; +new g_arPing[MAX_PLAYERS+1][player_s];
-public client_putinserver(id) arrayset(g_arPing[id], 0, NONE);
+public client_putinserver(id) arrayset(g_arPing[id], 0, player_s);
#include <amxmodx>
#define IMMUNITY_FLAG (ADMIN_MENU|ADMIN_LEVEL_H)
#define TESTS_COUNT 10
#define NOTIFY_ALL
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#define MAX_PLAYERS 32
#endif
new pcvMaxPing;
enum {
TESTS,
PING,
NONE
};
new g_arPing[MAX_PLAYERS+1][NONE];
public plugin_init()
{
register_plugin("Ping Checker", "26.0.1 RC1", "h1k3");
register_dictionary("ping_checker.txt");
pcvMaxPing = register_cvar("amx_max_ping", "120");
set_task(5.0, "TaskPlayersCheck", .flags="b");
}
public client_putinserver(id) arrayset(g_arPing[id], 0, NONE);
public TaskPlayersCheck()
{
new arPlayers[32], iNum; get_players(arPlayers, iNum, "ch");
for (new i = 0, iMaxPing = get_pcvar_num(pcvMaxPing), pPlayer, iPing, iLoss; i < iNum; i++) {
pPlayer = arPlayers[I];[/I]
#if defined IMMUNITY_FLAG
if (get_user_flags(pPlayer) & IMMUNITY_FLAG) {
continue;
}
#endif
if (++g_arPing[pPlayer][TESTS] > TESTS_COUNT) {
if (g_arPing[pPlayer][PING] / g_arPing[pPlayer][TESTS] > iMaxPing) {
server_cmd("kick #%d ^"%L^"", get_user_userid(pPlayer), pPlayer, "PING_REASON_KICK");
#if defined NOTIFY_ALL
new szName[32];
get_user_name(pPlayer, szName, charsmax(szName));
client_print_color(0, pPlayer, "%L", LANG_PLAYER, "PING_NOTIFY_PLAYERS", szName);
#endif
} else arrayset(g_arPing[pPlayer], 0, NONE);
} else {
get_user_ping(pPlayer, iPing, iLoss);
g_arPing[pPlayer][PING] += iPing;
}
}
}
И правда. Мне тоже попались игроги с пингом 120-180, но со стороны выглядящих без всякого намёка на лаги. Кому интересно, вот демка - пример одного из таких. Кто-нибудь знает почему так получается?...I mean Sometimes are people who play with ping 300 or 500 but players aren't lagging an server How much damage will a player do to a server i can't say But somes there is a player with 30-100 ping jumping and this player lagging a server...