Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Der wolf hatte Langeweile
#1
Big Grin 
Hallo in die Runde,

der Wolf hatte Langeweile und wurde von Ralf Michael aus dem RM Grid zu folgendem Script inspriert

Code:
//Script ist mit diesem Copyright Hinweis frei kopierbar. Änderungen bitte an dark.wolf @virual-life.eu:8002 senden
//(c) by Dark Wolf @virtual-life.eu


key target="de0953e6-988f-4477-95b4-006a5fd81938"; // UUID eines Posestand oder Prims auf den der NPC gesetzt wird
integer price=100; //Kosten für das Outfit


// Ab hier nichts mehr ändern


list keys = [];
key npc;
string toucher;
key toucherkey;
vector toucherPos;
integer npc_on = FALSE;
integer channelDialog;
string message = "\nPlease make a choice.";
list options;
integer listenId;
default
{
       touch_start(integer x)
        {  
            toucherkey = llDetectedKey(0);
            if (llGetOwner() == toucherkey)
                {
                    options = ["-", "DEMO", "BUY", "DEREZ", "SAVE OUTFIT"];
                }

            if (llGetOwner() != toucherkey)
                {
                    options = ["-", "DEMO", "BUY", "DEREZ"] ;
                }

        channelDialog = -1 - (integer)("0x" + llGetSubString( (string)llGetKey(), -7, -1) );
        llDialog(toucherkey, message, options, channelDialog);
        listenId = llListen(channelDialog, "", toucherkey, "");
    }  
   
   
        sensor(integer num)
            {  
                keys = [];
                integer i = 0;
                for(i; i < num; i++)
                    {  
                        keys += llDetectedKey(i);
                    }  
                }  
 
    no_sensor()
    {  
        keys = [];  
    }    
   

     listen(integer channel, string name, key toucherkey, string message)
        {
            toucherPos = llDetectedPos(0);
            vector npcPos = llGetPos() + <1,1,1>;
       
       if(message=="DEMO" && npc_on==FALSE)
        {   
            npc = osNpcCreate("Fred", "Flintstone", npcPos, "modell",OS_NPC_OBJECT_GROUP);
            osNpcSit( npc, target,0);
            npc_on = TRUE;
            llSensor("", "", AGENT | NPC, 96.0, PI);
            return;
        }  

        if(message=="DEREZ")
        {  
            osNpcRemove(npc);
            npc_on= FALSE;
        }

        if (message=="SAVE OUTFIT") {
            osOwnerSaveAppearance("modell");
        }
       
        if (message=="BUY")
        {
            llSetClickAction(CLICK_ACTION_BUY);
             llSetPayPrice(PAY_DEFAULT, [price, PAY_HIDE, PAY_HIDE, PAY_HIDE]);
         }
    }
   
     money(key id, integer amount)
        {
            if (amount==price)
            {
                llInstantMessage(toucherkey,llKey2Name(toucherkey)+", danke für Deinen Einkauf. Eine Auslieferung Deines Artikels findet bald statt. Bis dahin nicht die SIM verlassen");  
                llGiveInventory(toucherkey, llGetInventoryName(INVENTORY_OBJECT, 0) );
                llSetClickAction(CLICK_ACTION_TOUCH);
            }

            if (amount !=price)
            {
                llGiveMoney(toucherkey, amount);
                llInstantMessage(toucherkey,llKey2Name(toucherkey)+", der von Dir gezahlte Betrag is nicht korrekt und wurde Dir zurück erstattet. Führe den Kaufvorgang erneut durch!");  
                llSetClickAction(CLICK_ACTION_TOUCH);
            }

    }
}

Das Script wandelt einen normalen Prim in einen "Vendor" um.
Nach dem das Script eingefügt ist und man auf den Prim klickt, hatt man folgende Optionen:


DEMO
Hier wird ein NPC gerezzt und auf einen Postand gestellt (nicht inbegriffen, dieser muss von Euch gerezzt werden)

DEREZ
Der NPC wird entfernt

BUY
Hiermit wird der Kaufprozess eingeleitet Nach klicken der Option ist der Vendor / Würfel bezahlbar und kennt bereits den geforderten Preis. Wenn der Käufer den geforderten Betrag bezahlt hat, wird das Outfit ausgeliefert.

SAVE OUTFIT
Diese Option steht nur dem Verkäufer zur Verfügung. Nach klicken auf diese Option wird eine Apperance von Eurem aktuellen Avatar erstellt und als Notecarte in dem Vendor /Würfel gespeichert.

Vorgehensweise
Prim rezzen
Script in den Prim einfügen
im Script folgende Variablen angleichen
Code:
key target="de0953e6-988f-4477-95b4-006a5fd81938";

In die Gänsefüßchen muss die UUID des Objekts hinein, auf die der Avatar gesetzt werden soll

Code:
integer price=100;

Die 100 bitte durch den Preis ersetzen, für den ihr das Outfit verkaufen wollt. ACHTUNG! hier muss mindestens 1 stehen.

Script speichern
Würfel anklicken
Save Outfit klicken
Das Outfit in einen Prim stopfen und in den Vendor legen
fertig


Das Script funktioniert auf meinen Regionen. Ich übernehme keinerlei Haftung für die Funktion oder ggf. Schäden und Verluste!
Zur Beachtung: In der Standart Konfiguration der OpenSim können nur Estater und SIM Eigentümer NPCs rezzen. Bei entsprechenden Fehlermeldungen wendet Euch bitte an Euren Sim oder Grid Betreiber .

Dark Wolf
---------

Virtual Life
Die 3D Welt im Netz



Zitat Josch Wolf:

"Ist das Kunst oder kann es weg?"
[-] The following 5 users say Thank You to DarkWolf for this post:
  • Achim (10-28-2020), Dina (10-28-2020), JoschWolf (10-28-2020), Leora Jacobus (11-03-2020), Ralf-Michael (10-28-2020)
Antworten


Gehe zu:


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