Работа с аргументами.
#15

Quote:
Originally Posted by Johhnyllll
View Post
Я не совсем понял что вы имеете ввиду.

В файлах которые использует zlang уже есть перевод нужной мне строки. В данном случае:
PHP Code:
// RU
MESSAGE_ADMIN_REPORT = {AA3333}Жалоба от %[ID:%d]:{ffffff} %s
// EN
MESSAGE_ADMIN_REPORT = {AA3333}Report from %[ID:%d]:{ffffff} %
Потому что язык который использует определённый человек может быть разным (т.е. не только русский), поэтому, в зависимости от его настроек, система и показывает ему нужную строку...если я правильно понял.
Ну так тебе ведь заранее известны все возможные варианты языков. И вместо того, чтоб для каждого игрока форматировать строку по новой, можно один раз записать конкретную строку для всех языков, а потом уже обращаться к записанным вариантам.

Что-то типа

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 
iMAX_LANGi++)
    {
        
Lang_GetText(i, var, text[i]); // Выгружаем строку для каждого языка
        
Lang_format(text[i], MAX_LANG_MFORMAT_STRINGtext[i], lang_start<1>); // Форматируем строку
    
}


    foreach(new 
Player)
    { 
        if(
P[i][p_access] >= 1)
        {
            
SendClientMessage(i, -1text[Lang_GetPlayerLang(i)]);// Обращаемся к заранее отформатированной строке, а не форматируем её каждый раз по новой 
        
}
    }
    return 
1;

Только я бы ещё советовал создать итератор для "p_access", а не городить такие проверки, дабы свести вообще все лишние действия к минимуму.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 4 Guest(s)