Вывод урона на экран в клиенте HF5


Не настолько важно, что бы делать на стороне сервера, вопрос был в том, что если можно сделать на стороне клиента, то почему бы и нет)
 
Не настолько важно, что бы делать на стороне сервера, вопрос был в том, что если можно сделать на стороне клиента, то почему бы и нет)
Клиент хф не поддерживает вывод через System-msg.
 
Это вряд ли кто будет тратить большие силы на такую дряблую фитчу.
 
Товарищ с ником edKith реализовал эту фичу (и много ещё чего) на стороне клиента путём рекомпила (или через hex - хз) interface.u
 

Вложения

  • SystemMsg_DmgOut.webp
    SystemMsg_DmgOut.webp
    199,5 КБ · Просмотры: 626
Это я в прошлый раз и пытался доказать....
 
Клиент хф не поддерживает вывод через System-msg.
Без условно танцы с бубном во круг интерфейса или ещё чего привествуются но при $1 $2 в обычном system-msg урон не выводится.
 
не знаю ход ваших мыслей, но на хф через клиент реально вывести дмг на экран, и поменять его местоположение даже.
 
Клиент хф не поддерживает вывод через System-msg.
Без условно танцы с бубном во круг интерфейса или ещё чего привествуются но при $1 $2 в обычном system-msg урон не выводится.
Ой ли?) [v. 2.0]
1.webp
2.webp
Но ты не совсем не прав) Проблема в том, что по дефолту на экран через sub_msg уходит лишь 2 первые переменные из 3х, которые передаются в пакете. Наверняка это ограничение можно найти и убрать в interface.u но сходу найти мне его не удалось (чтобы продемонстрировать, что отображение можно реализовать на стороне клиента, не затрагивая сервер), поэтому лишь во имя доказания факта, что systemmsg может отсвечивать на экран циферки, я поигрался с последовательностью переменных передаваемых в пакете.
Немного xdata для демонстрации возможности настройки оформления и положения на экране выводимого через systemmsg текста:
3.webp
4.webp
5.webp
Ну и собственно само шалапайство с последовательностью переменных в пакетах на сервере:
Мы наносим
6.webp
Нас ломают
7.webp

Подытоживая: в своем изречении "при $1 $2 в обычном system-msg урон не выводится." ты прав на 50%, без бубна и в девственно чистом systemmsg используя дефолт клиента и сервера - да, дамаг идет третьей переменной ($s3 и $c3) и на экран он не отсвечивает, если не протянуть шаловливые ручки к interface.u или последовательности переменных при сборке пакета на сервере.
Но и без апелляционно заявлять "через systemmsg вывести урон на экран нельзя!" - тоже не стоит) systemmsg может в циферки, при желании)

Такое, надеюсь кому-то будет интересно :-)

P.S. и да /summon volond1 /summon kick /summon edKith - буду признателен на тему подтверждения или опровержения догадки, что именно в interface.u есть функция ограничивающая кол-во переменных из пакета, которые можно отразить на экран через sub_msg в systemmsg. За направление, в котором копать или название функции - буду чрезмерно благодарен.
Больно уж не хочется трогать пакеты, мечтается решить вопрос по красоте на стороне клиента. Тем паче, что это теоретически возможно. Ну возможно же?)
 
Я не говорю что его вообще не реально вывести в хф клиенте т.к лазяя в интерфейсе можно сделать и не только подобное , просто речь о том что без лазанья в интерфейс и обходясь редактированием одной лишь датки Вам ничего не даст.
Безусловно урон можно вывести по средствам как клиента так и сервера.
Единственное что могу сказать Вам , Вы молодец , теперь у ребят не возникнут проблем или вопросов почему урон не выводится и по какой причине.
 
P.S. и да /summon volond1 /summon kick /summon edKith - буду признателен на тему подтверждения или опровержения догадки, что именно в interface.u есть функция ограничивающая кол-во переменных из пакета, которые можно отразить на экран через sub_msg в systemmsg. За направление, в котором копать или название функции - буду чрезмерно благодарен.
Больно уж не хочется трогать пакеты, мечтается решить вопрос по красоте на стороне клиента. Тем паче, что это теоретически возможно. Ну возможно же?)
a7f960f04e.webp
По умолчанию скрипт-обработчик OnScreenSystemMsgWnd действительно не умеет принимать третий+ параметр от SystemMsg.
Функция-обработчик OnScreenSystemMsgWnd.OnEvent(string a_Param) передает данные на OnScreenSystemMsgWnd.ValidateSystemMsg(int Index, string StringTxt1, string StringTxt2)
Вот эту связку и надо будет вам исправить под 3 параметр.
UPD: Корень проблемы лежит еще глубже. Функция API интерфейса игры(NWindow.UIScript.MakeFullSystemMsg( string sMsg, string sArg1, optional string sArg2 );), формирующая готовое системное сообщение на основе шаблона из SystemMsg-*.dat и набора параметров также принимает максимум 2 параметра ><
 
Последнее редактирование модератором:
  • Мне нравится
Реакции: valkal

    valkal

    Баллов: 1
    За ответ
