- Joined
- Dec 19, 2007
- Messages
- 1,234
Create an aswesome map
The idea behind creating an awesome map is all about thinking, thinking and a lot, even as you shower or going to shop, you allways keep in mind the scene that is in your map and the mood, the more ideals you put into a map the more creative things to do on the map will be, allways keep your map in mind.
Once you see an epic movie, keep that feeling and try to get scanes from that movie copied into the game, since the game can't make 100% the same scane it will instead create your own version to how you describe epicness.
A funny proof for this is our real life games: people who loved warcraft 1 came to check warcraft 2, those who love warcraft 2 came to check warcraft 3, and we the players of warcraft 3 are SURE to check warcraft 4 once its finnaly out. So creating the same map just with more ideals and an improved version (faster? looks better?) gonna allways attract us. Think about any possible game on the market, they are sure to have atlist 3 version for their game, with improved ideals, visuall effects and bigger area for each version.
Start map by calling it "V0.01" and add 0.01 any version, there is no real need for log for what was changed, but as players see that map with a new version they just might come and say hellow, or even say how they loved the first version where that hero was available XD
When you create your map you have to focus of a few things: Mechanics, Storyline, Visuals and difficulty.
Orb Effects
Searing Arrows + Orb of Venom = Stacks for ranged.
Critical Strike + Bash = Only one at a time for ranged, can be at same time for melee.
Critical Strike 100% + Bash / Crit = 100% only for ranged, same time for melee.
* PULVERIZE on ranged attacker?! = Stacks. The damage is done arround the attacker, not arround the target.
Orb of venom + Split shot (steam tank passive with 0 as base damage) = stacks, on the main target.
Attacking with the same attacker unit model as missle = The unit dies after the attack so a potm which has arrows that look like a potm will die after she attacked, same goes for a storm bolt modeled unit casting a storm bolt.
Phoenix Fire + an attack = Stacks, even if it has the same model so you can use potm with arrows that look like potm flying automaticly from her and she will not die.
Phoenix Fire + Phoenix Fire = only stacks on 0.01 buff placement, it might select different target or skip the target that has the buff when the missle went out.
Orb of venom / Envenomed weaponds / Slow poison / Orb of slow does not stack.
Orb of fire + Envenomed Weapond? dunno if stack, the damage in "data 1" is the damage which will splash with spells attack type, this means that an attack of a hero with orb of fire that deals 10 damage will do a fixed 10 damage to surrounding area unless they have spell immunity.
Wind walk does damage type that match the user attack type and it will never place orb of venom buff on an air unit.
Orb of Fire + Cleaving attack1 + Cleaving attack2 + Cleaving attack3 = stacks for melee. ranged unit can use the advantage of Cleaving attack and even Vampiric aura if this unit was originaly melee and gained extra range thanks to range upgrade, the unit attack will never create a missle, but its possible to attack with "lightning attack" which like chimera, looks somewhat like a ranged attack depite not being a missle (the model of lightning attack can be edited into any lightning effect like Drain Life).
List of possible and impoossible orbs: http://www.playdota.com/mechanics/Orb_Effects Credit to icefrog xD.
Make an Ability
Making BRILLANCE AURA with 1 level out of HERO will cause bigger loading screen time than using BRILLACE AURA out of item, which don't have 3 levels and its even less costy than a UNIT based brilance aura since a unit has a tooltip, unlike the item version.
Is this princeple applies to all new created abilities at all?
yes, all abilities that created from item takes less loading time, since items abilities has 1 level and no tooltip, the reason is because that an ability is created by this order upon loading screen:
1) computer create original ability.
2) computer change that original ability to fit the new abilty in the editor.
Due to this order, abilities that are originaly with less data will create less pressure on step 1 than abilities with bigger data. So since all items comes with level 1 and no tooltip, they all are allways better.
Note: you can find intresting results when you shift click ability and write down a negetive value:
Cleave attack can heal nearby allies based on the damage that your pitlord dealt. XD
Bloodlust can shrink the effected unit. XD
Just remember: Using negetive values allways had a map file destroying effect! so make sure to save the map file twise. Version 0.01 -> V 0.020 + V 0.02.
Make a Trigger
Create a point named p and place it in your variables, whenever you get an action which asks for point, use that p, no expections, if there is an exeption is about creating p2 - a place that is different from p and is needed at the same time: example: p = position of unit. p2 = (p) offset with 700 range toward (triggering unit corrent facing). **do something with p or p2** . Custom script call RemoveLocation(udg_p). Custom script call RemoveLocation(udg_p2).
that might be used for spells like Shadow from Dota which throw spell damage in 700 ranged toward its facing.
Bad: dont do set real1 = x of p set real2 = y of p, then create unit in (real1,real2), this create a loaction that is leaking, instead you may use: set real1 = x of p set real2 = y of p, Custom script call RemoveLocation(udg_p). and then in another trigger use those saved reals to pull out that point, not losing the point from trigger to trigger -> set p = (real1,real2). do something with p. Custom script call RemoveLocation(udg_p). Note that it works better if you have real1 and real2 saved in hashtables but I leave this explain for later.
Create a unit group named ug and place it in your variables, whenever you get an action which asks for a unit group, use that ug, allways.
examples: set p = position of triggering unit. set p2 = position of target unit of ability being cast. set ug = all living units in 700 area from p. set ug2 = all living units in 700 area from p2 . pick every unit in ug { if (picked unit is enemy) if (level of invulenable netural is 0 for picked unit) if (picked unit is not mechanical) then deal 100 damage to picked unit.
pick every unit in ug { if (picked unit is enemy) if (level of invulenable netural is 0 for picked unit) if (picked unit is not mechanical) then deal 100 damage to picked unit. Custom script call RemoveLocation(udg_p). Custom script call RemoveLocation(udg_p2). Custom script call DestroyGroup(udg_ug). Custom script call DestroyGroup(udg_ug2).
Hashtable is like a variable that is attached to unit, instead of INT[1] = 1 and a different use of this strategy of using an attached data is UnitIndexer which refer to any new created unit like this: INT[counter of created unit on the map] = 1 is HASHTABLE. since HASHTABLE can create a maximum of 100 hashtables per map, if you going to create more than 100 custom abilities you are going to NEED Unit indexer, but if you create less than 100 abilities, you can use hashtables which are more simple to use, once you get used to them.
Trigger 1) MAP INITIATION: create hastable set Hash1= last created hastable.
Trigger 2) Unit started an ability. ability equalls to PoisonToGroup. set p = poistion of ability being cast. set ug = all living unit in 700 area from p. pick all units in ug and do{ set Int = 5. set unit = triggering unit. Save Int as 1 of key(PICKED UNIT) in Hash1. Save unit as 2 of key(PICKED UNIT) in Hash1. add picked unit to UnitGroupPoison. (yes its true, the number of spells is the number of actuall variable of unit groups, I never found a better way to do it, but I might be wrong) call DestroyGroup(udg_ug) call RemoveLocation(udg_p). Turn on Trigger 3.
Trigger 3) Every 1 second of the game: pick every unit in UnitGroupPoison and do { set Int = load 1 of KEY(PICKED UNIT) from hash1
set Int = load 2 of KEY(PICKED UNIT) from hash1. cause unit to deal 10 damage of type spell. set Int = int-1. save int as 1 of key(PICKED UNIT) in hash1. if int = 0 { remove picked unit from UnitGroupPoison. remove all child from picked unit. if UnitGroupPoison is empty turn off trigger3.
I bet this one was a bit confusing and it took me a lot of trys to get it right, but if you done it like I wrote, everything go smoothly, and be sure to check all of them turituals suggested for hashtable since it takes time to get used to.
Handeling the Forum
Be a buddy! I left posts with readers who discouraged me from trying and choose to not help them, when someone do something good for you give them +Rep, even for little things, even for trying to help, even for irrelivant to the corrent converstion things, even just to spread, the new system allows us to give something like 10 reputation points a day so now we have to worry about that but still BE A FRIEND.
Obey Rules, I took years to get used to APPOCALIPS who give negetive reputation for double posts and only last year I started to stop hating him, just obey the rules, or he will be there to annoy you -_- .
To fix double post go to the second post and press edit, save with control C and make sure you don't ctrl c again for another text or you lose it, go delete on the second post, go edit the first post and press controll V and then press save. Since editing wont show a new massage for all of the corrent writers, you may indeed create a new massage contain "123456" (6 is the minimal digits for a message) and delete it afterwards, nobody will notice unless they have super fast computer, I was only seen once all those years xD.
Do not post Abilities that are made for noob map maker, don't post anything simple and easy to make as an ability, you will get a very bad attantion since the custom spell area is not meant for people with awesome use of built-in ability, but instead is a place that force you to give credit to random persons on this site, I had a huge argument about that subject and that was the conclution me and the other chatters come to, the abilities area is only for highly complecated triggers and the thread is made for forcing people into giving credit (or else your map will not be approved if you tried to post a map) take my advice, take nothing from there, it just won't worth it.
Don't use too many colored letters, a text in white with {B} and {U} is enough, or else you get private mails -_- also, red for danger should be well placed.
DO NOT CREATE PASSWORDS WHICH ARE HARD TO REMEMBER the only one that really has the ability to steal your password is a person which is watching you typing the password, in your room, there is no reason to create a password with 18 letters and 12 numbers, the only one who will have a hard time decoding it is you, when you forgot it.
Edits:
28/10/13 Windwalk attack fix, custom script "call RemoveLocation" fix, a few misspells fix and merging the double post.
09/11/13 Added a link to a list that shows orbs effects stackability.
29/11/13 Added a guide about Negetive Values.
The idea behind creating an awesome map is all about thinking, thinking and a lot, even as you shower or going to shop, you allways keep in mind the scene that is in your map and the mood, the more ideals you put into a map the more creative things to do on the map will be, allways keep your map in mind.
Once you see an epic movie, keep that feeling and try to get scanes from that movie copied into the game, since the game can't make 100% the same scane it will instead create your own version to how you describe epicness.
A funny proof for this is our real life games: people who loved warcraft 1 came to check warcraft 2, those who love warcraft 2 came to check warcraft 3, and we the players of warcraft 3 are SURE to check warcraft 4 once its finnaly out. So creating the same map just with more ideals and an improved version (faster? looks better?) gonna allways attract us. Think about any possible game on the market, they are sure to have atlist 3 version for their game, with improved ideals, visuall effects and bigger area for each version.
Start map by calling it "V0.01" and add 0.01 any version, there is no real need for log for what was changed, but as players see that map with a new version they just might come and say hellow, or even say how they loved the first version where that hero was available XD
When you create your map you have to focus of a few things: Mechanics, Storyline, Visuals and difficulty.
Orb Effects
Searing Arrows + Orb of Venom = Stacks for ranged.
Critical Strike + Bash = Only one at a time for ranged, can be at same time for melee.
Critical Strike 100% + Bash / Crit = 100% only for ranged, same time for melee.
* PULVERIZE on ranged attacker?! = Stacks. The damage is done arround the attacker, not arround the target.
Orb of venom + Split shot (steam tank passive with 0 as base damage) = stacks, on the main target.
Attacking with the same attacker unit model as missle = The unit dies after the attack so a potm which has arrows that look like a potm will die after she attacked, same goes for a storm bolt modeled unit casting a storm bolt.
Phoenix Fire + an attack = Stacks, even if it has the same model so you can use potm with arrows that look like potm flying automaticly from her and she will not die.
Phoenix Fire + Phoenix Fire = only stacks on 0.01 buff placement, it might select different target or skip the target that has the buff when the missle went out.
Orb of venom / Envenomed weaponds / Slow poison / Orb of slow does not stack.
Orb of fire + Envenomed Weapond? dunno if stack, the damage in "data 1" is the damage which will splash with spells attack type, this means that an attack of a hero with orb of fire that deals 10 damage will do a fixed 10 damage to surrounding area unless they have spell immunity.
Wind walk does damage type that match the user attack type and it will never place orb of venom buff on an air unit.
Orb of Fire + Cleaving attack1 + Cleaving attack2 + Cleaving attack3 = stacks for melee. ranged unit can use the advantage of Cleaving attack and even Vampiric aura if this unit was originaly melee and gained extra range thanks to range upgrade, the unit attack will never create a missle, but its possible to attack with "lightning attack" which like chimera, looks somewhat like a ranged attack depite not being a missle (the model of lightning attack can be edited into any lightning effect like Drain Life).
List of possible and impoossible orbs: http://www.playdota.com/mechanics/Orb_Effects Credit to icefrog xD.
Make an Ability
Making BRILLANCE AURA with 1 level out of HERO will cause bigger loading screen time than using BRILLACE AURA out of item, which don't have 3 levels and its even less costy than a UNIT based brilance aura since a unit has a tooltip, unlike the item version.
Is this princeple applies to all new created abilities at all?
yes, all abilities that created from item takes less loading time, since items abilities has 1 level and no tooltip, the reason is because that an ability is created by this order upon loading screen:
1) computer create original ability.
2) computer change that original ability to fit the new abilty in the editor.
Due to this order, abilities that are originaly with less data will create less pressure on step 1 than abilities with bigger data. So since all items comes with level 1 and no tooltip, they all are allways better.
Note: you can find intresting results when you shift click ability and write down a negetive value:
Cleave attack can heal nearby allies based on the damage that your pitlord dealt. XD
Bloodlust can shrink the effected unit. XD
Just remember: Using negetive values allways had a map file destroying effect! so make sure to save the map file twise. Version 0.01 -> V 0.020 + V 0.02.
Make a Trigger
Create a point named p and place it in your variables, whenever you get an action which asks for point, use that p, no expections, if there is an exeption is about creating p2 - a place that is different from p and is needed at the same time: example: p = position of unit. p2 = (p) offset with 700 range toward (triggering unit corrent facing). **do something with p or p2** . Custom script call RemoveLocation(udg_p). Custom script call RemoveLocation(udg_p2).
that might be used for spells like Shadow from Dota which throw spell damage in 700 ranged toward its facing.
Bad: dont do set real1 = x of p set real2 = y of p, then create unit in (real1,real2), this create a loaction that is leaking, instead you may use: set real1 = x of p set real2 = y of p, Custom script call RemoveLocation(udg_p). and then in another trigger use those saved reals to pull out that point, not losing the point from trigger to trigger -> set p = (real1,real2). do something with p. Custom script call RemoveLocation(udg_p). Note that it works better if you have real1 and real2 saved in hashtables but I leave this explain for later.
Create a unit group named ug and place it in your variables, whenever you get an action which asks for a unit group, use that ug, allways.
examples: set p = position of triggering unit. set p2 = position of target unit of ability being cast. set ug = all living units in 700 area from p. set ug2 = all living units in 700 area from p2 . pick every unit in ug { if (picked unit is enemy) if (level of invulenable netural is 0 for picked unit) if (picked unit is not mechanical) then deal 100 damage to picked unit.
pick every unit in ug { if (picked unit is enemy) if (level of invulenable netural is 0 for picked unit) if (picked unit is not mechanical) then deal 100 damage to picked unit. Custom script call RemoveLocation(udg_p). Custom script call RemoveLocation(udg_p2). Custom script call DestroyGroup(udg_ug). Custom script call DestroyGroup(udg_ug2).
Hashtable is like a variable that is attached to unit, instead of INT[1] = 1 and a different use of this strategy of using an attached data is UnitIndexer which refer to any new created unit like this: INT[counter of created unit on the map] = 1 is HASHTABLE. since HASHTABLE can create a maximum of 100 hashtables per map, if you going to create more than 100 custom abilities you are going to NEED Unit indexer, but if you create less than 100 abilities, you can use hashtables which are more simple to use, once you get used to them.
Trigger 1) MAP INITIATION: create hastable set Hash1= last created hastable.
Trigger 2) Unit started an ability. ability equalls to PoisonToGroup. set p = poistion of ability being cast. set ug = all living unit in 700 area from p. pick all units in ug and do{ set Int = 5. set unit = triggering unit. Save Int as 1 of key(PICKED UNIT) in Hash1. Save unit as 2 of key(PICKED UNIT) in Hash1. add picked unit to UnitGroupPoison. (yes its true, the number of spells is the number of actuall variable of unit groups, I never found a better way to do it, but I might be wrong) call DestroyGroup(udg_ug) call RemoveLocation(udg_p). Turn on Trigger 3.
Trigger 3) Every 1 second of the game: pick every unit in UnitGroupPoison and do { set Int = load 1 of KEY(PICKED UNIT) from hash1
set Int = load 2 of KEY(PICKED UNIT) from hash1. cause unit to deal 10 damage of type spell. set Int = int-1. save int as 1 of key(PICKED UNIT) in hash1. if int = 0 { remove picked unit from UnitGroupPoison. remove all child from picked unit. if UnitGroupPoison is empty turn off trigger3.
I bet this one was a bit confusing and it took me a lot of trys to get it right, but if you done it like I wrote, everything go smoothly, and be sure to check all of them turituals suggested for hashtable since it takes time to get used to.
Handeling the Forum
Be a buddy! I left posts with readers who discouraged me from trying and choose to not help them, when someone do something good for you give them +Rep, even for little things, even for trying to help, even for irrelivant to the corrent converstion things, even just to spread, the new system allows us to give something like 10 reputation points a day so now we have to worry about that but still BE A FRIEND.
Obey Rules, I took years to get used to APPOCALIPS who give negetive reputation for double posts and only last year I started to stop hating him, just obey the rules, or he will be there to annoy you -_- .
To fix double post go to the second post and press edit, save with control C and make sure you don't ctrl c again for another text or you lose it, go delete on the second post, go edit the first post and press controll V and then press save. Since editing wont show a new massage for all of the corrent writers, you may indeed create a new massage contain "123456" (6 is the minimal digits for a message) and delete it afterwards, nobody will notice unless they have super fast computer, I was only seen once all those years xD.
Do not post Abilities that are made for noob map maker, don't post anything simple and easy to make as an ability, you will get a very bad attantion since the custom spell area is not meant for people with awesome use of built-in ability, but instead is a place that force you to give credit to random persons on this site, I had a huge argument about that subject and that was the conclution me and the other chatters come to, the abilities area is only for highly complecated triggers and the thread is made for forcing people into giving credit (or else your map will not be approved if you tried to post a map) take my advice, take nothing from there, it just won't worth it.
Don't use too many colored letters, a text in white with {B} and {U} is enough, or else you get private mails -_- also, red for danger should be well placed.
DO NOT CREATE PASSWORDS WHICH ARE HARD TO REMEMBER the only one that really has the ability to steal your password is a person which is watching you typing the password, in your room, there is no reason to create a password with 18 letters and 12 numbers, the only one who will have a hard time decoding it is you, when you forgot it.
Edits:
28/10/13 Windwalk attack fix, custom script "call RemoveLocation" fix, a few misspells fix and merging the double post.
09/11/13 Added a link to a list that shows orbs effects stackability.
29/11/13 Added a guide about Negetive Values.
Last edited: