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

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

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

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

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.

Плагин для выбора языка

Статус пользователя MaZzai
сообщение 15.10.2009, 11:59
Сообщение #1


Стаж: 17 лет

Сообщений: 2659
Благодарностей: 1411
Полезность: 1024

Добрый день!
Есть ли такой плагин, что бы когда человек зайдёт на сервер, ему предоставился выбор языка ???
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Soccer
сообщение 15.10.2009, 16:31
Сообщение #2


Стаж: 17 лет

Сообщений: 259
Благодарностей: 79
Полезность: 252

закидываешь файлы с языками а так это стандартный плагин amxlangmenu
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MaZzai
сообщение 15.10.2009, 17:47
Сообщение #3


Стаж: 17 лет

Сообщений: 2659
Благодарностей: 1411
Полезность: 1024

файлы с языками то файлами...
плагин amxlangmenu то плагином..
а как сделать что бы автоматически выскакивало меню (но только один раз на один ник) для выбора языка ? ?

Отредактировал: MaZzai, - 15.10.2009, 17:47
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 16.10.2009, 18:47
Сообщение #4


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

Цитата(MaZzai @ 15.10.2009, 19:47) *
файлы с языками то файлами...
плагин amxlangmenu то плагином..
а как сделать что бы автоматически выскакивало меню (но только один раз на один ник) для выбора языка ? ?

Блин простенький плагин....
при подключении клиента ему отправляется команда для открытия меню выбора языка (amx_langmenu)

сможешь сам написать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя MaZzai
сообщение 16.10.2009, 22:38
Сообщение #5


Стаж: 17 лет

Сообщений: 2659
Благодарностей: 1411
Полезность: 1024

Цитата(Makzz @ 16.10.2009, 18:47) *
Блин простенький плагин....
при подключении клиента ему отправляется команда для открытия меню выбора языка (amx_langmenu)

сможешь сам написать?

Чесно - нет :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MaZzai
сообщение 17.10.2009, 8:29
Сообщение #6


Стаж: 17 лет

Сообщений: 2659
Благодарностей: 1411
Полезность: 1024

UP
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 17.10.2009, 13:41
Сообщение #7


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

Код
#include <amxmisc>

public plugin_init ()
{
    register_plugin ( "Bla", "1.0", "Makzz" )
}

public client_putinserver ( id ) // Чел заходит
{
    if ( !is_user_bot ( id ) && !is_user_hltv ( id ) ) // Игрок не БОТ и не ХЛТВ
    {
        client_cmd ( id, "amx_langmenu" ) // Плсылаем команду для открытия меню
    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя MaZzai
сообщение 17.10.2009, 14:38
Сообщение #8


Стаж: 17 лет

Сообщений: 2659
Благодарностей: 1411
Полезность: 1024

Большое спасибо

Ещё такой вопрос:
можно ли сделать так в плагине amx_langmenu ?
Выберите язык:
1)Украiнська мова
2)Русский язык
3)English

Суть в том, что бы не перелистывать... а сразу выбрать язык
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ViP.Predator
сообщение 17.10.2009, 21:50
Сообщение #9


Стаж: 16 лет

Сообщений: 127
Благодарностей: 89
Полезность: 516

Цитата(MaZzai @ 17.10.2009, 16:38) *
Большое спасибо

Ещё такой вопрос:
можно ли сделать так в плагине amx_langmenu ?
Выберите язык:
1)Украiнська мова
2)Русский язык
3)English

Суть в том, что бы не перелистывать... а сразу выбрать язык

Может просто установить клиенту язык в соответсвии с его страной?
https://c-s.net.ua/forum/ipb.html?s=&sh...st&p=132195
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 19.10.2009, 7:35
Сообщение #10


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

Цитата(MaZzai @ 17.10.2009, 16:38) *
Большое спасибо

Ещё такой вопрос:
можно ли сделать так в плагине amx_langmenu ?
Выберите язык:
1)Украiнська мова
2)Русский язык
3)English

