Need Help Again
I'm having problems getting the Sensor Group Colors TO Function.
This is what I have:
The goal is to have team 30 be purple and team 29 to be yellow/gold
This is what I have:
function DefaultGame::missionLoadDone(%game)
{
// walks through the mission group and sets the power stuff up
// - groups get initialized with power count 0 then iterated to
// increment powercount if an object within is powered
// - powers objects up/down
//MissionGroup.objectiveInit();
MissionGroup.clearPower();
MissionGroup.powerInit(0);
%game.initGameVars(); //set up scoring variables and other game specific globals
// make team0 visible/friendly to all
setSensorGroupAlwaysVisMask(0, 0xffffffff);
setSensorGroupFriendlyMask(0, 0xffffffff);
//and Teams 29 & 28
setSensorGroupAlwaysVisMask(29, 0xffffffff);
setSensorGroupFriendlyMask(29, 0xffffffff);
setSensorGroupAlwaysVisMask(28, 0xffffffff);
setSensorGroupFriendlyMask(28, 0xffffffff);
// update colors:
// - enemy teams are red
// - same team is green
// - team 0 is white
for(%i = 0; %i < 32; %i++)
{
// %team = (1 << %i);
// setSensorGroupColor(%i, %team, "0 255 0 255");
// setSensorGroupColor(%i, ~%team, "255 0 0 255");
// setSensorGroupColor(%i, 1, "255 255 255 255");
// setSensorGroupColor(%i, 6, "255 0 255 255");//Purple (Zombies, Team 30)
%team = (1 << %i);
//Make sure your not changing your teams color
//If not change the enemy team's sensor color
if(%i == 0) {
setSensorGroupColor(%i,%team, "255 255 255 255");//White(Obs)
}
else if(%i == 30) {
for(%x=0; %x < 32; %x++) {
setSensorGroupColor(%i, %x, "255 0 255 255");
}
}
else if(%i == 29) {
for(%x=0; %x < 32; %x++) {
setSensorGroupColor(%i, %x, "255 255 0 255");
}
}
else {
setSensorGroupColor(%i, %team, "255 0 0 255");
}
//----
setSensorGroupColor(%i,%team, "0 255 0 255");//Green of course
// setup the team targets (alwyas friendly and visible to same team)
setTargetAlwaysVisMask(%i, %team);
setTargetFriendlyMask(%i, %team);
}
//set up the teams
%game.setUpTeams();
//clear out the team rank array...
for (%i = 0; %i < 32; %i++)
$TeamRank[%i, count] = "";
// objectiveInit has to take place after setupTeams -- objective HUD relies on flags
// having their team set
MissionGroup.objectiveInit();
//initialize the AI system
%game.aiInit();
//need to reset the teams if we switch from say, CTF to Bounty...
// assign the bots team
if ($currentMissionType !$= $previousMissionType)
{
$previousMissionType = $currentMissionType;
for(%i = 0; %i < ClientGroup.getCount(); %i++)
{
%cl = ClientGroup.getObject(%i);
if (%cl.isAIControlled())
%game.assignClientTeam(%cl);
}
}
//Save off respawn or Siege Team switch information...
if(%game.class !$= "SiegeGame")
MissionGroup.setupPositionMarkers(true);
echo("Default game mission load done.");
}
The goal is to have team 30 be purple and team 29 to be yellow/gold

Comments
Thus, if green were set for %i=29 and %team=(1 << 29), team 29 would see team 29 as green.
If %i=29 and you applied the bitwise NOT operator to make ~%team, it would set team 29 to see any other team as the colour you selected (assuming the team is properly set up).
Were you to set %team=(1 << 29) on every team %i except 29, the other teams would see 29 as the colour you set (though it can play willy-nilly on your radar if set improperly).