Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Objektspawner
#1
Hallo Ihr Lieben,...

 Ich habe über einen Script Generator dieses kleine Spawnscript erstellt.
 
Zitat:// This script was auto-generated by Ann Enigma's script autogenerator
// available at http://www.3greeneggs.com/autoscript/
// Note: After you copy this script into your creation, you will also need to copy in the object to rez


default
{

    state_entry() {
        llListen(0,"", NULL_KEY, "");
    }

    listen(integer channel, string name, key id, string message) {
        if (message == "cannago") {

        // This line will pick the first object out of the container and rez it
        llRezObject(llGetInventoryName(INVENTORY_OBJECT,0), llGetPos()+<0,0,0>,ZERO_VECTOR,ZERO_ROTATION,180);

        }
    }

}

Wo oder wie kann ich den Spawner so einstellen das er das Objekt in der richtigen Richtung dreht.
Mein gespawntes Objekt ist nicht mehr Horizontal und dreht sich somit auch total verkehrt.

Benötige ein Skript eben Objekte automatisch zu spawnen da dieser nur zu Feiern erscheinen sollen.

Mfg,.. Miss Undercover
Besuche auch Du

[Bild: sb7wg8rc.png]

Temet Nosce ( Erkenne Dich selbst )
Wer sich selber kennt, der hat auch die Antworten auf seinen Sinn des Lebens ;)
Zitieren
#2
(06.02.2018, 19:50)Miss Undercover schrieb:  
Zitat:// This script was auto-generated by Ann Enigma's script autogenerator
// available at http://www.3greeneggs.com/autoscript/
// Note: After you copy this script into your creation, you will also need to copy in the object to rez


default
{

    state_entry() {
        llListen(0,"", NULL_KEY, "");
    }

    listen(integer channel, string name, key id, string message) {
        if (message == "cannago") {

        // This line will pick the first object out of the container and rez it
        llRezObject(llGetInventoryName(INVENTORY_OBJECT,0), llGetPos()+<0,0,0>,ZERO_VECTOR,ZERO_ROTATION,180);

        }
    }

}

Hallo Miss Undercover,

dort wo jetzt ZERO_ROTATION steht musst du die richtige Rotation eintragen (Zero bedeutet ja keine Rotation)

Um die richtigen Werte zu ermitteln, nutze ich immer ein Hilfsskript:

1. Drehe das Objekt nachdem es (falsch) gerezzt wurde mit Hilfe des Baumenüs in die richtige Postion

2. Packe folgendes Skript in seinen Inhalt
 
Code:
 default
{
    state_entry()
    {
       llOwnerSay("Rotation: "+ (string)llGetLocalRot());
       llSleep(1.0);
       llRemoveInventory(llGetScriptName());
    }
}

3. Kopiere, was nun im lokalen Chat ausgegeben wurde und füge es anstelle von ZERO_ROTATION in den Rez-Script ein

Danach sollten deine Objekte richtig gedreht erscheinen....
Lache- und die Welt wird mit dir lachen... Schnarche - und du schläfst allein... !

kroatan.de:8002
[-] The following 2 users say Thank You to Bink for this post:
  • Bogus Curry, Miss Undercover
Zitieren
#3
Oh danke Bink,... hat bestens geklappt.

mfg,.. Miss Undercover
Besuche auch Du

[Bild: sb7wg8rc.png]

Temet Nosce ( Erkenne Dich selbst )
Wer sich selber kennt, der hat auch die Antworten auf seinen Sinn des Lebens ;)
Zitieren
#4
Noch ne kleine Frage,...

 Wenn es einen Objektspawner gibt, gibt es dann auch einen der das Objekt nach ner gewissen Zeit ( Stunden/Tage )
 wieder alleine löschen kann ? Damit räumt sich die Sim dann ja nach der Party auch wieder alleine auf ^^

 Mfg,.. Miss Undercover
Besuche auch Du

[Bild: sb7wg8rc.png]

Temet Nosce ( Erkenne Dich selbst )
Wer sich selber kennt, der hat auch die Antworten auf seinen Sinn des Lebens ;)
Zitieren
#5
Du brauchst kein extra Script in deinem Object.
Code:
llRezObject(llGetInventoryName(INVENTORY_OBJECT,0), llGetPos(), ZERO_VECTOR, llGetRot(), 180);

