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

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

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

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

3 страниц V  « 2 3

amx_ips под русские ники

, нужно адаптировать плагин под русские ники
strikerman
сообщение 21.3.2015, 13:46
Сообщение #41
Стаж: 11 лет

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

Цитата(Valer4 @ 20.3.2015, 19:50) *
Если закомментировать 86 строчку - format(strbuf[i], 64,"%16s %-28.27s N/A^n", name, ip)


Спасибо. Счас попробую.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
strikerman
сообщение 21.3.2015, 14:12
Сообщение #42
Стаж: 11 лет

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

Если закомментировать 86 строчку - format(strbuf[i], 64,"%16s %-28.27s N/A^n", name, ip)

то когда вводишь amx_ips то открывается окно, в котором есть только заголовки
nick IP country
и дальше пусто, не ников ни айпишников, ничего
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
strikerman
сообщение 21.3.2015, 14:36
Сообщение #43
Стаж: 11 лет

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

Кстати, с закоментированной 86 строчкой, если на сервере есть русские ники - то сервер уже не падает!!!
Но и не ники ни айпишники не выводятся. Поэтому такой фикс не годится - плагин перестаёт выполнять свою функцию.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Valer4
сообщение 21.3.2015, 15:59
Сообщение #44
Стаж: 11 лет

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

Цитата(strikerman @ 21.3.2015, 16:36) *
Кстати, с закоментированной 86 строчкой, если на сервере есть русские ники - то сервер уже не падает!!!
Но и не ники ни айпишники не выводятся. Поэтому такой фикс не годится - плагин перестаёт выполнять свою функцию.

Тут всё странно, у меня есть плагины которые используют format и с русскими никами они не падают. Подобное форматирование - %16s %-28.27s - тоже не влияет и размер переменных под строки тоже.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
strikerman
сообщение 21.3.2015, 22:07
Сообщение #45
Стаж: 11 лет

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

Цитата(Valer4 @ 21.3.2015, 17:59) *
Тут всё странно, у меня есть плагины которые используют format и с русскими никами они не падают. Подобное форматирование - %16s %-28.27s - тоже не влияет и размер переменных под строки тоже.


Если сервер 6ххх - то юникод поддержка в нём есть по умолчанию. Поэтому проблем не будет.
Но если сервер 5787 - в нем нет нормальной поддержки юникода, она сделана через задницу (через левые функции дпрото).

Короче нужно в плагине анализировать ник по буквенно. Далее проверять если буквы с ANSI символов - то передавать дальше без обработки,
а если из юникод-символов - то любой русский ник заменять на "RusNick".
Посколько русских ников мало, то проблемы что будет 2 или 3 "RusNick" я не вижу. Главное что сервер падать не будет.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
strikerman
сообщение 22.3.2015, 20:47
Сообщение #46
Стаж: 11 лет

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

Помогите реализовать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fintok
сообщение 23.3.2015, 19:40
Сообщение #47


Стаж: 16 лет

Сообщений: 756
Благодарностей: 294
Полезность: 638

strikerman, на, попробуй такой вариант
Скрытый текст
Код:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "IPTools"
#define VERSION "0.1"
#define AUTHOR "SYZo / Fintok!"

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

register_concmd("amx_ips", "admin_ips", ADMIN_BAN)
}

public admin_ips(id, level, cid)
{
if(!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED

new szBuffer[1535], szName[32], szIP[17]

new iPlayers[32], iNum, iLen

get_players(iPlayers, iNum)

if(id == 0) {
iLen = formatex(szBuffer, charsmax(szBuffer), "^n%16s %-28.27s^n", "nick", "IP address")
}
else {
iLen = formatex(szBuffer, charsmax(szBuffer), "<html><meta charset='utf-8'><body><pre>%16s %-28.27s^n", "nick", "IP address")
}

for(new i = 0; i < iNum; i++)
{
get_user_name(iPlayers[i], szName, charsmax(szName))

get_user_ip(iPlayers[i], szIP, charsmax(szIP), 1)

iLen += formatex(szBuffer[iLen], charsmax(szBuffer) - iLen, "%16s %-28.27s^n", szName, szIP)
}

if(id == 0) {
server_print(szBuffer)
}
else {
iLen += formatex(szBuffer[iLen], charsmax(szBuffer) - iLen, "</pre></body></html>")

show_motd(id, szBuffer, "Player's IP")
}
return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
strikerman
сообщение 23.3.2015, 21:39
Сообщение #48
Стаж: 11 лет

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

СПАСИБО!
На английских никах всё работает отлично.
Жду пока зайдёт русский. Отпишу позже.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
strikerman
сообщение 24.3.2015, 12:12
Сообщение #49
Стаж: 11 лет

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

Fintok

Спасибо. Вариант рабочий. С русским ником сервер не упал!!
А можно ли ещё одну хотелку.
В плагине с 1-го поста айпишники выводились не как-попало, а отсортированные по возрастанию.
Это удобно чтобы видеть когда 2 игрока с одного айпишника,
или набор игроков с одной подсети с близкими адресами.

Можете ли вы сделать сортировку по возрастанию, так как это сделано в исходном плагине???
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 24.3.2015, 12:18
Сообщение #50
Стаж: 13 лет
Город: Югорск

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

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

strikerman, За такие хотелки уже нужно $ платить.
А то только и видно, что
Цитата(Цитата)
Помогите реализовать.
Цитата(Цитата)
А можно ли ещё одну хотелку.
Цитата
Можете ли вы сделать
А то только хочу и хочу.. Бесплатный сыр, только в мышеловке.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
strikerman
сообщение 24.3.2015, 15:38
Сообщение #51
Стаж: 11 лет

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

Не мешай. нормальные пацаны в чем-то разобрались и есть результат,
тут серьёзная тема.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
strikerman
сообщение 25.3.2015, 23:46
Сообщение #52
Стаж: 11 лет

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

Fintok

А можно ли ещё одну хотелку.
В плагине с 1-го поста айпишники выводились не как-попало, а отсортированные по возрастанию.
Это удобно чтобы видеть когда 2 игрока с одного айпишника,
или набор игроков с одной подсети с близкими адресами.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
strikerman
сообщение 26.3.2015, 16:19
Сообщение #53
Стаж: 11 лет

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

Цитата(strikerman @ 26.3.2015, 1:46) *
Fintok

А можно ли ещё одну хотелку.
В плагине с 1-го поста айпишники выводились не как-попало, а отсортированные по возрастанию.
Это удобно чтобы видеть когда 2 игрока с одного айпишника,
или набор игроков с одной подсети с близкими адресами.


АКТУАЛЬНО!

Отредактировал: Bloo, - 26.3.2015, 16:36
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
3 страниц V  « 2 3
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: