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

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

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

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

> Информационная доска

Данный раздел предназначен для обсуждения, а также решения технических проблем связанных с серверной частью. Обсуждения касательно игровых клиентов ведутся здесь.

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.

Русификация стандартного Statscfg

Статус пользователя theNuclear
сообщение 25.1.2012, 18:14
Сообщение #1


Стаж: 14 лет

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

Привет всем. У меня запарка с русификацией меню настройки статистики, то что amx_statscfg. Его русификации я вообще никогда не встречал, но она нужна и я решил сделал её сам, но наткнулся на вечную проблему нехватки символов после изменения кодировки и в случае Statscfg привычное решение проблемы, увеличить это кол-во символов в исходнике - у меня не проканало. Возможно ли вообще что-то с этим сделать?

Прикрепленное изображение

Стандартный statscfg.sma

/* AMX Mod X
* Stats Configuration Plugin
*
* by the AMX Mod X Development Team
* originally developed by OLO
*
* 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 <amxmodx>
#include <amxmisc>

#define MAX_MENU_DATA 72

new g_menuData[MAX_MENU_DATA][32]
new g_menuDataVar[MAX_MENU_DATA][32]
new g_menuDataId[MAX_MENU_DATA]
new g_menuDataNum
new g_menuPosition[33]
new g_fileToSave[64]
new bool:g_modified
new g_coloredMenus

public plugin_precache()
{
register_clcmd("amx_statscfgmenu", "cmdCfgMenu", ADMIN_CFG, "- displays stats configuration menu")
register_dictionary("statscfg.txt")
register_dictionary("common.txt")
register_concmd("amx_statscfg", "cmdCfg", ADMIN_CFG, "- displays help for stats configuration")
}

public plugin_init()
{
register_plugin("Stats Configuration", AMXX_VERSION_STR, "AMXX Dev Team")
register_menucmd(register_menuid("Stats Configuration"), 1023, "actionCfgMenu")

get_configsdir(g_fileToSave, 63)
format(g_fileToSave, 63, "%s/stats.ini", g_fileToSave)
loadSettings(g_fileToSave)
g_coloredMenus = colored_menus()
}

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

new cmds[32]
read_argv(1, cmds, 31)

new option = equali(cmds, "on") ? 1 : 0

if (!option)
option = equali(cmds, "off") ? 2 : 0

if (read_argc() > 2 && option)
{
new var[32], enabled = 0
read_argv(2, var, 31)

for (new a = 0; a < g_menuDataNum; ++a)
{
if (containi(g_menuDataVar[a], var) != -1)
{
g_modified = true
++enabled
if (option == 1)
{
set_xvar_num(g_menuDataId[a], 1)
console_print(id, "%L: %s", id, "STATS_ENABLED", g_menuData[a])
} else {
set_xvar_num(g_menuDataId[a], 0)
console_print(id, "%L: %s", id, "STATS_DISABLED", g_menuData[a])
}
}
}

if (enabled)
console_print(id, "%L", id, "TOTAL_NUM", enabled)
else
console_print(id, "%L", id, "NO_OPTION", var)
}
else if (equali(cmds, "save"))
{
if (saveSettings(g_fileToSave))
{
g_modified = false
console_print(id, "%L", id, "STATS_CONF_SAVED")
}
else
console_print(id, "%L", id, "STATS_CONF_FAILED")
}
else if (equali(cmds, "load"))
{
if (loadSettings(g_fileToSave))
{
g_modified = false
console_print(id, "%L", id, "STATS_CONF_LOADED")
}
else
console_print(id, "%L", id, "STATS_CONF_FAIL_LOAD")
}
else if (equali(cmds, "list"))
{
new arg1[8]
new start = read_argv(2, arg1, 7) ? str_to_num(arg1) : 1

if (--start < 0) start = 0

if (start >= g_menuDataNum)
start = g_menuDataNum - 1

new end = start + 10

if (end > g_menuDataNum)
end = g_menuDataNum

new lName[16], lVariable[16], lStatus[16]

format(lName, 15, "%L", id, "NAME")
format(lVariable, 15, "%L", id, "VARIABLE")
format(lStatus, 15, "%L", id, "STATUS")
console_print(id, "^n----- %L: -----", id, "STATS_CONF")
console_print(id, " %-29.28s %-24.23s %-9.8s", lName, lVariable, lStatus)

if (start != -1)
{
new lOnOff[16]

for (new a = start; a < end; ++a)
{
format(lOnOff, 15, "%L", id, get_xvar_num(g_menuDataId[a]) ? "ON" : "OFF")
console_print(id, "%3d: %-29.28s %-24.23s %-9.8s", a + 1, g_menuData[a], g_menuDataVar[a], lOnOff)
}
}

console_print(id, "----- %L -----", id, "STATS_ENTRIES_OF", start + 1, end, g_menuDataNum)

if (end < g_menuDataNum)
console_print(id, "----- %L -----", id, "STATS_USE_MORE", end + 1)
else
console_print(id, "----- %L -----", id, "STATS_USE_BEGIN")
}
else if (equali(cmds, "add") && read_argc() > 3)
{
if (g_menuDataNum < MAX_MENU_DATA)
{
read_argv(2, g_menuData[g_menuDataNum], 31)
read_argv(3, g_menuDataVar[g_menuDataNum], 31)
g_menuDataId[g_menuDataNum] = get_xvar_id(g_menuDataVar[g_menuDataNum])
++g_menuDataNum
}
else
console_print(id, "%L", id, "CANT_ADD_STATS")
} else {
console_print(id, "%L", id, "COM_STATS_USAGE")
console_print(id, "%L", id, "COM_STATS_COM")
console_print(id, "%L", id, "COM_STATS_ON")
console_print(id, "%L", id, "COM_STATS_OFF")
console_print(id, "%L", id, "COM_STATS_SAVE")
console_print(id, "%L", id, "COM_STATS_LOAD")
console_print(id, "%L", id, "COM_STATS_LIST")
console_print(id, "%L", id, "COM_STATS_ADD")
}

return PLUGIN_HANDLED
}

public cmdCfgMenu(id, level, cid)
{
if (cmd_access(id, level, cid, 1))
displayCfgMenu(id, g_menuPosition[id] = 0)

return PLUGIN_HANDLED
}

displayCfgMenu(id, pos)
{
if (pos < 0)
return

new menu_body[512], start = pos * 7

if (start >= g_menuDataNum)
start = pos = g_menuPosition[id] = 0

new len = format(menu_body, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "STATS_CONF", pos + 1, ((g_menuDataNum / 7)+((g_menuDataNum % 7) ? 1 : 0)))
new end = start + 7, keys = MENU_KEY_0|MENU_KEY_8, k = 0

if (end > g_menuDataNum)
end = g_menuDataNum

for (new a = start; a < end; ++a)
{
keys |= (1<<k)
/* Backwards compatibility hack - if the name starts with ST_, assume it is translation safe! */
if (equal(g_menuData[a], "ST_", 3))
{
len += format(menu_body[len], 511-len, g_coloredMenus ? "%d. %L\y\R%L^n\w" : "%d. %L %L^n", ++k, id, g_menuData[a], id, get_xvar_num(g_menuDataId[a]) ? "ON" : "OFF")
} else {
len += format(menu_body[len], 511-len, g_coloredMenus ? "%d. %s\y\R%L^n\w" : "%d. %s %L^n", ++k, g_menuData[a], id, get_xvar_num(g_menuDataId[a]) ? "ON" : "OFF")
}
}

if (g_menuDataNum == 0)
len += format(menu_body[len], 511-len, g_coloredMenus ? "\d%L\w" : "%L", id, "NO_STATS")

len += format(menu_body[len], 511-len, g_coloredMenus ? "^n8. %L\y\R%s^n\w" : "^n8. %L %s^n", id, "SAVE_CONF", g_modified ? "*" : "")

if (end != g_menuDataNum)
{
format(menu_body[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else
format(menu_body[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")

show_menu(id, keys, menu_body, -1, "Stats Configuration")
}

public actionCfgMenu(id, key)
{
switch (key)
{
case 7:
{
if (saveSettings(g_fileToSave))
{
g_modified = false
client_print(id, print_chat, "* %L", id, "STATS_CONF_SAVED")
}
else
client_print(id, print_chat, "* %L", id, "STATS_CONF_FAILED")

displayCfgMenu(id, g_menuPosition[id])
}
case 8: displayCfgMenu(id, ++g_menuPosition[id])
case 9: displayCfgMenu(id, --g_menuPosition[id])
default:
{
g_modified = true
new a = g_menuPosition[id] * 7 + key
set_xvar_num(g_menuDataId[a], 1 - get_xvar_num(g_menuDataId[a]))

displayCfgMenu(id, g_menuPosition[id])
}
}

return PLUGIN_HANDLED
}

saveSettings(filename[])
{
if (file_exists(filename))
delete_file(filename)

if (!write_file(filename, ";Generated by Stats Configuration Plugin. Do not modify!^n;Variable Description"))
return 0

new text[256]

for (new a = 0; a < g_menuDataNum; ++a)
{
if (get_xvar_num(g_menuDataId[a]))
{
if (equal(g_menuData[a], "ST_", 3))
{
format(text, 255, "%-24.23s ;%L", g_menuDataVar[a], LANG_SERVER, g_menuData[a])
}
else
{
format(text, 255, "%-24.23s ;%s", g_menuDataVar[a], g_menuData[a])
}
write_file(filename, text)
}
}

return 1
}

loadSettings(filename[])
{
if (!file_exists(filename))
return 0

new text[256], name[32]
new len, pos = 0, xid

while (read_file(filename, pos++, text, 255, len))
{
if (text[0] == ';') continue // line is a comment

parse(text, name, 31)

if ((xid = get_xvar_id(name)) != -1)
set_xvar_num(xid, 1)
}

return 1
}

Русифицированный statscfg.txt

[ru]
NO_OPTION = Не найдено значение переменной (имя "%s")
STATS_CONF_SAVED = Конфигурация успешно сохранена
STATS_CONF_FAILED = Не удалось сохранить конфигурацию!
STATS_CONF_LOADED = Конфигурация успешно загружена
STATS_CONF_FAIL_LOAD = Не удалось загрузить конфигурацию!
STATS_CONF = Меню конфигурации статистики
STATS_ENTRIES_OF = Список команд с %i по %i. Всего - %i
STATS_USE_MORE = Напишите "amx_statscfg list %i" для подробностей
STATS_USE_BEGIN = Напишите "amx_statscfg list 1" для начала
STATS_ENABLED = Статистика включена
STATS_DISABLED = Статистика отключена
CANT_ADD_STATS = Невозможно добавить запись в статистику! Достигнут предел записей!
COM_STATS_USAGE = Использование: amx_statscfg <команда> [параметры] ...
COM_STATS_COM = Команды:
COM_STATS_ON = ^ton <переменная> - включить функцию
COM_STATS_OFF = ^toff <переменная> - выключить функцию
COM_STATS_SAVE = ^tsave - сохранить конфигурацию
COM_STATS_LOAD = ^tload - загрузить конфигурацию
COM_STATS_LIST = ^tlist [id] - список состояния переменных статистики
COM_STATS_ADD = ^tadd <имя> <переменная> - добавить к списку статистики
NO_STATS = Плагин статистики^nне запущен на сервере!
SAVE_CONF = Конфигурация сохранена
ST_MULTI_KILL = Мульти-убийства
ST_MULTI_KILL_SOUND = Звук для мульти-убийств
ST_BOMB_PLANTING = Закладка бомбы
ST_BOMB_DEFUSING = Разминирование бомбы
ST_BOMB_PLANTED = Бомба заложена
ST_BOMB_DEF_SUCC = Бомба разминированна
ST_BOMB_DEF_FAIL = Бомба не разминированна
ST_BOMB_PICKUP = Бомба подобранна
ST_BOMB_DROP = Бомба сброшена
ST_BOMB_CD_VOICE = Озвучка отсчета бомбы
ST_BOMB_CD_DEF = Отсчет до взрыва для минера
ST_BOMB_SITE = Прибытие на место установки бомбы
ST_ITALY_BONUS = Убийство курицы
ST_LAST_MAN = Последний игрок
ST_KNIFE_KILL = Убийство с ножа
ST_KNIFE_KILL_SOUND = Звук для убийства с ножа
ST_HE_KILL = Убийство гранатой
ST_HE_SUICIDE = Самоубийство гранатой
ST_HS_KILL = Убийство в голову
ST_HS_KILL_SOUND = Звук для убийства в голову
ST_ROUND_CNT = Счетчик раундов
ST_ROUND_CNT_SOUND = Звук для счетчика раундов
ST_KILL_STR = Серия убийств между раундами
ST_KILL_STR_SOUND = Звук для серии убийств между раундами
ST_ENEMY_REM = Осталось врагов
ST_DOUBLE_KILL = Двойное убийство
ST_DOUBLE_KILL_SOUND = Звук для двойного убийства
ST_PLAYER_NAME = Имя и статус игрока при наводке
ST_FIRST_BLOOD_SOUND = Звук для первой крови
ST_SHOW_KILLER_CHAT = Показ информации об убийце (чат)
ST_SHOW_ATTACKERS = Показ нападавших
ST_SHOW_VICTIMS = Показ жертв
ST_SHOW_KILLER = Показ информации об убийце (HUD)
ST_SHOW_TEAM_SCORE = Показ очков команды
ST_SHOW_TOTAL_STATS = Показ общей статистики
ST_SHOW_BEST_SCORE = Показ лучшего по очкам
ST_SHOW_MOST_DISRUPTIVE = Показ больше всех навредившего
ST_SHOW_HUD_STATS_DEF = Показ HUD-статистики по-умолчанию
ST_SHOW_DIST_HS_HUD = Дистанция и убийства в голову в HUD списках
ST_STATS_PLAYER_MAP_END = Статистика по окончанию карты
ST_STATS_TOP15_MAP_END = Топ15 по окончанию карты
ST_SAY_HP = Разрешение /hp
ST_SAY_STATSME = Разрешение /statsme
ST_SAY_RANKSTATS = Разрешение /rankstats
ST_SAY_ME = Разрешение /me
ST_SAY_RANK = Разрешение /rank
ST_SAY_REPORT = Разрешение /report
ST_SAY_SCORE = Разрешение /score
ST_SAY_TOP15 = Разрешение /top15
ST_SAY_STATS = Разрешение /stats
ST_SPEC_RANK = Показ ранга наблюдателям


P.S.: ST_SHOW_HUD_STATS_DEF = Показ HUD-статистики по-умолчанию / Show HUD-stats default - какой функции служит это? Я тестил много, но понять все же не смог.

Отредактировал: theNuclear, - 25.1.2012, 19:32
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя Zero
сообщение 26.1.2012, 8:00
Сообщение #2


Стаж: 15 лет

Сообщений: 848
Благодарностей: 290
Полезность: 591

в папке amxmod/data в файле vault.ini выставлен русский язык?

Если нет поставь ru вместо en и рестарт
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: