Some basic questions

Kazuga

Let the game begin...
Reaction score
110
Ok got some smaller problems that I need help with, and I would love if you could take a small amount of your time and help me solve them. <3

1: In the trigger editor, where can I find the "Unit - Damage unit x amount"? Can't seem to find neither that nor a way to lower/increase a units current health.

2: In the trigger editor, I would in the beginning of my map create a certain unit for all active players at the position of certain structure, all players have this structure and only one of them, but in an attempt to loop this I can't seem to figure the "Player Number" part that refers to the looped player.

3: In the warcraft 3 editor there is in the main window to the left where you choose what to put out in unit/terrain editor etc, a small window which displays the model of the current selected doodad/unit/effect, is there any such thing in the SC2 editor? (It's kind of hard to pick out what effects and units to use when you can't see them. :))

That's all for now, I think... Thank you for your time and hope you can help me. :thup:
 

The Undaddy

Creating with the power of rage
Reaction score
55
1. You can't - you will have to create a function to do it. I know N(O.O)B has posted one in one of the threads here, I'll quote him if I find it.

2.
Trigger:
  • Pick Each Unit In Unit Group
    • Unit Group: Units In Region Matching Condition
      • Unit Type: Unit type of the structure
      • Region: Entire Map
      • Player: counter &lt;-- where counter is the integer variable you are using for the loop
      • Unit Filter: Excluded: Missile, Dead, Hidden
      • Count: Any Amount


3.I think that is non-existent too.
 

Flare

Stops copies me!
Reaction score
662
1: In the trigger editor, where can I find the "Unit - Damage unit x amount"? Can't seem to find neither that nor a way to lower/increase a units current health.
It must be done via Effects - there is an action (under Environment) called Create Effect on Unit (From Unit).

What you can do with that to execute the desired damage would be have 3 (more or less as needed) Damage Effects that do a varying amount of damage (incrementing by *10 for each one, so Damage Effect (1) will do 1 damage, Damage Effect (2) will do 10, and (3) will do 100)

From there, just calculate the amount of 1's, 10's and 100's (and so on) required to execute to deal the amount of damage you want e.g. divide DamageValue by 100 and convert the result to an integer (to remove the decimal component) to get the number of times to execute Damage Effect (3), divide DamageValue Mod100 by 10 to get the number of times to execute Damage Effect (2), and finally do DamageValue Mod10 (assuming SC2 has a modulo function) to find the number of times to execute Damage Effect (1)

I don't have access to the editor at the moment, but it might be a good idea to save this as an Action Definition (I think that's what it's called) to allow you to create a function designed specifically for dealing damage... at least, I think that's what Action Definitions are supposed to do, I didn't spend too much time looking at them ;)

EDIT: Untested, but I think it should work
Trigger:
  • Damage Unit
    • Options: Action
    • Return Type: (None)
    • Parameters
      • Source = No Unit &lt;Unit&gt;
      • Target = No Unit &lt;Unit&gt;
      • Amount = 0 &lt;Integer&gt;
    • Grammar Text: Cause Source to deal Amount damage to Target
    • Hint Text: Allows for dealing damage with a single function
    • Custom Script Code
    • Local Variables
      • LoopInt = 0 &lt;Integer&gt;
      • Hundreds = 0 &lt;Integer&gt;
      • Tens = 0 &lt;Integer&gt;
      • Ones = 0 &lt;Integer&gt;
    • Actions
      • Variable - Set Hundreds = (Amount / 100)
      • Variable - Set Tens = ((Amount mod 100) / 10)
      • Variable - Set Ones = (Amount mod 10)
      • General - For each integer LoopInt from 1 to Hundreds with increment 1, do (Actions)
        • Actions
          • Environment - Execute Marine - Guass Rifle (Damage) on Target from Source
      • General - For each integer LoopInt from 1 to Tens with increment 1, do (Actions)
        • Actions
          • Environment - Execute Marine - Guass Rifle (Damage) on Target from Source
      • General - For each integer LoopInt from 1 to Ones with increment 1, do (Actions)
        • Actions
          • Environment - Execute Marine - Guass Rifle (Damage) on Target from Source

I got lazy with the effects utilized :p

Trigger:
  • Damage Unit
    • Source: No Unit
    • Amount: 0
    • Target: No Unit

is your final result, which is pretty neat. I don't know if it makes a difference whether you use an Action Definition or a Function - they appear to be pretty much the same, at first glance.
 

Attachments

  • Damage Unit action definition.png
    Damage Unit action definition.png
    201.4 KB · Views: 230

Frozenwind

System maker
Reaction score
99
3)
Yup it's hard. The only way to do it is going to the data editor and walking through all models (which is even a pain, as you need 3 (or 5 if you want it in previewer - with animation) clicks in sc2 compared to 1 in wc3. Also, it doesn't display variations...
 

Kazuga

Let the game begin...
Reaction score
110
3)
Yup it's hard. The only way to do it is going to the data editor and walking through all models (which is even a pain, as you need 3 (or 5 if you want it in previewer - with animation) clicks in sc2 compared to 1 in wc3. Also, it doesn't display variations...
Hm... Well let's hope Blizzard has some plans to update it and add this later on... :(

Thanks Flare and The Undaddy! :) Gonna try those triggers out asap! <3
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top