Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

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

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

AFK плагин

, выдаёт ошибку в логах
Статус пользователя steep.azat
сообщение 16.11.2012, 15:15
Сообщение #1
Стаж: 15 лет

Сообщений: 106
Благодарностей: 8
Полезность: 65

Вот плагин, исходник:
AFKplugins
/*
Plugin: Simple AFK Manager
Version: 2.3
© [gm-project.net] #Staff.
// Fixed by hunter
*/

#include <amxmodx>
#include <fakemeta>

#define PLUGIN "Simple AFK Manager"
#define VERSION "2.3"
#define AUTHOR "#Staff"

#define MAX_PLAYERS 32

#define PREFIX "AFK"

#define OFFSET_LAST_MOVEMENT 124

new g_maxplayers

new Float:g_spec_time[MAX_PLAYERS+1]

new g_Reason, g_aTime, g_sTime, g_Report, g_Info
new g_Immunity, g_kickBots, g_kickHLTV, g_showMsg
new g_afkCount[2]

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

g_maxplayers = get_maxplayers()

g_Reason = register_cvar("afk_kick_reason", "AFK")
g_aTime = register_cvar("afk_time", "60.0")
g_sTime = register_cvar("afk_spec_time", "180.0")
g_Report = register_cvar("afk_report", "2")
g_showMsg = register_cvar("afk_showmsg", "1")
g_Info = register_cvar("afk_info_time", "20.0")
g_Immunity = register_cvar("afk_immunity_flag", "b")
g_kickBots = register_cvar("afk_kick_bots", "0")
g_kickHLTV = register_cvar("afk_kick_hltv", "0")

register_dictionary("sam.txt")

register_event("HLTV", "event_new_round", "a", "1=0", "2=0")

register_cvar("sam_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY)
set_task(10.0, "checkAFK", _, _, _, "b")
register_logevent("RoundStart", 2, "1=Round_Start")
}

public client_putinserver(id) {
g_spec_time[id] = 0.0
}

public event_new_round()
{
new Float:gametime = get_gametime()
for (new i = 1; i <= g_maxplayers; i++)
{
if ( is_user_connected(i) )
set_pdata_float(i, OFFSET_LAST_MOVEMENT, gametime)
}
return PLUGIN_CONTINUE
}

public checkAFK() {
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 i, Float:cur_time, team, Float:lastActivity
g_afkCount[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

new kick_bot = get_pcvar_num(g_kickBots)
new kick_hltv = get_pcvar_num(g_kickHLTV)

for (i = 1; i <= g_maxplayers; i++)
{
if (!is_user_connected(i) || (get_user_flags(i) & flag)
|| (!kick_bot && is_user_bot(i))
|| (!kick_hltv && is_user_hltv(i)))
continue

team = get_user_team(i)
if (1 <= team <= 2)
{
if (!is_user_alive(i) || !afk_time)
continue
g_spec_time[i] = 0.0
lastActivity = get_pdata_float(i, OFFSET_LAST_MOVEMENT)
if (lastActivity < afk_time)
kickAFK(i)
else
{
if (lastActivity < afk_info_time) {
client_print(i, print_chat, "[%s] %L", PREFIX, LANG_PLAYER, "AFK_WARN", floatround(afk_info_time - afk_time))
g_afkCount[team - 1] ++
}
}
}
else
{
if (!afk_spec_time)
continue
if (!g_spec_time[i])
g_spec_time[i] = cur_time
else
if (g_spec_time[i] < afk_spec_time)
kickAFK(i)
}

}
}

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( )
server_exec()

if (report == 2)
client_print(0, print_chat, "[%s] %L", PREFIX, LANG_PLAYER, "AFK_KICK", name)
else
if (report == 1) {
for (report = 1; report <= g_maxplayers; report++)
{
if (get_user_flags(report) & ADMIN_CHAT)
client_print(report, print_chat, "[%s] %L", PREFIX, LANG_PLAYER, "AFK_KICK", name)
}
}

}

тот же исходник, тока в теге code (мб комуто удобней так)
CODE
/*
Plugin: Simple AFK Manager
Version: 2.3
© [gm-project.net] #Staff.
// Fixed by hunter
*/

