I read the huge topic explaining how to create game attributes and use them in the lobby while creating a game, but I'm having a serious issue (besides getting pissed off by this whole lobby thing that seems to never work properly for almost anybody).
I tried:
-using game variants (there is already a difficulty field): It doesn't even show in the lobby, whether I lock it or not, whether I'm the host or not. Seems pretty much pointless anyway, or at least completely bugged.
-using game attributes, I created a menu for the host that lets him choose between each difficulty level.
Ex: When I set the difficulty to Very Easy, it sets the game difficulty for player 1 (the host) to Very Easy. So far, no problem and it seems like the difficulty REALLY is set to Very Easy as I asked (I have a text line displaying the difficulty level and it works right).
But it seems like preplaced units (ie. units placed using the Terrain Editor) do not show properly. In the Terrain editor, you can set at which level units appear or when they don't, but it seems setting the difficulty in the lobby does not change that, whatever I try... It just takes the default difficulty level set in the game attributes (ie. Medium, in that case).
I'm clueless on how to make it so the difficulty parameters chosen in the lobby would actually show/hide units depending on what difficulty level they should appear (or not!).
I searched the forums but couldn't find anyone who even tried to play with the difficulty so far. Is that even possible? How would you do it? It's probably because my map init trigger isn't done well, but I'm not sure what to do...
I still haven't found any way to host a game where units are hidden/shown depending on their difficulty level properties... It's a very easy process when launching the map from the editor (modify the unit properties for each difficulty levels, and set the difficulty you want to play the map in the Editor preferences) but it seems the lobby in multiplayer doesn't allow this to be done. I tried multiple settings (custom game variable, editing game variants, setting the difficulty when the map initializes) but it seems the game ALWAYS starts in medium difficulty, no matter what I try. Or, at least, the units shown ingame are those set to appear in medium difficulty only. Did someone found a way to do this?
I think I could use a switch depending on the value of the custom game variable I created, with an action that will show/hide units if they are supposed to. But I can't seem to find any preset or function or anything that is able to check in the unit properties if it's shown/hidden in the current difficulty level. I'm completely stuck (and so is the release of my map)... Do you have any clue?
I've had the same problems today and I figured it out. I've attached a screenshot to this post. It's not a complete tutorial but with what you'Ve posted I figured that you are experienced enoguh to understand it.
Thanks, but I've already done this and it doesn't really work. It looks like it does, but it doesn't. Let me explain why:
This is what I want:
(unit NOT appearing unless you're at least on Hard)
This is how my custom variant shows in the lobby:
(in this example, I tried to play on Very Hard to prove my point)
This shows that my trigger (which is like yours) actually apply the difficulty settings when ingame:
And THIS, my friend, is a huge WTF moment:
(the unit which is supposed to show in Very Hard doesn't... yet it does when I launch the map from the editor after setting the preferences)
As you can see, the difficulty is set, but the units shown are only those in Medium difficulty, not those of the difficulty chosen in the lobby. I tried to modify the game variant default value to Insane (to check if it uses the default or just spawn Medium units everytime) and it seems to always use Medium. Which is weird, since the difficulty is set to whatever I choose in the lobby AND units spawned through triggers work with the difficulty settings I selected. The only problem is that pre-placed units won't show properly.
As far as I understand AI difficulty is different than map difficulty. My theory is that AI difficulty is used for melee type and has 6 different difficulty levels which can be seperate for each AI player. On the other hand mission difficulty determines the the difficulty of scenario as a whole, but is actually nothing more than a variable whose meaning has to be determined by the editor. One should then use triggers which refer to these difficulty settings in order to manipulate the map.
The bottom half of my screenshot shows how the lobby settings determined the overall difficulty. With If/Then/Else Triggers I manipulate the game world. For example: I have regions that are named "Difficulty - Remove Brutal", "Difficulty - Remove Hard" or "Difficulty - Remove Normal". There are different types of units in each region. I have triggers that tell the game to remove these units depening on the difficulty chosen in the game lobby.
There could be a way to do it your way, but I think I remember seeing maps of Blizzard where they do both.
add: I just looked at a Blizzard map. They actually have only 4 difficulty settings where "our" usual sixes are, all differently named. I wonder how they do it...
add2: I did some further digging. There seem to be settings in the Data Edtior (Gampleay Data-Default Gameplay Setting-Difficulty Level+) that control these. It's what Blizzard used to have 4 uinstead of 6 difficulty levels, but it shouldn't bother us since we have to do things by the lobby.
In any way: The first screenshot you posted is the best example: The difficulty in there isn't about overall map difficulty but the difficulty specific to the (AI) Player who uses that unit. This setting can also be manipulated in the lobby, but only for that player. Best example are melee maps where you can set difficulty levels for each player.
I have triggers that tell the game to remove these units depening on the difficulty chosen in the game lobby.
That's pretty much what I'd like to do since I can't find any other way, but I have around 100 units in the map (and there will be much more when the 2nd half is done)... It would require 6 triggers (one for each difficulty level) telling which of the 100 units should appear or not... 600 lines split in 6 pointless triggers, just for difficulty detection?!?! There has to be a better way.
I would do a "pick each unit" if I could, but not only there are 100 units, there are also 5 types of them and they are everywhere on the map. Some of them appear in a difficulty level, then do not show on the next level and finally are here again in the highest levels... Which means I'll have to check 100 units one by one, just to know when they show, and add a line in each of the 6 triggers to remove this unit or not... This is madness, it will take hours for almost nothing and I will obviously make a mistake at some point.
Isn't there ANY way to grab the values of the AI level of the unit, so that I can do a "pick each unit in (AI difficulty X)" and show/hide them? There seems to be something to check the "available for attack waves" option through triggers, so maybe we can get the AI level value somehow? I searched in triggers and libraries but couldn't find anything...
There must be something that some units have in common, something that seperates them into groups. unit type, position on map. Or maybe you should use fewer difficulties. I'm sorry I don't have a solution. I use 45 lines for roughly 200 units and 4 difficulty settings. I place regions under each unit that should be manipulated by a difficulty variable and combine these(In case you didn't know: You can combine regions with NumPad 0). Then I need only one line to remove all units in each of these regions (because they are combined).
I didn't know about combining regions, thanks for the useful tip! I'll try something from there and see how it goes. It might be a bit more complicated with a few units (because they use difficulty settings in a way others don't), but since there are ony a dozen of them it should not be too much trouble.
I know this is unrelated but the bit about combining regions is super helpful...Thanks for posting that. lol
Who would have guessed, huh? Seriously, who uses the Numpad anyway... :D
By the way, I just applied the "combining regions" method and it works perfectly fine. Thanks again (though I really hope I will NEVER have to move my units and redo the regions again, because it's soooooo boring...).
The funny thing about the merge regions thing is that (at least for me), whenever you create a new region and want to merge it into an existing region that has custom color, name and is used in triggers, it never destroys that old region but merges the new one into it.
But enough with the blabla... You can split merged regions with Ctrl+NumPad 0.
I used to do that the hard way (creating new shapes inside the properties of a region) until I read an official Blizzard mapping faq that was posted on Mapster.com-frontpage. God, I miss those faqs :(
Hopefully Blizzard changes the way regions are handled and lets us actually paint them like textures :)
@zeldarules28 it's nice to know that you can learn from me. Your tutorials were actually the first I read when I started with the SC2 Editor. They helped me a lot when moving from WC3 to SC2 :D
I read the huge topic explaining how to create game attributes and use them in the lobby while creating a game, but I'm having a serious issue (besides getting pissed off by this whole lobby thing that seems to never work properly for almost anybody).
I tried:
-using game variants (there is already a difficulty field): It doesn't even show in the lobby, whether I lock it or not, whether I'm the host or not. Seems pretty much pointless anyway, or at least completely bugged.
-using game attributes, I created a menu for the host that lets him choose between each difficulty level.
Ex: When I set the difficulty to Very Easy, it sets the game difficulty for player 1 (the host) to Very Easy. So far, no problem and it seems like the difficulty REALLY is set to Very Easy as I asked (I have a text line displaying the difficulty level and it works right).
But it seems like preplaced units (ie. units placed using the Terrain Editor) do not show properly. In the Terrain editor, you can set at which level units appear or when they don't, but it seems setting the difficulty in the lobby does not change that, whatever I try... It just takes the default difficulty level set in the game attributes (ie. Medium, in that case).
I'm clueless on how to make it so the difficulty parameters chosen in the lobby would actually show/hide units depending on what difficulty level they should appear (or not!).
I searched the forums but couldn't find anyone who even tried to play with the difficulty so far. Is that even possible? How would you do it? It's probably because my map init trigger isn't done well, but I'm not sure what to do...
BUMP!
I still haven't found any way to host a game where units are hidden/shown depending on their difficulty level properties... It's a very easy process when launching the map from the editor (modify the unit properties for each difficulty levels, and set the difficulty you want to play the map in the Editor preferences) but it seems the lobby in multiplayer doesn't allow this to be done. I tried multiple settings (custom game variable, editing game variants, setting the difficulty when the map initializes) but it seems the game ALWAYS starts in medium difficulty, no matter what I try. Or, at least, the units shown ingame are those set to appear in medium difficulty only. Did someone found a way to do this?
I think I could use a switch depending on the value of the custom game variable I created, with an action that will show/hide units if they are supposed to. But I can't seem to find any preset or function or anything that is able to check in the unit properties if it's shown/hidden in the current difficulty level. I'm completely stuck (and so is the release of my map)... Do you have any clue?
I've had the same problems today and I figured it out. I've attached a screenshot to this post. It's not a complete tutorial but with what you'Ve posted I figured that you are experienced enoguh to understand it.
Thanks, but I've already done this and it doesn't really work. It looks like it does, but it doesn't. Let me explain why:
This is what I want:
(unit NOT appearing unless you're at least on Hard)
This is how my custom variant shows in the lobby:
(in this example, I tried to play on Very Hard to prove my point)
This shows that my trigger (which is like yours) actually apply the difficulty settings when ingame:
And THIS, my friend, is a huge WTF moment:
(the unit which is supposed to show in Very Hard doesn't... yet it does when I launch the map from the editor after setting the preferences)
As you can see, the difficulty is set, but the units shown are only those in Medium difficulty, not those of the difficulty chosen in the lobby. I tried to modify the game variant default value to Insane (to check if it uses the default or just spawn Medium units everytime) and it seems to always use Medium. Which is weird, since the difficulty is set to whatever I choose in the lobby AND units spawned through triggers work with the difficulty settings I selected. The only problem is that pre-placed units won't show properly.
As far as I understand AI difficulty is different than map difficulty. My theory is that AI difficulty is used for melee type and has 6 different difficulty levels which can be seperate for each AI player. On the other hand mission difficulty determines the the difficulty of scenario as a whole, but is actually nothing more than a variable whose meaning has to be determined by the editor. One should then use triggers which refer to these difficulty settings in order to manipulate the map.
The bottom half of my screenshot shows how the lobby settings determined the overall difficulty. With If/Then/Else Triggers I manipulate the game world. For example: I have regions that are named "Difficulty - Remove Brutal", "Difficulty - Remove Hard" or "Difficulty - Remove Normal". There are different types of units in each region. I have triggers that tell the game to remove these units depening on the difficulty chosen in the game lobby.
There could be a way to do it your way, but I think I remember seeing maps of Blizzard where they do both.
add: I just looked at a Blizzard map. They actually have only 4 difficulty settings where "our" usual sixes are, all differently named. I wonder how they do it...
add2: I did some further digging. There seem to be settings in the Data Edtior (Gampleay Data-Default Gameplay Setting-Difficulty Level+) that control these. It's what Blizzard used to have 4 uinstead of 6 difficulty levels, but it shouldn't bother us since we have to do things by the lobby.
In any way: The first screenshot you posted is the best example: The difficulty in there isn't about overall map difficulty but the difficulty specific to the (AI) Player who uses that unit. This setting can also be manipulated in the lobby, but only for that player. Best example are melee maps where you can set difficulty levels for each player.
That's pretty much what I'd like to do since I can't find any other way, but I have around 100 units in the map (and there will be much more when the 2nd half is done)... It would require 6 triggers (one for each difficulty level) telling which of the 100 units should appear or not... 600 lines split in 6 pointless triggers, just for difficulty detection?!?! There has to be a better way.
I would do a "pick each unit" if I could, but not only there are 100 units, there are also 5 types of them and they are everywhere on the map. Some of them appear in a difficulty level, then do not show on the next level and finally are here again in the highest levels... Which means I'll have to check 100 units one by one, just to know when they show, and add a line in each of the 6 triggers to remove this unit or not... This is madness, it will take hours for almost nothing and I will obviously make a mistake at some point.
Isn't there ANY way to grab the values of the AI level of the unit, so that I can do a "pick each unit in (AI difficulty X)" and show/hide them? There seems to be something to check the "available for attack waves" option through triggers, so maybe we can get the AI level value somehow? I searched in triggers and libraries but couldn't find anything...
There must be something that some units have in common, something that seperates them into groups. unit type, position on map. Or maybe you should use fewer difficulties. I'm sorry I don't have a solution. I use 45 lines for roughly 200 units and 4 difficulty settings. I place regions under each unit that should be manipulated by a difficulty variable and combine these(In case you didn't know: You can combine regions with NumPad 0). Then I need only one line to remove all units in each of these regions (because they are combined).
I didn't know about combining regions, thanks for the useful tip! I'll try something from there and see how it goes. It might be a bit more complicated with a few units (because they use difficulty settings in a way others don't), but since there are ony a dozen of them it should not be too much trouble.
I know this is unrelated but the bit about combining regions is super helpful...Thanks for posting that. lol
Who would have guessed, huh? Seriously, who uses the Numpad anyway... :D
By the way, I just applied the "combining regions" method and it works perfectly fine. Thanks again (though I really hope I will NEVER have to move my units and redo the regions again, because it's soooooo boring...).
The funny thing about the merge regions thing is that (at least for me), whenever you create a new region and want to merge it into an existing region that has custom color, name and is used in triggers, it never destroys that old region but merges the new one into it.
But enough with the blabla... You can split merged regions with Ctrl+NumPad 0.
I used to do that the hard way (creating new shapes inside the properties of a region) until I read an official Blizzard mapping faq that was posted on Mapster.com-frontpage. God, I miss those faqs :(
Hopefully Blizzard changes the way regions are handled and lets us actually paint them like textures :)
@zeldarules28 it's nice to know that you can learn from me. Your tutorials were actually the first I read when I started with the SC2 Editor. They helped me a lot when moving from WC3 to SC2 :D