Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Aley Arai's "Space Bug" script HC-1

DancesWithRobots Soyer
Registered User
Join date: 7 Apr 2006
Posts: 701
08-29-2008 08:29
Can't get this to compile properly. :(

Aley wasn't exactly a scripter. Generally she used existing scripts and modified them to her purposes. Her space bug was a great nimble smooth flying machine. I'm guessing this is actually some other float or hover script that she modified.

I tried to compile one this morning in the RC. and from HC-1, I get an error message:

(348, 11) ERROR: Name previously declared within scope

The spot indicated is between the parenthesis on line 348

}timer(){

I'd love to see how this operates under mono. Can anyone tell what's going wrong?

the full script follows

CODE

//Sabine note:removed old set camera refs and much of the white space,added Kart 1.0 camera controls and added clear Camera param

key pilot;
vector pos;
vector linear;
vector angular;
integer under_power;
integer listenindex;
float throttle;
integer cloaked;
rotation rot;
key owner;
// Defining the Parameters of the normal driving camera.
// This will let us follow behind with a loose camera.
list drive_cam =
[CAMERA_ACTIVE, TRUE,
CAMERA_BEHINDNESS_ANGLE, 0.0,
CAMERA_BEHINDNESS_LAG, 0.5,
//CAMERA_DISTANCE, 4.0,
CAMERA_DISTANCE, 6.0,
CAMERA_PITCH, 10.0,
// CAMERA_FOCUS,
CAMERA_FOCUS_LAG, 0.05,
CAMERA_FOCUS_LOCKED, FALSE,
CAMERA_FOCUS_THRESHOLD, 0.0,
// CAMERA_POSITION,
CAMERA_POSITION_LAG, 0.5,
CAMERA_POSITION_LOCKED, FALSE,
CAMERA_POSITION_THRESHOLD, 0.0,
//CAMERA_FOCUS_OFFSET, <0,0,3>];
CAMERA_FOCUS_OFFSET, <0,0,0>];
list jump_cam =[
CAMERA_ACTIVE, TRUE,
CAMERA_BEHINDNESS_ANGLE, 0.0,
CAMERA_BEHINDNESS_LAG, 0.5,
CAMERA_DISTANCE, 3.0,
CAMERA_PITCH, 10.0,
// CAMERA_FOCUS,
CAMERA_FOCUS_LAG, 0.05,
CAMERA_FOCUS_LOCKED, FALSE,
CAMERA_FOCUS_THRESHOLD, 0.0,
// CAMERA_POSITION,
CAMERA_POSITION_LAG, 0.5,
CAMERA_POSITION_LOCKED, FALSE,
CAMERA_POSITION_THRESHOLD, 0.0,
//CAMERA_FOCUS_OFFSET, <0,0,3>];
CAMERA_FOCUS_OFFSET, <0,0,0>];
reset(){
vector pos = llGetPos();
pos.z = pos.z + 2.0;
llMoveToTarget(pos, 0.3);
llRotLookAt(rot, 0.1, 1.0);
llSleep(1.0);
llStopLookAt();
llStopMoveToTarget();}
default{state_entry() {llMessageLinked(LINK_SET, 0, "vtol", NULL_KEY);
llWhisper(0, "Type start to activate");
linear = ZERO_VECTOR;
angular = ZERO_VECTOR;
under_power = FALSE;
throttle = 0.0;
llMessageLinked(LINK_SET, (integer)throttle, "throttle", NULL_KEY);
llCollisionSound("", 0.0);
llSetVehicleType(VEHICLE_TYPE_AIRPLANE);
// linear friction
llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, <100.0, 100.0, 100.0>);
// uniform angular friction
llSetVehicleFloatParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, 1.0);
// linear motor
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <0.0, 0.0, 0.0>);
llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, .5);
llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 1.0);
// angular motor
llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, <0.0, 0.0, 0.0>);
llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, .2);
llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 2.0);
// hover
llSetVehicleFloatParam(VEHICLE_HOVER_HEIGHT, 0.0);
llSetVehicleFloatParam(VEHICLE_HOVER_EFFICIENCY, 0.0);
llSetVehicleFloatParam(VEHICLE_HOVER_TIMESCALE, 360.0);
llSetVehicleFloatParam(VEHICLE_BUOYANCY, 0.981);
// linear deflection
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5);
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1.0);
// angular deflection
llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.25);
llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 100.0);
// vertical attractor
llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.75);
llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1.0);
// banking
llSetVehicleFloatParam(VEHICLE_BANKING_EFFICIENCY, 0.0);
llSetVehicleFloatParam(VEHICLE_BANKING_MIX, 1.0);
llSetVehicleFloatParam(VEHICLE_BANKING_TIMESCALE, 360.0);
// default rotation of local frame
llSetVehicleRotationParam(VEHICLE_REFERENCE_FRAME, <0.0, 0.0, 0.0, 1.0>);
// removed vehicle flags
llRemoveVehicleFlags(VEHICLE_FLAG_NO_DEFLECTION_UP | VEHICLE_FLAG_HOVER_WATER_ONLY | VEHICLE_FLAG_HOVER_TERRAIN_ONLY | VEHICLE_FLAG_HOVER_UP_ONLY | VEHICLE_FLAG_LIMIT_MOTOR_UP | VEHICLE_FLAG_LIMIT_ROLL_ONLY);
// set vehicle flags
llSetVehicleFlags(VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
llListenRemove(listenindex);
if (pilot != NULL_KEY) {
listenindex = llListen(0, "", pilot, "");} else {llReleaseControls();}
llSetTimerEvent(0.05);}
on_rez(integer sparam){ llResetScript();}
link_message(integer sender, integer num, string str, key id)
{if (str == "pilot" && id != NULL_KEY) {
linear = ZERO_VECTOR;
angular = ZERO_VECTOR;
under_power = FALSE;
throttle = 0.0;
llRequestPermissions(id, PERMISSION_TAKE_CONTROLS| PERMISSION_CONTROL_CAMERA);
pilot = id;
llListenRemove(listenindex);
listenindex = llListen(0, "", pilot, "");
} else if (str == "pilot" && id == NULL_KEY) {
llSetStatus(STATUS_PHYSICS, FALSE);
if (cloaked) {
cloaked = FALSE;
llMessageLinked(LINK_SET, 0, "decloak", NULL_KEY);}
llListenRemove(listenindex);
pilot = NULL_KEY;
llReleaseControls();}}
run_time_permissions(integer permissions)
{if (permissions & PERMISSION_TAKE_CONTROLS) {
llTakeControls( CONTROL_FWD |
CONTROL_BACK |
CONTROL_LEFT |
CONTROL_RIGHT |
CONTROL_ROT_LEFT |
CONTROL_ROT_RIGHT |
CONTROL_UP |
CONTROL_DOWN |
CONTROL_LBUTTON,
TRUE, FALSE);
llSetCameraParams(drive_cam);
vector current_pos = llGetPos();
llSetVehicleFloatParam(VEHICLE_HOVER_HEIGHT, current_pos.z);
pos = current_pos;
llSetStatus(STATUS_PHYSICS, TRUE);}}
control(key name, integer levels, integer edges){
if ((edges & levels & CONTROL_UP)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
linear.z += 12.0;
} else if ((edges & ~levels & CONTROL_UP)) {
linear.z -= 12.0;}
if ((edges & levels & CONTROL_DOWN)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
linear.z -= 12.0;
} else if ((edges & ~levels & CONTROL_DOWN)) {
linear.z += 12.0;}
if ((edges & levels & CONTROL_FWD)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
linear.x += 14.0;
} else if ((edges & ~levels & CONTROL_FWD)) {
linear.x -= 14.0;}
if ((edges & levels & CONTROL_BACK)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
linear.x -= 14.0;
} else if ((edges & ~levels & CONTROL_BACK)) {
linear.x += 14.0;}
if ((edges & levels & CONTROL_LEFT)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
linear.y += 8.0;
} else if ((edges & ~levels & CONTROL_LEFT)) {
linear.y -= 8.0;}
if ((edges & levels & CONTROL_RIGHT)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
linear.y -= 8.0;
} else if ((edges & ~levels & CONTROL_RIGHT)) {
linear.y += 8.0;}
if ((edges & levels & CONTROL_ROT_LEFT)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
angular.z += (PI / 180) * 55.0;
angular.x -= PI * 4;
} else if ((edges & ~levels & CONTROL_ROT_LEFT)) {
angular.z -= (PI / 180) * 55.0;
angular.x += PI * 4;}
if ((edges & levels & CONTROL_ROT_RIGHT)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
angular.z -= (PI / 180) * 55.0;
angular.x += PI * 4;
} else if ((edges & ~levels & CONTROL_ROT_RIGHT)) {
angular.z += (PI / 180) * 55.0;
angular.x -= PI * 4;}}
timer(){llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, linear);
llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular);}
listen(integer channel, string name, key id, string message){
message = llToLower(message);
if (message == "f" || message == "flight") {
state flight;}
if (message == "decloak" || message == "d") {
if (cloaked) {
cloaked = FALSE;
llTriggerSound("cloak", 1.0);
llMessageLinked(LINK_SET, 0, "decloak", NULL_KEY);} else {
llWhisper(0, "Cloak Currently Inactive");}}
if (message == "cloak" || message == "c") {
if (!cloaked) {
cloaked = TRUE;
llTriggerSound("cloak", 1.0);
llMessageLinked(LINK_SET, 0, "cloak", NULL_KEY);} else {
llWhisper(0, "Cloak Already Active");}}}}
state flight{
state_entry(){
llMessageLinked(LINK_SET, 0, "flight", NULL_KEY);
// llWhisper(0, "Mode: Flight");
linear = ZERO_VECTOR;
angular = ZERO_VECTOR;
throttle = 0.0;
under_power = FALSE;
llCollisionSound("", 0.0);
llListenRemove(listenindex);
if (pilot != NULL_KEY) {
listenindex = llListen(0, "", pilot, "");}
llSetVehicleType(VEHICLE_TYPE_AIRPLANE);
// linear friction
llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, <60.0, 1.0, 1.0>);
// uniform angular friction
llSetVehicleFloatParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, 0.05);
// linear motor
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <0.0, 0.0, 0.0>);
llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 0.5);
llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 10.0);
// angular motor
llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, <0.0, 0.0, 0.0>);
llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.2);
llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.2);
// hover
llSetVehicleFloatParam(VEHICLE_HOVER_HEIGHT, 0.0);
llSetVehicleFloatParam(VEHICLE_HOVER_EFFICIENCY, 0.1);
llSetVehicleFloatParam(VEHICLE_HOVER_TIMESCALE, 360.0);
llSetVehicleFloatParam(VEHICLE_BUOYANCY, 1.0);
// linear deflection
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1.0);
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 2.0);
// angular deflection
llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.1);
llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 100.0);
// vertical attractor
llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.0);
llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 360.0);
// banking
llSetVehicleFloatParam(VEHICLE_BANKING_EFFICIENCY, 0.25);
llSetVehicleFloatParam(VEHICLE_BANKING_MIX, 0.5);
llSetVehicleFloatParam(VEHICLE_BANKING_TIMESCALE, 1.0);
// default rotation of local frame
llSetVehicleRotationParam(VEHICLE_REFERENCE_FRAME, <0.0, 0.0, 0.0, 1.0>);
// removed vehicle flags
llRemoveVehicleFlags(VEHICLE_FLAG_NO_DEFLECTION_UP | VEHICLE_FLAG_HOVER_WATER_ONLY | VEHICLE_FLAG_HOVER_TERRAIN_ONLY | VEHICLE_FLAG_HOVER_UP_ONLY | VEHICLE_FLAG_LIMIT_MOTOR_UP | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT | VEHICLE_FLAG_LIMIT_ROLL_ONLY);// set vehicle flags
//llSetVehicleFlags(VEHICLE_FLAG_LIMIT_ROLL_ONLY);
llSetTimerEvent(0.05);}
on_rez(integer sparam)
{llResetScript();}
control(key name, integer levels, integer edges)
{if ((edges & levels & CONTROL_UP)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
linear.z += 10.0;
} else if ((edges & ~levels & CONTROL_UP)) {
linear.z -= 10.0;}
if ((edges & levels & CONTROL_DOWN)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
linear.z -= 10.0;
} else if ((edges & ~levels & CONTROL_DOWN)) {
linear.z += 10.0;}
if ((edges & levels & CONTROL_FWD)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
angular.y += (PI / 180.0) * 45.0;
} else if ((edges & ~levels & CONTROL_FWD)) {
angular.y -= (PI / 180.0) * 45.0;}
if ((edges & levels & CONTROL_BACK)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
angular.y -= (PI / 180.0) * 75.0;
} else if ((edges & ~levels & CONTROL_BACK)) {
angular.y += (PI / 180.0) * 75.0;}
if ((edges & levels & CONTROL_LEFT)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
angular.x -= (PI / 180.0) * 120.0;
} else if ((edges & ~levels & CONTROL_LEFT)) {
angular.x += (PI / 180.0) * 120.0;}
if ((edges & levels & CONTROL_RIGHT)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
angular.x += (PI / 180.0) * 120.0;
} else if ((edges & ~levels & CONTROL_RIGHT)) {
angular.x -= (PI / 180.0) * 120.0;}
if ((edges & levels & CONTROL_ROT_LEFT)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
angular.x -= (PI / 180.0) * 120.0;
} else if ((edges & ~levels & CONTROL_ROT_LEFT)) {
angular.x += (PI / 180.0) * 120.0;}
if ((edges & levels & CONTROL_ROT_RIGHT)) {
llMessageLinked(LINK_SET, 0, "key", NULL_KEY);
angular.x += (PI / 180.0) * 120.0;
} else if ((edges & ~levels & CONTROL_ROT_RIGHT)) {
angular.x -= (PI / 180.0) * 120.0;}}
link_message(integer sender, integer num, string str, key id){
if (str == "pilot" && id != NULL_KEY) {
llRequestPermissions(id, PERMISSION_TAKE_CONTROLS);
pilot = id;
llListenRemove(listenindex);
listenindex = llListen(0, "", pilot, "");
} else if (str == "pilot" && id == NULL_KEY) {
llSetStatus(STATUS_PHYSICS, FALSE);
if (cloaked) {
cloaked = FALSE;
llMessageLinked(LINK_SET, 0, "decloak", NULL_KEY);}
llListenRemove(listenindex);
pilot = NULL_KEY;
llReleaseControls();llReleaseCamera(pilot);
state default;}}
listen(integer channel, string name, key id, string message){
message = llToLower(message);
if (message == "h" || message == "hover" || message == "vtol") {
state default;}
if (message == "r" || message == "i" || message == "reverse" || message == "invert thrust") {
throttle = -5.0;}
if (message == "decloak" || message == "d") {
if (cloaked) {
cloaked = FALSE;
llTriggerSound("cloak", 1.0);
llMessageLinked(LINK_SET, 0, "decloak", NULL_KEY);
} else {
llWhisper(0, "Cloak Currently Inactive");}}
if (message == "cloak" || message == "c") {
if (!cloaked) {
cloaked = TRUE;
llTriggerSound("cloak", 1.0);
llMessageLinked(LINK_SET, 0, "cloak", NULL_KEY);
} else {
llWhisper(0, "Cloak Already Active");}}}
timer(){
if (linear.z > 0 && llGetTime() >= 0.25 && throttle < 100.0) {
if (throttle < 0.0) {
throttle = 0.0;} else {
throttle += linear.z;}
llResetTime();
llMessageLinked(LINK_SET, (integer)throttle, "throttle", NULL_KEY);
} else if (linear.z < 0 && llGetTime() >= 0.25 && throttle > 0.0) {
throttle += linear.z;
llResetTime();
llMessageLinked(LINK_SET, (integer)throttle, "throttle", NULL_KEY);}
linear.x = 30.0 * (throttle / 100.0);
vector linear_applied = <linear.x, 0.0, 0.0>;
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, linear_applied);
if (angular == ZERO_VECTOR) {
llSetVehicleFloatParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, 0.05);} else {
llSetVehicleFloatParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, 1.0);
}llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular);
}timer(){
vector pos = llGetPos();
if(( pos.z - llGround(ZERO_VECTOR) ) < 0.8){
rot = llGetRot();
llSetCameraParams(drive_cam);}
else{llSetCameraParams(jump_cam);}}
touch_start(integer detected){
vector pos = llGetPos();
llSay(0, (string)(pos.z - llGround(ZERO_VECTOR)));}}
_____________________
"Two lives I have.
One life I live. One life I dream.
In dreams I remember the better in me."
Taeas Stirling
Registered User
Join date: 4 Sep 2004
Posts: 74
08-29-2008 13:04
I belive the script in question is the much beloved hover/flight script written by illume Skallagrimson. Its been around forever and a fav among aircraft builders.
I'm in the cordova sand box and heard they were all running the new mono server scripts.
My copy of Aleys bug script compiles just fine..perhaps you have a borked verstion?
DancesWithRobots Soyer
Registered User
Join date: 7 Apr 2006
Posts: 701
08-29-2008 13:07
Runs fine before being compiled. Also, took that particular script and dropped it into a prim all by itself and it still wouldn't compile. I'm going to look for the original script and see if that helps.
_____________________
"Two lives I have.
One life I live. One life I dream.
In dreams I remember the better in me."
Taeas Stirling
Registered User
Join date: 4 Sep 2004
Posts: 74
08-29-2008 13:42
I just copy pasted your script, and it compiles in cordova.
Clear cache, and relog, SL is messing with you today. Personally been there lots of times :D