Ну так тебе ведь заранее известны все возможные варианты языков. И вместо того, чтоб для каждого игрока форматировать строку по новой, можно один раз записать конкретную строку для всех языков, а потом уже обращаться к записанным вариантам.
Что-то типа
PHP Code:
enum _:e_ARRAYS_LANG_LIST
{
langRus[MAX_LANG_MFORMAT_STRING],
langEng[MAX_LANG_MFORMAT_STRING]
};
stock Message_ToAdmin(var[], lang_args<>)
{
static
text[e_ARRAYS_LANG_LIST];
for(new i; i < MAX_LANG; i++)
{
Lang_GetText(i, var, text[i]); // Выгружаем строку для каждого языка
Lang_format(text[i], MAX_LANG_MFORMAT_STRING, text[i], lang_start<1>); // Форматируем строку
}
foreach(new i : Player)
{
if(P[i][p_access] >= 1)
{
SendClientMessage(i, -1, text[Lang_GetPlayerLang(i)]);// Обращаемся к заранее отформатированной строке, а не форматируем её каждый раз по новой
}
}
return 1;
}
Только я бы ещё советовал создать итератор для "p_access", а не городить такие проверки, дабы свести вообще все лишние действия к минимуму.