Difference between revisions of "Punkysnippets"
Jump to navigation
Jump to search
(New page: ==Welcome to the snippet page of Punky!== ---- Below are some small example scripts and misc useful codes for inserts! ----) |
|||
Line 3: | Line 3: | ||
Below are some small example scripts and misc useful codes for inserts! | Below are some small example scripts and misc useful codes for inserts! | ||
---- | ---- | ||
===Simple leashing script=== | |||
This is mearly an example for a leash, you will need to change | |||
the on/off to fit your need, the length and etc. | |||
---- | |||
<lsl> | |||
string texturename = "08d5770f-d3c4-7d4a-5a2b-2a1c126643d9"; | |||
string nullstr = ""; | |||
key nullkey = NULL_KEY; | |||
key posekey = nullkey; | |||
float age = 3; | |||
float gravity = 1.0; | |||
key currenttarget = nullkey; | |||
string ourtarget = nullstr; | |||
integer line; | |||
key loadkey; | |||
UpdateParticles(key leashtarget) | |||
{ | |||
currenttarget = leashtarget; | |||
llParticleSystem( [ | |||
PSYS_PART_START_SCALE,(vector) <0.075,0.075,0>, | |||
PSYS_PART_END_SCALE,(vector) <1,1,0>, | |||
PSYS_PART_START_COLOR,(vector) <1,1,1>, | |||
PSYS_PART_END_COLOR,(vector) <1,1,1>, | |||
PSYS_PART_START_ALPHA,(float) 1.0, | |||
PSYS_PART_END_ALPHA,(float) 1.0, | |||
PSYS_SRC_TEXTURE,(string) texturename, | |||
PSYS_SRC_BURST_PART_COUNT,(integer) 1, | |||
PSYS_SRC_BURST_RATE,(float) 0.0, | |||
PSYS_PART_MAX_AGE,(float) age, | |||
PSYS_SRC_MAX_AGE,(float) 0.0, | |||
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP, | |||
PSYS_SRC_BURST_RADIUS,(float) 0.5, | |||
PSYS_SRC_INNERANGLE,(float) 0.0, | |||
PSYS_SRC_OUTERANGLE,(float) 0.0, | |||
PSYS_SRC_OMEGA,(vector) <0,0,0>, | |||
PSYS_SRC_ACCEL,(vector) <0,0,-gravity>, | |||
PSYS_SRC_BURST_SPEED_MIN,(float) 1000.0, | |||
PSYS_SRC_BURST_SPEED_MAX,(float) 1000.0, | |||
PSYS_SRC_TARGET_KEY,(key) leashtarget, | |||
PSYS_PART_FLAGS, | |||
PSYS_PART_FOLLOW_VELOCITY_MASK | | |||
PSYS_PART_FOLLOW_SRC_MASK | | |||
PSYS_PART_TARGET_POS_MASK | 0 | |||
] ); | |||
} | |||
integer isKey(key in) | |||
{ | |||
if(in) return 2; | |||
return (in == nullkey); | |||
} | |||
///// | |||
/////Leash Vari | |||
///// | |||
vector target; | |||
vector subpos; | |||
float dist; | |||
integer leash_length = 2; | |||
key ptarget; | |||
key owner; | |||
string targetN; | |||
default | |||
{ | |||
on_rez(integer r) | |||
{ | |||
owner = llGetOwner(); | |||
} | |||
state_entry() | |||
{ | |||
llParticleSystem([]); | |||
owner = llGetOwner(); | |||
llListen(0, "", owner, ""); | |||
} | |||
listen(integer chan, string name, key id, string msg) | |||
{ | |||
list parse = llParseString2List(msg, ["|"], []); | |||
if(llList2String(parse, 0) == "leash") | |||
{ | |||
llSensorRepeat("", (key)llList2String(parse, 1), AGENT, 96, PI, 0.2); | |||
} | |||
} | |||
sensor(integer s) | |||
{ | |||
target = llDetectedPos(0); | |||
ptarget = llDetectedKey(0); | |||
subpos = llGetPos(); | |||
dist = llVecDist(subpos, target); | |||
UpdateParticles(ptarget); | |||
if(dist >= (leash_length + 1)) | |||
{ | |||
llMoveToTarget(target, 0.75); | |||
} | |||
if(dist <= leash_length) | |||
{ | |||
llStopMoveToTarget(); | |||
} | |||
} | |||
no_sensor() | |||
{ | |||
llParticleSystem([]); | |||
llStopMoveToTarget(); | |||
} | |||
} | |||
</lsl> |
Revision as of 18:09, 22 July 2008
Welcome to the snippet page of Punky!
Below are some small example scripts and misc useful codes for inserts!
Simple leashing script
This is mearly an example for a leash, you will need to change the on/off to fit your need, the length and etc.
<lsl> string texturename = "08d5770f-d3c4-7d4a-5a2b-2a1c126643d9"; string nullstr = ""; key nullkey = NULL_KEY; key posekey = nullkey; float age = 3; float gravity = 1.0; key currenttarget = nullkey; string ourtarget = nullstr; integer line; key loadkey; UpdateParticles(key leashtarget) {
currenttarget = leashtarget; llParticleSystem( [ PSYS_PART_START_SCALE,(vector) <0.075,0.075,0>, PSYS_PART_END_SCALE,(vector) <1,1,0>, PSYS_PART_START_COLOR,(vector) <1,1,1>, PSYS_PART_END_COLOR,(vector) <1,1,1>, PSYS_PART_START_ALPHA,(float) 1.0, PSYS_PART_END_ALPHA,(float) 1.0, PSYS_SRC_TEXTURE,(string) texturename, PSYS_SRC_BURST_PART_COUNT,(integer) 1, PSYS_SRC_BURST_RATE,(float) 0.0, PSYS_PART_MAX_AGE,(float) age, PSYS_SRC_MAX_AGE,(float) 0.0, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP, PSYS_SRC_BURST_RADIUS,(float) 0.5, PSYS_SRC_INNERANGLE,(float) 0.0, PSYS_SRC_OUTERANGLE,(float) 0.0, PSYS_SRC_OMEGA,(vector) <0,0,0>, PSYS_SRC_ACCEL,(vector) <0,0,-gravity>, PSYS_SRC_BURST_SPEED_MIN,(float) 1000.0, PSYS_SRC_BURST_SPEED_MAX,(float) 1000.0, PSYS_SRC_TARGET_KEY,(key) leashtarget, PSYS_PART_FLAGS, PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_FOLLOW_SRC_MASK | PSYS_PART_TARGET_POS_MASK | 0 ] );
} integer isKey(key in) {
if(in) return 2; return (in == nullkey);
} ///// /////Leash Vari ///// vector target; vector subpos; float dist; integer leash_length = 2; key ptarget; key owner; string targetN; default {
on_rez(integer r) { owner = llGetOwner(); } state_entry() { llParticleSystem([]); owner = llGetOwner(); llListen(0, "", owner, ""); } listen(integer chan, string name, key id, string msg) { list parse = llParseString2List(msg, ["|"], []); if(llList2String(parse, 0) == "leash") { llSensorRepeat("", (key)llList2String(parse, 1), AGENT, 96, PI, 0.2); } } sensor(integer s) { target = llDetectedPos(0); ptarget = llDetectedKey(0); subpos = llGetPos(); dist = llVecDist(subpos, target); UpdateParticles(ptarget); if(dist >= (leash_length + 1)) { llMoveToTarget(target, 0.75); } if(dist <= leash_length) { llStopMoveToTarget(); } } no_sensor() { llParticleSystem([]); llStopMoveToTarget(); }
} </lsl>