AMX MOD X
Суббота, 20.04.2024, 12:12:11



Приветствую Вас Гость | RSS
[ Главная ] [ high ping kicker - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Плагины » Обсуждение сторонних плагинов » high ping kicker (Перевод на несколько языков)
high ping kicker
amJkeДата: Пятница, 04.12.2009, 01:10:25 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
Доброго времени суток!
Решил отредактировать плагин на несколько языков, все вроде правильно сделал, захожу на сервер - на англ. есть на русском не читает
*многие плагины на сервере русские (читает все норм)

Вот код:

Code

#include <amxmodx>  
#include <amxmisc>

new g_Ping[33]
new g_Samples[33]

public plugin_init()
{
   register_plugin("High Ping Kicker (Steam)","0.16.2","OLO/shadow")
   register_concmd("amx_hpk","cmdHpk",ADMIN_KICK,"- configures high_ping_kicker plugin")
   register_cvar("amx_hpk_ping","200")
   register_cvar("amx_hpk_check","12")
   register_cvar("amx_hpk_tests","5")
   register_cvar("amx_hpk_delay","60")
    
   register_dictionary("high_ping_kicker.txt")
    
   if ( get_cvar_num( "amx_hpk_check" ) < 5 ) set_cvar_num( "amx_hpk_check" , 5 )
   if ( get_cvar_num( "amx_hpk_tests" ) < 3 ) set_cvar_num( "amx_hpk_tests" , 3 )
}

public client_disconnect(id)  
   remove_task( id )

public client_putinserver(id)  
{     
   g_Ping[id] = 0  
   g_Samples[id] = 0

   if ( !is_user_bot(id) )  
   {
     new param[1]
     param[0] = id  
     set_task( 10.0 , "showWarn" , id , param , 1 )
      
     if (get_cvar_num("amx_hpk_tests") != 0) {
      set_task( float(get_cvar_num("amx_hpk_delay")), "taskSetting", id, param , 1)
     }
     else {      
      set_task( float(get_cvar_num( "amx_hpk_tests" )) , "checkPing" , id , param , 1 , "b" )
  }
   
   }
}  

public showWarn(param[])
   client_print( param[0] ,print_chat, "%L", LANG_PLAYER, "WITH_PING_KICKER", get_cvar_num( "amx_hpk_ping" ) )

public taskSetting(param[]) {
  new name[32]
  get_user_name(param[0],name,31)
  set_task( float(get_cvar_num( "amx_hpk_tests" )) , "checkPing" , param[0] , param , 1 , "b" )
}

kickPlayer( id )  
{  
   new name[32],authid[32]
   get_user_name(id,name,31)
   get_user_authid(id,authid,31)
   client_print(0, print_chat, "%L", LANG_PLAYER, "DISCONNECTED", name)
   server_cmd("kick #%d ^"Sorry but you have too high ping, try later...^"",get_user_userid(id))
   log_amx("Highpingkick: ^"%s<%d><%s>^" was kicked due highping (Average Ping ^"%d^")", name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id]))
}

public checkPing(param[])  
{  
   new id = param[ 0 ]  

   if ( get_user_flags(id) & ADMIN_IMMUNITY ) return

   new p, l  

   get_user_ping( id , p , l )  

   g_Ping[ id ] += p
   ++g_Samples[ id ]

   if ( (g_Samples[ id ] > get_cvar_num( "amx_hpk_tests" )) && (g_Ping[id] / g_Samples[id] > get_cvar_num( "amx_hpk_ping" ))  )     
     kickPlayer(id)  
}

    
public cmdHpk(id,level,cid){
   if (!cmd_access(id,level,cid,1))
     return PLUGIN_HANDLED
      
   new ping[5]
   new check_arr[5]
   new tests_arr[5]
   new delay_arr[5]
   read_argv(1,ping,4)
   read_argv(2,check_arr,4)
   read_argv(3,tests_arr,4)
   read_argv(4,delay_arr,4)
    
   new check = str_to_num(check_arr)
   new tests = str_to_num(tests_arr)
   new delay = str_to_num(delay_arr)
    
    
   if ( check < 5 ) check = 5
   if ( tests < 3 ) tests = 3
    

   if (read_argc() > 1){
     set_cvar_string("amx_hpk_ping",ping)
   }
   if (read_argc() > 2) {
  set_cvar_num("amx_hpk_check",check)
   }
   if (read_argc() > 3) {
  set_cvar_num("amx_hpk_tests",tests)
   }
   if (read_argc() > 4) {
    set_cvar_num("amx_hpk_delay",delay)
  }

   console_print(id,"Syntax: amx_hpk <ping to get kicked> <checks before kicks> <time between checks> <delay before first check in sec.>")
   console_print(id,"Current High_Ping_Kicker Settings:")
   console_print(id,"Maxping: %d  Time between checks: %d Checkcount: %d Delay: %d",get_cvar_num("amx_hpk_ping"),get_cvar_num("amx_hpk_check"),get_cvar_num("amx_hpk_tests"),get_cvar_num("amx_hpk_delay"))
   return PLUGIN_HANDLED     
}

