Chat Mobius

Revers

Выдающийся
Местный
Сообщения
33
Розыгрыши
0
Решения
1
Репутация
4
Реакции
64
Баллы
1 338
Хроники
  1. Master Class
Исходники
Присутствуют
Сборка
L2J_Mobius_Essence_8.1_HighElves
Проблема такая, у обычного юзера нету систем чата где идёт описание урона, получаемого опыта и т.д.
Как только мы выдаём чару админа систем чат начинает работать.
Куда копать перерыл чат+админку, пытался дебажить, но походу не там рою.
 
блокировка на отправки части пакетов систем-месаджей в зависимости от аксесс левела чара. ну это первое что по логике приходит в голову
 
Нет, сервер отправляет системные сообщения вне зависимости от accessLevel’a. Дело в том что клиенте уже несколько протоколов не отображает часть сообщений для обычных игроков.
 

а в чем логика корейцев когда они это скостыляли? зачем? чтобы что? причем сообщения самые обычные. может они перевели их в другой айди пакета, а эти пакеты оставили для админского сервиса? нипанимаю...
 
Тебе нужно изменить файл ChatWnd.uc в интерфейсе. Там есть условные проверки типа "IsBuilderPC()", которые мешают твоему сообщению отображаться.
 
не по моей теме )
Корейцы в 414 (когда эссэсс ин ов добавили) в систем мессаги ввели доп параметр, который отвечает за отображение для пользователей.
Тогда же, они для ГМов ввели кнопку (когда нажимаешь Alt + G) [Даже скрин нашел двух-летней давности]. Но прикол - они её удалили в 418 XD
*Внимание на "Система" возле чата*


ИМХО - самый лучшый вариант - это просто вернуть окно системных мессаг.
 
Хзы нашёл в World чате проверку
public class ChatUniversal
final Instant instant = REUSE.getOrDefault(activeChar.getObjectId(), null);
if ((instant != null) && instant.isAfter(now) && !activeChar.getAccessLevel().isGm())
{
final Duration timeDiff = Duration.between(now, instant);
final SystemMessage msg = new SystemMessage(SystemMessageId.YOU_HAVE_S1_SEC_UNTIL_YOU_ARE_ABLE_TO_USE_WORLD_CHAT);
msg.addInt((int) timeDiff.getSeconds());
activeChar.sendPacket(msg);
return;
}
final Instant instant = REUSE.getOrDefault(activeChar.getObjectId(), null);
if ((instant != null) && instant.isAfter(now) && !activeChar.getAccessLevel().isGm() && !activeChar.isPlayer())
{
final Duration timeDiff = Duration.between(now, instant);
final SystemMessage msg = new SystemMessage(SystemMessageId.YOU_HAVE_S1_SEC_UNTIL_YOU_ARE_ABLE_TO_USE_WORLD_CHAT);
msg.addInt((int) timeDiff.getSeconds());
activeChar.sendPacket(msg);
return;
}

Добавил в проверку !activeChar.isPlayer() и чат заработал, но не знаю на сколько это правильно, буду тестить ещё. Спасибо всем за советы) с клиентом я чёт попытался, но вспомнил что у меня редактора нету на интерфейс пошёл по ядру полазить ещё
 
а где именно? я примерно угадал?)
В package handlers.chathandlers;

public class ChatUniversal
Стояла проверка только для
if ((instant != null) && instant.isAfter(now) && !activeChar.getAccessLevel().isGm())

Я думал тоже что пакетка, 2-3 дня поисков, сегодня продолжил дебажить и упёрся в эту затычку.
 
Сорян ребят тема актуальна, конфиг в idea подвис isGm True был, и не сохранился на false, едем дальше....
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…