Суть в том, что бы не перелистывать... а сразу выбрать язык


CODE
/* AMX Mod X script.
* Multilingual System Plugin
*
* by the AMX Mod X Development Team
*
* This file is part of AMX Mod X.
*
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* In addition, as a special exception, the author gives permission to
* link the code of this program with the Half-Life Game Engine ("HL
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
* L.L.C ("Valve"). You must obey the GNU General Public License in all
* respects for all of the code used other than the HL Engine and MODs
* from Valve. If you modify this file, you may extend this exception
* to your version of the file, but you are not obligated to do so. If
* you do not wish to do so, delete this exception statement from your
* version.
*/

#include <amxmisc>

new g_menuLang[33][2], g_Langs[33]
new g_serverLang, g_langNum

public plugin_init ()
{
register_plugin ( "Multi-Lingual System", AMXX_VERSION_STR, "AMXX Dev Team" )

register_dictionary ( "multilingual.txt" )
register_dictionary ( "common.txt" )
register_dictionary ( "languages.txt" )

register_cvar ( "amx_language", "en", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY )
register_cvar ( "amx_client_languages", "1" ) // Могут ли клиенты менять язык
register_concmd ( "amx_setlang", "cmdLang", ADMIN_CFG, "<language>" )
register_clcmd ( "amx_langmenu", "cmdLangMenu", ADMIN_ALL )
register_menu ( "Language Menu", 1023, "actionMenu" )
register_menu ( "Language List", -1, "actionList" )

new lang[3]

if ( vaultdata_exists ( "server_language" ) )
{
get_vaultdata ( "server_language", lang, 2 )
}
else
{
copy ( lang, 2, "en" )
set_vaultdata ( "server_language", lang )
}

set_cvar_string ( "amx_language", lang )

//g_langNum = get_langsnum() // Почемуто даёт невеное число языков
g_langNum = check_langs ()
g_serverLang = get_lang_id ( lang )
}
/*
public client_putinserver ( id )
{
g_Langs[id] = -1
if ( !is_user_bot ( id ) )
{
new arg[3]
get_lang ( id, arg )
if ( !lang_exists ( arg ) ) // Если языка не существует
{
set_user_info ( id, "lang", "en" ) // То выставляем Енглиш
}
}
}
*/
public cmdLang ( id, level, cid )
{
if ( !cmd_access ( id, level, cid, 2 ) )
return PLUGIN_HANDLED

new arg[3]
read_argv ( 1, arg, 2 )

if ( !lang_exists ( arg ) )
{
console_print ( id, "[AMXX] %L", id, "LANG_NOT_EXISTS" )
return PLUGIN_HANDLED
}

set_vaultdata ( "server_language", arg )
set_cvar_string ( "amx_language", arg )
g_serverLang = get_lang_id ( arg )

return PLUGIN_HANDLED
}

public cmdLangMenu ( id, level, cid )
{
new buffer[3]

if ( !get_cvar_num ( "amx_client_languages" ) )
{
client_print ( id, print_console, "[AMXX] %L", LANG_SERVER, "LANG_MENU_DISABLED" )
return PLUGIN_HANDLED
}

get_user_info ( id, "lang", buffer, 2 )
g_menuLang[id][0] = get_lang_id ( buffer )
g_menuLang[id][1] = g_serverLang

showMenu(id)

return PLUGIN_HANDLED
}

showMenu ( id )
{
if ( !get_cvar_num ( "amx_client_languages" ) )
return PLUGIN_HANDLED

new menuBody[512], pLang[3]

get_lang ( g_menuLang[id][0], pLang )

new len = format ( menuBody, 511, "\y%L\w^n^n", id, "LANG_MENU" )

len += format ( menuBody[len], 511-len, "\r1.\w %L\R\r%L\w^n", id, "PERSO_LANG", pLang, "LANG_NAME" )

if ( access ( id, ADMIN_CFG ) ) // Если у игрока есть ещё и админский доступ
{
// То добавляем ему ещё пункт
new sLang[3]
get_lang (g_menuLang[id][1], sLang )
len += format ( menuBody[len], 511-len, "\r2.\w %L\R\r%L\w^n^n", id, "SERVER_LANG", sLang, "LANG_NAME" )
len += format ( menuBody[len], 511-len, "\r3.\w %L", id, "SAVE_LANG" )
}
else
{
len += format ( menuBody[len], 511-len, "^n\r2.\w %L", id, "SAVE_LANG" )
}

format ( menuBody[len], 511-len, "^n^n\r0.\w %L", id, "EXIT" )

show_menu ( id, MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3, menuBody, -1, "Language Menu" )

return PLUGIN_HANDLED
}

showList ( id )
{
new menuBody[512], nLang[3]
new len = format(menuBody, 511, "\y%L\w^n^n", id, "LANG_MENU") // Шапка

for ( new i = 0; i < g_langNum; i++ )
{
if ( g_Langs[id] == 0 )
{
g_menuLang[id][0] = i
get_lang ( g_menuLang[id][0], nLang )
}
else
{
g_menuLang[id][1] = i
get_lang ( g_menuLang[id][1], nLang )
}

len += format ( menuBody[len], 511-len, "\r%i.\w %L^n", i+1, nLang, "LANG_NAME" )
}
format ( menuBody[len], 511-len, "^n^n\r0.\w %L", id, "EXIT" )
show_menu ( id, MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MEN
U_KEY_7|MENU_KEY_8, menuBody, -1, "Language List" )
}

public actionMenu ( id, key )
{
if ( !get_cvar_num ( "amx_client_languages" ) )
return 0

new isAdmin = access ( id, ADMIN_CFG )

if ( key == 0 ) // Кнопка 1 (Язык игрока)
{
g_Langs[id] = 0
showList ( id )
}

if ( isAdmin && ( key == 1 ) ) // Кнопка 2 (Язык сервака)
{
g_Langs[id] = 1
showList ( id )
}

new pLang[3], pLang_old[3], sLang[3], sLang_old[3], lName[64]

get_lang(g_menuLang[id][0], pLang)
get_lang(g_menuLang[id][1], sLang)
get_user_info(id, "lang", pLang_old, 2)
get_lang(g_serverLang, sLang_old)

if ( isAdmin && ( key == 2 ) && !equali ( sLang, sLang_old ) ) // Кнопка 3 (Сохранить)
{
set_vaultdata ( "server_language", sLang )
set_cvar_string ( "amx_language", sLang )
g_serverLang = g_menuLang[id][1]
format ( lName, 63, "%L", sLang, "LANG_NAME" )
client_print ( id, print_chat, "%L", pLang, "SET_LANG_SERVER", lName )
}

if ( !equali ( pLang, pLang_old ) && ( ( isAdmin && ( key == 2 ) ) || ( !isAdmin && ( key == 1 ) ) ) )
{
set_user_info ( id, "lang", pLang )
format ( lName, 63, "%L", pLang, "LANG_NAME" )
client_print ( id, print_chat, "%L", pLang, "SET_LANG_USER", lName )
}

return PLUGIN_CONTINUE
}

public actionList ( id, key )
{
if ( g_Langs[id] == 0 )
g_menuLang[id][0] = key
else
g_menuLang[id][1] = key

showMenu ( id )
}

get_lang_id ( lang[] )
{
new tLang[3]

for ( new i = 0; i < g_langNum; i++ )
{
get_lang ( i, tLang )
if ( equali ( tLang, lang ) )
return i
}
return PLUGIN_CONTINUE
}

public check_langs ()
{
new g_File[64]
format ( g_File, charsmax ( g_File ), "addons/amxmodx/data/lang/languages.txt")
if ( !file_exists ( g_File ) )
{
new error[100]
formatex ( error, charsmax(error), "[AMXX] Cannot load languages.txt!" )
set_fail_state ( error )
return 0
}

new linedata[1024], i

// Открыть файл настроек для чтения
new file = fopen ( g_File, "rt" )

while ( file && !feof(file) )
{
// Читаем каждую линию
fgets(file, linedata, charsmax(linedata))

// Заменяем пустые линии для предотвращния неприятностей
replace(linedata, charsmax(linedata), "^n", "")

// Пустая линия или комментарий
if (!linedata[0] || linedata[0] == '/') continue;

if (linedata[0] == '[')
{
i++ // Считаем сколько языков в файле
continue
}
}
if ( file ) fclose ( file )
return i
}

Мне самому понравилась идея, так что он будет на моём серве :)

Единственное что я пока не парился с меню когда языков на серваке больше 9 (т.е. пунктов будет допустим 15, а кнопок у тя всего 9 :) )
в общем больше 8 пока не поддерживает менюшка

Отредактировал: Makzz, - 19.10.2009, 16:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MaZzai
сообщение 19.10.2009, 17:00
Сообщение #11


Стаж: 17 лет

Сообщений: 2659
Благодарностей: 1411
Полезность: 1024

Мне кажется, что достаточно будет 3-х языков...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MaZzai
сообщение 19.10.2009, 17:18
Сообщение #12


Стаж: 17 лет

Сообщений: 2659
Благодарностей: 1411
Полезность: 1024

PS: ИМХО angel_not.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя LaFA
сообщение 8.4.2010, 10:46
Сообщение #13


Стаж: 16 лет

Сообщений: 4505
Благодарностей: 3256
Полезность: 793

Возможно сделать чтоб язык по нику сохранялся? или по айпи...

Отредактировал: LaFA1702, - 8.4.2010, 16:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 8.4.2010, 18:04
Сообщение #14


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

Цитата(LaFA1702 @ 8.4.2010, 12:46) *
Возможно сделать чтоб язык по нику сохранялся? или по айпи...

А смысл? если он в конфиге и так прописывается.....
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя LaFA
сообщение 8.4.2010, 18:08
Сообщение #15


Стаж: 16 лет

Сообщений: 4505
Благодарностей: 3256
Полезность: 793

Цитата(Makzz @ 8.4.2010, 19:04) *
А смысл? если он в конфиге и так прописывается.....

Я о том чтоб игрока спрашивало только раз, какой язык он хочет.
Чтоб менюшка не вылазила при каждом последующем конекте.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 8.4.2010, 18:11
Сообщение #16


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

Цитата(LaFA1702 @ 8.4.2010, 20:08) *
Я о том чтоб игрока спрашивало только раз, какой язык он хочет.
Чтоб менюшка не вылазила при каждом последующем конекте.

Ааа ты имеешь ввиду если на серваке используется плагин для показа при заходе меню языков???
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя LaFA
сообщение 8.4.2010, 21:03
Сообщение #17


Стаж: 16 лет

Сообщений: 4505
Благодарностей: 3256
Полезность: 793

Цитата(Makzz @ 8.4.2010, 19:11) *
Ааа ты имеешь ввиду если на серваке используется плагин для показа при заходе меню языков???

ну да, тема вроде этому плагу просвещенна. :biggrin:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Saimon
сообщение 8.4.2010, 22:17
Сообщение #18


Стаж: 18 лет

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

http://forums.alliedmods.net/showthread.php?p=874679
по ip определяет страну,и предлагает выбрать язык
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя LaFA
сообщение 8.4.2010, 22:57
Сообщение #19


Стаж: 16 лет

Сообщений: 4505
Благодарностей: 3256
Полезность: 793

Цитата(Saimon @ 8.4.2010, 23:17) *
http://forums.alliedmods.net/showthread.php?p=874679
по ip определяет страну,и предлагает выбрать язык

Еще раз - это не то что мне нужно.
Про этот плаг знаю давно.

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