Yeah adding computer is a bish... I'm sure I don't have the map anymore. It was for a test. I remember you have to set controller in variants as computer. Also the controllers as computer.
Also I think I put computers as last two players. Don't remember why.
Is there a way to prevent hosts from moving or removing these computer players? I noticed a host did that in one of the matches I joined, which would most likely break this system.
The situation is if you have characters in your map name (menu Map > Map Info > Name) that are invalid characters for a file name:
\ / : * ? " < > |
If you attempt to output debug text to a file using the function Debug - Set the output file for debug message type Type 1 to "TriggerDebugType1.txt" (TriggerDebugSetTypeFile), the game will report an error message like this when you output debug text:
Debug file too large (> 2MB).
This error message is wrong. What's actually happening is the game uses the map's name to determine the folder name for debug files, and use of an invalid character means the file cannot be created. Blizzard forgot to check if the file was actually created. The game checks the file size, and since it doesn't exist it returns 0. Any length of text will be greater than this, so the too large error occurs.
Problem with that is I want the teams to have specific roles/functions, and people can decide which team they want to be on at the lobby screen. Could do it all ingame though, if the lobby was entirely FFA... though it's easier, more intuitive, and takes less time if team selection can be done at the lobby screen.
You can use double backslash \\ to do line breaks.
If you have a unit placed for player 1 and check its owner, it will return "1". However, player 1 can move to either team 1 or 2, so I'm not sure how that could be used to check teams.
Team 1
Player 1 - entered 3rd
Player 2 - entered 1st
Team2
Player 3 - entered 4th
Player 4 - entered 2nd
In game:
A unit placed in the editor as player 1 (the owner of this unit is player 1) etc
So then you can happily say player 1 is in team 1 no?
Here's how it works:
Team 1
Player 3 - entered 3rd
Player 1 - entered 1st
Team2
Player 4 - entered 4th
Player 2 - entered 2nd
This is different from in warcraft 3. Player number is determined by the order of joining! Player 1 will always be the first person who joins, regardless of which team they are on. My brother and I assume if player 2 leaves the next person who joins will be player 2, though we haven't tested that (doesn't relate to this topic). This is why player numbers can't be used to check teams.
I encountered this too. I had to change away from using the reaper as a result, since time scale is the easiest way to modify cooldowns for a hero, and a fundamental part of my map.
I think the problem occurs because the projectile calculation for the jump effect runs at the global time rate, while the reaper's start-jump and stop-jump instructions (wherever they may be) are running at the unit time rate. After discovering the issue I spent a few hours trying to figure out how to keep the two effects in sync, but moved on to other things.
If anyone's figured out a way to modify the visual appearance of creep to partially or completely show the terrain beneath, it'd still be helpful - have searched for ways to do this from time to time without success.
I looked at a test map I made few days earlier... I realised I only made this (<Condition> (Setting Team) value for player x == (Setting Team) value for player y) work by having a computer player on each team. If the player was allied to that computer the teams were separated to 1 or 2 or 3.
If you still have this test map, it would help. I've been messing around with the Attribute Value function and assigning computer players to teams on the Variants window for another hour now without success.
I'll try that, though it does limit the total number of players somewhat.
Thank you. Previously I'd had my computer players as hostile, and didn't realize that by changing them to computer it would allow me to assign them teams - apparently hostile controllers can't be on teams.
Ah! The function description is poorly worded, I assumed it meant the following:
AttributeA ValueA for Player X == (AttributeB ValueB)
(x,y) for player == (u,v)
In other words, a system with three known values (attributeA, attributeB, valueB) and one unknown (valueA). I was attempting to use the function to figure out what the valueA was for a player's attribute. I assumed they did the function in this manner because otherwise you'd need a dozen functions to check the value of attributes, one for each attribute.
I'm not sure I'm understanding... with that function in the link, I selected the Value option for the right hand side. The only possible values that can be selected are what I used.
If I'm misunderstanding the use of this function, what exactly is the comparison operation to check if a player is on the first team at the lobby screen in a 6v6 map?
simple
Player Group - Add player 1 to PlayerTeams[0]
Player Group - Add all players in (Allies of player 1) to PlayerTeams[0]
Player Group - Add all players in (Enemies of player 1) to PlayerTeams[1]
(for 2 teams only)
This puts players on teams, but then how can it be determined which team was the first team on the custom game lobby? I mentioned in a post above the teams have roles, and there are AI players on each team. The teams can't be arbitrarily chosen. I just need a way to check: was player X on the first or second team at the lobby screen.
Add each player to a global variable player group from team 1 (eg 3v3 add player 1, 2 and 3 to team 1).
Make a second variable and repeat (eg again 3v3, add player 4, 5 and 6 to team 2).
Have your trigger check if a given player belongs to the player group team 1 or team 2.
What you describe is like in warcraft 3, slot at the lobby determined player #, so it was a simple matter of checking player numbers.
In SC2 however, player # is determined by what order players join the game in, and is fixed regardless of what team a player is on. To test this I started a match with two people and changed myself to team 2 at the lobby screen (the host, who joined first). When the game began, my player number was still 1, not 5, and the other person's player number was still 2, not 1. Therefore player numbers can't be used to determine what team a person picked.
Has anyone found a way to detect teams, or is it impossible? I spent a morning researching this last week, and it seems no one here has figured out a way to solve this in the past week either. Really frustrating!
0
Anyone know exactly how to publish a map with a color code in the name? Like this:
<c val="fe8a0e">mapname</c>
When I attempt to do so, the file upload fails with a "client provided bad data" error.
0
Is there a way to prevent hosts from moving or removing these computer players? I noticed a host did that in one of the matches I joined, which would most likely break this system.
0
The situation is if you have characters in your map name (menu Map > Map Info > Name) that are invalid characters for a file name:
\ / : * ? " < > |
If you attempt to output debug text to a file using the function Debug - Set the output file for debug message type Type 1 to "TriggerDebugType1.txt" (TriggerDebugSetTypeFile), the game will report an error message like this when you output debug text:
Debug file too large (> 2MB).
This error message is wrong. What's actually happening is the game uses the map's name to determine the folder name for debug files, and use of an invalid character means the file cannot be created. Blizzard forgot to check if the file was actually created. The game checks the file size, and since it doesn't exist it returns 0. Any length of text will be greater than this, so the too large error occurs.
0
@Vophsix: Go
Problem with that is I want the teams to have specific roles/functions, and people can decide which team they want to be on at the lobby screen. Could do it all ingame though, if the lobby was entirely FFA... though it's easier, more intuitive, and takes less time if team selection can be done at the lobby screen.
0
@Vophsix: Go
You can use double backslash
\\
to do line breaks.If you have a unit placed for player 1 and check its owner, it will return "1". However, player 1 can move to either team 1 or 2, so I'm not sure how that could be used to check teams.
0
Here's how it works:
Team 1
Player 3 - entered 3rd
Player 1 - entered 1st
Team2
Player 4 - entered 4th
Player 2 - entered 2nd
This is different from in warcraft 3. Player number is determined by the order of joining! Player 1 will always be the first person who joins, regardless of which team they are on. My brother and I assume if player 2 leaves the next person who joins will be player 2, though we haven't tested that (doesn't relate to this topic). This is why player numbers can't be used to check teams.
0
@xenrathe: Go
I encountered this too. I had to change away from using the reaper as a result, since time scale is the easiest way to modify cooldowns for a hero, and a fundamental part of my map.
I think the problem occurs because the projectile calculation for the jump effect runs at the global time rate, while the reaper's start-jump and stop-jump instructions (wherever they may be) are running at the unit time rate. After discovering the issue I spent a few hours trying to figure out how to keep the two effects in sync, but moved on to other things.
0
If anyone's figured out a way to modify the visual appearance of creep to partially or completely show the terrain beneath, it'd still be helpful - have searched for ways to do this from time to time without success.
0
If you still have this test map, it would help. I've been messing around with the Attribute Value function and assigning computer players to teams on the Variants window for another hour now without success.
0
@zifoon: Go
I'll try that, though it does limit the total number of players somewhat.
Thank you. Previously I'd had my computer players as hostile, and didn't realize that by changing them to computer it would allow me to assign them teams - apparently hostile controllers can't be on teams.
0
@zifoon: Go
Ah! The function description is poorly worded, I assumed it meant the following:
AttributeA ValueA for Player X == (AttributeB ValueB)
(x,y) for player == (u,v)
In other words, a system with three known values (attributeA, attributeB, valueB) and one unknown (valueA). I was attempting to use the function to figure out what the valueA was for a player's attribute. I assumed they did the function in this manner because otherwise you'd need a dozen functions to check the value of attributes, one for each attribute.
0
@zifoon: Go
I'm not sure I'm understanding... with that function in the link, I selected the Value option for the right hand side. The only possible values that can be selected are what I used.
If I'm misunderstanding the use of this function, what exactly is the comparison operation to check if a player is on the first team at the lobby screen in a 6v6 map?
0
I tested this last week; checking every possible value returns no hits: Game Variants
This puts players on teams, but then how can it be determined which team was the first team on the custom game lobby? I mentioned in a post above the teams have roles, and there are AI players on each team. The teams can't be arbitrarily chosen. I just need a way to check: was player X on the first or second team at the lobby screen.
0
What you describe is like in warcraft 3, slot at the lobby determined player #, so it was a simple matter of checking player numbers.
In SC2 however, player # is determined by what order players join the game in, and is fixed regardless of what team a player is on. To test this I started a match with two people and changed myself to team 2 at the lobby screen (the host, who joined first). When the game began, my player number was still 1, not 5, and the other person's player number was still 2, not 1. Therefore player numbers can't be used to determine what team a person picked.
Has anyone found a way to detect teams, or is it impossible? I spent a morning researching this last week, and it seems no one here has figured out a way to solve this in the past week either. Really frustrating!
0
What am I missing here? When a burrowed unit moves, the BurrowMoveEffect actor does not play on the unit.
Edit: Nevermind, kept thinking something was wrong in events; didn't realize the actor is microscopically invisible in size until scaled up.