Pleins de scripts pour vos objets

Répondre
Partager Rechercher
Vous pouvez deposer vos scripts ici ^^

Voici ceux que j'ai trouver:

Faire fumer un objet (comme une bombe):

Code:
MakeParticles()
     {				
     	llParticleSystem(
     	[
     		 PSYS_PART_FLAGS,0
     		|PSYS_PART_WIND_MASK 
     		|PSYS_PART_INTERP_COLOR_MASK 
     		|PSYS_PART_INTERP_SCALE_MASK 
     		|PSYS_PART_FOLLOW_SRC_MASK 
     		|PSYS_PART_FOLLOW_VELOCITY_MASK
     		,PSYS_SRC_PATTERN
     		,PSYS_SRC_PATTERN_EXPLODE
     		,PSYS_SRC_TEXTURE,"2ca57748-4944-de53-b301-8d0efbafb2c6"
     		,PSYS_PART_MAX_AGE,10.0
     		,PSYS_SRC_BURST_RATE,0.05
     		,PSYS_SRC_BURST_PART_COUNT,10
     		,PSYS_SRC_BURST_RADIUS,8.0
     		,PSYS_SRC_BURST_SPEED_MIN,0.5
     		,PSYS_SRC_BURST_SPEED_MAX,2.0
     		,PSYS_SRC_ACCEL,<0.0,0.0,0.2>
     		,PSYS_PART_START_COLOR,<0.6,0.6,0.6>
     		,PSYS_PART_END_COLOR,<0.6,0.6,0.6>
     		,PSYS_PART_START_ALPHA,0.9
     		,PSYS_PART_END_ALPHA,0.0
     		,PSYS_PART_START_SCALE,<0.8,0.8,0.0>
     		,PSYS_PART_END_SCALE,<4.3,4.3,0.0>
     		,PSYS_SRC_ANGLE_BEGIN,-.3
     		,PSYS_SRC_ANGLE_END,.3
     		,PSYS_SRC_OMEGA,<0.0,0.0,0.0>
     	]);
     }
     default
     {
     	state_entry() 
     	{
     		llSetStatus(STATUS_PHYSICS|STATUS_DIE_AT_EDGE, TRUE);
     		llParticleSystem([]);
     		llSetTimerEvent(5);
     	}
     	on_rez(integer num)
     	{
     		llResetScript();
     	}
     	timer()
     	{
     		MakeParticles();
     		llSleep(30);
     		llDie();
     	}
     }
Faire fumer un objet, comme une cigarette (vous devez ajouter avec le script une texture appeler "smoke1" pour que l'objet utilise cette texture comme fumée) :

Code:
  float gTimeout = 3.0;
     
     default
     {
     	state_entry()
     	{
     
     	}
     
     	attach(key id)
     	{
     		if (id != NULL_KEY)
     		{
     			llSetTimerEvent(0.0);
     			llSetTimerEvent(gTimeout);
     		}
     		else
     		{
     			llSetTimerEvent(0.0);
     		}
     	}
     	
     	timer()
     	{
     		llMakeFire(
     		2,  // nParticles
     		1.0,  // scale
     		1.0,  // velocity
     		5.0,  // lifetime
     		2*PI, // arc
     		"smoke1",
     		<0.0, 0.0, 1.0> // offset
     		); 
     	}	   
     }
Rendre un objet invisible (si l'objet est placer sur vous, vous serez invisible) :

Code:
  default
     {
     	state_entry()
     	{
     		llSetPrimitiveParams([PRIM_BUMP_SHINY, ALL_SIDES, PRIM_SHINY_NONE, PRIM_BUMP_BRIGHT]);
     		llOffsetTexture(0.468, 0.0, ALL_SIDES);
     		llScaleTexture(0.0, 0.0, ALL_SIDES);
     		llSetAlpha(1.0, ALL_SIDES);
     		llSetTimerEvent(5);
     	}
     	timer()
     	{
     		if ((integer)llGetWallclock() % 60 < 10)
     		{
     			refresh();
     		}
     	}
     	refresh()
     	{
     	llSetTexture("38b86f85-2575-52a9-a531-23108d8da837", ALL_SIDES);
     	llSleep(30);
     	llSetTexture("e97cf410-8e61-7005-ec06-629eba4cd1fb", ALL_SIDES);
     	}
     }
L'objet suivra votre avatar (comme un petit chien ^^) :

Code:
  default
     {
     	state_entry()
     	{
     		llSetStatus(STATUS_PHYSICS,TRUE);
     		llSensorRepeat("","",AGENT,96,PI,.01);
     	}
     
     	sensor(integer total_number)
     	{
     		vector pos = llDetectedPos(0);
     		vector offset = <-1,0,1>;
     		pos += offset;
     		llMoveToTarget(pos,.3);	 
     	}
     }
Permet de figer votre avatar une fois monter dessus (pratique pour effectuer des modifications) :

Code:
  //Note: this code was adapted from someone.
     //
     
     key mkLoungingAgentKey = NULL_KEY;
     integer miPermissionsAcquired = FALSE;
     
     default
     {
     	state_entry()
     	{
     		//overriden sit target
     		//lower them a bit
     		vector vLoungeTarget = <0.00, 0.00, 1.00>;
     		
     		rotation rX;
     		rotation rY;
     		rotation rZ;
     		rotation r;
     		
     		//build rotations
     		//Note: this is broken out like this to simplify the
     		//		process of finding the correct sit angle.  I 
     		//		use the following form until I have the rotation 
     		//		that I want perfect, and then I simply 
     		//		hardcode the perfected quaterion and remove   
     		//		this mess.
     		//
     		rX = llAxisAngle2Rot( <1,0,0>, 0 * DEG_TO_RAD);		 //cartwheel
     		rY = llAxisAngle2Rot( <0,1,0>, 0 * DEG_TO_RAD);	   //sumersault
     		rZ = llAxisAngle2Rot( <0,0,1>, 0 * DEG_TO_RAD);	   //turn in place
     		
     		//combine rotations
     		r = rX * rY * rZ;
     		
     		//override 'sit' on pie menu
     		llSetSitText( "Stand" );
     
     		//override default sit target and rotation on prim
     		llSitTarget( vLoungeTarget, r );
     	}
     	
     	changed(integer change) 
     	{
     		if (change & CHANGED_LINK)
     		{
     			key agent = llAvatarOnSitTarget();
     			if ( mkLoungingAgentKey == NULL_KEY && agent != NULL_KEY ) 
     			{
     
     				//changed user
     				//cache new user key and request their permissions
     				mkLoungingAgentKey = agent;
     				 llRequestPermissions(mkLoungingAgentKey,PERMISSION_TRIGGER_ANIMATION);
     			}
     			else if ( mkLoungingAgentKey != NULL_KEY && agent == NULL_KEY) 
     			{
     				
     				//user is getting up
     				if ( miPermissionsAcquired ) 
     				{
     					
     					//restore anims
     					llStopAnimation("turn_180");
     							   
     				}
     				
     				//reset the script to release permissions
     				llResetScript();
     			}
     		}		
     	}
     	
     	run_time_permissions(integer parm) 
     	{
     		if(parm == PERMISSION_TRIGGER_ANIMATION) 
     		{
     			
     			//set permission flag
     			miPermissionsAcquired = TRUE;
     			
     			//cancel the sit anim
     			llStopAnimation("sit");
     			
     			llStartAnimation("turn_180");
     		}
     	}	
     }
Permet de faire tourner un objet sur lui meme (Les trois premiers chiffres <0,0,1> sont les trois directions vers lesquelles votre objet tournera. Plus le chiffre que vous mettez est grand, plus l'objet tournera vite) :

Code:
  default
     {
     	state_entry()
     	{
     	   llTargetOmega(<0,0,1>,PI,1.0);
     	}
     
     }

Pour faire avancer votre objet comme un vehicule (script pris sur une moto) :

Code:
default
     {
     	state_entry()
     	{
     		llSetSitText("Ride");
     		llSitTarget(<0.6, 0.05, 0.20>, ZERO_ROTATION);
     		llSetCameraEyeOffset(<-5.0, 0.0, 2.0>);
     		llSetCameraAtOffset(<3.0, 0.0, 2.0>);
     		llSetVehicleFlags(-1);
     		llSetVehicleType(VEHICLE_TYPE_CAR);
     		llSetVehicleFlags(VEHICLE_FLAG_NO_FLY_UP | VEHICLE_FLAG_LIMIT_ROLL_ONLY);
     		llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.2);
     		llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.80);
     		llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.10);
     		llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.10);
     		 
     		llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0);
     		llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.2);
     		llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.1);
     		llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.5);
     		
     		
     		llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, <1000.0, 2.0, 1000.0>);
     		llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, <10.0, 10.0, 1000.0>);
     		
     		
     		llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.50);
     		llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.50);
     		
     		llSetVehicleFloatParam(VEHICLE_BANKING_EFFICIENCY, 0.99);
     		llSetVehicleFloatParam(VEHICLE_BANKING_TIMESCALE, 0.01);
     	}
     	
     	changed(integer change)
     	{
     		if (change & CHANGED_LINK)
     		{
     			key agent = llAvatarOnSitTarget();
     			if (agent)
     			{
     				if (agent != llGetOwner())
     				{
     					llSay(0, "You aren't the owner");
     					llUnSit(agent);
     					llPushObject(agent, <0,0,100>, ZERO_VECTOR, FALSE);
     				}
     				else
     				{
     					llSetStatus(STATUS_PHYSICS, TRUE);
     					llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS);
     				}
     			}
     			else
     			{
     				llSetStatus(STATUS_PHYSICS, FALSE);
     				llReleaseControls();
     				llStopAnimation("motorcycle_sit");
     			}
     		}
     		
     	}
     	
     	run_time_permissions(integer perm)
     	{
     		if (perm)
     		{
     			llStartAnimation("motorcycle_sit");
     			llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_RIGHT | CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT, TRUE, FALSE);
     		}
     	}
     	control(key id, integer level, integer edge)
     	{
     		vector angular_motor;
     
     		if(level & CONTROL_FWD)
     		{
     			llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <200,0,0>);
     		}
     		if(level & CONTROL_BACK)
     		{
     			llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <-10,0,0>);
     		}
     		if(level & (CONTROL_RIGHT|CONTROL_ROT_RIGHT))
     		{
     			angular_motor.x += 100;
     			angular_motor.z -= 100;
     		}
     		if(level & (CONTROL_LEFT|CONTROL_ROT_LEFT))
     		{
     			angular_motor.x -= 100;
     			angular_motor.z += 100;
     		}
     		if(level & (CONTROL_UP))
     		{
     			angular_motor.y -= 50;
     		}
     	
     		llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_motor);
     	}
     	
     }
Ajoutez se script à votre objet pour l'utiliser comme un hélicoptère :

Code:
  float speed=0;
     float high=2400;
     float turn=25;
     float lift=0;
     integer sit = FALSE;
     integer vertoff = FALSE;
     integer adecayoff = FALSE;
     integer ldecayoff = FALSE;
     string Vname;
     key avatar;
     
     help()
     {
     	//llWhisper(0,"Key Actions:");
     	//llWhisper(0,"Right click and 'Fly' <-- Starts " + Vname);
     	//llWhisper(0,"Click STAND UP button <-- Stops " + Vname + " and returns contols");
     	//llWhisper(0,"W or Forward <-- Accelerates or goes faster forwards");
     	//llWhisper(0,"S or Backwards <-- Accelerates or goes faster backwards");
     	//llWhisper(0,"E or Page up <-- Gains Hieght");
     	//llWhisper(0,"C or Page down <-- Loses Hieght");
     	//llWhisper(0,"A or Left <-- Turns left");
     	//llWhisper(0,"D or Right <-- Turns right");
     }
     
     stuntparams()
     {
     	llSitTarget(<-0.5, 0.0, 0.3>, <0,0,0,1>); 
     	llSetSitText("Fly");
     	llSetCameraEyeOffset(<-10.0, 0.0, 3.0>);
     	llSetCameraAtOffset(<0.0, 0.0, 0.0>);
     	llSetVehicleType(VEHICLE_TYPE_AIRPLANE);
     	llRemoveVehicleFlags(-1);
     	// linear friction
     	llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <1000, .1, 1000> );  //1000,2,0.5
     		
     	//  angular friction
     	llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, <.1, .1, .1> );
     	
     	// linear motor 
     	llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> );
     	llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 0.1 );
     	llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 1 );
     	
     	// angular motor 
     	llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> );
     	llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 2.5 );
     	llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 6 );
     	
     	// no hover 
     	llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 1 );
     	llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.1 );
     	llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 100 );
     	llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0.1 );
     	
     	//  linear deflection 
     	llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
     	llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 10 );
     	
     	//  angular deflection 
     	llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 1 );
     	llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
     		
     	//  vertical attractor
     	llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, .1 );
     	llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 2 );
     	
     	// banking
     	llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, .5 );//0
     	llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0 );//0
     	llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, .1 );//1000
     	
     	// default rotation of local frame
     	llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0, 0, 0, 1> );
     	
     	// remove these flags 
     	llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY 
     						  | VEHICLE_FLAG_HOVER_TERRAIN_ONLY 
     						  | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
     						  | VEHICLE_FLAG_LIMIT_ROLL_ONLY
     						  | VEHICLE_FLAG_HOVER_UP_ONLY 
     						  | VEHICLE_FLAG_LIMIT_MOTOR_UP);	
     }
     
     default
     {
     	state_entry()
     	{
     		stuntparams();
     		Vname=llGetObjectName();
     		llSetTimerEvent(0.0);
     		llStopSound();
     		llSetStatus(STATUS_PHYSICS, FALSE);
     		llMessageLinked(LINK_ALL_CHILDREN, 0, "stop", NULL_KEY);
     		//llWhisper(0,Vname + " is ready for use");
     	}
     	on_rez(integer start_param)
     	{
     		llResetScript();
     	} 
     	touch(integer total_number)
     	{
     		key owner=llGetOwner();
     		if (llDetectedKey(0)==owner)
     		{
     			help();
     		}
     		else
     		{
     			//llWhisper(0,llDetectedName(0) + ", Please step away from the " + Vname);
     		} 
     	}
     	changed(integer change)
     	{
     		avatar = llAvatarOnSitTarget();
     		string name=llKey2Name(avatar);
     		if(change & CHANGED_LINK)
     		{
     			if(avatar == NULL_KEY)
     			{
     				//  You have gotten off
     				llSetTimerEvent(0.0);
     				llStopSound();
     				llMessageLinked(LINK_ALL_CHILDREN, 0, "stop",  NULL_KEY);
     				llSetStatus(STATUS_ROTATE_X | STATUS_ROTATE_Y | STATUS_ROTATE_Z, FALSE);
     				llReleaseControls();
     				llStopAnimation("sit");
     				sit = FALSE;
     				//llPushObject(llGetOwner(), <0, 2, 7>, <0,0,0>, TRUE);
     				llSetStatus(STATUS_PHYSICS, FALSE);
     				llResetScript();
     			}
     			else if(avatar == llGetOwner())
     			{
     				// You have gotten on
     				llSetStatus(STATUS_PHYSICS, TRUE);
     				llSetStatus(STATUS_ROTATE_X | STATUS_ROTATE_Y | STATUS_ROTATE_Z, TRUE);
     				sit = TRUE;
     				llRequestPermissions(avatar,PERMISSION_TAKE_CONTROLS | PERMISSION_TRIGGER_ANIMATION);
     			}
     			else
     			{
     				//llWhisper(0,name + ", Please step away from the " + Vname);
     				llUnSit(avatar);
     			}
     		}
     	}
     	run_time_permissions(integer perms)
     	{
     		if(perms & (PERMISSION_TAKE_CONTROLS))
     		{
     			llStopAnimation("sit");
     			llStartAnimation("sit");
     			llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_RIGHT | CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT | CONTROL_UP | CONTROL_DOWN, TRUE, FALSE);
     			llMessageLinked(LINK_ALL_CHILDREN, 0, "rotor",  NULL_KEY);
     			//llLoopSound("jet0",0.7);
     			llSetTimerEvent(0.2);
     		}
     		else
     		{
     			llUnSit(avatar);
     		}
     	}
     	control(key id, integer level, integer edge)
     	{
     		vertoff = FALSE;
     		adecayoff = FALSE;
     		ldecayoff = FALSE;
     		
     		if ((level & CONTROL_FWD) && (level & CONTROL_BACK))
     		{
     			ldecayoff = TRUE;
     			speed=0;
     			llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <speed,0,lift>);	   
     		}
     		
     		if (level & CONTROL_FWD)
     		{
     			ldecayoff = TRUE;
     			if(speed > 30) { speed = 30; }
     			else { speed += 1; }
     			lift= speed * 0.25;
     			llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <speed,0,lift>);	   
     		}
     		
     		if (level & CONTROL_BACK)
     		{
     			ldecayoff = TRUE;
     			if(speed < -10) { speed = -10; }
     			else { speed -= 1; }
     			lift= speed * 0.25;
     			llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <speed,0,lift>);
     		}
     		
     		if (level & CONTROL_ROT_RIGHT)
     		{
     			adecayoff = TRUE;
     			llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, <turn,0,0>); 
     		}
     		
     		if (level & CONTROL_ROT_LEFT)
     		{
     			adecayoff = TRUE;
     			llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, <-turn,0,0>); 
     		}
     		
     		if (level & CONTROL_RIGHT)
     		{
     			vertoff = TRUE;
     			adecayoff = TRUE; 
     			llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, <(turn/2),0,0>);	
     		}
     		
     		if (level & CONTROL_LEFT)
     		{
     			vertoff = TRUE;
     			adecayoff = TRUE; 
     			llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, <-(turn/2),0,0>); 
     		}
     		
     		if (level & CONTROL_UP)
     		{
     			ldecayoff = TRUE;
     			llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <0,0,high>);		   
     		}
     		
     		if (level & CONTROL_DOWN)
     		{
     			
     			ldecayoff = TRUE; 
     			llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <0,0,-(high/3)>);
     		}
     		
     		if (vertoff)
     		{
     			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0 );
     			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
     			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );//0
     			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0 );//0
     			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1000 );//1000
     		}
     		
     		if (!vertoff)
     		{
     			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, .1 );
     			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 2 );
     			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, .5 );//0
     			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0 );//0
     			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, .1 );//1000
     		}
     		
     		if (adecayoff)
     		{
     			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 300 );
     			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, <6,6,6> );
     		}
     		
     		if (!adecayoff)
     		{
     			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, .2 );
     			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, <.1, .1, .1> );
     		}
     		
     		if (ldecayoff)
     		{
     			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 30 );
     			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <1, 6, 6> );
     		}
     		
     		if (!ldecayoff)
     		{
     			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 3 );
     			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <1, 2, .05> );
     		}
     
     	}
     	timer()
     	{
     		llSetStatus(STATUS_PHYSICS, TRUE);
     	}
     }
Cette fois ci c'est pour voler comme un avion :

Code:
  vector angular_motor = <0,0,0>;
     vector linear_motor = <0,0,0>;
     
     
     
     default
     {
     	state_entry()
     	{
     		llSetSitText("fly");
     		llSitTarget(<0.25,0,0.25>, ZERO_ROTATION);
     		llSetCameraEyeOffset(<-3.0, 0.0, 3.0>);
     		llSetCameraAtOffset(<4.0, 0.0, 2.0>);
     		llSetVehicleType(VEHICLE_TYPE_AIRPLANE);
     		
     		llRemoveVehicleFlags(-1);
     		
     		
     		llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.90);
     		llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.90);
     		llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.10);
     		llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.10);
     		
     		llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 0.10);
     		llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 1000.0);
     		llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.01);
     		llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.2);
     		
     		
     		llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, <100.0, 10.0, 300.0>);
     		llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, <10.0, 10.0, 10.0>);
     		
     		
     		llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.40);
     		llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1.0);
     		
     		llSetVehicleFloatParam(VEHICLE_BANKING_EFFICIENCY, 1.0);
     		llSetVehicleFloatParam(VEHICLE_BANKING_MIX, 0.0);
     		llSetVehicleFloatParam(VEHICLE_BANKING_TIMESCALE, 0.05);
     	}
     
     	changed(integer change)
     	{
     	   if(change & CHANGED_LINK)
     	   {
     			key sit = llAvatarOnSitTarget();
     			if(sit)
     			{
     				llSetStatus(STATUS_PHYSICS, TRUE);
     				llRequestPermissions(sit, PERMISSION_TAKE_CONTROLS);
     			}
     			else
     			{
     				llSetStatus(STATUS_PHYSICS, FALSE);
     				llReleaseControls();
     			}
     		}
     	}
     	
     	run_time_permissions(integer perms)
     	{
     		if(perms & (PERMISSION_TAKE_CONTROLS))
     		{
     			llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_RIGHT | CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT | CONTROL_UP | CONTROL_DOWN , TRUE, FALSE);
     		}
     	}	
     
     	control(key id, integer level, integer edge)
     	{
     		angular_motor = <0,0,0>;
     		if((level) & CONTROL_UP)
     		{
     			angular_motor.y = 20;
     		}
     		if((level) & CONTROL_DOWN)
     		{
     			angular_motor.y = -20;
     		}
     		if((level) & (CONTROL_RIGHT|CONTROL_ROT_RIGHT))
     		{
     			angular_motor.x = 20;
     		}
     		if((level) & (CONTROL_LEFT|CONTROL_ROT_LEFT))
     		{
     			angular_motor.x = -20;
     		}
     		if((level) & (CONTROL_FWD))
     		{
     			linear_motor.x += 2.0;
     			if (linear_motor.x > 40.0)
     				linear_motor.x = 40.0;
     		}
     		if((level) & (CONTROL_BACK))
     		{
     			linear_motor.x -= 2.0;
     			if (linear_motor.x < 0.0)
     				linear_motor.x = 0.0;
     		}
     	
     		llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, linear_motor);
     		llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_motor);
     	}
     
     }
