Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Script: Objekt rezzen auf Befehl
#1
Hallo!
Ich möchte eine Kiste bauen, die auf einen gesprochenen Befehl hin jeweils ein Objekt herausgibt.
Das Objekt sollte anhand seines konkreten Namens im Script gerezzt werden.

1. Beispiel:

Befehl: "hamburger"
--> Die Kiste rezzt ein Objekt mit Namen "hamburger", das in ihrem Inventar vorliegt.

Dies sollte jedoch mit mehreren Befehlen funktionieren.
Beispiel:

Befehl: "hamburger!"
oder: "Hamburger." usw.

----------------------------------------------------------------------------------------------------------
Außerdem sollte mit einem anderen Befehl ein anderes Objekt gerezzt werden.

2. Beispiel:

Befehl: "cheeseburger"
--> Die Kiste rezzt ein Objekt mit Namen "cheeseburger", das ebenfalls in ihrem Inventar vorliegt.

Dies sollte ebenfalls mit verschiedenen Befehlen möglich sein.
Beispiel:
Befehl: "Cheeseburger!" usw.

--------------------------------------------------------------------------------------------------

Ich habe die üblichen Rezz-auf-Befehl-Scripts verwendet.
Unten habe ich ein solches Script eingefügt.

Es gibt jedoch folgende Probleme:

1. Das zu rezzende Objekt muss im Inventar "INVENTORY_OBJECT" heißen,
damit es gerezzt wird.
Hat es einen anderen Namen, z. B. "hamburger", wird es nicht gerezzt.

2. Es kann nur ein Objekt gerezzt werden.
Wenn man ein Script für ein zweites Objekt im Inventar hinzufügt,
z. B. für das Objekt "cheeseburger", funktioniert dieses Script nicht.
Nur das erste Script funktioniert.

3. Es gelingt mir ebenfalls nicht,
ein Objekt mit verschiedenen Befehlen zu rezzen.
Beispiel:
Befehl "hamburger" funktioniert.

Wenn ich ein zweites solches Script mit dem
Befehl "Hamburger!" zu der Kiste hinzufüge, funktioniert dieses zweite Script nicht.
----------------------------------------------------------------------------------------------------------

Beispiel-Rezz-Object-Script:
(Dieses Script funktioniert für ein Objekt, wenn das Objekt in der Kiste "INVENTORY_OBJECT" genannt ist: )
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

// 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 == "hamburger") {

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

        }
    }

}

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

Hat jemand vielleicht eine Idee?
Vielen Dank! Rolleyes
[-] The following 1 user says Thank You to georgm76 for this post:
  • ICE BIRDY
Zitieren
#2
also da hast du eine ganze Menge falsch verstanden ...
1.) INVENTORY_OBJECT ist eine Konstante und hat den Wert 6
(siehe hier : http://wiki.secondlife.com/wiki/INVENTORY_OBJECT)
2.) llGetInventoryName(INVENTORY_OBJECT,0) gibt den Namen des (alphabetisch) ersten Objekts zurück.
(siehe hier : http://wiki.secondlife.com/wiki/LlGetInventoryName)
- wenn es also einen "hamburger" und einen "cheeseburger" gibt, gibt das script einen "cheeseburger" aus

soweit das ... und dann ist da noch:

        llListen(0,"", NULL_KEY, "");

KANN man machen, ist aber keine gute Idee!
Zur Erklärung: http://wiki.secondlife.com/wiki/LlListen
 
Zitat:Avoid channel zero (PUBLIC_CHANNEL) and set name or id where possible to avoid lag. llListen(0, "", NULL_KEY,"") can be laggy as it listens to all chat from everyone in chat range and so should be avoided.
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
[-] The following 3 users say Thank You to Anachron for this post:
  • Dorena Verne, georgm76, ICE BIRDY
Zitieren
#3
So, ich habe es jetzt hinbekommen, ungefähr.

Auf den Befehl "cheeseburger" bzw. "hamburger" hin gibt die Kiste einen Cheeseburger (INVENTORY_OBJECT,0)
oder Hamburger (INVENTORY_OBJECT,1)

heraus und sagt noch einen Satz im Chat und auch als Sound ("Bitte sehr.")


Falls es jemanden interessiert, unten folgt das Script.

Wer noch Anmerkungen / Verbesserungsvorschläge hat, darf sie gerne nennen.

Vielen Dank noch einmal! Smile

----------------------------------------------------------------------------------------------------------
Code:
    default
{

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

    listen(integer channel, string name, key id, string message) {

   
if (message == "cheeseburger"){
            llRezObject(llGetInventoryName(INVENTORY_OBJECT,0), llGetPos()+<0,1,0>,ZERO_VECTOR,ZERO_ROTATION,0);
            llSay(0,"Bitte sehr.");
            llPlaySound(("bitte_sehr"),1);
        }    

if (message == "hamburger"){
            llRezObject(llGetInventoryName(INVENTORY_OBJECT,1), llGetPos()+<0,1,0>,ZERO_VECTOR,ZERO_ROTATION,0);
            llSay(0,"Bitte sehr.");
            llPlaySound(("bitte_sehr"),1);
        }


    }

}
[-] The following 3 users say Thank You to georgm76 for this post:
  • Anachron, Bogus Curry, Wollex Baily2
Zitieren
#4
So habs mal in einen Code zu besseren Lesbarkeit eingefügt ;D
Tschöö

Bogus | PinguinsReisen.de
[-] The following 1 user says Thank You to Bogus Curry for this post:
  • Anachron
Zitieren
#5
Das script hier ist auch intressant:
https://www.outworldz.com/cgi/freescripts.plx?ID=160

oder einfach alle herunterladen:
https://github.com/Outworldz/LSL-Scripts
[Bild: attachment.php?aid=2586]


Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  HG Teleporting Script funktioniert nicht mehr Pharcide 9 364 27.08.2017, 19:48
Letzter Beitrag: Pharcide
  [Suche] Script zur Objektsuche auf einer Region Bogus Curry 8 356 02.08.2017, 04:11
Letzter Beitrag: Bogus Curry
  Script für Gruppeneinladung Pharcide 4 212 17.07.2017, 19:19
Letzter Beitrag: Pharcide
  Suche simübergreifendes Boat Script Pharcide 4 328 10.07.2017, 14:18
Letzter Beitrag: Ezry Aldrin
  Wie kann ich eine Objekt Nachricht von Sim1 zu Sim2 schicken ? Kai Baer 16 1.894 26.03.2017, 22:31
Letzter Beitrag: Bogus Curry

Gehe zu:


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