Archer30
Posts: 1175
|
|
28.08.2021 18:43 |
|
Valery
Posts: 2196
|
Hi,
I saw there are new opportunities to display pics while creating dialogs with choices, like IF:G, can you point me please to some manual about?
|
|
31.08.2021 22:19 |
|
daemon_n
Posts: 4343
|
Valery, that is just intext game resources' displaying support
IF:M^{~>myDef.def:0:5}^; 0 is cadre group, 5 - is cadre number (starts from 0)
IF:M^{~>myPcx.pcx}^; just pcx not sure, it was made for pcx
Quote:[+] Added support for displaying inline def-images right in texts as a part of Era Markup Language (EML).
To embed image in text use the following tags: {~>def_name.def} Will display the first frame from the first group of def_name.def image in place of text cursor. {~>def_name.def:frame_index} Will display specified frame from the first group of def_name.def image or nothing if index is invalid. {~>def_name.def:group_index:frame_index} Will display specified frame from specified group of def_name.def image or nothing if index is invalid.
Frames and frame groups are counted from 0. Frames are automatically trimmed. By default images are rendered "inline". It means, that they are treated as non-wrapping sequence of white space characters. Images do not allocate vertical space except the height of current font. But they automatically allocate necessary width.
Images can be aligned vertically using the following attribute: valign=top|middle|bottom. Examples: {~>ava0037.def valign=bottom} {~>smalres.def:5}
Vertical alignment modes: - 'top'. Image is drawn from the top left pixel of current character box. - 'middle'. Image is vertically centered relative to current text line height. This is the default mode for inline images. - 'bottom'. Image is drawn so, that it's bottom edge matches current text line bottom edge.
Quote:[+] Implemented high level API for WoG radio dialogs (IF:G). Configure dialog before showing. Optionally assign value and tag to each item. Optionally add special "cancel" item. The result is item index, value and tag. No need to convert bits anymore.
Example 1:
!?FU(OnAfterErmInstructions); !!FU(RadioDlg_Reset):P; !!FU(RadioDlg_SetTitle):P^What primary skill would you like to increase?^; !!FU(RadioDlg_AddCancelButton):P;
!!FU(RadioDlg_AddItem):P^Attack^/(SKILL_ATTACK)/^attack^; !!FU(RadioDlg_AddItem):P^Defense^/(SKILL_DEFENSE)/^defense^; !!FU(RadioDlg_AddItem):P^Knowledge^/(SKILL_KNOWLEDGE)/^knowledge^; !!FU(RadioDlg_AddItem):P^Power^/(SKILL_POWER)/^power^;
!!FU(RadioDlg_SelectItemByTag):P^knowledge^; !!FU(RadioDlg_Show):P?(item:y)/?(value:y)/?(tag:z); !!IF:M^Item: %(item). Value: %(value). Tag: %(tag)^;
Example 2:
!?FU(OnAfterErmInstructions); !!FU(RadioDlg_Reset):P; !!FU(RadioDlg_SetTitle):P^Select your starting hero:^; !!FU(RadioDlg_AddCancelButton):P;
!!FU(RadioDlg_AddItem):P^Orrin^/(HERO_ORRIN); !!FU(RadioDlg_AddItem):P^Xeron^/(HERO_XERON); !!FU(RadioDlg_AddItem):P^Gird^/(HERO_GIRD); !!FU(RadioDlg_AddItem):P^Valeska^/(HERO_VALESKA);
!!FU(RadioDlg_SelectItemByValue):P(HERO_GIRD); Preselect Gird from start !!FU(RadioDlg_Show):P?(item:y)/?(hero:y);
!!if&(hero)>=(HERO_FIRST); !!IF:M^Selected hero: %(hero)^; !!en;
API:
!?FU(RadioDlg_Reset); ; Resets all radio dialog settings to empty values.
!?FU(RadioDlg_SetTitle); ; Changes radio dialog title.
!?FU(RadioDlg_AddCancelButton); ; Adds cancel button to dialog. Decreases maximum number of items in dialog by one.
!?FU(RadioDlg_SelectItem); ; Sets new selected item by its index. !#VA(itemInd:x);
!?FU(RadioDlg_SelectItemByValue); ; Finds the first item with specified value and selects it. !#VA(itemValue:x);
!?FU(RadioDlg_SelectItemByTag); ; Finds the first item with specified tag and selects it. !#VA(itemTagPtr:x); Tag string
!?FU(RadioDlg_AddItem); ; Adds new item to radio dialog. !#VA(itemCaptionPtr:x); Optional. New item caption. Empty/spacy captions are valid. Default: ^^. !#VA(itemValue:x); Optional. Numeric value, associated with item. Default: 0. !#VA(itemTagPtr:x); Optional. String tag, associated with item. Default: ^^. !#VA(selectItem:x); Optional. Boolean. If TRUE, item will be selected. Default: FALSE.
!?FU(RadioDlg_AddItems); ; Adds up to 5 items to radio dialog. For detailed arguments description see (RadioDlg_AddItem). !#VA(firstItemCaptionPtr:x); !#VA(firstItemValue:x); !#VA(firstItemTagPtr:x);
!?FU(RadioDlg_Show); ; Display previously configured radio dialog with single possible choice. ; Currently maximum RADIO_DLG_MAX_ITEMS (-1 for cancel button) items can be added to the dialog. ; Returns selected item index, value and tag. Item index is (NO_RADIO_DLG_ITEM) if no items are present for selection ; or Cancel button was pressed. !#VA(resultItem:x); Default: (NO_RADIO_DLG_ITEM). !#VA(resultValue:x); Default: -1. !#VA(resultTagPtr:x); Default: ^^.
Новейший Heroes Launcher
|
|
31.08.2021 22:57 |
|
Berserker
Posts: 16657
|
Additional interesting parts from manual:
Code:
[+] Added possibility to use animated defs in DL-dialogs. Just append " animated" to dialog item name to make it animated. Example: "Def" => "Def animated".
Up to 10 animated defs are supported for each dialog. Animation speed is 10 frames per second. One single DEF group of frames is used.
[+] Added possibility to specify frames group index for defs in DL-dialogs. Write frame index as GROUP_INDEX * 100000 + FRAME_INDEX. Group indexes are counted from 0.
[+] Implemented horizontal text alignment support in Era Markup Language (EML).
To specify alignment use either regular color tags with new align=xxx attribute or new tag "text".
Possible alignment values: "left", "center", "right".
Examples:
{~RosyBrown align=right}Some text with(out) images{~}
{~text align=center}Some text with(out) images{~}
{~RosyBrown align="left"}Some text with(out) images{~}
{~text color="RosyBrown" align="left"}Some text with(out) images{~}
Attribute values without spaces and special chars may be written without double quotes.
[+] Implemented block-style images support for Era Markup Language (EML).
Use "block" attribute to mark image in text as block-style. New line before and after image will be forced automatically.
Vertical space in text is also automatically reserved for block images. Moreover, they can be partially scrolled without vanishing effect, occuring for inline images.
Examples:
!!IF:M^{~text align=center}{~Orange}Fire camping{~}
----
{~>CDEVIL.def:0:0 valign="middle" block}
----
{~>cndrgn.def:12:2 block}{~}^;
[+] Added support for 65536-color pcx images (pcx16) in DL-dialogs. Default loading mode is 256 colors (pcx8). To load image as pcx16 change its name in dialogs editor to '****.pcx.pcx16'. Real file name in lod/pac archive should be left as is. The engine will recognise new extension, transform it into '.pcx' and load image as pcx16.
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
31.08.2021 23:45 |
|
Valery
Posts: 2196
|
wow
Thanks, now I am lost with the ton of information. Can you give me a short example, following a script I used in Era 2, please? So I can see the new pattern without converting to bits
How would look adding any pcx or def to a single of those options?
|
|
01.09.2021 00:08 |
|
Valery
Posts: 2196
|
Thanks, but how do I place a big def as header and below the option?
As this, empty z var?
!!VRz3&v9222<99:S^{~>smalres.def:%(RES_ORE)}^;
or simply like in your first example?
IF:M^{~>myDef.def:0:5}^;
Because I want the def to display in a IF:G dialog. Also animated defs display only in DL dialog?
(This post was last modified: 01.09.2021 01:26 by Valery.)
|
|
01.09.2021 01:23 |
|
Berserker
Posts: 16657
|
|
01.09.2021 01:54 |
|
Archer30
Posts: 1175
|
An idea of ERA + BattleReplay improvement.
How about storing every single global vars at OnBeforeBattle and restore all of them at OnBattleReplay? With this mod makers don't have to do it manually. Scripting is much easier
Latest ERA mods and scripts in development - My GitHub
(This post was last modified: 04.09.2021 09:51 by Archer30.)
|
|
04.09.2021 09:51 |
|
Archer30
Posts: 1175
|
|
04.09.2021 18:58 |
|