Не знаком с мемхаком, но с данной штукой разобрался, но понял, что нет многих фреймов. Есть ли возможность найти фрейм с иконкой и значением золота? Еще бы не помешала атака/защита и характеристики. Был бы очень благодарен.

Принятый ответ

KaneThaumaturge, в мемхаке unryze, есть готовые функции для UI. Только разобратся с некоторими сложнее будет. Но можно создавать свои фреймы с "блекджеком и шлюхами".
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
3 года назад
Отредактирован KaneThaumaturge
0
В Edemium'e (xgm.guru/p/edemium/index), только что увидел, что там отображена вся строка ресурсов. Я так понял это отображен сам FRAME_ResourceBarFrame и расходы спрятаны за хпбаром.
кат

Так это хорошо, но очень хотелось бы получить фрейм величины атаки/защиты. Характеристик думаю не обязательно.

Наверное нужно будет создавать локальный мультиборд, где будут показаны характеристики, так окей. Но атака и защита очень бы понадобилась.

В ShowYourSkill есть эти параметры, может кто знает, как автор получил фрейм?
Загруженные файлы
0
27
3 года назад
Отредактирован MpW
0
в мемхаке анрайза нет этого? вроде должно быть. оферист выкладывал

раскрыть
1 = BackdropFrame
2 = ButtonFrame
3 = ChatMode
4 = CommandButton
5 = CursorFrame
6 = EditBox
7 = Frame
8 = FloatingFrame
9 = GameUI
10 = HeroBarButton
11 = HighlightFrame
12 = LayoutFrame
13 = MessageFrame
14 = Minimap
15 = ModelFrame
16 = PortraitButton
17 = ScreenFrame
18 = SimpleButton
19 = SimpleFontString
20 = SimpleFrame
21 = SimpleGlueFrame
22 = ???
23 = SimpleMessageFrame
24 = Slider
25 = SpriteFrame
26 = StatBar
27 = TextArea
28 = TextButtonFrame
29 = TextFrame
30 = UberToolTipWar3
31 = WorldFrameWar3
32 = GlueButtonWar3
33 = GlueTextButtonWar3
34 = GlueCheckBoxWar3
35 = GluePopupMenuWar3
36 = GlueEditBoxWar3
37 = SlashChatBox
38 = TimerTextFrame
39 = SimpleStatusBar
40 = StatusBar
41 = UpperButtonBar
42 = ResourceBar
43 = SimpleConsole
44 = PeonBar
45 = HeroBar
46 = TimeOfDayIndicator
47 = InfoBar
48 = TimeCover
49 = ProgressIndicator
50 = HeroLevelBar
51 = BuildTimeIndicator
52 = InfoPanelDestructableDetail
53 = InfoPanelItemDetail
54 = InfoPanelIconAlly
55 = InfoPanelIconHero
56 = InfoPanelIconGold
57 = InfoPanelIconFood
58 = InfoPanelIconRank
59 = InfoPanelIconArmor
60 = InfoPanelIconDamage
61 = InfoPanelCargoDetail
62 = InfoPanelBuildingDetail
63 = InfoPanelUnitDetail
64 = SimpleTexture
типы есть. как к ним обратиться в мемхаке =(
0
19
3 года назад
0
МрачныйВорон, Так, тогда мне скачать этот мемхак, посмотреть как получены эти фреймы и вставить в мемхак RenderEdge?
0
27
3 года назад
Отредактирован MpW
0
пример <= первая карта. возможна там есть другие версии
статьи
все функции даны. А тех, что нет, можно покопаться в fdf-files. И найти имя, чтобы обратиться к этому фрейму
пример <= рефорджете. но все константы в фрейме вроде есть, они выведены в виде отдельных функции. даже больше функции в мемхаке.

ResourceBarFrame - полоса ресурсов
ResourceBarFrame, 0
ResourceBarGoldText, 0
ResourceBarLumberText, 0
ResourceBarSupplyText, 0
ResourceBarUpkeepText, 0

теперь надо найти именную функцию в мемхаке. мы могли использовать в рефорджете такую функцию
BlzGetFrameByName("name",argument)
В мемхаке это может быть
GetCFrameByName?
типа если нужно изменить значение золота, то мы обращаемся к текстовому фрейму ResourceBarGoldText
GetCFrameByName("ResourceBarGoldText",0)
можем спрятать, изменить текст. и даже удалить или передвинуть

если что я в мемхаке не знаю как это должно быть. это надо тестить. так ли функция и прочее. Но так по идее работает.
0
19
3 года назад
Отредактирован KaneThaumaturge
0
МрачныйВорон, Делаю что-то типо такого, нихуя не выходит.
кат

Че я такой тупой, ничего не понятно

Наверное пока оставлю стандартный интерфейс и не стану дрочиться с этим.(
Загруженные файлы
0
27
3 года назад
Отредактирован MpW
0
framepoints
constant integer ANCHOR_TOPLEFT = 0
constant integer ANCHOR_TOP = 1
constant integer ANCHOR_TOPRIGHT = 2
constant integer ANCHOR_LEFT = 3
constant integer ANCHOR_CENTER = 4
constant integer ANCHOR_RIGHT = 5
constant integer ANCHOR_BOTTOMLEFT = 6
constant integer ANCHOR_BOTTOM = 7
constant integer ANCHOR_BOTTOMRIGHT = 8
set gold = GetCFrameByName("ResourceBarGoldText",0)
call ClearFrameAllPoints(gold)
call SetFrameAbsolutePoint(gold,ANCHOR_CENTER,0.4,0.3)
чтобы сдвинуть фрейм необходимо чистить точки сначала. просто фреймы привязаны друг другом framepoints. Если пытаешься сдвинуть, то у вас не получится или фрейм растягивается. короче статьи не читаем и лень
0
19
3 года назад
0
МрачныйВорон, не робит. Щас буду думать.
0
27
3 года назад
Отредактирован MpW
0
мб инфы много навалил в один док. стоило разбить на части. источник
тфу попробуй ResourceBarFrame?

у вас была
	function GetCFrameByName takes string name, integer id returns integer
        if pGetCFrameByName > 0 then
            if name != "" then
                return fast_call_2( pGetCFrameByName, GetStringAddress( name ), id )
            endif
        endif

        return 0
	endfunction
попробуй еще другие функции. в мемхаке кучу функции.
	function GetFrameByName takes string name, integer id returns integer
        return GetCFrameByName( name, id )
	endfunction
тут оферист кучу примеров выкладывал. надо там в примерах заглянуть. если что
0
19
3 года назад
Отредактирован KaneThaumaturge
0
МрачныйВорон, а знаешь что делает LoadTOCFile?

тфу попробуй ResourceBarFrame?
не

МрачныйВорон, null получает.
kat
Загруженные файлы
0
27
3 года назад
Отредактирован MpW
0
KaneThaumaturge, загружаем в указанном toc-file fdf-files. Все написано в разделе UI: Reading a FDF и UI: toc-Files
пояснения LoadTOCFile
Файл TOC - это файл со списком одного или нескольких файлов fdf (расширение фрейма, можете блокнотом открыть). Каждая строка - это путь к одному файлу fdf. Каждый fdf - это отдельный файл. В Warcraft 3 эти TOC-файлы используются для загрузки перечисленных файлов fdfs.
В варкрафте много fdf-files. В них записаны параметры фреймов: размеры, привязка,границы, фон или изображение, шрифт/техт и многое чего другое. Все фреймы поделены на типы. И иеще они могут иметь связи родитель-потомки. главный фрейм - родитель. внутри тела - потомки. Часто просто чтобы не прописывать одни и те же параметры, есть шаблоны. Очень много шаблонов. fdf-files очень много. В игре не все fdf-files могут быть включены игрой, разработчиками они могут быть выключены. Чтобы заимствовать параметры из fdf-files, нужно подключить/загрузить в игру. А помогает нам этот toc-file. Достаточно один раз загрузить при инициализации, и всю игру работает.
При создании фреймов мы часто указываем в триггерах шаблон из fdf-file. его можно указать, или можно не указывать, тогда у вас станд фрейм. В fdf-files часто используют наследования

KaneThaumaturge, может быть стоит обращаться к фрейму не при инициализации, а спустя какое то время со старта. Обычно может быть фрейм не инициализирован. Такое тоже бывает. Так у меня больше нет идеи почему не работает, надо самому смотреть =((
0
19
3 года назад
Отредактирован KaneThaumaturge
0
МрачныйВорон, так и делаю, хз

МрачныйВорон, Я вывел золото с помощью renderedge мемхака. Вывел весь ресурс бар и спрятал лишнее. Но вот что делать с атакой и защитой?
kat
Загруженные файлы
0
27
3 года назад
Отредактирован MpW
0
точно работает золото? какие проблемы с атакой и защитой? подсказать названия фреймов?

там короче статы все связаны друг с другом (если вы читали статью про позиционирование. там рассказывали что фреймы могут быть связаны). если ломаешь атаку/защиту, все остальное тоже ломается. короче все фреймы статов связаны точками друг с другом. самый первый фрейм - это атака в правом верхнем углу. потом защита или что там следом идет, и так далее. это как домино или коробки, связанные спичками. Как убираешь, и все остальные рушится.

BottomCenterUI инфу смотреть тут
"SimpleInfoPanelUnitDetail",0 - панель юнита
SimpleInfoPanelIconDamage,0-1 - информация об атаке и уроне. Тут показан тип атаки, урон. Тут два index = 0 и 1, дело в том, что могут быть показаны две атаки, как у ледяных змеи или химер. Атака мб выключена, и тогда фреймы не отображают инфу.
SimpleInfoPanelIconArmor,2 - информация об защите юнита. Тут показан тип брони и кол-во защиты. Эта броня есть у любого юнита.
У этих фреймов есть дочерние фреймы с одинаковыми именами, отличается только createContext.
"InfoPanelIconBackdrop" the image
"InfoPanelIconLevel" the shown techLevel (text)
"InfoPanelIconLabel" Damage/Armor..
"InfoPanelIconValue" the amount
типа для 1 атаки и 2 атаки context 0-1
"InfoPanelIconBackdrop", 0-1
"InfoPanelIconLevel", 0-1
"InfoPanelIconLabel",0-1
"InfoPanelIconValue", 0-1
а для защиты
"InfoPanelIconBackdrop", 2
"InfoPanelIconLevel", 2
"InfoPanelIconLabel", 2
"InfoPanelIconValue", 2
Перемещение этих фреймов лучше всего выполнять путем перемещения IconFrame «InfoPanelIconBackdrop», поскольку тексты позиционируются относительно IconFrame, а фреймы-родители контейнера, такие как «SimpleInfoPanelIconDamage», часто меняют положение в зависимости от выбранного юнита (если у него нет атаки, то атака выключена, и фрейм атаки тоже).
Можно разрушить положение всех фреймов. К примеру, хотел спрятать атаку, ибо BlzFrameSetVisible скрывает частично, моргает, поэтому спрятал так:
BlzFrameSetScale(BlzGetFrameByName("SimpleInfoPanelIconDamage",0), 0.001)
Фрейм атаки спрятал, но таким образом другие фреймы потеряли прежние позиции, и магнитом прилипли в одной точке
0
19
3 года назад
0
МрачныйВорон, бля. Но я делаю не через мемхак Unryze, а который тут. Сейчас попробую как-то информацию обработать и применить.

Вот как вычисляли вот это?
Загруженные файлы
0
27
3 года назад
Отредактирован MpW
0
KaneThaumaturge, спроси у этого человека он у нас специалист. он кучу наработок с фреймами недавно выложил с мемхаком. я мемхак не понимаю. я в рефорджете сижу. и мне нужно мемхаковские настройки применять, сбрасывать регистр с рефорджа, качать p/jass и прочкк =(
у офериста в ресурсах смотри. и он там описал. там нуен мемхак анрайза. я вот его скачал, но мне его не запустить
0
19
3 года назад
0

Короче есть продвижение небольшое, нашел константу InfoBar в наработке и вывел его.
kat
Но вот хотя бы текст "предметы" как то убрать...
Загруженные файлы
0
27
3 года назад
0
Но вот хотя бы текст "предметы" как то убрать...
InventoryText, 0
0
19
3 года назад
0
В render edge мемхаке нет функции GetFrameByName
0
27
3 года назад
Отредактирован MpW
0
спрятать можно 3 способами:
  1. есть специальная нативка сокрытия фрейма. не все фреймы можно скрыть, тк есть такие фреймы, которые постоянно обновляются. ты скрываешь, а они снова показывают. еще можешь задеть какой то игровой процесс, и привести может еще и к фаталу. поэтому лучше сокрыть их другим способом
  2. изменить размер BlzFrameSetScale(frame, 0.001) мы можем такой малюсенький размер указать, что его совсем не видно. Так у вас не будет вылетать от закрытия какого процесса. Но может вылететь, если фрейм не имеет размеров или не приспособлен к этому
  3. фрейм за пределы экрана сдвинуть - самый безопасный. Однако, это делать нужно с фреймами которые существуют. Обычно с невидимыми-не существуемыми фреймами лучше не работать - игра вылетакет
BlzFrameSetAbsPoint(frame, FRAMEPOINT_BOTTOM, 0.4, -0.18)

KaneThaumaturge:
В render edge мемхаке нет функции GetFrameByName
она есть в мемхаке анрайза тут
0
19
3 года назад
0
МрачныйВорон, Проблема в том, что я тупой, чтобы разбораться с мемхаком от Unryze, я читал статью, но у меня не работает почему-то. С RenderEdge мемхаком я вроде разобрался, но там и половины от функций Unryze нет.

она есть в мемхаке анрайза тут
Так я же не могу 2 мемхака вставить?
0
27
3 года назад
Отредактирован MpW
0
KaneThaumaturge, в этом то и проблема всех мемхаков. это все нужно собирать. я понял, что вы еще не освоились. в начале я тоже таким же был. нехера не разбирался, и каждый фрейм разбираал
0
19
3 года назад
0
МрачныйВорон, Ее, я понял, нашёл те функции, что нужно в мемхаке.

Сейчас буду разбираться
0
19
3 года назад
0
Ничего не работает на этом мемхаке, че за лажа, ну ****.
kat
Я ничего не понимаю, я пошёл спать.

Приложу 2 карты. Может кто-то захочет покопаться в этом говне.
1 - "рабочий вариант" на renderedge мемхак.
2 - ничего не пашет...
Загруженные файлы
2
13
3 года назад
2
KaneThaumaturge, в мемхаке unryze, есть готовые функции для UI. Только разобратся с некоторими сложнее будет. Но можно создавать свои фреймы с "блекджеком и шлюхами".
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.