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

  • Автор темы Автор темы ids
  • Дата начала Дата начала
Сервер пытался получить чтото, но я упустил после чего имено

[22:32:54] WARN Direct access to bypass: set_Language en / IN_GAME IP: 192.168.0.222 Account: wwww Player : gsdf[268477405]
[22:33:09] WARN Direct access to bypass: set_Language en / IN_GAME IP: 192.168.0.222 Account: wwww Player : gsdf[268477405]
[22:35:17] WARN Direct access to bypass: set_Language en / IN_GAME IP: 192.168.0.222 Account: wwww Player : gsdf[268477405]

Мысль я твою поймал, спасибо, какой то результат есть.
[23:04:44] WARN Direct access to bypass: bypass -h user_cfg lang en / IN_GAME IP: 192.168.0.222 Account: qqqq Player : IDS[268477035]
Просто при выборе языка не шлется ничего, я создал во имя експеримента КНОПКУ "GameOKBtn" в настройках
1Видео
2Звук
3Игра
"GameOKBtn" При нажатии на батон как раз и отправляется пакет. Проблема в том что я так понял сервер ругается на етот байпас с клиета
 
Последнее редактирование модератором:

"GameOKBtn" При нажатии на батон как раз и отправляется пакет. Проблема в том что я так понял сервер ругается на етот байпас с клиета
В файле RequestBypassToServer.java необходимо указать серверу, что делать с этим пакетом. У меня есть только исходный Мебиуса , я думаю, что логика работы везде одинакова.

RequestBypassToServer.java
Java:
private static final String[] _possibleNonHtmlCommands = {
  "_bbs",
  "bbs",
  "_mail",
  .......................
  .......................
  .......................
  "set_Language"
};

protected void runImpl() {
  .......................
  .......................
  .......................

  // Клиент  RequestBypassToServer("set_Language");
  if(_command.startsWith("set_Language")) {

      String _Language = String.valueOf(_command.replace("set_Language", "")).trim();

      player.sendMessage("ServerBypass : Language = " + _Language);

    }
    .......................
    .......................
    .......................
}

Если все сделаешь правильно в результате в чате игры получишь этот текст

1739658565766.webp
 
  • Мне нравится
Реакции: ids
Я не профессионал ), но думаю можно с клиента отправить запрос,на сервер а сервер должен его получить, "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");
}
BIT_hack Добрался уже и до Java ?
 
Думаю самый простой вариант будет в интерфейсе сделать так:
Скрытое содержимое доступно для зарегистрированных пользователей!


На сервере просто сделать toggle и все. :pandaredlol:
 
Думаю самый простой вариант будет в интерфейсе сделать так:
*** Скрытый текст не может быть процитирован. ***

На сервере просто сделать toggle и все. :pandaredlol:
Я тоже так делал, но, по-моему, эти команды отправляются через чат, а за это можно получить бан чата в игре)

[23:04:44] WARN Direct access to bypass: bypass -h user_cfg lang en / IN_GAME IP: 192.168.0.222 Account: qqqq Player : IDS[268477035]
Если у тебя на сервере уже есть эта команда bypass -h user_cfg lang en поищи ее в исходниках и посмотри как она работает, после отошли на сервер правильный bypass.
Здесь есть более опытные ребята знающие сборки серверов, возможно, они тебе помогут.
 
Конечно, имено етих две команды и меняют язык
 
не понимаю, ранее ты писал что хочешь сам разобраться, а по итогу ты даже не догадался заменить байпасс на свой, который отвечает за смену языка, это точно попытка разобраться, а не "сделайте за меня"?
 
  • Мне нравится
Реакции: Rolo
У меня сборка от Dizera я так понимаю сам я ее не копну!
ето займет некоторое время, что бы дизер вписал ето
 
У меня сборка от Dizera я так понимаю сам я ее не копну!
ето займет некоторое время, что бы дизер вписал ето
altsettings.properties:
XML:
AltSimpleBypassAllowed = _mrsl,_diary,_match,manor_menu_select,bypass -h npc_%objectId%_lang ru,bypass -h npc_%objectId%_lang en,_olympiad,_dispel
догадаешься какой байпасс нужен?
 
Думаю самый простой вариант будет в интерфейсе сделать так:
*** Скрытый текст не может быть процитирован. ***

На сервере просто сделать toggle и все. :pandaredlol:
на форуме люцеры есть бразилец который продаёт интерфейс, у него там прикручен автофарм не через байпассы а через команды, недавно мне пишет чел который купил его поделие за 150$, типа помоги что то сделать у игроков банчата вечный
 
Я тоже так делал, но, по-моему, эти команды отправляются через чат, а за это можно получить бан чата в игре)


Если у тебя на сервере уже есть эта команда bypass -h user_cfg lang en поищи ее в исходниках и посмотри как она работает, после отошли на сервер правильный bypass.
Здесь есть более опытные ребята знающие сборки серверов, возможно, они тебе помогут.
На самом деле нет, ведь это как если бы в чат например . menu

на форуме люцеры есть бразилец который продаёт интерфейс, у него там прикручен автофарм не через байпассы а через команды, недавно мне пишет чел который купил его поделие за 150$, типа помоги что то сделать у игроков банчата вечный

Можно настроить на отдельные .menu и прочее по другому.

Варианты есть как сделать в любом случае :pandaredlol:
 
altsettings.properties:
XML:
AltSimpleBypassAllowed = _mrsl,_diary,_match,manor_menu_select,bypass -h npc_%objectId%_lang ru,bypass -h npc_%objectId%_lang en,_olympiad,_dispel
догадаешься какой байпасс нужен?
нет такого конвига, но есть типа
пакет фильтр
<packetByName name="RequestBypassToServer">
<limit count="1" perMs="100">
<log format="Player %user_name%/%account_name%[%ip%/%hwid%] limit RequestBypassToServer"/>
<actionFailed/>
<!-- <drop/> -->
<!-- <kick/> -->
</limit>
</packetByName>
 
нет такого конвига, но есть типа
пакет фильтр
<packetByName name="RequestBypassToServer">
<limit count="1" perMs="100">
<log format="Player %user_name%/%account_name%[%ip%/%hwid%] limit RequestBypassToServer"/>
<actionFailed/>
<!-- <drop/> -->
<!-- <kick/> -->
</limit>
</packetByName>
значит у тебя версия старая и через интерфейс получить доступ к байпассу не получится
 
Пол года не обновлялся примерно, не нужно было
тогда конкретно к языковым байпассам доступ должен быть

bypass -h npc_%objectId%_lang ru
bypass -h npc_%objectId%_lang en
 
тогда конкретно к языковым байпассам доступ должен быть

bypass -h npc_%objectId%_lang ru
bypass -h npc_%objectId%_lang en
Перечитал я его тему с 166 protocpl. и я так понял ето для 166 протокола, чтобы кнопки переключения были видны не в самой html
а в углу окна по байпасам

USE_HTML_LOCALIZATION_BUTTON=true при значени tru
RU_HTML_LANGUAGE_BYPASS=example_bypass_switch_ru
EN_HTML_LANGUAGE_BYPASS=example_bypass_switch_en

1739689751278.webp
У меня есть байпасы, но они не предназначены переключать язык аж там.
1.bypass -h npc_%objectId%_lang en
2.bypass -h user_cfg lang en
Они работаут в структуре html
<html>
<title>Cfg</title>
<table width=260>
<tr>
<td width=140>Language:</td>
<td width=30>%lang%</td>
<td width=30><button width=30 height=15 back="L2UI_CH3.bigbutton2_down" fore="L2UI_CH3.bigbutton2" action="bypass -h user_cfg lang en" value="En"></td>
<td width=30><button width=30 height=15 back="L2UI_CH3.bigbutton2_down" fore="L2UI_CH3.bigbutton2" action="bypass -h user_cfg lang ru" value="Ru"></td>
<td width=30></td>
</tr>
</table>
</body>
</html>

Умення interlude
 
И ладно еще с моим байпасом bypass -h user_cfg lang ru
так меня и не пускает даже с bypass _bbshome
WARN Direct access to bypass: bypass _bbshome / IN_GAME IP: 192.168.0.222 Account: qqqq Player : IDS[268477035]
 
причем здесь interlude/classic и вообще кнопки, кнопки просто делают вызов байпасса, разницы нет откуда его вызывать
дизер сделал путаницу с словом bypass конкретно в смене языка
что бы вызвать _bbshome нужно написать просто RequestBypassToServer("_bbshome"); а не RequestBypassToServer("bypass _bbshome");
но вероятно ничего не выйдет, так как для кб отдельный фильтр байпассов (в новой реве)
для смены языка просто посылай RequestBypassToServer("bypass -h npc_%objectId%_lang ru"); / RequestBypassToServer("bypass -h npc_%objectId%_lang en");
 
И так, (методом експеримента)при отправки пакетов
_bbsclan
_bbshome
function LanguageToServer() {
local int SelectedIndex;
SelectedIndex = class 'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.LanguageBox");
if (0 == SelectedIndex) RequestBypassToServer("_bbsclan");
if (1 == SelectedIndex) RequestBypassToServer("_bbshome");
}
Работает, а при смене языка еще нет :rolleyes:
 
И так, (методом експеримента)при отправки пакетов
_bbsclan
_bbshome
function LanguageToServer() {
local int SelectedIndex;
SelectedIndex = class 'UIAPI_COMBOBOX'.static.GetSelectedNum("OptionWnd.LanguageBox");
if (0 == SelectedIndex) RequestBypassToServer("_bbsclan");
if (1 == SelectedIndex) RequestBypassToServer("_bbshome");
}
Работает, а при смене языка еще нет :rolleyes:
обновись
 
  • Мне нравится
Реакции: ids

    ids

    Баллов: 1
    Помог
Назад
Сверху