AFK CONTROL

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
345
Реакции
77
Помог
14 раз(а)
Ошибка
-
ОС
Linux
Amx Mod X
AMX Mod X 1.9.0.5271 (http://www.amxmodx.org)
Authors:
David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko
Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom
Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher
Borja "faluco" Ferrer, Scott "DS" Ehlert
Compiled: Jun 24 2020 13:53:30
Built from: https://github.com/alliedmodders/amxmodx/commit/5eea3e5
Build ID: 5271:5eea3e5
Core mode: JIT+ASM32
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.10.0.760-dev
Build date: 13:06:48 Jun 23 2021 (2629)
Build from: https://github.com/dreamstalker/rehlds/commit/9508c83
ReGamedll
ReGameDLL version: 5.20.0.505-dev
Build date: 11:06:14 Apr 17 2021
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/e86284b
Версия Metamod
Metamod-r v1.3.0.128, API (5:13)
Metamod-r build: 17:47:54 Aug 24 2018
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/0cf2f70
Список метамодулей
[ 1] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5271 ini Start ANY
[ 2] SafeNameAndChat RUN - SafeNameAndChat.so v1.1 ini ANY ANY
[ 3] Reunion RUN - reunion_mm_i386.so v0.1.92d ini Start Never
[ 4] ReAuthCheck RUN - reauthcheck_mm_i386.so v0.1.6 ini Start Never
[ 5] Revoice RUN - revoice_mm_i386.so v0.1.0.34 ini Start Never
[ 6] ReSemiclip RUN - resemiclip_mm_i386.so v2.3.9 ini Chlvl ANY
[ 7] Rechecker RUN - rechecker_mm_i386.so v2.5 ini Chlvl ANY
[ 8] ReSRDetector RUN - resrdetector_mm_i386.so v0.1.0 ini Chlvl ANY
[ 9] WHBlocker RUN - whblocker_mm_i386.so v1.5.697 ini Chlvl ANY
[10] ReAimDetector RUN - reaimdetector_amxx_i386.so v0.2.2 pl1 ANY Never
[11] MySQL RUN - mysql_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[12] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[13] Engine RUN - engine_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[14] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[15] ReAPI RUN - reapi_amxx_i386.so v5.19.0.211-dev pl1 ANY Never
[16] Fun RUN - fun_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
[17] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5271 pl1 ANY ANY
17 plugins, 17 running
Список плагинов
1] Admin Load 3.11 F@nt0M adminload.amxx running
[ 2] Lite Bans 2.2 neygomon LITEBANS_FIX.am running
[ 3] ReAimDetector API 0.2.2 ReHLDS Team reaimdetector.a running
[ 4] Map Spawns Editor 1.0.16 iG_os map_spawns_edit running
[ 5] Mode 2x2 2.5re s1lent mode.amxx running
[ 6] Center Msg Fix 0.4 mx?! CenterMsgFix.am running
[ 7] Custom Player Models A 0.2.1 F@nt0M & BlackSi custom_player_m running
[ 8] Custom Player Models C 0.2.2 BlackSignature custom_player_m running
[ 9] Custom Player Models T 0.2.1 BlackSignature custom_player_m running
[ 10] Map Manager 2.5.61 Mistrick mapmanager.amxx running
[ 11] [ReAPI] Hint blocker 0.1.0 F@tn0M reapi_hint_bloc running
[ 12] Items Restrict 1.0 ReHLDS Team items_restrict. running
[ 13] Admin Commands Log 1.2.1 twisterniq admin_commands_ running
[ 14] GameName Changer 1.0.0 Nordic Warrior GameNameChanger running
[ 15] [ReAPI] Random Weapons 2.4.9 neugomon/h1k3 random_weapons_ running
[ 16] Server Menu 1.5.0 F@nt0M server_menu.amx running
[ 17] Anti Flood 1.9.0.5271 AMXX Dev Team antiflood.amxx running
[ 18] Admin Chat 1.9.0.5271 AMXX Dev Team adminchat.amxx running
[ 19] Admin Votes 1.9.0.5271 AMXX Dev Team adminvote.amxx running
[ 20] Stats Configuration 1.9.0.5271 AMXX Dev Team statscfg.amxx running
[ 21] CSStatsX SQL 0.7.4+2 serfreeman1337 csstatsx_sql.am running
[ 22] Advanced Experience Sy 0.5.9 [REA serfreeman1337/s aes_main.amxx running
[ 23] AES: Informer 0.5.9 [REA serfreeman1337/s aes_informer.am running
[ 24] AES: StatsX 0.5.9 [REA serfreeman1337/s aes_statsx_cstr running
[ 25] AES: CStrike Addon 0.5.9 [REA serfreeman1337/s aes_exp_cstrike running
[ 26] [ReAPI] Round Balancer 1.1 neygomon round_balancer. running
[ 27] Maps Menu 1.4.1 neugomon mapsmenu.amxx running
[ 28] Players Menu 1.7 neugomon players_menu.am running
[ 29] Reset Score 0.0.2f wopox1337 ResetScore.amxx running
[ 30] Reklama 20.05.2020 mx?! reklama.amxx running
[ 31] [ReAPI] AWPoff 1.4.3 PAffAEJIkA :3 awp_off.amxx running
[ 32] Super WeaponMenu 1.1 neygomon s_weaponmenu_re running
[ 33] Lite VoteBan 1.4 neygomon lite_voteban.am running
[ 34] Auto-Give Privileges 1.0 SerGrib auto_VIP.amxx остановлен
[ 35] [190] Ultimate Weapons 21.03.23 SKAJIbnEJIb ultimate_weapon running
[ 36] [190] VIP RBS 20.07.20 SKAJIbnEJIb vip_rbs.amxx running
[ 37] [ReAPI] Healthnade 0.0.2 F@nt0M reapi_healthnad running
[ 38] Demo Recorder 2.4.1 F@nt0M demo_recorder.a running
[ 39] AFK Control ReNew 1.2(a) neygomon afk_control.amx running
[ 40] Ping Checker 26.0.1 RC1 h1k3 ping_checker.am running
[ 41] ReParachute 1.5 PurposeLess reparachute.amx running
[ 42] [ReAPI] No Team Flash 0.0.3 Vaqtincha no_team_flash.a running
[ 43] Damager 0.0.5 steelzzz damager.amxx running
[ 44] ChatAdditions: Core v1.6.1 Sergey Shorokhov ChatAdditions_C debug
[ 45] ChatAdditions: CSBans v1.6.1 Sergey Shorokhov CA_Storage_CSBa debug
[ 46] CA: Mute v1.6.1 Sergey Shorokhov CA_Mute.amxx debug
[ 47] CA: Gag v1.6.1 Sergey Shorokhov CA_Gag.amxx debug
[ 48] Chat Manager 1.1.2-16 Mistrick chatmanager.amx running
[ 49] Block All Adverts 1.3 neygomon block_all_adver running
49 plugins, 48 running
Автор плагина
Neugomon
Версия плагина
1.2(a)
Исходный код
#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <xs>

#define CHAT_PREFIX "^1[^4AFKControl^1]"

enum _:cvars {
MAX_AFK_WARNS,
MAX_SPEC_WARNS,
Float:TIME_AFK_CHECK,
MIN_SPEC_PLAYERS_CHECK,
IMMUNITY_FLAGS,
TRANSFER_BOMB
}
enum coords {
Float:ORIGIN[3],
Float:ANGLES[3]
}
enum warns {
AFK,
SPEC
}

new Float:g_fCoords[MAX_PLAYERS + 1][coords];
new g_iPlayerWarn[MAX_PLAYERS + 1][warns];
new bool:g_IsBot[MAX_PLAYERS + 1];

new g_Cvar[cvars];

public plugin_init()
{
register_plugin("AFK Control ReNew", "1.2(a)", "neygomon");
register_dictionary("afk_control.txt");

RegisterHookChain(RG_CSGameRules_PlayerSpawn, "CSGameRules_PlayerSpawn_Post", true);
RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", true);

bind_pcvar_num(
create_cvar(
"afk_max_afk_warns",
"3",
.description = fmt("%l", "DESC_MAX_AFK_WARNS"),
.has_min = true,
.min_val = 1.0
),
g_Cvar[MAX_AFK_WARNS]
);
bind_pcvar_num(
create_cvar(
"afk_max_spec_warns",
"2",
.description = fmt("%l", "DESC_MAX_SPEC_WARNS"),
.has_min = true,
.min_val = 1.0
),
g_Cvar[MAX_SPEC_WARNS]
);
bind_pcvar_num(
create_cvar(
"afk_min_spec_players",
"30",
.description = fmt("%l", "DESC_MIN_SPEC_PLRS")
),
g_Cvar[MIN_SPEC_PLAYERS_CHECK]
);
bind_pcvar_num(
create_cvar(
"afk_transfer_bomb",
"1",
.description = fmt("%l", "DESC_TRANSFER_BOMB")
),
g_Cvar[TRANSFER_BOMB]
);
bind_pcvar_float(
create_cvar(
"afk_time_afk_check",
"15.0",
.description = fmt("%l", "DESC_TIME_AFK_CHECK"),
.has_min = true,
.min_val = 5.0
),
g_Cvar[TIME_AFK_CHECK]
);

new pCvar1 = create_cvar(
"afk_time_spec_check",
"15.0",
.description = fmt("%l", "DESC_TIME_SPEC_CHECK"),
.has_min = true,
.min_val = 10.0
)

new pCvar2 = create_cvar(
"afk_immunity_flags",
"a",
.description = fmt("%l", "DESC_IMMUNITY_FLAGS")
);

AutoExecConfig();
hook_cvar_change(pCvar2, "hook__cvar_change");
new szFlags[32]; get_pcvar_string(pCvar2, szFlags, charsmax(szFlags));
read__flags(szFlags);

set_task_ex(get_pcvar_float(pCvar1), "check_spectators", .flags = SetTask_Repeat);
}

public client_putinserver(id)
{
g_IsBot[id] = bool:(is_user_hltv(id) || is_user_bot(id));
g_iPlayerWarn[id][SPEC] = 0;
}

public client_disconnected(id)
remove_task(id);

public hook__cvar_change(pCvar, szOldValue[], szNewValue[])
read__flags(szNewValue);

public CSGameRules_PlayerSpawn_Post(const id)
{
if(g_IsBot[id]/* || !is_user_alive(id)*/ || get_user_flags(id) & g_Cvar[IMMUNITY_FLAGS])
return;

g_iPlayerWarn[id][AFK] = 0;
get_entvar(id, var_origin, g_fCoords[id][ORIGIN]);
get_entvar(id, var_angles, g_fCoords[id][ANGLES]);

remove_task(id);
set_task_ex(g_Cvar[TIME_AFK_CHECK], "check_afk", id, .flags = SetTask_Repeat);
}

public CBasePlayer_Killed_Post(const id)
remove_task(id);

public check_afk(id)
{
if(!is_user_alive(id))
remove_task(id);
else
{
static Float:fOrigin[3], Float:fAngles[3];
get_entvar(id, var_origin, fOrigin);
get_entvar(id, var_angles, fAngles);

if(!xs_vec_equal(g_fCoords[id][ORIGIN], fOrigin) || !xs_vec_equal(g_fCoords[id][ANGLES], fAngles))
{
g_iPlayerWarn[id][AFK] = 0;
xs_vec_copy(fOrigin, g_fCoords[id][ORIGIN]);
xs_vec_copy(fAngles, g_fCoords[id][ANGLES]);
}
else if(++g_iPlayerWarn[id][AFK] >= g_Cvar[MAX_AFK_WARNS])
{
user_kill(id, 1);
rg_internal_cmd(id, "jointeam", "6");
rg_send_audio(id, "sound/events/friend_died.wav");
client_print_color(0, id, "%s %l", CHAT_PREFIX, "MSG_TRANSFER_PLAYER", id);
}
else
{
if(rg_has_item_by_name(id, "weapon_c4"))
{
client_print_color(0, id, "%s %l", CHAT_PREFIX, "MSG_TRANSFER_BOMB", id);

if(g_Cvar[TRANSFER_BOMB])
rg_transfer_c4(id, 0);
else rg_drop_items_by_slot(id, C4_SLOT);
}

rg_send_audio(id, "sound/events/tutor_msg.wav");
client_print_color(id, print_team_default, "%s %l", CHAT_PREFIX, "MSG_PLAYER_CHECK_ACTIVITY", g_iPlayerWarn[id][AFK], g_Cvar[MAX_AFK_WARNS]);
}
}
}

public check_spectators()
{
if(get_playersnum() < g_Cvar[MIN_SPEC_PLAYERS_CHECK])
return;

new players[MAX_PLAYERS], pnum;
get_players_ex(players, pnum, GetPlayers_ExcludeBots|GetPlayers_ExcludeHLTV|GetPlayers_MatchTeam, "SPECTATOR");
for(new i, id; i < pnum; i++)
{
id = players[i];

if(get_user_flags(id) & g_Cvar[IMMUNITY_FLAGS])
continue;

switch(get_member(id, m_iTeam))
{
case TEAM_UNASSIGNED, TEAM_SPECTATOR:
{
if(++g_iPlayerWarn[id][SPEC] >= g_Cvar[MAX_SPEC_WARNS])
{
client_print_color(0, id, "%s %l", CHAT_PREFIX, "MSG_KICK_SPEC_REASON", id);
server_cmd("kick #%d %l", get_user_userid(id), "MSG_KICK_PLAYER_REASON");
}
}
}
}
}

read__flags(str[])
g_Cvar[IMMUNITY_FLAGS] = read_flags(str);
Приветствую! В общем суть проблемы. У меня на сервере присутствуют карты по типу $2000$, а там раунды заканчиваются довольно быстро. И как я понял, при каждом респавне игрока - сбрасывается тайминг афк контрола, соответственно, начинается все по новой и игрока не кикает. Есть ли возможность как-то это пофиксить? Или может аналог есть какой-то с другим алгоритмом или что-то в этом роде?
 

Rey

Сообщения
187
Реакции
187
Помог
4 раз(а)
Ну как вариант, можно просто на этой карте значение квара (afk_time_afk_check) ставить меньше и afk_max_afk_warns тоже меньше поставить, чтоб афкшников успевало выкинуть в спектры
создаем тут /cstrike/addons/amxmodx/configs/maps/ конфиг файл с названием карты ($2000$.cfg) и пишем туда квары которые нужно изменить на этой карте (например):
afk_max_afk_warns "1"
afk_time_afk_check "5"
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу