I'm getting hung up on figuring out how to have upgrades scale up the size of an effect's model. I have an ability which launches a missile at a given location. I put a placeholder unit at the destination which is basically a circle to determine how big of a radius it affects when it impacts. I have the player able to upgrade their abilities, which in this case upgrades stun duration and the size of the AoE.
Under upgrades I am unable to do a scaling on the model directly, so I'm stuck with a placeholder unit which isn't matching the AoE size. The closest I can see is adjusting the Scale on the Actor, but I've never been successful on having the Actor being scaled affecting its actual size. If there something I'm overlooking or any suggestions on what I can do? I really don't want to make 10 abilities and have triggers deal with the correct ability ;(.
look at the campaighn dark protoss stuff. You find they use a term called Validate Unit. This can then use a Combine or Player Requirement validator that then checks for certain upgrades and not others.
Have events like this for each upgrade.
Actor Creation => Validate Unit => Set Scale
Also are you using a Splat actor or a Model type actor. If you are using the latter which is easier to manipulate you must then use a method similar to the colossus tree killer to tint the units within the radius.
@DrSuperEvil: Go
Well, using validator to check for the upgrade level (or even just the upgrade itself) doesn't seem possible.. all I get under a Player Requirement validator is to check for if that have certain requirements. As of now I haven't done very much testing other than re-checking what you listed. I did try and look under Player Requirement prior and had this same issue.
Although I seem to still be a bit stuck, I may be able to do a type of workaround by having 10 Requirements, with them doing the work that an Upgrade would have. I haven't thought too far ahead to see if my approach is incorrect or not optimal, but as of now it is the only way I believe may work that I know of. I am using a Generic model with its parent being CModel. Everything is default except for the Art:Model itself (which is XelNagaShieldDome)
I honestly am glad to get some input and hopefully there isn't a method too painful as this is one of the last hurdles before I just have to go through the tedious processes.
Edit
I do want to note that there are 12 units which have a minimum of 1 ability which will need me to scale an ability model in some way. After a bit of testing, I do think what you mentioned is possible to try and do a validator/requirement setup, but it seems very tedious to have about 120 validators/requirements just to satisfy what is needed.
Under upgrades, I'm able to increase the Range, Stun Duration, Movement Speed, AoE Range, etc. Under Type Actor inside of there they do have a Scale which is what I would prefer to use, but the actor never changes in there. Previously I found that increasing the scale by 0.09 for each range increase was the correct size, but putting the operation to add 0.09 scale doesn't increase the model. Even doing absurd numbers to test like adding 5 or setting to 10 doesn't work.
Is there something in the actor or model I need to add/change/delete to be able to allow the upgrades to control the sizing?
Just look how a unit like the campaign zealot does it for the texture swaps. Under the events for the actor you can add a term that uses validators to determine if an event action occurs (Very useful!).
Make a hidden Model actor created as an attachment to all units that sends the Set Scale effect action to the _Host target.
Each model scales according to the individual model. Not all are equal scale increase per numeric integer.
Rollback Post to RevisionRollBack
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
@DrSuperEvil: Go
I sincerely appreciate all the input you've given, but I feel as though some of what I said may not be very clear. I looked into the Campaign Zealot and the way it knows to swap to a Dark Zealot or not. To my understanding this looks like it is more of a Boolean, if they have the upgrade then change over, else don't. I believe that method would work if I had the scale set a 1, and if they had the upgrade set it to 1.5 and be done.
I need 10 levels of scaling and I'm not sure how to make that happen using the Actor Events like the ones listed. Validators, to my knowledge, only check to see if it conditions leave it true or false. Using what you said I want to believe the method that I'd be stuck with is making 10 validators and each one basically checks if the upgrades are at 1, if so set scale to 1.5. Then the event under that would check if it is at 2, and if so set it to a scale of 2. If it's at 3, set it to 2.5. Etc.
Actor Events aren't exactly my strong point, but I do understand them fairly decently. I will continue to go through what you listed in case I am missing something obvious.
Edit: Which validator setup would I use have it check if a player has upgrades at a certain level? It looks to my like I need to use requirements as well to check for those ;\. Also, my upgrades are currently applied to the player rather than the units. Would that cause any issue with what you've said?
Yeah, it's a little wordy on how the map is supposed to work xD. I'll try my best to explain things with how the units are and how the abilities are improving along the way.
There are 12 units to pick from and each unit has 3 abilities. There are no relations or direct similarities between units and some abilities do use the same models, yet most of them won't. Each unit has its own veterancy of 100 levels, completely independent of the others. Think of it as a hero type system where their leveling is saved.
Now the way abilities improve are on set intervals which are different from the rest. So ability 1 ranks up at 5, 20, 25, 40, 45, 60, 65, 80, 85, and 100. Ability 2 ranks up at 10, 20, 30, 40, 50, 60, 70, 80, 90, and 100. Finally, ability 3 ranks up at 15, 20, 35, 40, 55, 60, 75, 80, 95, and 100. It's setup like this for a more gradual improvements on skills as they rank up.
The way I had the skills working originally was to give every unit all 10 versions of each ability and have triggers determine which ability is cast based on their veterancy. This was the worst possible process to do. I then adjusted over to upgrades and the way I'm applying them now is at the start of them map when they choose a unit, I'll check that units veterancy level and assign upgrades to each ability based on that. So if they're level 33, I'll set ability 1 to have 3 upgrades, ability 2 to have 3 upgrades, and ability 3 will have only 2 upgrades.
If their veterancy improves as they're playing, it'll increase accordingly. Basically I think the confusion is that it isn't just 1 upgrade which improves all 3 abilities. It's a separate upgrade made for each individual units ability, for each unit itself (3 abilities, 12 units, 36 upgrades). Blah, so much typing and yet I still know it is confusing xD. Is there another way that would make it easier to have the upgrades work? I will likely start to work on validators and requirements and see if I can get the basics down. I don't mind tedious work, but the most professional/optimal way is always desired.
@DrSuperEvil: Go
Hrm. I'm not completely sure if placeholder units are treated any differently from normal units, but if in triggers I can just check for when that specific unit is created and then scale to the correct percentage based on their upgrades that wouldn't be too bad. Just a little frustrating that Blizzard didn't allow upgrade to scale the models directly. It's also a little sad that scaling the Art doesn't seem to have any effect on what it looks like. What does scaling Art do if it doesn't scale up the model as well? =\
Edit:
As of now I'm not entirely sure changing the scale via triggers is possible with placeholders. I have an event checking for that ability creating a unit.
I set the upgrade total equal to the total upgrades for that ability and run a switch which scales up the last created unit. I'm not seeing any scaling. Is there a different way to scale or different way to select that placeholder'd unit to scale up?
Edit 2:
If I use Created Unit instead of Last Created Unit I scale up the bullet, but the placeholder is left alone. I'll see if I'm referencing the right unit, but the bullet needs to not change in size at all. ;\
Edit 3:
I honestly don't think trigger scaling is an option. The ability does an effect, and the effect is what ultimately creates the placeholder. Unless I can scale up the created unit from an effect, I don't see it as being possible. My only other option may be to remove the placeholder and instead let the trigger make the placeholder at the location instead. Even then though I don't know for sure if I can scale up an effect created at a point. I may have to use hidden units which come with the effect. Blah, so much work for something so small >.<.
Edit 4:
I ran a trigger which scaled up every unit that enters the map as a test and the placeholder was unaffected by that scaling. My assumption that placeholder units aren't real units seems correct. I'll have to mess around with other options.
Edit 5:
Writing a story here xD. I think I know of a possible method. I may be able to make 10 launch missile abilities which all do the same thing. The placeholder unit will be the 10 size variations though. My only OCD concern is I have to add all 10 abilities to the unit to use them, which is tedious. I'll hopefully be able to start working on the map more considering I've spend the past few days on and off trying to work this out in a better manor ;(.
Well. I ended up having to do a small workaround because I could, in no way, find out how to make an actor properly check the upgrade count. I basically made a behavior which is used as a running count on how many upgrades that player has. Before I have the ability activate (because all abilities are ran using triggers, not the action card) I make sure to apply X amount of behavior stacks to the players unit.
Having that value allowed me to make a validator which compared behavior count. I made 11 behavior counts, one for each rank of upgrade (Rank 0 is base, but I still decided to put it in). In my actor events I had on Actor Creation it would ValidateUnit each of my 11 validators. Since they cannot have two validators true at the same time, I just have the scaling hardcoded into there.
In the end it still isn't as optimal as I hoped, but I am less bothered since I can use those 11 validators for all the units. Life would have been easier if Upgrades could just affect the model size >.<.
Well, I appreciate all of your support and assistance and I wouldn't be surprised if I come back with some of my more complex issues later xD.
Edit: I do want to note that I didn't test this on the placeholder unit yet. I did a messy copy/pasta of abilities to get that one right. This is working on another unit ;.
Hello,
I'm getting hung up on figuring out how to have upgrades scale up the size of an effect's model. I have an ability which launches a missile at a given location. I put a placeholder unit at the destination which is basically a circle to determine how big of a radius it affects when it impacts. I have the player able to upgrade their abilities, which in this case upgrades stun duration and the size of the AoE.
Under upgrades I am unable to do a scaling on the model directly, so I'm stuck with a placeholder unit which isn't matching the AoE size. The closest I can see is adjusting the Scale on the Actor, but I've never been successful on having the Actor being scaled affecting its actual size. If there something I'm overlooking or any suggestions on what I can do? I really don't want to make 10 abilities and have triggers deal with the correct ability ;(.
Any help is appreciated!
look at the campaighn dark protoss stuff. You find they use a term called Validate Unit. This can then use a Combine or Player Requirement validator that then checks for certain upgrades and not others.
Have events like this for each upgrade.
Actor Creation => Validate Unit => Set Scale
Also are you using a Splat actor or a Model type actor. If you are using the latter which is easier to manipulate you must then use a method similar to the colossus tree killer to tint the units within the radius.
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 Well, using validator to check for the upgrade level (or even just the upgrade itself) doesn't seem possible.. all I get under a Player Requirement validator is to check for if that have certain requirements. As of now I haven't done very much testing other than re-checking what you listed. I did try and look under Player Requirement prior and had this same issue.
Although I seem to still be a bit stuck, I may be able to do a type of workaround by having 10 Requirements, with them doing the work that an Upgrade would have. I haven't thought too far ahead to see if my approach is incorrect or not optimal, but as of now it is the only way I believe may work that I know of. I am using a Generic model with its parent being CModel. Everything is default except for the Art:Model itself (which is XelNagaShieldDome)
I honestly am glad to get some input and hopefully there isn't a method too painful as this is one of the last hurdles before I just have to go through the tedious processes.
Edit I do want to note that there are 12 units which have a minimum of 1 ability which will need me to scale an ability model in some way. After a bit of testing, I do think what you mentioned is possible to try and do a validator/requirement setup, but it seems very tedious to have about 120 validators/requirements just to satisfy what is needed.
Under upgrades, I'm able to increase the Range, Stun Duration, Movement Speed, AoE Range, etc. Under Type Actor inside of there they do have a Scale which is what I would prefer to use, but the actor never changes in there. Previously I found that increasing the scale by 0.09 for each range increase was the correct size, but putting the operation to add 0.09 scale doesn't increase the model. Even doing absurd numbers to test like adding 5 or setting to 10 doesn't work.
Is there something in the actor or model I need to add/change/delete to be able to allow the upgrades to control the sizing?
Just look how a unit like the campaign zealot does it for the texture swaps. Under the events for the actor you can add a term that uses validators to determine if an event action occurs (Very useful!).
Make a hidden Model actor created as an attachment to all units that sends the Set Scale effect action to the _Host target.
Each model scales according to the individual model. Not all are equal scale increase per numeric integer.
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 I sincerely appreciate all the input you've given, but I feel as though some of what I said may not be very clear. I looked into the Campaign Zealot and the way it knows to swap to a Dark Zealot or not. To my understanding this looks like it is more of a Boolean, if they have the upgrade then change over, else don't. I believe that method would work if I had the scale set a 1, and if they had the upgrade set it to 1.5 and be done.
I need 10 levels of scaling and I'm not sure how to make that happen using the Actor Events like the ones listed. Validators, to my knowledge, only check to see if it conditions leave it true or false. Using what you said I want to believe the method that I'd be stuck with is making 10 validators and each one basically checks if the upgrades are at 1, if so set scale to 1.5. Then the event under that would check if it is at 2, and if so set it to a scale of 2. If it's at 3, set it to 2.5. Etc.
Actor Events aren't exactly my strong point, but I do understand them fairly decently. I will continue to go through what you listed in case I am missing something obvious.
Edit: Which validator setup would I use have it check if a player has upgrades at a certain level? It looks to my like I need to use requirements as well to check for those ;\. Also, my upgrades are currently applied to the player rather than the units. Would that cause any issue with what you've said?
Then you need 10 validators and requirements. One for each level.
Thought you were using player wide upgrades to upgrade them. If not how are you applying the upgrades?
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
Yeah, it's a little wordy on how the map is supposed to work xD. I'll try my best to explain things with how the units are and how the abilities are improving along the way.
There are 12 units to pick from and each unit has 3 abilities. There are no relations or direct similarities between units and some abilities do use the same models, yet most of them won't. Each unit has its own veterancy of 100 levels, completely independent of the others. Think of it as a hero type system where their leveling is saved.
Now the way abilities improve are on set intervals which are different from the rest. So ability 1 ranks up at 5, 20, 25, 40, 45, 60, 65, 80, 85, and 100. Ability 2 ranks up at 10, 20, 30, 40, 50, 60, 70, 80, 90, and 100. Finally, ability 3 ranks up at 15, 20, 35, 40, 55, 60, 75, 80, 95, and 100. It's setup like this for a more gradual improvements on skills as they rank up.
The way I had the skills working originally was to give every unit all 10 versions of each ability and have triggers determine which ability is cast based on their veterancy. This was the worst possible process to do. I then adjusted over to upgrades and the way I'm applying them now is at the start of them map when they choose a unit, I'll check that units veterancy level and assign upgrades to each ability based on that. So if they're level 33, I'll set ability 1 to have 3 upgrades, ability 2 to have 3 upgrades, and ability 3 will have only 2 upgrades.
If their veterancy improves as they're playing, it'll increase accordingly. Basically I think the confusion is that it isn't just 1 upgrade which improves all 3 abilities. It's a separate upgrade made for each individual units ability, for each unit itself (3 abilities, 12 units, 36 upgrades). Blah, so much typing and yet I still know it is confusing xD. Is there another way that would make it easier to have the upgrades work? I will likely start to work on validators and requirements and see if I can get the basics down. I don't mind tedious work, but the most professional/optimal way is always desired.
I would just set the scale using triggers as that would be easier to integrate into your system.
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 Hrm. I'm not completely sure if placeholder units are treated any differently from normal units, but if in triggers I can just check for when that specific unit is created and then scale to the correct percentage based on their upgrades that wouldn't be too bad. Just a little frustrating that Blizzard didn't allow upgrade to scale the models directly. It's also a little sad that scaling the Art doesn't seem to have any effect on what it looks like. What does scaling Art do if it doesn't scale up the model as well? =\
Edit:
As of now I'm not entirely sure changing the scale via triggers is possible with placeholders. I have an event checking for that ability creating a unit.
I set the upgrade total equal to the total upgrades for that ability and run a switch which scales up the last created unit. I'm not seeing any scaling. Is there a different way to scale or different way to select that placeholder'd unit to scale up?
Edit 2:
If I use Created Unit instead of Last Created Unit I scale up the bullet, but the placeholder is left alone. I'll see if I'm referencing the right unit, but the bullet needs to not change in size at all. ;\
Edit 3:
I honestly don't think trigger scaling is an option. The ability does an effect, and the effect is what ultimately creates the placeholder. Unless I can scale up the created unit from an effect, I don't see it as being possible. My only other option may be to remove the placeholder and instead let the trigger make the placeholder at the location instead. Even then though I don't know for sure if I can scale up an effect created at a point. I may have to use hidden units which come with the effect. Blah, so much work for something so small >.<.
Edit 4:
I ran a trigger which scaled up every unit that enters the map as a test and the placeholder was unaffected by that scaling. My assumption that placeholder units aren't real units seems correct. I'll have to mess around with other options.
Edit 5:
Writing a story here xD. I think I know of a possible method. I may be able to make 10 launch missile abilities which all do the same thing. The placeholder unit will be the 10 size variations though. My only OCD concern is I have to add all 10 abilities to the unit to use them, which is tedious. I'll hopefully be able to start working on the map more considering I've spend the past few days on and off trying to work this out in a better manor ;(.
Try asking in the trigger forum if there is a better method?
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
Well. I ended up having to do a small workaround because I could, in no way, find out how to make an actor properly check the upgrade count. I basically made a behavior which is used as a running count on how many upgrades that player has. Before I have the ability activate (because all abilities are ran using triggers, not the action card) I make sure to apply X amount of behavior stacks to the players unit.
Having that value allowed me to make a validator which compared behavior count. I made 11 behavior counts, one for each rank of upgrade (Rank 0 is base, but I still decided to put it in). In my actor events I had on Actor Creation it would ValidateUnit each of my 11 validators. Since they cannot have two validators true at the same time, I just have the scaling hardcoded into there.
In the end it still isn't as optimal as I hoped, but I am less bothered since I can use those 11 validators for all the units. Life would have been easier if Upgrades could just affect the model size >.<.
Well, I appreciate all of your support and assistance and I wouldn't be surprised if I come back with some of my more complex issues later xD.
Edit: I do want to note that I didn't test this on the placeholder unit yet. I did a messy copy/pasta of abilities to get that one right. This is working on another unit ;.