hellow...j' ai légèrement modifié un script que j' avais, essaye ça...(petite remarque au passage, le 0 ne correspond pas au nord dans un sim mais à l' Est
)
default
{
state_entry()
{
llSetTimerEvent(0.0);
llOwnerSay("Compas OFF");
llSetText("Compas OFF", <1.0,0.0,0.0>, 1.0);
}
touch_end(integer total_number)
{
state marche;
}
}
state marche
{
state_entry()
{
llOwnerSay("Compas ON");
llSetTimerEvent(0.5);
}
touch_end(integer total_number)
{
state default;
}
timer()
{
string direction;
string echelle_angle;
vector vel = llRot2Fwd(llGetRot());
integer x = llRound(vel.x);
integer y = llRound(vel.y);
if((llAbs(x) > llAbs(y)) && (x > 0))
{
direction="EST";
echelle_angle ="--67.5--90.0--112.5--";
}
else if((llAbs(x) > llAbs(y)) && (x < 0))
{
direction = "OUEST";
echelle_angle ="--247.5--270.0--292.5--";
}
else if((llAbs(y) > llAbs(x)) && (y > 0))
{
direction = "NORD";
echelle_angle ="--337.5--0.0--22.5--";
}
else if((llAbs(y) > llAbs(x)) && (y < 0))
{
direction = "SUD";
echelle_angle ="--157.5--180.0--202.5--";
}
else if((llAbs(y) == llAbs(x)) && (x > 0 && y > 0))
{
direction = "N - EST";
echelle_angle ="--67.5--90.0--112.5--";
}
else if((llAbs(y) == llAbs(x)) && (x < 0 && y > 0))
{
direction = "N - OUEST";
echelle_angle ="--292.5--315.0--337.5--";
}
else if((llAbs(y) == llAbs(x)) && (x < 0 && y < 0))
{
direction = "S - OUEST";
echelle_angle ="--202.5--225.0--247.5--";
}
else if((llAbs(y) == llAbs(x)) && (x > 0 && y < 0))
{
direction = "S - EST";
echelle_angle ="--112.5--135.0--157.5--";
}
llSetText(direction+"\n"+ echelle_angle, <0.0,1.0,0.0>, 1.0);
}
}