|
***********************
** En Cours de validation ** *********************** L'origine de ce premier sujet a trouvé son origine ICI. Questions: Tout le monde peut il écrire un script? Oui et la démo sera faite dans ce sujet Tout le monde peut il devenir scripteur? Pour être honnête...la seule condition est de disposer d'un niveau d'anglais (lu) correct. Pourquoi les scripts sont ils importants ? Tout simplement parce que SL est un monde virtuel interactif et cette interactivité est certes native dans le concept mais elle est surtout le fruit de l'exécution de scripts qui inter-agissent avec tout l'environnement. Que faut il en théorie pour écrire ses propres scripts? L'anglais...l'envie...le besoin...la rigueur...un dico d'anglais...un papier...un crayon...du temps...du calme...de l'imagination...de la patience...des nuits blanches...de la ténacité...connaitre les bons liens d'infos... et le copier/coller etc... Bref un peu de tout cela ![]() ==> Un petit lien sympa pour créer des scripts sans rien connaitre ... http://www.3greeneggs.com/autoscript/index_fr.html |
![]() |
|
Aller à la page... |
Mon premier script sur Second Life
Suivre Répondre |
|
Partager | Rechercher |
|
Le script !!
J'ai créé un objet qui est un générateur de structure de script spécialement pour vous.
Il vous permettra de partir sur de bonnes d'écritures. Récupérer ce générateur sur xstreet: https://www.xstreetsl.com/modules.ph...ItemID=1744204 Rezzed le au sol ![]() Cliquez dessus et récupérez le code dans le chat ![]() et copiez le dans un script vierge ![]() Le script généré ressemble à celui ci Code PHP:
![]() Maintenant définissons le petit cahier des charges de votre script final: Code:
Nous désirons avoir un mât sur lequel flotte un drapeau d'un des 3 pays suivant : France / USA / Italie Quand on cliquera sur le drapeau on devra entendre l'hymne du pays représenté. Un nouveau clic changera de drapeau. Quand un drapeau est présenté on devra dire bonjour dans la langue... On annoncera aussi l'hymne joué... Sympa non? ![]() Pour vous aider j'ai créé l'objet et chargez son inventaire il ne restera qu'à y mettre votre script... Votre premier script! Il est disponible ici: https://www.xstreetsl.com/modules.ph...ItemID=1744214 Rezzed le au sol il devrait ressembler à cela : ![]() et contenir cela: ![]() |
![]() |
|
![]() Ecriture du script
Nous allons créé le script par étape:
Résumons les données à prendre en compte: 3 Pays France / USA / Italie 3 Images des drapeaux: drapeau_francais drapeau_usa drapeau_italien 3 sons La marseillaise / Star spangled banner / Fratelli d'Italia 6 phrases : 3 bonjours + 3 annonces hymne Déja nous pouvons charger les constantes dans le script issu du générateur de script. Code PHP:
Créons une petit routine... Code PHP:
http://wiki.secondlife.com/wiki/LlPreloadSound Nous confirme que l'argument peut être un item sound de l'inventaire de l'objet ou un UUID ( vous vous souvenez??) . Un petit coup d'œil sur les warnings et une est importante... This function causes the script to sleep for 1.0 seconds. Donc pour nous 3 secondes Lançons cette routine quand l'objet est rezzed ... déclenchant l'event on_rez ... et avertissons le user que le script est en train de bosser... Code PHP:
Code:
Quand on cliquera sur le drapeau ../.. Un nouveau clic changera de drapeau. Code PHP:
L'idée d'un compteur qui s'incrémente s'impose et tester sa valeur derrière pour prendre une décision: quelque chose comme cela Code PHP:
l'action va certainement être externe au bloc touch_start et quand cet event va être redéclenché la valeur de la variable locale choix va être remise à zéro! donc on va perdre la valeur ancienne! Donc choix va devenir Globale et être nommée Choix ( Majuscule devant pour dire Globale) certain écrive gChoix etc.. autre chose 1 2 3 c'est bien mais pas parlant! Imposons nous de faire un script lisible... Définissons des constantes rapidement sans oublier la variable globale! Code PHP:
Code PHP:
![]() Good job.. EUhhh presque ... si le user clique 4 fois ?? on est dans les choux!! on pourrait écrire cela Code PHP:
Maintenant déterminons l'action... si il y avait que des clics pour afficher les drapeaux on pourrait afficher la texture style Code PHP:
Code:
on cliquera sur le drapeau on devra entendre l'hymne du pays représenté. 2eme clic on joue l'hymne Si on établit la chaine complète Code:
Choix = 1 image France Choix = 2 son France Choix = 3 image USA Choix = 4 son USA Choix = 5 image Italie Choix = 6 son Italie comme on doit dire bonjour aussi chaque if aura 8 lignes { dire bonjour afficher drapeau } { donner le titre de l'hymne jouer le son } 8 * 3 choix = 24 lignes + 6 tests = 30 lignes ... pour 3 drapeaux. Pour 5 drapeaux? 50 lignes etc... Le code va être une succession de if ... cela va marcher mais bon.. J'opterai pour des states un petit luxe certes mais cela sera pédagogique ( c'est le but non?) et plus lisible. A savoir qu'il existe des instructions LSL qui permettent de gérer ce type de problématique plus simplement .. ![]() Définissons la tache France Code PHP:
relisons une dernière fois le cahier des charges et synchronisons le Un clic changera de drapeau. Quand un drapeau est présenté on devra dire bonjour dans la langue... Quand on cliquera sur le drapeau on annoncera l'hymne qui est joué... Donc on doit gérer un clic dans cette state!! Modifions le script: Code PHP:
recopions ce code 3 fois en modifions les textes et variables Code PHP:
N'oublions pas 2 petites choses à régler : si on clique quand le son à commencé à jouer on risque d'avoir la marseillaise avec le drapeau américain! Si on limite pas le compteur Choix il va s'envoler avec le drapeaux! on regle le problème du compteur ici : [php] Code PHP:
![]() et le son ici: Code PHP:
![]() le script complet Code PHP:
https://www.xstreetsl.com/modules.ph...ItemID=1744208 Bon tests ![]() |
![]() |
|
Suivre Répondre |
Fil d'ariane
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|