This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Partikel Sandsturm oder Schneesturm
#1
Partikel Sandsturm oder Schneesturm Erzeugung


Dieses Script erzeugt bei allen verlinkten Prims Partikel.

Anleitung: Verlinke ca. 3 Prims, mache sie Phantom, und schiebe diese zu einem Array auseinander.
Texturiere mindetens eines der Prims mit der späteren Sand-/Schneesturmtextur.

Wenn man die Textur auf die Fläche eines der Partikelprims legt, ist sie in der Sim vorgeladen, und wird allen Besuchern vorab übermittelt. 
Das gilt auch wenn danach das Prim transparent gemacht wird. So startet der Sturm bei jedem Viewer sofort mit der sichtbar richtigen Textur.
Ansonsten erfolgt erst die Übertragung der Partikeltextur beim ersten Sturmbeginn.

Aus jedem dieser Prims werden später Partikel erzeugt, die mit dem Wind verweht werden.

Als Textur eignet sich eine transparente Textur mit vielen feinen kleinen Partikeln drauf. 
Lege nun in das Rootprim die Partikel Textur (z. Bsp:  Sandsturm oder Schneesturm), danach dieses Script.
Wer die Reihenfolge vertauscht hat muss danach ein Script Reset machen. 
Das Script liest beim ersten Start die in seimem Rootprim eingefügte Textur aus, und verwendet diese.


Das Script startet im Automatik Modus- wartet also 360 Sekunden bis zur ersten Partikel Erzeugung. 
Danach erzeugt es 60 Sekunden lang Partikel, um dann zur nächsten 360 Sek Pause überzugehen. Dieser Zyklus läuft endlos.

Mit Klick auf eines dieser Prims kann man die Sand- / Schneesturm Erzeugung dauerhaft ausschalten- oder die Automatik wieder einschalten

Der Sturm dauert jeweils "sturmdauer" Sekunden, und macht danach "sturmpause" Sekunden Pause.
float sturmdauer = 60.0;
float sturmpause = 360.0;


Wer Lust hat kann das auch mit Zufallszeiten ersetzten
Mache nach erfolgten Test alle Prims unsichtbar

Achtet aber daruaf nicht zuviele Partikel auf einer Sim gleichzeitig zu erzeugen.
Ausserdem sollte bei Events daran gedacht werden das schwache Rechner Probleme mit zuviel Partikeln bekommen können.

Die Anzahl der im Viewer dargestellten Partikeln läßt sich darin im Grafik Setup Menü einstellen.
Wenn man die Partikel nicht sieht, lohnt sich ein Blick da hinein.

Code:
// P424 Sandsturm Erzeugung für verlinkte Prims   by Tron CC0
// Anleitung: Verlinke ca. 3 Prims und schiebe diese zu einem Array auseinander.
// Aus jedem dieser Prims werden später Partikel erzeugt, die mit dem Wind verweht werden.
// Lege in das Rootprim erst die Sandsturm Textur, danach dieses Script.
// Mache alle Prims Phantom und unsichtbar
//
// Das Script startet im Automatik Modus- wartet also 360 Sekunden bis zur ersten Partikel Erzeugung.
// Danach erzeugt es 60 Sekunden Partikel, um dann zur nächsten 360Sek Pause überzugehen.
// Mit klick auf eines dieser Prims kann man die Sandsturm Erzeugung dauerhaft ausschalten- oder die Automatik wieder einschalten

// Der Sturm dauert jeweils "sturmdauer" Sekunden, und macht danach "sturmpause" Sekunden Pause.

float sturmdauer = 60.0;
float sturmpause = 360.0;

// ENDE USERPARAMETER

integer sandsturm;


sandpartikel(integer sturm)
{
    if (sturm)
    {
        llLinkParticleSystem( LINK_SET , // Sandsturm in allen verlinkten Prims einschalten
        [
            PSYS_SRC_PATTERN,PSYS_SRC_PATTERN_EXPLODE,
            PSYS_SRC_BURST_RADIUS,20,
            PSYS_SRC_ANGLE_BEGIN,PI/2,
            PSYS_SRC_ANGLE_END,PI/2 + 0.01,
            PSYS_SRC_TARGET_KEY,llGetKey(),
            PSYS_PART_START_ALPHA,0.1,
            PSYS_PART_END_ALPHA,0.3,
            PSYS_PART_BLEND_FUNC_SOURCE,PSYS_PART_BF_SOURCE_ALPHA,
            PSYS_PART_BLEND_FUNC_DEST,PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA,
            PSYS_PART_START_SCALE,<100.0,100.0,100.0>,
            PSYS_PART_END_SCALE,  <100.0,100.0,100.0>,
            PSYS_SRC_TEXTURE, llGetInventoryName(INVENTORY_TEXTURE, 0),  // erste Textur aus Prim auslesen und nehmen  
            PSYS_SRC_MAX_AGE,0,
            PSYS_PART_MAX_AGE,10,
            PSYS_SRC_BURST_RATE,0.1,
            PSYS_SRC_BURST_PART_COUNT,3,
            PSYS_SRC_ACCEL,<0.0,0.0,0.0>,
            PSYS_SRC_OMEGA,<0.0,0.0,0.0>,
            PSYS_SRC_BURST_SPEED_MIN,0.6,
            PSYS_SRC_BURST_SPEED_MAX,0.6,
            PSYS_PART_FLAGS,0
                | PSYS_PART_INTERP_SCALE_MASK
                | PSYS_PART_BOUNCE_MASK
                | PSYS_PART_EMISSIVE_MASK
                | PSYS_PART_WIND_MASK
        ]);
        sandsturm = TRUE;
    llSetTimerEvent(sturmdauer);  
    }
    else
    {
        llLinkParticleSystem(LINK_SET, []);  //  Sandsturm ausschalten
        sandsturm = FALSE;
    llSetTimerEvent(sturmpause);
    }
}


default
{
    state_entry()
    {
         sandpartikel(FALSE);   
    }


    touch_start(integer touched)
    {
        if (sandsturm)
        {
            sandpartikel(FALSE);
            llWhisper(0,"Sandsturm ausgeschalten");
            llSetTimerEvent(0.0);
        }
        else
        {
            sandpartikel(TRUE);
            llWhisper(0,"Sandsturm auf Automatik eingeschalten");       
        }
    }


    timer()
    {
        sandpartikel(!sandsturm);
    }
}


Viel Spaß

Tron
Zitieren
#2
Hallo Tron, mit diesen Scripten macht OpenSim noch viel mehr Spaß. Die unglaubliche Vielfalt der Themen mit denen man sich beschäftigen kann ist schon gewaltig. Irgendwann wird man sich für ein Lieblingsthema entscheiden. Ich selbst habe meine Richtung noch nicht wirklich gefunden. Alle Themen sind ja auch so interessant. Danke
All done!
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste