Shuffle Players Mode

chaostoderm

New Member
Reaction score
0
ok what i want here is when player 2 Blue (presumably the game host) types -sp or - shuffleplayers, each player on both teams is randomly reassigned to form 2 new teams.

I know the gist of it is to add them to an empty group and then start randomly assigning them to team A then team B. But the issue i have is how to change their colors and reassign all units they already have at this point in time. (circle of powers e.g.). For example there are 6 players, 3 on each team. Blue types -sp and the players are reassigned so now blue is now supposedly pink on team B. But his circle of power is still blue and on Team A's side of the map and he is suppose to be having pinks circle of power under his ownership. Also, for triggers using player numbers (Arrays), wouldnt blue be using number 2 although in actual fact he is already supposed to be player pink, (number 8).

So my question is how to properly assign them their new colors and all the units they are actually supposed to own (units of their new colors). And what to do about their player numbers that may affect arrays in triggers.
 

ShadowTek

New Member
Reaction score
23
Create 2 temp player groups that match the members of each team.
Pick a random player from tempforce1 and: set tempplayer1 as picked player; and set tempgroup1 as all units owned by picked player. Then remove picked player from tempforce1.
Do the same (set tempplayer2 and tempgroup2) for a random player from tempforce2.
Then change ownership of all units in tempgroup2 to tempplayer1, and vice versa.
Destroy those 2 temp variables and repeat the process until the number of players in tempforce 1 and 2 is equal to zero.

(At least that sounds like it should work.) :D

Edit: Oh yeah, and throw tempplayercolor1 and 2 into that process! I kind of forgot about that. lol
 

snowtiger

New Member
Reaction score
1
Create 2 temp player groups that match the members of each team.
Pick a random player from tempforce1 and: set tempplayer1 as picked player; and set tempgroup1 as all units owned by picked player. Then remove picked player from tempforce1.
Do the same (set tempplayer2 and tempgroup2) for a random player from tempforce2.
Then change ownership of all units in tempgroup2 to tempplayer1, and vice versa.
Destroy those 2 temp variables and repeat the process until the number of players in tempforce 1 and 2 is equal to zero.

(At least that sounds like it should work.) :D

Edit: Oh yeah, and throw tempplayercolor1 and 2 into that process! I kind of forgot about that. lol

w8 a minute... doesn't that just swap the teams around? I mean if player 2-6 are in team one, after that they are ALL going to be in team 2. So you didn't mix them...
 

ShadowTek

New Member
Reaction score
23
Yeah, thats what was going through my mind when I wrote that. :rolleyes: What he would want to do for a fully random reassignment would be create 2 temp arrays for players, units, and colors, and use that instead of the single swap method that I was describing.

But the basic idea that I was trying to communicate was that you would need to make variables to track what everything currently is, and then assign those values/possessions to the other player once you assign them to the previous player's position.

Edit: No, I don't think they would have all ended up on the same team, since it was a direct swap. He would have needed to reset the original player force variables to reflect the new player assignments though.
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,495
> wouldn't blue be using number 2

Well, yes.
You can change their color (including the units), their name and the alliances.
But you can't change the fact that that player started as player 2.


Assuming that Group is a player group that has them all:

Set TeamNumber = 1
For each Integer A from 1 to Number of Players in Group
- Set Player = Random player from Group
- Player group - Remove Player from Group
- If TeamNumber equal to 1 then
- - Player group - Add Player to Team1
- else
- - Player group - Add Player to Team2
- Set TeamNumber = 3 - TeamNumber

Player group - Make Team1 treat Team1 as an ally with shared vision
Player group - Make Team2 treat Team2 as an ally with shared vision
Player group - Make Team1 treat Team2 as an enemy
Player group - Make Team2 treat Team1 as an enemy
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top