#include <amxmodx>
#include <fakemeta>

#define PLUGIN "Simple AFK Manager"
#define VERSION "2.3"
#define AUTHOR "#Staff"

#define MAX_PLAYERS 32

#define PREFIX "AFK"

#define OFFSET_LAST_MOVEMENT 124

new g_maxplayers

new Float:g_spec_time[MAX_PLAYERS+1]

new g_Reason, g_aTime, g_sTime, g_Report, g_Info
new g_Immunity, g_kickBots, g_kickHLTV, g_showMsg
new g_afkCount[2]

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

g_maxplayers = get_maxplayers()

g_Reason = register_cvar("afk_kick_reason", "AFK")
g_aTime = register_cvar("afk_time", "60.0")
g_sTime = register_cvar("afk_spec_time", "180.0")
g_Report = register_cvar("afk_report", "2")
g_showMsg = register_cvar("afk_showmsg", "1")
g_Info = register_cvar("afk_info_time", "20.0")
g_Immunity = register_cvar("afk_immunity_flag", "b")
g_kickBots = register_cvar("afk_kick_bots", "0")
g_kickHLTV = register_cvar("afk_kick_hltv", "0")

register_dictionary("sam.txt")

register_event("HLTV", "event_new_round", "a", "1=0", "2=0")

register_cvar("sam_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY)
set_task(10.0, "checkAFK", _, _, _, "b")
register_logevent("RoundStart", 2, "1=Round_Start")
}

public client_putinserver(id) {
g_spec_time[id] = 0.0
}

public event_new_round()
{
new Float:gametime = get_gametime()
for (new i = 1; i <= g_maxplayers; i++)
{
if ( is_user_connected(i) )
set_pdata_float(i, OFFSET_LAST_MOVEMENT, gametime)
}
return PLUGIN_CONTINUE
}

public checkAFK() {
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 i, Float:cur_time, team, Float:lastActivity
g_afkCount[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

new kick_bot = get_pcvar_num(g_kickBots)
new kick_hltv = get_pcvar_num(g_kickHLTV)

for (i = 1; i <= g_maxplayers; i++)
{
if (!is_user_connected(i) || (get_user_flags(i) & flag)
|| (!kick_bot && is_user_bot(i))
|| (!kick_hltv && is_user_hltv(i)))
continue

team = get_user_team(i)
if (1 <= team <= 2)
{
if (!is_user_alive(i) || !afk_time)
continue
g_spec_time[i] = 0.0
lastActivity = get_pdata_float(i, OFFSET_LAST_MOVEMENT)
if (lastActivity < afk_time)
kickAFK(i)
else
{
if (lastActivity < afk_info_time) {
client_print(i, print_chat, "[%s] %L", PREFIX, LANG_PLAYER, "AFK_WARN", floatround(afk_info_time - afk_time))
g_afkCount[team - 1] ++
}
}
}
else
{
if (!afk_spec_time)
continue
if (!g_spec_time[i])
g_spec_time[i] = cur_time
else
if (g_spec_time[i] < afk_spec_time)
kickAFK(i)
}

}
}

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( )
server_exec()

if (report == 2)
client_print(0, print_chat, "[%s] %L", PREFIX, LANG_PLAYER, "AFK_KICK", name)
else
if (report == 1) {
for (report = 1; report <= g_maxplayers; report++)
{
if (get_user_flags(report) & ADMIN_CHAT)
client_print(report, print_chat, "[%s] %L", PREFIX, LANG_PLAYER, "AFK_KICK", name)
}
}

}

Вот лог ошибки в amxmodx:
logs
L 11/16/2012 - 19:52:17: Start of error session.
L 11/16/2012 - 19:52:17: Info (map "surf_ski_2") (file "addons/amxmodx/logs/error_20121116.log")
L 11/16/2012 - 19:52:17: Function "RoundStart" was not found
L 11/16/2012 - 19:52:17: [AMXX] Run time error 19 (plugin "sam.amxx") - debug not enabled!
L 11/16/2012 - 19:52:17: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).


