Tip Jar Script


Buna! Stiu ca sunt multi dintre voi care sunt DJ in SL si pentru asta aveti nevoie de un tip jar. Sunt intradevar multe free sau pe bani, dar este foarte usor de construit unul. In acest post va voi arata cum sa creati propriul vostru script de Tip Jar.

Ce imi propun:
– sa afiseze deasupra obiectului un mesaj cu o anumita culoare ( va specifica suma adunata      cat si numele si suma oferita de ultima persoana care a dat tip)
– se va reseta la rezz sau la o comanda specifica
– va multumi pe local celui ce a dat banii

Intai vom creati un obiect, iar la tab-ul general la sectiunea “When left-clicked:”(jos de tot) selectati “pay object” apoi la content creati un script nou. Pentru ca trebuie sa retinem unele lucruri vom stabili niste variabile : tipper ( care retine numele ultimei persoane care a dat bani), lasttip (retine ultima suma platita), channel (canalul pe care vom asculta comanda de reset), amount (suma totala adunata) si name (numele care dorim sa apara la tip jar , ex: DJ JIJI).

In evenimentul state_entry vom initializa textul ce va fi afisat si canalul de ascultare. Pentru a initializa textul vom construi o functie in afara blocului default. Este util sa creem functii de genul acesteia pentru a evita rescrierea codului in mai multe locuri. Vom numi functia set_text(), iar codul din interior va arata asa:

 llSetText(name+"'s tip jar\nThank you for the tip!\nTiped so
            far="+(string) amount+"$L\nLast tip="+(string)
            lasttip+"$L from "+ tipper,<0,1,0>,1);

Cu ajutorul functiei llSetText putem seta un text deasupra obiectului. Cu ajutorul “+” putem lipi cuvinte in string-uri, iar cu sintagma (string) convertim celelalte variabile non-string la string. Totodata am selectat ca textul sa fie scris cu culoarea verde, dar puteti schimba dupa bunul plac (culoarea este al doilea parametru al functiei llSetText)

Pentru ca dorim ca tip jarul sa se reseteze la rezz-ing vom reinitializa cu valorile default vriabilele mentionate mai sus in evenimentul on_rez. Odata platit obiectul, acesta genereaza un eveniment numit money. In interiorul lui vom avea acces la suma platita si keya avatarului platitor. In interiorul acestui eveniment vom afisa pe local mesajul de multumire, vom aduna suma data la amount, vom salva numele platitoruli la tipper si suma data la lasttip si vom reseta textul de deasupra obiectului chemand functia creata mai sus, set_text(). Mai ramane doar sa raspundem la un mesaj de reset si pentru asta vom folosi evenimentul listen. Vom verifica daca mesajul primit este reset, daca raspunsul este afirmativ atunci vom reseta la valorile default variabilele si vom reapela functia set_text().

Tot codul sursa il aveti mai jos:


string tipper="Nobody"; //cel ce da tip
integer lasttip=0;     // ultimul tip
integer channel=11;    //canal de comunicatii
integer amount=0;      //suma totala curenta
string name="Diana";   // numele
set_text()
{
      llSetText(name+"'s tip jar\nThank you for the tip!\nTiped so far="
             +(string) amount+"$L\nLast tip="+(string)lasttip
             +"$L from "+ tipper,<0,1,0>,1);
}
default
{
         state_entry()
       {
               llListen(channel,"","","");
              set_text();
       }
       on_rez(integer n)
      {
               amount=0;
              lasttip=0;
              name="Nobody";
              set_text();
      }
      money( key id, integer plus )
     {
            amount=amount+plus;
            lasttip=plus;
            tipper=llKey2Name(id);
           //MUltumim celui ce a dat banii
           llSay(0,"Thank you very much for tip "+ llKey2Name(id)+"! KISSES!!!");
          //resetam scrisul
           set_text();
       }
       listen( integer channel, string nam, key id, string message )
       {
              if(message=="reset")
              {
                     amount=0;
                     lasttip=0;
                     name="Nobody";
                     set_text();
              }
        }
}

Ramane doar sa confectionati un tip jar pe bunul plac si sa puneti scriptul in el ( nu uitati sa setati la left-click sa fie pay object)

Cu astea fiind spuse inchei acest post. Have fun in SL!! 😀

, , ,

  1. #1 by djzuzu on May 3, 2012 - 06:40

    dar de salvat cea ce faci nu ai mentionat nicaieri..am facu tip jarul dar sa mor daca realizez cum sa il salvez..daca ma poti ajuta scrie aici si o sa citesc

  2. #2 by djzuzu on May 3, 2012 - 06:54

    slava domnului ca am vazut take a copy
    sper ca aia e ;D

Leave a comment