Semana passada consegui fazer um balao com vo controlado no SL.O Script que permitiu isto:Particle Controllerinteger seated = FALSE;integer particles_on = FALSE;vector pos;default{ on_rez(integer num) { llSetTimerEvent(0); } timer() { // Speed integer speed = (integer)(llVecMag(llGetVel()) * 1.94384449 + 0.5); if(speed > 5) { if(!particles_on) { llMessageLinked(LINK_SET, 0, "particles on", ""); particles_on = TRUE; } } else { if(particles_on) { llMessageLinked(LINK_SET, 0, "particles off", ""); particles_on = FALSE; } } } link_message(integer sender_number, integer number, string message, key id) { if (message == "seated") { seated = TRUE; llSetTimerEvent(0.5); } else if (message == "unseated") { seated = FALSE; llSetTimerEvent(0.0); llMessageLinked(LINK_SET, 0, "particles off", ""); particles_on = FALSE; } } } Terra Magic Carpet // Cubey Terra Helicopter Style Flight script// Do not delete these script credits! If you modify this script, *add* your name and date and make your work available in Public Domain.// * Portions based on a public-domain flight script from Jack Digeridoo.// * Portions based on hoverboard script by Linden Lab.// * Nov 30, 2003 - Significant modifications and additions by Cubey Terra... (apologies for the crappy indenting). -CT// * Jan 11, 2004 - Fixed listen bug. Thanks to Trimming Hedges for the solution. -TH// * March 27, 2004 - Adapted to work as helicopter-style vehicle -CT// * April 8, 2004 - Adapted to work as U-Fly Taxi -CT// * April 15, 2004 - Adapted to work as DIY helicopter script -CT// * ???, 2004 - Adapted to work as magic carpet. -CT// * April 10, 2006 - Released to public. Tidied some code. Added beacon. Allowed anyone to pilot, no longer keyed to owner. -CTinteger sit = FALSE;integer listenTrack;integer brake = TRUE;integer BEACON_INT = 1440; //# of mins between beacon messagesinteger beaconMins; // current # of minutes elapsed since last beacon messagefloat X_THRUST = 20;float Z_THRUST = 15;float xMotor;float zMotor;key agent;key pilot;vector SIT_POS = <0.25, 0.0, 0.65>; vector CAM_OFFSET = <-10.0, 0.0, 2.0>;vector CAM_ANG = <0.0, 0.0, 2.0>;listenState(integer on) // start/stop listen{ if (listenTrack) { llListenRemove(listenTrack); listenTrack = 0; } if (on) listenTrack = llListen(0, "", pilot, "");}help(){ llWhisper(0,"O Master of the Carpet, you may use these commands to fly me..."); llWhisper(0," Say START to begin moving."); llWhisper(0," Say STOP to stop moving."); llWhisper(0," PgUp/PgDn or E/C = hover up/down"); llWhisper(0," Arrow keys or WASD = forward, back, left, right"); llWhisper(0," Say HELP to display help.");} default { state_entry() { llSetSitText("Fly"); llSitTarget(SIT_POS, ZERO_ROTATION); llSetCameraEyeOffset(CAM_OFFSET); llSetCameraAtOffset(CAM_ANG); llCollisionSound("",0.0); //SET VEHICLE PARAMETERS llSetVehicleType(VEHICLE_TYPE_AIRPLANE); llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <200, 20, 20> ); // uniform angular friction llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 2 ); // linear motor llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> ); llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 2 ); llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 120 ); // agular motor llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> ); llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0 ); //llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, .4); // hover llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 2 ); llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 ); llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10000 ); llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0.977 ); // no linear deflection llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0 ); llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 5 ); // no angular deflection llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0); llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5); // no vertical attractor llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 ); llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1 ); // banking llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1); llSetVehicleFloatParam( VEHICLE_BANKING_MIX, .5);