Слышал, что с версии 1.31 можно менять интерфейс. Подскажите: как мне сделать, чтоб у способности типа "книга заклинаний" было не 11 свободных ячеек на панели(как это обычно), а на 3 больше, то есть всего 14? Без мемхака.

DopaMine, нельзя поменять кол-во ячеек в книге заклинаний.
Можно набросать в интерфейс кнопок и обрабатывать нажатия на них, без абилок юнитов. Но есть три нюанса
  1. нет визуального редактора интерфейса, все делается в коде и файлах разметки
  2. только жасс или луа, а гуй не справится с этой задачей
  3. это сложно
примерно алгоритм выглядит так
  1. разобраться в файлах разметки фреймов fdf
  2. запилить свой фрейм в fdf файле, засунуть этот файл в карту
  3. в нужный момент создать и отобразить фрейм триггером
  4. динамически добавить триггеры для обработки нажатий на кнопки фрейма после его создания
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
24
DopaMine, я тебе уже говорил - нельзя просто поменять панель заклинаний... Тебе нужна своя отдельная панель, не связаная со способностями юнитов...
11
нельзя просто поменять панель заклинаний...
Ну хотя бы, как это всё описывается мне же надо знать? Чтоб сделать такую же, к примеру, но свою с нуля.
То есть, эта новая панель - просто картинка типо и любое взаимодействие с нею нужно писать? Типо если игрок - владелец юнита навёл мышь на такую-то ячейку, то вывести описание способности, если он нажал левую кнопку мыши, то...
Так?Оо
DopaMine:
Чтоб сделать такую же, к примеру, но свою с нуля.
Тут я имею в виду именно визуально такую же.
prog:
DopaMine, я тебе уже говорил - нельзя просто поменять панель заклинаний... Тебе нужна своя отдельная панель, не связаная со способностями юнитов...
В рефоргеде будет проще сделать или так же?:D
24
Ну хотя бы, как это всё описывается мне же надо знать? Чтоб сделать такую же, к примеру, но свою с нуля.
То есть, эта новая панель - просто картинка типо и любое взаимодействие с нею нужно писать? Типо если игрок - владелец юнита навёл мышь на такую-то ячейку, то вывести описание способности, если он нажал левую кнопку мыши, то...
Так?Оо
Именно. Я же предупреждал что это сложно...
Как понять какой fdf тебе нужен? Никак, перебирать пока найдешь нужный. Ну или найти кого-то кто уже находил нужный тебе фрейм. Более того, фреймы могут наследоваться друг от друга, а также могут быть вложены один в другой и все это добро может быть раскидано по отдельным файлам.
В рефоргеде будет проще сделать или так же?:D
99% что так-же. Может когда-нибудь в далеком будущем будут какие-то улучшения.
11
Ну или найти кого-то кто уже находил нужный тебе фрейм.
АХАХ, так и думал, что в итоге только гуглить по форумам:DDDDD
prog:
Именно. Я же предупреждал что это сложно...
Хмм, ну, у меня не то чтобы прям целые абилки были вставлены в эти ячейки...Но если есть команды на жассе, позволяющие получить координаты мыши или нажатие "горячих клавиш", то с этим попроще будет. Дичь в том, что искать, что за фрейм.
Proshel_Doty:
А ещё можно заглянуть сюда xgm.guru/p/wc3/frame
А здесь нет указаний, какой fdf файл за что отвечает? Я пока в понятиях не совсем разобрался. Константы, функции. Это, как я понял, для работы с отображением готовых фреймов в самом редакторе уже.
24
Но если есть команды на жассе, позволяющие получить координаты мыши или нажатие "горячих клавиш", то с этим попроще будет.
Есть даже событие клика на кнопку в фрейме, если я правильно помню.
11
Есть даже событие клика на кнопку в фрейме, если я правильно помню.
То есть, всё-таки есть понятие "кнопка" внутри фрейма? Или это неточно)
24
DopaMine, кнопка - разновидность фрейма. Сама по себе кнопка без других фреймов невидима и умеет только ловить мышку и вроде звуки издавать. Чтобы у кнопки был текст и картинка, к кнопке добавляется еще несколько фреймов и все это добро складывается внутрь еще одного фрейма для удобства (и, естественно, есть стандартные фреймы в которых это уже сделано).
11
(и, естественно, есть стандартные фреймы в которых это уже сделано).
И, естественно, как их искать - никто не знает:D
Тогда вот вопрос: а как я хотя бы могу проверить, тот ли фрейм я просматриваю или не тот? Тупо изменить что-то в нём, сохранить в свой toc файл, импортировать в карту, загрузить с помощью нативки - и посмотреть, что поменялось в интерфейсе. Только так?
И я чёт не уловил: вот у меня к примеру свой скопированный и немножко изменённый(на одну цифру) фрейм. Я его загружу, допустим(с помощью команды) - он заменит стандартный или последний надо спрятать, прежде чем отобразить мой?
24
DopaMine, если я правильно помню, менять стандартные фреймы через fdf нельзя, только добавлять новые на их основе.
Т.е. создаеш fdf файл, в нем описание фрейма, с айдишником отличающимся от стандартного, импортируешь в карту, потом создаешь toc файл, в нем указываешь путь к fdf внутри карты, тоже импортируешь, потом в коде грузиш toc одной нативкой и создаешь фрейм по айди другой.
Вобще, в поисках нужного фрейма люди обычно включают мозг и смотрят по содержимому похож ли фрейм на то что они ищут, если похож, то проверяют уже на практике, если нет, то ищут дальше. Ну и статьи в которых рассказывается как прятать стандартные фреймы как минимум позволяют узнать айдишники стандартных фреймов, а дальше уже поиск по файлам сильно упрощается...
11
Хм, я, конечно, извиняюсь.
// -- INCLUDE FILES ---------------------------------------------

IncludeFile "UI\FrameDef\Glue\StandardTemplates.fdf",

// -- LOCAL TEMPLATES -------------------------------------------

Frame "POPUPMENU" "PlayerSlotPopupMenu" {
    Width 0.109,
    Height 0.025,
    PopupButtonInset 0.01,

    ControlBackdrop "PlayerSlotPopupMenuBackdrop",
    Frame "BACKDROP" "PlayerSlotPopupMenuBackdrop" {
        BackdropTileBackground,
        BackdropBackground  "UI\Widgets\Glues\GlueScreen-Button1-BackdropBackground.blp",
        BackdropCornerFlags "UL|UR|BL|BR|T|L|B|R",
        BackdropCornerSize  0.016,
        BackdropBackgroundSize  0.032,
        BackdropBackgroundInsets 0.004 0.004 0.004 0.004,
        BackdropEdgeFile  "UI\Widgets\Glues\GlueScreen-Button1-BorderedBackdropBorder.blp",
    }

    ControlDisabledBackdrop "PlayerSlotPopupMenuDisabledBackdrop",
    Frame "BACKDROP" "PlayerSlotPopupMenuDisabledBackdrop" {
        BackdropTileBackground,
        BackdropBackground  "UI\Widgets\Glues\GlueScreen-Button1-BackdropBackground-Disabled.blp",
        BackdropCornerFlags "UL|UR|BL|BR|T|L|B|R",
        BackdropCornerSize  0.016,
        BackdropBackgroundSize  0.032,
        BackdropBackgroundInsets 0.004 0.004 0.004 0.004,
        BackdropEdgeFile  "UI\Widgets\Glues\GlueScreen-Button1-BorderedBackdropBorder-Disabled.blp",
    }

    ControlPushedBackdrop "PlayerSlotPopupMenuPushedBackdrop",
    Frame "BACKDROP" "PlayerSlotPopupMenuPushedBackdrop" {
        BackdropTileBackground,
        BackdropBackground  "UI\Widgets\Glues\GlueScreen-Button1-BackdropBackground.blp",
        BackdropCornerFlags "UL|UR|BL|BR|T|L|B|R",
        BackdropCornerSize  0.016,
        BackdropBackgroundSize  0.032,
        BackdropBackgroundInsets 0.004 0.004 0.004 0.004,
        BackdropEdgeFile  "UI\Widgets\Glues\GlueScreen-Button1-BorderedBackdropBorder-Down.blp",
    }

    PopupTitleFrame "PlayerSlotPopupMenuTitle",
    Frame "GLUETEXTBUTTON" "PlayerSlotPopupMenuTitle" INHERITS WITHCHILDREN "StandardPopupMenuTitleTemplate" {
    }

    PopupArrowFrame "PlayerSlotPopupMenuArrow",
    Frame "BUTTON" "PlayerSlotPopupMenuArrow" INHERITS WITHCHILDREN "StandardPopupMenuArrowTemplate" { 
    }
}

// -- FRAMES ----------------------------------------------------

