Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vector COLOR=<1,1,0>;
- integer TIMEOUT=15;
- shake()
- {
- vector pos=llGetPos();
- rotation rot=llGetRot();
- vector eulrandom1=<llFrand(PI/8),llFrand(PI/8),llFrand(PI/8)>;
- vector eulrandom2=<llFrand(PI/8),llFrand(PI/8),llFrand(PI/8)>;
- llSetRot(rot*llEuler2Rot(eulrandom1));
- llSleep(0.1);
- llSetRot(rot*llEuler2Rot(eulrandom2));
- llSleep(0.02);
- llSetRot(rot);
- llSleep(0.5);
- }
- switchoff()
- {
- llParticleSystem([]);
- }
- smoke(vector direction)
- {
- llParticleSystem(
- [
- PSYS_SRC_PATTERN,PSYS_SRC_PATTERN_ANGLE,
- PSYS_SRC_BURST_RADIUS,0,
- PSYS_SRC_ANGLE_BEGIN,0,
- PSYS_SRC_ANGLE_END,0,
- PSYS_SRC_TARGET_KEY,llGetKey(),
- PSYS_PART_START_COLOR,COLOR,
- PSYS_PART_END_COLOR,<0.242279,0.023346,0.074658>,
- PSYS_PART_START_ALPHA,1,
- PSYS_PART_END_ALPHA,1,
- //PSYS_PART_START_GLOW,0,
- //PSYS_PART_END_GLOW,0,
- //PSYS_PART_BLEND_FUNC_SOURCE,PSYS_PART_BF_SOURCE_ALPHA,
- //PSYS_PART_BLEND_FUNC_DEST,PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA,
- PSYS_PART_START_SCALE,<0.040000,0.040000,0.000000>,
- PSYS_PART_END_SCALE,<0.500000,0.500000,0.000000>,
- PSYS_SRC_TEXTURE,"",
- PSYS_SRC_MAX_AGE,0,
- PSYS_PART_MAX_AGE,2,
- PSYS_SRC_BURST_RATE,0,
- PSYS_SRC_BURST_PART_COUNT,5,
- PSYS_SRC_ACCEL,direction,
- PSYS_SRC_OMEGA,<0.000000,0.000000,0.600000>,
- PSYS_SRC_BURST_SPEED_MIN,0.5,
- PSYS_SRC_BURST_SPEED_MAX,0.5,
- PSYS_PART_FLAGS,
- 0 |
- PSYS_PART_EMISSIVE_MASK |
- PSYS_PART_FOLLOW_SRC_MASK |
- PSYS_PART_INTERP_COLOR_MASK |
- PSYS_PART_INTERP_SCALE_MASK |
- PSYS_PART_WIND_MASK
- ]);
- }
- integer LISTEN;
- key ID;
- default
- {
- state_entry()
- {
- switchoff();
- llSetLinkColor(1,<1,1,1>,ALL_SIDES);
- LISTEN=-1; llSetLinkColor(2,COLOR,ALL_SIDES);
- ID=NULL_KEY;
- llSay(0,"reset");
- }
- touch_start(integer count)
- {
- key id=llDetectedKey(0);
- if(ID==NULL_KEY)
- {
- ID=id;
- smoke(<0,0,0.3>);
- llSetPos(llGetPos()+<0,0,0.3>);
- }
- if(ID==id)
- {
- llSetTimerEvent(TIMEOUT);
- LISTEN=llListen(-1,"",ID,"");
- llDialog(ID,"Scegli:",["AGITA", "1CC","2CC","3CC","5CC","POSA"],-1);
- }
- }
- timer()
- {
- llSay(0,"timeout"); llSetPos(llGetPos()+<0,0,-0.3>);
- llResetScript();
- }
- listen(integer channel,string name, key id, string str)
- {
- llSetTimerEvent(TIMEOUT);
- llListenRemove(LISTEN);
- if(str=="POSA")
- {
- llSetTimerEvent(0);
- llSetPos(llGetPos()+<0,0,-0.3>);
- llResetScript();
- return;
- }
- llWhisper(100,str);
- if(str=="AGITA")
- {
- integer i;
- for(i=0;i<3;i++)
- {
- shake();
- }
- }
- else
- {
- llSay(0,"Sto versando "+str+" di "+llGetObjectDesc());
- rotation rot=llGetRot();
- smoke(<-0.8,0,-0.1>);
- llSetRot(rot*llEuler2Rot(<PI/2,0,0>));
- llSleep(4);
- llSetRot(rot);
- smoke(<0,0,0.3>);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement