Notre vie est éphémère
Pareille au reflet de la lune
Dans la goutte d'eau
Tombant du bec du héron
Dôgen Zenji
Sous la lune....
Notre vie est éphémère
Pareille au reflet de la lune
Dans la goutte d'eau
Tombant du bec du héron
key avatar;
integer ecoute;
default
{
state_entry()
{
avatar = llGetOwnerKey(llGetKey());
}
touch_start(integer total_number)
{
if (llDetectedKey(0) == avatar){
state bavard;
}
}
}
state bavard{
state_entry()
{
ecoute = llListen(PUBLIC_CHANNEL, "", avatar, "");
}
listen(integer channel, string name, key id, string message)
{
if( message != "zut") llSay(PUBLIC_CHANNEL, "Coco repete : " + message );
else {
llSay(PUBLIC_CHANNEL, "Coco est fatigué, Coco va dormir");
llListenRemove(ecoute);
state default;
}
}
}
Le chemin du serpent dans l'herbe,
Seul le serpent le comprend
Il n'y a rien de plus vaste sous le ciel,
Que la pointe d'un épi automnal
Et une grande montagne
Est une petit chose face au firmament.
Tout le monde discute et émet
Des catégories de contraires.
J'aimerais entendre un discours,
Qui n'entre dans aucune catégorie
Comme les montagnes dominent
Sur de vastes étendues,
C’est seulement grâce à elles
Que l’on peut chevaucher les nuages,
Ce sont elles qui confèrent l’inimaginable
Privilège de s’élever avec le vent.
List ma_liste = [ 12, 2.36, "un message"];
ma_liste = [];
ma_liste += ["un pitit texte"];
ma_liste += ["un autre pitit texte", 12, <0.0,0.0,>];
list ma_liste = ["e1", "e2", "e3"];
integer idx;
for(idx = 0; idx < llGetListLength(ma_liste); idx++){
llSay(PUBLIC_CHANNEL, llList2String(ma_liste, idx) + " a pour index : " + (string)idx);
}
list ma_liste = ["e1", "e2", "e3"];
integer idx = llListFind list(ma_liste, ["e2"]);
list ma_liste = ["e1", "e2", "e3", "e4"];
string s= llDumpList2String(ma_liste, "-");
llSay(PUBLIC_CHANNEL, s);
e1-e2-e3-e4
string msg;
msg = "bonjour à tous";
msg = "Bonjour " + "à tous";
string msg1, msg2, msg;
msg1 = "Kikooooo";
msg2 = "les amis !!";
msg = msg1 + msg2;
msg = msg1 + " " + msg2;
msg = "Comment ca \"lapin\" ?? ";
string msg = "Youppi c'est les vacances !!";
llWhisper(PUBLIC_CHANNEL, msg + " contient exactement " + (string)llStringLength(msg) + " caractères...");
string msg = "Youppi c'est les vacances !!";
msg = llGetSubString( msg, 13, 15 );
llSay(PUBLIC_CHANNEL, msg);
string msg = "Mais qui vois je la bas ?? Serait ce mon amie Ouma ??
integer idx = llSubStringIndex(msg, "Ouma");
if (idx == -1) llSay(PUBLIC_CHANNEL, "Ouma n'est pas la !!");
else llSay(PUBLIC_CHANNEL, "Ouma est la !!");
Deirdre;25
Yoyo; 27
Ouma;32
Lala; 36
Nounours;34
string ligne = "Deirdre;25";
string nom;
string nombre;
nom = llGetSubString(ligne, 0, llSubStringIndex(ligne, ";")-1);
nombre = llGetSubString(ligne, llSubStringIndex(ligne, ";") + 1, llStringLength(ligne));
llSay(PUBLIC_CHANNEL, nom + " a pour nmbre : " + (string)nombre);
nombre = llGetSubString(ligne, llSubStringIndex(ligne, ";") + 1, -1);
L'ombre des Bambous balaie les marches
Mais nulle poussière n'est soulevée.
Le clair de lune pénètre profondément la marre
Mais l'eau n'en garde nulle trace
La noirceur de l'ombre des pins
dépend de la clarté de la lune
Chuchoter | whisper | 10m |
Parler | say | 20m |
Crier | shout | 100m |
/100 kikooooo !
llWhisper(integer channel, string message);
llSay(integer channel, string message);
llShout(integer channel, string message);
llWhisper(PUBLIC_CHANNEL, "Bisous toi !!");
llSay(PUBLIC_CHANNEL, "Bonjour à tous !!");
llShout(PUBLIC_CHANNEL, "Lapin !!!!");
llRegionSay(integer channel, string message);
llOwnerSay(string message);
llGetKey( ) ==> key
llDetectedKey( integer number ) ==> key
default
{
touch_start(integer total_number)
{
key k = llDetectedKey(0);
llSay("j'ai été touché par " k);
}
}
llKey2Name( key id ) ==> string
default
{
touch_start(integer total_number)
{
llSay("Bonjour " llKey2Nam(llDetectedKey(0)));
}
}
llGetOwnerKey(key id) ==> key
llGetOwner() ==>key
key proprio;
default
{
state_entry()
{
// à l'entrée dans le script, on affecte à proprio
// la key du propriétaire de l'objet
proprio = llGetOwner();
}
on_rez(integer a)
{
// Si jamais on rez l'objet, on affecte à proprio
// la key du propriétaire de l'objet
proprio = llGetOwner();
}
touch_start(integer total_number)
{
if ( proprio == llDetectedKey(0))
{
llSay(PUBLIC_CHANNEL, "Bonjour mon Maître !!);
} else {
llSay(PUBLIC_CHANNEL, "Vous n'êtes pas mon Maître !!);
}
}
}
changed(integer change)
{
if (change & CHANGED_OWNER)
llResetScript();
}
while(condition){
instruction1;
instruction2;
....
}
integer n = 1;
// on commence à 1.
// on définit la variable à parcourir
// et on l'initialise de suite
while ( n <= 10 ){ if (n%2 == 0){
llSay(0, "le nombre "+ n + " est pair");
}else {
llSay(0, "le nombre " + n + " est impair");
}
n++;
}
for(nom de la variable et affectation; condition de fin; incrément){
instruction1;
instruction2;
....
}
integer n;// l'initialisation n'est pas nécessaire
for( n = 1 ; n <= 10 ; n++){ if (n%2 == 0){
llSay(0, "le nombre "+ n + " est pair");
}else {
llSay(0, "le nombre " + n + " est impair");
}
}
integer n;
for( n = 0 ; n <= 10; n+=2){ llSay(0; n);
}
integer n;
for( n = 10 ; n >= 0 ; n-=2){
llSay(0; n);
}
//définition des variables globales
// Définition des fonctions personnelles
// un état du script : etat1
state etat1 {
evenement1(){
fonction1();
fonction2();
}
evenement2(){
fonction3();
fonction4();
}
}
ma_fonction(){
instruction1;
instruction2;
....
}
dire_bonjour(){
llSay(0, "Bonjour à tous !!");
}
dire_bonjour();
ma_fonction( type1 variable1, type2 variable2, ...){
instruction1;
instruction2;
....
}
dire_bonjour2(string nom){
llSay(0, "Bonjour " + nom + " !! Comment vas tu ?");
}
dire_bonjour2("Nounours");
parite(integer i){
if (i%2 == 0){
llSay(0, "le nombre "+ i + " est pair");
}else {
llSay(0, "le nombre " + i + " est impair");
}
}
parite(25);
compare(integer i, integer j){
if ( i <=j ){ llSay(0, i + " est plus petit ou égal que "+ j);
} else {
llSay(0, i + " est plus grand que "+ j);
}
}
type ma_fonction(type1 variable1, type2 variable2, ...){
instruction1;
instruction2;
....
return valeur;
}
integer ajoute(integer i, integer j){
return i+j;
}
integer h;
h= ajoute(10, 25);
somme_entier_naturels_version1 ( n )
{
// Cette fonction va sommer tous les entiers de 1 à n (n étant un paramètre)
// On crée une variable résultat qui aura pour nom "somme"
somme = 0
POUR compteur DE 1 A n FAIRE
// On crée une variable compteur qu iprendra successivement
// les valeur entieres de 1 à n
// On fait la somme des entiers de 1 à n et on le stocke dans "somme"
somme = somme + compteur;
// Fin de la boucle "POUR", donc le programme restera dans cette boucle
// tant que compteur sera compris entre 1 et n.
// L'incrémentation de compteur se fait automatiqueemnt
// à la ligne "POUR compteur..."
FIN_POUR
// On retourne le résultat "somme" qui contient, grace à la boucle "POUR",
// la sommation des entiers de 1 à n
RETOURNER somme
}
integer somme_entier_version1(integer n){
integer somme = 0;
integer compteur;
for (compteur = 1; compteur <= n; compteur++){ somme = somme + n ;
// ou encore : somme += n;
}
return somme;
}
somme_entier_naturels_version2 ( n )
{
// Cette fonction va sommer tous les entiers de 1 à n (n étant un paramètre)
// On sait que la somme des entiers naturels de 1 à n est une formule mathématique!
// http://fr.wikipedia.org/wiki/Somme_(arithm%C3%A9tique)
// somme = n * (n + 1) / 2
// Pourquoi ne pas réutiliser ce résultat?
// On crée une variable somme, et on lui met la formule!
somme = n * (n + 1) / 2
// Et maintenant, on retourne le résultat!
RETOURNER somme
}
integer somme_entier_version2(integer n){
integer somme;
somme = n * ( n + 1) / 2;
return somme;
}
return n * ( n + 1) / 2;
integer i;
integer j;
i = 45;
j = 5;
i = i + j ;// maintenant i vaut 50 (= 45 + 5)
integer k = i/j;// k vaut 45/5 = 9
integer h = i % 10;// h est le reste de la division
// de 45 par 10.... donc h = 5
intger g = i - k*j;
integer i = 50;
float j = i;// j vaut 50.0, 50 en valeur flottante, la conversion est implicite
// car il n'y a pas de perte de données
j = 50.36;
i = (integer)j;//conversion explicite car i vaut 50, partie entière de j.
// Ici, on perd de l'information. Donc il faut
// expliciter le cast.
float i = 2/3;
float i = 2.0/3.0;
integer k = 2;
integer l = 3;
float i = (float)k / (float)l;
integer i = 5;
i++;// i++ équivaut à i = i+1; i vaut 6;
i--;// equivaut à i=i-1; i vaut 5
integer i = 20;
i += 5;// équivalent à i = i+5;
i -= 5;// équivalent à i = i-5;
i *= 5;// équivalent à i = i*5;
i /= 5;// équivalent à i = i/5;
i %= 5;// équivalent à i = i%5;
integer t = 78;
integer min = 78/60;// 1 min
integer sec = 78%60;// et 18 sec
if(la_condition){
instruction1;
instruction2;
} else {
instruction3;
instruction4;
}
i == 4 vrai si i vaut 4. Noter bien les deux ==
i > 4
i <>
Une opération de comparaison, ou plusieurs, avec des opérateurs logiques :
&& => ET, || => OU, ! => NOT
par exemple, je veux tester si i est compris entre 5 et 10....
Cela signifie que i est plus petit ou égal à 10 ET plus grand ou egal à 5. On écrira donc :
(i >= 5) && (i <= 10)
Par exemple :
if ((i >= 5) && (i <= 10)){ llSay(0, " Le nombre est compris entre 5 et 10");
}
ou encore
if ( i%2 ){
llSay(0, "Le nombre est pair");
}else {
llSay(0, "Le nombre est impair");
}
C'est tout pour aujourd'hui, vous pouvez aller prendre l'air, il fait si beau dehors ! Respirez à plein poumon.
llDialog( key avatar, string message, list buttons, integer chat_channel );
key avatar; //l'avatar qui clique sur l'objet
integer ecoute;
integer canal = 123456;
list menu = ["rouge", "noir", "blanc"];
string message_menu = "Choisissez ma nouvelle couleur";
changer_couleur(string couleur){
//a ecrire, on change la couleur des faces du cube
}
default
{
touch_start(integer total_number)
{
avatar = llDetectedKey(0);
ecoute = llListen(canal, "", avatar, "");
llDialog(avatar, message_menu, menu, canal);
}
listen(integer channel, string name, key id, string message)
{
if ( message == "rouge" ) changer_couleur("rouge");
else if (message == "noir") changer_couleur("noir");
else if (message == "blanc") changer_couleur("blanc");
llListenRemove(ecoute);
}
}
key avatar; //l'avatar qui clique sur l'objet
integer ecoute;
integer canal = 123456;
list menu_principal = ["rouge", "bleu", "vert"];
string message_menu = "Choisissez ma nouvelle couleur";
list menu_rouge = ["vif", "magenta", "<<<", "sang"]; string menu_rouge = "Choisissez votre nuance de rouge : "; list menu_bleu = ["marine", "royal", "<<<", "cyan"]; string menu_bleu = "Choisissez votre nuance de bleu : "; list menu_vert = ["clair", "pomme", "<<<", "emeraude"]; string menu_vert = "Choisissez votre nuance de vert : "; changer_couleur(string couleur){ //a ecrire, on change la couleur des faces du cube } default { touch_start(integer total_number)
{
avatar = llDetectedKey(0);
ecoute = llListen(canal, "", avatar, "");
llDialog(avatar, message_menu, menu, canal);
}
listen(integer channel, string name, key id, string message)
{
//on traite le menu principal
if (message == "rouge") llDialog(avatar, message_rouge, menu_rouge, canal);
else if (message == "vert") llDialog(avatar, message_vert, menu_vert, canal);
else if (message == "bleu") llDialog(avatar, message_bleu, menu_bleu, canal);
//on traite pour le sous menu, le bouton <<< else if (message == "<<<") llDialog(avatar, message_menu, menu, canal); // les couleurs....
else if (message == "vif") {
changer_couleur("vif");
llListenRemove(ecoute);
}
else if (message == "magenta") {
changer_couleur("magenta");
llListenRemove(ecoute);
}
// on traite ainsi toutes les autres couleurs
// pour la derniere, on ecrit seulement else
// au lieu de else if
}
}
state_entry()
{
canal = (integer)llFrand(-100000) - 10000;
}
integer un_entier;
string message;
integer un_entier = 5;
string message = "Kikou !!!!";
// Ouiiii !!! Ceci est votre premier commentaire !! bravo !!
//Début du script - Définition des variables globales
string ma_chaine_globale; // commentaire sur ce que va contenir cette variable
integer un_entier_global; // commentaire sur ce que va contenir cette variable
// Définition des fonctions
// on verra ca plus tard....
// un état du script : etat1
state etat1 {
evenement1(){
fonction1();
fonction2();
}
evenement2(){
fonction3();
fonction4();
}
}
integer llListen( integer canal, string nom, key id, string msg );
listen( integer channel, string name, key id, string message ){
//les instructions à effectuer...
}
integer ecoute;
integer canal = PUBLIC_CHANNEL;
key avatar;
default
{
touch_start(integer total_number)
{
avatar = llGetOwner();
ecoute = llListen(canal, "", avatar, "");
}
listen(integer channel, string name, key id, string message)
{
if (message != "zut") llSay(canal, message);
else {
llSay(canal, "Je me tais à present...");
llListenRemove(ecoute);
}
}
}
integer canal = -1234567;
default
{
touch_start(integer total_number)
{
llSay(canal, "clic");
}
}
integer canal = -1234567;
integer ampoule;
//fonction qui commandera allumage/extinction de la lampe
commande_ampoule(integer amp) {
//si amp == 0 : on éteint
//si amp ==1 : on allume
// à écrire donc..... je vais pas tout faire non plus :)
}
default
{
state_entry()
{
ampoule = 0;
llListen(canal, "", NULL_KEY, "clic");
}
listen(integer channel, string name, key id, string message)
{
ampoule = (ampoule + 1)%2;
commande_ampoule(ampoule);
}
}