Bienvenue à l'Ecole SL

"Découvrir, Faire, Créer..."

Accueil
Calendrier
Les Cours et Tutos
L'Equipe
Liste des matières
Forum
Contactez-nous
Liens utiles
SL et l'Argent
(Lancelot Joubert ~ Lundi 21 juillet 2008)
 
 
Vendor de Base
 
Quel script nous faut-il pour faire un vendor? La réponse est simple : aucun!
Dans l'onglet général cochez la case "A vendre", et vous pouvez soit vendre l’objet en lui-même ou son contenu. Mais en l’occurrence aucun script n’a été nécessaire. Dans la liste déroulante on choisi "acheter" pour que ce soit l’action par défaut.
 

 
 
 
 
 
Tip Jar de base

La tip jar a un fonctionnement légèrement différent car on choisit dans la liste déroulante, "payer" et pas "acheter". Mais cette fois, un script est nécessaire pour faire apparaître dans les options de l’objet « payer ».D’ailleurs ce fait est mentionné lors de la sélection de l’action du click.
 
 
 
 
 
 
default
{
     // événement déclenché lors du paiement
    
money(key giver, integer amount)
     {

     }
}
 
(Script de Tip Jar)
 
 
Nous rencontrons ici l’événement money pour la première fois, c’est cet événement qui permet de gérer l’argent. En effet celui-ci se déclenche juste après que l’argent ait été donné. De plus cet événement nous fournit deux informations importantes qui est la personne qui paye et ce qu’elle a payé.
Pour notre cas, nous n’avons pas besoin de tout ça, juste que l’on puisse payer l’objet, donc, il nous faut l’événement sans faire aucun traitement dedans.
 
 
 

Prix prédéterminé

Vous avez deja vu à plusieurs reprises vu cette petite fenêtre bleue qui permet de payer. Elle est crée par la fonction llSetPayPrice
Elle prend deux paramètres en premier le prix variable que l’on peut saisir dans la case en bas droite (cf image 2 et script 2) puis une liste de valeur entre crochet séparé par des virgules. Chacune de ces valeurs représentent la somme indiqué sur chacun des boutons.
Si l’on veut masquer un bouton, on met PAY_HIDE comme valeur.
 
 

 

default
{
     state_entry()
     {

          llSetPayPrice(PAY_HIDE,[1,2,3,PAY_HIDE]);

     }
     // événement déclenché lors du paiement
     money(key giver, integer amount)
     {

     }
}

 


    

 

 

default
{
     state_entry()
     {

          llSetPayPrice(PAY_HIDE,[PAY_HIDE,PAY_HIDE,3,4]);
     }
     // événement déclenché lors du paiement
     money(key giver, integer amount)
     {

     }
}

 


 
 
 
    
 
Vendor en script

Dans ce vendor ci, nous allons payer l’objet comme dans le cas de la tip jar, mais nous allons nous occuper nous même de donner l’objet vendu. Lorsque l’événement money se produit, on est sûr que la personne a payé, alors grâce à llGiveInventory on donne l’objet en question de l’inventaire. Cette fonction prend deux paramètres : le destinataire et le nom de l’objet se trouvant dans l’inventaire.
 
 

 

default
{
     state_entry()
     {
          // laisse un prix obligatoire à 10
         llSetPayPrice(PAY_HIDE,[10,PAY_HIDE,PAY_HIDE,PAY_HIDE]);
     }
     money(key giver, integer amount)
     {

          //donne l'objet à la personne venant de payer
          llGiveInventory(giver,"mon objet");
     }
}

 (vendor en script)
 
 
 
 
Tip jar partagée

La notion de partage fait entrer immédiatement la notion de permission. En effet quand on partage de l’argent, on encaisse l’intégralité et on en reverse une partie et c’est là où le bas blesse. En effet, c’est le script qui va donner votre argent, et pour prévenir à tout script malicieux, on vous prévient et on vous demande la permission.
C’est ce que fait llRequestPermissions : il ouvre une fenêtre orange et vous demande votre accord pour des débits.
Lorsque vous répondez à cette fenêtre, l’événement run_time_permissions se déclenche, vous permettant ainsi de tester si l’on a répondu oui ou non, mais cette étape n’est pas nécessaire car c’est votre script et vous direz toujours oui.
 
 

 

default
{
     state_entry()
     {     
          llSetPayPrice(PAY_HIDE,[10,20,30,40]);
          llRequestPermissions(llGetOwner(),PERMISSION_DEBIT);
     }
     run_time_permissions(integer permissions)

     {
          //test si la permission de débit
          //fait bien parti des permissions autorisées
          if(PERMISSION_DEBIT&permissions)
               llSay(0,"mon script va marcher");
          else
               llSay(0,"mon script va planter");
     }
     money(key giver, integer amount)
          key AvKey="le UUID du destinataire";
          // je donne la moitié de ce que j'ai touché
          llGiveMoney(AvKey,(integer)amount/2)
     }
} 

(Tip Jar partagée)
 
llGiveMoney permet de faire le partage. En effet, pour partager il faut reverser une partie car vous encaissez l’intégralité de l’argent. La fonction prend deux paramètres : le destinataire sous forme de sa clef UUID et le montant à verser. Dans notre cas, nous prenons le montant et nous en reversons la moitié.
Attention cette fonctionne nécessite une autorisation de débit.