Skip to main content

NextClient как гарантия

Возможности безопасности NextClient позволяют предоставлять некоторые гарантии для игрового сервера со стороны игрока, который использует этот клиент.

Предоставление привилегий​

Вероятно, вы захотите распространить NextClient среди игроков своего сервера, чтобы предоставить им же больше возможностей и более качественный опыт от игры на вашем сервере. Поэтому, для этого нужно как-то стимулировать игроков закачивать этот клиент и играть с него. Обычно для этого устраивают кампании по предоставлению привилегий для игроков, которые играют с NextClient.

Единственным надежным способом определить, играет ли игрок с NextClient, является использование функции ncl_is_using_nextclient с флагом NCL_USING_VERIFICATED:

Пример выдачи VIP флага для игроков с NextClient:

ncl_grant_vip.sma
#include <amxmodx>
#include <next_client_api>

new const VIP_FLAGS[] = "f"; // вип флаги, которые мы предоставляем

public ncl_client_api_ready(id) {
// Проверяем, что игрок зашел на сервер с верифицированным клиентом
if(ncl_is_using_nextclient(id) == NCL_USING_VERIFICATED)
set_user_flags(id, read_flags(VIP_FLAGS));
}

Защита от читов​

Более того NextClient можно использовать как гарантию того, что игрок вряд ли играет с читами. Дело в том что из-за архитектурных особенностей NextClient, на нем перестают работать около 95% читов. В связи эти получается, что шансы того, что игрок на NextClient играет без читов на много выше даже по сравнению с игроком, который играет на steam-версии игры.

Этот очень полезный признак можно взять на вооружение для серверов с высоким уровнем читерства: игроки ничего не потеряют, если перейдут на более современныйи обновляемый клиент игры, а админы приобретут инструменты анализа игроков на риск использования читов, что приведет к снижению числа ложных банов добросовестных игроков, так как факт использование NextClient игроком будет весом поводом для администратора, чтобы усомниться в нечестности игрока.

Пример плагина на просмотр списка игроков с NextClient:

ncl_view_players.sma
#include <amxmodx>
#include <next_client_api>

public plugin_init() {
register_clcmd("ncl_players", "clcmd_ncl_players");
register_clcmd("say /ncl_players", "clcmd_ncl_players");
}

public clcmd_ncl_players(id) {
new menu = menu_create("\yСписок игроков с NextClient", "menu_handle_ncl_players");

for(new i = 1, eNclUsing:type, version[3]; i <= MaxClients; i++) {
if(!is_user_connected(i)) continue;

type = ncl_is_using_nextclient(i);
if(type == NCL_NOT_USING) continue;

ncl_get_nextclient_version(i, version[0], version[1], version[2]);
menu_additem(menu, fmt("%n \r[\w%d.%d.%d\r] %s", i, version[0], version[1], version[2], type == NCL_USING_VERIFICATED ? "\y[вериф.]" : ""))
}

menu_setprop(menu, MPROP_EXITNAME, fmt("%L", id, "EXIT"));
menu_setprop(menu, MPROP_NEXTNAME, fmt("%L", id, "MORE"));
menu_setprop(menu, MPROP_BACKNAME, fmt("%L", id, "BACK"));

if(menu_items(menu)) menu_display(id, menu);
else {
client_print(id, print_chat, "*** На сервере нет игроков с NextClient");
menu_destroy(menu);
}

return PLUGIN_HANDLED;
}

public menu_handle_ncl_players(id, menu, item) {
menu_destroy(menu);
}

После этого, используя команду /ncl_players в чате или ncl_players в консоли откроется меню с игроками, которые используют NextClient, а на против верифицированных игроков будет указан постфикс [вериф.]. Игрокам с таким постфиксом можно точно верить, что они используют NextClient.