[SourcePawn] Урок 4 - Форматирование текста и мультиязычность

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
Если вы собираетесь использовать одну из функций PrintToChat, PrintToChatAll, PrintCenterText, PrintCenterTextAll, PrintHintText, PrintHintTextToAll, то SetGlobalTransTarget прописывать не нужно, она там уже есть.
А так если сообщение нужно показать как-то по другому и всем, то цикл по игрокам и SetGlobalTransTarget(iClient) соответственно
Да надеялся без циклов способ есть..
 

oleg_nelasy

Участник
Сообщения
664
Реакции
46
Как правильно применить SetGlobalTransTarget?

Хочу подправить плагин в меню иногда слетает перевод на английский вместо русского.
Насколько я понял нужно добавить проверку на язык клиента SetGlobalTransTarget перед FormatEx, подскажите как правильно это сделать на этом примере.

C-подобный:
public Handle_Category(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength)
{
    switch(action)
    {
        case TopMenuAction_DisplayTitle:
        FormatEx(buffer, maxlength, "%t", "when move");
        case TopMenuAction_DisplayOption:
        FormatEx(buffer, maxlength, "%t", "commands");
    }
}
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
Как правильно применить SetGlobalTransTarget?

Хочу подправить плагин в меню иногда слетает перевод на английский вместо русского.
Насколько я понял нужно добавить проверку на язык клиента SetGlobalTransTarget перед FormatEx, подскажите как правильно это сделать на этом примере.

C-подобный:
public Handle_Category(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength)
{
    switch(action)
    {
        case TopMenuAction_DisplayTitle:
        FormatEx(buffer, maxlength, "%t", "when move");
        case TopMenuAction_DisplayOption:
        FormatEx(buffer, maxlength, "%t", "commands");
    }
}
Достаточно использовать %T с передачей клиентского индекса...
 

oleg_nelasy

Участник
Сообщения
664
Реакции
46
Достаточно использовать %T с передачей клиентского индекса...
Если я делаю так

C-подобный:
public Handle_Category(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength, int iClient)
{
    switch(action)
    {
        case TopMenuAction_DisplayTitle:
        FormatEx(buffer, maxlength, "%T", "when move", iClient);
        case TopMenuAction_DisplayOption:
        FormatEx(buffer, maxlength, "%T", "commands", iClient);
    }
}

Тогда в строке Handle_Category, // Callback я получаю ошибку error 100: function prototypes do not match

C-подобный:
new TopMenuObject:menu_category = AddToTopMenu(
    hAdminMenu,        // Menu
    "commands",        // Name
    TopMenuObject_Category,    // Type
    Handle_Category,    // Callback
    INVALID_TOPMENUOBJECT    // Parent
    );

Разобрался вопрос больше не актуален.
 
Последнее редактирование:
Сверху Снизу