Отлично!
"Проложить курс до ближайшего острова!")
Теперь hex-лопату в руки и копать :)
 
Мечты, мечты...
Нужно достаточно сильно менять не 2, а 3 функции в Interface.u:
OnEvent
ShowMsg
ValidateSystemMsg
Причем именно изменять добавляя по паре строк кода в каждую из функций.
Hex лопата тут неуместна, увы и ах.

Чтож, как доросту до понимания процесса сборки interface.u путем его склеивания с помощью UED2 - выложу в шару interface.u, которая будет понимать третий параметр.
P.S. буду благодарен за линк на любой плюс/минус мануал по теме. Что-то на подобие: но в сторону UED2 c последующим компилем и магией в стиле edKith'овского вуду))

При помощи костылей и такой-то матери, воткнутых в UT2004 и завернутых в простенькую обфускацию.

Однажды и я познаю эту сторону силы... :OnionHead:

P.P.S. ни у кого знакомый учитель падавана не ищет? Цвет стороны не принципиален, главное чтобы там были знания об изменении interface.u путем компиляции, а не через hex, пиво и печеньки! Хотя последние два пункта могу обеспечить в замен первого) :Happy:
 
  • Мне нравится
Реакции: 6yka и kick

    kick

    Баллов: 41
    Переходи на темную сторону силы
Темка старая- но та которая нужна. Поэтому спрашиваю тут.
Народ а вот кто знает как можно- этот урон привязать к координатам цели которую атакуешь. Ну чтобы не просто там в фиксированных местах экрана был, а над целью.
К примеру если бить цель в упор- то да там можно сделать рядом с собой вывод, а вот если к примеру с лука в цель стреляешь- она расположена дальше и получается - вверху экрана- плюс если обзор перевести, то урон за целью уходил.
Или по простому- как прикрепить анхор к цели а не фиксировано?
 
Ой ли?) [v. 2.0]
Посмотреть вложение 2137
Посмотреть вложение 2138
Но ты не совсем не прав) Проблема в том, что по дефолту на экран через sub_msg уходит лишь 2 первые переменные из 3х, которые передаются в пакете. Наверняка это ограничение можно найти и убрать в interface.u но сходу найти мне его не удалось (чтобы продемонстрировать, что отображение можно реализовать на стороне клиента, не затрагивая сервер), поэтому лишь во имя доказания факта, что systemmsg может отсвечивать на экран циферки, я поигрался с последовательностью переменных передаваемых в пакете.
Немного xdata для демонстрации возможности настройки оформления и положения на экране выводимого через systemmsg текста:
Посмотреть вложение 2139
Посмотреть вложение 2140
Посмотреть вложение 2141
Ну и собственно само шалапайство с последовательностью переменных в пакетах на сервере:
Мы наносим
Посмотреть вложение 2142
Нас ломают
Посмотреть вложение 2143

Подытоживая: в своем изречении "при $1 $2 в обычном system-msg урон не выводится." ты прав на 50%, без бубна и в девственно чистом systemmsg используя дефолт клиента и сервера - да, дамаг идет третьей переменной ($s3 и $c3) и на экран он не отсвечивает, если не протянуть шаловливые ручки к interface.u или последовательности переменных при сборке пакета на сервере.
Но и без апелляционно заявлять "через systemmsg вывести урон на экран нельзя!" - тоже не стоит) systemmsg может в циферки, при желании)

Такое, надеюсь кому-то будет интересно :-)

P.S. и да /summon volond1 /summon kick /summon edKith - буду признателен на тему подтверждения или опровержения догадки, что именно в interface.u есть функция ограничивающая кол-во переменных из пакета, которые можно отразить на экран через sub_msg в systemmsg. За направление, в котором копать или название функции - буду чрезмерно благодарен.
Больно уж не хочется трогать пакеты, мечтается решить вопрос по красоте на стороне клиента. Тем паче, что это теоретически возможно. Ну возможно же?)
Темка старая- но та которая нужна. Поэтому спрашиваю тут.
Народ а вот кто знает как можно- этот урон привязать к координатам цели которую атакуешь. Ну чтобы не просто там в фиксированных местах экрана был, а над целью.
К примеру если бить цель в упор- то да там можно сделать рядом с собой вывод, а вот если к примеру с лука в цель стреляешь- она расположена дальше и получается - вверху экрана- плюс если обзор перевести, то урон за целью уходил.
Или по простому- как прикрепить анхор к цели а не фиксировано?
Вот же описано в interface.xdat поменяй расположение и все)
 
Вот же описано в interface.xdat поменяй расположение и все)
Да в xdat там крепиться к экрану намертво. Я это понял- вы меня чуток не поняли. Цель которую вы бьете на экране меняет расположение.
Пример:
Слева цель:
Shot00048.webp
Справа цель:
Shot00049.webp
Вот я и спрашиваю возможно ли прицепить урон к цели. Если цель справа от перса- то и урон справа и наоборот.

И кстате знает кто какой шрифт используется в Helios при выводе урона?
 
Последнее редактирование модератором:
LineageUtils ругается ппц при запуске.
Не поддерживает мою винду пишет, с критом вылетает

 
Назад
Сверху Снизу