Близы забросили игру и к сожалению в реальном редакторе мы такого не увидим, и так встречайте, Фреймы на русском ГУИ, любой может без знаний джасс и кода и знаний синтаксиса создать свой первый фрейм
К сожалению всё очень топорно, по русский больше на албанский похож, многое мне не удалось к сожалению, но в целом всё возможно и легко
Чтобы активировать эти фреймы в своём редакторе нужно в папке C:\Games\Warcraft III\_retail_ создать папку ui поместить туда мой triggerdata
Не скажу что тут тонна работы проделана, но добавил:
Пару функций
// Frame actions
BlzHideOriginFrames=0,boolean
_BlzHideOriginFrames_DisplayName="Отключение оригинальных фреймов"
_BlzHideOriginFrames_Parameters="Отключить оригинальные фремы?: ",~Enable
_BlzHideOriginFrames_Defaults=FALSE
_BlzHideOriginFrames_Category=TC_FRAMES

BlzCreateFrameByTypeBJ=0,string,string,framehandle,string,integer
_BlzCreateFrameByTypeBJ_DisplayName="Создать фрейм по типу из шаблона"
_BlzCreateFrameByTypeBJ_Parameters="Создать фрейм типа ",~String," по имени ",~String," От фрейма родителя ",~framehandle," По шаблону ",~String," В контекст ",~Integer
_BlzCreateFrameByTypeBJ_Defaults="BACKDROP","FaceButtonIcon",,"",0
_BlzCreateFrameByTypeBJ_Category=TC_FRAMES

BlzFrameSetAllPoints=0,framehandle,framehandle
_BlzFrameSetAllPoints_DisplayName="Сопоставить позиции фреймов"
_BlzFrameSetAllPoints_Parameters="Фрейм ",~framehandle, "сопоставить с",~framehandle
_BlzFrameSetAllPoints_Category=TC_FRAMES

BlzFrameSetTexture=0,framehandle,string,integer,boolean
_BlzFrameSetTexture_DisplayName="Установить текстуру для фрейма"
_BlzFrameSetTexture_Parameters="Установить для ",~framehandle," текстуру пути ",~String," с каким-то флагом ",~integer," и включить смешивание? ",~boolean
_BlzFrameSetTexture_Defaults=,"ReplaceableTextures\CommandButtons\BTNSelectHeroOn",0,TRUE
_BlzFrameSetTexture_Category=TC_FRAMES

BlzFrameSetSize=0,framehandle,real,real
_BlzFrameSetSize_DisplayName="Масштабировать фрейм"
_BlzFrameSetSize_Parameters="Для фрейма ",~framehandle," установить масштаб по x ",~real," и по y ",~real
_BlzFrameSetSize_Defaults=,0.039,0.039
_BlzFrameSetSize_Category=TC_FRAMES

BlzFrameSetAbsPoint=0,framehandle,framepointtype,real,real
_BlzFrameSetAbsPoint_DisplayName="Установить абсолютную позицию фрейма"
_BlzFrameSetAbsPoint_Parameters="Для фрейма ",~framehandle," центрировать позицию в ",~framepointtype, по х ,~real, и по у ,~real
_BlzFrameSetAbsPoint_Defaults=,FRAMEPOINT_CENTER,0.4,0.3
_BlzFrameSetAbsPoint_Category=TC_FRAMES

BlzGetOriginFrameBJ=0,originframetype,integer
_BlzGetOriginFrameBJ_DisplayName="Получить оригинальный фрейм"
_BlzGetOriginFrameBJ_Parameters=" Получить фрейм типа ",~originframetype," по индексу ",~integer
_BlzGetOriginFrameBJ_Defaults=ORIGIN_FRAME_GAME_UI,0
_BlzGetOriginFrameBJ_Category=TC_FRAMES
Пару типов данных
framehandle=1,1,0 ,"Frame Handle"
framepointtype=1,1,0 ,"Frame Point Type"
originframetype=1,1,0 ,"Frame Type Origin"
И пару хинтов
// FramePointType

FRAMEPOINT_TOPLEFT=0,framepointtype,FRAMEPOINT_TOPLEFT,"Вверх-лево"
FRAMEPOINT_TOP=0,framepointtype,FRAMEPOINT_TOP,"Вверх"
FRAMEPOINT_TOPRIGHT=0,framepointtype,FRAMEPOINT_TOPRIGHT,"Вверх-право"
FRAMEPOINT_LEFT=0,framepointtype,FRAMEPOINT_LEFT,"Лево"
FRAMEPOINT_CENTER=0,framepointtype,FRAMEPOINT_CENTER,"По центру"
FRAMEPOINT_RIGHT=0,framepointtype,FRAMEPOINT_RIGHT,"Право"
FRAMEPOINT_BOTTOMLEFT=0,framepointtype,FRAMEPOINT_BOTTOMLEFT,"Низ-лево"
FRAMEPOINT_BOTTOM=0,framepointtype,FRAMEPOINT_BOTTOM,"Вниз"
FRAMEPOINT_BOTTOMRIGHT=0,framepointtype,FRAMEPOINT_BOTTOMRIGHT,"Низ-Право"

// Originframetype
ORIGIN_FRAME_GAME_UI=0,originframetype,ORIGIN_FRAME_GAME_UI,"ORIGIN_FRAME_GAME_UI"
ORIGIN_FRAME_COMMAND_BUTTON=0,originframetype,ORIGIN_FRAME_COMMAND_BUTTON,"ORIGIN_FRAME_COMMAND_BUTTON"
ORIGIN_FRAME_HERO_BAR=0,originframetype,ORIGIN_FRAME_HERO_BAR,"ORIGIN_FRAME_HERO_BAR"
ORIGIN_FRAME_HERO_BUTTON=0,originframetype,ORIGIN_FRAME_HERO_BUTTON,"ORIGIN_FRAME_HERO_BUTTON"
ORIGIN_FRAME_HERO_HP_BAR=0,originframetype,ORIGIN_FRAME_HERO_HP_BAR,"ORIGIN_FRAME_HERO_HP_BAR"
ORIGIN_FRAME_HERO_MANA_BAR=0,originframetype,ORIGIN_FRAME_HERO_MANA_BAR,"ORIGIN_FRAME_HERO_MANA_BAR"
ORIGIN_FRAME_HERO_BUTTON_INDICATOR=0,originframetype,ORIGIN_FRAME_HERO_BUTTON_INDICATOR,"ORIGIN_FRAME_HERO_BUTTON_INDICATOR"
ORIGIN_FRAME_ITEM_BUTTON=0,originframetype,ORIGIN_FRAME_ITEM_BUTTON,"ORIGIN_FRAME_ITEM_BUTTON"
ORIGIN_FRAME_MINIMAP=0,originframetype,ORIGIN_FRAME_MINIMAP,"ORIGIN_FRAME_MINIMAP"
ORIGIN_FRAME_MINIMAP_BUTTON=0,originframetype,ORIGIN_FRAME_MINIMAP_BUTTON,"ORIGIN_FRAME_MINIMAP_BUTTON"
ORIGIN_FRAME_SYSTEM_BUTTON=0,originframetype,ORIGIN_FRAME_SYSTEM_BUTTON,"ORIGIN_FRAME_SYSTEM_BUTTON"
ORIGIN_FRAME_TOOLTIP=0,originframetype,ORIGIN_FRAME_TOOLTIP,"ORIGIN_FRAME_TOOLTIP"
ORIGIN_FRAME_UBERTOOLTIP=0,originframetype,ORIGIN_FRAME_UBERTOOLTIP,"ORIGIN_FRAME_UBERTOOLTIP"
ORIGIN_FRAME_CHAT_MSG=0,originframetype,ORIGIN_FRAME_CHAT_MSG,"ORIGIN_FRAME_CHAT_MSG"
ORIGIN_FRAME_UNIT_MSG=0,originframetype,ORIGIN_FRAME_UNIT_MSG,"ORIGIN_FRAME_UNIT_MSG"
ORIGIN_FRAME_TOP_MSG=0,originframetype,ORIGIN_FRAME_TOP_MSG,"ORIGIN_FRAME_TOP_MSG"
ORIGIN_FRAME_PORTRAIT=0,originframetype,ORIGIN_FRAME_PORTRAIT,"ORIGIN_FRAME_PORTRAIT"
ORIGIN_FRAME_WORLD_FRAME=0,originframetype,ORIGIN_FRAME_WORLD_FRAME,"ORIGIN_FRAME_WORLD_FRAME"
ORIGIN_FRAME_SIMPLE_UI_PARENT=0,originframetype,ORIGIN_FRAME_SIMPLE_UI_PARENT,"ORIGIN_FRAME_SIMPLE_UI_PARENT"
ORIGIN_FRAME_PORTRAIT_HP_TEXT=0,originframetype,ORIGIN_FRAME_PORTRAIT_HP_TEXT,"ORIGIN_FRAME_PORTRAIT_HP_TEXT"
ORIGIN_FRAME_PORTRAIT_MANA_TEXT=0,originframetype,ORIGIN_FRAME_PORTRAIT_MANA_TEXT,"ORIGIN_FRAME_PORTRAIT_MANA_TEXT"
ORIGIN_FRAME_UNIT_PANEL_BUFF_BAR=0,originframetype,ORIGIN_FRAME_UNIT_PANEL_BUFF_BAR,"ORIGIN_FRAME_UNIT_PANEL_BUFF_BAR"
ORIGIN_FRAME_UNIT_PANEL_BUFF_BAR_LABEL=0,originframetype,ORIGIN_FRAME_UNIT_PANEL_BUFF_BAR_LABEL,"ORIGIN_FRAME_UNIT_PANEL_BUFF_BAR_LABEL"
Ну и пришлось добавить свои BJ функции в нестандартный код карты
globals
	framehandle bj_lastLastCreatedFrameHandle=null
endglobals

function GetLastCreatedFrameHandle takes nothing returns framehandle
	return bj_lastLastCreatedFrameHandle
endfunction

function BlzCreateFrameByTypeBJ takes string typeName, string name, framehandle owner, string inherits, integer createContext  returns framehandle
	set bj_lastLastCreatedFrameHandle=BlzCreateFrameByType(typeName, name, owner, inherits, createContext)
	return bj_lastLastCreatedFrameHandle
endfunction

function BlzGetOriginFrameBJ takes originframetype frameType, integer index returns framehandle
	set bj_lastLastCreatedFrameHandle=BlzGetOriginFrame(frameType, index)
	return bj_lastLastCreatedFrameHandle
endfunction
Но лично я это доделывать никогда не буду, может быть если только за денги.
`
ОЖИДАНИЕ РЕКЛАМЫ...
33
(см последнюю строчку)
На старкрафте в общем в 1 строчку такое делается, так что сё таки придётся писать свои BJ, а то на стандарте будет по 10 строк
Загруженные файлы
30
На старкрафте в общем в 1 строчку такое делается, так что сё таки придётся писать свои BJ, на стандарте будет по 10 строк
С интерфейсом удобнее из кода работать. Я всёравно склоняюсь готовым решениям и выведения настроек в гуи.
Напримерм выбор героя на фрэймах сделать, а из гуи только функции:
  • добавить героя
  • заблокировать героя
  • убрать героя
  • показать для игрока
  • ...
  • profit

Ну и везде в юнитах добавить вариант [Главный герой игрока]
33
Напримерм выбор героя на фрэймах сделать, а из гуи только функции:
маловато, нужна функция для создания такого окна, нужна возможность задать его положение, поле для описания героя... дофига всего, ну и самое печальное, так это допданные для triggerdata
30
маловато, нужна функция для создания такого окна, нужна возможность задать его положение, поле для описания героя...
Ну так я же троеточие поставил, туда всё и поместим.
ну и самое печальное, так это допданные для triggerdata
Что-то я не понял насчёт допданных.
13
Bergi_Bear:
Ну и кому это надо?:)
Никому, поэтому я это и не стал доделывать, была интересна лишь возможность создание такого.
И как результат: да, это возможно

Просто это позволило бы понизить порог вхождения во фреймы, однако не для кого понижать уже, а челы с 126 гуи патча даже скорее всего не знаю что такое фреймы. Просто если всё нормально сделать, то гуи фреймы в варике, будут на уровне старкрафта 2.
Но это всё по прежнему никому не нужно
Да, у меня варик 1.26а и узнал о фреймах только сегодня)))
1
GetLocalPlayer, при чём тут массово
мне интересно кому это реально надо, покажите мне этого типа
который будет этим пользоваться
я
17
Хм.. Он начал с незаглавной буквы и закончил не точкой...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.