CasperVend 2/API/DE

From CasperTech Wiki
Revision as of 12:45, 27 February 2017 by D1cd5b71-6209-4595-9bf0-771bf689ce00 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Diese deutsche Übersetzung stammt vom 26 September, 2014. Die englische version ist seitdem möglicherweise aktualisiert worden. Sollte etwas in der deutschen Übersetzung nicht enthalten sein, überprüfen Sie bitte die englische version. Beachten Sie bitte außerdem, dass wir keine technische unterstützung in deutscher Sprache anbieten können.

Einführung

Seit dem 12. Juni 2012 hat CasperVend eine "read-only" API, damit Ersteller von Inhalten mit Scripting-Kenntnissen Plugins für unsere Verkaufs-Displays schreiben können.

Nachrichten

API- Nachrichten werden als Link-Nachricht verschickt. Sie werden zu folgenden Ereignissen gesendet:

  1. Während der Aktualisierung - Verkaufs-Display hat weiter geblättert, wurde gerezzed, zurückgesetzt oder die Region hat neu gestartet
  2. Rabatt-Benachrichtigung - Wenn sich Rabatte geändert haben oder sich das Verkaufs-Display anmeldet
  3. Transaktion abgeschlossen - Wenn ein Produkt erfolgreich über das Display verkauft wurde

Während der Aktualisierung


Dieses Ereignis tritt ein wenn das Verkaufs-Display weiter geblättert hat, gerezzed wurde, zurückgesetzt wurde oder die Region neu gestartet hat. Es stellt Informationen zum derzeit dargestellten Produkt zur Verfügung.

Im betroffenen Verkaufs-Display wird folgende Link-Nachricht geschickt:

llMessageLinked(LINK_SET, PRODUCT_PRICE, PRODUCT_NAME, PRODUCT_TEXTURE_KEY);

Bitte beachten Sie, dass die Symbole ":", "@" und "|" aus dem Produktnamen entfernt werden.

Rabatt-Benachrichtigung


Dieses Ereignis tritt ein, wenn sich Rabatte für das Verkaufs-Display geändert haben, und außerdem wenn sich das Display anmeldet.

Im betroffenen Verkaufs-Display wird folgende Link-Nachricht geschickt:

llMessageLinked(LINK_SET, -20, (string)GENERAL_DISCOUNT+","+(string)GROUP_DISCOUNT, (string)PRICE_OVERRIDE);

Wenn die Preis-Überbrückung (Price Override) auf -1 steht, ist sie ausgeschaltet. GENERAL_DISCOUNT und GROUP_DISCOUNT sind Prozentwerte.

Transaktion abgeschlossen


Dieses Ereignis tritt ein wenn eine Transaktion erfolgreich abgeschlossen und die Waren ausgeliefert wurden. Es stellt Informationen über die Transaktion dar.

Die folgende Nachricht wird SOWOHL an das betroffene Verkaufs-Display als auch die zur Lieferung benutzte DropBox gesendet

llMessageLinked(LINK_SET, -10, TRANSACTION_ID + ":" + PURCHASER_KEY + ":" + PURCHASER_NAME + ":" + RECIPIENT_NAME + ":" + AMOUNT_PAID + ":" + GIFT_CARD_USED + ":" + MODE + ":" + PRODUCT_ID + ":" + ITEM_NAME, RECIPIENT_KEY);

Felder

  1. TRANSACTION_ID - Ihre CasperVend transactionID. Sie dient der eindeutigen Identifikation dieser Transaktion.
  2. PURCHASER_KEY - Der Schlüssel (UUID) des Avatars, der das Produkt gekauft hat - "NICHT DES EMPFÄNGERS".
  3. PURCHASER_NAME - Der Avatarname (nicht Anzeigename oder Benutzername) des Avatars, der das Produkt gekauft hat.
  4. RECIPIENT_NAME - Der Avatarname (nicht Anzeigename oder Benutzername) des Empfängers dieser Lieferung.
  5. AMOUNT_PAID - Der bezahlte Betrag in Linden Dollars.
  6. GIFT_CARD_USED - Steht auf 1 falls eine Geschenkkarte für die Transaktion benutzt wurde und auf 0 falls nicht.
  7. MODE - "norm" für eine normale Transaktion. "lucky" für einen Lucky Chair-Gewinn. "midni" für einen Midnight Madness-Gewinn.
  8. PRODUCT_ID - Die CasperVend Product ID des Produkts. Sie sollten diese statt des Item-Namens benutzen, da sich der Name ändern kann - die Product ID hingegen nicht.
  9. ITEM_NAME - Der Inventar-Name des ausgelieferten Items.
  10. RECIPIENT_KEY - Der Schlüssel (UUID) des Avatars, der das Produkt erhalten hat.

Beispielscript

Stecken Sie dieses Script in Ihre DropBoxen um eine nette IM zu erhalten, wann immer etwas verkauft wurde. Ziemlich redundant da DropBoxen diese Nachricht ohnehin schon verschicken, aber ein gutes Beispiel ist es trotzdem.

    default
    {
        link_message(integer source, integer num, string str, key id)
        {
            if (num==-10)
            {
                 list tmp = llParseStringKeepNulls(str,[":"],[]); 
             
                 string TransactionID = llList2String(tmp,0);
                 key PurchaserKey = llList2Key(tmp,1);
                 string PurchaserName = llList2String(tmp,2);
                 string RecipientName = llList2String(tmp,3);
                 integer amountPaid = llList2Integer(tmp,4);
                 integer giftCardUsed = llList2Integer(tmp,5);
                 string mode = llList2String(tmp,6);
                 integer productID = llList2Integer(tmp,7);
                 string itemName = llList2String(tmp,8);
                 key RecipientKey = id;
             
                 string sendText = "Hallo! "+PurchaserName+" hat grade '"+itemName+"' von Ihnen gekauft";
                 if (giftCardUsed==1)
                 {
                    sendText+=" (im Wert von L$"+(string)amountPaid+"), mit einer Geschenkkarte";
                 }
                 else
                 {
                    sendText+=" im Wert von L$"+(string)amountPaid;
                 }
                 if (RecipientKey!=PurchaserKey)
                 {
                    sendText+=", als Geschenk für "+RecipientName; 
                 }
                 if (mode=="lucky")
                 {
                    sendText="Hallo! "+PurchaserName+" hat grade "+itemName+" von Ihrem Lucky Chair gewonnen";            
                 }
                 sendText+="! Sie können alle Transaktionsdetails hier nachlesen: https://status.casperdns.com/?transaction="+TransactionID+"&t="+(string)llGetUnixTime();
             
                 llInstantMessage(llGetOwner(),sendText);
            }
        }
    }