К плагину есть текстовый документ с переводом, который добавил в data/lang/ :

Code

[en]
WITH_PING_KICKER  = * Players with ping higher than %d will be kicked!
DISCONNECTED = ** Player %s disconnected due to high ping.

[ru]
WITH_PING_KICKER  = * Игроки с пингом выше %d - будут кикнуты!
DISCONNECTED = ** Игрок %s был кикнут из-за высокого пинга.

Люди помогите, что не так?

 
pikeДата: Воскресенье, 06.12.2009, 15:17:11 | Сообщение # 2
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
В чат должно по русски писать, при кике не будет.
Здесь еще изменить надо.
Code
server_cmd("kick #%d ^"Sorry but you have too high ping, try later...^"",get_user_userid(id))
 
amJkeДата: Воскресенье, 06.12.2009, 20:05:35 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
Code
server_cmd("kick #%d ^"Sorry but you have too high ping, try later...^"",get_user_userid(id))

Сделал так:
Code
server_cmd("%L", LANG_SERVER, "kick #%d ^"SORRY_BUT^"",get_user_userid(id))

В high_ping_kicker.txt добавил:

Code
[en]
SORRY_BUT = Sorry but you have too high ping, try later...

[ru]
SORRY_BUT = Извините, но вы были кикнуты из-за высокого пинга...

Все равно не переводит в чате.... вот скрин как это выглядит (выделил красным):

И еще, ппочему - то и на английском теперь не читает... <_<

Сообщение отредактировал amJke - Воскресенье, 06.12.2009, 20:07:40
 
pikeДата: Понедельник, 07.12.2009, 01:51:30 | Сообщение # 4
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
Где то так:
Code
server_cmd("kick #%d ^"%L^"", get_user_userid(id), "SORRY_BUT")

Code

[ru]    
WITH_PING_KICKER  = * Игроки с пингом выше '%d' - будут кикнуты!


Сообщение отредактировал pike - Понедельник, 07.12.2009, 02:02:02
 
amJkeДата: Пятница, 11.12.2009, 14:58:07 | Сообщение # 5
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
В данный момент мне важнее сделать язык чтобы выводилось в главном чате (сообщение 3 - скрин).

Добавлено (11.12.2009, 14:58:07)
---------------------------------------------
Помогите пожалуйста кто - нибудь с переводом. Очень нужно.
Да я думаю он не только мне понадобится...

 
pikeДата: Пятница, 11.12.2009, 16:21:04 | Сообщение # 6
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
И так не хочет ?
Code
[ru]     
WITH_PING_KICKER  = * Игроки с пингом выше "%d" - будут кикнуты!
 
amJkeДата: Пятница, 11.12.2009, 17:00:04 | Сообщение # 7
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
Так и не будет! я сразу понял - но хотя попробовал)))
Посмсотри как ты написал

Quote (pike)
Где то так:
Code
server_cmd("kick #%d ^"%L^"", get_user_userid(id), "SORRY_BUT")

Code
[ru]        
WITH_PING_KICKER  = * Игроки с пингом выше '%d' - будут кикнуты!

КАк может работать WITH_PING_KICKER если стоит SORRY_BUT...

Добавлено (11.12.2009, 16:54:32)
---------------------------------------------
Да и дело вообще не в том, эта строка отвечает за кик, т.е когд кто то будет кикнут ему выводится сообщение почему его кикнули...
Если я ее даже переведу это не изменит чат...
У меня в чате проблема скрин есть в 3 сообщении.. там дажа на англ не переводит почему-то

А твое

Code
server_cmd("kick #%d ^"%L^"", get_user_userid(id), "SORRY_BUT")

Вообще как бы не правильно там нету "LANG_SERVER" или "LANG_PLAYER"

Добавлено (11.12.2009, 17:00:04)
---------------------------------------------
А то что я писал в 3 сообщении эти коды вообще к скрину не относятся

К скрину идет вот этот код:

Code
public showWarn(param[])  
    client_print( param[0] ,print_chat, "%L", LANG_PLAYER, "WITH_PING_KICKER", get_cvar_num( "amx_hpk_ping" ) )

