Particle Targeting v0.01

De DigiWiki.

// Particle Targeting v0.01
 
integer our_channel = -1212123;
 
// Particle Params
key target;
integer glow = TRUE;           
integer bounce = FALSE;         
integer interpColor = TRUE;    
integer interpSize = TRUE;      
integer wind = FALSE;           
integer followSource = FALSE;    
integer followVel = TRUE;       
integer pattern = PSYS_SRC_PATTERN_ANGLE_CONE;
float age = 5.0;                  
float maxSpeed = 1.5;            
float minSpeed = 0.5;           
string texture = "";                 
float startAlpha = 1.0;           
float endAlpha = 1.0;           
vector startColor = <1,0,0>;    
vector endColor = <0,0,1>;     
vector startSize = <0.0,0.0,0.0>;    
vector endSize = <0.1,0.1,0.0>;       
vector push = <0,0,0>;          
float rate = 0.01;           
float radius = 0.0;         
integer count = 1000;        
float outerAngle = 1.55;   
float innerAngle = 1.55;   
vector omega = <20,20,20>;    
float life = 0;             
integer flags;
 
set_particles()
{
    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()
    {
        llListen(our_channel, "","","");
        set_particles();
    }
 
    listen(integer channel, string name, key id, string message)
    {
        if (channel == our_channel)
        {
            list cmd_list = llParseString2List(message, ["="], []);
            string cmd0 = llList2String(cmd_list, 0);
            string cmd1 = llList2String(cmd_list, 1);
 
            if(cmd0 == "Key")
            {
                target = (key)cmd1;
                set_particles();
            }
        }
    }
}
// Give Key v0.01
integer our_channel = -1212123;
default {touch_start(integer total_number) {llSay(our_channel, "Key="+(string)llGetKey());}}
Outils personnels
  • Cette page a été consultée 400 fois.
donate
Google Ads