03-14-2008 10:22
i cant seam to figure thi out, it is losely based on hamerhead flight script when you say a number between 0-9 it will set the speed and relay that speed to the hud with llMessageLinked but i cant seam to get it to update in my hid that it was a 0-9 throtle change.

//HUD\\
CODE


float updateInterval = 0.5;
integer active = FALSE;


vector hudColor = <0,1,1>;


float hudAlpha = 0.8;

integer throttle = 0;

float GetAngle(float x, float y)
{
float targetAngle = llAsin(y) * RAD_TO_DEG;
if (x < 0.0)
{
if (y < 0.0)
{
targetAngle = -180.0 - targetAngle;
}
else
{
targetAngle = 180 - targetAngle;
}
}
return targetAngle;
}


rotation Inverse(rotation r)
{
r.x = -r.x;
r.y = -r.y;
r.z = -r.z;
return r;
}


rotation GetParentRot()
{
return Inverse(llGetLocalRot()) * llGetRot();
}


activate()
{
active = TRUE;
llSetTimerEvent(updateInterval);
}


deactivate()
{
active = FALSE;
}


default
{
state_entry()
{
llSetText("", hudColor, hudAlpha);
}

timer()
{
if (active == FALSE)
{
llSetTimerEvent(0.0);
llSetText("", hudColor, hudAlpha);
}
else
{

vector xAxis = llRot2Fwd(GetParentRot());
integer aoa = (integer)llFabs((GetAngle(0.9, -xAxis.z) + 0.5));


integer heading = (integer)(GetAngle(xAxis.y, xAxis.x) + 180.5);


vector velocity = llGetVel();
integer speed = (integer)(llVecMag(velocity) * 1.94384449 + 0.5);


integer vSpeed = (integer)(velocity.z * 10.0);
string vSpeedString = (string)vSpeed;
if (llStringLength(vSpeedString) == 1)
{
vSpeedString = "0" + vSpeedString;
}
vSpeedString = llInsertString(vSpeedString, llStringLength(vSpeedString) - 1, ".");


vector myPos = llGetPos();
float groundLevel = 0.0;
if (llGround(ZERO_VECTOR) > llWater(ZERO_VECTOR))
{
groundLevel = llGround(ZERO_VECTOR);
}
else
{
groundLevel = llWater(ZERO_VECTOR);
}
integer agl = (integer)(myPos.z - groundLevel - 2.0);
if (agl < 0)
{
agl = 0;
}
llSetText("Speed: " + (string)throttle + "% Airspeed " + (string)speed + " kts\nHeading " + (string)heading + " Alt(AGL) " + (string)agl + "m\nVert " + (string)vSpeedString + "m/sec\n \n \n ", hudColor, hudAlpha);
}
}

link_message(integer sender, integer num, string message, key id)
{
if (message == "stop")
{
deactivate();
}
else if(message == "start")
{
activate();
}
else if(num = 5)
{
message = (string)throttle;
}
else if (message == "hud")
{
if (num == 1)
{
activate();
}
else if (num == 2)
{
deactivate();
}
}
}
}


//Listen in main\\
CODE

listen( integer channel, string name, key id, string message )
{
//
}
else if (llStringLength(message) == 1 && (string)((integer)message) == message)
{
speed = (integer)message;
llMessageLinked( LINK_ALL_CHILDREN , 5 , message ,NULL_KEY );
}
else if(message == "current speed")
{
llWhisper(0,"Current Speed at " + (string)speed);
}
}