Ive been working around them for some time now and i havent been able to solve this two abilities. I have been able to solve all the others i had i mind so far but this two have just impossible. So i decided to ask for help to those of you who know the data module upside down.
The first ability is: Adept - Phase Shift.
Now ive been trying and trying to duplicate this ability because i dont like altering the orignal ones plus i need to do levels witht his ability and i must be sure that i have full control of all the effects and behaviors, etc...So already saying that, i have noticed that i do not have control over all the effects, actors, behaviors of this ability. I havent been able to duplicate it entirely. So in this map you will see the unit ive been trying to use as the user of the ability with 2 abilities. The first one is the original ability and the second one is the one i was trying to create but wasnt able to do so.
The second ability is: Tank - Activate Siege Mode
I was trying to create an Effect - Target ability out of the Siege Mode Morph ability of the tank. I didnt wanted to use the morph ability because my idea is that the user wont be able to control wheter he sieges or unsiege. The idea is that the player presses the effect target ability triggering a cooldown on the ability . The player chooses a target and fires but for a period of time only or amount of times, then the tank morphs back to his original position on his own. This one i reallly havent been able either to build it.
The problem with the editor is there is a lot of legacy stuff called phase shift that is from different abilities with the same name that was never implemented
I assume the Psionic Transfer ability of the adept is meant.
The ability applies a Set that applies a Buff to the caster which is used to show a separate ability for cancelation. The buff has strange circular logic in that on removal or expiration it uses a Remove Behavior effect to try and remove itself for a second time!
The Set also uses a Create Unit effect that spawns the shade(s) at the caster and uses another Set on the created shades.
The second set applies a Buff to the shades that makes them both passive and benign and supresses the Attack ability while making them move even faster. An Issue Order effect is also applied by the set to tell the shades to use the Move ability to the target point of the Create Unit effect. The set finally applies a timer Buff behaviour to the shades that requires the caster to still be alive and for the ability not to have the cancelation buff applied by the second ability.
On removal of the timer buff a Set is used to remove the buff on the caster and kill the shade using a Damage effect applied to the target of the effect used to apply the timer behaviour. If the timer buff time expires another Set is used which applies a set to remove disabling behaviours from other abilities, kills the shade using the same Damage effect, uses a Modify Unit effect to deselect the shades and select the caster, uses a second Modify Unit effect to copy up to 50 issued orders back onto the caster unit and finally teleports the caster to the target point of the shade timer expiration set using a Teleport effect.
The problem with your ability is twofold. First the Create Unit effect is bugged and not producing the selected unit. Second your Sentry Shade unit is broken. Make a new Create Unit effect from scratch to fix the first problem.
Well i decided to work a bit on this annoying issue and following your recommendation i was able to use the effect - target ability. Now there are several issues remaining.
1.Tank doesnt morph back automatically.
2.Tank doesnt respond to my period modifications.
3.Tank doestn attack point even though i set all the target filters to Attack Target Point. Not even Target Unit/Point.
The tank is supposted to act similar to the way the thor responds to his barrage ability. You select target (point) then he morph and fires, and then he morphs back automatically, No with the levels i intend to modify the amount of shots or time done each time the player uses the ability.
I dunno what phase shift is, so I can't help you there.
But hopefully for the tank ability I have a starting point for you. My ability is a point target ability, that upon cast, morphs the Siege Tank and attacks the location X times, and returns it back to normal afterwards.
There are lots of solutions to this, but since the Siege Tank uses a turret and I'm not real good with them - I'm not going to use pure data for this. I'm going to stick to the default morph ability, add some of my own data tweaks, then finally put it together via scripts.
EDIT: I hate morphs... they can be very clunky if you're trying to benchmark rapid transitions back and forth, but since we don't have to do that for this kind of ability I think I will stick to it this time. Also morphs have problems with units that use plane pathing, and you try to use them on units created dynamically.
How I did this,
I hid the default siege and unsiege abilities on the command card of Siege Tank units. They still need the ability for morphing.
Made a dummy unit, with invisible model, high regeneration, life, and behavior that modifies incoming damage to 0. Changed some unit flags so it can't be commanded, selected, is invul,.. etc (It can be target'd however, it is necessary for our ability). Change plane to ground, or whatever our Siege Tank weapon can target.
Made it so the Crucio Shock Cannon (Siege Tank weapon)'s effect - Crucio Shock Cannon Set, can only target the dummy unit - via unit type validator (set to our dummy unit). Changed weapon filter to target invul units (so it can affect our dummy unit).
Created a target ability, with a dummy set effect (location set to point). Give it good range, and change arc to 360; otherwise you'll get clunky animations that cause the siege tank to turn multiple times. Weapon range should be same as ability range (maybe more to be safe).
Created a behavior, that makes unit uncommandable during the 'ability phase', with max stack count changed to number of desired hits.
Created an effect, that removes one stack of our behavior from caster. Added it to the Crucio Shock Cannon Set.
Tweaked some numbers, on weapon attack speed, damage areas to make it more interesting. Added ability to our Siege Tank - Tank Mode.
The rest are done on triggers.
// Add this somewhere in a custom script somewhere.// If you're using a libNtve func via GUI func, you won't need this.include"TriggerLibs/NativeLib"
boolSiegeStrike_OnCast(boolcond,boolactions){// For 'strikes', you will need to change the max stack count of the behavior added// if the 'strikes' value exceeds the max stack count. For obvious reasons// that wouldn't work...unitcaster=EventPlayerEffectUsedUnit(c_effectUnitCaster);unitdummyTarget;pointtPoint=EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);intowner=UnitGetOwner(caster);intstrikes=10;stringkey=IntToString(UnitGetTag(caster));// Order the caster to SiegeMode, so the caster must have the ability - even if it's hiddenUnitIssueOrder(caster,Order(AbilityCommand("SiegeMode",0)),c_orderQueueReplace);// Add the right number of SiegeStrike behavior..UnitBehaviorAdd(caster,"SiegeStrike",caster,strikes);// Create our target unit, so we can mimic a target point attackUnitCreate(1,"SiegeStrikeTarget",0,0,tPoint,0);dummyTarget=UnitLastCreated();// This wait is for the animation transition, you can obviously change the value// if you change the duration via an actor messageWait(3.667,c_timeGame);// Issue our unit to attack to dummyUnitIssueOrder(caster,OrderTargetingUnit(AbilityCommand("attack",0),dummyTarget),c_orderQueueReplace);// Save our dummy unit with a key using caster's index tagDataTableSetUnit(true,key+"siegeStrikeTarget",dummyTarget);returntrue;}boolSiegeStrike_OnLastStrike(boolcond,boolactions){// 'unsiegeDelay' is the time delay after the unit is order to initially stop,// that the unit is ordered to Unsiege, this is necessary to make the animation// flow a little more smoothly // 'delay' is the time delay that we remove the dummy unit, removing too early will// kill any orphaned explosion effects. Of course if you make your own custom attack effects// you can make it so they don't destroy upon being orphan'd.unitcaster=EventUnit();unitdummyTarget;fixedunsiegeDelay=.5;fixeddelay=6.5;stringkey=IntToString(UnitGetTag(caster));boolisAlive=UnitIsAlive(caster);// Only if the caster is alive, give it ordersif(isAlive){UnitIssueOrder(caster,Order(AbilityCommand("stop",0)),c_orderQueueReplace);Wait(unsiegeDelay,c_timeGame);UnitIssueOrder(caster,Order(AbilityCommand("Unsiege",0)),c_orderQueueReplace);}// After waiting the delay, remove the dummy target unit and remove key from data tableWait(delay,c_timeGame);dummyTarget=DataTableGetUnit(true,key+"siegeStrikeTarget");UnitRemove(dummyTarget);DataTableValueRemove(true,key+"siegeStrikeTarget");returntrue;}voidSiegeStrike_Init(){TriggerAddEventPlayerEffectUsed(TriggerCreate("SiegeStrike_OnCast"),c_playerAny,"SiegeStrike");TriggerAddEventUnitBehaviorChange(TriggerCreate("SiegeStrike_OnLastStrike"),null,"SiegeStrike",c_unitBehaviorChangeDestroy);}
Basically, the script puts everything together. The first func is fired when the dummy set effect is used; You get x number of strike stacks and create a dummy unit at a target location. After the animation transition, we order our morphed unit to attack the dummy. Every time our weapon is fired, the tank loses one strike stack. Our second func is fired when a unit loses all strike stacks, it orders our Siege Tank to unsiege and removes the dummy target unit.
Some notes you should understand, if you want to export this ability.
The Siege Tank - Sieged units are modified to the extent where they can't target regular units - but if you want to still use them in another map, I suggest you copy them, and set the morph to the copied unit. Obviously this means, you're going to have copy a few data like the Crucio Shock Cannon weapon and effects used. Or idk, use a switch effect - figure it out.
I removed the requirement on the Siege Tank - Siege morph ability, if you're using the default settings - the requirement will be there and will cause this ability to do nothing. So.. remove this requirement,- alternatively give the requirement to our custom ability. That way things will line up cleanly.
Your siege tanks, must have the Siege/Unsiege abilities. Even though I hid them on the command card, they are still required for this ability to work properly.
Is it possible to do it using the Arclite Cannon Shock Set as part of the ability and not as a weapon? Units on the arcade game wont be using weapons. Anyway i sent u a PM.
Regarding the ability made by msong, how would i be able to make this ability levelable. I would like the damage to increase by percentage/radius or maybe counts by each level. I have 5 levels per ability. I tried doing it on the triggers but it just won't work.
Well, I read your PM regarding this. Since I was kind of bored, I made a more polished version not using any weapons. Of course this means that I would have to turn the turret myself - and it's probably the hardest part, since manual turret rotation is extremely limited (especially clunky via actor messages); The rest of the ability.. was pretty self explanatory. If you didn't know some of these, I suggest you take a good look at some of them, explore the editor a bit more, google or search the mapster.
Some of the questions you are asking, require problem solving and work arounds - maybe next time you need to try harder or do something easier :P. I admit though, the smooth turret turning without weapons was a challenge for me. As far as the problem solving goes, here's how I did it.
Turret Turning - use a modify unit effect that can change turret rotation to target point, and rotate the unit smoothly via scripted waits. You have to interpolate from where you are facing to the target point - then make the unit use the modify unit effect targeting the interpolated points.
Siege Breakers/Tank Dynamics - just make a switch effect that orders different morphs, via unit type validators. If you have only one type of unit using it, you won't even need a switch, just make sure the issued order is the right morph type. Don't forget morphed units are not the same unit-type as pre-morphed units.
Level Dynamics - make multiple damage effects, use a switch effect for different damage effect, checking which to use via unit abil level validators.
Attacking - just fake the attack animation via a dummy damage effect -> make it trigger necessary actors (action, modeloneshot, soundoneshot, etc..).
The script for turning the turret.
constfixedc_siegeStrikeRotationSpeed=150;constfixedc_siegeStrikeAnimDuration=.45;// README// **This ability was made specifically for Siege Tanks, other variations of Siege Tanks may/not work.**// c_siegeStrikeRotationSpeed refers to how fast the turret rotates before attacking/unmorphing// c_siegeStrikeAnimDuration refers to how fast the sieged units play their attack animation// Effects -> Siege Strike (Attack Persistent)// Period Count - number of attacks// Period Durations - time between attacks// Expire Delay - delay after finished attacking, the turret should return to original angle// - Recommend at least 0.5+ second, needed for fluidity between animations// Effects -> Siege Strike// Period Durations - morph animation time, I recommend something like 4.5+ seconds// - This is the duration after initially cast SiegeStrike_TurnTurret func is called// - Allows the morph animation to go uninterruptedboolSiegeStrike_TurnTurret(boolcond,boolactions){// Siege Tank morphed, has an initial turret angle of 135..unitcaster=EventPlayerEffectUsedUnit(c_effectUnitCaster);stringeffect=EventPlayerEffectUsed();pointcPoint=UnitGetPosition(caster);pointtPoint=EventPlayerEffectUsedPoint(c_effectLocationTargetPoint);pointdPoint;fixeddistance=DistanceBetweenPoints(cPoint,tPoint);fixedangle=135;fixedtAngle=AngleBetweenPoints(cPoint,tPoint);fixedangleDif;fixedrotationSpeed=c_siegeStrikeRotationSpeed*.0625;fixedfinalDelay=.25;boolturnback=effect=="SiegeStrikeReturnSet";boolclockwise;// AngleBetweenPoints returns a value from 0~180,-179.9~-.01// We need 0~360 values to make this workif(tAngle<0){tAngle+=360;}// If turning back, reverse the target and starting anglesif(turnback){angle=tAngle;tAngle=135;}// Get the pure differenceangleDif=AbsF(tAngle-angle);// Check which rotation direction is fasterif((!turnback&&(tAngle<135||tAngle>315))||(turnback&&(angle<315&&angle>135))){clockwise=true;}// Make sure the angle difference is the minimum, this is necessary since we check wich rotation is faster..if(angleDif>180){angleDif=360-angleDif;}while(true){Wait(.0625,c_timeGame);// If angle difference is less than the rotation speed, set the next angle to the original target angle// and set the angle difference to 0if(angleDif-rotationSpeed<0){angle=tAngle;angleDif=0;}else{// If the direction is clockwise, we subtract otherwise add the rotationif(clockwise){angle-=rotationSpeed;}else{angle+=rotationSpeed;}// Angle difference is an absolute value, so just keep subtractingangleDif-=rotationSpeed;}// Make the next interpolation, and cause caster to turn it's turret towards interpolated pointdPoint=PointWithOffsetPolar(cPoint,distance,angle);UnitCreateEffectPoint(caster,"SiegeStrikeTurnTurret",dPoint);if(angleDif==0){break;}}// Wait the final delay and trigger the next chain of effectsWait(finalDelay,c_timeGame);if(turnback){UnitCreateEffectUnit(caster,"SiegeStrikeFinalSet",caster);}else{UnitCreateEffectPoint(caster,"SiegeStrikeAttackPersistent",tPoint);}returntrue;}boolSiegeStrike_OnDamage(boolcond,boolactions){// Just plays the Attack animation when the attacking effects go off// You can choose to put in the actor message in units' actors if you want instead...unitcaster=EventPlayerEffectUsedUnit(c_effectUnitCaster);fixedanimDuration=c_siegeStrikeAnimDuration;libNtve_gf_SendActorMessageToUnit(caster,"AnimPlay Attack Attack 0 -1.000000 -1.000000 "+FixedToString(animDuration,5)+" AsDuration");returntrue;}voidSiegeStrike_Init(){triggertrig=TriggerCreate("SiegeStrike_TurnTurret");TriggerAddEventPlayerEffectUsed(trig,c_playerAny,"SiegeStrikeTurnSet");TriggerAddEventPlayerEffectUsed(trig,c_playerAny,"SiegeStrikeReturnSet");trig=TriggerCreate("SiegeStrike_OnDamage");TriggerAddEventPlayerEffectUsed(trig,c_playerAny,"SiegeStrikeAttackSet");}
1. Or just limit the rate of rotation the turret can turn at.
2. wtf??? Why would different morphs be needed for this issue?
3. Agreed, that is the least dupe intensive solution unless using catalog triggers. For that problem the data/trigger hybrid solution is the easiest.
4. Why not just use an actual damage effect?
If you look at the archangel battle from HOTS it is not hard to blend triggers and effects for unusual situations.
He did solved the issue but i do agree. It seemed he overly complicated the situation. Credits though for trying obviously. Im grateful anyway. Here i posted the latest version of the data way. I still haven't been able to get it to attack ground. Ive been studying your both ways the whole day. And ill definitely feel more safe doing it the data way but haven't got it to fire ground. I would also like it to attack using another persistent effect maybe? Rather than using a weapon? But where to put it? Should it be the first Set of the ability or should it come after the morph set?. Seems easier to level it also, this way i mean. Anyway you both been my heroes today lol. This is so tricky.
1. Or just limit the rate of rotation the turret can turn at.
2. wtf??? Why would different morphs be needed for this issue?
3. Agreed, that is the least dupe intensive solution unless using catalog triggers. For that problem the data/trigger hybrid solution is the easiest.
4. Why not just use an actual damage effect?
If you look at the archangel battle from HOTS it is not hard to blend triggers and effects for unusual situations.
1. He doesn't want unit targeting - he wants point targeting and no weapons involved. The example you gave him requires weapons/unit targeting - but if by all means - if that's what he wants, sure I've over complicated it. We have to go this extra mile of work-arounds because of the limitations.
EDIT: Ok this is my mistake, for some reason... the modify unit turret turn didn't initially transition smoothly when I first made the ability.. -_-;; So the scripts aren't necessary. But dam, I guess if anyone needs an overworked version for turret turning I guess you can use that rofl.
2. He didn't mention this in the thread, but in a PM he wanted this for Siege Breakers. He just used Siege Tanks as an example. I was trying to explain to him, that if he wants different types of Siege Tanks to be able to use this ability, you would use switch and issue different morphs depending on your unit type. In my updated map, it works on both Siege Tanks and Siege Breakers.
3. Yes you're right, if he has only one type of unit per player - CatRef changes would be the best. But just to be safe I added a switch, with multiple damage effects in there.
4. You definitely can, but let's say we have 30 different effect types to deal damage, apply buffs, etc.. They all use different validators and what not - you wouldn't want your effects to not show just because you forgot to include all of them would you? Better to have one dummy effect that is used to trigger all your actors rather than adding the whole tree. You would have to add the whole tree, to each actor triggered. In my map i have 5 damage effects, depending on per level. If I'm using CatRefs fine, we can just use the single damage effect used.
Also in my experience, behaviors/attribute bonuses lack conditions to provide dynamic damage modification - so I always have multiple dummy effects so I can calculate extra stuff during scripts on the fly. During the process, sometimes I want attacks to miss, not play any impact sounds. Maybe if there are multiple effects in there, I don't want some of them to show. At least this is my reasoning for dummy effects, but yes - you don't need them if your ability is super simple. However, most people are not like me - so maybe they won't need to do this. But just my bias.
Anyways, I've attached the latest version with faster morph speeds - I've explained in my PM how to do that as well.
Ive been working around them for some time now and i havent been able to solve this two abilities. I have been able to solve all the others i had i mind so far but this two have just impossible. So i decided to ask for help to those of you who know the data module upside down.
The first ability is: Adept - Phase Shift.
Now ive been trying and trying to duplicate this ability because i dont like altering the orignal ones plus i need to do levels witht his ability and i must be sure that i have full control of all the effects and behaviors, etc...So already saying that, i have noticed that i do not have control over all the effects, actors, behaviors of this ability. I havent been able to duplicate it entirely. So in this map you will see the unit ive been trying to use as the user of the ability with 2 abilities. The first one is the original ability and the second one is the one i was trying to create but wasnt able to do so.
The second ability is: Tank - Activate Siege Mode
I was trying to create an Effect - Target ability out of the Siege Mode Morph ability of the tank. I didnt wanted to use the morph ability because my idea is that the user wont be able to control wheter he sieges or unsiege. The idea is that the player presses the effect target ability triggering a cooldown on the ability . The player chooses a target and fires but for a period of time only or amount of times, then the tank morphs back to his original position on his own. This one i reallly havent been able either to build it.
Thanks.
nobody? :( hellouuuuuu is there anybody out there?
The problem with the editor is there is a lot of legacy stuff called phase shift that is from different abilities with the same name that was never implemented I assume the Psionic Transfer ability of the adept is meant.
The ability applies a Set that applies a Buff to the caster which is used to show a separate ability for cancelation. The buff has strange circular logic in that on removal or expiration it uses a Remove Behavior effect to try and remove itself for a second time!
The Set also uses a Create Unit effect that spawns the shade(s) at the caster and uses another Set on the created shades. The second set applies a Buff to the shades that makes them both passive and benign and supresses the Attack ability while making them move even faster. An Issue Order effect is also applied by the set to tell the shades to use the Move ability to the target point of the Create Unit effect. The set finally applies a timer Buff behaviour to the shades that requires the caster to still be alive and for the ability not to have the cancelation buff applied by the second ability.
On removal of the timer buff a Set is used to remove the buff on the caster and kill the shade using a Damage effect applied to the target of the effect used to apply the timer behaviour. If the timer buff time expires another Set is used which applies a set to remove disabling behaviours from other abilities, kills the shade using the same Damage effect, uses a Modify Unit effect to deselect the shades and select the caster, uses a second Modify Unit effect to copy up to 50 issued orders back onto the caster unit and finally teleports the caster to the target point of the shade timer expiration set using a Teleport effect.
The problem with your ability is twofold. First the Create Unit effect is bugged and not producing the selected unit. Second your Sentry Shade unit is broken. Make a new Create Unit effect from scratch to fix the first problem.
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
As for your tank ability try ordering the caster unit to siege and not the target.
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
Thanks for your reply. Ill be reading and deeply analyzing this asap. Then ill let you know how it went my friend.
Well i decided to work a bit on this annoying issue and following your recommendation i was able to use the effect - target ability. Now there are several issues remaining.
1.Tank doesnt morph back automatically.
2.Tank doesnt respond to my period modifications.
3.Tank doestn attack point even though i set all the target filters to Attack Target Point. Not even Target Unit/Point.
The tank is supposted to act similar to the way the thor responds to his barrage ability. You select target (point) then he morph and fires, and then he morphs back automatically, No with the levels i intend to modify the amount of shots or time done each time the player uses the ability.
I dunno what phase shift is, so I can't help you there.
But hopefully for the tank ability I have a starting point for you. My ability is a point target ability, that upon cast, morphs the Siege Tank and attacks the location X times, and returns it back to normal afterwards.
There are lots of solutions to this, but since the Siege Tank uses a turret and I'm not real good with them - I'm not going to use pure data for this. I'm going to stick to the default morph ability, add some of my own data tweaks, then finally put it together via scripts.
EDIT: I hate morphs... they can be very clunky if you're trying to benchmark rapid transitions back and forth, but since we don't have to do that for this kind of ability I think I will stick to it this time. Also morphs have problems with units that use plane pathing, and you try to use them on units created dynamically.
How I did this,
Basically, the script puts everything together. The first func is fired when the dummy set effect is used; You get x number of strike stacks and create a dummy unit at a target location. After the animation transition, we order our morphed unit to attack the dummy. Every time our weapon is fired, the tank loses one strike stack. Our second func is fired when a unit loses all strike stacks, it orders our Siege Tank to unsiege and removes the dummy target unit.
Some notes you should understand, if you want to export this ability.
Is it possible to do it using the Arclite Cannon Shock Set as part of the ability and not as a weapon? Units on the arcade game wont be using weapons. Anyway i sent u a PM.
Here is a data only option.
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
How can i make it attack points and not units? Also can i modify the amount of shots fired? Remember this should work as the Thor Barrage ability.
Regarding the ability made by msong, how would i be able to make this ability levelable. I would like the damage to increase by percentage/radius or maybe counts by each level. I have 5 levels per ability. I tried doing it on the triggers but it just won't work.
Well, I read your PM regarding this. Since I was kind of bored, I made a more polished version not using any weapons. Of course this means that I would have to turn the turret myself - and it's probably the hardest part, since manual turret rotation is extremely limited (especially clunky via actor messages); The rest of the ability.. was pretty self explanatory. If you didn't know some of these, I suggest you take a good look at some of them, explore the editor a bit more, google or search the mapster.
Some of the questions you are asking, require problem solving and work arounds - maybe next time you need to try harder or do something easier :P. I admit though, the smooth turret turning without weapons was a challenge for me. As far as the problem solving goes, here's how I did it.
The script for turning the turret.
@msong7229: Go
1. Or just limit the rate of rotation the turret can turn at.
2. wtf??? Why would different morphs be needed for this issue?
3. Agreed, that is the least dupe intensive solution unless using catalog triggers. For that problem the data/trigger hybrid solution is the easiest.
4. Why not just use an actual damage effect?
If you look at the archangel battle from HOTS it is not hard to blend triggers and effects for unusual situations.
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
He did solved the issue but i do agree. It seemed he overly complicated the situation. Credits though for trying obviously. Im grateful anyway. Here i posted the latest version of the data way. I still haven't been able to get it to attack ground. Ive been studying your both ways the whole day. And ill definitely feel more safe doing it the data way but haven't got it to fire ground. I would also like it to attack using another persistent effect maybe? Rather than using a weapon? But where to put it? Should it be the first Set of the ability or should it come after the morph set?. Seems easier to level it also, this way i mean. Anyway you both been my heroes today lol. This is so tricky.
1. He doesn't want unit targeting - he wants point targeting and no weapons involved. The example you gave him requires weapons/unit targeting - but if by all means - if that's what he wants, sure I've over complicated it. We have to go this extra mile of work-arounds because of the limitations.
EDIT: Ok this is my mistake, for some reason... the modify unit turret turn didn't initially transition smoothly when I first made the ability.. -_-;; So the scripts aren't necessary. But dam, I guess if anyone needs an overworked version for turret turning I guess you can use that rofl.
2. He didn't mention this in the thread, but in a PM he wanted this for Siege Breakers. He just used Siege Tanks as an example. I was trying to explain to him, that if he wants different types of Siege Tanks to be able to use this ability, you would use switch and issue different morphs depending on your unit type. In my updated map, it works on both Siege Tanks and Siege Breakers.
3. Yes you're right, if he has only one type of unit per player - CatRef changes would be the best. But just to be safe I added a switch, with multiple damage effects in there.
4. You definitely can, but let's say we have 30 different effect types to deal damage, apply buffs, etc.. They all use different validators and what not - you wouldn't want your effects to not show just because you forgot to include all of them would you? Better to have one dummy effect that is used to trigger all your actors rather than adding the whole tree. You would have to add the whole tree, to each actor triggered. In my map i have 5 damage effects, depending on per level. If I'm using CatRefs fine, we can just use the single damage effect used.
Also in my experience, behaviors/attribute bonuses lack conditions to provide dynamic damage modification - so I always have multiple dummy effects so I can calculate extra stuff during scripts on the fly. During the process, sometimes I want attacks to miss, not play any impact sounds. Maybe if there are multiple effects in there, I don't want some of them to show. At least this is my reasoning for dummy effects, but yes - you don't need them if your ability is super simple. However, most people are not like me - so maybe they won't need to do this. But just my bias.
Anyways, I've attached the latest version with faster morph speeds - I've explained in my PM how to do that as well.