simple afk manager for teams
-
Buzdrev
Извън линия - Потребител
- Мнения: 247
- Регистриран на: 12 Окт 2016, 16:45
- Се отблагодари: 5 пъти
- Получена благодарност: 1 път
- Обратна връзка:
simple afk manager for teams
Използвам този плъгин за кикване на афк-та http://pastebin.com/3iVriqUU
Можете ли да ми го преправите да киква само даден отбор, а не и двата отбора?
Благодаря предварително!
Можете ли да ми го преправите да киква само даден отбор, а не и двата отбора?
Благодаря предварително!
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
Re: simple afk manager for teams
Код за потвърждение: Избери целия код
/*
Plugin: Simple AFK Manager
Version: 2.3
© [gm-project.net] #Staff.
Support on alliedmods.net: http://forums.alliedmods.net/showthread.php?t=110536
Support on gm-project.net: http://gm-community.net/showthread.php?t=581
*/
/*
* It is FIXED version NOT original!
* Changes by Safety1st
*/
#include <amxmodx>
#include <fakemeta>
#include <colorprint>
#define PLUGIN "Simple AFK Manager"
#define VERSION "2.4"
#define AUTHOR "[gm-project.net] #Staff"
#define PREFIX "^1[^4Control-Game^1]"
#define OFFSET_LAST_MOVEMENT 124
new Float:g_spec_time[33]
new g_Reason, g_aTime, g_sTime, g_Report, g_Info,g_iTeam
new g_Immunity, g_showMsg
new g_afkCount[2], bool:gbNoCheckNow
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("sam_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY)
register_dictionary("sam.txt")
g_Reason = register_cvar("afk_kick_reason", "AFK")
g_aTime = register_cvar("afk_time", "150.0")
g_sTime = register_cvar("afk_spec_time", "300.0")
g_Report = register_cvar("afk_report", "2")
g_showMsg = register_cvar("afk_showmsg", "0")
g_Info = register_cvar("afk_info_time", "20.0")
g_Immunity = register_cvar("afk_immunity_flag", "а")
g_iTeam = register_cvar("afk_team", "1")
set_task(10.0, "checkAFK", _, _, _, "b")
register_event( "HLTV", "Event_NewRound", "a", "1=0", "2=0" )
}
public client_putinserver(id) {
g_spec_time[id] = 0.0
}
public Event_NewRound() {
gbNoCheckNow = true // avoid checking first 10 seconds after new round (formerly dead players should be able to move)
}
public checkAFK() {
static bAnnounce = false
new iPlayers[32], iCount, i, iPlayer
get_players( iPlayers, iCount, "ch" ) // skip bots and HLTV
if ( !iCount )
return
if (gbNoCheckNow) {
gbNoCheckNow = false
if (get_pcvar_num(g_showMsg))
bAnnounce = true
return
}
if (bAnnounce) {
ColorPrint(0, "%s %L", PREFIX, LANG_SERVER, "AFK_MSG", g_afkCount[1], g_afkCount[0])
bAnnounce = false
}
new Float:afk_time = get_pcvar_float(g_aTime)
new Float:afk_spec_time = get_pcvar_float(g_sTime)
new Float:afk_info_time = get_pcvar_float(g_Info)
new Float:cur_time, Float:last_activity
new iTeam
g_afkCount[0] = 0
g_afkCount[1] = 0
new strFlag[20]
get_pcvar_string(g_Immunity, strFlag, 19)
new flag = read_flags(strFlag)
cur_time = get_gametime()
if (afk_time)
afk_time = cur_time - afk_time
if (afk_spec_time)
afk_spec_time = cur_time - afk_spec_time
if (afk_info_time)
afk_info_time = cur_time - afk_info_time
for ( i = 0; i < iCount; i++ ) {
iPlayer = iPlayers[i]
if (get_user_flags(iPlayer) & flag)
continue
iTeam = is_user_ingame(iPlayer)
if (iTeam)
{
if (!is_user_alive(iPlayer) || !afk_time)
continue
g_spec_time[iPlayer] = 0.0
last_activity = get_pdata_float(iPlayer, OFFSET_LAST_MOVEMENT)
if (last_activity < afk_time)
kickAFK(iPlayer)
else
{
if (last_activity < afk_info_time) {
ColorPrint(iPlayer, "%s %L", PREFIX, LANG_PLAYER, "AFK_WARN", floatround(last_activity - afk_time))
g_afkCount[iTeam - 1]++
}
}
}
else
{
if (!afk_spec_time)
continue
if (!g_spec_time[iPlayer])
g_spec_time[iPlayer] = cur_time
else {
new iGetTeam = get_pcvar_num(g_iTeam)
if (g_spec_time[iPlayer] < afk_spec_time && get_user_team(id) == iGetTeam)
kickAFK(iPlayer)
}
}
}
}
is_user_ingame(id) {
new szTeam[2]
get_user_team(id, szTeam, 1)
switch( szTeam[0] ) {
case 'T': return 1
case 'C': return 2
default : return 0
}
return 0
}
public kickAFK(id) {
new name[32], reason[128], report
get_user_name(id, name, 31)
get_pcvar_string(g_Reason, reason, 127)
report = get_pcvar_num(g_Report)
message_begin( MSG_ONE, SVC_DISCONNECT, _, id )
write_string( reason )
message_end( )
switch (report) {
case 2 : ColorPrint(0, "%s %L", PREFIX, LANG_SERVER, "AFK_KICK", name)
case 1 : {
new iPlayers[32], iCount, i, iPlayer
get_players( iPlayers, iCount, "ch" ) // skip bots and HLTV
if ( !iCount )
return
for ( i = 0; i < iCount; i++ ) {
iPlayer = iPlayers[i]
if (get_user_flags(iPlayer) & ADMIN_CHAT)
ColorPrint(iPlayer, "%s %L", PREFIX, LANG_PLAYER, "AFK_KICK", name)
}
}
}
}
/* Fedcomp is bot */
afk_team "1" - За кой отбор да важи AFK Kicker - а
MANSION - HNS : 45.144.155.99:27026
ONLINE
ONLINE
-
Unbr3akable
Извън линия - Потребител
- Мнения: 178
- Регистриран на: 21 Дек 2016, 20:50
- Получена благодарност: 6 пъти
-
Unbr3akable
Извън линия - Потребител
- Мнения: 178
- Регистриран на: 21 Дек 2016, 20:50
- Получена благодарност: 6 пъти
Re: simple afk manager for teams
Код за потвърждение: Избери целия код
/*
Plugin: Simple AFK Manager
Version: 2.3
© [gm-project.net] #Staff.
Support on alliedmods.net: http://forums.alliedmods.net/showthread.php?t=110536
Support on gm-project.net: http://gm-community.net/showthread.php?t=581
*/
/*
* It is FIXED version NOT original!
* Changes by Safety1st
*/
#include <amxmodx>
#include <fakemeta>
#include <colorprint>
#define PLUGIN "Simple AFK Manager"
#define VERSION "2.4"
#define AUTHOR "[gm-project.net] #Staff"
#define PREFIX "^1[^4Control-Game^1]"
#define OFFSET_LAST_MOVEMENT 124
new Float:g_spec_time[33]
new g_Reason, g_aTime, g_sTime, g_Report, g_Info,g_iTeam
new g_Immunity, g_showMsg
new g_afkCount[2], bool:gbNoCheckNow
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("sam_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY)
register_dictionary("sam.txt")
g_Reason = register_cvar("afk_kick_reason", "AFK")
g_aTime = register_cvar("afk_time", "150.0")
g_sTime = register_cvar("afk_spec_time", "300.0")
g_Report = register_cvar("afk_report", "2")
g_showMsg = register_cvar("afk_showmsg", "0")
g_Info = register_cvar("afk_info_time", "20.0")
g_Immunity = register_cvar("afk_immunity_flag", "а")
g_iTeam = register_cvar("afk_team", "1")
set_task(10.0, "checkAFK", _, _, _, "b")
register_event( "HLTV", "Event_NewRound", "a", "1=0", "2=0" )
}
public client_putinserver(id) {
g_spec_time[id] = 0.0
}
public Event_NewRound() {
gbNoCheckNow = true // avoid checking first 10 seconds after new round (formerly dead players should be able to move)
}
public checkAFK() {
static bAnnounce = false
new iPlayers[32], iCount, i, iPlayer
get_players( iPlayers, iCount, "ch" ) // skip bots and HLTV
if ( !iCount )
return
if (gbNoCheckNow) {
gbNoCheckNow = false
if (get_pcvar_num(g_showMsg))
bAnnounce = true
return
}
if (bAnnounce) {
ColorPrint(0, "%s %L", PREFIX, LANG_SERVER, "AFK_MSG", g_afkCount[1], g_afkCount[0])
bAnnounce = false
}
new Float:afk_time = get_pcvar_float(g_aTime)
new Float:afk_spec_time = get_pcvar_float(g_sTime)
new Float:afk_info_time = get_pcvar_float(g_Info)
new Float:cur_time, Float:last_activity
new iTeam
g_afkCount[0] = 0
g_afkCount[1] = 0
new strFlag[20]
get_pcvar_string(g_Immunity, strFlag, 19)
new flag = read_flags(strFlag)
cur_time = get_gametime()
if (afk_time)
afk_time = cur_time - afk_time
if (afk_spec_time)
afk_spec_time = cur_time - afk_spec_time
if (afk_info_time)
afk_info_time = cur_time - afk_info_time
for ( i = 0; i < iCount; i++ ) {
iPlayer = iPlayers[i]
if (get_user_flags(iPlayer) & flag)
continue
iTeam = is_user_ingame(iPlayer)
if (iTeam)
{
if (!is_user_alive(iPlayer) || !afk_time)
continue
g_spec_time[iPlayer] = 0.0
last_activity = get_pdata_float(iPlayer, OFFSET_LAST_MOVEMENT)
if (last_activity < afk_time)
kickAFK(iPlayer)
else
{
if (last_activity < afk_info_time) {
ColorPrint(iPlayer, "%s %L", PREFIX, LANG_PLAYER, "AFK_WARN", floatround(last_activity - afk_time))
g_afkCount[iTeam - 1]++
}
}
}
else
{
if (!afk_spec_time)
continue
if (!g_spec_time[iPlayer])
g_spec_time[iPlayer] = cur_time
else {
new iGetTeam = get_pcvar_num(g_iTeam)
if (g_spec_time[iPlayer] < afk_spec_time && get_user_team(iPlayer) == iGetTeam)
kickAFK(iPlayer)
}
}
}
}
is_user_ingame(id) {
new szTeam[2]
get_user_team(id, szTeam, 1)
switch( szTeam[0] ) {
case 'T': return 1
case 'C': return 2
default : return 0
}
return 0
}
public kickAFK(id) {
new name[32], reason[128], report
get_user_name(id, name, 31)
get_pcvar_string(g_Reason, reason, 127)
report = get_pcvar_num(g_Report)
message_begin( MSG_ONE, SVC_DISCONNECT, _, id )
write_string( reason )
message_end( )
switch (report) {
case 2 : ColorPrint(0, "%s %L", PREFIX, LANG_SERVER, "AFK_KICK", name)
case 1 : {
new iPlayers[32], iCount, i, iPlayer
get_players( iPlayers, iCount, "ch" ) // skip bots and HLTV
if ( !iCount )
return
for ( i = 0; i < iCount; i++ ) {
iPlayer = iPlayers[i]
if (get_user_flags(iPlayer) & ADMIN_CHAT)
ColorPrint(iPlayer, "%s %L", PREFIX, LANG_PLAYER, "AFK_KICK", name)
}
}
}
}
/* Fedcomp is bot */
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
Re: simple afk manager for teams
Бях сбъркал index-a извинявам се.Buzdrev написа:undefined symbol "id" при опит за компилация
MANSION - HNS : 45.144.155.99:27026
ONLINE
ONLINE
-
Buzdrev
Извън линия - Потребител
- Мнения: 247
- Регистриран на: 12 Окт 2016, 16:45
- Се отблагодари: 5 пъти
- Получена благодарност: 1 път
- Обратна връзка:
Re: simple afk manager for teams
То добре, ама промяна няма, сложил съм квара да е 2, тоест да работи само за CT отбора, сега го тествах, но ме киква без значение кой отбор съм.
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
Re: simple afk manager for teams
Код за потвърждение: Избери целия код
/*
Plugin: Simple AFK Manager
Version: 2.3
© [gm-project.net] #Staff.
Support on alliedmods.net: http://forums.alliedmods.net/showthread.php?t=110536
Support on gm-project.net: http://gm-community.net/showthread.php?t=581
*/
/*
* It is FIXED version NOT original!
* Changes by Safety1st
*/
#include <amxmodx>
#include <fakemeta>
#include <colorprint>
#define PLUGIN "Simple AFK Manager"
#define VERSION "2.4"
#define AUTHOR "[gm-project.net] #Staff"
#define PREFIX "^1[^4Control-Game^1]"
#define OFFSET_LAST_MOVEMENT 124
new Float:g_spec_time[33]
new g_Reason, g_aTime, g_sTime, g_Report, g_Info,g_iTeam
new g_Immunity, g_showMsg
new g_afkCount[2], bool:gbNoCheckNow
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("sam_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY)
register_dictionary("sam.txt")
g_Reason = register_cvar("afk_kick_reason", "AFK")
g_aTime = register_cvar("afk_time", "150.0")
g_sTime = register_cvar("afk_spec_time", "300.0")
g_Report = register_cvar("afk_report", "2")
g_showMsg = register_cvar("afk_showmsg", "0")
g_Info = register_cvar("afk_info_time", "20.0")
g_Immunity = register_cvar("afk_immunity_flag", "а")
g_iTeam = register_cvar("afk_team", "1")
set_task(10.0, "checkAFK", _, _, _, "b")
register_event( "HLTV", "Event_NewRound", "a", "1=0", "2=0" )
}
public client_putinserver(id) {
g_spec_time[id] = 0.0
}
public Event_NewRound() {
gbNoCheckNow = true // avoid checking first 10 seconds after new round (formerly dead players should be able to move)
}
public checkAFK() {
static bAnnounce = false
new iPlayers[32], iCount, i, iPlayer
get_players( iPlayers, iCount, "ch" ) // skip bots and HLTV
if ( !iCount )
return
if (gbNoCheckNow) {
gbNoCheckNow = false
if (get_pcvar_num(g_showMsg))
bAnnounce = true
return
}
if (bAnnounce) {
ColorPrint(0, "%s %L", PREFIX, LANG_SERVER, "AFK_MSG", g_afkCount[1], g_afkCount[0])
bAnnounce = false
}
new Float:afk_time = get_pcvar_float(g_aTime)
new Float:afk_spec_time = get_pcvar_float(g_sTime)
new Float:afk_info_time = get_pcvar_float(g_Info)
new Float:cur_time, Float:last_activity
new iTeam
g_afkCount[0] = 0
g_afkCount[1] = 0
new strFlag[20]
get_pcvar_string(g_Immunity, strFlag, 19)
new flag = read_flags(strFlag)
cur_time = get_gametime()
if (afk_time)
afk_time = cur_time - afk_time
if (afk_spec_time)
afk_spec_time = cur_time - afk_spec_time
if (afk_info_time)
afk_info_time = cur_time - afk_info_time
for ( i = 0; i < iCount; i++ ) {
iPlayer = iPlayers[i]
if (get_user_flags(iPlayer) & flag)
continue
iTeam = is_user_ingame(iPlayer)
if (iTeam)
{
if (!is_user_alive(iPlayer) || !afk_time)
continue
g_spec_time[iPlayer] = 0.0
last_activity = get_pdata_float(iPlayer, OFFSET_LAST_MOVEMENT)
if (last_activity < afk_time)
kickAFK(iPlayer)
else
{
if (last_activity < afk_info_time) {
ColorPrint(iPlayer, "%s %L", PREFIX, LANG_PLAYER, "AFK_WARN", floatround(last_activity - afk_time))
g_afkCount[iTeam - 1]++
}
}
}
else
{
if (!afk_spec_time)
continue
if (!g_spec_time[iPlayer])
g_spec_time[iPlayer] = cur_time
else {
if (g_spec_time[iPlayer] < afk_spec_time )
kickAFK(iPlayer)
}
}
}
}
is_user_ingame(id) {
new szTeam[2]
get_user_team(id, szTeam, 1)
switch( szTeam[0] ) {
case 'T': return 1
case 'C': return 2
default : return 0
}
return 0
}
public kickAFK(id) {
new name[32], reason[128], report
new iGetTeam = get_pcvar_num(g_iTeam)
if(!get_user_team(id) == iGetTeam)
return
get_user_name(id, name, 31)
get_pcvar_string(g_Reason, reason, 127)
report = get_pcvar_num(g_Report)
message_begin( MSG_ONE, SVC_DISCONNECT, _, id )
write_string( reason )
message_end( )
switch (report) {
case 2 : ColorPrint(0, "%s %L", PREFIX, LANG_SERVER, "AFK_KICK", name)
case 1 : {
new iPlayers[32], iCount, i, iPlayer
get_players( iPlayers, iCount, "ch" ) // skip bots and HLTV
if ( !iCount )
return
for ( i = 0; i < iCount; i++ ) {
iPlayer = iPlayers[i]
if (get_user_flags(iPlayer) & ADMIN_CHAT)
ColorPrint(iPlayer, "%s %L", PREFIX, LANG_PLAYER, "AFK_KICK", name)
}
}
}
}
/* Fedcomp is bot */
MANSION - HNS : 45.144.155.99:27026
ONLINE
ONLINE
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 0 Отговори
- 946 Преглеждания
-
Последно мнение от iv69
-
- 5 Отговори
- 1831 Преглеждания
-
Последно мнение от OciXCrom
-
- 5 Отговори
- 2219 Преглеждания
-
Последно мнение от OciXCrom
-
- 9 Отговори
- 5172 Преглеждания
-
Последно мнение от Orangegame14
-
- 0 Отговори
- 1451 Преглеждания
-
Последно мнение от Infamous2018
-
- 0 Отговори
- 1308 Преглеждания
-
Последно мнение от iv69
-
- 2 Отговори
- 1464 Преглеждания
-
Последно мнение от antonstoqnovv
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 20 госта