Beachte das llGetRot(), damit hat dein Object die selbe Rotation wie das Object von dem Script dass dieses Rezt.

Und wenn du die Objekte auf Temporer stellst verschwinden diese Automatisch nach 1 Minute solange dort niemand draufsitzt.
Zitieren
#6
Danke auch Gubbly,...

 Aber Temporer ist keine Alternative. Sollte mindestens 12 Stunden gespawnt bleiben ^^

 Mfg,.. Miss Undercover
Besuche auch Du

[Bild: sb7wg8rc.png]

Temet Nosce ( Erkenne Dich selbst )
Wer sich selber kennt, der hat auch die Antworten auf seinen Sinn des Lebens ;)
Zitieren
#7
Hm, spontan würden mir zwei Varianten einfallen:
Variante 1: mit einem Timer, nach Ablauf (zB nach 12 Stunden) dann llDie(); ausführen lassen - dumm, wenn die Party länger dauert .... Wink
Variante 2: über ein Listen Event welches dann auf einen Befehl hört / wartet um dann llDie(); auszuführen ... quasi einmal den roten Knopf drücken und dann löschen sich alle Party Utensilien
if i could smile i would.
Zitieren
#8
Variante 3 : Ein llSensor, der alle halbe Stunde mal schaut ob noch Gäste anwesend sind ...
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Zitieren
#9
ähhhh,.. sind schöne Ansätze und bestimmt gute Ideen wenn ich denn was davon verstehen würde ^^

 Hat vielleicht einer von Euch so ein script um die genannten Objekte selbständig zu entfernen
 sofern keine User mehr online sind ?

 mfg,.. Miss Undercover
Besuche auch Du

[Bild: sb7wg8rc.png]

Temet Nosce ( Erkenne Dich selbst )
Wer sich selber kennt, der hat auch die Antworten auf seinen Sinn des Lebens ;)
Zitieren
#10
llSensor ist 'ne elegante Lösung

Puh, auf die Schnelle dieser Vorschlag:

Zwei Scripte, eins in einen "Überwacher" Prim, das zweite jeweils in alle Objekte, die gelöscht werden sollen. VORSICHT, SIE WERDEN GELÖSCHT!!!
Sollte soweit hinhauen, hier nur kurz zusammengeschrieben ohne es inworld zu kompilieren, Benutzung auf eigene Gefahr!
Die Zeilen mit Say & krachBumm sind 'ne Marotte von mir, können natürlich weggelassen werden.
Code:
// Start Script Eins, der Überwacher:
float zeit = 1800.0;         // Zeit in Sekunden in der ein Scan wiederholt wird
float reichweite = 96.0;   // Radius um den Prim zum Scannen in Metern
integer kanal = 69;         // Kanal für den Aufräumbefehl
integer schalter=0;

default{
    state_entry(){
        llSay(0, "krachBumm");
        llSetText("aus", <1,0,0>, 1);}
        
    touch(integer patsch){
        if(schalter==0){
            schalter=1;
            llSetText("an", <0,1,0>, 1);
            llSensorRepeat("", NULL_KEY, AGENT, reichweite, PI, zeit);}
        else if(schalter==1){
            schalter=0;
            llSetText("aus", <1,0,0>, 1);
            llSensorRemove();}}
    
    no_sensor(){
        llRegionSay(kanal, "partyaus");}}


// wer das script findet, darf's behalten
// if i could smile i would.
// hier endet das erste script


// Hier startet das Zweite Script, der Aufräumer:
integer kanal = 69;       // Kanal für den Aufräumbefehl

default{
    state_entry(){
        llSay(0, "krachBumm");
        llListen(kanal, "", "", "");}

   listen(integer ch, string name, key who, string msg){
       if(msg=="partyaus"){
           llDie();}}}


// benutzung auf eigene gefahr!
// if i could smile i would.
// ende vom zweiten script

//edit: Hab mal das SCript in ein codeblock gesetzt ;D :: Bogus
// Nachtrag: DANKE Bogus Smile
if i could smile i would.
[-] The following 2 users say Thank You to GamaTotchi Yoshikawa for this post:
  • Anachron, Bogus Curry
Zitieren


Gehe zu:


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