oleg_nelasy
Участник
- Сообщения
- 664
- Реакции
- 46
Подскажите если язык клиента на английском. То сервер выдет админ меню тоже на английском. Я могу сменить язык меню для себя не меняя язык клиента? Sourcemod
.../addons/sourcemod/configs/languages.cfg
if(num < 1)
должно было бытьПировал когда захожу из меню настроек в меню выбора языка@oleg_nelasy, попробуй версию с гитхаба (и строчку ту поправь, как я написал).
public void OnClientPostAdminCheck(int client)
{
if(iLang[client] == -1) OnClientCookiesCached(client);
}
public void OnClientCookiesCached(int client)
{
if(IsFakeClient(client))
return;
GetClientCookie(client, hCookies, sCode, sizeof(sCode));
iLang[client] = GetLanguageByCode(sCode);
//PrintToChatAll("iLang[client] для игрока %N = %d", client, iLang[client]);
//PrintToServer("iLang[client] для игрока %N = %d", client, iLang[client]);
//if(iLang[client] != -1) SetClientLanguage(client, iLang[client]);
}
public void OnClientLanguageChanged(int client, int lang)
{
if(IsFakeClient(client))
return;
if(iLang[client] != -1) SetClientLanguage(client, iLang[client]);
}
public void OnClientLanguageChanged(int client)
{
if(iLang[client] == -1){
if(IsFakeClient(client))
return;
GetClientCookie(client, hCookies, sCode, sizeof(sCode));
iLang[client] = GetLanguageByCode(sCode);
if(iLang[client] != -1) SetClientLanguage(client, iLang[client]);
}
}
Меню работает. Но язык при входе также не меняется. Как я уже писал выше в похоже тот момент игрок еще не передал данные о языке своего клиента. И похоже что позже данные просто перезаписываются на то что клиент перед серверу. Я у себя это исправил переместив смену языка в OnClientLanguageChanged(). В моей версии все идеально работает.@oleg_nelasy, попробуй такой вариант.
Поправил меню и исправил ещё в паре мест.
это момент, когда SM прочитал инфу в своей БД о игрокеOnClientCookiesCached()
Этот форвард только в SM1.13 появился?Переносить в OnClientLanguageChanged()
я пробовал OnClientPutInServer(), OnClientConnected в обоих вариантах тоже самое что у вас все данные записываются верно но сам язык остается как у клиента. А в OnClientLanguageChanged все работает как надо.это момент, когда SM прочитал инфу в своей БД о игроке
Честно не знаю 3 года к sm вообще не прикасался сейчас cs co запустили появился интерес попробовать сделать сервер. Появилась проблема полез искать что подойдет на SourceMod: Half-Life 2 Scripting.Этот форвард только в SM1.13 появился?
Это команда дефолтного плагина SM clientprefs.И можете подсказать откуда появляется !settings
именночтоб точно работало
Объясните пожалуйста как интегрируете свое меню в SM clientprefs. Просматривал код так и не понял. Интересно если буду в будущем что то свое делать.Это команда дефолтного плагина SM clientprefs.
Сообщения автоматически склеены: