Difference between revisions of "User:Lastro Greenwood"
Jump to navigation
Jump to search
(Created page with '== Lastro Greenwood's Page == Hey everyone, I'm Lastro Greenwood. I specialise in software development but can kinda build.') |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
I specialise in software development but can kinda build. | I specialise in software development but can kinda build. | ||
== Scratch Pad == | |||
=== llCastRay === | |||
Determines if something is blocking line of sight to avatar. | |||
Uses: | |||
* Radiation? | |||
* Checking to see if avatar is hiding behind cover | |||
* Checking to see if avatar has line of sight to a heat source | |||
* Other stuff that requires LOS | |||
Observations: | |||
* When running the trace it seems to go straight through all objects that get in its way | |||
* It will return false if you dont filter out the object, a quick fix would be to change "if(numobj == 0)" to "if(numobj == 1)" | |||
<lsl>integer getnumobj(list traceres) | |||
{ | |||
return (integer)llList2String(traceres,llGetListLength(traceres)-1); | |||
} | |||
integer isVisible(vector start, vector finish, integer filter) | |||
{ | |||
list res = llCastRay(start,finish,filter,0); | |||
integer numobj = getnumobj(res); | |||
if(numobj == 0) | |||
return TRUE; | |||
return FALSE; | |||
} | |||
default | |||
{ | |||
state_entry() | |||
{ | |||
} | |||
touch_start(integer total_number) | |||
{ | |||
vector pos = llGetPos(); | |||
vector finalpos = llDetectedPos(0); | |||
if(isVisible(pos,finalpos,AGENT) == TRUE) | |||
llOwnerSay("I can see clearly now!"); | |||
else | |||
llOwnerSay("Something is in my way!"); | |||
} | |||
}</lsl> | |||
== RLV == | |||
=== RLV ASN Stargate Script === | |||
Allows for auto-teleporting via RLV, supports most relays | |||
<lsl>vector regCorner; | |||
integer relayChannel = -1812221819; | |||
default | |||
{ | |||
link_message(integer sender, integer num, string msg, key id) | |||
{ | |||
if(num != 205902) | |||
return; | |||
list data = llParseString2List(id,["|"],[]); | |||
string cmd = llList2String(data,0); | |||
if(cmd == "dial succeeded") | |||
{ | |||
string region = llList2String(data,1); | |||
regCorner = (vector)llList2String(data,2); | |||
llRequestSimulatorData(region,DATA_SIM_POS); | |||
} | |||
if(cmd == "wormhole collision") | |||
{ | |||
string target = llList2String(data,2); | |||
string msg = "stargate," + (string)target + ",@tpto:" + | |||
(string)regCorner.x + "/" + | |||
(string)regCorner.y + "/" + | |||
(string)regCorner.z + "=force"; | |||
llWhisper(relayChannel,msg); | |||
} | |||
/*string msgOut = "LINK MSG\n"; | |||
msgOut += "sender: " + (string)sender + "\n"; | |||
msgOut += "num: " + (string)num + "\n"; | |||
msgOut += "msg: " + msg + "\n"; | |||
msgOut += "key: " + (string)id + "\n"; | |||
llOwnerSay(msgOut);*/ | |||
} | |||
dataserver(key req, string data) | |||
{ | |||
regCorner += (vector)data; | |||
} | |||
}</lsl> |
Latest revision as of 00:18, 7 August 2010
Lastro Greenwood's Page
Hey everyone, I'm Lastro Greenwood.
I specialise in software development but can kinda build.
Scratch Pad
llCastRay
Determines if something is blocking line of sight to avatar.
Uses:
- Radiation?
- Checking to see if avatar is hiding behind cover
- Checking to see if avatar has line of sight to a heat source
- Other stuff that requires LOS
Observations:
- When running the trace it seems to go straight through all objects that get in its way
- It will return false if you dont filter out the object, a quick fix would be to change "if(numobj == 0)" to "if(numobj == 1)"
<lsl>integer getnumobj(list traceres) {
return (integer)llList2String(traceres,llGetListLength(traceres)-1);
}
integer isVisible(vector start, vector finish, integer filter) {
list res = llCastRay(start,finish,filter,0); integer numobj = getnumobj(res); if(numobj == 0) return TRUE; return FALSE;
}
default {
state_entry() { }
touch_start(integer total_number) { vector pos = llGetPos(); vector finalpos = llDetectedPos(0); if(isVisible(pos,finalpos,AGENT) == TRUE) llOwnerSay("I can see clearly now!"); else llOwnerSay("Something is in my way!"); }
}</lsl>
RLV
RLV ASN Stargate Script
Allows for auto-teleporting via RLV, supports most relays
<lsl>vector regCorner; integer relayChannel = -1812221819; default {
link_message(integer sender, integer num, string msg, key id) { if(num != 205902) return; list data = llParseString2List(id,["|"],[]); string cmd = llList2String(data,0); if(cmd == "dial succeeded") { string region = llList2String(data,1); regCorner = (vector)llList2String(data,2); llRequestSimulatorData(region,DATA_SIM_POS); } if(cmd == "wormhole collision") { string target = llList2String(data,2); string msg = "stargate," + (string)target + ",@tpto:" + (string)regCorner.x + "/" + (string)regCorner.y + "/" + (string)regCorner.z + "=force"; llWhisper(relayChannel,msg); }
/*string msgOut = "LINK MSG\n"; msgOut += "sender: " + (string)sender + "\n"; msgOut += "num: " + (string)num + "\n"; msgOut += "msg: " + msg + "\n"; msgOut += "key: " + (string)id + "\n"; llOwnerSay(msgOut);*/ } dataserver(key req, string data) { regCorner += (vector)data; }
}</lsl>