1. Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
    Information ausblenden
  2. Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
    Information ausblenden
  3. Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.
    Information ausblenden

Verbesserung für TipJar von SLinfo gesucht

Dieses Thema im Forum "Suche Item/Objekt/Script ..." wurde erstellt von Uli Jansma, 4. Januar 2009.

  1. Uli Jansma

    Uli Jansma Inworld Koordinator Mitarbeiter

    Beiträge:
    8.236
    Zustimmungen:
    3.238
    Punkte für Erfolge:
    154
    Hallo zusammen :)

    Ich suche für SLinfo eine TipJar System. Worum geht es: Wir haben für SLinfo zurzeit mehrere TipJar’s in SL stehen. Sie zeigen die Gesamtsumme der Spenden, die bisherigen Spenden in diesem Monat und den letzten Spender mit seiner Spende an.

    Allerdings kommunizieren die TipJar’s untereinander nicht. Daher stimmt die Gesamtsumme nie. Und es wäre logisch, wenn bei einer Spende, alle anderen TipJar’s sich automatisch updaten und bei allen die gleiche Information steht.

    Wer wäre in der Lage, dies für uns zu programmieren?

    LG,
    Uli
     
  2. Albrecht Boucher

    Albrecht Boucher Aktiver Nutzer

    Beiträge:
    180
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    also in der lage bin ich nicht das zu machen aber ich hätte eine idee wie man sowas machen könnte (ob es klappt und überhaupt geht (Keine ahung))

    Man könnte doch das über eine mySQL laufen lassen, sprich wenn jemand ein Tip abgibt schreib das Script in eine Datenbank (natürlich über eine PHP weil das geht ja nicht sofort) einmal wie viel der gespendet hat, dann einmal den namen und dann noch wie viel insgesamt gespendet wurden.

    Wenn jetzt z.b. jemand an tipjar 2 was zahlt geht das selbe wieder los.
    Speichert und überschreibt in der Datenbank einmal den neuen Tipbetrag, den Namen und die NEUE Gesamtspende.

    Und man müsste noch in das script was reinschreiben das es die daten hohlt aus der datenbank alle 30 sekunden. damit man halbwechs up-to-date ist!


    Soooo jetzt gebe ich aber weiter an die, die wirklich Scripten können!
    Das soll nur eine Idee sein wie man es machen könnte.

    Liebe Grüße Aldi!

    p.s. mich würde so was auch interessieren!
     
  3. Noctua Janus

    Noctua Janus Superstar

    Beiträge:
    1.577
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wenn es nicht zu viele Objekte sind würde ich die Datenbank Idee lieber sein lassen (wegen der ständig nötigen Nachfragen) und lieber den TipJar wenn er aufgestellt wird einmal bei einem zentralen Serverobjekt registrieren, dieses Objekt bekommt dann von jedem Jar gemeldet wenn eine neue Spende da ist und meldet den neuen Stand an alle anderen Jars.
    So erfolgt die Kommunikation dann immer nur wenn auch wirklich was los ist.
     
  4. Albrecht Boucher

    Albrecht Boucher Aktiver Nutzer

    Beiträge:
    180
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    OK! Oder so!
    Daran hab ich gar nicht gedacht! Naja! wenn man sowas noch NIE gemacht hat und auch nicht mal die Idee hat wie man so ein script schreibt dann kommt man(n) nicht drauf! :p :lol:
     
  5. Criz Collins

    Criz Collins Nutzer

    Beiträge:
    95
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Nun, gebaut ist sowas recht schnell... ich könnte da mal was basteln, wenn die Nutzung des Systems nicht nur slinfo vorbehalten bleiben soll.
     
  6. Uli Jansma

    Uli Jansma Inworld Koordinator Mitarbeiter

    Beiträge:
    8.236
    Zustimmungen:
    3.238
    Punkte für Erfolge:
    154
    Nein, Criz, soll es nicht. Allerdings brauche ich es Full-Perm, da wir für das Updaten der Slinfo Startseite etwas hinzufügen müssen. Und dies ist nur für SLinfo gedacht, logischerweise ...

    LG,
    Uli
     
  7. Noctua Janus

    Noctua Janus Superstar

    Beiträge:
    1.577
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Vorschlag - da ich mal denke, das Criz wenig Lust hat das Script Full-Perm weiterzugeben - nutzt ein zweites Script (welches dann den Update-code enthält) und laßt beide Scripte miteinander kommunizieren. Wenn sie im selben Prim liegen reicht ja eine Priminterne Kommunikation mit verabredeten Parametern ;)
     
  8. Criz Collins

    Criz Collins Nutzer

    Beiträge:
    95
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wieso sollte ich dazu keine Lust haben? ^^
    Nur weil ich mit CCtech und meinen Scripten in SL gutes Geld verdiene heisst das nicht, das ich auch solch ein geldgeiler Verkäufer bin... hehe... ;)

    Nein, natürlich mache ich das für Euch Fullperm. Und gebe es dann als Freebie weiter.
     
  9. Archon Short

    Archon Short Forumsgott/göttin

    Beiträge:
    5.307
    Zustimmungen:
    822
    Punkte für Erfolge:
    124
    Wenn es das fertige Script gibt, wäre ich über eine Version davon echt dankbar, da ich an einer ähnlichen Aufgabe verzweifelt bin und mit Hilfedieser Lösung dann bei der Lösung meines Problems ein gutes Stück weiter wäre.

    Danke schon einmal,denn auch ich weis wie viel Zeit und Mühe in einem Script stecken können.

    Greetz Archon
     
  10. Uli Jansma

    Uli Jansma Inworld Koordinator Mitarbeiter

    Beiträge:
    8.236
    Zustimmungen:
    3.238
    Punkte für Erfolge:
    154
    Hier ist das jetzige TipJar Script:

    Code:
    //Hannibal Hudson
    //TipJar fuer SLinfo.de
    
    //Frei zuer Verwendung fuer alle und jeden. :-)
    //Wenn der TipJar nicht von Swapps Swenson eingesetzt wird, auf jeden Fall sorgfaeltig die
    //Hinweise auf slinfo.de entfernen!!
    
    //Anzeige der bisher gespendeten L$
    //Anzeige der im aktuellen Monat gespendeten L$
    //Anzeige der letzten Spende
    
    //Das Script speichert die Gespendeten Betraege in der Objektbeschreibung, so das die Werte
    //nur verloren gehen, wenn die Objektbeschreibung geloescht wird.
    
    integer TagDesMonats()  //Tag des Monats ermitteln
    {
        list Zeit = llParseString2List(llGetTimestamp(), ["-", "T"], []);
        return (integer)llList2Float(Zeit, 2);
    }
    
    integer GesamtGespendet;
    integer MonatGespendet;
    integer LetzteSpende;
    
    string Name;
    
    Hovertext()  //Hovertext aktualisieren
    {
        string Text1 = "SLinfo.de TipJar\nBisher gespendet: ";
        string Text2 = "\ndiesen Monat gespendet: ";
        string Text3 = "\nletzte Spende: ";
        string Text4 = " von: ";
        string Text5 = "\nKlick fuer Info";
    
        llSetText(Text1 + (string)GesamtGespendet + " L$" +
            Text2 + (string)MonatGespendet + " L$" +
            Text3 + (string)LetzteSpende + " L$" +
            Text4 + Name +
            Text5,
            <1,1,1>, 1);
    }
    
    integer Tageswechsel = FALSE;
    
    default
    {
        on_rez(integer start_param)
        {
            llResetScript(); // Nach dem rezzen Script resetten
        }
    
        state_entry()
        {
            llSetTimerEvent(10.0);    //einmal pro Tag pruefen ob ein neuer Monat angefangen hat
            llSetPayPrice(PAY_DEFAULT, [1,10,100,200]);   //FastPay Werte einstellen individuelle Eingabe ermoeglichen
            list Beschreibung = llCSV2List(llGetObjectDesc());   //Objektbeschreibung auslesen
            GesamtGespendet = llList2Integer(Beschreibung,0);   //Gesamtspende aus Objektbeschreibung uebernehmen
            MonatGespendet = llList2Integer(Beschreibung,1);   //Monatsspende aus Objektbeschreibung uebernehmen
            LetzteSpende = llList2Integer(Beschreibung,2);      //Letzte Spende aus Objektbeschreibung uebernehmen
            Hovertext();                  //Hovertext aktualisieren
        }
    
        timer()
        {
            if(TagDesMonats() <= 1 && Tageswechsel == FALSE) // Ist heute der erste des Monats?
            {
                MonatGespendet = 0;   // wenn ja, MonatGespendet auf 0 zuruecksetzen.
                llSetObjectDesc(llList2CSV([GesamtGespendet, MonatGespendet, LetzteSpende])); //Objektbeschreibung aktualisieren
                Hovertext();                  //Hovertext aktualisieren
                Tageswechsel = TRUE;
            }
            else if(TagDesMonats() > 1 && Tageswechsel == TRUE)
            {
                Tageswechsel == FALSE;
            }
            llSetTimerEvent(60.0 * 60.0);    //einmal pro Stunde pruefen ob ein neuer Monat angefangen hat
        }
    
        touch_start(integer total_number)   //Eine kleine Info fuer anklicker
        {
            llSay(0, "Spenden-TipJar fuer den Betrieb der Community Webseite www.SLinfo.de");
            llSay(0, "sowie Unterstützung des Social Networks und der Projektgruppen");
            llSay(0, "Deine Spende erscheint namentlich auf der Startseite von SLinfo.de");
        }
    
        money(key giver, integer amount)
        {
            Name = llKey2Name(giver);   //Namen des Spenders fuer individualisierten Dank ermitteln
            GesamtGespendet += amount;         //Spende zum Gesamtbetrag hinzurechnen.
            MonatGespendet += amount;         //Spende zum Monatsspendenbetrag hinzurechnen.
            LetzteSpende = amount;            //Spende als Letzte Spende uebernehmen.
            llSay(0, "Vielen Dank fuer deine Spende " + Name + ".");   //Dank Nachricht an Spender
            llHTTPRequest("hier steht ein link", [HTTP_METHOD, "POST"], "tipjar=" + (string)amount + "&ownerid=" + (string)giver);
            //llOwnerSay("Startseite aktualisiert!");
            llSetObjectDesc(llList2CSV([GesamtGespendet, MonatGespendet, LetzteSpende])); //Objektbeschreibung aktualisieren
            Hovertext();      //Hovertext aktualisieren
        }
    }
     
  11. Michelle Argus

    Michelle Argus Aktiver Nutzer

    Beiträge:
    439
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi

    Problem bei der Lösung über einem zentralen Objekt ist, dass wenn 100 Tipjars eine Email bekommen sollen mit den aktuellen Daten, dann braucht es 20000 Sekunden zum versenden der Emails. Bei der lösung mit einem Channel per llRemoteDataReply dauert es zwar nur 300 Sek, aber dafür muss regelmässig der Channel aktuallisiert werden...

    Hinzu kommt, wehe SL hat wieder einen Schluckauf und ändert die Key des zentralen Objekts, was leider mal vorkommen kann :(
     
  12. thinkangel McAlpine

    thinkangel McAlpine Aktiver Nutzer

    Beiträge:
    402
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    moin,

    für den Versand der e-mail reicht ein e-mail-Slave-Script in den Tip Jars.

    Der Server benötigt evtl. 10 e-mail Slave´s; damit kann er alle 2 sek eine e-mail versenden.

    Das der Grid Schluckauf bekommt und den Key ändert halte ich für ein geringes Risiko.
    Ich habe seit dem 26.Dez.2007 einen Update-Server am laufen und er arbeitet seitdem Fehlerfrei mit demselben Key. Ein zweiter Server auf einer anderen Sim (als Redundanz) hat seither nur 12 mal anfragen erhalten. Meist wenn Linden Updates tankt. Auch dieser hat immer noch denselben Key.

    gruss thinkangel
     
  13. Albrecht Boucher

    Albrecht Boucher Aktiver Nutzer

    Beiträge:
    180
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Und was ist, wenn man das so macht wie ein Vendor??? wär doch auch ne lösung oder nicht?
     
  14. menschling Aabye

    menschling Aabye Freund/in des Forums

    Beiträge:
    695
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    blöde frage ich möcht gerne wissen was mit den ganzen LS passiert was wir gerne an SLINFO spenden ?
     
  15. SandyLee Munro

    SandyLee Munro Superstar

    Beiträge:
    1.887
    Zustimmungen:
    2
    Punkte für Erfolge:
    38
    Da gibts nen Thread von Uli, steht alles
    drin Einnahmen und die viel mehr Ausgaben
     
  16. Kila Shan

    Kila Shan Moderatorin Mitarbeiter

    Beiträge:
    15.635
    Zustimmungen:
    1.771
    Punkte für Erfolge:
    129
  17. menschling Aabye

    menschling Aabye Freund/in des Forums

    Beiträge:
    695
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    wow sehr gute auflistung da lohnt sich ja total zu spenden oder *gg*
     
  18. Criz Collins

    Criz Collins Nutzer

    Beiträge:
    95
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Uli,

    ich habe mich jetzt mal drangesetzt an den Tipjar, bzw. das Tipjar-System. Ist eigentlich recht simpel und schnell gebaut. Allerdings würde ich es gerne mit no mod weitergeben. Die Gründe tun hier nichts zur Sache.

    Ich würde eine Art API, oder besser ausgedrückt, eine Art Schnittstelle einbauen.

    Konfigurierbar ist der Server sowieso über eine inliegende Notecard. Dort kann man dann auch eine URL angeben, an die die Tipjar-Daten per POST geschickt werden. Diese "Schnittstelle" würde alle relevanten Daten in POST-Variablen übergeben und Euer Script hier im Forum müsste nur noch die entsprechenden POST-Variablen auf eure eigenen Variablen ummappen und könnte dann mit diesen Daten umgehen, wie bisher auch (ich nehme an, ihr habt etwas ähnliches schon).
    Ganz simpel.

    Das würde das ganze relativ flexibel halten. Als Ziel-Umgebung kann sowohl PHP, as auch Python, Perl oder sonstiges benutzt werden, was POST Anfragen entgegen nehmen kann. Da dieses Forum auf PHP basiert, sollte das absolut kein Problem sein.

    Wäre toll, wenn Du mir ungefähr mitteilen würdest, welche Daten ihr von dem Tipjar haben wollt. Ich nehme an, das werden die üblichen Daten sein wie:

    - Letzter Spendenbetrag
    - Letzter Spender (Name und UUID)
    - Region und Parcel des Client-Tipjars in den gespendet wurde
    - Spenden-Betrag insgesamt

    Solche Sachen wie: Spenden des aktuellen Monats, Spenden pro Tag, etc... könnten dann von Eurem PHP-Script über eine Datenbank generiert werden. Darum sollte sich der Tipjar-Server nicht kümmern müssen.

    Ich denke ich bin morgen im Laufe des Tages damit fertig.

    Melde mich dann wieder.
     
  19. Criz Collins

    Criz Collins Nutzer

    Beiträge:
    95
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    So... habe das System soweit fertig. Und es funktioniert prächtig. ;)

    Hier mal die Doku, ich hoffe ihr könnt english. Vielleicht hat ja jemand Lust sie zu übersetzen.

    Anhand der Doku sieht man recht genau, wie das System jetzt funktioniert.

    Uli, oder wer auch immer da der Verantwortliche ist, sag mir Bescheid ob ihr das nun dann wollt, oder nicht.

    Code:
    CCtech Tipjar System (Client/Server Application)
    ===========================================
    
    Written by Criz Collins, 18.01.2009
    
    DOCUMENTATION (english)
    ==========================
    
    What does the package contain?
    You'll get a box which contains two things:
        -   CCtech Tipjar System (Server)  (modify/copy)
        -   DOCUMENTATION (you're just reading this)
    
    What is this?
    The CCtech Tipjar System is a client/server application for Second Life. First of
    all, it consists of a server, which looks like a grungy cube. The server has to 
    rezzed inworld. It then will tell you all important things you have to know.
    
    What does it do?
    You can have one Tipjar Server and hundreds of  client tipjars everywhere in 
    Second Life. The server manages the client tipjars, counts the amount of
    donations and sends all important data to a costumized URL (POST data).
    The clients can be rezzed everywhere you want or you are allowed to. Everyone
    can then pay their donations to the client tipjars. The client tipjars sends their
    data back to the server.
    
    Who needs this?
    Well, there are many people out there, which may need this. Community owner
    or admins who has inworld presentation of their communities, DJs  or big 
    companies. 
    
    Has it any limitations?
    Well, sure. Like every application or script in Second Life it highly depends
    on the actual performance of (the) Second Life (Grid/Servers). Because it sends
    mails from the server to each client and from each client back to the server, it
    sometimes takes some time, until the shown data is uptodate. So be patient
    and don't be angry if it is not fast enough.
    
    How would I use this stuff?
    Okay here we go... As I said, first of all you need to rezz the server. After you've
    rezzed the server, it will tell you that you should not take it back into your 
    inventory, when it already has some clients to manage. This would cause that
    the server loses all data.
    The second thing, that it will tell you right after rezzing is, that you have to
    click (touch) at the server to automatically rezz one client (mod/copy/trans).
    The client will then automatically ask the server for his UUID and saves it in 
    its description field. Now you have to take the client tipjar into your inventory.
    From now on, you are ready to use the system.
    Simply rezz the client everywhere you are allowed to and all the clients will
    then directly communicate with your server.
    
    What's about the configuration?
    Oh yes, this is a good question, isn't it? Well, only the server needs to be 
    configured. It holds a configuration notecard in its inventory, which is highly 
    documented. There are many options related to the shown hovertext or the
    donation prices for the pay-box. The receiver of the money has also to be
    configured there, otherwise all money goes to me. *g*
    There is also an option for the API url which has to be set to your own script
    on your own webspace. This script has to accept POST-form data.
    Well, as I said, the configuration notecard is highly commented. Take a deeper
    look at that one.
    By the way, the configuration can be changed at any time. this will not cause
    the loss of all data. Every client will be updated with the new configuration
    right after it sends own data to the server, when someone makes a donation 
    to the client.
    
    POST-data? Which POST variables will be sent and what does they mean?
    Every time a client tipjar gets paid, the client tipjar will send the data about
    the last donation to the server. When the server receives such data from a 
    client tipjar, it generates a http-post-request to your script with the following 
    variables:
    
    $_POST
    (
        [region] => The region the server is in
        [parcel] => The parcel the server is in
        [position] => the coordinates of the server within the region above
        [uuid] => the UUID or object-key of the server
        [ownerkey] =>  The UUID or avatar-key of the owner of the server
        [ownername] => The avatar-name of the owner of the server
        [numclients] => The number of client tipjars actually managed by the server
        [sum] => The complete sum of all donations
        [lastuser] => The avatar-name of the last donator
        [lastamount] => The amount of the last donation
        [csum] => The sum of all donations at this client tipjar
        [cownername] => The avatar-name of the owner of the client tipjar (yes, they are copy+trans)
        [cregion] => The region the client tipjar is in
        [cparcel] =>  The parcel the client tipjar is in
    )
    
    With this data within your script, you can generate a list of all donations from
    all client tipjars on your webpage with all relevant data about the donations.
    
    Lemme show you a very simple example for PHP:
    
    <?php
    if (!$_POST || !$_POST['uuid'] || strlen($_POST['uuid']) != 36) {
        exit;
    }
    $DATA = array();
    foreach($_POST AS $key => $val) {
        $DATA[$key] = trim(urldecode($val));
    }
    ?>
    
    This is all you need to get all POST variables into an array called $DATA.
    
    
    So... have fun with your brandnew Tipjar System!
    
     
  20. Criz Collins

    Criz Collins Nutzer

    Beiträge:
    95
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Und hier ist die config notecard, damit ihr seht, was alles eingestellt werden kann:

    Code:
    // CCtech Tipjar System (configuration file)
    // written by Criz Collins 18.01.2009
    
    //       !!!!!  ATTENTION  !!!!!!
    // Set the key of the receiver for the money here
    MONEY_TARGET_KEY=ea5efe6a-651b-46d2-b407-04e790fb7916
    
    // Set the URL to your own API script which receives the POST variables
    // See the DOCUMENTATION for the POST variables!
    API_SERVER_URL=http://www.your-server.com/tipjar-api-script.php
    
    // Set the first, upper line of the hovertext for each client tipjar
    HOVERTEXT_FIRST_LINE=Unser Tipjar
    
    // Set an optional second line for each tipjar. Can be empty
    HOVERTEXT_SECOND_LINE=Unterstuetze uns mit einer Spende!
    
    // Set an optional last, bottom line of the hovertext of each tipjar. Can be empty
    HOVERTEXT_LAST_LINE=
    
    // Set the hovertext for the "sum of all donations:"
    HOVERTEXT_SUM_ALL=Gesamt Spenden bisher:
    
    // Set the hovertext for the "sum of donations at this tipjar:"
    HOVERTEXT_SUM_CLIENT=Spenden an diesem Tipjar:
    
    // Set the hovertext for the "Last donator:"
    HOVERTEXT_LAST_PAYER=Letzter Spender:
    
    // Set the hovertext for the "Last donation:"
    HOVERTEXT_LAST_AMOUNT=Letzte Spende:
    
    // Set the color of the hovertext. Has to be a vector!
    HOVERTEXT_COLOR=<1,0,0>
    
    // Set a "Thank you" text
    THANK_TEXT=Wir danken Dir ganz herzlich fuer Deine Spende!
    
    // Set the default price which should be displayed in pay-box
    DEFAULT_PRICE=100
    
    // Set the prices which should be displayed on the buttons of the pay-box
    BUTTON_1=50
    BUTTON_2=100
    BUTTON_3=500
    BUTTON_4=1000
    
     

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden