Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Kokosnuss Rezzer Lastoptimiert
#1
Hier mal ein Script das euren Gästen Kokosnüsse vor die Füsse fallen läßt. Die verhalten sich physisch, rollen am Boden bergab, und lösen sich nach 1-2 Minuten auf. Dazu ist aber unbedingt die Anleitung zu beachten:

1. Erstelle ein Prim mit der Bezecihnung "Coco". Mache dieses physisch und temporär, und nimm es in dein Inventar zurück.
2. Erstelle das Rot Prim das die Kokosnüsse rezzen soll. Dieses wird später in der Sim an die Stelle gesetzt wo die Kokosnuss das fallen beginnen soll. Also üblicherweiser in den Fruchtständen der Bäume.
3. in dieses Root Prim lege das untere Script herein, sowie die unter 1. erstellte Kokosnuss.

Auch dieses Script ist wieder Lastoptimiert, und bedenkenlos einsetzbar.


Viel Spaß - Helme verkaufe ich demnächst im Baumarkt

Fertige Coco Rezzer gibts bei mir inworld auf der Isla Bonita, oder mich fragen


Tron



Code:
// P404 Coco Rezzer     V2.0  09.05.2016
// by TJ / Tron
// Lastminimiertes Script zum Abwurf von Kokosnüssen
// - Erzeugt nur Kokosnüsse, wenn Avatare in Nähe sind
// - Legt Pause nach dem rezzen einer Kokosnus ein
// - Scannt so selten wie möglich um die Simlast zu begrenzen

// Die zu rezzende Kokosnuss muss im Root Prim untergebracht sein.
// Sie muss "Coco" heissen, und die Attribute "physisch" und "temporär" haben

string     obj =  "Coco";               // zu rezzendes Objekt    
float   scandistanz = 10.0;       // Reichweite der Avatar Erkennung                                
float   scantimer = 10.0;         // Intervall für Suche nach Avataren in der Nähe
float   rezzpause = 120.0;         // Ruhe Pause nachdem eine Kokosnuss gerezzt wurde  
integer rezzmodus = FALSE;        // Status Rezzen und Pause  oder  Scannen nach Avataren
vector  pos;
integer laufvar;
integer avatar_in_naehe;

default
{
   state_entry()
   {
       llSetTimerEvent(scantimer);
   }


   timer()
   {
       pos =  llGetPos();
       avatar_in_naehe = FALSE;
        
       list avatarliste = llGetAgentList(AGENT_LIST_PARCEL, []); // Liste der Avatare in der Sim holen
       for (laufvar = 0; laufvar < llGetListLength(avatarliste); laufvar++)
           {
               if (llVecDist(llList2Vector(llGetObjectDetails(llList2Key(avatarliste, laufvar), [OBJECT_POS]),0), llGetPos()) <= scandistanz)
                   {
                       avatar_in_naehe = TRUE; // Avatar in Reichweite
                       laufvar = llGetListLength(avatarliste); //...break out of the loop
                   }
           }
           
       if (avatar_in_naehe)
           {
               if (!rezzmodus)
                   { // Kokosnuss rezzen und danach Pause machen
                      rezzmodus = TRUE;                
                      llRezAtRoot(obj, pos, ZERO_VECTOR, ZERO_ROTATION , 11000);   // Kokosnuss rezzen
                      llSetTimerEvent(rezzpause);  // rezzpause nachdem eine Kokosnus gerezzt wurde
                   }
                else // in Pause da bereits Kokosnuss gerezzt
                    {
                        rezzmodus = FALSE;
                        llSetTimerEvent(scantimer);
                }
           }
       else
           { // Niemand in Nähe, Suchintervall einschalten
               rezzmodus = FALSE;
               llSetTimerEvent(scantimer);  // Normal scannen                
           }
   }
}
Antworten }
Thanks given by: Achim


Gehe zu:


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