Bonjour,
j'essai de créer une bouée pour que l'on puisse nager sur ma parcelle.
Cette bouée est une forme de "vehicle". Un "boat" pour être précis.
Je soumets mon script a votre expertise. Je voudrais savoir pourquoi, mon avatar fait-il du surplace ?
Merci de votre aide parce que là, je coule
[Edit : Question idiote]
Au fait, ca serait qd meme pas parce que les anim sont no modify

[/Edit]
key Nageur;
default
{
state_entry()
{
llSetSitText("Nager");
// passage en phisic et controle de la rotation
llSetStatus(STATUS_PHYSICS, FALSE);
vector eul = <0.0, -90.0, 270.0>;
eul *= DEG_TO_RAD;
rotation quat = llEuler2Rot(eul);
llSitTarget(<0.55,0.0,0.0>, quat);
// definition de mon véhicule
llSetVehicleType(VEHICLE_TYPE_BOAT);
// definition de son braquage
llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.1);
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.8);
// parametrage d l'accelération
llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 1.0);
// l'attracteur vertical
llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE,1.0);
llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.2);
}
changed(integer change) {
if ( change && CHANGED_LINK )
{
llSetAlpha(0.0, ALL_SIDES);
Nageur = llAvatarOnSitTarget();
if ( Nageur != NULL_KEY )
{
// demande l'autorisation de jouer l'anim nage sur place et de prendre le controle
llRequestPermissions(Nageur, PERMISSION_TAKE_CONTROLS | PERMISSION_TRIGGER_ANIMATION | PERMISSION_CONTROL_CAMERA);
}
else llSetAlpha(1.0, ALL_SIDES);
// else llDie(); // on detruit la bouée qd l'avatar se leve
}
}
run_time_permissions(integer perm)
{
if((perm & PERMISSION_TAKE_CONTROLS) && (perm & PERMISSION_TRIGGER_ANIMATION) && (perm & PERMISSION_CONTROL_CAMERA))
{
llTakeControls(0x33F,TRUE,FALSE);
// llSetCameraEyeOffset(<-2, 0, 1>); // the camera is 2m behind and 1m above the object
// llSetCameraAtOffset(<2, 0, 1>);
llStopAnimation("sit");
llStartAnimation("swimming - Tread Water");
}
}
control(key id, integer held, integer change)
{
// passage en phisic et controle de la rotation
llSetStatus(STATUS_PHYSICS, TRUE);
llSetStatus(STATUS_ROTATE_X | STATUS_ROTATE_Y, FALSE);
if (CONTROL_FWD & held)
{
llStartAnimation("swimming - breaststroke forward");
llOwnerSay("nage !");
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <1, 0, 0>);
}
if (CONTROL_DOWN & held)
{
llStartAnimation("swimming - breaststroke down");
}
if (CONTROL_UP & held)
{
llStartAnimation("swimming - breaststroke up");
}
}
}