LlGiveMoney/fr

From Second Life Wiki
Jump to navigation Jump to search

Description

Fonction: integer llGiveMoney( key cible, integer 0)" style="border-bottom:1px dotted">montant );

Transfert le montant de L$ depuis le propriétaire du script vers l’avatar cible.

Renvoie un integer qui est toujours nul.

• key cible clé de l’avatar.
• integer montant nombre de L$, doit être supérieur à zéro (montant > 0)

Nécessite le droit PERMISSION_DEBIT pour s'exécuter, droit accordé par le propriétaire.

Avertissements

  • Ne vous reposez pas sur les droits accordés automatiquement à soi-même. Utilisez toujours l'évènement run_time_permissions.
  • Si le script n'a pas le droit PERMISSION_DEBIT, il renverra (en criant) une erreur sur le canal DEBUG_CHANNEL et l'opération échouera (mais le script continuera à s'exécuter).
  • Si PERMISSION_DEBIT est accordé par quelqu'un d'autre que le propriétaire, lorsque la fonction est appelée, une erreur est renvoyée (en criant) sur le canal DEBUG_CHANNEL.
  • Une fois que le droit PERMISSION_DEBIT est accordé, il peut être révoqué depuis le script (par exemple avec un nouvel appel à llRequestPermissions). Sinon le script ne perdra ses droits que s'il est réinitialisé ou dérezzé (effacé, détaché ou repris).
  • Un objet ne peut pas payer un autre objet.
  • Les objets donnés à un groupe ne peuvent donner d’argent (les droits ne peuvent être accordés).
  • Une fois que le script à le droit PERMISSION_DEBIT il peut vider un compte de ses $L.
    • Les fraudes et les vols sont des infractions aux règles de Second Life (cf. Linden Lab).
  • L’utilisation de cette fonction est limitée à 30 paiements par intervalle de 30 secondes pour chaque résident d’une région. Un dépassement de cette limite générera des erreurs de script et stoppera les paiements tant que le nombre de paiement n’aura pas ré-atteint le niveau autorisé. Historiquement les paiements trop rapides avaient parfois tendances à échouer.

Exemples

<lsl> integer AMOUNT = 10; integer STASH = 50;

update() {

   if(STASH >= AMOUNT)
       llSetText("J’ai L$"+(string)STASH + " à distribuer!", <1,1,1>, 1);
   else
       llSetText("J’ai 0L$ :(", <1,1,1>, 1);

}

default {

   state_entry() {
       llRequestPermissions(llGetOwner(), PERMISSION_DEBIT );  
   }
   run_time_permissions (integer perm) {
       if(perm & PERMISSION_DEBIT) {
           state ready;     
       }
   }

}

state ready {

   state_entry() {
       update();
   }
   touch_start(integer num)
   {
       if(STASH >= AMOUNT) {
           llGiveMoney(llDetectedKey(0), AMOUNT);
           STASH -= AMOUNT;
           update();
       }
       else {
           llWhisper(0, "Plus d’argent à distribuer:(");
       }
   }
   money(key id, integer m) {
       STASH += m;
       update();
   }

} </lsl>

Voir également

Évènement

•  run_time_permissions Évènement de réception des droits
•  money Evènement déclenché lorsque l’objet est payé.

Fonctions

•  llGetPermissions Renvoie les droits accordés
•  llGetPermissionsKey Renvoie l'agent qui a accordé les droits
•  llRequestPermissions Demande des droits
•  llSetPayPrice Permet de configurer la boite de dialogue d’achat

Articles

•  Droit des scripts Article sur les droits
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.