Preparations:
Create an empty map (32x32), add 2 campaign dependencies.
Modify some data: set marine "armor" to 100, set "death time" of next units to "-1": siege tank, goliath, diamondback.
Create simple trigger:
Events
Unit - Any Unit dies
Conditions
(Owner of (Triggering unit)) == 1
Actions
General - Wait 5.0 Game Time seconds
Unit - Revive (Triggering unit)
Unit - Move (Triggering unit) instantly to (Center of (Entire map)) (No Blend)
Unit - Set (Triggering unit) Life (Percent) to 100.0
create some marines for player 2 in one corner of map and diamonback, siege tank and goliath in another corner.
Now let the siege tank, diamondback and goliath die and be revived one by one at second player marines. Try to attack Marines again. The turret of the tank will be okay, but the turrets of goliath and diamondback will be broken (they still can hit targets in 360 degrees, but the turret looks only at the direction of motion).
I tried to find differences in the turrets of the tank and diamonback: they differ only in "turret`s actor" in field
"Attachment: Pitch Query +". Tank`s turret actor has "e_attachKeyIGNORE: Ignored" in this field!!! This value can`t be copied and being lost when duplicating. Next, I tried to give diamondback weapon and turret of the tank - nothing changes - turret of diamondback breaks after reviving.
Next step: change in trigger actions timeout to 15 seconds: General - Wait 15.0 Game Time seconds.
As a result, even the tank`s turret become broken after reviving!!!!!!!!!!!!!!!!!!!!!
Does anyone have any ideas what affects turrets after reviving?? Is it model`s bug?? or what?
That's because the siege tank is not meant to revive.
If you want to fix that you need to go into the turret actor and do something like:
UnitRevive.SiegeTank
-Create
Notice in the default siege tank unit actor it has:
UnitRevive.SiegeTank
-Create
There's a reason for this. The unit actor is different from the unit itself. A revive might save the unit's stats but the actors are not tied to the stats.
That actually looks kind of handy. I need to play with how to remove the tank's turret.
Ok the mechanics of it are something like this:
There is turret attached to the unit in the units tab.
So it goes like this:
Turret link in units tab >> turret in turrets tab >> turret in actors tab >> turret model
Normally the event is "turret enable"
Another thing you can try in the model is instead of it being "implicit" or "actor find" make it be "creation".
it didnt help... turret actor creates separately from body in point of death via unit.revive event... and it doesnt rotates to target but shoots!!! looks very funny =)
also why revive though 15 seconds breaks turret but through 5 seconds not? how it can ever be connected? Agrrrhhh.....
The implication is that you take out UnitRevive event, just leave turret enable, and set the host model field from implicit to creation (or actor find). to try those 2.
Sometimes those work and the others don't. You're right unitrevive won't work so I was saying take it out.
An interesting phenomenon and related to the attachment set events. Odds are you are just not destroying and creating your actors correctly.
The subject of the supporter hosting fields is just used by events as the ::Supporter reference. Unless any of your events use that as a target or otherwise it does nothing.
There are many issues with actors and unit revival.
The UnitDeath message is *not* sent for units with a -1.0 revival time, since the unit never really dies. The ActorDestruction message is only sent when the unit is actually revived, as the "corpse" lay around indefinitely even if it isn't visible. Instead, there are special revival messages to handle.
Because of this, all kinds of actor attachments (including turrets) tend to break with unit revivals.
If you want to use unit revival, do it with custom made units designed to handle all the relevant events.
not sure if you are still having the issue but i have looked at the map posted and have a fix, your action order in your trigger needs to be altered slightly the Move Action needs to come before the Revive action as well the turret needs to be reset to default. this should fix the issue
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Preparations: Create an empty map (32x32), add 2 campaign dependencies.
Modify some data: set marine "armor" to 100, set "death time" of next units to "-1": siege tank, goliath, diamondback.
Create simple trigger:
Events
Conditions
Actions
create some marines for player 2 in one corner of map and diamonback, siege tank and goliath in another corner.
Now let the siege tank, diamondback and goliath die and be revived one by one at second player marines. Try to attack Marines again. The turret of the tank will be okay, but the turrets of goliath and diamondback will be broken (they still can hit targets in 360 degrees, but the turret looks only at the direction of motion).
I tried to find differences in the turrets of the tank and diamonback: they differ only in "turret`s actor" in field "Attachment: Pitch Query +". Tank`s turret actor has "e_attachKeyIGNORE: Ignored" in this field!!! This value can`t be copied and being lost when duplicating. Next, I tried to give diamondback weapon and turret of the tank - nothing changes - turret of diamondback breaks after reviving.
Next step: change in trigger actions timeout to 15 seconds: General - Wait 15.0 Game Time seconds. As a result, even the tank`s turret become broken after reviving!!!!!!!!!!!!!!!!!!!!!
Does anyone have any ideas what affects turrets after reviving?? Is it model`s bug?? or what?
P.S. sorry for bad english.
@Dzuke911: Go
That's because the siege tank is not meant to revive.
If you want to fix that you need to go into the turret actor and do something like:
UnitRevive.SiegeTank -Create
Notice in the default siege tank unit actor it has:
UnitRevive.SiegeTank -Create
There's a reason for this. The unit actor is different from the unit itself. A revive might save the unit's stats but the actors are not tied to the stats.
@FockeWulf: Go
Try to add UnitRevive.SiegeTank -Create and you will get something like this:
Wonder??? =P lol blown off the tower
turret actor doesnt has unit.birth event. so why it should has unit.revive ?
another ideas?
That actually looks kind of handy. I need to play with how to remove the tank's turret.
Ok the mechanics of it are something like this:
There is turret attached to the unit in the units tab.
So it goes like this:
Turret link in units tab >> turret in turrets tab >> turret in actors tab >> turret model
Normally the event is "turret enable"
Another thing you can try in the model is instead of it being "implicit" or "actor find" make it be "creation".
it didnt help... turret actor creates separately from body in point of death via unit.revive event... and it doesnt rotates to target but shoots!!! looks very funny =)
also why revive though 15 seconds breaks turret but through 5 seconds not? how it can ever be connected? Agrrrhhh.....
@Dzuke911: Go
The implication is that you take out UnitRevive event, just leave turret enable, and set the host model field from implicit to creation (or actor find). to try those 2.
Sometimes those work and the others don't. You're right unitrevive won't work so I was saying take it out.
@Dzuke911: Go
Another thought. The Host Supporter+ field, set that to the model using the same parameters as the model field.
Also set the host supporter in the attack actor too.
I know its not in the turrets tutorial but it seems to help a lot of problems solve themselves
An interesting phenomenon and related to the attachment set events. Odds are you are just not destroying and creating your actors correctly.
The subject of the supporter hosting fields is just used by events as the ::Supporter reference. Unless any of your events use that as a target or otherwise it does nothing.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
@DrSuperEvil: Go
Ie perhaps the turret rotation?
so i think ill post it like bug report to official blizz forum. maybe they will fix it in future
offtop: did someone post report about third person view camera bug in 1.4.0? it breaking my camera system =(
It does have it's uses if you then want to attach other stuff where the turret was. Still I advise you upload your map so others can fidget with it.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
don't understand u. in first post i wrote how to create map i talking about. it takes 10 minutes to create and test it.
ok its map
Well for people who only have 10 mins they could spend it recreating the problem or solving it.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
I probably couldn't fix this, I'm sorry. I'm not pro with the Data editor yet.
If only Mephs was here, he could probably fix this in <1 minute. He is THAT pro!
There are many issues with actors and unit revival.
The UnitDeath message is *not* sent for units with a -1.0 revival time, since the unit never really dies. The ActorDestruction message is only sent when the unit is actually revived, as the "corpse" lay around indefinitely even if it isn't visible. Instead, there are special revival messages to handle.
Because of this, all kinds of actor attachments (including turrets) tend to break with unit revivals.
If you want to use unit revival, do it with custom made units designed to handle all the relevant events.
@StragusMapster: Go
Come on, give him some credit. I am sure he did not just dupe a whole siege tank without debugging or changing the actor events.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
not sure if you are still having the issue but i have looked at the map posted and have a fix, your action order in your trigger needs to be altered slightly the Move Action needs to come before the Revive action as well the turret needs to be reset to default. this should fix the issue