Например:
Сменя Языка
1.Русский
2.Английский
Как только нажал на язык то он меняется.
Буду очень признателен если поможете найти.
Тема перемещена из раздела "Скриптинг" // Subb98
evgeniy777 писал(а): Здравствуйте,вы можете написать плагин для ксс что бы можно было игроку не хорошему который играет и говорит не хорошие вещи про родных сломать хоят бы кс ?
Модератор: Leonidddd
#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
}
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
}
DeMNiX писал(а):наверное потому что у кого то ланг файлы с английского на русские словари заменены
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4