В чём трабл?

Отредактировал: steep.azat, - 16.11.2012, 15:31
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
underwoker
сообщение 16.11.2012, 15:28
Сообщение #2
Стаж: 56 лет


Благодарностей:

Код
[AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).


Похоже ты думаешь что это
Код
[AMXX] Run time error 19

Обозначает строчку... cbf1b2bfde1a.gif
Перейти в начало страницы     
   +
Статус пользователя steep.azat
сообщение 16.11.2012, 15:30
Сообщение #3
Стаж: 15 лет

Сообщений: 106
Благодарностей: 8
Полезность: 65

Цитата(underwoker @ 16.11.2012, 16:28) *
Код
[AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).


Похоже ты думаешь что это
Код
[AMXX] Run time error 19

Обозначает строчку... cbf1b2bfde1a.gif


упс, увидел цифру сразу предположил что это он про строчку, всё же как ПРОБЛЕМУ ТО РЕШИТЬ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
underwoker
сообщение 16.11.2012, 15:31
Сообщение #4
Стаж: 56 лет


Благодарностей:

Для начала сделай это
Код
[AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
Перейти в начало страницы     
   + Цитировать сообщение
Статус пользователя steep.azat
сообщение 16.11.2012, 15:34
Сообщение #5
Стаж: 15 лет

Сообщений: 106
Благодарностей: 8
Полезность: 65

Цитата(underwoker @ 16.11.2012, 16:31) *
Для начала сделай это
Код
[AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).


я не понял куда конкретно в plugins.ini, после плагинов или после названия плагина написать debug
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
underwoker
сообщение 16.11.2012, 15:39
Сообщение #6
Стаж: 56 лет


Благодарностей:

после названия плагина.
Перейти в начало страницы     
   + Цитировать сообщение
Статус пользователя steep.azat
сообщение 16.11.2012, 16:16
Сообщение #7
Стаж: 15 лет

Сообщений: 106
Благодарностей: 8
Полезность: 65

теперь лог пишет это:

CODE
L 11/16/2012 - 21:10:34: Start of error session.
L 11/16/2012 - 21:10:34: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20121116.log")
L 11/16/2012 - 21:10:34: Function "RoundStart" was not found
L 11/16/2012 - 21:10:34: [AMXX] Displaying debug trace (plugin "sam.amxx")
L 11/16/2012 - 21:10:34: [AMXX] Run time error 19: function not found
L 11/16/2012 - 21:10:34: [AMXX] [0] sam.sma::plugin_init (line 50)


либо киньте мне ссыль на хороший рабочий плагин кик AFK, плагин без лишних заморочек!

Отредактировал: steep.azat, - 16.11.2012, 16:16
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
WMP
сообщение 16.11.2012, 16:28
Сообщение #8
Стаж: 13 лет

Сообщений: 272
Благодарностей: 50
Полезность: 0

С чего это мы тебе обязаны искать? Самому лень найти? www.google.ru
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 16.11.2012, 16:33
Сообщение #9


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Переустановите amxmodx (1.8.1)
Брать только отсюда: http://www.amxmodx.org/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя steep.azat
сообщение 16.11.2012, 16:33
Сообщение #10
Стаж: 15 лет

Сообщений: 106
Благодарностей: 8
Полезность: 65

Цитата(WMP @ 16.11.2012, 16:28) *
С чего это мы тебе обязаны искать? Самому лень найти? www.google.ru


ни фига ты умный, лучше бы написал как исправить а то умный такой прям аж ..., ясень пень что не кто не обязан тут не кому ни чего, но может быть у кого то есть плагин хороший которым он не проч поделится!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 16.11.2012, 17:48
Сообщение #11
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Всё вам правильно написали. Нефиг юзать 'пофикшенные' говноскриптерами вещи.

Поделюсь, почему же нет ;)
На практике не протестирована только фишка 'it can detect AFKers who were killed last round'. Ставьте afk_time на примерно как время раунда - и всё должно быть OK.

Отредактировал: Safety1st, - 16.11.2012, 17:50
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: