Floating Text:
It's called "Text Tags" in the Starcraft 2 Editor. Same deal as the Floating Text feature in the Warcraft 3 Editor. I suggest making an Action Definition for handling Floating Text. Otherwise you'll need 3-8 lines for every time you want to make floating text.
Repick System:
That very much depends on how your map is built and whether data should be transferred between the previous unit (hero?) and the newly created unit, after the repick. If nothing should be transferred between units it's pretty straight forward: Just remove all player-owner units and entities from the map and show the unit/hero selection dialog/screen again for the triggering player. If you DO want to transfer elements between units you should save these in variables.
Do you need the three charges on the item at any point? Otherwise you can just set the charge count in the Data Editor to 1.
It sounds a bit like you're using the function "Remove Charge Used For Unit", where instead you should be using "Add Charge Used For Unit". Also, check that the Charge Regen Time is 0 or -1 in the Data Editor, whichever number indicates that the charges should not regenerate.
In "Damage Response +" set for a Behavior set damage taken fraction to 0%
Find the "Hero Death Prevention" Behavior (used in the Campaign where you control 4 heroes). Add it to the unit. When the unit gains the Behavior hide it. You can always kill/remove a unit through triggers.
Don't know about the floating bars
Will look into that one
Copy all relevant Actors and Movers from the original unit
I'm gonna throw you this one, but this is really basics of map making. I suggest you read some tutorials and experiement with various test maps.
Creating a new global variable:
Open the Trigger editor
In the left-most area right-click any item, locate "New" and click "New Variable" (or simply hit [Ctrl+B])
Name your newly created variable something meaningful, such as HeroNames (you can always rename items by selecting them and hitting [F2])
Set the variable type to "String" in the dropdown combo box in the right-most area
Check "Array" and set size to the number of names you desire
You may also make the variable local, meaning it can only be read by the current trigger, function or action definition. You create local variables inside e.g. triggers.
Adding data to the variables:
What I wrote in the above example.
An important note: Arrays start at 1 in the Trigger Editor, not 0 as you would expect if you have been coding in high-level programming languages like C or Java.
Search - Search Flags: Exted By Unit Radius (this is very important!)
Target - Impact Location +: Caster Unit
Target - Launch Location +: Caster Unit
Behavior 2 - The behavior you add to your unit (building)
Type: Buff
Effect - Effect - Periodic: Effect 2 (the link to your "Search Area" effect)
Stats - Flags: Hidden
Stats - Period: 1.0
Stats - Time Scale Source +: Caster
So all in all the order is: Behavior 2 (on your unit) -> Effect 2 (locates nearby units) -> Effect 1 (applies behavior) -> Behavior 1 (executes behavior data)
It can seem quite complicated, but it's really not once you get the hang of it. Enjoy :)
It is. When you change data in the Data Editor using the trigger function Catalog you change the values for a specific player only. Unless of course you iterate through a series of players.
Make a String array containing the Hero names and then set the name using the Catalog function, like so:
Variable - Set HeroNames[1] = "Homer"
Variable - Set HeroNames[2] = "Zeratul"
Variable - Set HeroNames[3] = "Kate Lockwell"
Catalog - Set value of Unit "UnitNameRawData" "Name" for player 1 to HeroNames[Random integer between 1 and 3]
The Raw Data reference will never change, so you may change the name as many times as you like.
If you have only one type of your hero present in the map at any time per player, you can change the name through the Catalog function. However, if you want to keep the name of the hero type (the big text) and the name of the hero in smaller text below, like in Warcraft 3, you have to conjure some stronger magic.
Use Catalog for looking up the values you have defined in your Veterancy behavior.
Variable - Set ExperienceNeededInteger = Catalog - (Integer((Value of Behaviors "VeterancyBehaviorNameRawData" "VeterancyLevelArray[1].MinVeterancyXP" for player 1)))
The field data path "VeterancyLevelArray[1].MinVeterancyXP" will look up the experience needed to go from level 1 to 2, since the number is 1. Change this to the desired levels, e.g. current hero level.
In the Warcraft III editor it was called "Acquisition Range". Apparently that got old, but I found the answer searching for that on this very forum.
Look up the weapon for the unit you wish to increase the "aggro" range of. Locate the "Stats - Minimum Scan Range". For a Marine's C-14 Gauss Rifle it's 5 by default (same as their attack range). Changing it to e.g. 15 will cause the Marines to spot each other earlier, walk 10 "range" to each other and then fire when they're in range. Suppose that's what you're looking for?
0
@Crockeo: Go
Floating Text: It's called "Text Tags" in the Starcraft 2 Editor. Same deal as the Floating Text feature in the Warcraft 3 Editor. I suggest making an Action Definition for handling Floating Text. Otherwise you'll need 3-8 lines for every time you want to make floating text.
Repick System: That very much depends on how your map is built and whether data should be transferred between the previous unit (hero?) and the newly created unit, after the repick. If nothing should be transferred between units it's pretty straight forward: Just remove all player-owner units and entities from the map and show the unit/hero selection dialog/screen again for the triggering player. If you DO want to transfer elements between units you should save these in variables.
0
@EarendilSphere: Go
Do you need the three charges on the item at any point? Otherwise you can just set the charge count in the Data Editor to 1.
It sounds a bit like you're using the function "Remove Charge Used For Unit", where instead you should be using "Add Charge Used For Unit". Also, check that the Charge Regen Time is 0 or -1 in the Data Editor, whichever number indicates that the charges should not regenerate.
0
@HellGateSc2: Go
0
@Mesothere: Go
I'm gonna throw you this one, but this is really basics of map making. I suggest you read some tutorials and experiement with various test maps.
Creating a new global variable:
You may also make the variable local, meaning it can only be read by the current trigger, function or action definition. You create local variables inside e.g. triggers.
Adding data to the variables: What I wrote in the above example.
An important note: Arrays start at 1 in the Trigger Editor, not 0 as you would expect if you have been coding in high-level programming languages like C or Java.
0
@Mesothere: Go
You need two behaviors and two effects.
Behavior 1 - The mana regeneration buff
Type: Buff
Effect 1 - The effect that applies Behavior 1
Type: Apply Behavior
Effect 2 - The search area locating nearby units
Type: Search Area
Behavior 2 - The behavior you add to your unit (building)
Type: Buff
So all in all the order is: Behavior 2 (on your unit) -> Effect 2 (locates nearby units) -> Effect 1 (applies behavior) -> Behavior 1 (executes behavior data)
It can seem quite complicated, but it's really not once you get the hang of it. Enjoy :)
0
@Mesothere: Go
It is. When you change data in the Data Editor using the trigger function Catalog you change the values for a specific player only. Unless of course you iterate through a series of players.
Make a String array containing the Hero names and then set the name using the Catalog function, like so:
The Raw Data reference will never change, so you may change the name as many times as you like.
0
@Mesothere: Go
If you have only one type of your hero present in the map at any time per player, you can change the name through the Catalog function. However, if you want to keep the name of the hero type (the big text) and the name of the hero in smaller text below, like in Warcraft 3, you have to conjure some stronger magic.
0
@gorang: Go
No problem. Enjoy :)
0
@gorang: Go
If you want to implement the above damage system directly in your map you have to copy the following in said order:
In your trigger for inflicting damage insert the call for the Action Definition like so:
Damage - Make (CasterUnit) inflict 1.0 damage to (TargetUnit) of damage type Spell.
0
@gorang: Go
I have to leave soonish. But quickshot14 made a fantastic video guide on YouTube for this.
Check it out: http:www.youtube.com/watch?v=64x8jRL5np0
Just follow the steps and see how it's done. Hope you figure it out. Otherwise I'll be available tonight (which is like 7 hours from now for me).
0
@gorang: Go
Damage is inflicted by Effects. You can change the Amount of damage done through the Catalog feature using triggers.
Check this example: http:forums.sc2mapster.com/development/galaxy-scripting-and-trigger-lib/7428-inflict-damage-on-unit-warcraft-3-editor-style/
0
@WadeArcade: Go
Use Catalog for looking up the values you have defined in your Veterancy behavior.
Variable - Set ExperienceNeededInteger = Catalog - (Integer((Value of Behaviors "VeterancyBehaviorNameRawData" "VeterancyLevelArray[1].MinVeterancyXP" for player 1)))
The field data path "VeterancyLevelArray[1].MinVeterancyXP" will look up the experience needed to go from level 1 to 2, since the number is 1. Change this to the desired levels, e.g. current hero level.
0
@wowacesucksmassivekok: Go
Faerie Fire anyone? :)
0
@Ice_bane: Go
In the Warcraft III editor it was called "Acquisition Range". Apparently that got old, but I found the answer searching for that on this very forum.
Look up the weapon for the unit you wish to increase the "aggro" range of. Locate the "Stats - Minimum Scan Range". For a Marine's C-14 Gauss Rifle it's 5 by default (same as their attack range). Changing it to e.g. 15 will cause the Marines to spot each other earlier, walk 10 "range" to each other and then fire when they're in range. Suppose that's what you're looking for?
0
@Atl0s: Go
Preventing a unit from firing at a unit on a different cliff level can be done with Validators. Just FYI :)