Реализация интерфейс скриптов без xdat

MrKirill1232

Великий мудрец
VIP
Победитель в номинации 2024
Магистр реакций
Знаток письма высшего ранга
Куратор Данных
Победитель в номинации 2023
Мастер реакций
Неукротимое пламя
Медаль Благодарности
Победитель в номинации 2022
Старожил I степени
Сообщения
2 426
Розыгрыши
0
Решения
52
Репутация
1 367
Реакции
2 314
Баллы
2 058
Привет

Занялся я как-то мелкими правками в интерфейсе, и хочу разделить некоторые данные на несколько классов.

Сделал я отдельно класс, добавил ему наследование от UICommonAPI ну и в dependsOn() указал классы, которые требуются для его работы (скрипт мой грузится раньше).

Сначало попробовал получать его через UIScript.getScript(string Window) но видимо без указания скрипта в xdat - его там не найти :)
Потом взял условный BlackCouponWnd - и добавил его туда как глобальную переменную.
И все равно - ничего.
Статические методы выполняются, но инстанс класса нигде не фигурирует.

Ну и в конце концов - вопрос, есть ли способ создать инстанс класса:
- которого не будет в XDAT;
- который не будет родителем класса, который имеет окно в XDAT;
- который не будет состоять из одних Static функций, ибо нужно хранить данные в нем;

Помогите позязя >_<
 
Привет

Занялся я как-то мелкими правками в интерфейсе, и хочу разделить некоторые данные на несколько классов.

Сделал я отдельно класс, добавил ему наследование от UICommonAPI ну и в dependsOn() указал классы, которые требуются для его работы (скрипт мой грузится раньше).

Сначало попробовал получать его через UIScript.getScript(string Window) но видимо без указания скрипта в xdat - его там не найти :)
Потом взял условный BlackCouponWnd - и добавил его туда как глобальную переменную.
И все равно - ничего.
Статические методы выполняются, но инстанс класса нигде не фигурирует.

Ну и в конце концов - вопрос, есть ли способ создать инстанс класса:
- которого не будет в XDAT;
- который не будет родителем класса, который имеет окно в XDAT;
- который не будет состоять из одних Static функций, ибо нужно хранить данные в нем;

Помогите позязя >_<
Условно я находил и XDAT вот такое:
XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Window parent="undefined" backTex="undefined" script="L2Util" state="GamingState" hidden="false" alwaysFullAlpha="true" title="-9999" frameSize="None" frameDirection="None" resizeFrameDirection="None" alwaysProcessScroll="undefined" resizeFrameX="-9999.0" resizeFrameY="-9999.0" resizeFrameWidth="-9999.0" resizeFrameHeight="-9999.0" resizeMaxIncrease="0" unkInt1="-9999.0" unkInt2="-9999.0" unkInt3="-9999.0" unkInt4="-9999.0" unkInt5="-9999" drawerDirection="None" offsetX="0" offsetY="0" directionSeconds="0.0" ownerWindow="" showAnimType="None" hideAnimType="None" showAnimDirection="None" showAnimSeconds="0.0" hideAnimDirection="None" hideAnimSeconds="0.0" iconName="undefined" tooltipIdx="-9999" workingConfiguration="Game" leftTextureName="undefined" midTextureName="undefined" rightTextureName="undefined" minimizeBtnTexture="undefined" closeBtnTexture="undefined" leftBackTextureWidth="-9999" midBackTextureWidth="-9999" backTextureHeight="-9999" btnSize="-9999" titleFontName="undefined" name="L2Util" extendsName="undefined" parentName="" preOrder="undefined" postOrder="undefined" anchored="true" superChild="true" size="true" sizeAbsoluteValues="false" sizePercentWindow="" sizePercentWidth="1.0" sizePercentHeight="1.0" sizeAbsoluteWidth="0" sizeAbsoluteHeight="0" usePosition="true" relativePoint="TOP_LEFT" anchorPoint="TOP_LEFT" relativeTo="" anchoredX="0.0" anchoredY="0.0" useFont="false" styleName="undefined" fontName="undefined" fontColor="00000000" fontLine="EMPTY" virtual="true" unk24="0" unk25="0" tooltipType="undefined" tooltipText="-9999" tooltipAppearanceTime="-9999" scrollBarOffsetX="-9999" scrollBarOffsetY="-9999" scrollBarOffsetHeight="-9999"/>
ну или такое
XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Window parent="undefined" backTex="undefined" script="BR_CashShopAPI" state="GamingState" hidden="false" alwaysFullAlpha="true" title="-9999" frameSize="None" frameDirection="None" resizeFrameDirection="None" alwaysProcessScroll="undefined" resizeFrameX="-9999.0" resizeFrameY="-9999.0" resizeFrameWidth="-9999.0" resizeFrameHeight="-9999.0" resizeMaxIncrease="0" unkInt1="-9999.0" unkInt2="-9999.0" unkInt3="-9999.0" unkInt4="-9999.0" unkInt5="-9999" drawerDirection="None" offsetX="0" offsetY="0" directionSeconds="0.0" ownerWindow="" showAnimType="None" hideAnimType="None" showAnimDirection="None" showAnimSeconds="0.0" hideAnimDirection="None" hideAnimSeconds="0.0" iconName="undefined" tooltipIdx="-9999" workingConfiguration="Game" leftTextureName="undefined" midTextureName="undefined" rightTextureName="undefined" minimizeBtnTexture="undefined" closeBtnTexture="undefined" leftBackTextureWidth="-9999" midBackTextureWidth="-9999" backTextureHeight="-9999" btnSize="-9999" titleFontName="undefined" name="BR_CashShopAPI" extendsName="undefined" parentName="" preOrder="undefined" postOrder="undefined" anchored="true" superChild="true" size="true" sizeAbsoluteValues="false" sizePercentWindow="" sizePercentWidth="1.0" sizePercentHeight="1.0" sizeAbsoluteWidth="0" sizeAbsoluteHeight="0" usePosition="true" relativePoint="TOP_LEFT" anchorPoint="TOP_LEFT" relativeTo="" anchoredX="0.0" anchoredY="0.0" useFont="false" styleName="undefined" fontName="undefined" fontColor="00000000" fontLine="EMPTY" virtual="true" unk24="0" unk25="0" tooltipType="undefined" tooltipText="-9999" tooltipAppearanceTime="-9999" scrollBarOffsetX="-9999" scrollBarOffsetY="-9999" scrollBarOffsetHeight="-9999"/>

Но может есть, тот самый, магический вариант как можно :)
 
наследие не от UIScript а от Object/UIEventManager и создание через new
просто пример в новых клиентах это UIMapStringObject/UIMapInt64Object
 
Последнее редактирование:
Решение
Я давно записал видео, думаю, это то, что тебе нужно.
шутки шутками, но Test функция описана по такому же принципу что и описал Test :D

Да, скорее всего именно это я и искал.

Сейчас буду костылить и смотреть заработает ли...
 
шутки шутками, но Test функция описана по такому же принципу что и описал Test :D

Да, скорее всего именно это я и искал.

Сейчас буду костылить и смотреть заработает ли...
Наследоваться можно от любого класса, даже от Object, но тогда в твоем классе будут доступны только статические функции. Обычно же используется интерфейс UICommonAPI.
 
Сейчас будем гадать, кто первый получит приглашение на сцену - OnLoad() или OnRegisterEvent()

Updated.

Прикольно, OnRegisterEvent() выполнился быстрее.
 
Последнее редактирование:
Вообщем по сути - https://mmo-dev.info/threads/32772/#post-252517 то что нужно.
Сделал так сказать абстрактный класс и работаю как с обычными скриптами.
// Только через условный BlackCouponWnd отправляю на обработку OnEvent метод и вообщем радостно.

Закрыть.
 
Назад
Сверху