Русское сообщество по скриптингу

Смена языка на сервере

Поиск плагинов для AMX Mod X.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающиеся только поиску плагинов для AMX Mod X.

Смена языка на сервере

Сообщение White1337 » 24 ноя 2017, 20:24

Здравствуйте ищу плагин для смены языка на сервере.

Например:

Сменя Языка
1.Русский
2.Английский

Как только нажал на язык то он меняется.
Буду очень признателен если поможете найти.

Тема перемещена из раздела "Скриптинг" // Subb98
Аватара пользователя
White1337
 
Сообщения: 12
Зарегистрирован: 24 ноя 2017, 20:20
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Re: Смена языка на сервере

Сообщение Subb98 » 24 ноя 2017, 20:39

«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

плагин смена языка на сервере.

Сообщение White1337 » 25 ноя 2017, 01:27

Здравствуйте ищу плагин смены языка.

Меню плагина выглядело так:

Выбор языка:
1. Английский
2. Русский

Пожалуйста помогите его найти.

Аватара пользователя
White1337
 
Сообщения: 12
Зарегистрирован: 24 ноя 2017, 20:20
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Re: плагин смена языка на сервере.

Сообщение DeMNiX » 25 ноя 2017, 05:05

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <nvault>

new g_menuLang[MAX_PLAYERS 1]
new 
g_langNum

new g_cvarClientLanguages;
new 
g_cvarServerLanguage;
new 
g_Vaultg_AuthID[MAX_PLAYERS 1][32], g_PlayerLang[33];

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")

    
g_cvarClientLanguages get_cvar_pointer("amx_client_languages")
    
g_cvarServerLanguage get_cvar_pointer("amx_language");
    
    
register_clcmd("amx_lang""cmdLangMenu")
    
register_menu("Language Menu"1023"actionMenu")
    
    
g_langNum get_langsnum()
}

public 
plugin_cfg()
{
    
g_Vault nvault_open("langmenu");

    if (
g_Vault == INVALID_HANDLE)
        
set_fail_state("Error opening nVault!");

    new 
delete_timedelete_time get_systime() - 86400 14;
    
nvault_prune(g_Vault0delete_time);
}
public 
plugin_end() nvault_close(g_Vault);

public 
client_putinserver(id)
{
    
get_user_authid(idg_AuthID[id], charsmax(g_AuthID[]));
    new 
s_Key[64];
    
formatex(s_Keycharsmax(s_Key), "%s"g_AuthID[id]);
    
g_PlayerLang[id] = nvault_get(g_Vaults_Key);
    if(
g_PlayerLang[id]) actionMenu(idg_PlayerLang[id]-1)
}

public 
client_disconnected(id)
{
    new 
s_Key[64], szData[32];
    
formatex(s_Keycharsmax(s_Key) , "%s"g_AuthID[id]);
    
formatex(szDatacharsmax(szData), "%d"g_PlayerLang[id]);
    
nvault_set(g_Vaults_KeyszData);
    
g_PlayerLang[id] = false;

    
remove_task(id)
}

public 
zp_fw_core_spawn_post(id)
{
    if(!
g_PlayerLang[id]) client_cmd(id"amx_langmenu");
}

public 
dispInfo(id)
{
    
client_print(idprint_chat"%L"id"TYPE_LANGMENU")
}

public 
cmdLangMenu(idlevelcid)
{
    if (!
get_pcvar_num(g_cvarClientLanguages))
    {
        
client_print(idprint_console"[AMXX] %L"LANG_SERVER"LANG_MENU_DISABLED")
        return 
PLUGIN_HANDLED
    
}
    
    new 
buffer[3]
    
get_user_info(id"lang"buffercharsmax(buffer))
    
    if (
buffer[0] == EOS// if "lang" is not defined, by default it will use server language.
    
{
        
get_pcvar_string(g_cvarServerLanguagebuffercharsmax(buffer));
    }
    
    
g_menuLang[id] = get_lang_id(buffer)
    
    
showMenu(id)
    
    return 
PLUGIN_HANDLED
}

showMenu(id)
{    
    new 
menuBody[512];

    new 
len formatex(menuBodycharsmax(menuBody), "Language/Язык");
    
    
len += formatex(menuBody[len], charsmax(menuBody) - len"^n\r[\w1\r]\w. [ \yРусский \w]");
    
len += formatex(menuBody[len], charsmax(menuBody) - len"^n\r[\w2\r]\w. [ \yEnglish \w]");
    
formatex(menuBody[len], charsmax(menuBody) - len"^n\r[\w0\r]\w. [\yExit\w]");
    
    
show_menu(idMENU_KEY_0|MENU_KEY_1|MENU_KEY_2menuBody, -1"Language Menu")
    return 
PLUGIN_HANDLED;
}

public 
actionMenu(idkey)
{
    if (
key == 0)
    {
        
client_cmd(id"setinfo ^"lang^" ^"ru^"")
        
set_user_info(id"lang""ru");
        
g_PlayerLang[id] = 1;
    }
    else if(
key == 1)
    {
        
client_cmd(id"setinfo ^"lang^" ^"en^"")
        
set_user_info(id"lang""en");
        
g_PlayerLang[id] = 2;
    }
    
    return 
PLUGIN_HANDLED;
}

get_lang_id(lang[])
{
    new 
tLang[3]
    
    for (new 
0g_langNumi++)
    {
        
get_lang(itLang)
        
        if (
equali(tLanglang))
        {
            return 
i
        
}
    }

    return 
0
}
 
Работа с моделями для кс 1.6
Telegram @DeMNiX
vk com/sbalburov
Аватара пользователя
DeMNiX
 
Сообщения: 177
Зарегистрирован: 24 сен 2011, 17:48
Благодарил (а): 25 раз.
Поблагодарили: 37 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: плагин смена языка на сервере.

Сообщение White1337 » 25 ноя 2017, 15:52

DeMNiX писал(а):
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <nvault>

new g_menuLang[MAX_PLAYERS + 1]
new g_langNum

new g_cvarClientLanguages
;
new g_cvarServerLanguage;
new g_Vault, g_AuthID[MAX_PLAYERS + 1][32], g_PlayerLang[33];

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")

    g_cvarClientLanguages = get_cvar_pointer("amx_client_languages")
    g_cvarServerLanguage = get_cvar_pointer("amx_language");
    
    register_clcmd
("amx_lang", "cmdLangMenu")
    register_menu("Language Menu", 1023, "actionMenu")
    
    g_langNum 
= get_langsnum()
}

public plugin_cfg()
{
    g_Vault = nvault_open("langmenu");

    if (g_Vault == INVALID_HANDLE)
        set_fail_state("Error opening nVault!");

    new delete_time; delete_time = get_systime() - 86400 * 14;
    nvault_prune(g_Vault, 0, delete_time);
}
public plugin_end() nvault_close(g_Vault);

public client_putinserver(id)
{
    get_user_authid(id, g_AuthID[id], charsmax(g_AuthID[]));
    new s_Key[64];
    formatex(s_Key, charsmax(s_Key), "%s", g_AuthID[id]);
    g_PlayerLang[id] = nvault_get(g_Vault, s_Key);
    if(g_PlayerLang[id]) actionMenu(id, g_PlayerLang[id]-1)
}

public client_disconnected(id)
{
    new s_Key[64], szData[32];
    formatex(s_Key, charsmax(s_Key) , "%s", g_AuthID[id]);
    formatex(szData, charsmax(szData), "%d", g_PlayerLang[id]);
    nvault_set(g_Vault, s_Key, szData);
    g_PlayerLang[id] = false;

    remove_task(id)
}

public zp_fw_core_spawn_post(id)
{
    if(!g_PlayerLang[id]) client_cmd(id, "amx_langmenu");
}

public dispInfo(id)
{
    client_print(id, print_chat, "%L", id, "TYPE_LANGMENU")
}

public cmdLangMenu(id, level, cid)
{
    if (!get_pcvar_num(g_cvarClientLanguages))
    {
        client_print(id, print_console, "[AMXX] %L", LANG_SERVER, "LANG_MENU_DISABLED")
        return PLUGIN_HANDLED
    
}
    
    new buffer
[3]
    get_user_info(id, "lang", buffer, charsmax(buffer))
    
    if 
(buffer[0] == EOS) // if "lang" is not defined, by default it will use server language.
    {
        get_pcvar_string(g_cvarServerLanguage, buffer, charsmax(buffer));
    }
    
    g_menuLang
[id] = get_lang_id(buffer)
    
    showMenu
(id)
    
    return PLUGIN_HANDLED
}

showMenu(id)
{
    
    new menuBody
[512];

    new len = formatex(menuBody, charsmax(menuBody), "Language/Язык");
    
    len 
+= formatex(menuBody[len], charsmax(menuBody) - len, "^n\r[\w1\r]\w. [ \yРусский \w]");
    len += formatex(menuBody[len], charsmax(menuBody) - len, "^n\r[\w2\r]\w. [ \yEnglish \w]");
    formatex(menuBody[len], charsmax(menuBody) - len, "^n\r[\w0\r]\w. [\yExit\w]");
    
    show_menu
(id, MENU_KEY_0|MENU_KEY_1|MENU_KEY_2, menuBody, -1, "Language Menu")
    return PLUGIN_HANDLED;
}

public actionMenu(id, key)
{
    if (key == 0)
    {
        client_cmd(id, "setinfo ^"lang^" ^"ru^"")
        set_user_info(id, "lang", "ru");
        g_PlayerLang[id] = 1;
    }
    else if(key == 1)
    {
        client_cmd(id, "setinfo ^"lang^" ^"en^"")
        set_user_info(id, "lang", "en");
        g_PlayerLang[id] = 2;
    }
    
    return PLUGIN_HANDLED
;
}

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 0
}
 

Спасибо большое. Но там есть проблема, если я нажимаю на английский, то ничего не происходит ...
Аватара пользователя
White1337
 
Сообщения: 12
Зарегистрирован: 24 ноя 2017, 20:20
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Re: Смена языка на сервере

Сообщение DeMNiX » 26 ноя 2017, 00:44

наверное потому что у кого то ланг файлы с английского на русские словари заменены
Работа с моделями для кс 1.6
Telegram @DeMNiX
vk com/sbalburov
Аватара пользователя
DeMNiX
 
Сообщения: 177
Зарегистрирован: 24 сен 2011, 17:48
Благодарил (а): 25 раз.
Поблагодарили: 37 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Смена языка на сервере

Сообщение White1337 » 26 ноя 2017, 22:45

DeMNiX писал(а):наверное потому что у кого то ланг файлы с английского на русские словари заменены


addons/amxmodx/data/vault.ini server_language en
addons/amxmodx/configs/amxx.cfg amx_client_languages 1

с ланг файлами вроде всё нормально

[en]
RESULT_REF = Result refused
RESULT_ACC = Result accepted
VOTE_SUCCESS = Voting successful. Map will be changed to
VOTE_FAILED = Voting failed
THE_WINNER = The winner
WANT_CONT = Do you want to continue?
VOT_CANC = Voting has been canceled
X_VOTED_FOR = %s voted for option #%d
VOTEMAP_MENU = Votemap Menu
START_VOT = Start Voting
SEL_MAPS = Selected Maps
ALREADY_VOT = There is already one voting...
NO_MAPS_MENU = There are no maps in menu
VOT_NOW_ALLOW = Voting not allowed at this time
WHICH_MAP = Which map do you want?
CHANGE_MAP_TO = Change map to
CANC_VOTE = Cancel Vote
ADMIN_V_MAP_1 = Admin vote map(s)
ADMIN_V_MAP_2 = Admin %s vote map(s)
ADMIN_CHANGEL_1 = Admin changelevel %s
ADMIN_CHANGEL_2 = Admin %s changelevel %s
CHANGLE_MENU = Changelevel Menu

[ru]
RESULT_REF = Результат не принят
RESULT_ACC = Результат принят
VOTE_SUCCESS = Голосование завершено. Следующая карта
VOTE_FAILED = Голосование не состоялось
THE_WINNER = Победитель
WANT_CONT = Продолжить?
VOT_CANC = Голосование отменено
X_VOTED_FOR = %s проголосовал за #%d
VOTEMAP_MENU = Меню создания голосования за карту
START_VOT = Начало голосования
SEL_MAPS = Выбранные карты
ALREADY_VOT = Голосование уже начато
NO_MAPS_MENU = В меню нет карт
VOT_NOW_ALLOW = В данный момент голосование запрещено
WHICH_MAP = Какую карту вы бы хотели?
CHANGE_MAP_TO = Сменить карту на
CANC_VOTE = Отменить голосование
ADMIN_V_MAP_1 = Админ создал голосование за карту
ADMIN_V_MAP_2 = Админ %s создал голосование за карту
ADMIN_CHANGEL_1 = Админ сменил карту на %s
ADMIN_CHANGEL_2 = Админ %s сменил карту на %s
CHANGLE_MENU = Меню для смены карты
Аватара пользователя
White1337
 
Сообщения: 12
Зарегистрирован: 24 ноя 2017, 20:20
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Re: Смена языка на сервере

Сообщение White1337 » 29 ноя 2017, 00:09

UP
Аватара пользователя
White1337
 
Сообщения: 12
Зарегистрирован: 24 ноя 2017, 20:20
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.


Вернуться в Поиск плагинов

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 0