Problème de script (flag)

Répondre
Partager Rechercher
J'ai modifié un script pour qu'il y ai un link avec un autre objet, il me semble bon à ce niveau là, mais il me met error sur la ligne du flag.

Voilà le script :
Code:
								// MASK FLAGS: set to "TRUE" to enable
integer glow = TRUE;								// Makes the particles glow
integer bounce = FALSE;							 // Make particles bounce on Z plane of objects
integer interpColor = TRUE;						 // Color - from start value to end value
integer interpSize = TRUE;						 // Size - from start value to end value
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_ANGLE_CONE;		// 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 PARAMETERS
 
	float age = 4.4;								// Life of each particle
	float maxSpeed = 0.5;						 // Max speed each particle is spit out at
	float minSpeed = 0;							 // Min speed each particle is spit out at
	string texture = "water";			 // Texture used for particles, default used if blank
	float startAlpha = 0.8;						 // Start alpha (transparency) value
	float endAlpha = 0;							 // End alpha (transparency) value
	vector startColor = <0.85,0.85,1>;			 // Start color of particles <R,G,B>
	vector endColor = <1,1,1>;					 // End color of particles <R,G,B> (if interpColor == TRUE)
	vector startSize = <0.25,0.25,0.25>;			// Start size of particles 
	vector endSize = <0.25,0.25,0.25>;					 // End size of particles (if interpSize == TRUE)
	vector push = <0.0,0.0,-2>;					// Force pushed on particles
								// SYSTEM PARAMETERS
 
	float rate = 0.0001;							 // How fast (rate) to emit particles
	float radius = 0.75;							// Radius to emit particles for BURST pattern
	integer count = 50;							 // How many particles to emit per BURST 
	float outerAngle = 0.5;						// Outer angle for all ANGLE patterns PI/4
	float innerAngle = 0.5;						 // 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 flags; 
	 flags = 0;
 
	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;
 
default
{
	link_message(integer sender_num, integer num, string str, key id)
	 {
		 llSay(0,str + "On");
		 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
							]);
			state tickled;
	 }
}
state tickled
{
	link_message(integer sender_num, integer num, string str, key id)
	 {
		 llSay(0, str + "Off");
		 state default;
	 }
}
alors le code suivant serait pas mal:
Code:
integer glow = TRUE;
integer bounce = FALSE;
integer interpColor = TRUE;
integer interpSize = TRUE;
integer wind = FALSE;
integer followSource = TRUE;
integer followVel = TRUE;
integer pattern = PSYS_SRC_PATTERN_ANGLE_CONE;
key target = "";
float age = 4.4;
float maxSpeed = 0.5;
float minSpeed = 0;
string texture = "water";
float startAlpha = 0.8;
float endAlpha = 0;
vector startColor = <0.85,0.85,1>;
vector endColor = <1,1,1>;
vector startSize = <0.25,0.25,0.25>;
vector endSize = <0.25,0.25,0.25>;
vector push = <0.0,0.0,-2>;
float rate = 0.0001;
float radius = 0.75;
integer count = 50;
float outerAngle = 0.5;
float innerAngle = 0.5;
vector omega = <0,0,0>;
float life = 0;
integer flags = 0; 

default {
    link_message(integer sender_num, integer num, string str, key id) {
        llSay(0,str + "On");
        flags = 0;
        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
                            ]);
            state tickled; } }

state tickled {
    link_message(integer sender_num, integer num, string str, key id) {
        llSay(0, str + "Off");
        llParticleSystem([]);
        state default; } }
essaye ce paramétrage là:
Code:
integer glow = TRUE;
integer bounce = FALSE;
integer interpColor = FALSE;
integer interpSize = FALSE;
integer wind = FALSE;
integer followSource = TRUE;
integer followVel = TRUE;
integer pattern = PSYS_SRC_PATTERN_EXPLODE;
key target = "";
float age = 30;
float maxSpeed = 0.2;
float minSpeed = 0.1;
string texture = "";
float startAlpha = 0.8;
float endAlpha = 0;
vector startColor = <0.8, 0.8, 1.0>;
vector endColor = <0.5, 0.5, 1.0>;
vector startSize = <0.1, 0.1, 0.0>;
vector endSize = <0.1, 0.1, 0.0>;
vector push = <0.0, 0.0, -2.0>;
float rate = 0.01;
float radius = 1.0;
integer count = 1000;
float outerAngle = 0.8;
float innerAngle = 0.0;
vector omega = <0,0,0>;
ça fait pas mal douche mais bon
Répondre

Connectés sur ce fil

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