mardi 29 janvier 2008
llPlaySound
Le lsl permet aussi de jouer du son, c'est ce que fais la fonction du jour, Nous allons essayer de rentrer dans une thématique musical.
llPlaySound prend deux paramètres, un string qui est le nom du son et un float qui est le volume, le son varie de 0 à 1.
Notre programme permet de lire le premier son de l'inventaire quand on lance notre programme
default
{
state_entry()
{
//recupère le premier son de l'iventaire
string son=llGetInventoryName(INVENTORY_SOUND,0);
//la fonction du jour
llPlaySound(son,0.8);
}
}
Libellés :
lsl,
script,
second life
jeudi 24 janvier 2008
llListenControl
llListenControl permet d'activer ou de desactiver l'ecoute d'un channel, on avait déjà vu que ce système etait possible avec llRemoveListen.
Cette fonction présente un gros interet voir une nécéssité quand on ecoute le channel publique. Tout simple parcequ'il y a enorment de message qui passe sur ce channel donc beaucoup de travail pour le script.
Les listen sur le channel public font énormement laguer; Il faut bien comprendre qu'il ne sert à rien d'ecouter un channel pour rien.
Donc soit on le remove car on en a besoin qu'une fois soit control si c'est répétitif mais temporaire.
La fonction prends deux paramètres:
Un integer qui permet d'identifier le listen cette valeur nous est retourné par llListen
et un True/False pour arreter ou relancer l'ecoute
integer KeyListen;
default {
state_entry()
{
// ecoute le channel public
KeyListen = llListen(PUBLIC_CHANNEL, "", NULL_KEY, "");
}
touch_start(integer total_number)
{
// la fonction du jour
llListenControl(KeyListen, TRUE);
}
listen(integer channel, string name, key id, string message)
{
if (message == "off")
llListenControl(KeyListen, FALSE);
else
//affiche en float text le contenu du chat public
llSetText(message,<1.0,1.0,1.0>,1.0);
}
}
Libellés :
lsl,
script,
second life
mercredi 23 janvier 2008
llEmail
llEmail comme vous pouvez vous en douter permet d'envoyer des mails. Sur Second Life cette technique est très simple.
IL suffit de fournir à la fonction, adresse, sujet, message. L'exemple d'aujourd'hui permet d'envoyer qui et combien a donné de Tips
default
{
state_entry()
{
llSetPayPrice(PAY_HIDE,[50,100,200,500]);
}
money(key giver, integer amount)
{
string adresse="lancelot.joubert@gmail.com";
string sujet=llGetObjectName();
string message=llKey2Name(giver) + " " + (string)amount;
llEmail(adresse,sujet ,message);
}
}
Libellés :
lsl,
script,
second life
mardi 22 janvier 2008
llMapDestination
llMapDestination pemet de faire un téléport longue portée d'une simà une autre via l'interface de choix de destination.
Ainsi, vous pourrez dans une autre sim faire une pub qui vous emmène dans votre magsin en clickant dessus.
La fonction prend trois paramètres, tout d'abord un string qui est le nom de la sim destination,
un vecteur determinant la position dans la sim, puis aussi une rotation, mais ce n'est que accessoire....
string sim_name;
vector pos;
default
{
touch_start(integer total_number)
{
llMapDestination(sim_name, pos, ZERO_VECTOR);
}
}
Libellés :
lsl,
script,
second life
vendredi 18 janvier 2008
State
Aujourd'hui il ne s'agira pas d'une fonction, mais comment bien utilisé "state" ou etat. Dans notre exemple allons frabriquer un pseudo feu rouge.
Chaque evenement est spécifique à l'etat dans lequel on est ainsi, on peut avoir le même evenement dans fifferent etat et qu'il ne fasse pas la même chose.
Décomposons le programme, je commence dans l'etat default, l'etat de base est l'etat rouge, alors on "saute" dedans.
On mets à rouge noter objet et au bout de 5 secondes, il passe à vert, puis après 5 seconde il passe à l'orange pour seulement 3 secondes.
Il y a biensure une technique pour le faire sans les états mais c'est beaucoup plus compliqué et surtout moins lisible.
Car il aurait fallu faire plein de tests imbriqués, perdant ainsi en clarté de lecture.
Pour savoir quand utilisé les state c'est simple, plus vous avez de conditions dans un seul et même evenement, il serait peut être judicieux de l'utiliser.
default
{
state_entry()
{
state rouge;
}
}
state rouge
{
state_entry()
{
llSetColor(<1.0,0.0,0.0>,ALL_SIDES);
llSetTimerEvent(5);
}
timer()
{
state vert;
}
}
state orange
{
state_entry()
{
llSetColor(<1.0,1.0,0.0>,ALL_SIDES);
llSetTimerEvent(3);
}
timer()
{
state rouge;
}
}
state vert
{
state_entry()
{
llSetColor(<0.0,1.0,0.0>,ALL_SIDES);
llSetTimerEvent(5);
}
timer()
{
state orange;
}
}
Libellés :
lsl,
script,
second life
Inscription à :
Articles (Atom)