02-19-2013, 01:49 AM
What is it?
A gadget to control your personal gravity, this effects how fast you fall, how high you can jump etc. This type of thing is used in RP areas often, from gliding graciously from roof tops to leaping entire regions. I’ve added an option for skydivers, enabling a quick boost into the heavens via the ‘Skydive’ option.
How-to/Info:
•Copy paste the script below into a new script inworld.
•Save it & then put the script into an object (if not there already).
•Shrink the object so it fits on your screen, wear it as a HuD attachment.
•Touch it to bring up the control menu.
•This does not have to be a HuD, you can wear it on the body.
A gadget to control your personal gravity, this effects how fast you fall, how high you can jump etc. This type of thing is used in RP areas often, from gliding graciously from roof tops to leaping entire regions. I’ve added an option for skydivers, enabling a quick boost into the heavens via the ‘Skydive’ option.
How-to/Info:
•Copy paste the script below into a new script inworld.
•Save it & then put the script into an object (if not there already).
•Shrink the object so it fits on your screen, wear it as a HuD attachment.
•Touch it to bring up the control menu.
•This does not have to be a HuD, you can wear it on the body.
PHP Code:
//Do not sell this; Karma knowz where you live ☠
key User;
key Owner;
float Force;
float Volume = 1.0;
integer Channel;
integer Handle;
list Options = ["Moon","*Normal*","Heavy","Crush","Feather","Space","•>>","^-SkyDive-^","< <•","---","<<•>>","+++"];
Menu(){
Handle = llListen(Channel, "", Owner, "");
string Info = "\n*Select your desired level of Gravity; SkyDive will send you about 1000m up.\n*The +++ & --- options will increase or decrease your \"current\" gravity by a factor of 0.5\n\nNOTE>> Use the \"Normal\" option to restore normality =)";
llDialog(Owner, Info, Options, Channel);
llSetTimerEvent(60.0);
}
default{
//
state_entry(){
Owner = llGetOwner();
Channel = (integer)llFrand(DEBUG_CHANNEL) * -1;
}
//
on_rez(integer total_number){
if (Owner != llGetOwner()){
llResetScript();
}
}
//
touch_start(integer t){
User = llDetectedKey(0);
if(User == Owner){
llMessageLinked(LINK_THIS, 0, "GRAVITY>>MENU",llGetOwner());
}
}
//
link_message(integer sender, integer num, string str, key id){
if (str == "GRAVITY>>MENU"){
llSetObjectName("Gravity Control");
Menu();
}
}
//
timer(){//Remove lag/listen after llSetTimerEvent
llSetTimerEvent(0.0);//Dont want to keep stopping.. so we end the timer.
llListenRemove(Handle);//& do what timer is here for; remove listen/lag.
}
//
listen(integer channel, string name, key id, string message){
if (llListFindList(Options, [message]) != -1){
float Mass = llGetMass();
if(message == "+++"){
Force += 0.25;
llTriggerSound("be0cd87b-ae95-2fb5-6250-dcdd4d2ce732",Volume);
llSetForce(Mass*<0,0,Force>, TRUE);
llOwnerSay("/me >> Gravity : " + (string)Force+" :");
Menu();//re-open the menu
}
else if(message == "---"){
Force -= 0.25;
llTriggerSound("be0cd87b-ae95-2fb5-6250-dcdd4d2ce732",Volume);
llSetForce(Mass*<0,0,Force>, TRUE);
llOwnerSay("/me >> Gravity : " + (string)Force+" :");
Menu();
}
else if(message == "Moon"){
Force = 6.5;
llTriggerSound("be0cd87b-ae95-2fb5-6250-dcdd4d2ce732",Volume);
llSetForce(Mass*<0,0,Force>, TRUE);
llOwnerSay("/me >> Gravity : " + (string)Force+" :");
Menu();
}
else if(message == "Heavy"){
Force = -9.8;
llTriggerSound("be0cd87b-ae95-2fb5-6250-dcdd4d2ce732",Volume);
llSetForce(Mass*<0,0,Force>, TRUE);
llOwnerSay("/me >> Gravity : " + (string)Force+" :");
Menu();
}
else if(message == "Feather"){
Force = 9.25;
llTriggerSound("be0cd87b-ae95-2fb5-6250-dcdd4d2ce732",Volume);
llSetForce(Mass*<0,0,Force>, TRUE);
llOwnerSay("/me >> Gravity : " + (string)Force+" :");
Menu();
}
else if(message == "Crush"){
Force = 2147483647.0;
llTriggerSound("be0cd87b-ae95-2fb5-6250-dcdd4d2ce732",Volume);
llSetForce(Mass*<0,0,-Force>, TRUE);
llOwnerSay("/me >> Gravity : " + (string)Force+" :");
Menu();
}
else if(message == "Space"){
Force = 9.8;
llTriggerSound("be0cd87b-ae95-2fb5-6250-dcdd4d2ce732",Volume);
llSetForce(Mass*<0,0,Force>, TRUE);
llOwnerSay("/me >> Gravity : " + (string)Force+" :");
Menu();
}
else if(message == "*Normal*"){
llTriggerSound("be0cd87b-ae95-2fb5-6250-dcdd4d2ce732",Volume);
llSetForce(Mass*<0,0,0>, TRUE);
llOwnerSay("/me >> Gravity : Normal (<0,0,0>) :");
}
else if(message == "^-SkyDive-^"){
llTriggerSound("be0cd87b-ae95-2fb5-6250-dcdd4d2ce732",Volume);
llSetForce(Mass*<0,0,2147483647.0>, TRUE);
llOwnerSay("/me >> Gravity : SkyDive :");
llSleep(5.0);
llTriggerSound("be0cd87b-ae95-2fb5-6250-dcdd4d2ce732",Volume);
llSetForce(Mass*<0,0,0>, TRUE);
llOwnerSay("/me >> Gravity : Restored :\n (Parachute on?..)");
llResetScript();
}
}
}
//
}