Dataserver/fr

From Second Life Wiki
Jump to: navigation, search

Description

Event: dataserver( key idrequête, string donnée ){ ; }

Déclenché lorsque le script reçoit des données asynchrones

• key idrequête Code correspondant à la valeur renvoyée par la fonction ayant déclenché l'évènement
• string donnée Correspond à la donnée demandée(utilisé comme un string afin d'assurer une plus grande compatibilité).
Fonctions Entrées Types Descriptions
llGetNotecardLine string Renvoie la ligne d'une note, est limité à 255 bytes.
Renvoie EOF lorsque le nombre de lignes de la note est atteint.
llGetNumberOfNotecardLines (integer) Renvoie le nombre de lignes de la note.
llRequestAgentData DATA_ONLINE 1 (integer) boolean Détecte si un agent est en ligne
DATA_NAME 2 string Renvoie le nom d'un agent
DATA_BORN 3 string renvoie la date de création/naissance d'un agent (la date est un string dans un format ISO 8601 de AAAA-MM-JJ ).
DATA_RATING 4 llCSV2List() Désactivé : Renvoie à présent [0, 0, 0, 0, 0, 0]
Renvoyé : [pos_behavior, neg_behavior, pos_appearance, neg_appearance, pos_building, neg_building]
DATA_PAYINFO 8 (integer) codes Codes Descriptions
PAYMENT_INFO_ON_FILE 0x1 Signale si les informations de paiement de l'agent sont sur sur fichier.
PAYMENT_INFO_USED 0x2 Signale si les informations de paiement ont déja été utilisées.
llRequestInventoryData Repère (vector) Le vector renvoyé par dataserver a pour origine le point <0,0,0> de la région. Pour obtenir la position globale d'un repère, ajoutez y llGetRegionCorner().
llRequestSimulatorData DATA_SIM_POS 5 (vector) Position globale de la sim.
DATA_SIM_STATUS 6 string Valeurs Description
"up" La sim est opérationnelle
"down" La sim est éteinte
"starting" La sim est en phase de démarrage
"stopping" La sim est en phase d'arrêt
"crashed" La sim a plantée
"unknown" La sim est dans un statut inconnu ou la sim est inconnue
DATA_SIM_RATING 7 string Renvoie le type de la sim : "PG", "MATURE" ou "UNKNOWN"

Défauts

  • Les réponses de type Dataserver ne reviennent pas nécessairement dans l'ordre des appeks.
    • si plusieurs appels sont en attentes, utilisez toujours des clés différentes pour déterminer la réponse reçue.
  • Les réponses de type Dataserver lanceront l'évènement dataserver dans tous les script de la prim ayant fait la demande.
    • Si plusieurs script d'une même prim utilise les évènements dataserver, utilisez toujours une clé pour déterminer la réponse reçue.
    • L'évènement dataserver ne sera pas lancé dans les scripts des prims filles d'un même objet.

Exemples

<lsl> key kQuery; integer iLine = 0; default {

   state_entry() {
       llSay(0, "Reading notecard...");
       kQuery = llGetNotecardLine("Ma Note", iLine); //vous devez avoir un note s'appellant "ma note" dans l'inventaire de la prim
   }
   dataserver(key query_id, string data) {
       if (query_id == kQuery) {
           // Vérifie qu'il s'agit bien d'une ligne de la note
           if (data == EOF) {    
               llSay(0, "Plus de lignes dans la note, nb de lignes lues : " + (string)iLine + " lines.");
           } else {
               // Incremente le nombre de lignes lues
               llSay(0, "Ligne " + (string)iLine + ": " + data);
               
               // Demande la ligne suivante
               ++iLine;
               kQuery = llGetNotecardLine("Ma Note", iLine);
           }
       }
   }

} </lsl>

Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.