Code
[en]  
WITH_PING_KICKER  = * Players with ping higher than %d will be kicked!  

[ru]  
WITH_PING_KICKER  = * Игроки с пингом выше %d - будут кикнуты!  

Тут что не так?

Сообщение отредактировал amJke - Пятница, 11.12.2009, 16:57:39
 
tavotДата: Пятница, 11.12.2009, 19:00:32 | Сообщение # 8
Генерал-майор
Группа: Пользователи
Сообщений: 256
Репутация: 3
Статус: Не в сети
amJke,
Извиняюсь конечно за тупое предположение, не сочтите что я кого то держу за кого то:
А файл в какой кодировке сохраняешь?
 
predatorДата: Пятница, 11.12.2009, 19:15:11 | Сообщение # 9
Лейтенант
Группа: Пользователи
Сообщений: 54
Репутация: 5
Статус: Не в сети
Посмотрел плагин... у меня глюки или там действительно логических ошибок куча и бреда хватает?

Такое ощущение, что писали за 5 минут на коленке и без тестирования.

 
predatorДата: Пятница, 11.12.2009, 19:43:55 | Сообщение # 10
Лейтенант
Группа: Пользователи
Сообщений: 54
Репутация: 5
Статус: Не в сети
Можно попробовать такой вариант:

В прикрепленном ниже плагине необходимо зменить строчку
server_cmd ( "kick #%d ^"%L^"", id, "HPK_REASON", get_user_userid ( id ) )
на
server_cmd ( "kick #%d ^"%L^"", get_user_userid ( id ), id, "HPK_REASON" )

иначе кикать не будет.

Прикрепления: hpk.zip (2.0 Kb)


Сообщение отредактировал predator - Воскресенье, 13.12.2009, 14:01:04
 
amJkeДата: Суббота, 12.12.2009, 02:27:30 | Сообщение # 11
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
>>Извиняюсь конечно за тупое предположение, не сочтите что я кого то держу за кого то:
>А файл в какой кодировке сохраняешь?
Да по твоим разговорам я и в пря тупой если сохраняю файлы через амxstudio

>>Посмотрел плагин... у меня глюки или там действительно логических ошибок куча и бреда хватает?
>Такое ощущение, что писали за 5 минут на коленке и без тестирования.
Извините я не знаю за сколько этот плагин делался, но я его редактирую под язык и у меня не получается

Можно попробовать такой вариант:
Прикрепления: hpk.zip(2Kb)

Cпасибо, посмотрю отпишу <_<

Добавлено (12.12.2009, 02:27:30)
---------------------------------------------
человек спасибо те огромное за плаг + те))))
все найс пашет, тему можно закрывать!)

 
tavotДата: Суббота, 12.12.2009, 10:10:37 | Сообщение # 12
Генерал-майор
Группа: Пользователи
Сообщений: 256
Репутация: 3
Статус: Не в сети
amJke,
Провел эксперимент - в свой плагин добавил русский текст и сохранил через амх студио - и нифига не работало.
Открыл бокнотом и поменял кодировку - все сразу заработало.

Так что не надо обижаться. Если бы хотелось кого то обидеть - прямым текстом написал бы.
А тут на чужих ошибках учусь не делать свои.

 
amJkeДата: Суббота, 12.12.2009, 13:39:19 | Сообщение # 13
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
Какую ты кодировку ставил
 
tavotДата: Суббота, 12.12.2009, 23:57:31 | Сообщение # 14
Генерал-майор
Группа: Пользователи
Сообщений: 256
Репутация: 3
Статус: Не в сети
amJke,
Quote (amJke)
Да по твоим разговорам я и в пря тупой если сохраняю файлы через амxstudio

Учитывая эту фразу - я сохранил по умолчанию, ради чистоты эксперимента мысли ;) - не работало

Потом сохрани в кодировке: UTF-8 - работает.

Добавлено (12.12.2009, 23:57:31)
---------------------------------------------
P/s/ эта мысль пришла после просмотра скрина - так как данные отображаются, а текст нет - это я встречал или если не правильно поставлены %s или %d или из за неправильной кодировки , когда используется русский язык.

Еще раз повторяю - я ни кого не хочу обидеть. я тут в 90% случаев сам прошу помощи.

Сообщение отредактировал tavot - Суббота, 12.12.2009, 23:57:45
 
amJkeДата: Воскресенье, 13.12.2009, 00:29:13 | Сообщение # 15
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
Спасибо ^_^
 
AMX Mod X Форум » Плагины » Обсуждение сторонних плагинов » high ping kicker (Перевод на несколько языков)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

AMX Mod X Russian Community © 2006-2024