I am trying to make a transport that can unload its cargo at a distance, sort of like the Warp Prism in reverse. To do that, I am using a Calldown effect at a target location to unload.
However, now when I unload a transport unit, it actually unloads all the units from all the transports I have on the map, not just the one I ordered.
Is there a way to make the calldown effect only unload units from the transport that cast it?
It is backwards :). The actor attaches itself to a host unit through its (Basic) Event: Events field, even though every other type of object is attached from the host. The easiest way to make a new one is to duplicate an existing unit's actor.
Alternately, if you want to change the model of an existing unit, you can go to the unit in the data editor, scroll through its attached files (e.g. actors, abilities, etc.) until you get to its models, then in the unit model change the (Basic) Art: Model field. (You can do the same to change the unit's death model, missile model, etc.)
Welcome! As a guess, you probably either (a) haven't disabled multiplayer data in your map, and/or (b) haven't included campaign dependencies in your mod.
(a) This is an easy fix; I'd recommend trying it first. By default, maps add in multiplayer data when they load, which often overwrites custom data. You can disable that by going to Map Options in the Map menu, then unchecking the Automatically Add Multiplayer Data box near the bottom. Though keep in mind, this may mess up other stuff if you're using a preexisting map.
(b) This is likely to be harder. If your map uses campaign dependencies (which are basically mods for each vanilla campaign) but your mod does not, that can also overwrite stuff. You can add campaign dependencies in your mod by going to Dependencies in the File menu, then clicking Add Standard near the bottom and checking either the Liberty (Campaign), Swarm (Campaign), or Void (Campaign) boxes and then saving the mod. (You can also add in the multiplayer data yourself if option (a) doesn't work for you.) However, when you do this it will almost certainly break stuff in your mod; you will have to go through and redo everything that got overwritten.
I hope this helps! Sorry I don't know an easier way :).
I don't know what sort of wizardry just happened, but it worked! The units are still hard to click, but box-select works perfectly, and that was the biggest issue. Thank you!
Hi all, I have two related issues I'm struggling with.
First, I swapped the (Basic) Art: Model field of a Medivac's model to be a boat (PortCity_CargoBoat_00.m3 with Void dependencies). But when I did so, the unit could no longer be box-selected at all in-game, despite not having changed anything else that should be able to affect that.
Second, I swapped the (Basic) Art: Model field of a Battlecruiser to be a custom model (specifically a Ford Aircraft Carrier model from NanaKey's ModernWarAsset). But when I did so, while this unit is still box-selectable in-game, it is extremely difficult to just click on; its hitbox appears to be extremely small.
Does anyone know of anything I could do to resolve these issues?
What you want is a trigger action called Set Camera Data. This allows you to set the player's camera to the one you have created in the data editor. You do not need to set a camera variable for this.
If you want a camera to look at a particular place (for example when creating cutscenes) you can create these in the map itself as camera objects (should be a button in your toolbar, or the hotkey is C) and switch to them with a trigger action called Apply Camera Object.
I can't find the unit or behavior you are talking about (I did not purchase the Nova mission packs, which might be why). However, just based on your description here are some things you could look at:
- Look at the Stats: Death Time field of the unit. If this is anything but 0, the unit will take some time to actually be removed after it dies.
- Try going to the Effect: Effect - Final field of one of the behaviors you are working with and adding a Suicide effect to kill the Hyperion after the behavior stops.
- If you have any Create Persistent effects surrounding the Jump Out (you probably do; they're very common), try adding a Suicide final effect there as well.
As to your bonus question: create a Create Persistent effect that fires instead of spawning the Hyperion right away, with an expire delay of a few seconds. In the Effect: Effect - Expire field, create a Create Unit effect to spawn the Hyperion. Then attach some actors to the persistent effect with the "jump in" model and sound.
I am trying to create a "Death Shield" ability. Basically, the ability gives a target unit a "Death Shield" behavior for 15 seconds. If the target dies during that time, it will instead become invulnerable for a short time and regenerate 20% of its health.
Unfortunately, while the behavior prevents death just fine, it will NOT regenerate its health. What I've tried is to create a second behavior, "Reviving", to restore its health, and to have the "Death Shield" behavior apply that "Reviving" behavior on taking fatal damage via the "effect - handled" field in the behavior's damage response. But no matter what I do (and I've been beating my head against this for days), the "Reviving" behavior will either not apply at all, or will apply to either the attacking unit or to the spellcaster instead of the unit with the Death Shield.
Does anyone know what is going on here, or how to make this ability work as intended?
What you'll want is to make a Validator of type "Unit Compare Vital". Set the "Type" Field to "Fraction", the "Vital" field to "Life", the "Compare" field to "Less Than or Equal To", and the "Value" field to whatever fraction you want (e.g. 0.50 for 50% life, 0.25 for 25% life, etc.).
Then you add that validator to your behavior's "Validators (Disable)" field so that the behavior will only activate when the unit is below that fraction of life.
Sorry if this has been asked before. I'm trying to make a couple of effects that (1) do splash damage, and (2) do reduced damage to certain unit attributes. For example, I have a damage effect that deals:
200 total damage
100% damage in 2 radius, 50% damage in 3.5 radius, and 25% damage in 5 radius
75% damage to Armored units and 50% damage to Light units
So, for an armored unit like a Thor, I would like it to take 150 damage in the central ring (200 * 100% * 75%), 75 damage in the middle ring (200 * 50% * 75%), and 37.5 damage in the outer ring (200 * 25% * 75%). However, what it actually takes is 150 damage in the central ring (200 * 100% - 50), 50 damage in the middle ring (200 * 50% - 50), and only 0.5 damage in the outer ring (200 * 25% - 50, minimum damage 0.5).
Is there a way to make the splash multpliers and the attribute factors work multiplicatively like I thought they were supposed to, or should I go ahead and make three separate damage effects: one for each splash radius?
I think they must have patched that issue with behaviors; I ran a couple more tests to see if stacking the behaviors/having multiple units gathering broke anything, and it all seemed to work fine. I set the search launch to source like you said, and attached an actor to it to see if it behaved, and sure enough it did. It turned out I'd made a dumb mistake with the target sort that was also making things break. And yeah, testing the validators one by one in a simple ability revealed the issue (stupid requirement-type validators check the inverse case by default...).
I think this is the kind of thing DrSuperEvil meant:
Ability Effect: Ability_Switch:
Case 1: [Validator: Unit Compare Behavior Count (> 0)] Effect: Ability_Set_1:
Ability_Primary_Effect (Whatever the ability does)
Case 2: [Validator: Combine (Unit Compare Behavior Count (= 0) AND Unit Compare Vital (Energy >= Cost)] Effect: Ability_Set_2:
Ability_Drain_Energy (Modify Unit: Energy: -Cost)
Ability_Primary_Effect (Whatever the ability does)
Basically use a switch to check if the unit either has the behavior or has enough energy, and in the second case use the modify unit effect to simulate the energy cost in addition to the main effect of the ability. The switch uses four validators and four effects, plus however many you need for the ability itself.
Okay, hopefully the last question. I've iterated several times from your method to get one that works for my needs. Right now everything works as intended, at least as far as I've been able to test so far, except for two bugs:
I'm using a "being gathered" behavior based on your "hasmine" behavior to track who's mining which resource (instead of using a persistent taskmaster effect for that). When the resource dies due to running out of resources or being killed, the "being gathered" behavior has a death effect that (1) searches the nearby area for a new resource, (2) transfers the behavior to that resource, then (3) orders the worker who "owns" the old resource to gather the new resource instead. However, the search actually seems to be centered on the worker, not the resource, so if he's off returning resources when the resource dies, he'll start gathering whatever's closest to him instead of staying near where the player told him to gather.
Do you know how to make the search effect center on the dying resource like it's supposed to? I've tried a bunch of values for both the Target: Impact Location and the Target: Launch Location with no apparent effect.
The second bug is minor: I want to be able to carry 20 resources when I have a "wheelbarrow" upgrade, but only 10 without it. However, the "Player Requirement" validator I'm using doesn't seem to work, so my units can always carry 20. It isn't a huge deal if I can't get this one sorted; I'll just remove the upgrade.
In any case, thank you so much for all your help with this! You are absolutely getting an honorable mention on this map; there's no way I could have figured this system out on my own.
I don't believe there is a simple event for that. Instead, you want to use the unit takes damage event, and set a condition to check the life: Comparison: Unit Property: ((Triggering unit) Life (Current)) < 1000.
0
Hi all,
I am trying to make a transport that can unload its cargo at a distance, sort of like the Warp Prism in reverse. To do that, I am using a Calldown effect at a target location to unload.
However, now when I unload a transport unit, it actually unloads all the units from all the transports I have on the map, not just the one I ordered.
Is there a way to make the calldown effect only unload units from the transport that cast it?
Thanks,
- Xi
0.950646512474959
It is backwards :). The actor attaches itself to a host unit through its (Basic) Event: Events field, even though every other type of object is attached from the host. The easiest way to make a new one is to duplicate an existing unit's actor.
Alternately, if you want to change the model of an existing unit, you can go to the unit in the data editor, scroll through its attached files (e.g. actors, abilities, etc.) until you get to its models, then in the unit model change the (Basic) Art: Model field. (You can do the same to change the unit's death model, missile model, etc.)
0
Welcome! As a guess, you probably either (a) haven't disabled multiplayer data in your map, and/or (b) haven't included campaign dependencies in your mod.
(a) This is an easy fix; I'd recommend trying it first. By default, maps add in multiplayer data when they load, which often overwrites custom data. You can disable that by going to Map Options in the Map menu, then unchecking the Automatically Add Multiplayer Data box near the bottom. Though keep in mind, this may mess up other stuff if you're using a preexisting map.
(b) This is likely to be harder. If your map uses campaign dependencies (which are basically mods for each vanilla campaign) but your mod does not, that can also overwrite stuff. You can add campaign dependencies in your mod by going to Dependencies in the File menu, then clicking Add Standard near the bottom and checking either the Liberty (Campaign), Swarm (Campaign), or Void (Campaign) boxes and then saving the mod. (You can also add in the multiplayer data yourself if option (a) doesn't work for you.) However, when you do this it will almost certainly break stuff in your mod; you will have to go through and redo everything that got overwritten.
I hope this helps! Sorry I don't know an easier way :).
- Xi
0
I don't know what sort of wizardry just happened, but it worked! The units are still hard to click, but box-select works perfectly, and that was the biggest issue. Thank you!
0
Hi all, I have two related issues I'm struggling with.
First, I swapped the (Basic) Art: Model field of a Medivac's model to be a boat (PortCity_CargoBoat_00.m3 with Void dependencies). But when I did so, the unit could no longer be box-selected at all in-game, despite not having changed anything else that should be able to affect that.
Second, I swapped the (Basic) Art: Model field of a Battlecruiser to be a custom model (specifically a Ford Aircraft Carrier model from NanaKey's ModernWarAsset). But when I did so, while this unit is still box-selectable in-game, it is extremely difficult to just click on; its hitbox appears to be extremely small.
Does anyone know of anything I could do to resolve these issues?
Thanks,
- Xi-entaj
0
What you want is a trigger action called Set Camera Data. This allows you to set the player's camera to the one you have created in the data editor. You do not need to set a camera variable for this.
If you want a camera to look at a particular place (for example when creating cutscenes) you can create these in the map itself as camera objects (should be a button in your toolbar, or the hotkey is C) and switch to them with a trigger action called Apply Camera Object.
Hope this helps!
- Xi
2.70352809661594
I can't find the unit or behavior you are talking about (I did not purchase the Nova mission packs, which might be why). However, just based on your description here are some things you could look at:
- Look at the Stats: Death Time field of the unit. If this is anything but 0, the unit will take some time to actually be removed after it dies.
- Try going to the Effect: Effect - Final field of one of the behaviors you are working with and adding a Suicide effect to kill the Hyperion after the behavior stops.
- If you have any Create Persistent effects surrounding the Jump Out (you probably do; they're very common), try adding a Suicide final effect there as well.
As to your bonus question: create a Create Persistent effect that fires instead of spawning the Hyperion right away, with an expire delay of a few seconds. In the Effect: Effect - Expire field, create a Create Unit effect to spawn the Hyperion. Then attach some actors to the persistent effect with the "jump in" model and sound.
I hope these help!
- Xi
0
Hi all,
I am trying to create a "Death Shield" ability. Basically, the ability gives a target unit a "Death Shield" behavior for 15 seconds. If the target dies during that time, it will instead become invulnerable for a short time and regenerate 20% of its health.
Unfortunately, while the behavior prevents death just fine, it will NOT regenerate its health. What I've tried is to create a second behavior, "Reviving", to restore its health, and to have the "Death Shield" behavior apply that "Reviving" behavior on taking fatal damage via the "effect - handled" field in the behavior's damage response. But no matter what I do (and I've been beating my head against this for days), the "Reviving" behavior will either not apply at all, or will apply to either the attacking unit or to the spellcaster instead of the unit with the Death Shield.
Does anyone know what is going on here, or how to make this ability work as intended?
Thank you,
- Xi
0
That's what I thought as well, but I can't get it to behave now. Maybe I changed something else somewhere that's messing it up without realizing it.
Thank you for your response!
0
What you'll want is to make a Validator of type "Unit Compare Vital". Set the "Type" Field to "Fraction", the "Vital" field to "Life", the "Compare" field to "Less Than or Equal To", and the "Value" field to whatever fraction you want (e.g. 0.50 for 50% life, 0.25 for 25% life, etc.).
Then you add that validator to your behavior's "Validators (Disable)" field so that the behavior will only activate when the unit is below that fraction of life.
Hope this helps!
0
Hi all,
Sorry if this has been asked before. I'm trying to make a couple of effects that (1) do splash damage, and (2) do reduced damage to certain unit attributes. For example, I have a damage effect that deals:
So, for an armored unit like a Thor, I would like it to take 150 damage in the central ring (200 * 100% * 75%), 75 damage in the middle ring (200 * 50% * 75%), and 37.5 damage in the outer ring (200 * 25% * 75%). However, what it actually takes is 150 damage in the central ring (200 * 100% - 50), 50 damage in the middle ring (200 * 50% - 50), and only 0.5 damage in the outer ring (200 * 25% - 50, minimum damage 0.5).
Is there a way to make the splash multpliers and the attribute factors work multiplicatively like I thought they were supposed to, or should I go ahead and make three separate damage effects: one for each splash radius?
Thanks!
- Xi
0
And... done!
I think they must have patched that issue with behaviors; I ran a couple more tests to see if stacking the behaviors/having multiple units gathering broke anything, and it all seemed to work fine. I set the search launch to source like you said, and attached an actor to it to see if it behaved, and sure enough it did. It turned out I'd made a dumb mistake with the target sort that was also making things break. And yeah, testing the validators one by one in a simple ability revealed the issue (stupid requirement-type validators check the inverse case by default...).
Thanks again for everything :).
0
I think this is the kind of thing DrSuperEvil meant:
Ability Effect: Ability_Switch:
Case 1: [Validator: Unit Compare Behavior Count (> 0)] Effect: Ability_Set_1:
Ability_Primary_Effect (Whatever the ability does)
Case 2: [Validator: Combine (Unit Compare Behavior Count (= 0) AND Unit Compare Vital (Energy >= Cost)] Effect: Ability_Set_2:
Ability_Drain_Energy (Modify Unit: Energy: -Cost)
Ability_Primary_Effect (Whatever the ability does)
Basically use a switch to check if the unit either has the behavior or has enough energy, and in the second case use the modify unit effect to simulate the energy cost in addition to the main effect of the ability. The switch uses four validators and four effects, plus however many you need for the ability itself.
Hope this helps!
0
Okay, hopefully the last question. I've iterated several times from your method to get one that works for my needs. Right now everything works as intended, at least as far as I've been able to test so far, except for two bugs:
I'm using a "being gathered" behavior based on your "hasmine" behavior to track who's mining which resource (instead of using a persistent taskmaster effect for that). When the resource dies due to running out of resources or being killed, the "being gathered" behavior has a death effect that (1) searches the nearby area for a new resource, (2) transfers the behavior to that resource, then (3) orders the worker who "owns" the old resource to gather the new resource instead. However, the search actually seems to be centered on the worker, not the resource, so if he's off returning resources when the resource dies, he'll start gathering whatever's closest to him instead of staying near where the player told him to gather.
Do you know how to make the search effect center on the dying resource like it's supposed to? I've tried a bunch of values for both the Target: Impact Location and the Target: Launch Location with no apparent effect.
The second bug is minor: I want to be able to carry 20 resources when I have a "wheelbarrow" upgrade, but only 10 without it. However, the "Player Requirement" validator I'm using doesn't seem to work, so my units can always carry 20. It isn't a huge deal if I can't get this one sorted; I'll just remove the upgrade.
In any case, thank you so much for all your help with this! You are absolutely getting an honorable mention on this map; there's no way I could have figured this system out on my own.
0
I don't believe there is a simple event for that. Instead, you want to use the unit takes damage event, and set a condition to check the life: Comparison: Unit Property: ((Triggering unit) Life (Current)) < 1000.