With that image you are hiding your dialog. You must set it to Show. You also have no variable to store the created Model actor. This is why you use the Invisible model for the portrait and use the attached Model actor for the visuals.
3. I would make a generic hero spawn unit that then automatically morphs based on the player race. The way coop does hero revives is once it takes fatal damage a model showing the hero die is created while the unit is teleported to the lower left of the map before being set to be revived at the hero spawner.
Some people say using a custom UI layout is easier than dialogs for making buttons/models/animated stuff. Best tip I can give you is make a variable to store every dialog item incase you need it.
1. That is all UI editor stuff so talk to Avelice, Willuwontu, Hoclleberry and SolidSC. Hooking it up the the game using triggers is easy looking at the coop mod.
2. Again a UI issue in that in coop they link abilities to that place in the screen vie UI frames so it is the same as the cooldowns for abilities in the unit bar (if you screw up the triggers you end up with the selected unit having the move ability button below raynors calldowns).
3. Coop triggers are messy as hell. The hero on death has a stun buff applied to it that creates the Model type actor for the revive visuals. The spawn pad is a dummy unit set under the commanders User Data type while some revive/hero structures are another field created independently. The first spawn/revive time is handles by catalog triggers using a common revive ability. To make matters worse is the coop mode deliberately has troll code inserted (currently about 50% though beating it into any form of useful shape).
4. try the Set Dialog Item Style action. For borders you use Set Dialog Image Type followed by a Set Dialog Image action (see https://sc2mapster.gamepedia.com/UI/Frame_Properties/TextureType). Set Dialog Background Image and Set Dialog Item Border Image also can be used depending on what you want to create (worst case make textures that meld at the corners and import them). Again you seem to be wanting a UI solution. I advise looking at the Mission - Global Powers folder for the coop mod.
Edit: At what point did your attempt to make a portrait model fail? As always be systematic about finding the point of fault so you can correct it.
Show/Hide Dialog Background (Removes the border and background of the dialog)
Show/Hide Dialog (Dialogs are created as hidden so you need to show it to see what you are making)
Set Variable (Used to store the dialog so that other triggers can manipulate it eg. show/hide)
Set Dialog Item Render Type (Use one of these set to HDR after any Image dialog items to stop them covering the model completely)
Create Dialog Item (Used to create the Portrait type dialog item)
Set Dialog Item Render Type (Set to LDR otherwise the model for the portrait appears behind all other dialog items)
Set Dialog Item Render Priority (Set this number above any dialog items to go behind the model but below that of the button)
Set Dialog Item Size (Specifies the max size of your model)
Set Dialog Item Model (Sets the model for the portrait dialog item actor but it usually is the wrong scale, unaffected by model scale and resistant to all but the most basic of manipulations. This is best set to the Invisible model)
Set Dialog Item Border Visible (Allows the background and border of the portrait to be hidden so just the model shows)
Move Dialog Item (Allows you to place the model in your dialog)
Set Variable (Used to store the portrait dialog item incase you want to move, hide or resize it later using other triggers and to attach the button)
Wait For Portrait To Load (Necessary for the portrait actor to respond to an actor message)
Send Actor Message (Used to send the Create actor event to create your Model type actor used for the visuals) Set Variable (Used to store the created Model actor via a global reference (::global.stringofchoice) that the actor sets to itself on creation)
Create Dialog Item (Creates your button)
Set Dialog Item Size (Sets the size of the clickable button)
Attach Dialog Item To Dialog Item (Used to center the button in the middle of the model using variable 2)
Set Dialog Item Tooltip (What the button says when the mouse is hovering over it)
Set Dialog Item Image (Use Assets\Textures\blank.dds to make the button invisible)
Set Dialog Item Hover Image (Use Assets\Textures\blank.dds to make the button invisible when hovered over)
Set Dialog Item Click On Down (Use so the button gives a click response as soon as it is touched)
Set Dialog Item Render Priority (Set this to higher than your portrait so the button is in the front)
Set Variable (Stores the button so other triggers can know when it has been clicked)
Trigger 2:
Dialog Item Is Used (event used to detect if a dialog button is used but cannot tell which)
If Then Else (compare if the used (clicked) dialog item = variable 4 (your button) then do the next action(s))
Send Actor Message (send to the actor stored in variable 3 to do the response on click)
Add important trigger actions here!
Model Type Actor x:
Hosting: Host - Subject = ::Creator (this makes the actor attach to the actor of the portrait when created by it)
Hosting: Host Site Operations - Operations = SOpAttachOrigin (standard attachment SOp to stop the attached actor detaching from the portrait actor)
Properties: Inherited Properties = Deselect everything (This isolates the attachment actor from any weird stuff that might happen to the host actor)
Events+ = Actor Creation->Reference Set (Use this to set a global reference to the Self Reference Source to that the actor can be stored as a variable to send actor messages to)
The coop mod has a trigger called CT_InitializeUberDarkness if you have any soundtrack related problems
You just need to make a trigger with a Map Initialization event that uses a For Each Player In Player Group action. Under this loop use several If Then Else actions that use a Comparison condition with the logic of Attribute Player-Value = (insert your race here) and a Set Player Race action. At the end have a Set Starting Units For Player action. You also need to use the Picked Player function for all parameters defining the player.
0.964216005204945
I would set up the tech alias so both the end unit and unit it morphs from have the same alias used by the requirements.
0.964262508122157
Make a blank map and remove the melee triggers and then experiment. Never use your main project map for figuring new stuff out.
0.964308890330954
Melee triggers might be supressing exp gain?
0.964387464387464
You could give them a buff behaviour that searches for nearby units that applies a revealer to them.
0.963016678752719
With that image you are hiding your dialog. You must set it to Show. You also have no variable to store the created Model actor. This is why you use the Invisible model for the portrait and use the attached Model actor for the visuals.
3. I would make a generic hero spawn unit that then automatically morphs based on the player race. The way coop does hero revives is once it takes fatal damage a model showing the hero die is created while the unit is teleported to the lower left of the map before being set to be revived at the hero spawner.
0.963070238957277
Sounds like you forgot to show your dialog.
Some people say using a custom UI layout is easier than dialogs for making buttons/models/animated stuff. Best tip I can give you is make a variable to store every dialog item incase you need it.
1. That is all UI editor stuff so talk to Avelice, Willuwontu, Hoclleberry and SolidSC. Hooking it up the the game using triggers is easy looking at the coop mod.
2. Again a UI issue in that in coop they link abilities to that place in the screen vie UI frames so it is the same as the cooldowns for abilities in the unit bar (if you screw up the triggers you end up with the selected unit having the move ability button below raynors calldowns).
3. Coop triggers are messy as hell. The hero on death has a stun buff applied to it that creates the Model type actor for the revive visuals. The spawn pad is a dummy unit set under the commanders User Data type while some revive/hero structures are another field created independently. The first spawn/revive time is handles by catalog triggers using a common revive ability. To make matters worse is the coop mode deliberately has troll code inserted (currently about 50% though beating it into any form of useful shape).
4. try the Set Dialog Item Style action. For borders you use Set Dialog Image Type followed by a Set Dialog Image action (see https://sc2mapster.gamepedia.com/UI/Frame_Properties/TextureType). Set Dialog Background Image and Set Dialog Item Border Image also can be used depending on what you want to create (worst case make textures that meld at the corners and import them). Again you seem to be wanting a UI solution. I advise looking at the Mission - Global Powers folder for the coop mod.
Edit: At what point did your attempt to make a portrait model fail? As always be systematic about finding the point of fault so you can correct it.
0.963123644251627
Ok easiest way to make a clickable model:
Trigger 1:
Create Dialog (Creates your dialog)
Show/Hide Dialog Background (Removes the border and background of the dialog)
Show/Hide Dialog (Dialogs are created as hidden so you need to show it to see what you are making)
Set Variable (Used to store the dialog so that other triggers can manipulate it eg. show/hide)
Set Dialog Item Render Type (Use one of these set to HDR after any Image dialog items to stop them covering the model completely)
Create Dialog Item (Used to create the Portrait type dialog item)
Set Dialog Item Render Type (Set to LDR otherwise the model for the portrait appears behind all other dialog items)
Set Dialog Item Render Priority (Set this number above any dialog items to go behind the model but below that of the button)
Set Dialog Item Size (Specifies the max size of your model)
Set Dialog Item Model (Sets the model for the portrait dialog item actor but it usually is the wrong scale, unaffected by model scale and resistant to all but the most basic of manipulations. This is best set to the Invisible model)
Set Dialog Item Border Visible (Allows the background and border of the portrait to be hidden so just the model shows)
Move Dialog Item (Allows you to place the model in your dialog)
Set Variable (Used to store the portrait dialog item incase you want to move, hide or resize it later using other triggers and to attach the button)
Wait For Portrait To Load (Necessary for the portrait actor to respond to an actor message)
Send Actor Message (Used to send the Create actor event to create your Model type actor used for the visuals)
Set Variable (Used to store the created Model actor via a global reference (::global.stringofchoice) that the actor sets to itself on creation)
Create Dialog Item (Creates your button)
Set Dialog Item Size (Sets the size of the clickable button)
Attach Dialog Item To Dialog Item (Used to center the button in the middle of the model using variable 2)
Set Dialog Item Tooltip (What the button says when the mouse is hovering over it)
Set Dialog Item Image (Use Assets\Textures\blank.dds to make the button invisible)
Set Dialog Item Hover Image (Use Assets\Textures\blank.dds to make the button invisible when hovered over)
Set Dialog Item Click On Down (Use so the button gives a click response as soon as it is touched)
Set Dialog Item Render Priority (Set this to higher than your portrait so the button is in the front)
Set Variable (Stores the button so other triggers can know when it has been clicked)
Trigger 2:
Dialog Item Is Used (event used to detect if a dialog button is used but cannot tell which)
If Then Else (compare if the used (clicked) dialog item = variable 4 (your button) then do the next action(s))
Send Actor Message (send to the actor stored in variable 3 to do the response on click)
Add important trigger actions here!
Model Type Actor x:
Hosting: Host - Subject = ::Creator (this makes the actor attach to the actor of the portrait when created by it)
Hosting: Host Site Operations - Operations = SOpAttachOrigin (standard attachment SOp to stop the attached actor detaching from the portrait actor)
Properties: Inherited Properties = Deselect everything (This isolates the attachment actor from any weird stuff that might happen to the host actor)
Events+ = Actor Creation->Reference Set (Use this to set a global reference to the Self Reference Source to that the actor can be stored as a variable to send actor messages to)
The coop mod has a trigger called CT_InitializeUberDarkness if you have any soundtrack related problems
0.96606334841629
You cannot. Player and Game attributes interact only with triggers.
Edit: Silly question but do you have the Selectable flag enabled under the Races data type?
0.966101694915254
You just need to make a trigger with a Map Initialization event that uses a For Each Player In Player Group action. Under this loop use several If Then Else actions that use a Comparison condition with the logic of Attribute Player-Value = (insert your race here) and a Set Player Race action. At the end have a Set Starting Units For Player action. You also need to use the Picked Player function for all parameters defining the player.
0.96274217585693
In reply to MaskedImposter: