ML_NOTFOUND

Сообщения
72
Реакции
10
Ошибка
ML_NOTFOUND(ML_NOTFOUND: UL_CVAR_MODE_DESCRIPTION, но с другими переводами та же история, просто на конкретно этом переводе я это заметил у себя и пытался исправить)
ОС
Windows
Amx Mod X
AMX Mod X 1.10.0.5250 (http://www.amxmodx.org)                                  
Authors:
David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko
Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom
Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher
Borja "faluco" Ferrer, Scott "DS" Ehlert
Compiled: Feb 11 2019 03:17:04
Built from: https://github.com/alliedmodders/amxmodx/commit/f623126f
Build ID: 5250:f623126f
Core mode: JIT+ASM32
Билд
Protocol version 48                                                             
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.4.0.668-dev
Build date: 09:47:42 Sep 29 2018 (1631)
Build from: https://github.com/dreamstalker/rehlds/commit/89be216
ReGamedll
ReGameDLL version: 5.7.0.322-dev                                                
Build date: 11:41:14 Jan 13 2019
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/7398bb7
Версия Metamod
Metamod v1.21p37  2013/05/30 (5:13)                                             
by Will Day
http://www.metamod.org/
Patch: Metamod-P (mm-p) v37
by Jussi Kivilinna
http://metamod-p.sourceforge.net/
compiled: May 30 2013, 11:41:14 EET (optimized)
Список метамодулей
Currently loaded plugins:                                                       
description stat pend file vers src load unlod
[ 1] Reunion RUN - reunion_mm.dll v0.1.0.9 ini Start Never
[ 2] Revoice RUN - revoice_mm.dll v0.1.0.3 ini Start Never
[ 3] AMX Mod X RUN - amxmodx_mm.dll v1.10.0. ini Start ANY
[ 4] ReAPI RUN - reapi_amxx.dll v5.8.0.1 pl3 ANY Never
4 plugins, 4 running
Список плагинов
Currently loaded plugins:                                                       
name version author file st
atus
[ 1] Ultimate Leader 2.1 Nunf ultimate_leader de
bug
1 plugins, 1 running
Автор плагина
@Nunfy
Версия плагина
2.1
Исходный код
/*

|----[Связь с автором]----|
|VK: vk.com/nunfy |
|TELEGRAM: t.me/Nunfy |
|-------------------------|

*/
#include <amxmodx>
#include <reapi>

#define is_client(%0) (1 <= %0 <= MaxClients)

new const VERSION[] = "2.1";

const MAX_MODELS = 1; // Максимальное количество моделей

new const model_path[8][MAX_MODELS][] =
{
{ // terror
"models/player/terror_leader/terror_leader.mdl",
},
{ // leet
"models/player/leet_leader/leet_leader.mdl",
},
{ // arctic
"models/player/arctic_leader/arctic_leader.mdl",
},
{ // guerilla
"models/player/guerilla_leader/guerilla_leader.mdl",
},
{ // urban
"models/player/urban_leader/urban_leader.mdl",
},
{ // gsg9
"models/player/gsg9_leader/gsg9_leader.mdl",
},
{ // sas
"models/player/sas_leader/sas_leader.mdl",
},
{ // gign
"models/player/gign_leader/gign_leader.mdl"
}
};

new const default_model[8][MAX_MODELS][] =
{
{ // terror
"terror",
},
{
// leet
"leet",
},
{
// arctic
"arctic",
},
{
// guerilla
"guerilla",
},
{
// urban
"urban",
},
{
// gsg9
"gsg9",
},
{
// sas
"sas",
},
{
// gign
"gign"
}
};

new const custom_model[8][MAX_MODELS][] =
{
{ // terror
"terror_leader",
},
{
// leet
"leet_leader",
},
{
// arctic
"arctic_leader",
},
{
// guerilla
"guerilla_leader",
},
{
// urban
"urban_leader",
},
{
// gsg9
"gsg9_leader",
},
{
// sas
"sas_leader",
},
{
// gign
"gign_leader"
}
};

enum cvar_data
{
cvar_mode
}

enum
{
dId,
dKills,
dDamage
}

enum user_data
{
udModel,
udKills,
udDamage
};

enum leader_data
{
ldId,
ldKills,
ldDamage,
ldPast_id
};

new cd[cvar_data],
ud[MAX_CLIENTS + 1][user_data],
ld[leader_data];

public plugin_init()
{
register_plugin("Ultimate Leader", VERSION, "Nunf");
register_dictionary("ultimate_leader.txt");
bind_pcvar_num(create_cvar("ul_mode", "0", FCVAR_NONE, fmt("%l", "UL_CVAR_MODE_DESCRIPTION"), true, 0.0, true, 1.0), cd[cvar_mode]);
AutoExecConfig(true, "ultimate_leader");
RegisterHookChain(RG_HandleMenu_ChooseAppearance, "user_choose_appearance", true);
RegisterHookChain(RG_CBasePlayer_Killed, "user_killed", true);
RegisterHookChain(RG_CBasePlayer_TakeDamage, "user_take_damage", true);
RegisterHookChain(RG_RoundEnd, "round_end", true);
RegisterHookChain(RG_CBasePlayer_Spawn, "user_spawn", true);
RegisterHookChain(RG_CBasePlayer_SetClientUserInfoModel, "set_user_model", false);
}

public plugin_precache()
{
for(new i; i < sizeof model_path; i++)
{
for(new n; n < MAX_MODELS; n++)
{
if(file_exists(model_path[i][n]))
{
precache_model(model_path[i][n]);
}
else
{
set_fail_state("^n\
[ERROR]: FILE NOT EXISTS(array ^"model_path^")^n\
[FILE PATH]: %s",
model_path[i][n]);
}
}
}
}

public client_disconnected(id, bool:drop, message[], maxlen)
{
ud[id][udModel] = 0;
ud[id][udKills] = 0;
ud[id][udDamage] = 0;
if(id == ld[ldId])
{
ld[ldId] = 0;
ld[ldKills] = 0;
ld[ldDamage] = 0;
}
else if(id == ld[ldPast_id])
{
ld[ldPast_id] = 0;
}
}

public user_choose_appearance(const id, slot)
{
switch(get_member(id, m_iModelName))
{
case MODEL_T_TERROR:
{
ud[id][udModel] = 0;
}
case MODEL_T_LEET:
{
ud[id][udModel] = 1;
}
case MODEL_T_ARCTIC:
{
ud[id][udModel] = 2;
}
case MODEL_T_GUERILLA:
{
ud[id][udModel] = 3;
}
case MODEL_CT_URBAN:
{
ud[id][udModel] = 4;
}
case MODEL_CT_GSG9:
{
ud[id][udModel] = 5;
}
case MODEL_CT_SAS:
{
ud[id][udModel] = 6;
}
case MODEL_CT_GIGN:
{
ud[id][udModel] = 7;
}
}
}

public user_killed(const id, attacker_id, iGib)
{
if(is_client(attacker_id) && id != attacker_id)
{
ud[attacker_id][udKills]++;
}
}

public user_take_damage(const id, pevInflictor, attacker_id, Float: damage, bitsDamageType)
{
if(is_client(attacker_id) && id != attacker_id)
{
if(GetHookChainReturn(ATYPE_INTEGER) == 1)
{
ud[attacker_id][udDamage] += floatround(damage);
}
else if(get_member(attacker_id, m_iTeam) != get_member(attacker_id, m_iTeam))
{
ud[attacker_id][udDamage] += floatround(damage) + get_user_health(id);
}
}
}

public round_end(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay)
{
set_task(0.1, "task_round_end");
}

public user_spawn(id)
{
if(id == ld[ldId])
{
rg_set_user_model(ld[ldId], custom_model[ud[id][udModel]][random(sizeof custom_model[])]);
}
else if(id == ld[ldPast_id])
{
rg_set_user_model(ld[ldId], default_model[ud[id][udModel]][random(sizeof default_model[])]);
}
}

public set_user_model(id, infobuffer[], new_model[])
{
if(id == ld[ldId])
{
SetHookChainArg(3, ATYPE_STRING, custom_model[ud[id][udModel]][random(sizeof custom_model[])]);
}
else if(id == ld[ldPast_id])
{
SetHookChainArg(3, ATYPE_STRING, default_model[ud[id][udModel]][random(sizeof default_model[])]);
}
}

public task_round_end()
{
new u_i[MAX_CLIENTS],
u_n;
get_players(u_i, u_n, "h");
new data[3];
data[dId] = u_i[0];
data[dKills] = ud[u_i[0]][udKills];
data[dDamage] = ud[u_i[0]][udDamage];
ud[u_i[0]][udKills] = 0;
ud[u_i[0]][udDamage] = 0;
if(cd[cvar_mode] == 0)
{
for(new i = 1; i < u_n; i++)
{
if(ud[u_i[i]][udKills] > data[dKills] || ud[u_i[i]][udKills] == data[dKills] && ud[u_i[i]][udDamage] > data[dDamage])
{
data[dId] = u_i[i];
data[dKills] = u_i[i];
data[dDamage] = u_i[i];
}
ud[u_i[i]][udKills] = 0;
ud[u_i[i]][udDamage] = 0;
}
if(data[dKills] > ld[ldKills] || data[dKills] == ld[ldKills] && data[dDamage] > ld[ldDamage])
{
if(data[dId] == ld[ldId])
{
ld[ldKills] = data[dKills];
ld[ldDamage] = data[dDamage];
client_print_color(0, print_team_default, "%l", "UL_LEADER_OUTDONE_HIMSELF", data[dId], data[dKills], data[dDamage]);
}
else
{
ld[ldPast_id] = ld[ldId];
ld[ldId] = data[dId];
ld[ldKills] = data[dKills];
ld[ldDamage] = data[dDamage];
client_print_color(0, print_team_default, "%l", "UL_NEW_LEADER", data[dId], data[dKills], data[dDamage]);
}
}
else
{
if(!is_client(ld[ldId]))
{
client_print_color(0, print_team_default, "%l", "UL_NO_LEADER");
}
else
{
client_print_color(0, print_team_default, "%l", "UL_NOBODY_SUPPARSED_LEADER", ld[ldId]);
}
}
}
else
{
for(new i = 1; i < u_n; i++)
{
if(ud[u_i[i]][udDamage] > data[dDamage] || ud[u_i[i]][udDamage] == data[dDamage] && ud[u_i[i]][udKills] > data[dKills])
{
data[dId] = u_i[i];
data[dKills] = u_i[i];
data[dDamage] = u_i[i];
}
ud[u_i[i]][udKills] = 0;
ud[u_i[i]][udDamage] = 0;
}
if(data[dDamage] > ld[ldDamage] || data[dDamage] == ld[ldDamage] && data[dKills] > ld[ldKills])
{
if(data[dId] == ld[ldId])
{
ld[ldKills] = data[dKills];
ld[ldDamage] = data[dDamage];
client_print_color(0, print_team_default, "%l", "UL_LEADER_OUTDONE_HIMSELF", data[dId], data[dKills], data[dDamage]);
}
else
{
ld[ldPast_id] = ld[ldId];
ld[ldId] = data[dId];
ld[ldKills] = data[dKills];
ld[ldDamage] = data[dDamage];
client_print_color(0, print_team_default, "%l", "UL_NEW_LEADER", data[dId], data[dKills], data[dDamage]);
}
}
else
{
if(!is_client(ld[ldId]))
{
client_print_color(0, print_team_default, "%l", "UL_NO_LEADER");
}
else
{
client_print_color(0, print_team_default, "%l", "UL_NOBODY_SUPPARSED_LEADER", ld[ldId]);
}
}
}
}
Код:
// AMX Mod X Configuration File
echo Executing AMX Mod X Configuration File

// Default access for all non admin players (see users.ini for access details)
//
// Default value: "z"
amx_default_access "z"

// Name of setinfo which should store a password on a client (you should change this)
// Note: Always prefix the field with an underscore (aka: "_")
// (Example: setinfo _pw "password")
//
// Default value: "_pw"
amx_password_field "_pw"

// Mode of logging to a server
// 0 - disable logging, players won't be checked (and access won't be set)
// 1 - normal mode which obey flags set in accounts
// 2 - kick all players not on list
//
// Default value: 1
amx_mode 1

// Show admins activity
// 0 - disabled
// 1 - show without admin name
// 2 - show with name
// 3 - show name only to admins, hide name from normal users
// 4 - show name only to admins, show nothing to normal users
// 5 - hide name only to admins, show nothing to normal users
//
// Default value: 2
amx_show_activity 2

// Frequency in seconds and text of scrolling message
//
// Default value: "Welcome to %hostname% -- This server is using AMX Mod X" 600
amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600

// Center typed colored messages (last parameter is a color in RRRGGGBBB format)
//
// Default values: "Welcome to %hostname%" "000255100"
//                 "This server is using AMX ModX\nVisit http://www.amxmodx.org" "000100255"
amx_imessage "Welcome to %hostname%" "000255100"
amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000100255"

// Frequency in seconds of colored messages
//
// Default value: 180
amx_freq_imessage 180

// Ban times for the main ban menu (amx_banmenu)
// Use 0 for permanent ban.
// Default values: 0 5 10 15 30 45 60
amx_plmenu_bantimes 0 5 10 15 30 45 60

// Max temporary ban time (admins with ADMIN_BAN_TEMP access can't ban more than this time)
// time in minutes, 60 is 1 hour, 120 is 2 hours, 1440 is 1 day, and 10080 is 1 week
// Default value: 4320 aka 3 days
amx_tempban_maxtime 4320

// Slap damage amounts for the main slap menu (amx_slapmenu)
// Slay is automatically inserted as the last option.
// Default values: 0 1 5
amx_plmenu_slapdmg 0 1 5

// Set in seconds how fast players can chat (chat-flood protection)
//
// Default value: 0.75
amx_flood_time 0.75

// Amount of slots to reserve.
//
// Default value: 0
amx_reservation 0

// If you set this to 1, you can hide slots on your server.
// If server "full" of public slots and slots hidden, you must manually connect with connect console command
//
// Default value: 0
amx_hideslots 0

// Displaying of time remaining
// a - display white text on bottom
// b - use voice
// c - don't add "remaining" (only in voice)
// d - don't add "hours/minutes/seconds" (only in voice)
// e - show/speak if current time is less than this set in parameter
//
// Default value: "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"
amx_time_display "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"

// Announce "say thetime" and "say timeleft" with voice, set to 0 to disable.
//
// Default value: 1
amx_time_voice 1

// Minimum delay in seconds between two voting sessions
//
// Default value: 10
amx_vote_delay 10

// How long voting session goes on
//
// Default value: 10
amx_vote_time 10

// Display who votes for what option, set to 0 to disable, 1 to enable.
//
// Default value: 1
amx_vote_answers 1

// Some ratios for voting success

// Default value: 0.40
amx_votekick_ratio 0.40

// Default value: 0.40
amx_voteban_ratio 0.40

// Default value: 0.40
amx_votemap_ratio 0.40

// Default value: 0.02
amx_vote_ratio 0.02

// Max. time to which map can be extended
//
// Default value: 90
amx_extendmap_max 90

// Step for each extending
//
// Default value: 15
amx_extendmap_step 15

// Server language in ISO 639-1 format
// Please see data/lang/languages.txt file for a list of supported languages
//
// Default value: en
amx_language "ru"

// If you set this to 0, clients cannot chose their language, instead they use
// whatever language the server is configured to use.
//
// Default value: 1
amx_client_languages 0

// If you set this to 0, clients will not see a message about amx_langmenu when they join the server
//
// Default value: 1
amx_language_display_msg 1

// If you set this to 0, clients will not see a message about amx_help when they join the server
//
// Default value: 1
amx_help_display_msg 1

// Time to wait (in seconds) before displaying a message about amx_help to a client once joined the server
//
// Default value: 15
amx_help_display_msg_time 15

// Amount of commands per amx_help page
//
// Default value: 10
amx_help_amount_per_page 10

// Plugin Debug mode
// 0 - No debugging (garbage line numbers)
// 1 - Plugins with "debug" option in plugins.ini are put into debug mode
// 2 - All plugins are put in debug mode
// Note - debug mode will affect JIT performance
//
// Default value: 1
amx_debug 1

// Plugin MultiLingual Debug
// To debug a language put its 2 letter code between quotes ("en", "de", etc)
// "" means disabled
//
// Default value: ""
amx_mldebug ""
amx_language = "ru"
(путь к словарю: cstrike/addons/amxmodx/data/lang)
Код:
[ru]
UL_LEADER_OUTDONE_HIMSELF    = ^3[Ultimate] ^1Текущий лидер^4 %n ^1превзошел свои показатели. Количество убийств:^4 %d ^1| Количество урона:^4 %d
UL_NEW_LEADER                = ^3[Ultimate] ^4%n ^1становится новым лидером. Количество убийств:^4 %d ^1| Количество урона:^4 %d
UL_NO_LEADER                = ^3[Ultimate] ^4Лидер ^1будет определен в текущем раунде
UL_NOBODY_SUPPARSED_LEADER    = ^3[Ultimate] ^1В этом раунде никто не превзошел лидера^4 %n
UL_CVAR_MODE_DESCRIPTION    = Режим подсчета лидера раунда^n0 - пока игрок не превзойдет текущего лидера по количеству убийств^n1 - пока игрок не превзойдет текущего лидера по урону

Наблюдал и я пытался исправить эту ошибку я на примере перевода UL_CVAR_MODE_DESCRIPTION, которыя отображается в автосоздаваемом конфигурационном файле ultimate_leader.cfg
Вот что я получал в cfg файле:
Код:
// This file was auto-generated by AMX Mod X (v1.10.0.5250)
// Cvars for plugin "Ultimate Leader" by "Nunf" (ultimate_leader.amxx, v2.1)


// ML_NOTFOUND: UL_CVAR_MODE_DESCRIPTION
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
ul_mode "0"
Но если заменить:
Код:
-[ru]
+[en]
UL_LEADER_OUTDONE_HIMSELF    = ^3[Ultimate] ^1Текущий лидер^4 %n ^1превзошел свои показатели. Количество убийств:^4 %d ^1| Количество урона:^4 %d
UL_NEW_LEADER                = ^3[Ultimate] ^4%n ^1становится новым лидером. Количество убийств:^4 %d ^1| Количество урона:^4 %d
UL_NO_LEADER                = ^3[Ultimate] ^4Лидер ^1будет определен в текущем раунде
UL_NOBODY_SUPPARSED_LEADER    = ^3[Ultimate] ^1В этом раунде никто не превзошел лидера^4 %n
UL_CVAR_MODE_DESCRIPTION    = Режим подсчета лидера раунда^n0 - пока игрок не превзойдет текущего лидера по количеству убийств^n1 - пока игрок не превзойдет текущего лидера по урону
- работает и мы получаем желаемое содержимое конфига:
Код:
// This file was auto-generated by AMX Mod X (v1.10.0.5250)
// Cvars for plugin "Ultimate Leader" by "Nunf" (ultimate_leader.amxx, v2.1)


// Режим подсчета лидера раунда
// 0 - пока игрок не превзойдет текущего лидера по количеству убийств
// 1 - пока игрок не превзойдет текущего лидера
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
ul_mode "0"
В чем проблема? Как решить?
 
Сообщения
1,182
Реакции
2,146
Помог
57 раз(а)
Попробуйте
Код:
-fmt("%l", "UL_CVAR_MODE_DESCRIPTION")
+fmt("%L", LANG_SERVER, "UL_CVAR_MODE_DESCRIPTION")
 
Сообщения
33
Реакции
15
Помог
1 раз(а)
Nunfy, а в файле vault что стоит?
 
Сообщения
1,419
Реакции
2,509
Помог
59 раз(а)
Думаю так будет всегда если плагин запустится впервые при запуске сервера. Т.е. нужно запустить сервер, и уже после команды restart или смены карты конфиг будет создан нормально. Хотя у меня с этим всё нормально.

Nunfy, а в файле vault что стоит?
Этого файла давно уже нет.
 
Сообщения
72
Реакции
10
Попробуйте
Код:
-fmt("%l", "UL_CVAR_MODE_DESCRIPTION")
+fmt("%L", LANG_SERVER, "UL_CVAR_MODE_DESCRIPTION")
не меняет ничего
2 Мар 2019
Nunfy, а в файле vault что стоит?
его нет
2 Мар 2019
Думаю так будет всегда если плагин запустится впервые при запуске сервера. Т.е. нужно запустить сервер, и уже после команды restart или смены карты конфиг будет создан нормально. Хотя у меня с этим всё нормально.


Этого файла давно уже нет.
И правда, если при первом запуске сервера создается конфиг, то ML_NOTFOUND, если удалить конфиг и прописать "restart", то конфиг создается с нужным содержимим.
У меня раньше тоже с этим все было нормально, после переустановки винды вот такой трабл имеется. Как это можно пофиксить, есть идеи?
 
Сообщения
1,419
Реакции
2,509
Помог
59 раз(а)
Nunfy, попробуйте регистрировать в plugin_cfg. Возможно язык получается позднее. Проверить можно указав напрямую язык, к примеру:
Код:
fmt("%L", "ru", "UL_CVAR_MODE_DESCRIPTION")
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу