При смене языка в клиенте меняем язык сервера

  • Автор темы Автор темы ids
  • Дата начала Дата начала

ids

Единомышленник
Участник
Сообщения
80
Розыгрыши
0
Репутация
6
Реакции
27
Баллы
158
Клиент Interlude

Всем привет.
Появилась идея, при смене языка в клиенте(отправить какойто пакет на сервер) что бы паралельно менялся язык и в серверной части.
Идея такова. Есть две кнопки в клиенте

1739636444016.webp
Russian
English
Можно как то отправить с клиента команду типа
1739636977786.webp
bypass -h user_cfg lang en
bypass -h user_cfg lang ru
для смены языка сразу и в сервере?
 

на дриме так) правда там 166 клиент
//summon Rolo
тут кажется интерлюдом запахло
 
  • Ха-ха-ха
Реакции: Rolo
C-подобный:
RequestBypassToServer(string);
 
Rolo знает свое дело, но меня интересует не купить;) а самому
 
чисто в теории из ини файла спарсить id языка и уже в зависимости от id посылать байпасс при каждом входе
 
чисто в теории из ини файла спарсить id языка и уже в зависимости от id посылать байпасс при каждом входе
Так при входе оно и так шлет же язьік. ) Обьічно спотьікаются об детект сменьі язьіка.

Если можно поподробней, компил присуствует у меня
Ну на применение настроек просто можно слать свой байпас, в зависьмости от вьібранного язьіка.
 
Так при входе оно и так шлет же язьік. ) Обьічно спотьікаются об детект сменьі язьіка.


Ну на применение настроек просто можно слать свой байпас, в зависьмости от вьібранного язьіка.
Я вижу в OptionWnd.uc присуствует смена языка, можна както туда засунуть?
 
Я вижу в OptionWnd.uc присуствует смена языка, можна както туда засунуть?
на кнопку применить/ок вешай байпасс который отправляется в зависимости от того какой id языка спарсишь
 
ids, так окно со скрика и есть опшенс. ) Прикрутить можно и на сам факт сменьі, но если игрок вьіберет другой язьік и применять не будет? Я бьі слал именно на применение опшенс, еплай/ок баттон фукнции, можно еще проверять менялся ли язьік (установить себе какой-то флаг, запоминать язьік в оншоу виндов, етк), но можно просто каждьій раз слать, а сервером проверять уже, 1 байпас интерлюд не испортит.

на кнопку применить/ок вешай байпасс который отправляется в зависимости от того какой id языка спарсишь
Да там нет смьісла инишник мучать, оно ж актуальньій язьік в єтом боксе сверху всегда в памяти держит. )
 
Да там нет смьісла инишник мучать, оно ж актуальньій язьік в єтом боксе сверху всегда в памяти держит. )
ну тогда еще проще
с другой стороны это интерлюд, лишний раз дёрнуть инишник ему не навредит
 
root@localhost:~#, я бьі все таки в момент сохранения не юзал бьі чтение с того же файла. :loltt0:
 
А нету ту типа возможности :rolleyes:
оригинал
Class'UIAPI_COMBOBOX'.static.AddString("OptionWnd.LanguageBox", "Russian");
Class'UIAPI_COMBOBOX'.static.AddString("OptionWnd.LanguageBox", "English");
ПРИМЕР
Class'UIAPI_COMBOBOX'.static.AddString("OptionWnd.bypass -h user_cfg lang en.LanguageBox", "Russian");
Class'UIAPI_COMBOBOX'.static.AddString("OptionWnd.bypass -h user_cfg lang ru.LanguageBox", "English");
 
Class'UIAPI_COMBOBOX'.static.AddString("OptionWnd.LanguageBox", "English");
Єто название комбобокса, в которое добавляется строка "English".

Вот доступньіе манипуляции с комбобокасами, но, повторюсь, я бьі туда не лазил для єтой цели.
CoffeeScript:
class UIAPI_COMBOBOX extends UIAPI_WINDOW
    ;

native static function AddString(string ControlName,string str);
native static function SYS_AddString(string ControlName,int index);
native static function AddStringWithReserved(string ControlName,string str,int reserved);
native static function SYS_AddStringWithReserved(string ControlName,int index,int reserved);
native static function string GetString(string ControlName,int num);
native static function int GetReserved(string ControlName,int num);
native static function int GetSelectedNum(string ControlName);
native static function SetSelectedNum(string ControlName,int num);
native static function Clear(string ControlName);
native static function int GetNumOfItems(string ControlName);
defaultproperties
{
}



Через хендлер:
class ComboBoxHandle extends WindowHandle
    ;

native final function AddString(string str);
native final function SYS_AddString(int index);
native final function AddStringWithReserved(string str,int reserved);
native final function SYS_AddStringWithReserved(int index,int reserved);
native final function string GetString(int num);
native final function int GetReserved(int num);
native final function int GetSelectedNum();
native final function SetSelectedNum(int num);
native final function Clear();
defaultproperties
{
}
 
Код:
Class'UIAPI_COMBOBOX'.static.AddString("OptionWnd.bypass -h ДВЕРЬ МНЕ ЗАПИЛИЛ", "Выпилить");
 
на кнопку применить/ок вешай байпасс который отправляется в зависимости от того какой id языка спарсишь
ids, так окно со скрика и есть опшенс. ) Прикрутить можно и на сам факт сменьі, но если игрок вьіберет другой язьік и применять не будет? Я бьі слал именно на применение опшенс, еплай/ок баттон фукнции, можно еще проверять менялся ли язьік (установить себе какой-то флаг, запоминать язьік в оншоу виндов, етк), но можно просто каждьій раз слать, а сервером проверять уже, 1 байпас интерлюд не испортит.


Да там нет смьісла инишник мучать, оно ж актуальньій язьік в єтом боксе сверху всегда в памяти держит. )
Межет ктото повешать байпас на эти кнопки?
 
Межет ктото повешать байпас на эти кнопки?
Я не профессионал ), но думаю можно с клиента отправить запрос,на сервер а сервер должен его получить, "RequestBypassToServer.java" распарсить и сменить язык, Думаю как-то так)

OptionWnd.uc
C++:
function OnClickButton(string strID) {
  switch (strID) {
    case "GameOKBtn":
      LanguageToServer();
      breek;
  }
}

function LanguageToServer() {
  local int SelectedIndex;

  SelectedIndex = class 'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.LanguageBox");

  if (0 == SelectedIndex) RequestBypassToServer("set_Language ru");
  if (1 == SelectedIndex) RequestBypassToServer("set_Language en");
}
 
Дополню:
Чтобы это работало, даже если вы выбрали язык в окне входа в игру, нужно добавить следующий код:
При входе в игру загрузится окно ShortcutWnd, после чего выполнится запрос RequestBypassToServer со сменой языка.

ShortcutWnd.uc
C++:
function OnShow(){ //Или OnLoad();
 LanguageToServer();
}

function LanguageToServer() {
  local int SelectedIndex;

  SelectedIndex = class'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.LanguageBox");

  if (0 == SelectedIndex) RequestBypassToServer("set_Language ru");
  if (1 == SelectedIndex) RequestBypassToServer("set_Language en");
}
 
Я не профессионал ), но думаю можно с клиента отправить запрос,на сервер а сервер должен его получить, "RequestBypassToServer.java" распарсить и сменить язык, Думаю как-то так)

OptionWnd.uc
C++:
function OnClickButton(string strID) {
  switch (strID) {
    case "GameOKBtn":
      LanguageToServer();
      breek;
  }
}

function LanguageToServer() {
  local int SelectedIndex;

  SelectedIndex = class 'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.LanguageBox");

  if (0 == SelectedIndex) RequestBypassToServer("set_Language ru");
  if (1 == SelectedIndex) RequestBypassToServer("set_Language en");
}
Компил прошел успешно. но я пока ничего не достиг.
+Мне еще кнопку нада будет добавить "GameOKBtn" в xdat?
 
Компил прошел успешно. но я пока ничего не достиг.
+Мне еще кнопку нада будет добавить "GameOKBtn" в xdat?
На сервере в файле RequestBypassToServer.java рспарсь строки set_Language ru и set_Language en и меняй язык по условию. Думаю, что кто-то более опытный в работе с серверной частью сможет лучше ответить на этот вопрос.
 
Назад
Сверху