• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Anfänger-Frage : wie schalte ich Wasserdampf EIN / AUS ?

Raiser Nightfire

Aktiver Nutzer
moin zusammen ...

ich habe ein (recht langes) Script für Wasserdampf gefunden "Waterfall Mist" von Eric Linden.

darin heisst es auf Channel 0 sagen "spray on" bzw. "spray off", soweit verstehe ich das als Chat command.

leider tut das Teil aber nicht was ich sage :) ... gibt es da ne simple Lösung für?

Raiser
 
Simple Lösung: Das da unten kopieren, fertig. :p
Da fehlte im State-Entry Bereich noch was. Jedenfalls funktioniert das Script so, wie du dir es erhofft hast. ^^



Code:
StartSteam()
{
                                // 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 = 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 = 3;                                  // Life of each particle
    float maxSpeed = 0.05;                          // Max speed each particle is spit out at
    float minSpeed = 0.0;                           // Min speed each particle is spit out at
    string texture = "dcab6cc4-172f-e30d-b1d0-f558446f20d4";                     // Texture used for particles, default used if blank
    float startAlpha = .25;                         // Start alpha (transparency) value
    float endAlpha = 0.0;                           // End alpha (transparency) value
    vector startColor = <0.9,0.9,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 = <.25,.25,.25>;               // Start size of particles 
    vector endSize = <3,3,3>;                       // End size of particles (if interpSize == TRUE)
    vector push = <0,0,-0.5>;                        // Force pushed on particles

                            // System paramaters
                            
    float rate = 0.1;                               // How fast (rate) to emit particles
    float radius = 1.0;                             // Radius to emit particles for BURST pattern
    integer count = 16;                             // How many particles to emit per BURST 
    float outerAngle = 0.1;                         // Outer angle for all ANGLE patterns
    float innerAngle = 0.65;                        // 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 (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
                            ]);
      
}
StartSpray ()
{

}

StopSpray()
{
    llParticleSystem([]);   
}



default
{
    state_entry()
    {
         StartSteam();
         llSetAlpha(0.0,ALL_SIDES);
         llListen(PUBLIC_CHANNEL, "",NULL_KEY, "");
    }

    listen(integer channel, string name, key id, string message)
    {
 
         if (0 == llSubStringIndex(message, "spray on"))
        {
            StartSteam();
            
        }
        else if (0 == llSubStringIndex(message, "spray off"))
        {
            StopSpray();
        }
    }
}
 
:thankyou1
super ^^ funzt jetzt natürlich. dachte nicht, das ein "linden" da was vergisst ...
im vergleich sehe ich die zeilen 110 & 111 und kapiere nun, was damit gemeint ist :lichtan
so habe ich dabei noch was gelernt!

vielen dank

Raiser
 
ich nochmal ...


ich habe gelernt bzw. gelesen, das man auch einen "touch-befehl" setzen kann. dann braucht man nicht tippen.

die "set-alpha-funktion" ist auch klasse. dieses mal habe ich sie rausgenommen, weil das objekt sichtbar bleiben wird.

noch weiss ich nur nicht, wie man den "touch" schreiben muss, aber ch werde mal bei wiki suchen wie der befehl heisst. vielleicht kann mir nochmal jemand helfen ...

Raiser
 
Zuletzt bearbeitet:

Users who are viewing this thread

Zurück
Oben Unten