Выполнить команду ссылаясь на языковые настройки другого игрока

oleg_nelasy

Участник
Сообщения
664
Реакции
46
Код выполняется по событию администратор выбрал пункт в меню.


C-подобный:
AdminId PlayerID, PlayerID2;

case 1:
{
    PlayerID = GetUserAdmin(iClient);
    PlayerID2 = GetUserAdmin(g_iPlayer[iClient]);
    if(GetAdminImmunityLevel(PlayerID) >= GetAdminImmunityLevel(PlayerID2))
        SetClientInfo(g_iPlayer[iClient], "name", sReasonsName[1]);
        else CGOPrintToChat(iClient, "%t %t", "Tag", "No access")
}

В данном случаи игроку устанавливается ник (sReasonsName задан в файле перевода) язык выбирает в зависимости от клиента (админ который открыл меню и применил действие). А надо следующие если у админа русский клиент игры а у наказанного игрока английский то у админа меню должно быть на русском(сейчас оно так и работает) а ник наказуемому должно установить на английском.
Надо чтоб SetClientInfo(g_iPlayer[iClient], "name", sReasonsName[1]); определяло язык в зависимости от наказанного игрока а не от админа.
 

DeathScore13

пирожок. пирожочек.
Сообщения
734
Реакции
403
char buffer[32];
FormatEx(buffer, sizeof buffer, "%T", "phrase", g_iPlayer[iClient]);
SetClientInfo(g_iPlayer[iClient], "name", buffer);
 

pchelovek

Добрая душа
Сообщения
76
Реакции
71
Может быть так, если я верно понял.:
{
    PlayerID = GetUserAdmin(iClient);
    PlayerID2 = GetUserAdmin(g_iPlayer[iClient]);
    if(GetAdminImmunityLevel(PlayerID) >= GetAdminImmunityLevel(PlayerID2)) {
        char sNewName[32];
        FormatEx(sNewName, sizeof(sNewName), "%T", sReasonsName[1], g_iPlayer[iClient]);
        SetClientInfo(g_iPlayer[iClient], "name", sNewName);
    } else {
        CGOPrintToChat(iClient, "%t %t", "Tag", "No access");
    }
}
 
Сверху Снизу