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

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

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

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

Ошибка плагина AMXBans CS 1.6

Статус пользователя Dillon
сообщение 3.8.2017, 9:38
Сообщение #1


Стаж: 13 лет
Город: Москва

Сообщений: 49
Благодарностей: 3
Полезность: 46

Всем доброго времени суток, появилась ошибка на сервере от плагина AMXBans, помогите решить.

Код
L 07/31/2017 - 11:42:31: Start of error session.
L 07/31/2017 - 11:42:31: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20170731.log")
L 07/31/2017 - 11:42:31: Invalid player id 21
L 07/31/2017 - 11:42:31: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 07/31/2017 - 11:42:31: [AMXX] Run time error 10: native error (native "client_print")
L 07/31/2017 - 11:42:31: [AMXX]    [0] cmd_ban.inl::_select_amxbans_motd (line 733)
L 07/31/2017 - 11:42:31: [AMXX]    [1] color_chat.inl::ColorChat (line 89)
L 07/31/2017 - 11:42:31: [AMXX]    [2] cmd_ban.inl::_select_amxbans_motd (line 732)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя JIuXeP
сообщение 3.8.2017, 18:10
Сообщение #2


Стаж: 12 лет

Сообщений: 338
Благодарностей: 205
Полезность: 792

GM 1.6?

На вкус и цвет, несколько вариантов исправления:
include/amxbans/cmd_ban.inl
Мда.. тут бы рефакторинг точно не помешал...

Везде в этом файле найти Код:
if(get_user_state(i, PDATA_HLTV) || get_user_state(i, PDATA_BOT) || !get_user_state(i, PDATA_CONNECTED)) continue
И заменить на Код:
if(get_user_state(i, PDATA_HLTV) || get_user_state(i, PDATA_BOT) || is_user_disconnected(i)) continue
Или лучше на Код:
if(get_user_state(i, PDATA_HLTV) || get_user_state(i, PDATA_BOT) || get_user_state(i, PDATA_DISCONNECTED)) continue
amxbans_main.sma
Найти блок Код:
public client_disconnect(id)
{
if(!get_user_state(id, PDATA_KICKED) && !get_user_state(id, PDATA_SUPER_ADMIN))
{
disconnected_add_player(id)
}

remove_task(id + 200)
remove_task(id + 201)
remove_task(id + 202)
remove_task(id + 203)
remove_task(id + 204)

return set_user_state(id, PDATA_DISCONNECTED)
}

Заменить на Код:
#if AMXX_VERSION_NUM < 183
public client_disconnect(id)
#else
public client_disconnected(id)
#endif
{
if(!get_user_state(id, PDATA_KICKED) && !get_user_state(id, PDATA_SUPER_ADMIN))
{
disconnected_add_player(id)
}

remove_task(id + 200)
remove_task(id + 201)
remove_task(id + 202)
remove_task(id + 203)
remove_task(id + 204)

set_user_state(id, PDATA_DISCONNECTED)
remove_user_state(id, PDATA_CONNECTED) // для исправления вышеуказанной ошибки этого достаточно. Правда, возможно появятся какие баги.. не хочу копаться в коде
return PLUGIN_CONTINUE
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dillon
сообщение 3.8.2017, 21:47
Сообщение #3


Стаж: 13 лет
Город: Москва

Сообщений: 49
Благодарностей: 3
Полезность: 46

JIuXeP, да, GM 1.6. А что ты вы посоветовали? Что лучше?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dillon
сообщение 4.8.2017, 13:12
Сообщение #4


Стаж: 13 лет
Город: Москва

Сообщений: 49
Благодарностей: 3
Полезность: 46

JIuXeP, заменил код include/amxbans/cmd_ban.inl - не помогло. При попытки скомпелировать amxbans_main.sma вылезает кучу непонятных ошибок.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JIuXeP
сообщение 5.8.2017, 0:39
Сообщение #5


Стаж: 12 лет

Сообщений: 338
Благодарностей: 205
Полезность: 792

Цитата(Dillon @ 3.8.2017, 22:47) *
JIuXeP, да, GM 1.6. А что ты вы посоветовали? Что лучше?
Я, как и любой здесь, могу многое насоветовать. Например, вообще выбросить gm 1.6. Та же версия 6.13 2014-го года написана лучше этого... при необходимости прикрутить хеширование паролей всегда можно)

Любой вариант будет рабочим. Можно было воспользоваться и функцией is_user_connected:
cmd_ban.inl
Код:
if(get_user_state(i, PDATA_HLTV) || get_user_state(i, PDATA_BOT) || !get_user_state(i, PDATA_CONNECTED)) continue
->>
Код:
if(get_user_state(i, PDATA_HLTV) || get_user_state(i, PDATA_BOT) || !is_user_connected(i)) continue

Но раз уж тут и так работа с битсуммами, будет целесообразнее пользоваться готовыми макросами для работы с ними.

Цитата(Dillon @ 4.8.2017, 14:12) *
JIuXeP, заменил код include/amxbans/cmd_ban.inl - не помогло.
Что не помогло, ошибки и дальше сыпятся? Возможно задам глупый вопрос... но вы после этих правок перекомпилировали amxbans_main.sma?
Так же, необходимо убедиться в том, что плагин был скомпилировал. Поэтому, если видите в консоли комплирятора "already compiled", удалите amxx из папки compiled (или вовсе папку compiled) и перекомпилируйте плагин. Залейте на сервер :)

Цитата(Dillon @ 4.8.2017, 14:12) *
При попытки скомпелировать amxbans_main.sma вылезает кучу непонятных ошибок.
По невнимательности копирнул код с какими-то своими правками...
amxbans_main.sma
Найти блок Код:
public client_disconnect(id) 
{
if(!get_user_state(id, PDATA_KICKED) && !get_user_state(id, PDATA_IMMUNITY))
{
disconnected_add_player(id)
}

remove_task(id + 200)
remove_task(id + 201)
remove_task(id + 202)
remove_task(id + 203)
remove_task(id + 204)

return set_user_state(id, PDATA_DISCONNECTED)
}

Заменить на Код:
#if AMXX_VERSION_NUM < 183
public client_disconnect(id)
#else
public client_disconnected(id)
#endif
{
if(!get_user_state(id, PDATA_KICKED) && !get_user_state(id, PDATA_IMMUNITY))
{
disconnected_add_player(id)
}

remove_task(id + 200)
remove_task(id + 201)
remove_task(id + 202)
remove_task(id + 203)
remove_task(id + 204)

set_user_state(id, PDATA_DISCONNECTED)
remove_user_state(id, PDATA_CONNECTED)
return PLUGIN_CONTINUE
}


Отредактировал: JIuXeP, - 5.8.2017, 0:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 5.8.2017, 6:10
Сообщение #6
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

Цитата(Dillon @ 4.8.2017, 0:47) *
JIuXeP, да, GM 1.6. А что ты вы посоветовали? Что лучше?

Фрешбанс и допбан лучше поставь
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dillon
сообщение 10.8.2017, 22:55
Сообщение #7


Стаж: 13 лет
Город: Москва

Сообщений: 49
Благодарностей: 3
Полезность: 46

JIuXeP, в файле cmd_ban.inl все заменил как и писали после перекомпилировал файл amxbans_main.sma правда говоря свой старый без изменений которые вы писали. Залил на сервер и все равно проблема осталась. Далее пытался пойти вторым путем внести изменения в amxbans_main.sma но тут проблема в том что вылезет кучу ошибок при компилировании.

XyLiGaN, нет желания что вновь ставить, переделывать и т.д, хотелось бы просто исправить этот баг и все...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iShot
сообщение 11.8.2017, 5:48
Сообщение #8


Стаж: 11 лет

Сообщений: 1340
Благодарностей: 463
Полезность: 845

Меценат Меценат

Dillon, Amxbans GM 1.6 Error Invalid Player


улыбнись :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 11.8.2017, 6:46
Сообщение #9
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

Dillon, там делов 3 секунды сменить на фрешбанс
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dillon
сообщение 11.8.2017, 8:50
Сообщение #10


Стаж: 13 лет
Город: Москва

Сообщений: 49
Благодарностей: 3
Полезность: 46

Цитата(iShot @ 11.8.2017, 5:48) *

Да, за эту тему спасибо! Буквально ночью ее нашел и сделал, буду наблюдать помогло ли это или нет.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Jack2345
сообщение 11.8.2017, 8:59
Сообщение #11
Стаж: 11 лет
Город: Москва

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

хулиган дело говорит


Success
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dillon
сообщение 11.8.2017, 9:18
Сообщение #12


Стаж: 13 лет
Город: Москва

Сообщений: 49
Благодарностей: 3
Полезность: 46

Цитата(XyLiGaN @ 11.8.2017, 6:46) *
Dillon, там делов 3 секунды сменить на фрешбанс


Цитата(Jack2345 @ 11.8.2017, 8:59) *
хулиган дело говорит

Можете дать ссылку на него, хоть посмотрю...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dillon
сообщение 14.8.2017, 9:22
Сообщение #13


Стаж: 13 лет
Город: Москва

Сообщений: 49
Благодарностей: 3
Полезность: 46

Цитата(iShot @ 11.8.2017, 5:48) *

Хех, сделал этот фикс и все равно спустя 4 дня появилась ошибка.

Цитата
L 08/14/2017 - 10:29:22: Start of error session.
L 08/14/2017 - 10:29:22: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20170814.log")
L 08/14/2017 - 10:29:22: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 08/14/2017 - 10:29:22: [AMXX] Run time error 4: index out of bounds
L 08/14/2017 - 10:29:22: [AMXX] [0] color_chat.inl::ColorChat (line 86)
L 08/14/2017 - 10:29:22: [AMXX] [1] cmd_ban.inl::_select_amxbans_motd (line 732)


Отредактировал: Dillon, - 14.8.2017, 9:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя HoBu4oK
сообщение 14.8.2017, 9:30
Сообщение #14


Иконка группы

Стаж: 12 лет

Сообщений: 337
Благодарностей: 148
Полезность: 630

Подскажите, как сделать, чтобы AMXBans по умолчанию банил по IP, а не SteamID
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 4ertik
сообщение 14.8.2017, 10:03
Сообщение #15
Стаж: 15 лет

Сообщений: 120
Благодарностей: 49
Полезность: 56

Цитата(HoBu4oK @ 14.8.2017, 10:30) *
Подскажите, как сделать, чтобы AMXBans по умолчанию банил по IP, а не SteamID

// [Ru] Тип бана
// [Ru] "0" - автоматически опеределять
// [Ru] "1" - по IP
// [Ru] "2" - по SteamID
// [En] Ban Type
// [En] "0" - choose automaticly
// [En] "1" - by IP
// [En] "2" - by SteamID

amxbans_bantype "1"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: