mirror of
https://github.com/Ragora/T2-BoL.git
synced 2026-01-19 19:14:45 +00:00
248 lines
6.2 KiB
C#
248 lines
6.2 KiB
C#
|
|
// don't want this executing when building graphs
|
||
|
|
if($OFFLINE_NAV_BUILD)
|
||
|
|
return;
|
||
|
|
|
||
|
|
// Script for Training
|
||
|
|
//===================================================================================
|
||
|
|
//error("Training 1 script");
|
||
|
|
|
||
|
|
// package and callbacks
|
||
|
|
activatePackage(Training);
|
||
|
|
|
||
|
|
// variables
|
||
|
|
$numberOfEnemies[1] = 1;
|
||
|
|
$numberOfEnemies[2] = 2;
|
||
|
|
$numberOfEnemies[3] = 3;
|
||
|
|
$numberOfTeammates = 0; //Raptor, Komodo Dragon and Sharp Tooth - Don't spawn them automatically though
|
||
|
|
$missionBotSkill[1] = 0.0;
|
||
|
|
$missionBotSkill[2] = 0.4;
|
||
|
|
$missionBotSkill[3] = 0.7;
|
||
|
|
|
||
|
|
package Training {
|
||
|
|
//BEGIN TRAINING PACKAGE =======================================================================
|
||
|
|
|
||
|
|
function SinglePlayerGame::initGameVars(%game)
|
||
|
|
{
|
||
|
|
echo("initializing training1 game vars");
|
||
|
|
}
|
||
|
|
|
||
|
|
function MP3Audio::play(%this)
|
||
|
|
{
|
||
|
|
//too bad...no mp3 in training
|
||
|
|
}
|
||
|
|
|
||
|
|
function toggleCommanderMap(%val)
|
||
|
|
{
|
||
|
|
if ( %val )
|
||
|
|
messageClient($player, 0, $player.miscMsg[noCC]);
|
||
|
|
}
|
||
|
|
|
||
|
|
function toggleTaskListDlg( %val )
|
||
|
|
{
|
||
|
|
if ( %val )
|
||
|
|
messageClient( $player, 0, $player.miscMsg[noTaskListDlg] );
|
||
|
|
}
|
||
|
|
|
||
|
|
function toggleInventoryHud( %val )
|
||
|
|
{
|
||
|
|
if ( %val )
|
||
|
|
messageClient( $player, 0, $player.miscMsg[noInventoryHUD] );
|
||
|
|
}
|
||
|
|
|
||
|
|
function toggleNetDisplayHud( %val )
|
||
|
|
{
|
||
|
|
// Hello, McFly? This is training! There's no net in training!
|
||
|
|
}
|
||
|
|
|
||
|
|
function voiceCapture( %val )
|
||
|
|
{
|
||
|
|
// Uh, who do you think you are talking to?
|
||
|
|
}
|
||
|
|
|
||
|
|
function giveall()
|
||
|
|
{
|
||
|
|
error("When the going gets tough...wussies like you start cheating!");
|
||
|
|
messageClient($player, 0, "Cheating eh? What\'s next? Camping?");
|
||
|
|
}
|
||
|
|
|
||
|
|
function getTeammateGlobals()
|
||
|
|
{
|
||
|
|
//No console errors
|
||
|
|
}
|
||
|
|
|
||
|
|
function openingSpiel()
|
||
|
|
{
|
||
|
|
}
|
||
|
|
|
||
|
|
// get the ball rolling
|
||
|
|
//------------------------------------------------------------------------------
|
||
|
|
function startCurrentMission()
|
||
|
|
{
|
||
|
|
playGui.add(outerChatHud);
|
||
|
|
|
||
|
|
$Player.player.setTransform(PlayerSpawn.getPosition() SPC "0 0 1 3.97136");
|
||
|
|
//Raptor (Trainer)
|
||
|
|
$Bot1 = aiConnectByName("Raptor",1);
|
||
|
|
$Bot1.race = "Draakan";
|
||
|
|
$Bot1.sex = "A";
|
||
|
|
setVoice($Bot1, "Derm3");
|
||
|
|
setSkin($Bot1, "Gecko");
|
||
|
|
$Bot1.player.setArmor("LIGHT");
|
||
|
|
$Bot1.player.setTransform(RaptorSpawn.getPosition());
|
||
|
|
$Bot1.aimAt($player.player.getPosition());
|
||
|
|
//Sharp Tooth
|
||
|
|
$Bot2 = aiConnectByName("Sharp Tooth",1);
|
||
|
|
$Bot2.race = "Draakan";
|
||
|
|
$Bot2.sex = "A";
|
||
|
|
setVoice($Bot2, "Derm3");
|
||
|
|
setSkin($Bot2, "Gecko");
|
||
|
|
$Bot2.player.setArmor("LIGHT");
|
||
|
|
$Bot2.player.setTransform(Spawn01.getPosition());
|
||
|
|
$Bot2.aimAt($Bot1.player.getPosition());
|
||
|
|
//Komodo Dragon
|
||
|
|
$Bot3 = aiConnectByName("Komodo Dragon",1);
|
||
|
|
$Bot3.race = "Draakan";
|
||
|
|
$Bot3.sex = "A";
|
||
|
|
setVoice($Bot3, "Derm3");
|
||
|
|
setSkin($Bot3, "Gecko");
|
||
|
|
$Bot3.player.setArmor("LIGHT");
|
||
|
|
$Bot3.player.setTransform(Spawn02.getPosition());
|
||
|
|
$Bot3.aimAt($Bot1.player.getPosition());
|
||
|
|
//Start our texts!
|
||
|
|
openingSpiel();
|
||
|
|
$DoneIntro = false;
|
||
|
|
}
|
||
|
|
|
||
|
|
//------------------------------------------------------------------------------
|
||
|
|
function SinglePlayerGame::equip(%game, %player)
|
||
|
|
{
|
||
|
|
//ya start with nothing...NOTHING!
|
||
|
|
%player.clearInventory();
|
||
|
|
for(%i =0; %i<$InventoryHudCount; %i++)
|
||
|
|
%player.client.setInventoryHudItem($InventoryHudData[%i, itemDataName], 0, 1);
|
||
|
|
%player.client.clearBackpackIcon();
|
||
|
|
|
||
|
|
%set = %player.client.equipment;
|
||
|
|
|
||
|
|
echo("using default equipment");
|
||
|
|
|
||
|
|
%player.setArmor("Light");
|
||
|
|
%player.setInventory(RepairKit,1);
|
||
|
|
%player.setInventory(Chaingun, 1);
|
||
|
|
%player.setInventory(ChaingunAmmo, 100);
|
||
|
|
%player.setInventory(Disc,1);
|
||
|
|
%player.setInventory(DiscAmmo, 20);
|
||
|
|
%player.setInventory(Shocklance, 1);
|
||
|
|
%player.setInventory(AmmoPack, 1);
|
||
|
|
|
||
|
|
//DefaultGame.cs does not assign flamer..
|
||
|
|
%player.setInventory(flamer, 1);
|
||
|
|
%player.weaponCount = 4;
|
||
|
|
|
||
|
|
%player.use(Chaingun);
|
||
|
|
}
|
||
|
|
|
||
|
|
function PlayGui::onWake(%this)
|
||
|
|
{
|
||
|
|
parent::onWake(%this);
|
||
|
|
|
||
|
|
if (!$DoneIntro)
|
||
|
|
{
|
||
|
|
lockArmorHack(1);
|
||
|
|
ServerConnection.setBlackOut(false, 1000);
|
||
|
|
$DoneIntro = true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function singlePlayerGame::onAIRespawn(%game, %client)
|
||
|
|
{
|
||
|
|
// DONT add the default tasks
|
||
|
|
//error("default tasks not added");
|
||
|
|
}
|
||
|
|
|
||
|
|
function singlePlayerGame::playerSpawned(%game, %player)
|
||
|
|
{
|
||
|
|
parent::playerSpawned(%game, %player);
|
||
|
|
}
|
||
|
|
|
||
|
|
function singlePlayerGame::gameOver(%game)
|
||
|
|
{
|
||
|
|
//enable the voice chat menu again...
|
||
|
|
if (isObject(training1BlockMap))
|
||
|
|
{
|
||
|
|
training1BlockMap.pop();
|
||
|
|
training1BlockMap.delete();
|
||
|
|
}
|
||
|
|
|
||
|
|
if(HelpTextGui.isVisible())
|
||
|
|
helpTextGui.setVisible(false);
|
||
|
|
|
||
|
|
//re-enable the use of the settings button...
|
||
|
|
SinglePlayerEscSettingsBtn.setActive(1);
|
||
|
|
|
||
|
|
Parent::gameOver();
|
||
|
|
}
|
||
|
|
|
||
|
|
function trainingPreloads() //Load any skins..
|
||
|
|
{
|
||
|
|
navGraph.preload("skins/Gecko.lbioderm", true);
|
||
|
|
navGraph.preload("skins/base.lbioderm", true);
|
||
|
|
navGraph.preload("skins/Horde.lbioderm", false);
|
||
|
|
navGraph.preload("skins/sensor_pulse_large", true);
|
||
|
|
navGraph.preload("skins/base.hmale", false);
|
||
|
|
navGraph.preload("skins/beagle.hmale", false);
|
||
|
|
navGraph.preload("skins/base.mmale", false);
|
||
|
|
navGraph.preload("skins/beagle.mmale", false);
|
||
|
|
navGraph.preload("skins/base.lmale", false);
|
||
|
|
navGraph.preload("skins/swolf.mmale", false);
|
||
|
|
navGraph.preload("skins/beagle.lmale", false);
|
||
|
|
}
|
||
|
|
|
||
|
|
function SinglePlayerGame::missionLoadDone(%game)
|
||
|
|
{
|
||
|
|
Parent::missionLoadDone(%game);
|
||
|
|
trainingPreloads();
|
||
|
|
}
|
||
|
|
|
||
|
|
function serverCmdBuildClientTask(%client, %task, %team)
|
||
|
|
{
|
||
|
|
// player shouldnt be able to use the voice commands to do anything
|
||
|
|
}
|
||
|
|
|
||
|
|
function openingSpiel() //Not sure how T2 originally handled the training.. but it's temporary
|
||
|
|
{
|
||
|
|
updateTrainingObjectiveHud(obj1);
|
||
|
|
schedule(1000,0,"setActionThread",$bot1.player,"cel1",0);
|
||
|
|
schedule(3000,0,"setActionThread",$bot2.player,"cel1",0);
|
||
|
|
schedule(3000,0,"setActionThread",$bot3.player,"cel1",0);
|
||
|
|
schedule(3000,0,"setActionThread",$player.player,"cel1",0);
|
||
|
|
doText(TR_01, 3200);
|
||
|
|
doText(TR_02, 3500);
|
||
|
|
doText(TR_03, 3800);
|
||
|
|
doText(TR_04, 4100);
|
||
|
|
doText(TR_05, 4400);
|
||
|
|
schedule(4400,0,"lockArmorHack",false); //Got to release our hack for it to work..
|
||
|
|
schedule(4400,0,"updateTrainingObjectiveHud",obj2);
|
||
|
|
}
|
||
|
|
|
||
|
|
function lockArmorHack(%bool)
|
||
|
|
{
|
||
|
|
if (%bool)
|
||
|
|
{
|
||
|
|
movemap.pop();
|
||
|
|
}
|
||
|
|
else
|
||
|
|
moveMap.push();
|
||
|
|
//$player.player.setMoveState(true);
|
||
|
|
//$player.player.schedule(1000,"setMoveState", false);
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
function setActionThread(%player,%anim,%bool)
|
||
|
|
{
|
||
|
|
%player.setActionThread(%anim,%bool);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|