Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- list main = ["Green", "Red", "Orange", "Yellow", "Winter", "SOUND"];
- list amount = ["Full", "Medium", "Sparse", "Back"];
- list sound = ["Loud", "Medium", "Soft", "Off"];
- string green1 = "3507acd1-c94a-3d59-c078-b994a654057f";
- string red1 = "6f15d216-cabf-6e07-d636-db4053a9a419";
- string orange1 = "088454ac-805e-7b8e-2c1c-f70a6a838a67";
- string yellow1 = "1c68e0b0-3fd2-78f6-6bd2-a9caa68e56cc";
- string winter1 = "e16b3682-3614-4b86-e2fc-bddadf67566e";
- string red2 = "d70bcfab-912d-7e7f-eaf0-06ad87a6b496";
- string orange2 = "4ba5db83-4328-811d-ce52-e9937b95ad2b";
- string yellow2 = "6616da83-bba1-24bd-53da-bf759d6eb3cb";
- string winter2 = "34c2c76b-b1f2-025f-5bbb-6e0893993d50";
- string red3 = "8de4acb5-59bb-b9bb-d023-ec4fdd9e1f70";
- string orange3 = "89acad93-1c4d-ed8f-5ec1-f3124911927f";
- string yellow3 = "da379d9f-fddf-4845-9263-3c98a1b6003e";
- string winter3 = "940dbf43-9059-b95a-78dd-c545d21d71fd";
- string yellowfall = "9d504ec9-b32c-1b9f-9bbd-635fc4fc2650";
- string orangefall = "a49c6a0c-23d7-1adb-9d67-10ea46253362";
- string redfall = "c7fb8f82-8a9d-35df-d3b0-ad744aa2f4ac";
- string emityellow = "80cd4697-d44b-490c-50eb-706b81650242";
- string emitorange = "8d070fab-431d-7a9a-5b03-605970bc399f";
- string emitred = "635fa33b-c572-200d-77b0-a074650345ad";
- string dirt = "7f25ee28-ebea-0d1b-6b1f-b869ec67ca21";
- string dirtsnow = "56b0514a-217e-3ff2-1e3f-d48e1d139824";
- string bucket = "a7492e42-62c4-a12e-bd72-134e896bfe14";
- string bucketsnow = "a2aa25e5-61e1-b163-c5ed-64a3aa7b56bf";
- string leaves = "d8156c9e-46dc-1ed6-2b29-1f62d6b0a5ec";
- string snow = "566900f9-9d3b-6fe5-8616-cde672345c99";
- string scattered2 = "50a79917-42f3-4919-e3e9-ff5590d9888c";
- string scattered3 = "0dec619e-2bfb-9b38-10d7-020dd4e04860";
- string trunk = "3d4d7278-1e05-3e85-6bf6-ff86cc720e19";
- string trunksnow = "cb13a49a-cc0c-5dc6-f39a-1bb6c4070afd";
- string scatteredyellow = "31d2bbc8-b080-e56a-08b5-4bed241baec8";
- string scatteredorange = "c00981f7-9046-ac3b-ee5c-122a42ca3ba1";
- string scatteredred = "953c5ca7-9a48-2fca-f38b-7c0403aaf020";
- string color = emityellow;
- string object = "flowers2";
- vector relativePosOffset = <-0.81858, -0.75735, -0.73730>;
- vector relativeVel = <0.0, 0.0, 0.0>;
- rotation relativeRot = <-0.11915, 0.00000, 0.00000, 0.99288>;
- integer chan = 321321;
- integer access = 0;
- integer channel = -89212;
- integer listenkey;
- integer startParam = 10;
- menu(key id)
- {
- if(id == llGetOwner() || access == 2
- || (access == 1 && llSameGroup(id)))
- {
- llListenRemove(listenkey); listenkey = llListen(channel,"",id,"");
- if(id != llGetOwner())
- {
- llDialog(id,"Menu ",main,channel);
- }
- else
- {
- llDialog(id,"Menu ",main+["Access"],channel);
- }
- }
- }
- integer getlink(string primname)
- {
- integer i; integer result= 9999;
- for(i=1; i<= llGetNumberOfPrims(); i++)
- {
- if(llGetLinkName(i) == primname) result = i;
- }
- return result;
- }
- setLeaves(string leaves1, string leaves2, string leaves3, string scattered, string falling)
- {
- llLinkParticleSystem(getlink("trunk"), falling_leaves(color) );
- llSetLinkPrimitiveParamsFast(getlink("leaves1"),[17,-1,leaves1,<1,1,0>,<1,1,0>,0,34,getlink("leaves2"),17,-1,leaves2,<1,1,0>,<1,1,0>,0,34,getlink("leaves3"),17,-1,leaves3,<1,1,0>,<1,1,0>,0,34,getlink("leaf1"),17,-1,falling,<1,1,0>,<1,1,0>,0,18,-1,<1,1,1>,1,34,getlink("leaf2"),17,-1,falling,<1,1,0>,<1,1,0>,0,18,-1,<1,1,1>,1,34,getlink("leaf3"),17,-1,falling,<1,1,0>,<1,1,0>,0,18,-1,<1,1,1>,1,34,getlink("leaf4"),17,-1,falling,<1,1,0>,<1,1,0>,0,18,-1,<1,1,1>,1,34,getlink("Bucket"),17,1,leaves,<1,1,0>,<1,1,0>,0,17,0,bucket,<1,1,0>,<1,1,0>,0,34,getlink("Ground Leaves"),18,-1,<1,1,1>,1,34,getlink("Rake"),18,-1,<1,1,1>,1,34,getlink("Ground Leaves"),17,2,scattered,<1,1,0>,<1,1,0>,0,17,1,scattered3,<1,1,0>,<1,1,0>,0,17,0,scattered2,<1,1,0>,<1,1,0>,0,34,getlink("trunk"),17,-1,trunk,<1,1,0>,<1,1,0>,0]);
- llSay(chan, "die");
- }
- list falling_leaves(string color)
- {
- return [ PSYS_SRC_TEXTURE, color // Gimped by Qie from Public Domain on Wikimedia Commons
- , PSYS_PART_FLAGS
- , PSYS_PART_WIND_MASK // usually undetectable though
- | PSYS_PART_INTERP_COLOR_MASK
- | PSYS_PART_INTERP_SCALE_MASK
- | PSYS_PART_EMISSIVE_MASK // I wouldn't, but most would
- , PSYS_SRC_BURST_RADIUS, 1.0 // no effect w/ DROP
- , PSYS_PART_START_SCALE, <0.05, 0.2, 0.0>
- , PSYS_PART_END_SCALE, <0.2, 0.0, 0.0>
- , PSYS_PART_START_COLOR, <0.2, 0.1, 0.1> // shaded inside tree
- , PSYS_PART_END_COLOR, <1.0, 1.0, 1.0>
- , PSYS_PART_START_ALPHA, 1.0
- , PSYS_PART_END_ALPHA, 1.0
- , PSYS_PART_START_GLOW, 0.01
- , PSYS_PART_END_GLOW, 0.01
- , PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE
- , PSYS_SRC_ANGLE_BEGIN, PI_BY_TWO
- , PSYS_SRC_ANGLE_END, PI
- , PSYS_PART_MAX_AGE, 3.0
- , PSYS_SRC_BURST_RATE, 1.5
- , PSYS_SRC_BURST_PART_COUNT, 1
- , PSYS_SRC_ACCEL, <0, 0, -0.75>
- ];
- }
- default
- {
- state_entry()
- {
- integer i;
- llSetLinkTextureAnim(getlink("leaves1"),ANIM_ON | SMOOTH | ROTATE | PING_PONG | LOOP, ALL_SIDES, 1, 1, 0, .05, .002*TWO_PI);
- llSetLinkTextureAnim(getlink("leaves2"),ANIM_ON | SMOOTH | ROTATE | PING_PONG | LOOP, ALL_SIDES, 1, 1, 0, .1, .003*TWO_PI);
- llSetLinkTextureAnim(getlink("leaves3"),ANIM_ON | SMOOTH | ROTATE | PING_PONG | LOOP, ALL_SIDES, 1, 1, 0, .05, .001*TWO_PI);
- llSetLinkTextureAnim(getlink("leaf1"),ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1.0, 1.0, .2);
- llSetLinkTextureAnim(getlink("leaf2"),ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1.0, 1.0, .15);
- llSetLinkTextureAnim(getlink("leaf3"),ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1.0, 1.0, .16);
- llSetLinkTextureAnim(getlink("leaf4"),ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1.0, 1.0, .17);
- llLinkParticleSystem(getlink("trunk"), falling_leaves(color) );
- llLoopSound("Wind", .6);
- }
- touch_start(integer total_number)
- {
- menu(llDetectedKey(0));
- }
- listen(integer ch, string name, key id, string text)
- {
- if(ch == channel)
- {
- if(text == "Yellow")
- {
- color = emityellow;
- llListenRemove(listenkey); listenkey = llListen(channel + 3,"",id,"");
- llDialog(id,"Fullness Menu ",amount,channel+3);
- }
- if(text == "Orange")
- {
- color = emitorange;
- llListenRemove(listenkey); listenkey = llListen(channel + 3,"",id,"");
- llDialog(id,"Fullness Menu ",amount,channel+3);
- }
- if(text == "Red")
- {
- color = emitred;
- llListenRemove(listenkey); listenkey = llListen(channel + 3,"",id,"");
- llDialog(id,"Fullness Menu ",amount,channel+3);
- }
- if(text == "Green")
- {
- llLinkParticleSystem(getlink("trunk"), [] );
- llSetLinkPrimitiveParamsFast(getlink("leaves1"),[17,-1,green1,<1,1,0>,<1,1,0>,0,34,getlink("leaves2"),17,-1,green1,<1,1,0>,<1,1,0>,0,34,getlink("leaves3"),17,-1,green1,<1,1,0>,<1,1,0>,0,34,getlink("leaf1"),18,-1,<1,1,1>,0,34,getlink("leaf2"),18,-1,<1,1,1>,0,34,getlink("leaf3"),18,-1,<1,1,1>,0,34,getlink("leaf4"),18,-1,<1,1,1>,0,34,getlink("Bucket"),17,1,dirt,<1,1,0>,<1,1,0>,0,17,0,bucket,<1,1,0>,<1,1,0>,0,34,getlink("Ground Leaves"),18,-1,<1,1,1>,0,34,getlink("Rake"),18,-1,<1,1,1>,0,34,getlink("trunk"),17,-1,trunk,<1,1,0>,<1,1,0>,0]);
- vector myPos = llGetPos();
- rotation myRot = llGetRot();
- vector rezPos = myPos+relativePosOffset*myRot;
- vector rezVel = relativeVel*myRot;
- rotation rezRot = relativeRot*myRot;
- llRezAtRoot(object, rezPos, rezVel, rezRot, startParam);
- }
- if(text == "Winter")
- {
- llLinkParticleSystem(getlink("trunk"), [] );
- llSetLinkPrimitiveParamsFast(getlink("leaves1"),[17,-1,winter1,<1,1,0>,<1,1,0>,0,34,getlink("leaves2"),17,-1,winter2,<1,1,0>,<1,1,0>,0,34,getlink("leaves3"),17,-1,winter3,<1,1,0>,<1,1,0>,0,34,getlink("leaf1"),18,-1,<1,1,1>,0,34,getlink("leaf2"),18,-1,<1,1,1>,0,34,getlink("leaf3"),18,-1,<1,1,1>,0,34,getlink("leaf4"),18,-1,<1,1,1>,0,34,getlink("Bucket"),17,1,dirtsnow,<1,1,0>,<1,1,0>,0,17,0,bucketsnow,<1,1,0>,<1,1,0>,0,34,getlink("Ground Leaves"),18,-1,<1,1,1>,.8,17,-1,snow,<1,1,0>,<1,1,0>,0,34,getlink("Rake"),18,-1,<1,1,1>,0,34,getlink("trunk"),17,-1,trunksnow,<1,1,0>,<1,1,0>,0]);
- llSay(chan, "die");
- }
- if(text == "Access")
- {
- llListenRemove(listenkey); listenkey = llListen(channel + 1,"",id,"");
- llDialog(id,"Choose access ",["Owner","Group","All"],channel+1);
- }
- if(text == "SOUND")
- {
- llListenRemove(listenkey); listenkey = llListen(channel + 2,"",id,"");
- llDialog(id,"Sound Menu ",sound,channel+2);
- }
- if(text == "Automatic")
- {
- integer daynum = (integer)llGetSubString(llGetDate(),5,6)*31+(integer)llGetSubString(llGetDate(),8,9);
- if(daynum > 373)
- {
- llLinkParticleSystem(getlink("trunk"), [] );
- llSetLinkPrimitiveParamsFast(getlink("leaves1"),[17,-1,winter1,<1,1,0>,<1,1,0>,0,34,getlink("leaves2"),17,-1,winter2,<1,1,0>,<1,1,0>,0,34,getlink("leaves3"),17,-1,winter3,<1,1,0>,<1,1,0>,0,34,getlink("leaf1"),18,-1,<1,1,1>,0,34,getlink("leaf2"),18,-1,<1,1,1>,0,34,getlink("leaf3"),18,-1,<1,1,1>,0,34,getlink("leaf4"),18,-1,<1,1,1>,0,34,getlink("Bucket"),17,1,dirtsnow,<1,1,0>,<1,1,0>,0,17,0,bucketsnow,<1,1,0>,<1,1,0>,0,34,getlink("Ground Leaves"),18,-1,<1,1,1>,.8,17,-1,snow,<1,1,0>,<1,1,0>,0,34,getlink("Rake"),18,-1,<1,1,1>,0,34,getlink("trunk"),17,-1,trunksnow,<1,1,0>,<1,1,0>,0]);
- llSay(chan, "die");
- }
- else if(daynum > 311)
- {
- integer random = llFloor(llFrand(3));
- if(random == 0)
- {
- color = emityellow;
- setLeaves(yellow1, yellow1, yellow1, scatteredyellow, yellowfall);
- }
- if(random == 1)
- {
- color = emitorange;
- setLeaves(orange1, orange1, orange1, scatteredorange, orangefall);
- }
- if(random == 2)
- {
- color = emitred;
- setLeaves(red1, red1, red1, scatteredred, redfall);
- }
- }
- else if(daynum > 125)
- {
- llLinkParticleSystem(getlink("trunk"), [] );
- llSetLinkPrimitiveParamsFast(getlink("leaves1"),[17,-1,green1,<1,1,0>,<1,1,0>,0,34,getlink("leaves2"),17,-1,green1,<1,1,0>,<1,1,0>,0,34,getlink("leaves3"),17,-1,green1,<1,1,0>,<1,1,0>,0,34,getlink("leaf1"),18,-1,<1,1,1>,0,34,getlink("leaf2"),18,-1,<1,1,1>,0,34,getlink("leaf3"),18,-1,<1,1,1>,0,34,getlink("leaf4"),18,-1,<1,1,1>,0,34,getlink("Bucket"),17,1,dirt,<1,1,0>,<1,1,0>,0,17,0,bucket,<1,1,0>,<1,1,0>,0,34,getlink("Ground Leaves"),18,-1,<1,1,1>,0,34,getlink("Rake"),18,-1,<1,1,1>,0,34,getlink("trunk"),17,-1,trunk,<1,1,0>,<1,1,0>,0]);
- vector myPos = llGetPos();
- rotation myRot = llGetRot();
- vector rezPos = myPos+relativePosOffset*myRot;
- vector rezVel = relativeVel*myRot;
- rotation rezRot = relativeRot*myRot;
- llRezAtRoot(object, rezPos, rezVel, rezRot, startParam);
- }
- else
- {
- llLinkParticleSystem(getlink("trunk"), [] );
- llSetLinkPrimitiveParamsFast(getlink("leaves1"),[17,-1,winter1,<1,1,0>,<1,1,0>,0,34,getlink("leaves2"),17,-1,winter2,<1,1,0>,<1,1,0>,0,34,getlink("leaves3"),17,-1,winter3,<1,1,0>,<1,1,0>,0,34,getlink("leaf1"),18,-1,<1,1,1>,0,34,getlink("leaf2"),18,-1,<1,1,1>,0,34,getlink("leaf3"),18,-1,<1,1,1>,0,34,getlink("leaf4"),18,-1,<1,1,1>,0,34,getlink("Bucket"),17,1,dirtsnow,<1,1,0>,<1,1,0>,0,17,0,bucketsnow,<1,1,0>,<1,1,0>,0,34,getlink("Ground Leaves"),18,-1,<1,1,1>,.8,17,-1,snow,<1,1,0>,<1,1,0>,0,34,getlink("Rake"),18,-1,<1,1,1>,0,34,getlink("trunk"),17,-1,trunksnow,<1,1,0>,<1,1,0>,0]);
- llSay(chan, "die");
- }
- }
- llListenRemove(listenkey); listenkey = llListen(ch,"",id,"");
- llSetTimerEvent (0.1);
- }
- if(ch == channel +1) access = llListFindList(["Owner","Group","All"],[text]);
- if(ch == channel +2)
- {
- if(text == "Loud")
- {
- llStopSound();
- llLoopSound("Wind", .6);
- }
- if(text == "Medium")
- {
- llStopSound();
- llLoopSound("Wind", .4);
- }
- if(text == "Soft")
- {
- llStopSound();
- llLoopSound("Wind", .2);
- }
- if(text == "Off")
- {
- llStopSound();
- }
- llListenRemove(listenkey); listenkey = llListen(ch,"",id,"");
- llDialog(id,"Sound Menu ",sound,ch);
- }
- if(ch == channel+3)
- {
- if(text == "Full")
- {
- if(color == emityellow) setLeaves(yellow1, yellow1, yellow1, scatteredyellow, yellowfall);
- if(color == emitorange) setLeaves(orange1, orange1, orange1, scatteredorange, orangefall);
- if(color == emitred) setLeaves(red1, red1, red1, scatteredred, redfall);
- }
- if(text == "Medium")
- {
- if(color == emityellow) setLeaves(yellow1, yellow2, yellow1, scatteredyellow, yellowfall);
- if(color == emitorange) setLeaves(orange1, orange2, orange1, scatteredorange, orangefall);
- if(color == emitred) setLeaves(red1, red2, red1, scatteredred, redfall);
- }
- if(text == "Sparse")
- {
- if(color == emityellow) setLeaves(yellow1, yellow2, yellow3, scatteredyellow, yellowfall);
- if(color == emitorange) setLeaves(orange1, orange2, orange3, scatteredorange, orangefall);
- if(color == emitred) setLeaves(red1, red2, red3, scatteredred, redfall);
- }
- if(text == "Back")
- {
- menu(id);
- return;
- }
- llListenRemove(listenkey); listenkey = llListen(ch,"",id,"");
- llDialog(id,"Fullness Menu ",amount,ch);
- }
- }
- timer()
- {
- if(llGetSubString(llGetDate(),5,9) == "10-01")
- {
- integer random = llFloor(llFrand(3));
- if(random == 0)
- {
- color = emityellow;
- setLeaves(yellow1, yellow1, yellow1, scatteredyellow, yellowfall);
- }
- if(random == 1)
- {
- color = emitorange;
- setLeaves(orange1, orange1, orange1, scatteredorange, orangefall);
- }
- if(random == 2)
- {
- color = emitred;
- setLeaves(red1, red1, red1, scatteredred, redfall);
- }
- }
- if(llGetSubString(llGetDate(),5,9) == "10-20")
- {
- if(color == emityellow) setLeaves(yellow1, yellow2, yellow1, scatteredyellow, yellowfall);
- if(color == emitorange) setLeaves(orange1, orange2, orange1, scatteredorange, orangefall);
- if(color == emitred) setLeaves(red1, red2, red1, scatteredred, redfall);
- }
- if(llGetSubString(llGetDate(),5,9) == "11-10")
- {
- if(color == emityellow) setLeaves(yellow1, yellow2, yellow3, scatteredyellow, yellowfall);
- if(color == emitorange) setLeaves(orange1, orange2, orange3, scatteredorange, orangefall);
- if(color == emitred) setLeaves(red1, red2, red3, scatteredred, redfall);
- }
- if(llGetSubString(llGetDate(),5,9) == "12-1")
- {
- llLinkParticleSystem(getlink("trunk"), [] );
- llSetLinkPrimitiveParamsFast(getlink("leaves1"),[17,-1,winter1,<1,1,0>,<1,1,0>,0,34,getlink("leaves2"),17,-1,winter2,<1,1,0>,<1,1,0>,0,34,getlink("leaves3"),17,-1,winter3,<1,1,0>,<1,1,0>,0,34,getlink("leaf1"),18,-1,<1,1,1>,0,34,getlink("leaf2"),18,-1,<1,1,1>,0,34,getlink("leaf3"),18,-1,<1,1,1>,0,34,getlink("leaf4"),18,-1,<1,1,1>,0,34,getlink("Bucket"),17,1,dirtsnow,<1,1,0>,<1,1,0>,0,17,0,bucketsnow,<1,1,0>,<1,1,0>,0,34,getlink("Ground Leaves"),18,-1,<1,1,1>,.8,17,-1,snow,<1,1,0>,<1,1,0>,0,34,getlink("Rake"),18,-1,<1,1,1>,0,34,getlink("trunk"),17,-1,trunksnow,<1,1,0>,<1,1,0>,0]);
- llSay(chan, "die");
- }
- if(llGetSubString(llGetDate(),5,9) == "3-1")
- {
- llLinkParticleSystem(getlink("trunk"), [] );
- llSetLinkPrimitiveParamsFast(getlink("leaves1"),[17,-1,green1,<1,1,0>,<1,1,0>,0,34,getlink("leaves2"),17,-1,green1,<1,1,0>,<1,1,0>,0,34,getlink("leaves3"),17,-1,green1,<1,1,0>,<1,1,0>,0,34,getlink("leaf1"),18,-1,<1,1,1>,0,34,getlink("leaf2"),18,-1,<1,1,1>,0,34,getlink("leaf3"),18,-1,<1,1,1>,0,34,getlink("leaf4"),18,-1,<1,1,1>,0,34,getlink("Bucket"),17,1,dirt,<1,1,0>,<1,1,0>,0,17,0,bucket,<1,1,0>,<1,1,0>,0,34,getlink("Ground Leaves"),18,-1,<1,1,1>,0,34,getlink("Rake"),18,-1,<1,1,1>,0,34,getlink("trunk"),17,-1,trunk,<1,1,0>,<1,1,0>,0]);
- vector myPos = llGetPos();
- rotation myRot = llGetRot();
- vector rezPos = myPos+relativePosOffset*myRot;
- vector rezVel = relativeVel*myRot;
- rotation rezRot = relativeRot*myRot;
- llRezAtRoot(object, rezPos, rezVel, rezRot, startParam);
- }
- llSetTimerEvent(43200.0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement