random
03-06-2004, 12:38 AM
:|
$Console::LogMode = "1";
// -=-=-= Andrew's 15k config (Because 10k was too small) =-=-=-
//
// Setup:
// Change the Options, Prefs, and Binds to suit your needs.
//
// Notes:
// Change the favorites names to reflect what you like.
// The favorites system just hooks into the built in favorites
// so you have to set them up in-game anyway.
//
// You need my timestamp patch for the autonamer to work right:
// http://www.team5150.com/~andrew/project.tribes/files/t1_timestamp_patch.zip
//
// z0ddhud s**ks d**k
// -=- MyBind -=-
function myBind(%k, %m, %b)
{
if (%m=="") %m = "$x='';";
if (%b=="") %b = "$x='';";
%k[0] = getword(%k, 0);
%k[1] = getword(%k, 1);
%keys = "\"" @ %k[0] @ "\"";
if (%k[1] != "")
%keys = %keys @ ", \"" @ %k[1] @ "\"";
%dev = "keyboard0";
if (String::FindSubStr(%key, "button") != -1)
%dev = "mouse0";
eval("bindCommand(" @ %dev @ ", make, " @ %keys @ ", TO, \"" @ %m @ "\");");
eval("bindCommand(" @ %dev @ ", break, " @ %keys @ ", TO, \"" @ %b @ "\");");
}
// -=- Sensitivity -=-
function Sensitivity(%nSens){
if (%nSens == "")
echo("Sensitivity is "@floor(Client::getMouseSe nsitivity("playMap.sae")*5000)+1@".");
else{
%rSens=%nSens/5000;
editActionMap("playMap.sae");
bindAction(mouse, xaxis, TO, IDACTION_YAW, scale, %rSens, flip);
if(Client::getMouseYAxisF lip("playMap.sae")=="TRUE")
bindAction(mouse, yaxis, TO, IDACTION_PITCH, scale, %rSens);
else
bindAction(mouse, yaxis, TO, IDACTION_PITCH, scale, %rSens, flip);
echo("Sensitivity changed to "@floor(%nSens)@".");}}
// -=- Options -=-
$Jump::Delay = 0.009;
$Waypoint::Target = 2; //1=enemy, 2=friendly, 3=manual
$Zoom::DefaultZoom = 1; //1=2x, 2=5x, 3=10x, 4=20x
// -=- Prefs -=-
$pref::SkipIntro = true;
$pref::QuickStart = true;
$pref::PlayerFOV = 120;
$pref::noEnterInvStation = true;
$pref::noIpx = true;
$pref::starDetail = 0;
$pref::skyDetail = 1;
$pref::filterBadWords = false;
$pref::NumDecals = 0;
$pref::maxNumSmokePuffs = 999;
$pref::PacketFrame = 32;
$pref::PacketRate = 15;
$pref::PacketSize = 400;
$pref::weatherPrecipitati on = "False";
$pref::mapSensorTransluce nt = "true";
$pref::waitForVSync = "false";
$pref::mapFilter = "1";
$net::interpolatetime = 0;
$Server::warmupTime = 5;
$Server::respawnTime = 0;
$badwords = "";
$MuteAll = "0";
// -=- Binds -=-
editActionMap("playMap.sae");
MyBind("space", "Jump::Start();", "Jump::Stop();");
MyBind("control e", "Waypoint::TargetFriendly( );");
MyBind("control v", "Waypoint::TargetEnemy();");
MyBind("control z", "DropMines();");
MyBind("e", "Zoom::Zoom();", "Zoom::UnZoom();");
MyBind("z", "Zoom::Cycle();");
MyBind("5", "TV::On();", "TV::Off();");
MyBind("alt home", "$DemoDrop = true;EndGame();");//demodrop
MyBind("up", "DemoHUD(normal);");
MyBind("down", "DemoHUD(pause);");
MyBind("left", "DemoHUD(slower);");
MyBind("right", "DemoHUD(faster);");
MyBind("f", "remoteEval(2048, throwItem, 40, 1000);");
MyBind("g", "remoteEval(2048, throwItem, 41, 1000);");
MyBind("\\\\", "MuteAll::Toggle();"); // aka "\"
BindCommand("mouse0", "zaxis", TO, "scrollWheel();");
BindCommand("mouse0", make, "button2", TO, "scrollButton();");
BindCommand("mouse0", make, "button3", TO, "thumbButton();");
//for local server route crap
MyBind("home", "remoteEval(2048, rememberPosition);");
MyBind("end", "remoteEval(2048, recallPosition);");
editActionMap("actionMap.sae");
MyBind("alt 1", "Fav::Set(1, 'Favorite: Shield');");
MyBind("alt 2", "Fav::Set(2, 'Favorite: Capper');");
MyBind("alt 3", "Fav::Set(3, 'Favorite: PingD');");
MyBind("alt 4", "Fav::Set(4, 'Favorite: HShield');");
MyBind("alt 5", "Fav::Set(5, 'Favorite: HEpack');");
NewActionMap("Favorite.sae");
EditActionMap("Favorite.sae");
MyBind("1", "Fav::Litter('Turret');");
MyBind("2", "Fav::Litter('Inventory Station');");
MyBind("3", "Fav::Litter('Pulse Sensor');");
MyBind("numpad1", "buy('ammo pack');");
MyBind("numpad2", "buy('shield pack');");
MyBind("numpad3", "buy('repair pack');");
// -=- Ewww -=-
function substr(%s, %p, %l){return String::GetSubStr(%s, %p, %l);}
function onClientMessage(%cl, %msg)
{
if ($MuteAll) if (%cl)
return false;
if (!%cl)
{
if ($PlayingDemo) if (String::FindSubStr(%msg, "You couldn't buy Flag") != -1) return false;
if (String::FindSubStr(%msg, "flag") != -1) Flag::Event(%msg);
else if (%msg == "Station Access On") Fav::Enter();
else if (%msg == "Station Access Off") Fav::Exit();
}
return true;
}
function onClientJoin(%cl)
{
$cl::Team[%cl] = Client::GetTeam(%cl);
$Team[$cl::Team[%cl]]++;
CTF::Update();
}
function onClientDrop(%cl)
{
$Team[$cl::Team[%cl]]--;
$cl::Team[%cl] = '';
CTF::Update();
}
function onClientChangeTeam(%cl, %team)
{
$Team[$cl::Team[%cl]]--;
$cl::Team[%cl] = %team;
$Team[%team]++;
CTF::Update();
}
function onMapReset()
{
$Fav::Favorite = 2;
$Flag::Score[0] = $Flag::Score[1] = 0;
$Flag::Status[0] = $Flag::Status[1] = "home";
CTF::Update();
}
function onJoinReset()
{
$Team[-1] = $Team[ 0] = $Team[ 1] = 0;
for (%i=2049; %i<2149; %i++)
if (Client::GetName(%i)!="")
onClientJoin(%i);
$Zoom::Zoom = 2;
Zoom::resetZoom();
$DemoDrop = false;
onMapReset();
}
function onConnection(%msg)
{
$dataFinished = false;
if(%msg == "Accepted")
{
onJoinReset();
resetSimTime();
if ($PCFG::Script != "")exec($PCFG::Script);
resetPlayDelegate();
remoteEval(2048, "SetCLInfo", $PCFG::SkinBase, $PCFG::RealName, $PCFG::EMail, $PCFG::Tribe, $PCFG::URL, 'TSI cheats', $pref::autoWaypoint, $pref::noEnterInvStation, $pref::messageMask);
cursorOn(MainWindow);
GuiLoadContentCtrl(MainWi ndow, "gui\\Loading.gui");
renderCanvas(MainWindow);
}
else
{
echo("Retry @ " @ timestamp());
schedule("connect($Server::Address) ;", 0.75);
}
}
function remoteMissionChangeNotify (%cl, %mission)
{
if(%cl == 2048)
{
flushTextureCache();
Schedule("purgeResources(true);", 3);
onMapReset();
}
}
function onExit()
{
Hud::onExit();
if(isObject(playGui))stor eObject(playGui, "config\\play.gui");
saveActionMap("config\\config.cs", "actionMap.sae", "playMap.sae");
$pref::VideoFullScreen = isFullScreenMode(MainWind ow);
export("Server::*", "config\\ServerPrefs.cs", False);
export("pref::lastMission", "config\\ServerPrefs.cs", True);
export("pref::*", "config\\ClientPrefs.cs", False);
}
function kill(){use('Repair Kit');remoteEval(2048,kil l);}
function onQuit(){Quit();}
// -=- Jump -=-
function Jump::Start()
{
if ((Client::GetTeam(getmana gerid()) == -1))
postAction(2048, IDACTION_MOVEUP, 1);
else
{
function Jump::Jump()
{
postAction(2048, IDACTION_MOVEUP, 1);
schedule("Jump::Jump();", $Jump::Delay);
}
Jump::Jump();
}
}
function Jump::Stop(){ function Jump::Jump(){} }
function muteall::toggle() { $muteall = !$muteall; }
// -=- Team -=-
function Team::Friendly()
{
%team = Client::getTeam(getManage rId());
if (%team == -1)
%team = 0;
return %team;
}
function Team::Enemy(){ return Team::Friendly() ^ 1; }
// -=- Flag -=-
function Flag::GetName(%msg, %search, %teamFlop)
{
if((%idx = String::FindSubStr(%msg, %search)) != -1)
{
%str = substr(%msg, 0, %idx);
if (%str == "You")
%str = Client::getName(getManage rId());
else if (%str == "Your Team")
return ($Flag::Event = false);
$Flag::Name = %str;
$Flag::ClientID = getClientByName(%str);
$Flag::Team = Client::GetTeam($Flag::Cl ientID) ^ %teamFlop;
return ($Flag::Event = true);
}
return ($Flag::Event = false);
}
function Flag::Event(%msg)
{
if (Flag::GetName(%msg, " took the", 1)) {$Flag::Status[$Flag::Team]=$Flag::ClientID; Waypoint::Event($Flag::Te am, $Flag::ClientID);}
else if (Flag::GetName(%msg, " dropped the", 1)) {$Flag::Status[$Flag::Team]="field";$Flag::Timer[$Flag::Team]=476;$Flag::Tag[$Flag::Team]++;Flag::DropTimer($Flag: :Team,$Flag::Tag[$Flag::Team]);}
else if (Flag::GetName(%msg, " returned the", 0)) {$Flag::Status[$Flag::Team]="home";}
else if (Flag::GetName(%msg, " captured the", 1)) {$Flag::Status[$Flag::Team]="home";$Flag::Score[$Flag::Team^1]++;}
else if (Flag::GetName(%msg, " left the mission", 1)) {$Flag::Status[$Flag::Team]="home";}
if ($flag::Event) CTF::Update();
}
function Flag::DropTimer(%team, %tag)
{
if (%tag!=$Flag::Tag[%team]) return CTF::Update();
if ($Flag::Status[%team] != "field") return CTF::Update();
$Flag::Tag[%team]++;
if($Flag::Timer[%team]-- <= 0)
{
$Flag::Status[%team] = "home";
CTF::Update();
return;
}
CTF::Update();
Schedule("Flag::DropTimer("@%team@","@$flag::tag[%team]@");", 0.1);
}
function Flag::Timer(%team)
{
%val=$Flag::Timer[%team];
if (%val < 10) %val="00"@%val;
else if (%val < 100) %val="0"@%val;
return (substr(%val, 0, 2) @ "." @ substr(%val, 2, 1));
}
// -=- Hud -=-
DeleteVariables("Hud::*");
$Hud::Count = 0;
function PlayGui::onOpen() {for (%i = 0; %i < $Hud::Count; %i++) { addToSet(playGui, $Hud::[%i]);Schedule($Hud::[%i, wake] @ "();", 0); }}
function PlayGui::onClose(){for (%i = 0; %i < $Hud::Count; %i++){ removeFromSet(playGui, $Hud::[%i]);Schedule($Hud::[%i, sleep] @ "();", 0); }}
function Hud::onExit(){ for (%i = 0; %i < $Hud::Count; %i++){removeFromSet(playG ui, $Hud::[%i]);deleteObject($Hud::[%i]);} }
//%type = {FearGui::FearGuiMenu, SimGui::Control}
function Hud::New(%name, %x, %y, %w, %h, %wake, %sleep, %type)
{
if (!$Hud::[%name])
{
%i = ($Hud::Count++ -1);
$Hud::[%i] = newObject(%name, %type, %x, %y, %w, %h);
$Hud::[%i, wake] = %wake;
$Hud::[%i, sleep] = %sleep;
$Hud::[%name] = true;
Control::SetVisible(%name , true);
}
}
// -=- Waypoint -=-
function Waypoint::Event(%team, %client)
{
if ($Waypoint::Target == 3) return;
%friendlyCarrier = ( %team == Team::Enemy() );
%enemyCarrier = ( %team == Team::Friendly() );
if ( ($Waypoint::Target == 2) && (%friendlyCarrier) ) Waypoint::TargetFriendly( );
else if ( ($Waypoint::Target == 1) && (%enemyCarrier) ) Waypoint::TargetEnemy();
}
function Waypoint::Target(%cl, %msg, %wav){ if ( %cl != "home" && %cl != "field" && %cl != getManagerId() ) remoteEval(2048, "IssueTargCommand", 0, %msg @ Client::GetName( %cl ) @ %wav, %cl - 2048, getManagerId()); }
function Waypoint::TargetFriendly( ){Waypoint::Target($Flag: :Status[Team::Enemy()], "Escort: ", "~wescfr");}
function Waypoint::TargetEnemy(){W aypoint::Target($Flag::St atus[Team::Friendly()], "Attack: ", "~wattway");}
// -=- Flag Hud -=-
if (!$CTF::Loaded)
{
HUD::New("CTF::Box", 5, 60, 180, 40, CTF::Wake, CTF::Sleep, FearGui::FearGuiMenu);
newObject("CTF::Status0", FearGuiFormattedText, 5, 0, 180, 20);
newObject("CTF::Status1", FearGuiFormattedText, 5, 20, 180, 20);
addToSet("CTF::Box", "CTF::Status0");
addToSet("CTF::Box", "CTF::Status1");
$CTF::Loaded=true;
}
function CTF::SetTeamValue(%slot, %team)
{
%t = $Team[%team];
%s = $Flag::Score[%team];
%l = $Flag::Status[%team];
if (%l == "home") %l = "<f3>Home";
else if (%l == "field") %l = "<f3>Dropped-><f2>" @ Flag::Timer(%team);
else
{
%fixed="";
%l=Client::GetName(%l);
for (%i=0;(%ch=substr(%l, %i, 1)) != ""; %i++)
{
if (%ch=="<") %ch = "\xd7";
%fixed = %fixed @ %ch;
}
%l = "<f2>" @ %fixed;
}
Control::SetValue("CTF::Status" @ %slot, GetWord("F E", %slot)@"-"@%t@" <f3>(<f2>" @ %s @ "<f3>) " @ %l);
}
function CTF::Wake() {CTF::Update();}
function CTF::Sleep() {}
function CTF::Update() {CTF::SetTeamValue(0, Team::Friendly());CTF::Se tTeamValue(1, Team::Enemy());}
// -=- Zoom -=-
function Zoom::Zoom(){postAction(2 048, IDACTION_SNIPER_FOV, 1.000000);}
function Zoom::UnZoom(){postAction (2048, IDACTION_SNIPER_FOV, 0.000000);Zoom::resetZoom ();}
function Zoom::resetZoom(){while($ Zoom::Zoom != $Zoom::DefaultZoom) Zoom::Cycle();}
function Zoom::Cycle(){ postAction(2048, IDACTION_INC_SNIPER_FOV, 1.000000);if( $Zoom::Zoom++ > 4 ) $Zoom::Zoom = 1; }
// -=- Favorites -=-
function remoteITXT(%cl, %msg)
{
Control::setValue(EnergyD isplayText, %msg);
$Station = "Inventory";
if(String::findSubStr(%ms g, "STATION ENERGY") != -1)
$Station = "RemoteInventory";
}
function Fav::Litter(%item)
{
%type = getItemType(%item);
for (%i = 0; %i < 4; %i++)
Schedule("remoteEval(2048,buyItem," @ %type @ "); remoteEval(2048,dropItem," @ %type @ ");", 0.1);
}
function Fav::Enter()
{
pushActionMap("Favorite.sae");
if ($Station == "Inventory")
{
%type = getItemType("Repair Kit");
for (%i = 0; %i < 8; %i++)
Schedule("remoteEval(2048,useItem," @ %type @ ");remoteEval(2048,buyItem ," @ %type @ ");", 0);
Fav::Litter("Repair Pack");
}
Fav::Buy($Fav::Favorite);
}
function Fav::Exit(){ popActionMap("Favorite.sae"); $Station = ""; }
function Fav::Buy(%i){ if ($Station != "") schedule("CmdInventoryGui::buyFavor ites("@%i@");", 0.1); }
function Fav::Set(%i, %desc){ $Fav::Favorite=%i; Fav::Buy(%i); remoteBP(2048,'<jc><f2>Favorite: <f3>'@%desc,2); }
// -=- TV.cs -=-
function TV::On()
{
%t = Team::Enemy();
%loc = $Flag::Status[%t];
if (%loc=="field"||%loc=="home") %loc=$TV::cl;
if (%loc=="") return;
$TV::cl = %loc;
if(isObject("CommandGui")) renameObject("CommandGui", "_CommandGui");
if(!isObject("PlayGui/ObsTV")) addToSet(PlayGui, newObject("ObsTV", FearGui::CMDObserve, 0, 0, 1, 1));
remoteEval(2048, CommandMode);
RemoteEval(2048, "scom", -1);
Schedule("CursorOff(mainwindow);", 0.3);
Client::ToggleCmdObserver ("True");
Client::cmdObservePlayer( %loc);
remoteBP(2048, "<JC><F1>Observing: <F2>" @ Client::GetName(%loc), 999);
}
function TV::Off()
{
Client::ToggleCmdObserver ("False");
remoteEval(2048, PlayMode);
if (isObject("PlayGui/ObsTV"))deleteObject("PlayGui/ObsTV");
if (isObject("_CommandGui"))renameObject("_CommandGui", "CommandGui");
remoteBP(2048, "", 0.1);
}
// -=- Demo -=-
function DemoHUD(%a)
{
if (!$PlayingDemo) return;
%t=$simgame::timescale;
if (%a=="faster")%t=%t*1.5;
else if (%a=="slower")%t=%t*0.75;
else if (%a=="pause")%t=0.0;
else if (%a=="normal")%t=1.0;
if (%t<52)$simgame::timescale = %t;
}
// -=- Basic Server Route stuff -=-
function remoteRememberPosition(%c l){ %cl.rememberPosition = GameBase::GetPosition(%cl ); }
function remoteRecallPosition(%cl)
{
if (%cl.rememberPosition != "")
{
GameBase::SetPosition(%cl , %cl.rememberPosition);
GameBase::SetDamageLevel( Client::GetOwnedObject(%c l), 0);
Item::SetVelocity(Client: :GetOwnedObject(%cl), "0 0 0");
Player::SetItemCount(%cl, DiscLauncher, 1);
Player::SetItemCount(%cl, getItemType("Disc"), 15);
Player::SetItemCount(%cl, RepairKit, 1);
Player::SetItemCount(%cl, 29, 1);
Player::mountItem(%cl, 29, $BackpackSlot);
}
}
// -=- Demo Drop -=-
function EndGame()
{
$ConnectedToServer = FALSE;
setCursor(MainWindow, "Cur_Arrow.bmp");
disconnect();
if ($SinglePlayer) TrainingEndGameCallback() ;
$recordDemo = FALSE;
startMainMenuScreen();
deleteServer();
QuickStart();
deleteObject(ConsoleSched uler);
newObject(ConsoleSchedule r, SimConsoleScheduler);
if ($DemoDrop)
{
$DemoDrop = false;
$recordDemo = true;
setupRecorderFile();
connect($Server::Address) ;
}
else if($quitOnDisconnect) schedule("quit();", 0);
}
// -=- AutoNamer -=-
function setupRecorderFile()
{
%str = timestamp();
%time = substr(%str, 0, 4)@ "-" @substr(%str, 5, 2) @ "-" @substr(%str, 8, 2) @ "-" @substr(%str, 11, 2) @ "." @substr(%str, 14, 2) @ "." @substr(%str, 17, 2);
if ($ServerName != "") %time = %time @ "-" @ $ServerName;
$recorderFileName = "recordings\\" @ %time @ ".rec";
echo("Recording to - " @ $recorderFileName);
}
// -=- DropMines -=-
function DropMines()
{
%m = getItemCount("Mine");
while ( %m>1 ) {drop("Mine");%m--; }
}
// -=- Double Weapons -=-
function thumbButton()
{
if (getItemCount("Mortar") == 1)
use("Mortar");
else
use("Chaingun");
}
function scrollWheel()
{
if (getItemCount("Plasma Gun") == 1)
use("Plasma Gun");
else if (getItemCount("Laser Rifle") == 1)
use("Laser Rifle");
else
use("Blaster");
}
function scrollButton()
{
if (getItemCount("Grenade Launcher") == 1)
use("Grenade Launcher");
else if (getItemCount("ELF Gun") == 1)
use("ELF Gun");
else
use("Targetting Laser");
}
exec("randomchat");