:D, main 'team' class/team select base code and stuff crap
Wow this is messy cause I'm writing it in Torsion which has weird indentation.
package tf2_tdm
{
function miniGameCanDamage(%obj1,%obj2)
{
if(!isObject(%obj1) || !isObject(%obj2))
return Parent::miniGameCanDamage(%obj1,%obj2);
%val = Parent::miniGameCanDamage(%obj1,%obj2);
if(%val != 1)
return %val;
switch$(%obj1.getClassName())
{
case "Player":
%cl1 = %obj1.client;
%tm1 = %obj1.client.tf2_team;
case "AIPlayer":
if(isObject(%obj1.client))
%cl1 = %obj1.client;
else
%cl1 = -1;
%tm1 = %obj1.tf2_team;
case "Projectile":
%cl1 = %obj1.client;
%tm1 = %obj1.client.tf2_team;
case "AIConnection":
%cl1 = %obj1;
case "GameConnection":
%cl1 = %obj1;
case "fxDTSBrick":
return 1;
}
switch$(%obj2.getClassName())
{
case "Player":
%cl2 = %obj2.client;
%tm2 = %obj2.client.tf2_team;
case "AIPlayer":
if(isObject(%obj2.client))
%cl2 = %obj2.client;
else
%cl2 = %obj2.client;
%tm2 = %obj2.tf2_team;
case "Projectile":
%cl2 = %obj2.client;
%tm2 = %obj2.client.tf2_team;
case "AIConnection":
%cl1 = %obj1;
case "GameConnection":
%cl2 = %obj2;
case "fxDTSBrick":
return 1;
}
if(%tm1 $= %tm2)
return 0;
else if(%tm1 !$= %tm2)
return 1;
}
function servercmdDropPlayerAtCamera(%cl)
{
if($TF2::System::F7ChangeTeamDisabled)
{
Parent::servercmdDropPlayerAtCamera(%cl);
return;
}
tf2_changeteam(%cl);
}
function servercmdDropCameraAtPlayer(%cl)
{
if($TF2::System::F8ChangeClassDisabled)
{
Parent::servercmdDropCameraAtPlayer(%cl);
return;
}
tf2_changeclass(%cl);
}
};
activatePackage(tf2_tdm);
function tf2_tdm_initSpectate(%cl)
{
if(!isObject(%this.minigame) || !isObject(%this.camera))
return;
%cl.tf2_tdm_spec_cameratarget = -1;
%this.bottomPrint("\c6Press \c5F7 \c6to change team if you don't want to spectate anymore.",10);
%this.camera.setMode("Observer");
%this.setControlObject(%this.camera);
%this.camera.setTransform($TF2::Map::StartSpectatePoint);
}
function servercmdtf2_pickteam(%cl,%team)
{
switch$ (%team)
{
case red:
%cl.tf2_team = "RED";
tf2_changeclass(%cl);
case blu:
%cl.tf2_team = "BLU";
tf2_changeclass(%cl);
case random:
if($TF2::RED::Players < $TF2::BLU::Players)
%cl.tf2_team = "RED";
else if($TF2::BLU::Players < $TF2::RED::Players)
%cl.tf2_team = "BLU";
else if($TF2::BLU::Players == $TF2::RED::Players)
{
%t = getRandom(0,1);
if(%t)
%cl.tf2_team = "BLU";
else if(!%t)
%cl.tf2_team = "RED";
}
tf2_changeclass(%cl);
case spectate:
%cl.tf2_team = "Spectators";
tf2_tdm_initSpectate(%cl);
default:
commandToClient(%cl,'MessageBoxOK',"ERROR", "The team was not found. Are you using the newest TF2 for BL client?");
}
}
function servercmdtf2_pickclass(%cl,%class)
{
switch$ (%class)
{
case scout:
%cl.tf2_class = scout;
tf2_system_init(%cl);
case soldier:
%cl.tf2_class = soldier;
tf2_system_init(%cl);
case pyro:
%cl.tf2_class = pyro;
tf2_system_init(%cl);
case demoman:
%cl.tf2_class = demoman;
tf2_system_init(%cl);
case heavy:
%cl.tf2_class = heavy;
tf2_system_init(%cl);
case engineer:
%cl.tf2_class = engineer;
tf2_system_init(%cl);
case medic:
%cl.tf2_class = medic;
tf2_system_init(%cl);
case sniper:
%cl.tf2_class = sniper;
tf2_system_init(%cl);
case spy:
%cl.tf2_class = spy;
tf2_system_init(%cl);
case random:
%rnd = getRandom(1,9)
switch (%rnd)
{
case 1: %c = scout;
case 2: %c = soldier;
case 3: %c = pyro;
case 4: %c = demoman;
case 5: %c = heavy;
case 6: %c = engineer;
case 7: %c = medic;
case 8: %c = sniper;
case 9: %c = spy;
}
%cl.tf2_class = %c;
tf2_system_init(%cl);
default:
commandToClient(%cl,'MessageBoxOK',"ERROR", "The class was not found. Are you using the newest TF2 for BL client?");
}
}