Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //KCP _ACSv7.0 - ParticleSystem
- //(c)2014 Karyn Vaher - All Rights Reserved
- //This script set, current or previous versions, is only for redistribution as part of a scripted vehicle, with permissions set to NO MOD and NO TRANSFER
- //Resale of any section of this code or emulation of the unique operational flow of this system for resale is in violation of software copyright and subject to DMCA
- //Code is not to be exported from Second Life to alternate grids. Exceptions granted to any or all conditions only by commercial licensing agreement.
- integer TracksAlwaysOn = FALSE; //Set to TRUE for constant tire tracks particles while vehicle is moving.
- integer TracksCornerFX = FALSE; //If using the CornerFX system, set this to TRUE to trigger tracks when CornerFX is engaged.
- //BURNOUT PARTICLES
- particles_burnout(integer x)
- {
- llLinkParticleSystem(x,[
- //PASTE YOUR PARTICLE SYSTEM HERE:
- PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE,
- PSYS_SRC_BURST_PART_COUNT, 25,
- PSYS_SRC_BURST_RATE, 0.05,
- PSYS_PART_MAX_AGE, 7.00,
- PSYS_SRC_BURST_RADIUS, 0.15,
- PSYS_SRC_ACCEL, <0.0, 2.0, 0.0>,
- PSYS_SRC_ANGLE_BEGIN, 0.00,
- PSYS_SRC_ANGLE_END, 3.141593,
- PSYS_SRC_BURST_SPEED_MIN, 0.1,
- PSYS_SRC_BURST_SPEED_MAX, 1.5,
- PSYS_SRC_OMEGA, <9.0, 9.0, 9.0>,
- PSYS_PART_END_SCALE, <2.0, 2.0, 2.0>,
- PSYS_PART_START_SCALE, <1.0, 1.0, 1.0>,
- PSYS_PART_END_COLOR, <1.0, 1.0, 1.0>,//Change Color Here
- PSYS_PART_START_COLOR, <1.0, 1.0, 1.0>,//Change Color Here
- PSYS_PART_END_ALPHA, 0.3,
- PSYS_PART_START_ALPHA, 0.6,
- PSYS_PART_FLAGS, PSYS_PART_WIND_MASK | PSYS_PART_EMISSIVE_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK
- //END OF YOUR PARTICLE SYSTEM
- ]);
- }
- //EXHAUST PARTICLES
- particles_exhaust(integer x)
- {
- llLinkParticleSystem(x,[
- //PASTE YOUR PARTICLE SYSTEM HERE:
- PSYS_PART_START_ALPHA, 0.1,
- PSYS_PART_END_ALPHA, 0.01,
- PSYS_PART_START_COLOR, <0.0, 0.0, 0.5>,//Change Color Here
- PSYS_PART_END_COLOR, <0.0, 0.0, 0.5>,//Change Color Here
- PSYS_PART_START_SCALE, <0.25,0.25,0.25>,
- PSYS_PART_END_SCALE, <1.0,1.0,1.0>,
- PSYS_PART_MAX_AGE, 3.0,
- PSYS_SRC_ACCEL, ZERO_VECTOR,
- PSYS_SRC_ANGLE_BEGIN, PI,
- PSYS_SRC_ANGLE_END, PI,
- PSYS_SRC_BURST_PART_COUNT, 5,
- PSYS_SRC_BURST_RADIUS, 0.1,
- PSYS_SRC_BURST_RATE, 0.2,
- PSYS_SRC_BURST_SPEED_MIN, 0.1,
- PSYS_SRC_BURST_SPEED_MAX, 0.8,
- PSYS_SRC_TEXTURE, "4f714019-c1cf-6b16-994f-44b217022f1a",
- PSYS_SRC_PATTERN,
- PSYS_SRC_PATTERN_EXPLODE,
- PSYS_PART_FLAGS, 0 | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK
- //END OF YOUR PARTICLE SYSTEM
- ]);
- }
- //FLIGHT PARTICLES
- particles_flight(integer x)
- {
- llLinkParticleSystem(x,[
- //PASTE YOUR PARTICLE SYSTEM HERE:
- PSYS_PART_MAX_AGE,0.3,
- PSYS_PART_FLAGS, PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_EMISSIVE_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK,
- PSYS_PART_START_COLOR, <0.000000, 0.000000, 1.000000>,//Change Color Here
- PSYS_PART_END_COLOR, <0.666666, 0.666666, 0.666666>,//Change Color Here
- PSYS_PART_START_SCALE,<0.7,0.7,0>,
- PSYS_PART_END_SCALE, <0.1,0.1,0>,
- PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE,
- PSYS_SRC_TEXTURE, "4f714019-c1cf-6b16-994f-44b217022f1a",
- PSYS_SRC_BURST_RATE,0.01,
- PSYS_SRC_ACCEL, <0.00000, 0.00000, 0.00000>,
- PSYS_SRC_BURST_PART_COUNT,20,
- PSYS_SRC_BURST_RADIUS,0.25,
- PSYS_SRC_BURST_SPEED_MIN,0.0,
- PSYS_SRC_BURST_SPEED_MAX,1.0,
- PSYS_SRC_OMEGA, <0.00000, 0.00000, 0.00000>,
- PSYS_SRC_ANGLE_BEGIN,0.0,
- PSYS_SRC_ANGLE_END, 3.141593,
- PSYS_SRC_MAX_AGE, 0.000000,
- PSYS_PART_START_ALPHA, 1.0,
- PSYS_PART_END_ALPHA, 0.0
- //END OF YOUR PARTICLE SYSTEM
- ]);
- }
- //CORNERFX PARTICLES
- particles_CornerFX(integer x)
- {
- llLinkParticleSystem(x,[
- //PASTE YOUR PARTICLE SYSTEM HERE:
- PSYS_PART_START_ALPHA, 0.5,
- PSYS_PART_END_ALPHA, 0.01,
- PSYS_PART_START_COLOR, <1.0, 1.0, 1.0>,//Change Color Here
- PSYS_PART_END_COLOR, <1.0, 1.0, 1.0>,//Change Color Here
- PSYS_PART_START_SCALE, <0.25,0.25,0.25>,
- PSYS_PART_END_SCALE, <0.25,0.25,0.25>,
- PSYS_PART_MAX_AGE, 3.0,
- PSYS_SRC_ACCEL, ZERO_VECTOR,
- PSYS_SRC_ANGLE_BEGIN, PI,
- PSYS_SRC_ANGLE_END, PI,
- PSYS_SRC_BURST_PART_COUNT, 25,
- PSYS_SRC_BURST_RADIUS, 0.1,
- PSYS_SRC_BURST_RATE, 0.1,
- PSYS_SRC_BURST_SPEED_MIN, 0.1,
- PSYS_SRC_BURST_SPEED_MAX, 0.8,
- PSYS_SRC_TEXTURE, "4f714019-c1cf-6b16-994f-44b217022f1a",
- PSYS_SRC_PATTERN,
- PSYS_SRC_PATTERN_EXPLODE,
- PSYS_PART_FLAGS, 0 | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK
- //END OF YOUR PARTICLE SYSTEM
- ]);
- }
- //TIRE TRACKS PARTICLES
- particles_TireTracks(integer x)
- {
- llLinkParticleSystem(x,[
- //PASTE YOUR PARTICLE SYSTEM HERE:
- PSYS_PART_MAX_AGE,60,
- PSYS_PART_FLAGS, PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_EMISSIVE_MASK,
- PSYS_PART_START_COLOR, <0.0,0.0,0.0>,
- PSYS_PART_END_COLOR, <0.0,0.0,0.0>,
- PSYS_PART_START_SCALE,<0.5,0.1,0.5>,
- PSYS_PART_END_SCALE,<0.5,0.1,0.5>,
- PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP,
- PSYS_SRC_BURST_RATE,.001,
- PSYS_SRC_ACCEL,<0.00000, 0.00000, 0.00000>,
- PSYS_SRC_BURST_PART_COUNT,5,//2
- PSYS_SRC_BURST_RADIUS,.15,
- PSYS_SRC_BURST_SPEED_MIN,0,
- PSYS_SRC_BURST_SPEED_MAX,.01,
- PSYS_SRC_OMEGA, <0.00000, 0.00000, 0.00000>,
- PSYS_SRC_ANGLE_BEGIN,0.0,
- PSYS_SRC_ANGLE_END, 3.141593,
- PSYS_SRC_TARGET_KEY,(key)"",
- PSYS_SRC_TEXTURE, (key)"",
- PSYS_SRC_MAX_AGE, 2.000,
- PSYS_PART_START_ALPHA, 0.8,
- PSYS_PART_END_ALPHA, 0.8
- //END OF YOUR PARTICLE SYSTEM
- ]);
- }
- //BOAT WAKE PARTICLES
- particles_BoatWake(integer x)
- {
- llLinkParticleSystem(x,[
- //PASTE YOUR PARTICLE SYSTEM HERE:
- PSYS_PART_MAX_AGE,60,
- PSYS_PART_FLAGS, PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_EMISSIVE_MASK,
- PSYS_PART_START_COLOR, <1.0,1.0,1.0>,
- PSYS_PART_END_COLOR, <1.0,1.0,1.0>,
- PSYS_PART_START_SCALE,<1.0,1.0,1.0>,
- PSYS_PART_END_SCALE,<0.6,0.6,0.6>,
- PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP,
- PSYS_SRC_BURST_RATE,.01,
- PSYS_SRC_ACCEL, <0.00000, 0.00000, 0.00000>,
- PSYS_SRC_BURST_PART_COUNT,1,
- PSYS_SRC_BURST_RADIUS,.1,
- PSYS_SRC_BURST_SPEED_MIN,0,
- PSYS_SRC_BURST_SPEED_MAX,.1,
- PSYS_SRC_OMEGA, <0.00000, 0.00000, 0.00000>,
- PSYS_SRC_ANGLE_BEGIN,0.0,
- PSYS_SRC_ANGLE_END, 3.141593,
- PSYS_SRC_TARGET_KEY,(key)"",
- PSYS_SRC_TEXTURE, (key)"b1b5356d-9c40-e3a7-70ec-c32066f531f6",
- PSYS_SRC_MAX_AGE, 1.000,
- PSYS_PART_START_ALPHA, 0.8,
- PSYS_PART_END_ALPHA, 0.0
- //END OF YOUR PARTICLE SYSTEM
- ]);
- }
- /////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////END RECOMMENDED EDITABLE SECTION//////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////
- Clear(list target){if (valid(target)){integer c = llGetListLength(target);integer i; for (; i < c; ++i){llLinkParticleSystem(llList2Integer(target,i), []);}}}
- stopall(){integer i; integer xx=llGetNumberOfPrims();for (; i < xx; ++i) {llLinkParticleSystem(i, []);}}integer valid(list x){return llGetListLength(x);}
- integer Ignition;integer Flight;integer Water;list flightprims;list smokeprims;list burnprims;list trackprims;list wakeprims;integer trackson;integer ExhaustOn=TRUE;integer repid=912;
- SendParticles(integer x) {
- list target;if (x==1) target=flightprims; else if (x==2) target=smokeprims; else if (x==3) target=burnprims; else if (x==4) target=burnprims; else if (x==5) target=trackprims; else if (x==6) target=wakeprims; integer tlen=llGetListLength(target);integer i; for (i; i < tlen; ++i) {integer p = llList2Integer(target,i); if (x==1) particles_flight(p); else if (x==2 && ExhaustOn) particles_exhaust(p); else if (x==3) particles_burnout(p); else if (x==4) particles_CornerFX(p); else if (x==5) particles_TireTracks(p); else if (x==6) particles_BoatWake(p);}}
- default
- {
- state_entry()
- {
- if (llSubStringIndex(llGetObjectName(), "Mechanic HUD")!=0xFFFFFFFF){llSetScriptState(llGetScriptName(),FALSE);}
- llMessageLinked(LINK_THIS,repid,llGetScriptName(),"");llSleep(1.0);llMessageLinked(LINK_THIS,749,"","");
- }
- link_message(integer sender_num, integer num, string message, key id)
- {
- if (num == 659)
- {
- Ignition=FALSE;
- Flight=FALSE;
- llSetTimerEvent(0.0);
- stopall();
- }
- else
- if (num == 660)
- {
- Ignition=TRUE;
- llSetTimerEvent(0.2);
- if (valid(smokeprims)) SendParticles(2);
- if (TracksAlwaysOn && valid(trackprims)) SendParticles(5);
- }
- else
- if (num == 662 && valid(burnprims) && !Flight) {SendParticles(3);trackson=TRUE;}
- else
- if (num == 664 && valid(burnprims) && !Flight) {SendParticles(3);trackson=TRUE;}
- else
- if (num == 754 && valid(burnprims) && !Flight) {SendParticles(4);if (TracksCornerFX) trackson=TRUE;}
- else
- if (num == 797) {if ((integer)message) Water=TRUE; else Water=FALSE;}
- else
- if (num==670)
- {
- Clear(smokeprims);
- ExhaustOn=(integer)message;
- if(Ignition) SendParticles(2);
- }
- else
- if (num == 689 && valid(flightprims))
- {
- Flight=TRUE;
- Clear(trackprims);
- SendParticles(1);
- }
- else
- if (num == 789)
- {
- Flight=FALSE;
- Clear(flightprims);
- }
- else
- if (num == 230)
- {
- if ((integer)message)
- {
- Water=TRUE;
- trackson=FALSE;
- Clear(trackprims);
- }
- else
- {
- Water=FALSE;
- Clear(wakeprims);
- }
- }
- else
- if (num == 679) llResetScript();
- else
- if (num == 750) flightprims=llCSV2List(message);
- else
- if (num == 751) smokeprims=llCSV2List(message);
- else
- if (num == 752) burnprims=llCSV2List(message);
- else
- if (num == 755) trackprims=llCSV2List(message);
- else
- if (num == 757) wakeprims=llCSV2List(message);
- else
- if ((num == repid && message!=llGetScriptName())|num == 575) llRemoveInventory(llGetScriptName());
- else
- if (num == 661 | num == 687 | num == 753 | num==663)
- {
- Clear(burnprims);
- trackson=FALSE;
- }
- }
- timer()
- {
- if (llVecMag(llGetVel())>1 && !Flight)
- {
- if (Water) SendParticles(6);
- else if (TracksAlwaysOn | trackson) SendParticles(5);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement