I wanted to convert the medic beam so that it would have the start, stop, and channel sounds, as well as all associated models. But all this was for aesthetics only, meaning it won't heal. I instead made a custom effect and action actor that causes the beam, one launch sound, and the "plus" impact model. Thanks for your help, though.
I need to turn the Heal ability, be it Medic or Medivac, into a universally usable (meaning any unit could have it) ability that will not auto-cast, and won't actually heal. It is for aesthetics only. As it is, I took the Create Healer effect and took out the energy drain AND the health per tick. Those are set to zero. That didn't work. So I proceeded to remove every validator I could find in the ability itself. Nothing. I know a unit won't cast an ability it doesn't have, but that's not the case. I have already added it. Can anyone help? Or will I have to resort to my lesser method of remaking a simple beam with a sound and impact model?
For everyone interested in trying a new mod before everyone else, Smart Cookie has need of your services. We need 7 testers on the US servers to help find bugs, glitches, and exploits in a turn-based environment. Send PM's with the subject "TBS Testing" to me, who will be hosting the sessions. Depending on the number of people interested, testing may be on a come-and-go basis, or a first come first serve basis. Most testing will occur between 11:00 PM and 2:00 AM Central time.
EDIT: Sorry about the block triggers. I guess sometimes these posts dont like the enter key XD.
To help with your problem, I must ask a few questions myself. What is this dialog supposed to do? Does it simply keep track of a selected unit's stats? If so, you're looking at it a bit wrong. Make an initialization trigger to create and set all bars to max, and hide the dialog. (Each bar should have two images: a foreground and a background.) Make a var named Selected unit (array of size = number of players). Make another trig as follows:
Events
Any unit is selected by player Any Player
Conditions
Owner of (Triggering Unit) = Triggering Player
Variables
Actions
Set Selected Unit[(Triggering Player - 1)] = Triggering Unit
Set HPBarFront size to (Convert Real to Int(<your max bar width> * (Selected Unit[(Triggering Player - 1)] LifePercent / 100) Current), <your bar height>)
Set ShieldsBarFront size to (Convert Real to Int(<your max bar width> * (Selected Unit[(Triggering Player - 1)] ShieldsPercent / 100) Current), <your bar height>) for (Conver player (Triggering Player) to player group
Show HPBarFront for (Conver player (Triggering Player) to player group
Show ShieldsBarFront for (Conver player (Triggering Player) to player group
Make another trig as follows:
Events
Any unit takes damage
Conditions
(Triggering Unit) is in Selected Units for player (Owner of (Triggering Unit)) = true
Variables
Actions
Set HPBarFront size to (Convert Real to Int(<your max bar width> * (Selected Unit[(Owner of (Triggering Unit) - 1)] LifePercent / 100) Current), <your bar height>)
Set ShieldsBarFront size to (Convert Real to Int(<your max bar width> * (Selected Unit[(Owner of (Triggering Unit) - 1)] ShieldsPercent / 100) Current), <your bar height>)
Make another trigger a follows:
Events
Any unit is Deselected by player Any Player
Conditions
Owner of (Triggering Unit) = Triggering Player
Variables
Actions
Set Selected Unit[(Triggering Player - 1)] = No Unit
Hide HPBarFront for (Convert player (Triggering Player) to player group)
Hide ShieldsBarFront for (Convert player (Triggering Player) to player group)
This will update, in real time, each player's dialogs based on which unit they have selected, assuming each player can only select one unit. Otherwise it will only update for the last selected unit in the group. As for that problem about the very small sliver of bar remaining at 0, make a trigger as follows:
Events
Every 0.25 seconds
Conditions
Variables
Int = 0 <Integer>
Actions
For each integer Int from 0 to <number of players> Do Actions
Actions
If (Conditions) then Do (Actions)
If
Selected Unit[Int] != No Unit
Then
If (Conditions) the Do (Actions)
If
Selected Unit[Int] ShieldsPercent (Current) = 0
Then
Hide ShieldsBarFront for player (Int + 1)
As some of you may have noitced, Simply hitting the Test Document button may allow you to test it, but you are not logged in and, therefore, can't see the actual BNet button. Those of you who use .sc2layout files to move the frame behind it may eventually find that moving that frame doesn't move the button. There is an action in the trigger editor called "Set BattleNet Button Position". This is what moves the button, but how are you to test its positioning if hitting that test button doesn't log you in? Most people posed with this question would think they must publish their map over and over just to test eery little coordinate change. THERE'S A BETTER WAY!!! Here's how:
1. Hit Test Document with StarCraft II CLOSED. Doing so with SC2 open will cause SC2 to not open the test document created by the editor.
2. Quit the test map once it loads, where you wil be returned to the login screen.
3. Log in under your account.
4. Alt-Tab out and go to the editor and hit Test Document again.
These instructions will allow you to test documents while signed in so you can find out where that BNet button is upon setting a new position. Note the action's coordinate parameters are relative to the bottom right corner.
I found something about unit count requirements a moment ago, though I don't quite know how they work. So I'm thinking 2 requirements: Unit Count of Tech Center 1 > 0 and Unit Count of Tech Center 2 > 0. Then for the first 4 buildings' build abilities, put both requirements in under an OR, then the next two will only use the second requirement.
I wish to make, say a Wraith a ground unit (as if it were skimming the surface). How can I accomplish this without duplicating a ground unit and changing the model? I understand that this is most likely a n00by question, but I can't find out how.
Effect. PunisherGrenadesLM.Start
At Caster
IsStatus WeaponNext 2
StatusSet WeaponNext 0
Effect.PunisherGrenadesLM.Start
At Caster
StatusIncrement WeaponNext
This still fires since Punisher GrenadesLM is still fired by my switch effect. So if this is what determines the attach point, then something is broke...
Edit: Here's what's going on. The weapon calls Launch Missile, which used to call the set effect upon impact. I took that out. My switch effect only calls the launch missile if the caster is a marauder. So both the weapon and my switch effect call the same launch missile effect. Still, the missile will launch correctly if the unit attacks, but not so if the unit uses my ability (firing the switch and in turn the launch missile effect.) I didn't change a thing about the actors since they all fire once the launch missile effect starts.
I am attempting to create an ability that will replicate the weapon of whatever the casting unit is. Obviously, I used a switch effect for the ability. For the Marauder, I switched the actor events for the main unit actor so that the attack animations fire upon this new ability. That works correctly. I then went to the attack actor and did the same, but since other units' attack actors will fire from the same effect, I added a unit type validator to test whether the casting unit is a marauder. I'm sure this works fine too. Finally, I added a case to the ability's effect that used this validator to launch the Punisher Grenade. This is where things are messing up. The grenade will only launch from one side. I noticed that there is some sort of "method", as the attack actor calls it, that determines the launch attachment point. What do I need to change here so that the grenade launches correctly?
UPDATE: I backed up so the Marauder was like it originally was, since the Launch Missile effect is called by both the weapon, and the universal switch effect. So now the only change is the effect chain started by Launch Missile deals no damage. Still, the missile will not launch depending on which animation is playing. I have come to the conclusion that the Punisher Grenades weapon has something to do with it. But what!?!?
0
@DrSuperEvil:
I wanted to convert the medic beam so that it would have the start, stop, and channel sounds, as well as all associated models. But all this was for aesthetics only, meaning it won't heal. I instead made a custom effect and action actor that causes the beam, one launch sound, and the "plus" impact model. Thanks for your help, though.
0
I need to turn the Heal ability, be it Medic or Medivac, into a universally usable (meaning any unit could have it) ability that will not auto-cast, and won't actually heal. It is for aesthetics only. As it is, I took the Create Healer effect and took out the energy drain AND the health per tick. Those are set to zero. That didn't work. So I proceeded to remove every validator I could find in the ability itself. Nothing. I know a unit won't cast an ability it doesn't have, but that's not the case. I have already added it. Can anyone help? Or will I have to resort to my lesser method of remaking a simple beam with a sound and impact model?
0
For everyone interested in trying a new mod before everyone else, Smart Cookie has need of your services. We need 7 testers on the US servers to help find bugs, glitches, and exploits in a turn-based environment. Send PM's with the subject "TBS Testing" to me, who will be hosting the sessions. Depending on the number of people interested, testing may be on a come-and-go basis, or a first come first serve basis. Most testing will occur between 11:00 PM and 2:00 AM Central time.
0
@kottonmouthx8: Go
It is a simple fix. Simply add this to your current updating trigger:
If <Selected Unit> ShieldsPercent Current = 0 Then Hide ShieldsBarFront for player (Owner of <Selected Unit>) Else
This should hide the bar whenever whatever selected unit runs out of shields.
0
Will Blizzard PLEASE release StarTools with HoTS?
0
EDIT: Sorry about the block triggers. I guess sometimes these posts dont like the enter key XD. To help with your problem, I must ask a few questions myself. What is this dialog supposed to do? Does it simply keep track of a selected unit's stats? If so, you're looking at it a bit wrong. Make an initialization trigger to create and set all bars to max, and hide the dialog. (Each bar should have two images: a foreground and a background.) Make a var named Selected unit (array of size = number of players). Make another trig as follows:
Events Any unit is selected by player Any Player
Conditions Owner of (Triggering Unit) = Triggering Player Variables Actions Set Selected Unit[(Triggering Player - 1)] = Triggering Unit Set HPBarFront size to (Convert Real to Int(<your max bar width> * (Selected Unit[(Triggering Player - 1)] LifePercent / 100) Current), <your bar height>) Set ShieldsBarFront size to (Convert Real to Int(<your max bar width> * (Selected Unit[(Triggering Player - 1)] ShieldsPercent / 100) Current), <your bar height>) for (Conver player (Triggering Player) to player group Show HPBarFront for (Conver player (Triggering Player) to player group Show ShieldsBarFront for (Conver player (Triggering Player) to player group
Make another trig as follows:
Events Any unit takes damage
Conditions (Triggering Unit) is in Selected Units for player (Owner of (Triggering Unit)) = true Variables Actions Set HPBarFront size to (Convert Real to Int(<your max bar width> * (Selected Unit[(Owner of (Triggering Unit) - 1)] LifePercent / 100) Current), <your bar height>) Set ShieldsBarFront size to (Convert Real to Int(<your max bar width> * (Selected Unit[(Owner of (Triggering Unit) - 1)] ShieldsPercent / 100) Current), <your bar height>)
Make another trigger a follows:
Events Any unit is Deselected by player Any Player Conditions Owner of (Triggering Unit) = Triggering Player Variables Actions Set Selected Unit[(Triggering Player - 1)] = No Unit Hide HPBarFront for (Convert player (Triggering Player) to player group) Hide ShieldsBarFront for (Convert player (Triggering Player) to player group)
This will update, in real time, each player's dialogs based on which unit they have selected, assuming each player can only select one unit. Otherwise it will only update for the last selected unit in the group. As for that problem about the very small sliver of bar remaining at 0, make a trigger as follows:
Events Every 0.25 seconds Conditions Variables Int = 0 <Integer> Actions For each integer Int from 0 to <number of players> Do Actions Actions If (Conditions) then Do (Actions) If Selected Unit[Int] != No Unit Then If (Conditions) the Do (Actions) If Selected Unit[Int] ShieldsPercent (Current) = 0 Then Hide ShieldsBarFront for player (Int + 1)
0
As some of you may have noitced, Simply hitting the Test Document button may allow you to test it, but you are not logged in and, therefore, can't see the actual BNet button. Those of you who use .sc2layout files to move the frame behind it may eventually find that moving that frame doesn't move the button. There is an action in the trigger editor called "Set BattleNet Button Position". This is what moves the button, but how are you to test its positioning if hitting that test button doesn't log you in? Most people posed with this question would think they must publish their map over and over just to test eery little coordinate change. THERE'S A BETTER WAY!!! Here's how:
1. Hit Test Document with StarCraft II CLOSED. Doing so with SC2 open will cause SC2 to not open the test document created by the editor. 2. Quit the test map once it loads, where you wil be returned to the login screen. 3. Log in under your account. 4. Alt-Tab out and go to the editor and hit Test Document again.
These instructions will allow you to test documents while signed in so you can find out where that BNet button is upon setting a new position. Note the action's coordinate parameters are relative to the bottom right corner.
0
@Helral: Go
Thank you, O great sage of the .sc2layout files. I had long searched but my arduous journey proved to be in vain... until now. XD
0
Also, this is what I mean about the time panel:
The panel in the red box should either be in the green box or disappear.
0
For some reason, I just can't seem to move the time panel and the Battle.net button. Here's my sc2layout:
<Frame type="Frame" name="GameUI/UIContainer/FullscreenUpperContainer" file="GameUI">
<Frame type="TimePanel" name="TimePanel" file="GameUI">
<Anchor side="Left" relative="$parent" pos="Min" offset="20"/>
<Anchor side="Bottom" relative="$parent" pos="Max" offset="-453"/>
<Anchor side="Top" relative="$this" pos="Min" offset="0"/>
<Anchor side="Right" relative="$this" pos="Max" offset="0"/>
</Frame>
</Frame>
<Frame type="Frame" name="GameUI/UIContainer/ConsoleUIContainer" file="GameUI">
<Frame type="Image" name="BattleNetButtonMicrophoneFrameImage" file="GameUI">
<Anchor side="Left" relative="$parent" pos="Min" offset="150"/>
<Anchor side="Bottom" relative="$parent" pos="Max" offset="-453"/>
<Anchor side="Top" relative="$this" pos="Min" offset="0"/>
<Anchor side="Right" relative="$this" pos="Max" offset="0"/>
</Frame>
</Frame>
</Desc>
This is in conjunction with moving and re-sizing the mini-map. That I have no problems with.
EDIT: I fixed the BNet panel.
0
@DrSuperEvil: Go
Thank you. I knew I was missing something. All I had was the plane array and collide.
0
I found something about unit count requirements a moment ago, though I don't quite know how they work. So I'm thinking 2 requirements: Unit Count of Tech Center 1 > 0 and Unit Count of Tech Center 2 > 0. Then for the first 4 buildings' build abilities, put both requirements in under an OR, then the next two will only use the second requirement.
0
I wish to make, say a Wraith a ground unit (as if it were skimming the surface). How can I accomplish this without duplicating a ground unit and changing the model? I understand that this is most likely a n00by question, but I can't find out how.
0
@DrSuperEvil:
I know the Marauder actor uses Status set:
Effect. PunisherGrenadesLM.Start
At Caster
IsStatus WeaponNext 2
StatusSet WeaponNext 0
Effect.PunisherGrenadesLM.Start
At Caster
StatusIncrement WeaponNext
This still fires since Punisher GrenadesLM is still fired by my switch effect. So if this is what determines the attach point, then something is broke...
Edit: Here's what's going on. The weapon calls Launch Missile, which used to call the set effect upon impact. I took that out. My switch effect only calls the launch missile if the caster is a marauder. So both the weapon and my switch effect call the same launch missile effect. Still, the missile will launch correctly if the unit attacks, but not so if the unit uses my ability (firing the switch and in turn the launch missile effect.) I didn't change a thing about the actors since they all fire once the launch missile effect starts.
0
I am attempting to create an ability that will replicate the weapon of whatever the casting unit is. Obviously, I used a switch effect for the ability. For the Marauder, I switched the actor events for the main unit actor so that the attack animations fire upon this new ability. That works correctly. I then went to the attack actor and did the same, but since other units' attack actors will fire from the same effect, I added a unit type validator to test whether the casting unit is a marauder. I'm sure this works fine too. Finally, I added a case to the ability's effect that used this validator to launch the Punisher Grenade. This is where things are messing up. The grenade will only launch from one side. I noticed that there is some sort of "method", as the attack actor calls it, that determines the launch attachment point. What do I need to change here so that the grenade launches correctly?
UPDATE: I backed up so the Marauder was like it originally was, since the Launch Missile effect is called by both the weapon, and the universal switch effect. So now the only change is the effect chain started by Launch Missile deals no damage. Still, the missile will not launch depending on which animation is playing. I have come to the conclusion that the Punisher Grenades weapon has something to do with it. But what!?!?