Die Tatsache das ich mal'nen Tag Urlaub habe, und in der Sandbox hocke und irgendwie nicht so recht weiss was ich machen soll müsst ihr jetzt ausbaden fürchte ich

Ich sas da also so in der Sandbox, hab mit Particles rumgespielt, und dachte mir, schreib doch für die Einwohner die nicht so gut in Englisch sind eine Vorlage für ein Partikelskript.
Tja, und hier ist's nun in Version 1.0. Wer Fehler findet, bitte kurze IM an mich damit ich sie rauswerfen kann.
CODE
// Andy Witherspoons Partikelskript v1.0
// Macht damit was ihr wollt, ihr könnt es natürlich gerne veraendern und auch für Artikel verwenden die verkauft werden
// In die Tonne treten is natuerlich auch erlaubt ;)
//
// Ich hab nur 2 Bitten:
// 1. Wenn euch das Skript gefällt, schickt mir eine IM damit ich weiss das es auch jemand einsetzt :-)
// 2. Das Skript ist kostenlos. Also bitte verkauft es nicht an irgendwelche Newbies. Sonst werd ich sauer!
//
// Wenn jemand Anregungen, Kritik oder Geldspenden hat, Andy Witherspoon ist meine Name und ich freu mich (fast) immer über IMs
// Nun zum Skript und seiner Funktionsweise:
// Die ganzen Einstellungen für's Partikelsystem sind in logischer Reihenfolge zusammengefasst und einzeln kommentiert.
// Mal von den ganzen Partikelparametern abgesehen passiert da nicht viel. Am Anfang legt es los, stellt die Parameter ein, und geht in den state particles_on
// in dem der Partikelgenerator angeworfen wird.
// Wird das Objekt "ge-touched", wird zwischen dem state particles_on und particles_off umgeschaltet
// Rein zur Sicherheit werden alle Zahlenwerte auf die Types gecastet die erwartet werden
list Partikeleinstellungen;
default {
state_entry() { // Am Einsprung in den state (also beim rezzen) die ganzen Parameter fürs Partikelsystem setzen
Partikeleinstellungen = [
// Die ganzen optischen Einstellungen
PSYS_SRC_TEXTURE, (string) "", // Die Textur fuer die Particles. Wenn leer, ists so ein rundes, strahlendes Dings
PSYS_PART_START_COLOR,(vector) <1.00,1.00,1.00>, // Farbwert zu Anfang des Partikellebens (Werte von 0 bis 1 fuer Rot, Gruen und Blau)
PSYS_PART_END_COLOR, (vector) <1.00,1.00,1.00 >, // Farbwert am Ende des Partikellebens (fuer Farbwechsel muss COLOR_MASK weiter unten gesetzt sein)
PSYS_PART_START_SCALE,(vector) <1.00,1.00,0>, // Groesse des Partikels am Anfang...
PSYS_PART_END_SCALE, (vector) <1.00,1.00,0>, // ... und am Ende (SCALE_MASK muss gesetzt sein)
PSYS_PART_START_ALPHA, (float) 1.0, // Transparenz zu Anfang...
PSYS_PART_END_ALPHA, (float) 1.0, // ...und am Ende (COLOR_MASK muss dafuer gesetzt werden)
// Einstellungen des Generators
PSYS_PART_MAX_AGE, (float) 1.00, // Lebenszeit eines Partikels in Sekunden (maximum ist 30)
PSYS_SRC_MAX_AGE, (float) 0.0, // Lebensdauer der Partikelquelle (0 fuer unbegrenzt)
PSYS_SRC_ACCEL, (vector) <0.00,0.00,1.00 >, // Beschleunigungsvektor fuer Partikel. Fuer Gravitation zB <0,0,-1.0>
PSYS_SRC_ANGLE_BEGIN, (float) 0.00, // Bereich in rad in dem KEINE Partikel erzeugt werden (bringt nur was bei ANGLE patterns)
PSYS_SRC_ANGLE_END, (float) 0.00, // Bereich in rad die mit Partikeln gefüllt werden
PSYS_SRC_BURST_PART_COUNT,(integer) 1, // Anzahl der Partikel die pro Burst erzeugt werden
PSYS_SRC_BURST_RADIUS, (float) 0.00, // Abstand dem Objekt in dem das Skript liegt und der Partikelquelle
PSYS_SRC_BURST_RATE, (float) 0.5, // Zeitabstand zwischen zwei Bursts
PSYS_SRC_BURST_SPEED_MIN, (float) 0.5, // Minimale Geschwindigkeit von erzeugten Partikeln
PSYS_SRC_BURST_SPEED_MAX, (float) 1.5, // Maximale Geschwindigkeit von erzeugten Partikeln
PSYS_SRC_OMEGA, (vector) < 0.0,0.0,0.0 >, // Drehung zwischen zwei Bursts (für ANGLE patterns)
PSYS_SRC_TARGET_KEY, (key) llGetKey(), // Zielobjekt auf das die Partikles zufliegen (benoetigt POS_MASK)
PSYS_SRC_PATTERN, // Art, in der die Partikel abgestrahlt werden
PSYS_SRC_PATTERN_DROP, // Partikel einfach am Ort der Quelle fallen lassen, und nur von SPEED und ACCEL beeinflussen lassen
// PSYS_SRC_PATTERN_EXPLODE, // In alle Richtungen abstrahlen
// PSYS_SRC_PATTERN_ANGLE, // In Form eines 2D-Winkelbereichs abstrahlen, definiert durch ANGLE_END und _BEGIN
// PSYS_SRC_PATTERN_ANGLE_CONE, // Wie ANGLE, nur 3D
// PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY, // Undokumentiert, laut Wiki wie ANGLE_CONE nur invertiert
PSYS_PART_FLAGS, ( 0 // Optionen fuer die Partikel
// | PSYS_PART_EMISSIVE_MASK // Partikel leuchten
// | PSYS_PART_BOUNCE_MASK // Partikel prallen in der Z-Hoehe des Emitters ab
// | PSYS_PART_WIND_MASK // Partikel folgen dem Wind
// | PSYS_PART_FOLLOW_VELOCITY_MASK // Partikel drehen sich in Flugrichtung
// | PSYS_PART_FOLLOW_SRC_MASK // Partikel bewegen sich mit dem Emitter mit
// | PSYS_PART_INTERP_COLOR_MASK // Partikel ändern die Farbe und/oder Transparenz (siehe oben)
// | PSYS_PART_INTERP_SCALE_MASK // Partikel ändern die Grösse
// | PSYS_PART_TARGET_POS_MASK // Partikel fliegen auf definiertes Ziel zu
// | PSYS_PART_TARGET_LINEAR_MASK // Undokumentiert: Partikel fliegen direkt auf Ziel?
)
];
state particles_on; // State umschalten um Partikel einzuschalten
}
}
state particles_on { // State: Partikel an
state_entry() {
llParticleSystem( Partikeleinstellungen ); // Partikelsystem mit den oben gesetzen Parametern aktivieren
}
touch_start(integer num) { // Objekt beruehrt?
state particles_off; // State: Keine Partikel!
}
}
state particles_off { // State: Partikel aus
state_entry() {
llParticleSystem( [ ] ); // Partikelsystem mit leeren Parametern setzen schaltet den Emitter aus
}
touch_start(integer n) { // Objekt beruehrt?
state particles_on; // State: Partikel ein!
}
}