Frame "CONTROL" "PlayerSlot" {
    Height 0.025,

    Frame "TEXT" "DownloadValue" INHERITS "StandardLabelTextTemplate" {
        Width 0.01,
        UseActiveContext,
        SetPoint LEFT, "PlayerSlot", LEFT, 0.0, 0.0,
    }

    Frame "POPUPMENU" "NameMenu" INHERITS WITHCHILDREN "PlayerSlotPopupMenu" {
        Width 0.153,
        UseActiveContext,
        SetPoint LEFT, "DownloadValue", RIGHT, -0.01, 0.0,

        PopupMenuFrame "NamePopupMenuMenu",
        Frame "MENU" "NamePopupMenuMenu" INHERITS WITHCHILDREN "StandardPopupMenuMenuTemplate" {
            UseActiveContext,
        }
    }

    Frame "POPUPMENU" "RaceMenu" INHERITS WITHCHILDREN "PlayerSlotPopupMenu" {
        Width 0.114,
        UseActiveContext,
        SetPoint LEFT, "NameMenu", RIGHT, 0.0, 0.0,

        PopupMenuFrame "RacePopupMenuMenu",
        Frame "MENU" "RacePopupMenuMenu" INHERITS WITHCHILDREN "StandardPopupMenuMenuTemplate" {
            UseActiveContext,

            MenuItem "RANDOM",     -2,
            MenuItem "HUMAN",      -2,
            MenuItem "ORC",        -2,
            MenuItem "UNDEAD",     -2,
            MenuItem "NIGHT_ELF",  -2,
        }
    }

    Frame "BUTTON" "TeamButton" {
        Height 0.025,
        Width 0.087,
        UseActiveContext,
        SetPoint LEFT, "RaceMenu", RIGHT, 0.0, 0.0,

        ControlBackdrop "TeamButtonBackdrop",
        Frame "BACKDROP" "TeamButtonBackdrop" {
            UseActiveContext,
            BackdropTileBackground,
            BackdropBackground  "UI\Widgets\Glues\GlueScreen-Button1-BackdropBackground.blp",
            BackdropCornerFlags "UL|UR|BL|BR|T|L|B|R",
            BackdropCornerSize  0.016,
            BackdropBackgroundSize  0.032,
            BackdropBackgroundInsets 0.004 0.004 0.004 0.004,
            BackdropEdgeFile  "UI\Widgets\Glues\GlueScreen-Button1-BorderedBackdropBorder.blp",
        }

        ControlDisabledBackdrop "TeamButtonDisabledBackdrop",
        Frame "BACKDROP" "TeamButtonDisabledBackdrop" {
            UseActiveContext,
            BackdropTileBackground,
            BackdropBackground  "UI\Widgets\Glues\GlueScreen-Button1-BackdropBackground-Disabled.blp",
            BackdropCornerFlags "UL|UR|BL|BR|T|L|B|R",
            BackdropCornerSize  0.016,
            BackdropBackgroundSize  0.032,
            BackdropBackgroundInsets 0.004 0.004 0.004 0.004,
            BackdropEdgeFile  "UI\Widgets\Glues\GlueScreen-Button1-BorderedBackdropBorder-Disabled.blp",
        }

        Frame "TEXT" "TeamButtonTitle" {
            UseActiveContext,
            SetPoint LEFT, "TeamButton", LEFT, 0.01, 0.0,
            DecorateFileNames,
            FrameFont "MasterFont",0.011,"",
            FontFlags "FIXEDSIZE",
        }

        Frame "BACKDROP" "TeamButtonArrow" { 
            UseActiveContext,
            Height 0.011,
            Width 0.011,
            SetPoint RIGHT, "TeamButton", RIGHT, -0.008, 0.0,
            BackdropBlendAll,
            BackdropBackground "UI\Widgets\Glues\GlueScreen-Pulldown-Arrow.blp",
        }

    }

    Frame "BUTTON" "ColorButton" {
        Height 0.025,
        Width 0.04,
        UseActiveContext,
        SetPoint LEFT, "TeamButton", RIGHT, 0.0, 0.0,

        ControlBackdrop "ColorButtonBackdrop",
        Frame "BACKDROP" "ColorButtonBackdrop" {
            UseActiveContext,
            BackdropTileBackground,
            BackdropBackground  "UI\Widgets\Glues\GlueScreen-Button1-BackdropBackground.blp",
            BackdropCornerFlags "UL|UR|BL|BR|T|L|B|R",
            BackdropCornerSize  0.016,
            BackdropBackgroundSize  0.032,
            BackdropBackgroundInsets 0.004 0.004 0.004 0.004,
            BackdropEdgeFile  "UI\Widgets\Glues\GlueScreen-Button1-BorderedBackdropBorder.blp",
        }

        ControlDisabledBackdrop "ColorButtonDisabledBackdrop",
        Frame "BACKDROP" "ColorButtonDisabledBackdrop" {
            UseActiveContext,
            BackdropTileBackground,
            BackdropBackground  "UI\Widgets\Glues\GlueScreen-Button1-BackdropBackground-Disabled.blp",
            BackdropCornerFlags "UL|UR|BL|BR|T|L|B|R",
            BackdropCornerSize  0.016,
            BackdropBackgroundSize  0.032,
            BackdropBackgroundInsets 0.004 0.004 0.004 0.004,
            BackdropEdgeFile  "UI\Widgets\Glues\GlueScreen-Button1-BorderedBackdropBorder-Disabled.blp",
        }

        Frame "BACKDROP" "ColorButtonValue" {
            UseActiveContext,
            Height 0.0125,
            Width 0.0125,
            SetPoint LEFT, "ColorButton", LEFT, 0.007, 0.0,
        }

        Frame "BACKDROP" "ColorButtonArrow" { 
            UseActiveContext,
            Height 0.011,
            Width 0.011,
            SetPoint RIGHT, "ColorButton", RIGHT, -0.008, 0.0,
            BackdropBlendAll,
            BackdropBackground "UI\Widgets\Glues\GlueScreen-Pulldown-Arrow.blp",
        }

    }

    Frame "GLUEPOPUPMENU" "HandicapMenu" INHERITS WITHCHILDREN "PlayerSlotPopupMenu" {
        Width 0.054,
        UseActiveContext,
        SetPoint LEFT, "ColorButton", RIGHT, 0.0, 0.0,

        PopupMenuFrame "HandicapPopupMenuMenu",
        Frame "MENU" "HandicapPopupMenuMenu" INHERITS WITHCHILDREN "StandardPopupMenuMenuTemplate" {
            UseActiveContext,

            MenuItem "PERCENT_100",    -2,
            MenuItem "PERCENT_90",     -2,
            MenuItem "PERCENT_80",     -2,
            MenuItem "PERCENT_70",     -2,
            MenuItem "PERCENT_60",     -2,
            MenuItem "PERCENT_50",     -2,
        }
    }

    Frame "TEXT" "PingValue" INHERITS "StandardLabelTextTemplate" {
        Width 0.0225,
        Height 0.0125,
        
        FrameFont "MasterFont",0.011,"",
        FontFlags "FIXEDSIZE",
            
        UseActiveContext,
        SetPoint LEFT, "HandicapMenu", RIGHT, 0.0, 0.0,
    }
}

// -- TEAMCOLORMENU ----------------------------------------------------

Frame "CONTROL" "TeamColorMenu" {
    Width 0.18,
    Height 0.2,
    UseActiveContext,

    ControlBackdrop "TeamColorMenuBackdrop",
    Frame "BACKDROP" "TeamColorMenuBackdrop" INHERITS "StandardBorderedButtonBackdropTemplate" {
        UseActiveContext,
    }

    Frame "SCROLLBAR" "TeamColorMenuScrollBar" INHERITS WITHCHILDREN "StandardScrollBarTemplate" {
        SetPoint TOPRIGHT, "TeamColorMenu", TOPRIGHT, 0.0, 0.0,
        UseActiveContext,
    }
}
Где здесь id фрейма?((
prog:
люди обычно включают мозг и смотрят по содержимому похож ли фрейм на то что они ищут, если похож, то проверяют уже на практике, если нет, то ищут дальше.
Мне б сократить диапазон поиска. К примеру - 2 папки внутри framedef: "ui" и "glue". Как-то отсортированы фреймы по этим папкам или просто в две кучи всё намешано?
А ещё в framedef.toc есть такие 4 строки:
UI\FrameDef\GlobalStrings.fdf
UI\FrameDef\InfoPanelStrings.fdf
UI\FrameDef\NetworkStrings.fdf
UI\FrameDef\DateStrings.fdf
Этих файлов нет ни в одной из двух вышеперечисленных папок. А где они тогда?
24
Frame <тип фрейма> <айди фрейма> [наследование] {
[параметры фрейма и вложенные фреймы]
},

А где они тогда?
Поскольку это файлы строк судя по названию, то, очевидно, где-то в локалях.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.