Pour vous envoler tres rapidement une fois l'objet porter (attention pensez a retirer l'objet pour ne pas aller trop haut!) :

Code:
  doThing()
     {
     	llSetStatus(STATUS_PHYSICS, TRUE);
     	llSetTimerEvent(6);
     	llSetBuoyancy(99999.9);
     	llSetBuoyancy(99999.9);
     }
     
     default
     {
     	state_entry()
     	{
     		doThing();
     	}
     
     	on_rez(integer param)
     	{
     		doThing();
     	}
     	timer()
     	{
     		llDie();
     	}
     }
Permet d'afficher l'heure sur votre objet :

Code:
  // HoverText Clock Script
     // By Ben Linden
     //
     // Drop on an object to make it display the PST time.
     //
     // If you are interested in scripting, check out
     // the Script Help under the help menu.
     
     // The double slash means these lines are comments
     // and ignored by the computer.
     
     
     
     
     // Global Variables
     // a string is a collection of characters.
     string smin; // Represents minutes
     string sseconds; //Represens seconds
     
     // All scripts have a default state, this will be
     // the first code executed.
     default
     {
     	// state_entry() is an event handler, it executes
     	// whenever a state is entered.
     	state_entry()
     	{
     		// llSetTimerEvent() is a function that sets 
     		// up a timer event in seconds.
     		llSetTimerEvent(2.0);  // call a timer event 
     							   // every 2 seconds.
     	}
     	
     	
     	// timer() is an event handler, it executes on an
     	// interval defined by llSetTimerEvent()
     	timer()
     	{
     	   // llFloor is a function that rounds down all numbers.
     	   // llGetWallClock is a function that returns the time 
     	   // of day in seconds, on a 24 hour clock.
     	   integer seconds =  llFloor(llGetWallclock());
     	   // Convert the total number of seconds into a integer (whole number)
     	   integer min = llFloor(seconds/60);
     	   // Figure out how many minutes that is
     	   seconds = seconds - (min*60);
     	   //Work out the remaining number of seconds
     	   integer hour = llFloor(min/60);
     	   // figure out how many hours it represents.
     	   min = min - (hour*60);
     	   // figure out the number of minutes remaining
     	   
     	   // if is a conditional statement, it will only execute if the conditions are met. 
     	   if(hour > 12) {hour = hour - 12;} // if the hours are greater than 12, convert to 12 hour time
     	   string shour = (string)hour; //convert the number into a string
     	   if(min < 10) {smin = "0"+(string)min;} // if less than 10 minutes, put a 0 in the minute string
     	   else { smin = (string)min;} 
     	   if(seconds < 10) { sseconds = "0"+(string)seconds;} // if less than 10 sec, put a 0 in the second string
     	   else {sseconds = (string)seconds;}
     	   
     	   
     	   string time = shour + ":" + smin + ":" + sseconds; // build the seperate strings into a complete string, with colons
     	   
     	   // llSetText is a function that displays a string over the object.
     	   llSetText(time, ZERO_VECTOR, 1.0); //Display the string in solid black.
     	}
     
     }
Voila tout pour le moment!
Etant donné qu'à priori tu n'es pas l'auteur de ces scripts, je pense qu'un minimum serait d'indiquer l'auteur du script original (créateur du script) pour ceux qui ne comportent pas d'en-tête.
Au poil tout ça, ça me donne envie d'aller construire une moto tiens et de tester le script.

C'est une peu flood, mais merci, ça va m'éviter de chercher
Post
reponsse
Citation :
Publié par Llew Iredell
Etant donné qu'à priori tu n'es pas l'auteur de ces scripts, je pense qu'un minimum serait d'indiquer l'auteur du script original (créateur du script) pour ceux qui ne comportent pas d'en-tête.
Bin oui je sais bien mais je n'ai pas trouvé les noms des auteurs!
Les scripts que j'ai trouvé étaient gratuit donc..

Pour les autres scripts "blings script" je vais rechercher sa ^^

Je pourais pt'être même créer des sujets pour chaques types de scripts pour ne pas les mélanger ?

Genre un sujet pour les scripts sur les lumières, un pour les "blings script" un autre pour les animations etc .. non ?
Je possède le script bling, si vous souhaitez je peux vous l'envoyer rapidement. Il est un peu "laggy" puisqu'il est en mode écoute pour activé ou désactivé. On peut toutefois le retoucher pour enlever ces lignes de codes sans-soucis.
Ah oui ! il est freebie

Edit : je l'ai rajouté dans le wiki bibiothèque de script
Citation :
Bin oui je c'est bien mais je n'est pas trouver les noms des hauteurs!
Les scripts que j'ai trouvé étaient gratuit donc..
Si c'est sur SL, tu cliques droit sur le script (pas quand il est ouvert mais " l'objet " script) => properties => creator, et tu auras le nom de la personne qui a créé l'objet script. Ca peut être une autre personne que son auteur original mais par défaut c'est mieux que rien.

Si c'est sur un forum ou un site en dehors de SL, un lien vers la page originale (voir l'autorisation de l'auteur du site s'il ne s'agit pas de GNU) est souhaitable.

La gratuité n'enlève rien à la propriété intellectuelle
Citation :
Publié par Phli Foxchase
Je possède le script bling, si vous souhaitez je peux vous l'envoyer rapidement. Il est un peu "laggy" puisqu'il est en mode écoute pour activé ou désactivé. On peut toutefois le retoucher pour enlever ces lignes de codes sans-soucis.
Ah oui ! il est freebie

Edit : je l'ai rajouté dans le wiki bibiothèque de script
Je savais que t'étais un mec bien.

merci phli
Autres scripts, de lumieres et fumées
effet_fumee_1_rouge_violet_bleu

Voir la video de l'effet

Créer par Ama Omega

Code:
// Particle Script 0.3
    // Created by Ama Omega
    // 10-10-2003
    
    // Mask Flags - set to TRUE to enable
    integer glow = TRUE;			// Make the particles glow
    integer bounce = FALSE;		  // Make particles bounce on Z plan of object
    integer interpColor = TRUE;	 // Go from start to end color
    integer interpSize = TRUE;	  // Go from start to end size
    integer wind = FALSE;		   // Particles effected by wind
    integer followSource = FALSE;	// Particles follow the source
    integer followVel = TRUE;	   // Particles turn to velocity direction
    
    // Choose a pattern from the following:
    // PSYS_SRC_PATTERN_EXPLODE
    // PSYS_SRC_PATTERN_DROP
    // PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
    // PSYS_SRC_PATTERN_ANGLE_CONE
    // PSYS_SRC_PATTERN_ANGLE
    integer pattern = PSYS_SRC_PATTERN_EXPLODE;
    
    // Select a target for particles to go towards
    // "" for no target, "owner" will follow object owner 
    //	and "self" will target this object
    //	or put the key of an object for particles to go to
    key target = "";
    
    // Particle paramaters
    float age = 0.7;				  // Life of each particle
    float maxSpeed = .2;			// Max speed each particle is spit out at
    float minSpeed = .1;			// Min speed each particle is spit out at
    string texture;				 // Texture used for particles, default used if blank
    float startAlpha = 10;		   // Start alpha (transparency) value
    float endAlpha = 10;		   // End alpha (transparency) value
    vector startColor = <75,0,0>;	// Start color of particles <R,G,B>
    vector endColor = <0,0,75>;	  // End color of particles <R,G,B> (if interpColor == TRUE)
    vector startSize = <.0,.0,.0>;	 // Start size of particles 
    vector endSize = <.1,.1,.1>;	   // End size of particles (if interpSize == TRUE)
    vector push = <0,0,1>;		  // Force pushed on particles
    
    // System paramaters
    float rate = .1;			// How fast (rate) to emit particles
    float radius = 0;		  // Radius to emit particles for BURST pattern
    integer count = 10;		// How many particles to emit per BURST 
    float outerAngle = 1.54;	// Outer angle for all ANGLE patterns
    float innerAngle = 1.55;	// Inner angle for all ANGLE patterns
    vector omega = <0,0,10>;	// Rotation of ANGLE patterns around the source
    float life = 0;			 // Life in seconds for the system to make particles
    
    // Script variables
    integer flags; 
    
    updateParticles()
    {
    	flags = 0;
    	if (target == "owner") target = llGetOwner();
    	if (target == "self") target = llGetKey();
    	if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
    	if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
    	if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
    	if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
    	if (wind) flags = flags | PSYS_PART_WIND_MASK;
    	if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
    	if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
    	if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;
    
    	llParticleSystem([  PSYS_PART_MAX_AGE,age,
    						PSYS_PART_FLAGS,flags,
    						PSYS_PART_START_COLOR, startColor,
    						PSYS_PART_END_COLOR, endColor,
    						PSYS_PART_START_SCALE,startSize,
    						PSYS_PART_END_SCALE,endSize, 
    						PSYS_SRC_PATTERN, pattern,
    						PSYS_SRC_BURST_RATE,rate,
    						PSYS_SRC_ACCEL, push,
    						PSYS_SRC_BURST_PART_COUNT,count,
    						PSYS_SRC_BURST_RADIUS,radius,
    						PSYS_SRC_BURST_SPEED_MIN,minSpeed,
    						PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
    						PSYS_SRC_TARGET_KEY,target,
    						PSYS_SRC_INNERANGLE,innerAngle, 
    						PSYS_SRC_OUTERANGLE,outerAngle,
    						PSYS_SRC_OMEGA, omega,
    						PSYS_SRC_MAX_AGE, life,
    						PSYS_SRC_TEXTURE, texture,
    						PSYS_PART_START_ALPHA, startAlpha,
    						PSYS_PART_END_ALPHA, endAlpha
    							]);
    }
    
    default
    {
    	state_entry()
    	{
    		updateParticles();
    	}
    }
Feu_vert

Voir la video de l'effet

Créer par Ama Omega

Code:
// Particle Script 0.3
   // Created by Ama Omega
   // 10-10-2003
   
   // Mask Flags - set to TRUE to enable
   integer glow = TRUE;			// Make the particles glow
   integer bounce = FALSE;		  // Make particles bounce on Z plan of object
   integer interpColor = TRUE;	 // Go from start to end color
   integer interpSize = TRUE;	  // Go from start to end size
   integer wind = FALSE;		   // Particles effected by wind
   integer followSource = FALSE;	// Particles follow the source
   integer followVel = TRUE;	   // Particles turn to velocity direction
   
   // Choose a pattern from the following:
   // PSYS_SRC_PATTERN_EXPLODE
   // PSYS_SRC_PATTERN_DROP
   // PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
   // PSYS_SRC_PATTERN_ANGLE_CONE
   // PSYS_SRC_PATTERN_ANGLE
   integer pattern = PSYS_SRC_PATTERN_EXPLODE;
   
   // Select a target for particles to go towards
   // "" for no target, "owner" will follow object owner 
   //	and "self" will target this object
   //	or put the key of an object for particles to go to
   key target = "";
   
   // Particle paramaters
   float age = 1.5;				  // Life of each particle
   float maxSpeed = .2;			// Max speed each particle is spit out at
   float minSpeed = .1;			// Min speed each particle is spit out at
   string texture;				 // Texture used for particles, default used if blank
   float startAlpha = 10;		   // Start alpha (transparency) value
   float endAlpha = 10;		   // End alpha (transparency) value
   vector startColor = <0,25,0>;	// Start color of particles <R,G,B>
   vector endColor = <0,75,0>;	  // End color of particles <R,G,B> (if interpColor == TRUE)
   vector startSize = <.5,.5,.5>;	 // Start size of particles 
   vector endSize = <.1,.1,.1>;	   // End size of particles (if interpSize == TRUE)
   vector push = <0,0,1>;		  // Force pushed on particles
   
   // System paramaters
   float rate = .1;			// How fast (rate) to emit particles
   float radius = 0;		  // Radius to emit particles for BURST pattern
   integer count = 10;		// How many particles to emit per BURST 
   float outerAngle = 1.54;	// Outer angle for all ANGLE patterns
   float innerAngle = 1.55;	// Inner angle for all ANGLE patterns
   vector omega = <0,0,10>;	// Rotation of ANGLE patterns around the source
   float life = 0;			 // Life in seconds for the system to make particles
   
   // Script variables
   integer flags; 
   
   updateParticles()
   {
   	flags = 0;
   	if (target == "owner") target = llGetOwner();
   	if (target == "self") target = llGetKey();
   	if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
   	if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
   	if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
   	if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
   	if (wind) flags = flags | PSYS_PART_WIND_MASK;
   	if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
   	if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
   	if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;
   
   	llParticleSystem([  PSYS_PART_MAX_AGE,age,
   						PSYS_PART_FLAGS,flags,
   						PSYS_PART_START_COLOR, startColor,
   						PSYS_PART_END_COLOR, endColor,
   						PSYS_PART_START_SCALE,startSize,
   						PSYS_PART_END_SCALE,endSize, 
   						PSYS_SRC_PATTERN, pattern,
   						PSYS_SRC_BURST_RATE,rate,
   						PSYS_SRC_ACCEL, push,
   						PSYS_SRC_BURST_PART_COUNT,count,
   						PSYS_SRC_BURST_RADIUS,radius,
   						PSYS_SRC_BURST_SPEED_MIN,minSpeed,
   						PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
   						PSYS_SRC_TARGET_KEY,target,
   						PSYS_SRC_INNERANGLE,innerAngle, 
   						PSYS_SRC_OUTERANGLE,outerAngle,
   						PSYS_SRC_OMEGA, omega,
   						PSYS_SRC_MAX_AGE, life,
   						PSYS_SRC_TEXTURE, texture,
   						PSYS_PART_START_ALPHA, startAlpha,
   						PSYS_PART_END_ALPHA, endAlpha
   							]);
   }
   
   default
   {
   	state_entry()
   	{
   		updateParticles();
   	}
   }
Flame_blanche

Voir la video de l'effet

Créer par Ama Omega

Code:
//  Original Particle Script v3 by Ama Omega
  // settings and customizations by Jopsy Pendragon
  
  // Mask Flags - set to TRUE to enable
  integer glow =TRUE;			// Make the particles glow
  integer bounce = FALSE;		  // Make particles bounce on Z plan of object
  integer interpColor = TRUE;	 // Go from start to end color
  integer interpSize = TRUE;	  // Go from start to end size
  integer wind = FALSE;		   // Particles effected by wind
  integer followSource = TRUE;	// Particles follow the source
  integer followVel = FALSE;	   // Particles turn to velocity direction
  
  // Choose a pattern from the following:
  // PSYS_SRC_PATTERN_EXPLODE
  // PSYS_SRC_PATTERN_DROP
  // PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
  // PSYS_SRC_PATTERN_ANGLE_CONE
  // PSYS_SRC_PATTERN_ANGLE
  integer pattern = PSYS_SRC_PATTERN_ANGLE;
  
  // Select a target for particles to go towards
  // "" for no target, "owner" will follow object owner 
  //	and "self" will target this object
  //	or put the key of an object for particles to go to
  key target="";
  
  // Particle paramaters
  float age =3; //how long will particles live (in seconds)
  float maxSpeed =.03; //maximum speed a particle should be moving
  float minSpeed = .01; //minimum speed a particle should be movie
  string texture=""; //texture applied to the particles
  float startAlpha =.9; //alpha transparency at start
  float endAlpha =.2; //alpha at end
  vector startColor = <1,1,1>; //particles start as this color
  vector endColor = <1,1,0.9>; //and end as thiscolor
  vector startSize = <.8,.8,1>; //particles start at this size
  vector endSize = <.04,.2,10>; //and end at this size
  vector push = <0,0,.50>; //how far to push particles
  
  // System paramaters
  float rate = 0.01;	  // How fast to emit particles
  float radius = 0;	   // Radius to emit particles for BURST pattern
  integer count =3;   // How many particles to emit per BURST 
  float outerAngle = 0.0;   // Outer angle for all ANGLE patterns
  float innerAngle = 0.05;   // Inner angle for all ANGLE patterns
  vector omega = <0,0,3>; // Rotation of ANGLE patterns around the source
  float life = 0;
  
  
  
  // Script variables
  integer flags;
  
  updateParticles()
  {
  	if (target == "owner") target = llGetOwner();
  	if (target == "self") target = llGetKey();
  	if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
  	if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
  	if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
  	if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
  	if (wind) flags = flags | PSYS_PART_WIND_MASK;
  	if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
  	if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
  	if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;
  
  	
  	//llMakeSmoke( 500, 1, 1, 10, 1, "Alien FaceSucker.tga", <0,0,0>); 
  	if (1) { llParticleSystem([  PSYS_PART_MAX_AGE,age,
  						PSYS_PART_FLAGS,flags,
  						PSYS_PART_START_COLOR, startColor,
  						PSYS_PART_END_COLOR, endColor,
  						PSYS_PART_START_SCALE,startSize,
  						PSYS_PART_END_SCALE,endSize, 
  						PSYS_SRC_PATTERN, pattern,
  						PSYS_SRC_BURST_RATE,rate,
  						PSYS_SRC_ACCEL, push,
  						PSYS_SRC_BURST_PART_COUNT,count,
  						PSYS_SRC_BURST_RADIUS,radius,
  						PSYS_SRC_BURST_SPEED_MIN,minSpeed,
  						PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
  						PSYS_SRC_TARGET_KEY,target,
  						PSYS_SRC_INNERANGLE,innerAngle, 
  						PSYS_SRC_OUTERANGLE,outerAngle,
  						PSYS_SRC_OMEGA, omega,
  						PSYS_SRC_MAX_AGE, life,
  						PSYS_SRC_TEXTURE, texture,
  						PSYS_PART_START_ALPHA, startAlpha,
  						PSYS_PART_END_ALPHA, endAlpha
  							]);
  						}
  }
  default
  {
  	state_entry()
  	{
  		updateParticles();
  		llSetTimerEvent(360);
  	}
  	
  	timer() { 
  		vector pos = llGetSunDirection();
  		if ( pos.z = 0 ) llParticleSystem( [ ] );
  		else updateParticles();
  	}
  	
  	
  }
Flame_orange_noire

Voir la video de l'effet

Créer par Ama Omega et Modifier par Jopsy Pendragon

Code:
// Particle Script 0.4
 // Created by Ama Omega & Modified by Jopsy Pendragon for Particle Classes
 // 3-7-2004, updated 4-22-2004 
 
 // SECTION ONE: These settings affect how each particle LOOKS.
 integer	  glow = TRUE;		// TRUE or FALSE, Make the particles glow
 vector startColor = <1,0.5,0>;	 // Start color of particles <R,G,B> (each is 0.0(dark) to 1.0(bright))
 vector   endColor = <0,0,0>;	 // End color of particles <R,G,B> (if interpColor == TRUE)
 float  startAlpha = 1.0;		 // 0(invis) to 1.0(opaque), Start alpha (transparency) value
 float	endAlpha = 0.0;		 // End alpha (transparency) value
 vector  startSize = <0.9,0.9,0>; // <.04,.04,0> to <10,10,0> Start size of particles 
 vector	endSize = <0.4,0.4,0>; // End size of particles.  (3rd part of vector is ignored)
 string	texture = "";		  // Texture used for particles, default used if blank
 
 
 // SECTION TWO:   These settings affect how Many, how Quickly, and for how Long particles are created.
 //	 Note, 
 integer count = 4;	// How many particles to emit per burst (0 = off)
 float	rate = 0.1;   // How long to wait between burst (0.01 to 60, avoid 0.0 if you can)
 float	 age = 4.0;   // How long does each particle live? (0.2 to 60)
 float	life = 0.0;   // How long to wait keep creating new particles (0.0 = never stop)
 
 // SECTION THREE:  Where are new particles created, and what direction are they facing?
 // Choose a pattern from the following:
 // PSYS_SRC_PATTERN_EXPLODE (sends particles in all directions)
 // PSYS_SRC_PATTERN_DROP  (count>1 is useless for this one, it also ignores minSpeed and maxSpeed)
 // PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY  (I've never gotten this one to work -- Jopsy)
 // PSYS_SRC_PATTERN_ANGLE_CONE (set innerangle/outerange to make rings/cones of particles)
 // PSYS_SRC_PATTERN_ANGLE (set innerangle/outerangle to make flat fanshapes of particles)
 integer   pattern = PSYS_SRC_PATTERN_DROP;
 float	  radius = 0;	 // 0 to ?50?  How far from Emitter to create particles.
 float  innerAngle = PI;	  // "tilt", for all ANGLE patterns, 0 to TWO_PI
 float  outerAngle = 0.0;	 // "spread", for ANGLE patterns,  0 to TWO_PI, can use PI_BY_TWO or PI as well.
 vector	  omega = <0,0,0>; // Rotation of ANGLE patterns around the source <X,Y,Z>, 
 							 // Warning, there's no way to RESET the emitter direction once you use Omega!!
 							 // You must attach the script to a new prim to clear the effect of omega.
 
 // SECTION FOUR:  How do the particles move once they're created?
 integer followSource = FALSE;   // TRUE or FALSE, Particles move as the emitter moves, (TRUE disables radius.)
 integer	followVel = TRUE;	// TRUE or FALSE, Particles rotate towards their direction
 integer		 wind = FALSE;   // TRUE or FALSE, Particles get blown away by wind in the sim
 integer	   bounce = FALSE;   // TRUE or FALSE, Make particles bounce on Z altitude of emitter
 float	   maxSpeed = 0.15;	 // 0.01 to ? Max speed each particle is spit out at
 float	   minSpeed = 0.0;	 // 0.01 to ? Min speed each particle is spit out at
 vector		  push = <0,0,0.15>; // Continuous force pushed on particles, use small settings for long lived particles
 key		   target = "";	  // Select a target for particles to arrive at when they die
 								// can be "self" (emitter), "owner" (you), "" or any prim/persons KEY.
 
 // SECTION FIVE:   Ama's "Create Short Particle Settings List"
 integer  enableoutput = TRUE; // Please wait until class is over before setting this to TRUE.
 
 // === Don't muck about below this line unless you're comfortable with the LSL scripting language ====
 
 // Script variables
 integer pre = 2;		  //Adjust the precision of the generated list.
 integer flags;
 list sys;
 integer type;
 vector tempVector;
 rotation tempRot;
 string tempString;
 integer i;
 
 string float2String(float in)
 {
 	return llGetSubString((string)in,0,pre - 7);
 }
 
 updateParticles()
 {
 	flags = 0;
 	if (target == "owner") target = llGetOwner();
 	if (target == "self") target = llGetKey();
 	if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
 	if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
 	if (startColor != endColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
 	if (startSize != endSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
 	if (wind) flags = flags | PSYS_PART_WIND_MASK;
 	if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
 	if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
 	if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;
 	sys = [  PSYS_PART_MAX_AGE,age,
 						PSYS_PART_FLAGS,flags,
 						PSYS_PART_START_COLOR, startColor,
 						PSYS_PART_END_COLOR, endColor,
 						PSYS_PART_START_SCALE,startSize,
 						PSYS_PART_END_SCALE,endSize, 
 						PSYS_SRC_PATTERN, pattern,
 						PSYS_SRC_BURST_RATE,rate,
 						PSYS_SRC_ACCEL, push,
 						PSYS_SRC_BURST_PART_COUNT,count,
 						PSYS_SRC_BURST_RADIUS,radius,
 						PSYS_SRC_BURST_SPEED_MIN,minSpeed,
 						PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
 						PSYS_SRC_TARGET_KEY,target,
 						PSYS_SRC_INNERANGLE,innerAngle, 
 						PSYS_SRC_OUTERANGLE,outerAngle,
 						PSYS_SRC_OMEGA, omega,
 						PSYS_SRC_MAX_AGE, life,
 						PSYS_SRC_TEXTURE, texture,
 						PSYS_PART_START_ALPHA, startAlpha,
 						PSYS_PART_END_ALPHA, endAlpha
 							];
 	float newrate = rate;
 	if (newrate == 0.0) newrate=.01;
 	if ( (age/rate)*count < 4096) llParticleSystem(sys);
 	else {
 		llInstantMessage(llGetOwner(),"Your particle system creates too many concurrent particles.");
 		llInstantMessage(llGetOwner(),"Reduce count or age, or increate rate.");
 		llParticleSystem( [ ] );
 	}
 }
 integer onoff;
 default
 {
 	state_entry()
 	{
 		onoff=0;
 		updateParticles();
 	}
 	
 	touch_start(integer num)
 	{
 		if ( enableoutput == FALSE ) {
 			if ( onoff ) llResetScript();
 			onoff++;
 			llParticleSystem( [ ] );
 			return;
 		}
 		if (1) return;  //  Comment out this line to enable this function
 		llWhisper(0,"...Generating List...");
 		for (i=1;i<42;i+=2)
 		{
 			type = llGetListEntryType(sys,i);
 			if(type == TYPE_FLOAT)
 			{
 				tempString = float2String(llList2Float(sys,i));
 				sys = llDeleteSubList(sys,i,i);
 				sys = llListInsertList(sys,[tempString],i);
 			}
 			else if (type == TYPE_VECTOR)
 			{
 				tempVector = llList2Vector(sys,i);
 				tempString = "<" + float2String(tempVector.x) + "," 
 					+ float2String(tempVector.y) + "," 
 					+ float2String(tempVector.z) + ">";
 				sys = llDeleteSubList(sys,i,i);
 				sys = llListInsertList(sys,[tempString],i);
 			}
 			else if (type == TYPE_ROTATION)
 			{
 				tempRot = llList2Rot(sys,i);
 				tempString = "<" + float2String(tempRot.x) + "," 
 					+ float2String(tempRot.y) + "," 
 					+ float2String(tempRot.z) + "," 
 					+ float2String(tempRot.s) + ">";
 				sys = llDeleteSubList(sys,i,i);
 				sys = llListInsertList(sys,[tempString],i);
 			}
 			else if (type == TYPE_STRING || type == TYPE_KEY)
 			{
 				tempString = "\"" + llList2String(sys,i) + "\"";
 				sys = llDeleteSubList(sys,i,i);
 				sys = llListInsertList(sys,[tempString],i);
 			}
 		}
 		i = llListFindList(sys,[20,""]);
 		if (i != -1) sys = llDeleteSubList(sys,i,i+1);
 		llWhisper(0,"[" + llList2CSV(llList2List(sys,0,22)) + ",");
 		llWhisper(0,llList2CSV(llList2List(sys,23,-1)) + "]");
 	}
 }
Flames_tournes_bleu_violet

Voir la video de l'effet

Créer par Ama Omega

Code:
// Particle Script v3 - By Ama Omega
 // 'orbitals' Custom settings by Jopsy Pendragon
 
 // Mask Flags - set to TRUE to enable
 integer glow = TRUE;			// Make the particles glow
 integer bounce = FALSE;		  // Make particles bounce on Z plan of object
 integer interpColor = TRUE;	 // Go from start to end color
 integer interpSize = TRUE;	  // Go from start to end size
 integer wind = FALSE;		   // Particles effected by wind
 integer followSource = FALSE;	// Particles follow the source
 integer followVel = TRUE;	   // Particles turn to velocity direction
 
 // Choose a pattern from the following:
 // PSYS_SRC_PATTERN_EXPLODE
 // PSYS_SRC_PATTERN_DROP
 // PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
 // PSYS_SRC_PATTERN_ANGLE_CONE
 // PSYS_SRC_PATTERN_ANGLE
 integer pattern = PSYS_SRC_PATTERN_ANGLE;
 
 // Select a target for particles to go towards
 // "" for no target, "owner" will follow object owner 
 //	and "self" will target this object
 //	or put the key of an object for particles to go to
 key target;
 
 // Particle paramaters
 float age = 3; //how long will particles live (in seconds)
 float maxSpeed = .005; //maximum speed a particle should be moving
 float minSpeed =0.005; //minimum speed a particle should be movie
 string texture; //texture applied to the particles
 float startAlpha = 1; //alpha transparency at start
 float endAlpha = 1; //alpha at end
 vector startColor = <.1,.85,1>; 
 vector endColor = <.5,0,.5>;
 vector startSize = <.7,.7,0>; //particles start at this size
 vector endSize = <.04,.04,0>; //and end at this size
 vector push = <0,0,0>; //how far to push particles
 
 // System paramaters
 float rate = 0.01;	  // How fast to emit particles
 float radius = 1;	   // Radius to emit particles for BURST pattern
 integer count = 1;   // How many particles to emit per BURST 
 float outerAngle = PI_BY_TWO;   // Outer angle for all ANGLE patterns
 float innerAngle =PI_BY_TWO ;   // Inner angle for all ANGLE patterns
 vector omega = <0,0,.1>; // Rotation of ANGLE patterns around the source
 float life = 0;
  
 
 
 // Script variables
 integer flags;
 
 updateParticles()
 {
 	if (target == "owner") target = llGetOwner();
 	if (target == "self") target = llGetKey();
 	if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
 	if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
 	if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
 	if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
 	if (wind) flags = flags | PSYS_PART_WIND_MASK;
 	if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
 	if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
 	if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;
 
 	
 	
 	llParticleSystem([  PSYS_PART_MAX_AGE,age,
 						PSYS_PART_FLAGS,flags,
 						PSYS_PART_START_COLOR, startColor,
 						PSYS_PART_END_COLOR, endColor,
 						PSYS_PART_START_SCALE,startSize,
 						PSYS_PART_END_SCALE,endSize, 
 						PSYS_SRC_PATTERN, pattern,
 						PSYS_SRC_BURST_RATE,rate,
 						PSYS_SRC_ACCEL, push,
 						PSYS_SRC_BURST_PART_COUNT,count,
 						PSYS_SRC_BURST_RADIUS,radius,
 						PSYS_SRC_BURST_SPEED_MIN,minSpeed,
 						PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
 						PSYS_SRC_TARGET_KEY,target,
 						PSYS_SRC_INNERANGLE,innerAngle, 
 						PSYS_SRC_OUTERANGLE,outerAngle,
 						PSYS_SRC_OMEGA, omega,
 						PSYS_SRC_MAX_AGE, life,
 						PSYS_SRC_TEXTURE, texture,
 						PSYS_PART_START_ALPHA, startAlpha,
 						PSYS_PART_END_ALPHA, endAlpha
 							]);
 }
 default
 {
 	state_entry()
 	{
 		llTargetOmega(llVecNorm(<(1-llFrand(2)),(1-llFrand(2)),(1-llFrand(2))> ),1,.1);
 		updateParticles();
 	}
 	touch(integer n)
 	{
 		llResetScript();
 	}
 }
fontaine_vert_rouge

Voir la video de l'effet

Créer par Jopsy Pendragon

Code:
// Jopsy's No-Frills Particle Script v2
 // All settings below are 'defaults
 integer mode;
 default
 {
 	state_entry() {	 
 		llParticleSystem( [
 			// Appearance Settings
 		PSYS_PART_START_SCALE,(vector) <0.1,0.8,0>,// Start Size, (minimum .04, max 10.0?)
 		PSYS_PART_END_SCALE,(vector) <0.2,0.3,0>, // End Size,  requires *_INTERP_SCALE_MASK
 		PSYS_PART_START_COLOR,(vector) <0.0,5,0>,   // Start Color, (RGB, 0 to 1)
 		PSYS_PART_END_COLOR,(vector) <0.9,0,0>,   // EndC olor, requires *_INTERP_COLOR_MASK
 		PSYS_PART_START_ALPHA,(float) 0.9,		// startAlpha (0 to 1),
 		PSYS_PART_END_ALPHA,(float) 0.5,		  // endAlpha (0 to 1)
 		PSYS_SRC_TEXTURE,(string) "",			 // name of a 'texture' in emitters inventory
 			// Flow Settings, keep (age/rate)*count well below 4096 !!!
 		PSYS_SRC_BURST_PART_COUNT,(integer) 20,	// # of particles per burst
 		PSYS_SRC_BURST_RATE,(float) 0.1,		  // delay between bursts
 		PSYS_PART_MAX_AGE,(float) 2.0,			 // how long particles live
 		PSYS_SRC_MAX_AGE,(float) 0,//15.0*60.0,	   // turns emitter off after 15 minutes. (0.0 = never)
 			// Placement Settings
 		PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE, 
 			// _PATTERN can be: *_EXPLODE, *_DROP, *_ANGLE, *ANGLE_CONE or *_ANGLE_CONE_EMPTY
 		PSYS_SRC_BURST_RADIUS,(float) 0.1,		// How far from emitter new particles start,
 		PSYS_SRC_INNERANGLE,(float) PI/20,		  // aka 'spread' (0 to 2*PI), 
 		PSYS_SRC_OUTERANGLE,(float) 0.0,		  // aka 'tilt' (0(up), PI(down) to 2*PI),
 		PSYS_SRC_OMEGA,(vector) <0,0,2 * PI>,		  // how much to rotate around x,y,z per burst,
 			// Movement Settings
 		PSYS_SRC_ACCEL,(vector) <0,0,-3>,		  // aka gravity or push, ie <0,0,-1.0> = down
 		PSYS_SRC_BURST_SPEED_MIN,(float) 2.5,	 // Minimum velocity for new particles
 		PSYS_SRC_BURST_SPEED_MAX,(float) 3.5,	 // Maximum velocity for new particles
 		//PSYS_SRC_TARGET_KEY,(key) llGetOwner(), // key of a target, requires *_TARGET_POS_MASK
 			// for *_TARGET try llGetKey(), or llGetOwner(), or llDetectedKey(0) even. :)
 			
 		PSYS_PART_FLAGS,	  // Remove the leading // from the options you want enabled:			  
 			 PSYS_PART_EMISSIVE_MASK |		   // particles glow
 			 PSYS_PART_BOUNCE_MASK |			 // particles bounce up from emitter's 'Z' altitude
 			 //PSYS_PART_WIND_MASK |			   // particles get blown around by wind
 			 //PSYS_PART_FOLLOW_VELOCITY_MASK |	// particles rotate towards where they're going
 			 //PSYS_PART_FOLLOW_SRC_MASK |		 // particles move as the emitter moves
 			 PSYS_PART_INTERP_COLOR_MASK |	   // particles change color depending on *_END_COLOR 
 			 PSYS_PART_INTERP_SCALE_MASK |	   // particles change size using *_END_SCALE
 			 //PSYS_PART_TARGET_POS_MASK |		 // particles home on *_TARGET key
 		 0 // Unless you understand binary arithmetic, leave this 0 here. :)
 		] );
 		//sound
 	   // llLoopSound("runningriver",1.0);
 	}
 	
 	//touch_start(integer num) {
 		//if (mode++) llResetScript(); // 2nd time touched?  start over
 		//else llParticleSystem([ ]); // 1st time touched?  Turn particles off.
 	//}
 }
Fumee_blanche

Voir la video de l'effet

Créer par Jopsy Pendragon

Code:
// Jopsy's No-Frills Particle Script v2
 // All settings below are 'defaults
 integer mode;
 default
 {
 	state_entry() {	 
 		llParticleSystem( [
 			// Appearance Settings
 		PSYS_PART_START_SCALE,(vector) <1,1,0>,// Start Size, (minimum .04, max 10.0?)
 		PSYS_PART_END_SCALE,(vector) <1,1,0>, // End Size,  requires *_INTERP_SCALE_MASK
 		PSYS_PART_START_COLOR,(vector) <1,1,1>,   // Start Color, (RGB, 0 to 1)
 		PSYS_PART_END_COLOR,(vector) <1,1,1>,   // EndC olor, requires *_INTERP_COLOR_MASK
 		PSYS_PART_START_ALPHA,(float) 1.0,		// startAlpha (0 to 1),
 		PSYS_PART_END_ALPHA,(float) 1.0,		  // endAlpha (0 to 1)
 		PSYS_SRC_TEXTURE,(string) "",			 // name of a 'texture' in emitters inventory
 			// Flow Settings, keep (age/rate)*count well below 4096 !!!
 		PSYS_SRC_BURST_PART_COUNT,(integer) 1,	// # of particles per burst
 		PSYS_SRC_BURST_RATE,(float) 0.1,		  // delay between bursts
 		PSYS_PART_MAX_AGE,(float) 10,			 // how long particles live
 		PSYS_SRC_MAX_AGE,(float) 15.0*60.0,	   // turns emitter off after 15 minutes. (0.0 = never)
 			// Placement Settings
 		PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP, 
 			// _PATTERN can be: *_EXPLODE, *_DROP, *_ANGLE, *ANGLE_CONE or *_ANGLE_CONE_EMPTY
 		PSYS_SRC_BURST_RADIUS,(float) 0.0,		// How far from emitter new particles start,
 		PSYS_SRC_INNERANGLE,(float) 0.0,		  // aka 'spread' (0 to 2*PI), 
 		PSYS_SRC_OUTERANGLE,(float) 0.0,		  // aka 'tilt' (0(up), PI(down) to 2*PI),
 		PSYS_SRC_OMEGA,(vector) <0,0,0>,		  // how much to rotate around x,y,z per burst,
 			// Movement Settings
 		PSYS_SRC_ACCEL,(vector) <0,0,0>,		  // aka gravity or push, ie <0,0,-1.0> = down
 		PSYS_SRC_BURST_SPEED_MIN,(float) 1.0,	 // Minimum velocity for new particles
 		PSYS_SRC_BURST_SPEED_MAX,(float) 1.0,	 // Maximum velocity for new particles
 		//PSYS_SRC_TARGET_KEY,(key) llGetOwner(), // key of a target, requires *_TARGET_POS_MASK
 			// for *_TARGET try llGetKey(), or llGetOwner(), or llDetectedKey(0) even. :)
 			
 		PSYS_PART_FLAGS,	  // Remove the leading // from the options you want enabled:			  
 			 //PSYS_PART_EMISSIVE_MASK |		   // particles glow
 			 //PSYS_PART_BOUNCE_MASK |			 // particles bounce up from emitter's 'Z' altitude
 			 //PSYS_PART_WIND_MASK |			   // particles get blown around by wind
 			 //PSYS_PART_FOLLOW_VELOCITY_MASK |	// particles rotate towards where they're going
 			 //PSYS_PART_FOLLOW_SRC_MASK |		 // particles move as the emitter moves
 			 //PSYS_PART_INTERP_COLOR_MASK |	   // particles change color depending on *_END_COLOR 
 			 //PSYS_PART_INTERP_SCALE_MASK |	   // particles change size using *_END_SCALE
 			 //PSYS_PART_TARGET_POS_MASK |		 // particles home on *_TARGET key
 		 0 // Unless you understand binary arithmetic, leave this 0 here. :)
 		] );
 	}
 	
 	touch_start(integer num) {
 		if (mode++) llResetScript(); // 2nd time touched?  start over
 		else llParticleSystem([ ]); // 1st time touched?  Turn particles off.
 	}
 }
Fumee_bleu_vert

Voir la video de l'effet

Créer par Ama Omega

Code:
// Particle Script v3 - By Ama Omega
 // 'orbitals' Custom settings by Jopsy Pendragon
 
 // Mask Flags - set to TRUE to enable
 integer glow = TRUE;			// Make the particles glow
 integer bounce = FALSE;		  // Make particles bounce on Z plan of object
 integer interpColor = TRUE;	 // Go from start to end color
 integer interpSize = TRUE;	  // Go from start to end size
 integer wind = FALSE;		   // Particles effected by wind
 integer followSource = FALSE;	// Particles follow the source
 integer followVel = TRUE;	   // Particles turn to velocity direction
 
 // Choose a pattern from the following:
 // PSYS_SRC_PATTERN_EXPLODE
 // PSYS_SRC_PATTERN_DROP
 // PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
 // PSYS_SRC_PATTERN_ANGLE_CONE
 // PSYS_SRC_PATTERN_ANGLE
 integer pattern = PSYS_SRC_PATTERN_ANGLE;
 
 // Select a target for particles to go towards
 // "" for no target, "owner" will follow object owner 
 //	and "self" will target this object
 //	or put the key of an object for particles to go to
 key target;
 
 // Particle paramaters
 float age = 3; //how long will particles live (in seconds)
 float maxSpeed = .005; //maximum speed a particle should be moving
 float minSpeed =0.005; //minimum speed a particle should be movie
 string texture; //texture applied to the particles
 float startAlpha = 1; //alpha transparency at start
 float endAlpha = 1; //alpha at end
 vector startColor = <.1,.85,1>; 
 vector endColor = <.3,8,.4>;
 vector startSize = <.3,.3,0>; //particles start at this size
 vector endSize = <.04,.04,0>; //and end at this size
 vector push = <0,0,0>; //how far to push particles
 
 // System paramaters
 float rate = 0.01;	  // How fast to emit particles
 float radius = 1;	   // Radius to emit particles for BURST pattern
 integer count = 1;   // How many particles to emit per BURST 
 float outerAngle = PI_BY_TWO;   // Outer angle for all ANGLE patterns
 float innerAngle =PI_BY_TWO ;   // Inner angle for all ANGLE patterns
 vector omega = <0,0,.1>; // Rotation of ANGLE patterns around the source
 float life = 0;
  
 
 
 // Script variables
 integer flags;
 
 updateParticles()
 {
 	if (target == "owner") target = llGetOwner();
 	if (target == "self") target = llGetKey();
 	if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
 	if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
 	if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
 	if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
 	if (wind) flags = flags | PSYS_PART_WIND_MASK;
 	if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
 	if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
 	if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;
 
 	
 	
 	llParticleSystem([  PSYS_PART_MAX_AGE,age,
 						PSYS_PART_FLAGS,flags,
 						PSYS_PART_START_COLOR, startColor,
 						PSYS_PART_END_COLOR, endColor,
 						PSYS_PART_START_SCALE,startSize,
 						PSYS_PART_END_SCALE,endSize, 
 						PSYS_SRC_PATTERN, pattern,
 						PSYS_SRC_BURST_RATE,rate,
 						PSYS_SRC_ACCEL, push,
 						PSYS_SRC_BURST_PART_COUNT,count,
 						PSYS_SRC_BURST_RADIUS,radius,
 						PSYS_SRC_BURST_SPEED_MIN,minSpeed,
 						PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
 						PSYS_SRC_TARGET_KEY,target,
 						PSYS_SRC_INNERANGLE,innerAngle, 
 						PSYS_SRC_OUTERANGLE,outerAngle,
 						PSYS_SRC_OMEGA, omega,
 						PSYS_SRC_MAX_AGE, life,
 						PSYS_SRC_TEXTURE, texture,
 						PSYS_PART_START_ALPHA, startAlpha,
 						PSYS_PART_END_ALPHA, endAlpha
 							]);
 }
 default
 {
 	state_entry()
 	{
 		llTargetOmega(llVecNorm(<(1-llFrand(2)),(1-llFrand(2)),(1-llFrand(2))> ),1,.1);
 		updateParticles();
 	}
 	touch(integer n)
 	{
 		llResetScript();
 	}
 }
Fumee_coule_rouge

Voir la video de l'effet

Créer par Ama Omega

Code:
// Particle Script 0.5
 // Created by Ama Omega
 // 3-26-2004
 
 // Mask Flags - set to TRUE to enable
 integer glow = TRUE;			// Make the particles glow
 integer bounce = FALSE;		  // Make particles bounce on Z plane of object
 integer interpColor = TRUE;	 // Go from start to end color
 integer interpSize = TRUE;	  // Go from start to end size
 integer wind = FALSE;		   // Particles effected by wind
 integer followSource = TRUE;	// Particles follow the source
 integer followVel = TRUE;	   // Particles turn to velocity direction
 
 // Choose a pattern from the following:
 // PSYS_SRC_PATTERN_EXPLODE
 // PSYS_SRC_PATTERN_DROP
 // PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
 // PSYS_SRC_PATTERN_ANGLE_CONE
 // PSYS_SRC_PATTERN_ANGLE
 integer pattern = PSYS_SRC_PATTERN_DROP;
 
 // Select a target for particles to go towards
 // "" for no target, "owner" will follow object owner 
 //	and "self" will target this object
 //	or put the key of an object for particles to go to
 key target = "";
 
 // Particle paramaters
 float age = 4;				  // Life of each particle
 float maxSpeed = 0.1;			// Max speed each particle is spit out at
 float minSpeed = 0.1;			// Min speed each particle is spit out at
 string texture = "Smoke";				 // Texture used for particles, default used if blank
 float startAlpha = 1;		   // Start alpha (transparency) value
 float endAlpha = 1;		   // End alpha (transparency) value
 vector startColor = <1,0,0>;	// Start color of particles <R,G,B>
 vector endColor = <0.9,0.0,0.0>;	  // End color of particles <R,G,B> (if interpColor == TRUE)
 vector startSize = <0.1,0.2,1>;	 // Start size of particles 
 vector endSize = <0.25,0.5,1.25>;	   // End size of particles (if interpSize == TRUE)
 vector push = <0,0,-0.1>;		  // Force pushed on particles
 
 // System paramaters
 float rate = 2;			// How fast (rate) to emit particles
 float radius = 0.01;		  // Radius to emit particles for BURST pattern
 integer count = 1;		// How many particles to emit per BURST 
 float outerAngle = 1.54;	// Outer angle for all ANGLE patterns
 float innerAngle = 1.55;	// Inner angle for all ANGLE patterns
 vector omega = <0,0,0>;	// Rotation of ANGLE patterns around the source
 float life = 0;			 // Life in seconds for the system to make particles
 
 // Script variables
 integer pre = 2;		  //Adjust the precision of the generated list.
 
 integer flags;
 list sys;
 integer type;
 vector tempVector;
 rotation tempRot;
 string tempString;
 integer i;
 
 string float2String(float in)
 {
 	return llGetSubString((string)in,0,pre - 7);
 }
 
 updateParticles()
 {
 	flags = 0;
 	if (target == "owner") target = llGetOwner();
 	if (target == "self") target = llGetKey();
 	if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
 	if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
 	if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
 	if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
 	if (wind) flags = flags | PSYS_PART_WIND_MASK;
 	if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
 	if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
 	if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;
 	sys = [  PSYS_PART_MAX_AGE,age,
 						PSYS_PART_FLAGS,flags,
 						PSYS_PART_START_COLOR, startColor,
 						PSYS_PART_END_COLOR, endColor,
 						PSYS_PART_START_SCALE,startSize,
 						PSYS_PART_END_SCALE,endSize, 
 						PSYS_SRC_PATTERN, pattern,
 						PSYS_SRC_BURST_RATE,rate,
 						PSYS_SRC_ACCEL, push,
 						PSYS_SRC_BURST_PART_COUNT,count,
 						PSYS_SRC_BURST_RADIUS,radius,
 						PSYS_SRC_BURST_SPEED_MIN,minSpeed,
 						PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
 						PSYS_SRC_TARGET_KEY,target,
 						PSYS_SRC_INNERANGLE,innerAngle, 
 						PSYS_SRC_OUTERANGLE,outerAngle,
 						PSYS_SRC_OMEGA, omega,
 						PSYS_SRC_MAX_AGE, life,
 						PSYS_SRC_TEXTURE, texture,
 						PSYS_PART_START_ALPHA, startAlpha,
 						PSYS_PART_END_ALPHA, endAlpha
 							];
 							
 	llParticleSystem(sys);
 }
 
 default
 {
 	state_entry()
 	{
 		updateParticles();
 	}
 	
 	touch_start(integer num)
 	{
 		llWhisper(0,"...Generating List...");
 		for (i=1;i<42;i+=2)
 		{
 			type = llGetListEntryType(sys,i);
 			if(type == TYPE_FLOAT)
 			{
 				tempString = float2String(llList2Float(sys,i));
 				sys = llDeleteSubList(sys,i,i);
 				sys = llListInsertList(sys,[tempString],i);
 			}
 			else if (type == TYPE_VECTOR)
 			{
 				tempVector = llList2Vector(sys,i);
 				tempString = "<" + float2String(tempVector.x) + "," 
 					+ float2String(tempVector.y) + "," 
 					+ float2String(tempVector.z) + ">";
 				sys = llDeleteSubList(sys,i,i);
 				sys = llListInsertList(sys,[tempString],i);
 			}
 			else if (type == TYPE_ROTATION)
 			{
 				tempRot = llList2Rot(sys,i);
 				tempString = "<" + float2String(tempRot.x) + "," 
 					+ float2String(tempRot.y) + "," 
 					+ float2String(tempRot.z) + "," 
 					+ float2String(tempRot.s) + ">";
 				sys = llDeleteSubList(sys,i,i);
 				sys = llListInsertList(sys,[tempString],i);
 			}
 			else if (type == TYPE_STRING || type == TYPE_KEY)
 			{
 				tempString = "\"" + llList2String(sys,i) + "\"";
 				sys = llDeleteSubList(sys,i,i);
 				sys = llListInsertList(sys,[tempString],i);
 			}
 		}
 		sys = llListSort(sys,2,TRUE);
 		if (target == "") sys = llDeleteSubList(sys,38,39);
 		else if (target == llGetKey() ) 
 			sys = llListInsertList(llDeleteSubList(sys,39,39),["llGetKey()"],39);
 		else if (target == llGetOwner() ) 
 			sys = llListInsertList(llDeleteSubList(sys,39,39),["llGetOwner()"],39);
 		if (texture == "") sys = llDeleteSubList(sys,24,25);
 		if (!interpSize) sys = llDeleteSubList(sys,12,13);
 		if (!interpColor) sys = llDeleteSubList(sys,6,7);
 
 		llWhisper(0,"[" + llList2CSV(llList2List(sys,0,21)) + ",");
 		llWhisper(0,llList2CSV(llList2List(sys,22,-1)) + "]");
 	}
 }
fumee_violet_bleu_clic_alume

Voir la video de l'effet

Créer par eltee Statosky

Code:
//////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////
 //// eltee Statosky's Particle Creation Engine 1.0
 //// 01/09/2004
 //// *PUBLIC DOMAIN*
 //// Free to use
 //// Free to copy
 //// Free to poke at
 //// Free to hide in stuff you sell
 //// Just please leave this header intact
 //////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////
 
 integer effectFlags=0;
 integer running=TRUE;
 
 
 ///////////////////////////////////////////////////////
 // Color Secelection Variables
 ///////////////////////////////////////////////////////
 // Interpolate between startColor and endColor
 integer colorInterpolation  = TRUE;
 // Starting color for each particle
 vector  startColor		  = <0.1, 9.9, 6.1
 >;
 // Ending color for each particle
 vector  endColor			= <0.75, 0.5, 1.0>;
 // Starting Transparency for each particle (1.0 is solid)
 float   startAlpha		  = 0.9;
 // Ending Transparency for each particle (0.0 is invisible)
 float   endAlpha			= 0.1;
 // Enables Absolute color (true) ambient lighting (false)
 integer glowEffect		  = FALSE;
 
 
 ///////////////////////////////////////////////////////
 // Size & Shape Selection Variables
 ///////////////////////////////////////////////////////
 // Interpolate between startSize and endSize
 integer sizeInterpolation   = TRUE;
 // Starting size of each particle
 vector  startSize		   = <3.5, 8.5, 9999.0>;
 // Ending size of each particle
 vector  endSize			 = <0.5, 0.5, 0.0>;
 // Turns particles to face their movement direction
 integer followVelocity	  = TRUE;
 // Texture the particles will use ("" for default)
 string  texture			 = "";
 
 
 ///////////////////////////////////////////////////////
 // Timing & Creation Variables Variables
 ///////////////////////////////////////////////////////
 // Lifetime of one particle (seconds)
 float   particleLife		= 3.0;
 // Lifetime of the system 0.0 for no time out (seconds)
 float   SystemLife		  = 0.0;
 // Number of seconds between particle emissions
 float   emissionRate		= 0.02;
 // Number of particles to releast on each emission
 integer partPerEmission	 = 1;
 
 
 ///////////////////////////////////////////////////////
 // Angular Variables
 ///////////////////////////////////////////////////////
 // The radius used to spawn angular particle patterns
 float   radius			  = 3.0;
 // Inside angle for angular particle patterns
 float   innerAngle		  = 1;
 // Outside angle for angular particle patterns
 float   outerAngle		  = 0;
 // Rotational potential of the inner/outer angle
 vector  omega			   = <0.0, 0.0, 0.2>;
 
 
 ///////////////////////////////////////////////////////
 // Movement & Speed Variables
 ///////////////////////////////////////////////////////
 // The minimum speed a particle will be moving on creation
 float   minSpeed			= 0.00000001;
 // The maximum speed a particle will be moving on creation
 float   maxSpeed			= 0.00001;
 // Global acceleration applied to all particles
 vector  acceleration		= <0.0, 0.0, -0.5>;
 // If true, particles will be blown by the current wind
 integer windEffect		  = TRUE;
 // if true, particles 'bounce' off of the object's Z height
 integer bounceEffect		= TRUE;
 // If true, particles spawn at the container object center
 integer followSource		= TRUE;
 // If true, particles will move to expire at the target
 //integer followTarget		= TRUE;
 // Desired target for the particles (any valid object/av key)
 // target Needs to be set at runtime
 key	 target			  = "";
 
 
 ///////////////////////////////////////////////////////
 //As yet unimplemented particle system flags
 ///////////////////////////////////////////////////////
 integer randomAcceleration  = FALSE;
 integer randomVelocity	  = FALSE;
 integer particleTrails	  = FALSE;
 
 ///////////////////////////////////////////////////////
 // Pattern Selection
 ///////////////////////////////////////////////////////
 //   Uncomment the pattern call you would like to use
 //   Drop parcles at the container objects' center
 //integer pattern = PSYS_SRC_PATTERN_DROP;
 //   Burst pattern originating at objects' center
 //integer pattern = PSYS_SRC_PATTERN_EXPLODE;
 //   Uses 2D angle between innerAngle and outerAngle
 integer pattern = PSYS_SRC_PATTERN_ANGLE;
 //   Uses 3D cone spread between innerAngle and outerAngle
 //integer pattern = PSYS_SRC_PATTERN_ANGLE_CONE;
 // 
 //integer pattern = PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY;
 
 
 
 setParticles()
 {
 // Here is where to set the current target
 // llGetKey() targets this script's container object
 // llGetOwner() targets the owner of this script
 // Feel free to insert any other valid key
 	target="";
 // The following block of if statements is used to construct the mask 
 	if (colorInterpolation) effectFlags = effectFlags|PSYS_PART_INTERP_COLOR_MASK;
 	if (sizeInterpolation)  effectFlags = effectFlags|PSYS_PART_INTERP_SCALE_MASK;
 	if (windEffect)		 effectFlags = effectFlags|PSYS_PART_WIND_MASK;
 	if (bounceEffect)	   effectFlags = effectFlags|PSYS_PART_BOUNCE_MASK;
 	if (followSource)	   effectFlags = effectFlags|PSYS_PART_FOLLOW_SRC_MASK;
 	if (followVelocity)	 effectFlags = effectFlags|PSYS_PART_FOLLOW_VELOCITY_MASK;
 	if (target!="")	   effectFlags = effectFlags|PSYS_PART_TARGET_POS_MASK;
 	if (glowEffect)		 effectFlags = effectFlags|PSYS_PART_EMISSIVE_MASK;
 //Uncomment the following selections once they've been implemented
 //	if (randomAcceleration) effectFlags = effectFlags|PSYS_PART_RANDOM_ACCEL_MASK;
 //	if (randomVelocity)	 effectFlags = effectFlags|PSYS_PART_RANDOM_VEL_MASK;
 //	if (particleTrails)	 effectFlags = effectFlags|PSYS_PART_TRAIL_MASK;
 	llParticleSystem([
 		PSYS_PART_FLAGS,			effectFlags,
 		PSYS_SRC_PATTERN,		   pattern,
 		PSYS_PART_START_COLOR,	  startColor,
 		PSYS_PART_END_COLOR,		endColor,
 		PSYS_PART_START_ALPHA,	  startAlpha,
 		PSYS_PART_END_ALPHA,		endAlpha,
 		PSYS_PART_START_SCALE,	  startSize,
 		PSYS_PART_END_SCALE,		endSize,	
 		PSYS_PART_MAX_AGE,		  particleLife,
 		PSYS_SRC_ACCEL,			 acceleration,
 		PSYS_SRC_TEXTURE,		   texture,
 		PSYS_SRC_BURST_RATE,		emissionRate,
 		PSYS_SRC_INNERANGLE,		innerAngle,
 		PSYS_SRC_OUTERANGLE,		outerAngle,
 		PSYS_SRC_BURST_PART_COUNT,  partPerEmission,	  
 		PSYS_SRC_BURST_RADIUS,	  radius,
 		PSYS_SRC_BURST_SPEED_MIN,   minSpeed,
 		PSYS_SRC_BURST_SPEED_MAX,   maxSpeed, 
 		PSYS_SRC_MAX_AGE,		   SystemLife,
 		PSYS_SRC_TARGET_KEY,		target,
 		PSYS_SRC_OMEGA,			 omega   ]);
 }
 
 default
 {
 	state_entry()
 	{
 		running=TRUE;
 		llSetText("Running", <0.0, 1.0, 0.0>, 0.5);
 		setParticles();
 	}
 	
 	touch_start(integer num_detected)
 	{
 		if (running==TRUE)
 		{
 			running=FALSE;
 			llSetText("Stopped", <1.0, 0.0, 0.0>, 0.5);
 			llParticleSystem([]);
 		}
 		else
 		{
 			running=TRUE;
 			llSetText("Running", <0.0, 1.0, 0.0>, 0.5);
 			setParticles();
 		}
 	}
 }
Halo_multicolor

Voir la video de l'effet

Créer par Jopsy Pendragon

Code:
//  No Frills Script Template -- Jopsy Pendragon
 
 key mykey;
 list twinkeys;
 list twinpos;
 integer numtwins;
 vector mypos;
 
 default
 {	
 	state_entry() {
 		llSetTimerEvent(5.0);
 	}
 		   
 	timer() {  
 		key target=llGetKey(); 
 		vector mypos = llGetPos();
 		 
 		float red=llFrand(1.0);  float green=llFrand(1.0); float blue = llFrand(1.0);
 		vector up = <1-llFrand(2),1-llFrand(2),1-llFrand(2)>;
 		llLookAt( (vector)(mypos + up), 1.0, .1);
 		llParticleSystem( [
 		PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE, 
 			// _PATTERN can be: *_EXPLODE, *_DROP, *_ANGLE, *ANGLE_CONE or *_ANGLE_CONE_EMPTY
 		PSYS_SRC_BURST_PART_COUNT,(integer) 5, // defined above
 		PSYS_SRC_BURST_RATE,(float) .1,		  // defined above
 		PSYS_PART_MAX_AGE,(float) 5,			 // defined above
 		PSYS_SRC_BURST_RADIUS,(float) 1.2,	   // How far from emitter new particles start,
 		PSYS_SRC_INNERANGLE,(float) PI/2,		 // aka 'spread' (0 to 2*PI), 
 		PSYS_SRC_OUTERANGLE,(float) 0.0,		 // aka 'tilt' (0 to 2*PI),
 		//PSYS_SRC_OMEGA,(vector)(offset*0.1),
 		PSYS_SRC_ACCEL,(vector) (-up*.3),  
 		PSYS_SRC_BURST_SPEED_MIN,(float)0.0,  
 		PSYS_SRC_BURST_SPEED_MAX,(float) 0.2,  
 		PSYS_PART_START_SCALE,(vector) <.5,.04,0.0>,// Start Size, (minimum .04, max 10.0?)
 		PSYS_PART_END_SCALE,(vector) <.04,.5,0>,  // End Size,  requires *_INTERP_SCALE_MASK
 		PSYS_PART_START_COLOR,(vector) <red*2,green,blue>,
 		PSYS_PART_END_COLOR,(vector) <red, green, blue*2>,
 		PSYS_PART_START_ALPHA,(float) 1.0,		   // startAlpha (0 to 1),
 		//PSYS_PART_END_ALPHA,(float)			  // endAlpha (0 to 1)
 		//PSYS_SRC_TARGET_KEY,(key)target,// ,
 			// for *_TARGET try llGetKey(), or llGetOwner(), or llDetectedKey(0) even. :)
 		PSYS_SRC_TEXTURE,(string) "blobbies.tga",			// name of a 'texture' in emitters inventory
 		//PSYS_SRC_MAX_AGE,(float) 0.0,			// turns emitter off. (0.0 = never)
 		PSYS_PART_FLAGS,					
 			 PSYS_PART_EMISSIVE_MASK |		   // particles glow
 			 //PSYS_PART_BOUNCE_MASK |			 // particles bounce up from emitter's 'Z' altitude
 			 //PSYS_PART_WIND_MASK |			   // particles get blown around by wind
 			 PSYS_PART_FOLLOW_VELOCITY_MASK |	// particles rotate towards where they're going
 			 //PSYS_PART_FOLLOW_SRC_MASK |		 // particles move as the emitter moves
 			 PSYS_PART_INTERP_COLOR_MASK |	   // particles change color depending on *_END_COLOR 
 			 PSYS_PART_INTERP_SCALE_MASK |	   // particles change size using *_END_SCALE
 			 PSYS_PART_TARGET_POS_MASK 
 		] );
 	}
 }
Lazer_rouge

Voir la video de l'effet

Créer par Jopsy Pendragon

Code:
// No frills particle script -- Jopsy Pendragon
 
 default
 {
 	state_entry() {
 		llParticleSystem( [  
 			PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE, 
 			PSYS_SRC_BURST_PART_COUNT,(integer) 4,   // adjust for beam strength,
 			PSYS_SRC_BURST_RATE,(float) .05,		  
 			PSYS_PART_MAX_AGE,(float)  .6,			
 			PSYS_SRC_BURST_SPEED_MIN,(float)1,		
 			PSYS_SRC_BURST_SPEED_MAX,(float) 7.0,	  
 			PSYS_PART_START_SCALE,(vector) <0,.1,0>, 
 			PSYS_PART_END_SCALE,(vector) <.04,.5,0>,   
 			PSYS_PART_START_COLOR,(vector) <1,0,0>,  
 			PSYS_PART_END_COLOR,(vector) <.2,0,0>,   
 			PSYS_PART_START_ALPHA,(float)0.5,		  
 			PSYS_PART_END_ALPHA,(float)0.00,		  
 			PSYS_PART_FLAGS,
 				 PSYS_PART_EMISSIVE_MASK |	 
 				 PSYS_PART_FOLLOW_VELOCITY_MASK |
 				 PSYS_PART_FOLLOW_SRC_MASK |   
 				 PSYS_PART_INTERP_SCALE_MASK				  
 		] );
 	}
 }
http://www.generations-web.com/Flicky/videos/rotation/rotation.avi
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés