answered my own question. Not sure what it is specifically, but something to do with movers
using fly works, yet duplicating it and changing all options to 'Ground' still works but without it having heightmap issues. But for some reason using 'ground' itself doesn't... hmm
Then also setting lateral acceleration to something like 0.4
I'm working on a new map that requires some units to be able to turn, just very slowly. At present i've played with the movement - turning rate field to something very low. But all it seems to do is make the Actor turn slowly. The unit will still instantly begin moving towards a new point rather than slowly curving towards it. Help?
And while at it, anyone know how to make a unit continually move forward?
You're very welcome. I assume you got it working for your map no problems?
I've had some people ask me for assistance getting this to work within their own map because of varying needs. If anybody else is having trouble you can just send me a PM or post here. I might also rewrite this into a proper step-by-step tutorial that covers multiple variants and situations if needed
check out mine http://forums.sc2mapster.com/resources/tutorials/13223-how-to-multiple-region-capture-capturing/#p2
i know it's not the most easy to follow and user friendly tutorial, i'll probably rewrite it later. But it covers all the bases such as units dying while capturing, units that are allowed to block captures, dynamic capturing (something walks in to block, but when they leave the progress resumes rather than starting from scratch), multiple regions within the same trigger and so on
Check out the demo map it's probably the easiest to understand
Brief overview: The map is played by up to 10 players on 2 opposing teams. Each player controls a hero unit which is upgradable with abilities and different classes of items such as weapons, armor, accessories and consumable items. Now before you think DoTA clone! there's quite a few key differences. Currently there are 4 heroes each are quite unique and are restricted to wearing gear they are compatible with. A scout for instance cannot wear heavy armor or use the big heavy guns
A big focus of the map are the 6 outposts scattered in the middle of the playing field. Capturing any of these provides income for your team which is absolutely vital to purchasing new equipment or army upgrades. In my experience of playing, the longer these are held by a team, the further that team gets ahead and will ultimately win if the game gets pushed out long enough
Another major focus is each team's army. This army can be upgraded by any player by spending gas (Which is a shared resource for your entire team) in the way of adding extra units, more spawns, weapon/armor upgrades etc. There's a bit of a back'n'forth tug of war that can happen with the newly implemented 'additional spawns' which only appear every ODD wave for Team1 and every EVEN wave for Team2. Opening up more possibilities to tip the scales in your favor if you grab a few more outposts while on the advantage
-------------------------------------------------
Some newly implemented features:
Grenade hotkey - allows you to throw grenades from your inventory using just a hotkey (FINALLY THANK GOD!)
12 new abilities across the 4 heroes
new item - detector
Additional spawns system - adds units to your army, independant of regular spawns. Only spawn every 2nd wave
Banelings added to melee spawns
Hydralisk replaced with Stalker on ranged spawns
Melee spawn rebalancing
Range spawn rebalancing - marauder > stalker > archon > marauder etc
Heroes tweaked for balance
Base Guardians can now hit air units
And a few other minor tweaks to improve the game
---------------------------------------------
With all of this added things will need a little play testing to help balance everything out. This map was fast on the rise prior to patch 1.1 but the popularity system got reset and the map dropped off the radar a bit. I'm adament 0.4 will bring it back to life. I personally love playing my own map but need a larger player base!
If anyone would like to join me for some play testing please either drop me an email at millenium07@hotmail.com or just add me in game
Millenium - 271 - NA Region
Millenium - 656 - SEA Region (might be better to email me first as I don't play SEA as much as NA)
Alternatively just jump on battle.net, create a game choose Conquest - Beta Version in the list and have fun.
I've finally just finished getting version 0.4 out. Big update over 0.3 if anyone has played it in the past
Brief overview: The map is played by up to 10 players on 2 opposing teams. Each player controls a hero unit which is upgradable with abilities and different classes of items such as weapons, armor, accessories and consumable items. Now before you think DoTA clone! there's quite a few key differences. Currently there are 4 heroes each are quite unique and are restricted to wearing gear they are compatible with. A scout for instance cannot wear heavy armor or use the big heavy guns
A big focus of the map are the 6 outposts scattered in the middle of the playing field. Capturing any of these provides income for your team which is absolutely vital to purchasing new equipment or army upgrades. In my experience of playing, the longer these are held by a team, the further that team gets ahead and will ultimately win if the game gets pushed out long enough
Another major focus is each team's army. This army can be upgraded by any player by spending gas (Which is a shared resource for your entire team) in the way of adding extra units, more spawns, weapon/armor upgrades etc. There's a bit of a back'n'forth tug of war that can happen with the newly implemented 'additional spawns' which only appear every ODD wave for Team1 and every EVEN wave for Team2. Opening up more possibilities to tip the scales in your favor if you grab a few more outposts while on the advantage
-------------------------------------------------
Some newly implemented features:
Grenade hotkey - allows you to throw grenades from your inventory using just a hotkey (FINALLY THANK GOD!)
12 new abilities across the 4 heroes
new item - detector
Additional spawns system - adds units to your army, independant of regular spawns. Only spawn every 2nd wave
Banelings added to melee spawns
Hydralisk replaced with Stalker on ranged spawns
Melee spawn rebalancing
Range spawn rebalancing - marauder > stalker > archon > marauder etc
Heroes tweaked for balance
Base Guardians can now hit air units
And a few other minor tweaks to improve the game
---------------------------------------------
With all of this added things will need a little play testing to help balance everything out. This map was fast on the rise prior to patch 1.1 but the popularity system got reset and the map dropped off the radar a bit. I'm adament 0.4 will bring it back to life. I personally love playing my own map but need a larger player base!
If anyone would like to join me for some play testing please either drop me an email at millenium07@hotmail.com or just add me in game
Millenium - 271 - NA Region
Millenium - 656 - SEA Region (might be better to email me first as I don't play SEA as much as NA)
Alternatively just jump on battle.net, create a game choose Conquest - Beta Version in the list and have fun.
I had a bit of a skim over. Dialog probably isn't necessary to the tutorial, maybe simplify it a little by just using the 'chat message' event handler I.E. if any player types "hitme"
then do actions
The bigger issue though (sorry to pick it apart) is that using a behaviour to apply damage is NOT going to give credit to the attacking unit, since there is no attacking unit. Rather you should be using the 'Environment - Damage unit from unit' command. Create a dummy 'damage' effect that applies 0 zero and set this as the damaging effect in the trigger command. Then you can specify the target, as well as the source, and then add the damage you'd like applied as the 'extra damage' parameter. So if the target dies from taking this damage, kill count/resources/experience are creditted to the source unit
I've just created an ability in my map that uses a combination of this as well as behaviors to deal damage. Basically the source unit has an ability that can be toggled on/off, when it's on the source unit gains a dummy behavior buff. When any unit with that behavior attacks something, the target gains a 'burn' behavior which is just a dummy behavior buff as well. That 'buff' applies a dummy damage effect every second for X amount of seconds. Whenever that effect goes off (it does no damage itself), it executes the Deal Damage to Unit action. Which then finally uses yet ANOTHER dummy damage effect (since if it was the same it'd create an infinate loop) to deal 1/2/3 damage each time depending on your level
Ultimately if you active this ability, then every time you shoot someone they begin to burn and take additional damage over time. But that damage is creditted to the original attacking unit. Even if multiple sources attack the same target using the same ability, the damage stacks and is creditted to the correct sources
Hero Gains Level
Events
Unit - Any Unit gains an experience level
Local Variables
Conditions
(Controller of player (Triggering player)) == User
Actions
Variable - Modify HeroLevel[(Triggering player)]: + 1
General - If (Conditions) then do (Actions) else do (Actions)
If
(HeroLevel[(Triggering player)] mod 2) >= 1
Then
Variable - Modify SkillPointsAvailable[(Triggering player)]: + 1
Unit - Enable the Hero - Learn Ability (Assault) ability for PlayerHero[(Triggering player)]
Else
Skill points
Events
Unit - Any Unit uses Hero - Learn Ability (Assault) at Generic6 - Complete stage (Include shared abilities)
Local Variables
Conditions
Actions
Variable - Modify SkillPointsAvailable[(Triggering player)]: - 1
General - If (Conditions) then do (Actions) else do (Actions)
If
SkillPointsAvailable[(Triggering player)] < 1
Then
Unit - Disable the Hero - Learn Ability (Assault) ability for PlayerHero[(Triggering player)]
Else
But this gives 1 point to SkillPointsAvailable whenever going up to an odd level 3/5/7/etc and is easily changeable if required. It also gives me greater flexibility in that I might only want to enable learning the first skill point at say lvl 4, then odd numbers thereafter, but give a bonus one at 10. Combined with level requirements for the abilities themselves I think we're be in business
edit: this still doesn't change the number of skill points available, i'm still gaining 1 per level even when the ability is disabled. However it does allow me to restrict spending to my liking
awesome thanks i'll have a look at it later. But how do I reference say LevelOfUnit or LevelOfAbility to an ingame unit/ability in the data editor? I have 0 experience with data scripting. Triggers no problem and to an extent custom scripts.
Or do I literally just use LevelOfUnit and it'll check the level of the unit which houses the learn ability? buuuuut then how does LevelOfAbility become (level of ability 'Stimpack')?
I probably need to read some tutorials on scripting.....
edit: though this still doesn't solve the issue of only getting 1 point every 2 levels, because if I have say 4 different abilities and they all have level 2/4/6/8 as requirements, By level 3 i'll still have 2 points to put into 2 different abilities. Though it's a start so that's good and we're on track
No way i'm going to rewrite the learn ability, but surely there's a catalog value that can be set to manually give/remove skill points to a unit?
I know blizzard wanted to give more control to users but at the same time like seriously.... the most basic crap more often than not takes significantly longer than major overhauls. Creating a weapon from scratch, no problems. Making that weapon show a beam for instance, takes about 5x longer than everything else combined
Doesn't really matter how I go about this, i'd prefer to keep it in the data editor for the streamlined feel, but if triggers are necessary so be it
Some theoretical workarounds, none of which i've yet been able to implement
Data method - somehow through using validators/requirements require that the hero is an ODD level to be allowed to gain skill points, yet not disable the ability entirely, allowing him to still spend them regardless of level
i'm useless with data editor scripting. Need some help here
Trigger method - When hero gains a level, set skill points for ability to Trunc(Hero Level / 2) - IE if level 1 / 0 points, lvl2 / 1 point, lvl 3 / 1 point, lvl 4 / 2 points etc
The issue I have with this is I have no idea how to set the skill points, i've checked catalog values and cant find anything
Trigger method - When hero gains a level, check if level is odd and if so, remove 1 skill point
same as above, no idea how to set the skill points or even how to add/remove one
Data method - Make a learnable ability require 2 skill points to be learned/upgraded?
If anyone could provide a solution to any of the above, or an alternative way i'd much appreciate it
Something i'm absolutely stumped with in relation to abilities is how do I make it so that a hero can only learn or upgrade an ability every 2 or 3 levels?
The way i've currently got everything set up is
Hero unit
Ability: Learn Ability (has lets say... stimpack as Learn1)
Points set to -1 (must gain level 2 to earn first point)
Points per level set to 1 (Basically I want this to be 0.5, in order to only gain 1 point every 2 levels but that's not possible)
Ability: Stimpack (currently has no validators/requirements)
Effects field set up as Stimpack1 / Stimpack2 / Stimpack3 for different levels
Now what happens if mr Hero starts out at level 1, he has -1 points to put into a skill, meaning he can't learn anything. Good that's what I want. Hero gets to level 2, he now has 0 points to put into a skill, still can't learn anything, exactly how I want it. He gets to level 3 he can put one point into stimpack if he chooses, ok. He gets to level 4 he now has 2 skill points and so on
What I want to happen is he can only gain 1 skill point every 2 or 3 levels instead of every 1 level. Additionally I also want to have specific level requirements for each ability. Stimpack I don't care about, since if I can make it only 1 skill point per level great. But I will need the hero to be at least say level 6 before he can learn Overpower, and level 10 before he can upgrade Overpower to level 2
I've been searching the forums and I can work out how to make abilities and give them different effects for each level, but I can't for the life of me figure out how to have requirements for learning it, nor how to give only 1 skill point per X amount of levels, rather than being fixed at 1 skill point per level. I'd much appreciate any help on this.
This has probly already been covered but I couldn't find anythign with a search. I've just noticed that mathematically the attack and movement speed values are very wrong. For example I have a unit carrying a weapon which has a default attack speed of 0.8. If I add a behavior buff and under Combat-Attack Speed Multiplier to 2.0 it'll be 0.8 (-0.4) which is correct, twice as fast. If I change it to 1.45 it'll report 0.8 (-0.25) this is only 31.25% NOT 45% which would have report 0.8 (-0.36). The same applies to movement speed
I've taken quite a bit of knowledge from this site and thought it's about time I give something back
One of the issues I had was getting a flawless region capturing system in place. Previously in my map 'conquest' I had to use 1 trigger per outpost, it was a little messy duplicating all that and it had 1 problem which i've seen a lot in many maps. If there is a unit on that region, and you move into it, but they leave. The capturing would not initialise, you'd have to walk away and re-enter. This was due to the limitations of the 'unit enters region' event handler. There is no 'unit is in region' event. Along with a few others such as dying on a point etc.... however this addresses all those issues and it should work for just about any map with any amount of 'capturables' with minor modification
The Goal: A trigger that allows you to add or remove as many capturable regions/points/structures as you'd like, with very little modification. It also MUST work in realtime and not just when a unit enters an area. It has to account for units dying mid-way through the capture, or leaving the capture zone. It must be 'pausable/blockable' when defending units appear in the area. It must have easy control over the time it takes to capture
So onto it...
Firstly create some global variables. I'm not going to post a screenshot for this but you want to label them like this..
Outpost - unit - array of 6 (Can be changed to Point if you'd prefer)
UnitsInCapRadius - unit group - array of 6
CapTimer - integer - array of 6
CapProgress - integer - array of 6
CapProgressDialog - dialog
CapProgressBar - dialog item
where 6 is however many capturable regions you have on your map, if it's 8 change the array size to 8 etc. And from now on any instances of 'from 1 to 6' change the 6 to however many you have
Now go ahead and assign each Outpost item to their respective structures through the 'set variable' command
Create a new trigger called 'Cap - AddPlayer' and lay it out like so....
You need a 'unit enters' event for each and every location on your map that is capturable. Set the distance to how close a unit has to be to the building
Under conditions you want to specify units that are NOT allowed to be added to capture, or stop a capture. If your map is like mine you have some minerals and a structure that are capturable, but of course you don't want minerals to be able to capture the structure, nor do you want the structure to be able to capture itself. So you'd add structure and resource as 'excluded'. It would also be a very good idea to ensure you don't have 'dead' units being added, exclude those as well
The IF THEN statement is not usually necessary, however I have on very rare occasion ran into a bug where a unit was added when it shouldn't have been, you can most likely omit it but i've left it in just in case
Create another trigger called Cap - RemovePlayer
As before you need a 'unit enters' event for every region you have, but change 'enters' to 'leaves'. Also include the 'unit dies' event.
This one is pretty self explanatory so I won't go into much detail, but it's worth noting that it is also checking if there are any enemies of the current owner of the outpost structure within range. If not then it resets the countdown period for that tower
Create an action definition called Create Progress Bar
All this is doing is making a dialog item, and giving it a default progress bar, you may change this to suit the style you'd prefer
The 2nd and 3rd lines from the bottom simply change the border colour of the progress bar for each player. The way I have it set is all players on Team1 have a dark green border to indicate they are capturing it for team1. And team2 has a violet border indicating their team's color. If your map is all vs all then it's probably better to either omit these lines and use the default colouring. Or change it to a 'pick each player in all players' and assign it to their own colour
Create another action definition called Display Countdown
This one isn't entirely necessary and could simply be included amongst the next trigger, however I will be expanding on this later within my own map. And since all i'm doing is copying this from my map, you're going to have to live with it so there :P
The only thing to take note of here is the value 25, which equates to 5 seconds. Change this if you want it to modify the capture time. You'll see why 25 = 5 seconds in the next trigger.
Ok create the final trigger called Capture Countdown
We'll start with the initial setup. The conditions are simply stating that this trigger will only run if there are any units present on any of the capturable regions. These conditions are not necessary however it does save a teeny-tiny bit of cpu power by not running the trigger when it's not needed
And finally we have the meat of the whole operation. This may look a little daunting but it's actually quite simple
The first IF THEN statement is checking if there any units present that have 'capturing' priveledges. Now in my map there are creeps controlled by the AI and players only use a single hero. I want creeps to be able to block captures, but not actually capture the region themselves. So way back up in the first trigger i'm ALLOWING creeps to be added to the 'UnitsInCapRegion' unit group. But here in this trigger only 'heroic' units are allowed to perform captures.
Directly underneath that condition is another. this checks to see if there are no units allied to the current owner within range. If you changed it to say < [The above condition] instead of = 0 then it would allow capturing if the attacker has more units present than the current owner/defender
I won't explain it all too much, but moving down to where it says if CapTimer[i] >= 26 means if you have been capturing it for 5 seconds. The reason it's 26 is because 0.2s is how quickly this trigger executes. Thats 5 times per second, multiplied by 5 seconds, plus an additional 1. The reason it must be +1 is because this is executed AFTER it increases the timer, in other words it's always 1 step ahead, so make it run one more time to ensure it's 5.0s and not 4.8s. I could have changed the order around but I got lazy :(
The only other things to change in this trigger is 'SlotNumberAI#' refers to my teams computer controller. If you have a team based map, change this value to any player on Team1/Team2/Team3/Team4 etc. if you have a FFA map change the line
(Number of Living units in (Units in UnitsInCapRadius[i] having alliance Ally with SlotNumberAI1, with at most Any Amount)) > 0
to
(Number of Living units in (Units in UnitsInCapRadius[i] owned by player 1, with at most Any Amount)) > 0
and the 'change ownership' command to player 1 as well. Then duplicate the IF THEN statement and change to player 2, 3, 4, 5 etc
Finally omit the line 'Run - Update Leaderboard', if you don't use a trigger for updating a leaderboard in your map
Once you're up and running it should look a little something like....
0
answered my own question. Not sure what it is specifically, but something to do with movers
using fly works, yet duplicating it and changing all options to 'Ground' still works but without it having heightmap issues. But for some reason using 'ground' itself doesn't... hmm
Then also setting lateral acceleration to something like 0.4
0
I'm working on a new map that requires some units to be able to turn, just very slowly. At present i've played with the movement - turning rate field to something very low. But all it seems to do is make the Actor turn slowly. The unit will still instantly begin moving towards a new point rather than slowly curving towards it. Help?
And while at it, anyone know how to make a unit continually move forward?
0
You're very welcome. I assume you got it working for your map no problems?
I've had some people ask me for assistance getting this to work within their own map because of varying needs. If anybody else is having trouble you can just send me a PM or post here. I might also rewrite this into a proper step-by-step tutorial that covers multiple variants and situations if needed
0
check out mine http://forums.sc2mapster.com/resources/tutorials/13223-how-to-multiple-region-capture-capturing/#p2
i know it's not the most easy to follow and user friendly tutorial, i'll probably rewrite it later. But it covers all the bases such as units dying while capturing, units that are allowed to block captures, dynamic capturing (something walks in to block, but when they leave the progress resumes rather than starting from scratch), multiple regions within the same trigger and so on
Check out the demo map it's probably the easiest to understand
0
If anyone's having any difficulty, I apologise for the copy/paste approach
So i've uploaded an example map :D
Here http://www.2shared.com/file/BUBxIXvy/CaptureOutpostExample.html
or here Link Removed: http://www.mediafire.com/?o34rzee3lwlxedq
0
bump in the night
Nobody? hate this popularity system....
0
Brief overview: The map is played by up to 10 players on 2 opposing teams. Each player controls a hero unit which is upgradable with abilities and different classes of items such as weapons, armor, accessories and consumable items. Now before you think DoTA clone! there's quite a few key differences. Currently there are 4 heroes each are quite unique and are restricted to wearing gear they are compatible with. A scout for instance cannot wear heavy armor or use the big heavy guns
A big focus of the map are the 6 outposts scattered in the middle of the playing field. Capturing any of these provides income for your team which is absolutely vital to purchasing new equipment or army upgrades. In my experience of playing, the longer these are held by a team, the further that team gets ahead and will ultimately win if the game gets pushed out long enough
Another major focus is each team's army. This army can be upgraded by any player by spending gas (Which is a shared resource for your entire team) in the way of adding extra units, more spawns, weapon/armor upgrades etc. There's a bit of a back'n'forth tug of war that can happen with the newly implemented 'additional spawns' which only appear every ODD wave for Team1 and every EVEN wave for Team2. Opening up more possibilities to tip the scales in your favor if you grab a few more outposts while on the advantage
-------------------------------------------------
Some newly implemented features:
Grenade hotkey - allows you to throw grenades from your inventory using just a hotkey (FINALLY THANK GOD!)
12 new abilities across the 4 heroes
new item - detector
Additional spawns system - adds units to your army, independant of regular spawns. Only spawn every 2nd wave
Banelings added to melee spawns
Hydralisk replaced with Stalker on ranged spawns
Melee spawn rebalancing
Range spawn rebalancing - marauder > stalker > archon > marauder etc
Heroes tweaked for balance
Base Guardians can now hit air units
And a few other minor tweaks to improve the game
---------------------------------------------
With all of this added things will need a little play testing to help balance everything out. This map was fast on the rise prior to patch 1.1 but the popularity system got reset and the map dropped off the radar a bit. I'm adament 0.4 will bring it back to life. I personally love playing my own map but need a larger player base!
If anyone would like to join me for some play testing please either drop me an email at millenium07@hotmail.com or just add me in game
Millenium - 271 - NA Region
Millenium - 656 - SEA Region (might be better to email me first as I don't play SEA as much as NA)
Alternatively just jump on battle.net, create a game choose Conquest - Beta Version in the list and have fun.
Cheers
0
I've finally just finished getting version 0.4 out. Big update over 0.3 if anyone has played it in the past
Brief overview: The map is played by up to 10 players on 2 opposing teams. Each player controls a hero unit which is upgradable with abilities and different classes of items such as weapons, armor, accessories and consumable items. Now before you think DoTA clone! there's quite a few key differences. Currently there are 4 heroes each are quite unique and are restricted to wearing gear they are compatible with. A scout for instance cannot wear heavy armor or use the big heavy guns
A big focus of the map are the 6 outposts scattered in the middle of the playing field. Capturing any of these provides income for your team which is absolutely vital to purchasing new equipment or army upgrades. In my experience of playing, the longer these are held by a team, the further that team gets ahead and will ultimately win if the game gets pushed out long enough
Another major focus is each team's army. This army can be upgraded by any player by spending gas (Which is a shared resource for your entire team) in the way of adding extra units, more spawns, weapon/armor upgrades etc. There's a bit of a back'n'forth tug of war that can happen with the newly implemented 'additional spawns' which only appear every ODD wave for Team1 and every EVEN wave for Team2. Opening up more possibilities to tip the scales in your favor if you grab a few more outposts while on the advantage
-------------------------------------------------
Some newly implemented features:
Grenade hotkey - allows you to throw grenades from your inventory using just a hotkey (FINALLY THANK GOD!)
12 new abilities across the 4 heroes
new item - detector
Additional spawns system - adds units to your army, independant of regular spawns. Only spawn every 2nd wave
Banelings added to melee spawns
Hydralisk replaced with Stalker on ranged spawns
Melee spawn rebalancing
Range spawn rebalancing - marauder > stalker > archon > marauder etc
Heroes tweaked for balance
Base Guardians can now hit air units
And a few other minor tweaks to improve the game
---------------------------------------------
With all of this added things will need a little play testing to help balance everything out. This map was fast on the rise prior to patch 1.1 but the popularity system got reset and the map dropped off the radar a bit. I'm adament 0.4 will bring it back to life. I personally love playing my own map but need a larger player base!
If anyone would like to join me for some play testing please either drop me an email at millenium07@hotmail.com or just add me in game
Millenium - 271 - NA Region
Millenium - 656 - SEA Region (might be better to email me first as I don't play SEA as much as NA)
Alternatively just jump on battle.net, create a game choose Conquest - Beta Version in the list and have fun.
Cheers
0
@XDretsamtovip:
I had a bit of a skim over. Dialog probably isn't necessary to the tutorial, maybe simplify it a little by just using the 'chat message' event handler I.E. if any player types "hitme"
then do actions
The bigger issue though (sorry to pick it apart) is that using a behaviour to apply damage is NOT going to give credit to the attacking unit, since there is no attacking unit. Rather you should be using the 'Environment - Damage unit from unit' command. Create a dummy 'damage' effect that applies 0 zero and set this as the damaging effect in the trigger command. Then you can specify the target, as well as the source, and then add the damage you'd like applied as the 'extra damage' parameter. So if the target dies from taking this damage, kill count/resources/experience are creditted to the source unit
I've just created an ability in my map that uses a combination of this as well as behaviors to deal damage. Basically the source unit has an ability that can be toggled on/off, when it's on the source unit gains a dummy behavior buff. When any unit with that behavior attacks something, the target gains a 'burn' behavior which is just a dummy behavior buff as well. That 'buff' applies a dummy damage effect every second for X amount of seconds. Whenever that effect goes off (it does no damage itself), it executes the Deal Damage to Unit action. Which then finally uses yet ANOTHER dummy damage effect (since if it was the same it'd create an infinate loop) to deal 1/2/3 damage each time depending on your level
Ultimately if you active this ability, then every time you shoot someone they begin to burn and take additional damage over time. But that damage is creditted to the original attacking unit. Even if multiple sources attack the same target using the same ability, the damage stacks and is creditted to the correct sources
0
Sorted!
I created 2 global variables
HeroLevel[Array] - Integer
SkillPointsAvailable - Integer
and 2 triggers
Hero Gains Level
Events
Unit - Any Unit gains an experience level
Local Variables
Conditions
(Controller of player (Triggering player)) == User
Actions
Variable - Modify HeroLevel[(Triggering player)]: + 1
General - If (Conditions) then do (Actions) else do (Actions)
If
(HeroLevel[(Triggering player)] mod 2) >= 1
Then
Variable - Modify SkillPointsAvailable[(Triggering player)]: + 1
Unit - Enable the Hero - Learn Ability (Assault) ability for PlayerHero[(Triggering player)]
Else
Skill points
Events
Unit - Any Unit uses Hero - Learn Ability (Assault) at Generic6 - Complete stage (Include shared abilities)
Local Variables
Conditions
Actions
Variable - Modify SkillPointsAvailable[(Triggering player)]: - 1
General - If (Conditions) then do (Actions) else do (Actions)
If
SkillPointsAvailable[(Triggering player)] < 1
Then
Unit - Disable the Hero - Learn Ability (Assault) ability for PlayerHero[(Triggering player)]
Else
But this gives 1 point to SkillPointsAvailable whenever going up to an odd level 3/5/7/etc and is easily changeable if required. It also gives me greater flexibility in that I might only want to enable learning the first skill point at say lvl 4, then odd numbers thereafter, but give a bonus one at 10. Combined with level requirements for the abilities themselves I think we're be in business
edit: this still doesn't change the number of skill points available, i'm still gaining 1 per level even when the ability is disabled. However it does allow me to restrict spending to my liking
0
awesome thanks i'll have a look at it later. But how do I reference say LevelOfUnit or LevelOfAbility to an ingame unit/ability in the data editor? I have 0 experience with data scripting. Triggers no problem and to an extent custom scripts. Or do I literally just use LevelOfUnit and it'll check the level of the unit which houses the learn ability? buuuuut then how does LevelOfAbility become (level of ability 'Stimpack')?
I probably need to read some tutorials on scripting.....
edit: though this still doesn't solve the issue of only getting 1 point every 2 levels, because if I have say 4 different abilities and they all have level 2/4/6/8 as requirements, By level 3 i'll still have 2 points to put into 2 different abilities. Though it's a start so that's good and we're on track
No way i'm going to rewrite the learn ability, but surely there's a catalog value that can be set to manually give/remove skill points to a unit?
I know blizzard wanted to give more control to users but at the same time like seriously.... the most basic crap more often than not takes significantly longer than major overhauls. Creating a weapon from scratch, no problems. Making that weapon show a beam for instance, takes about 5x longer than everything else combined
0
bump - really need this sorted if possible
Doesn't really matter how I go about this, i'd prefer to keep it in the data editor for the streamlined feel, but if triggers are necessary so be it Some theoretical workarounds, none of which i've yet been able to implement
Data method - somehow through using validators/requirements require that the hero is an ODD level to be allowed to gain skill points, yet not disable the ability entirely, allowing him to still spend them regardless of level
Trigger method - When hero gains a level, set skill points for ability to Trunc(Hero Level / 2) - IE if level 1 / 0 points, lvl2 / 1 point, lvl 3 / 1 point, lvl 4 / 2 points etc
Trigger method - When hero gains a level, check if level is odd and if so, remove 1 skill point
Data method - Make a learnable ability require 2 skill points to be learned/upgraded?
If anyone could provide a solution to any of the above, or an alternative way i'd much appreciate it
0
Something i'm absolutely stumped with in relation to abilities is how do I make it so that a hero can only learn or upgrade an ability every 2 or 3 levels? The way i've currently got everything set up is
Hero unit
Ability: Learn Ability (has lets say... stimpack as Learn1)
Ability: Stimpack (currently has no validators/requirements)
Now what happens if mr Hero starts out at level 1, he has -1 points to put into a skill, meaning he can't learn anything. Good that's what I want. Hero gets to level 2, he now has 0 points to put into a skill, still can't learn anything, exactly how I want it. He gets to level 3 he can put one point into stimpack if he chooses, ok. He gets to level 4 he now has 2 skill points and so on
What I want to happen is he can only gain 1 skill point every 2 or 3 levels instead of every 1 level. Additionally I also want to have specific level requirements for each ability. Stimpack I don't care about, since if I can make it only 1 skill point per level great. But I will need the hero to be at least say level 6 before he can learn Overpower, and level 10 before he can upgrade Overpower to level 2
I've been searching the forums and I can work out how to make abilities and give them different effects for each level, but I can't for the life of me figure out how to have requirements for learning it, nor how to give only 1 skill point per X amount of levels, rather than being fixed at 1 skill point per level. I'd much appreciate any help on this.
Cheers
0
This has probly already been covered but I couldn't find anythign with a search. I've just noticed that mathematically the attack and movement speed values are very wrong. For example I have a unit carrying a weapon which has a default attack speed of 0.8. If I add a behavior buff and under Combat-Attack Speed Multiplier to 2.0 it'll be 0.8 (-0.4) which is correct, twice as fast. If I change it to 1.45 it'll report 0.8 (-0.25) this is only 31.25% NOT 45% which would have report 0.8 (-0.36). The same applies to movement speed
Anyone else notice this?
0
I've taken quite a bit of knowledge from this site and thought it's about time I give something back One of the issues I had was getting a flawless region capturing system in place. Previously in my map 'conquest' I had to use 1 trigger per outpost, it was a little messy duplicating all that and it had 1 problem which i've seen a lot in many maps. If there is a unit on that region, and you move into it, but they leave. The capturing would not initialise, you'd have to walk away and re-enter. This was due to the limitations of the 'unit enters region' event handler. There is no 'unit is in region' event. Along with a few others such as dying on a point etc.... however this addresses all those issues and it should work for just about any map with any amount of 'capturables' with minor modification
So onto it...
Firstly create some global variables. I'm not going to post a screenshot for this but you want to label them like this..
Outpost - unit - array of 6 (Can be changed to Point if you'd prefer)
UnitsInCapRadius - unit group - array of 6
CapTimer - integer - array of 6
CapProgress - integer - array of 6
CapProgressDialog - dialog
CapProgressBar - dialog item
Now go ahead and assign each Outpost item to their respective structures through the 'set variable' command
Create a new trigger called 'Cap - AddPlayer' and lay it out like so....
You need a 'unit enters' event for each and every location on your map that is capturable. Set the distance to how close a unit has to be to the building
Under conditions you want to specify units that are NOT allowed to be added to capture, or stop a capture. If your map is like mine you have some minerals and a structure that are capturable, but of course you don't want minerals to be able to capture the structure, nor do you want the structure to be able to capture itself. So you'd add structure and resource as 'excluded'. It would also be a very good idea to ensure you don't have 'dead' units being added, exclude those as well
The IF THEN statement is not usually necessary, however I have on very rare occasion ran into a bug where a unit was added when it shouldn't have been, you can most likely omit it but i've left it in just in case
Create another trigger called Cap - RemovePlayer
As before you need a 'unit enters' event for every region you have, but change 'enters' to 'leaves'. Also include the 'unit dies' event. This one is pretty self explanatory so I won't go into much detail, but it's worth noting that it is also checking if there are any enemies of the current owner of the outpost structure within range. If not then it resets the countdown period for that tower
Create an action definition called Create Progress Bar
All this is doing is making a dialog item, and giving it a default progress bar, you may change this to suit the style you'd prefer
The 2nd and 3rd lines from the bottom simply change the border colour of the progress bar for each player. The way I have it set is all players on Team1 have a dark green border to indicate they are capturing it for team1. And team2 has a violet border indicating their team's color. If your map is all vs all then it's probably better to either omit these lines and use the default colouring. Or change it to a 'pick each player in all players' and assign it to their own colour
Create another action definition called Display Countdown
This one isn't entirely necessary and could simply be included amongst the next trigger, however I will be expanding on this later within my own map. And since all i'm doing is copying this from my map, you're going to have to live with it so there :P
The only thing to take note of here is the value 25, which equates to 5 seconds. Change this if you want it to modify the capture time. You'll see why 25 = 5 seconds in the next trigger.
Ok create the final trigger called Capture Countdown
We'll start with the initial setup. The conditions are simply stating that this trigger will only run if there are any units present on any of the capturable regions. These conditions are not necessary however it does save a teeny-tiny bit of cpu power by not running the trigger when it's not needed
And finally we have the meat of the whole operation. This may look a little daunting but it's actually quite simple
The first IF THEN statement is checking if there any units present that have 'capturing' priveledges. Now in my map there are creeps controlled by the AI and players only use a single hero. I want creeps to be able to block captures, but not actually capture the region themselves. So way back up in the first trigger i'm ALLOWING creeps to be added to the 'UnitsInCapRegion' unit group. But here in this trigger only 'heroic' units are allowed to perform captures. Directly underneath that condition is another. this checks to see if there are no units allied to the current owner within range. If you changed it to say < [The above condition] instead of = 0 then it would allow capturing if the attacker has more units present than the current owner/defender
I won't explain it all too much, but moving down to where it says if CapTimer[i] >= 26 means if you have been capturing it for 5 seconds. The reason it's 26 is because 0.2s is how quickly this trigger executes. Thats 5 times per second, multiplied by 5 seconds, plus an additional 1. The reason it must be +1 is because this is executed AFTER it increases the timer, in other words it's always 1 step ahead, so make it run one more time to ensure it's 5.0s and not 4.8s. I could have changed the order around but I got lazy :(
The only other things to change in this trigger is 'SlotNumberAI#' refers to my teams computer controller. If you have a team based map, change this value to any player on Team1/Team2/Team3/Team4 etc. if you have a FFA map change the line
(Number of Living units in (Units in UnitsInCapRadius[i] having alliance Ally with SlotNumberAI1, with at most Any Amount)) > 0
to
(Number of Living units in (Units in UnitsInCapRadius[i] owned by player 1, with at most Any Amount)) > 0
and the 'change ownership' command to player 1 as well. Then duplicate the IF THEN statement and change to player 2, 3, 4, 5 etc
Finally omit the line 'Run - Update Leaderboard', if you don't use a trigger for updating a leaderboard in your map
Once you're up and running it should look a little something like....