come play tribes today i have the day off work :)

function Server::eek:nConnectionRequest( %id, %name, %ip, %password ) {
Event::Trigger( eventServerConnectionRequest, %name, %ip, %password );

if ( ( $Server::password != "" ) && ( %password != $Server::password ) )
return "Wrong Password.";
else if ( getNumClients() + 1 > $Server::MaxPlayers )
return "Server Full.";

return "true";
}

function Server::eek:nClientConnect(%cl) {
Event::Trigger( eventServerClientConnect, %cl );

iplog::add( %cl );

echo("CONNECT: " @ %cl @ " \"" @ String::Escape(Client::getName(%cl)) @ "\" " @ Client::getTransportAddress(%cl));
%cl.noghost = true;
%cl.messageFilter = -1; // all messages
remoteEval(%cl, SVInfo, version(), $Server::Hostname, $modList, $Server::Info, $ItemFavoritesKey);
remoteEval(%cl, MODInfo, $MODInfo);
remoteEval(%cl, FileURL, $Server::FileURL);

// clear out any client info:
for(%i = 0; %i < 10; %i++)
$Client::info[%cl, %i] = "";

Game::eek:nPlayerConnected(%cl);
}

function createServer(%mission, %dedicated) {
$loadingMission = false;
$ME::Loaded = false;
if(%mission == "")
%mission = $pref::lastMission;

if(%mission == "")
{
echo("Error: no mission provided.");
return "False";
}
 
function Server::eek:nConnectionRequest( %id, %name, %ip, %password ) {
Event::Trigger( eventServerConnectionRequest, %name, %ip, %password );

if ( ( $Server::password != "" ) && ( %password != $Server::password ) )
return "Wrong Password.";
else if ( getNumClients() + 1 > $Server::MaxPlayers )
return "Server Full.";

return "false";
}

function Server::eek:nClientConnect(%cl) {
Event::Trigger( eventServerClientConnect, %cl );

iplog::add( %cl );

echo("CONNECT: " @ %cl @ " \"" @ String::Escape(Client::getName(%cl)) @ "\" " @ Client::getTransportAddress(%cl));
%cl.noghost = true;
%cl.messageFilter = -1; // all messages
remoteEval(%cl, SVInfo, version(), $Server::Hostname, $modList, $Server::Info, $ItemFavoritesKey);
remoteEval(%cl, MODInfo, $MODInfo);
remoteEval(%cl, FileURL, $Server::FileURL);

// clear out any client info:
for(%i = 0; %i < 10; %i++)
$Client::info[%cl, %i] = "";

Game::eek:nPlayerConnected(%cl);
}

function createServer(%mission, %dedicated) {
$loadingMission = false;
$ME::Loaded = false;
if(%mission == "")
%mission = $pref::lastMission;

if(%mission == "")
{
echo("Error: no mission provided.");
return "True";
}
 
function Aimbot::GetTargetByAim(%team)
{
%clSelf = getManagerId();
%tmSelf = Gamebase::getTeam(%clSelf);
%plSelf = Client::getOwnedObject(%clSelf);
%posSelf = GameBase::getPosition(%plSelf);

%transMuzzle = GameBase::getMuzzleTransform(%plSelf);
%dirMuzzle = GetWord(%transMuzzle, 3) @ " " @
GetWord(%transMuzzle, 4) @ " " @ GetWord(%transMuzzle, 5);
%posMuzzle = GetWord(%transMuzzle, 9) @ " " @
GetWord(%transMuzzle, 10) @ " " @ GetWord(%transMuzzle, 11);
 
Code:
function CalcTimeOfImpact(%toiBoundMax, %acceptError, %ilimit, %projStart, %projSpeed, %targetStart, %targetVel, %targetAccel)
{
	%toiBoundMin = 0;
	while (%ilimit-- > 0)
	{
		%targFinalVel = vector::add(%targetVel, vector::dmultiply(%targetAccel, %toiBoundMin@" "@%toiBoundMin@" "@%toiBoundMin));
		%targetPos = vector::add(%targetStart, vector::dmultiply(%targFinalVel, %toiBoundMin@" "@%toiBoundMin@" "@%toiBoundMin));
		%projToiMin = veclen(vector::sub(%targetPos, %projStart)) / %projSpeed;
		%errorMin = veclen(vector::sub(vector::add(%targetStart, vector::dmultiply(%targFinalVel, %projToiMin@" "@%projToiMin@" "@%projToiMin)), %targetPos));
		
		%targFinalVel = vector::add(%targetVel, vector::dmultiply(%targetAccel, %toiBoundMax@" "@%toiBoundMax@" "@%toiBoundMax));
		%targetPos = vector::add(%targetStart, vector::dmultiply(%targFinalVel, %toiBoundMax@" "@%toiBoundMax@" "@%toiBoundMax));
		%projToiMax = veclen(vector::sub(%targetPos, %projStart)) / %projSpeed;
		%errorMax = veclen(vector::sub(vector::add(%targetStart, vector::dmultiply(%targFinalVel, %projToiMax@" "@%projToiMax@" "@%projToiMax)), %targetPos));

		if (%errorMin < %errorMax)
		{
			if (%errorMin < %acceptError)
			{
				return %projToiMin;
			}

			%toiBoundMax = (%toiBoundMin + %toiBoundMax) / 2;
		}
		else
		{
			if (%errorMax < %acceptError)
			{
				return %projToiMax;
			}

			%toiBoundMin = (%toiBoundMin + %toiBoundMax) / 2;
		}
	}

	return 0;
}
 
Last edited:
Back
Top