Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| [Tuto] Lua scripting et Toribash | |
|
+9*=-Nokturnal44-=* timothee meuhgo Kyat PiR vynzs RolFonk Kevinx Melmoth 13 participants | |
Auteur | Message |
---|
Kyat Gentil Organisateur
Messages : 925 Date d'inscription : 24/07/2009 Age : 43
| Sujet: Re: [Tuto] Lua scripting et Toribash Jeu 11 Mar 2010 - 23:14 | |
| Cette fonction renvoie la grandeur d'un tableau numérique. On passe en paramètre la variable tableau dont on veut connaître la grandeur tableauTaille = table.getn(monTableau) - Code:
-
Exemple: myTable={ 1, 3, 6, "toll", false, { 8,9} ) tableauTaille = table.getn ( myTable ) --> tableauTaille == 6 tableauTaille = table.getn ( myTable[6] ) --> tableauTaille == 2 Dans le second exemple, le paramètre [6] permet d'indiquer que l'on ne veut pas la taille globale de la variable myTable, mais la grandeur du tableau contenu en valeur dans la case 6 de my Table. Explication librement adaptée à partir de ce site (googlisé à l'arrache) Melmoth clarifiera au besoin. | |
| | | Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 12 Mar 2010 - 0:16 | |
| Ca renvoie la taille "utile" d'un tableau ou d'une liste, effectivement. Au contraire de maxn, qui lui renvoie la taille maximale, même si certains élèments sont à "nil" (l'élèment nul du lua). | |
| | | Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 19 Mar 2010 - 18:43 | |
| Correction du TD : Le mieux est de passer par deux hooks gérant le clavier : un sur l'appui de touche, l'autre sur le relâchement de l'appui. Même chose pour la souris. Ensuite, vous avez le choix entre utiliser une variable globale numérique pour la touche pressée (et booléenne pour le clic souris), et afficher votre message seulement si vos variables ont une certaine valeur, ou faire comme moi, ici : updater directement le message affiché. - Code:
-
local message_key_pressed = "" local message_click = "" -- pour la question 2
local function hook_key_pressed(key) message_key_pressed = key .. " pressed !" return 0 end
local function hook_key_released() message_key_pressed = "" end
-- pour la question 2 : local function hook_mouse_button_down() message_click = "click !" end -- pour la question 2 : local function hook_mouse_button_up() message_click = "" end
local function hook2D_display() set_color(0.5,0,0,1) draw_text(message_key_pressed, 10, 100,2) -- pour la question 2 : set_color(0,0.5,0,1) draw_text(message_click, 10, 140,2) end
add_hook("key_down","td3", hook_key_pressed) add_hook("key_up","td3", hook_key_released) add_hook("draw2d", "td3", hook2D_display) -- pour la question 2 : add_hook("mouse_button_down","td3", hook_mouse_button_down) add_hook("mouse_button_up","td3", hook_mouse_button_up) Cours n°5 ajouté ![Voir premier post] Enoncé du TD4 :1°) BrouillardAjoutez un effet de brouillard simple à Toribash (un carré gris/blanc de la taille de la fenêtre avec de la transparence fera l'affaire). Tips : vous pouvez récupérer la résolution en utilisant : - Code:
-
local w_width, w_height = get_window_size() 2°) 16/9Ajoutez deux bandes noires (en haut et en bas de l'écran) de sorte à simuler un effet 16/9 inutile mais marrant. Veillez à ce que vos bandes noires soient dessinées par dessus votre brouillard. 3°) Pour les meilleurs : PluieAjoutez un effet de pluie à votre Toribash. Je décompose les étapes : a) Initialisation : vous devez avoir un tableau correspondant aux coordonnées X des gouttes de pluie, et un autre correspondant aux coordonnées Y. Il faudra aussi deux autres tableaux pour stocker la longueur et la vitesse des gouttes de pluie. Ou alors, un seul tableau à plusieurs dimensions, pour les plus malins. Ce(s) tableaux devront être initialisés avec des valeurs au hasard (mais réaliste, ne mettez pas de vitesse trop lente ou trop rapide). Pour obtenir une valeur entière au hasard entre "a" et "b" il faut utiliser : - Code:
-
ma_variable = math.random(a,b) Ainsi pour une valeur décimale, mettons, entre 0 et 100 avec une précision de 0.01, il faudra utiliser : - Code:
-
ma_variable = math.random(0,10000)/100 b) Affichage : un hook sur draw2D, consistant à dessiner vos gouttes de pluie (des "traits", donc des quads très fins) aux valeurs précisées par vos tableaux c) Animation : un hook sur draw2D, consistant à faire descendre vos gouttes de pluie selon la vitesse précisée dans le tableau. d) Récupération des gouttes hors écran : quand les gouttes disparaissent de l'écran par le bas, remettez les en haut Veillez, encore une fois, à avoir vos bandes noires par dessus vos effets pluie et brouillard, pour que ce soit un minimum réaliste. Bon courage ! | |
| | | Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Mer 24 Mar 2010 - 13:32 | |
| Personne n'essaie ? Personne n'a de question ?
Je passe direct à la suite ? | |
| | | Kyat Gentil Organisateur
Messages : 925 Date d'inscription : 24/07/2009 Age : 43
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 26 Mar 2010 - 7:12 | |
| TD4-1.lua TD4-2.lua TD4-3.lua Pour que Melmoth ne travaille pas pour rien.L'effet pluie rend pas mal. Si le script merde chez vous, ouvrez le dans le bloc note et réduisez la valeur de "nb_gouttes" au début du script ^^ | |
| | | Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 26 Mar 2010 - 12:16 | |
| Alors, correction du TD et commentaires sur le code de Kyat : La correction : - Code:
-
local w_width, w_height = get_window_size()
-- Question 3a) local rain = { } for i=1,200 do -- pos_x, pos_y, size, speed table.insert(rain,{math.random(0,w_width), math.random(0,w_height), math.random(10,100)/10, math.random(10,30)}) end
local function hook2D_display() -- Question 3b) set_color(0,0,0,0.8) for i=1,200 do draw_quad(rain[i][1],rain[i][2],1,rain[i][3]) -- Question 3c) rain[i][2] = rain[i][2] + rain[i][4] -- Question 3d) if(rain[i][2] > w_height) then rain[i][2] = 0 rain[i][1] = math.random(0,w_width) end end
-- Question 1 set_color(0.9,0.9,0.9,0.5) draw_quad(0,0,w_width,w_height) -- Question 2 set_color(0,0,0,1) draw_quad(0,0,w_width,120) draw_quad(0,w_height-120,w_width,120) end
add_hook("draw2d", "td4", hook2D_display) Et les commentaires sur le fichier TD4-3.lua de Kyat : Tu as globalement tout juste. Comme tu le vois, la principale différence et que j'ai utilisé un tableau multidimensionnel pour stocker toutes variables contenant mes gouttes de pluie. Pour le côté esthétique, j'ai préféré initialiser la composante y de la position des gouttes n'importe où dans l'écran (effet "il pleut depuis un moment"), tu as préféré opter pour l'effet "il pleut d'un coup". J'aime moins, le réalisme en prends un coup (à la limite, il aurait fallu plus espacer les gouttes afin de faire démarrer progressivement la pluie. Bref, c'est un détail. Ton brouillard est nickel, et tes bandes noires s'adaptent à la taille de l'écran, pas idiot du tout, je demandais rien d'aussi compliqué Bon réflexe d'avoir mis le nombre de gouttes dans une variables. C'est également un bon réflexe que je ne montre pas dans ma correction, mais je détaillerai dans une liste des "bons réflexes à avoir" dans un TD ultérieur. En sachant que le mieux, c'est d'externaliser ces variables globales dans un fichier de conf externe. Mais bon, moi le premier, quand on fait du script basique on s'en branle un peu de faire ça propre... il y a qu'à voir atmospheres, c'est une porcherie le code ^^ Bien joué donc. J'ajouterai le cours/TD sur la modélisation 3D le semaine prochaine, ou peut-être cet aprem, on verra. | |
| | | Kyat Gentil Organisateur
Messages : 925 Date d'inscription : 24/07/2009 Age : 43
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 26 Mar 2010 - 12:30 | |
| Aller pour le fun TD4-4 Version avancée feature : - Tableau (interne au code) - Eclairs - Effet d'écrasement des gouttes - Message trop la classe qui accompagne la souris Enjoy | |
| | | Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 13 Avr 2010 - 16:43 | |
| Cours sur la modélisation 3D terminé et ajouté ! Vous allez tous pouvoir me faire des petites atmosphères, maintenant Pour le TD, adaptez ma correction du TD précédent (la partie sur la pluie), cette fois-ci en 3D. Pour les meilleurs, on y ajoute le temple de l'exemple et on fait en sorte qu'il ne pleuve pas à l'intérieur ! | |
| | | meuhgo
Messages : 24 Date d'inscription : 30/12/2009 Age : 35
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 21 Mai 2010 - 19:56 | |
| J'sait pas si tu les donnes encore les cours,mais d'ici trois ou quatre mois j'vais les roder severe^^ (L'année prochaine j'me mets a l'info,ai bientot mon appart! ) | |
| | | Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 21 Mai 2010 - 20:02 | |
| Ouaip, je continuerai vers Juin/Juillet, t'inquiète pas. | |
| | | timothee ToriDédié
Messages : 238 Date d'inscription : 21/06/2010
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 29 Juin 2010 - 16:52 | |
| hum, j'étais en plein test sur la partie du TD sur la pluie 3D, les shaders marchaient. Par erreur je quitte le jeu. Je le relance : impossible d'activer les shaders ! Je ne relancais pas le jeu sinon lors de modifications du script, mais me contentais d'un /ls unloadscripts.lua cela ne semblais pas poser de probleme. dans sterr.txt il y a ceci comme erreurs : - Citation :
- set_regedit_key : failed to open .rpl (5)
set_regedit_key : failed to open Toribash.Replay (5) set_regedit_key : failed to open Toribash.Replay\DefaultIcon (5) set_regedit_key : failed to open Toribash.Replay\Shell\open\command (5) Unable to open mod data/mod/aikidobigdojo.tbm No shader extension found. Abort Bon effectivement aikidobigdojo n'est pas dans le dossier mod, mais je ne comprend pas les autres erreurs. Les set_regedit_key : failed ca me fait peur, s'il y a des erreurs dans le registre il faudra les corriger manuellement? - Citation :
- No shader extension found
Signifie qu'il ne reconnait plus .inc comme extension de shader? Voila les clés pour l'extension .inc dans mon registre window : - Citation :
.inc/ (pardéfaut | REG_SZ | (valeur non definie) PerceivedType | REG_SZ |text
.inc/PersistentHandler (par défaut) | REG_SZ | {5e941d80-bf96-11cd-b579-08002b30bfeb} Etant au bureau ou j'effectue mon stage (ne me jugez pas je termine demain XD) je ne suis pas sur mon pc fixe mais sur mon laptop. window 7 edition starter (la version du tiers monde je pourrais vous citer un ou deux defauts marrants), carte graphique une express family embarquée toute pourrie qui ne fait pas les shaders 2, mais en dessous comme toribash cela marchait jusqu'a présent. En esperant que quelqu'un ait une piste ? | |
| | | Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 29 Juin 2010 - 17:12 | |
| Les erreurs set_regedit_key doivent être vieilles... à mon avis c'est des erreurs qui ont eu lieu lors de l'install, tu devais pas avoir les droits admins, ou alors l'accès au registre était protégé pour ce PC, ou alors l'erreur vient de TB et pas de toi. Rien à voir avec les shaders, à vue de nez.
Et à la base, pas besoin d'association avec les fichiers .inc pour que les shaders marchent : ce sont de vulgaires fichiers textes, lus et interprété par TB. Toi tu n'arrives pas à avoir le shader par défaut non plus n'est ce pas ?
Les shaders qui foirent d'un coup, jamais vu ça, même en faisant du lua ! Au redémarrage du jeu je vois pas ce qui peut bloquer... Donc, solutions de base spécial "je comprends pas ce qu'il passe, mais parfois ça marche" : - Vérifie bien que tous les process tb.exe sont killés dans ton gestionnaire de tâches. Relance TB, active les shaders... - Si ça marche toujours pas, réinstalle TB (en conservant bien tes replays, etc). - Si ça marche toujours pas poste dans "Support", forum officiel, en mentionnant la ligne, intrigante, "No shader extension found. Abort".
A moins que quelqu'un d'autre ait une idée ? | |
| | | timothee ToriDédié
Messages : 238 Date d'inscription : 21/06/2010
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 29 Juin 2010 - 17:32 | |
| Merci Melmoth. Alors : - les processus sont bien absents - j'ai redémarré deux fois - j'ai reinstallé le jeu à la bourrin car il n'y a pas de désinstalleur apparemment XD - sur le forum officiel il y a deja un thread portant le nom de cette erreur, malheuresement qu'une reponse : - Citation :
- It's simple really.Your current Graphic chip cannot support shaders, For more information on graphic chips that will support shaders see this thread here.
http://forum.toribash.com/showthread.php?t=27975 Or cela marchait il y a une heure environ. je n'ai pas fini les autres threads traitants de "problemes de shaders" il y en a un certain nombre mais pour le moment rien qui ne semble me concerner. Il semble que les shaders 2.0 soient recquits pour Toribash, ce qui est étrange XD : je pouvais utiliser les shaders "prefabriqué" et mon script lua dans Toribash. Mais pour un autre jeu (UFO afterlight) a l'execution erreur : votre carte graphique ne supporte pas les shaders 2.0 (j'en avais deduit que Toribash utilisait des shaders "en dessous"). J'ai un émulateur de shaders qui ne m'a jamais aidé sinon XD. Quand j'aurai fini d'eplucher ce sujet sur le forum officiel je posterai à mon tour Merci pour la rapidité de la réaction en tout cas | |
| | | vynzs Humoriste incompris
Messages : 283 Date d'inscription : 20/06/2009 Age : 30
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 29 Juin 2010 - 18:31 | |
| - Citation :
- set_regedit_key : failed to open .rpl (5)
set_regedit_key : failed to open Toribash.Replay (5) set_regedit_key : failed to open Toribash.Replay\DefaultIcon (5) set_regedit_key : failed to open Toribash.Replay\Shell\open\command (5) J'ai exactement les mêmes erreurs, et j'ai beaucoup de mal à lire les replays, la moitié du temps toribash plante. | |
| | | timothee ToriDédié
Messages : 238 Date d'inscription : 21/06/2010
| Sujet: Re: [Tuto] Lua scripting et Toribash Mer 30 Juin 2010 - 9:04 | |
| Pour les erreurs - Citation :
- set_regedit_key : failed to open .rpl (5)
set_regedit_key : failed to open Toribash.Replay (5) set_regedit_key : failed to open Toribash.Replay\DefaultIcon (5) set_regedit_key : failed to open Toribash.Replay\Shell\open\command (5) Melmoth a vu juste : en réinstallant avec les droits administrateurs celles-ci disparaissent. | |
| | | vynzs Humoriste incompris
Messages : 283 Date d'inscription : 20/06/2009 Age : 30
| Sujet: Re: [Tuto] Lua scripting et Toribash Dim 4 Juil 2010 - 14:02 | |
| Pas pour moi. Je me suis servi d'un logiciel pour supprimer l'extension .rpl du registre, j'ai redémarré, j'ai réinstallé toribash 3.9 avec les droits d'administrateur, et j'ai toujours les mêmes erreurs... | |
| | | timothee ToriDédié
Messages : 238 Date d'inscription : 21/06/2010
| Sujet: Re: [Tuto] Lua scripting et Toribash Mer 15 Sep 2010 - 17:45 | |
| arf enfin un temple pour être au sec XD TD5 ou fin du TD4 je sais pas trop - Vinzs a écrit:
- Je me suis servi d'un logiciel pour supprimer l'extension .rpl du registre, j'ai redémarré, j'ai réinstallé toribash 3.9 avec les droits d'administrateur, et j'ai toujours les mêmes erreurs...
Mince, pas de bol, ca à marché pour moi =( ... ya des version de window ( comme la mienne ) ou il faut installer via un compte "grand administrateur" (oui cest ridicule) qui est dailleurs chiant à creer et autant à enlever, mais mon compte administrateur a pas suffit non plus. | |
| | | Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Jeu 16 Sep 2010 - 0:06 | |
| Mes commentaires sur la proposition de Timo :Héhé, petit malin, bonne idée de s'inspirer d'une de mes atmo et de le merger avec le temple . Bon, pour ce TD, je ne demandais pas la petite astuce de la pluie qui tombe près de la caméra (vous êtes pas encore sensé savoir comment on récupère les infos de la caméra, boudiou). Je demandais pas non plus le petit effet des éclaboussures ni la gestion des pauses si le replay est arrêté ^^ Mais bon, c'est très bien de s'inspirer de ce qui existe déjà, tant que tu captes ce que tu fais ! Pas de reproche en particulier, au contraire, tu as externaliser la méthode qui détermine si la goute de pluie est en dehors du temple et utiliser des variables globale pour les dimensions du temple, c'est un bon réflexe (que je n'ai pas utiliser dans ma correction ). Ma correction, dépouillée des choses "ajoutées" par Timo : - Code:
-
nb_rain = 200 local rain = { } for i=1,nb_rain do -- pos_x, pos_y, pos_z, size, rayon, speed table.insert(rain,{math.random(-2000,2000)/10, math.random(-2000,2000)/10, math.random(0,400)/10, math.random(20,40)/10, math.random(10,20)/100, math.random(20,100)/100}) end
-- le temple qu'on a vu en cours local function draw_temple() set_color(0.9,0.9,0.9,1) draw_box(0, 0, 12, 65, 65, 2, 0, 0, 0) draw_box(0, 0, 0, 70, 70, 0.001, 0, 0, 0)
for i=0,5 do draw_capsule( 30, (-30 + 12*i), 6, 12, 1, 0, 0, 0) draw_capsule( -30, (-30 + 12*i), 6, 12, 1, 0, 0, 0) end for i=1,4 do draw_capsule( (-30 + 12*i), 30, 6, 12, 1, 0, 0, 0) draw_capsule( (-30 + 12*i), -30, 6, 12, 1, 0, 0, 0) end end
local function hook3D_display() -- on dessine le temple draw_temple() -- puis on s'occupe de la pluie : -- on la dessine set_color(0.7,0.7,0.9,0.9) for i=1,nb_rain do draw_box(rain[i][1],rain[i][2],rain[i][3], rain[i][5], rain[i][5], rain[i][4]) -- puis on l'anime ! rain[i][3] = rain[i][3] - rain[i][6] -- détection de collision : si la pluie est dans le temple ou en dessous du sol, on la fait repartir d'en haut if(rain[i][3]<0 or (rain[i][3] < 13 and rain[i][1]>-32.5 and rain[i][1]<32.5 and rain[i][2]>-32.5 and rain[i][2]<32.5)) then rain[i][3] = 40 end end end
add_hook("draw3d", "lua_tuto", hook3D_display) Le reste du TD suivra plus tard, quand la liste des choses que j'ai à faire sera un peu diminuée... | |
| | | PiR ToriObsédé
Messages : 881 Date d'inscription : 03/12/2009 Age : 29 Localisation : coucou tu veux un morceau ^^ ?
| Sujet: Re: [Tuto] Lua scripting et Toribash Jeu 16 Sep 2010 - 19:17 | |
| hs : elles sont sortis les nouvelles atmo ? | |
| | | Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Jeu 16 Sep 2010 - 19:40 | |
| Oui, http://g.hssn.free.fr/atmospheres/static.php?page=install
| |
| | | PiR ToriObsédé
Messages : 881 Date d'inscription : 03/12/2009 Age : 29 Localisation : coucou tu veux un morceau ^^ ?
| Sujet: Re: [Tuto] Lua scripting et Toribash Jeu 16 Sep 2010 - 23:07 | |
| cool merci | |
| | | PiR ToriObsédé
Messages : 881 Date d'inscription : 03/12/2009 Age : 29 Localisation : coucou tu veux un morceau ^^ ?
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 17 Sep 2010 - 0:01 | |
| euh ... et ben g pus télécharger descrip (tres sympa dailleurs) mais je n'ai pas l'onglet "atmosphere 2" qui s'affiche j'ai que ceux de descript et desolé pour le double post | |
| | | timothee ToriDédié
Messages : 238 Date d'inscription : 21/06/2010
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 17 Sep 2010 - 0:07 | |
| afin de faciliter la diffusion des mises a jour, Atmospheres Script n'est plus inclus dans DeScript. Voir cette page pour la manip : http://g.hssn.free.fr/atmospheres/static.php?page=install
grosso modo supprime les anciens fichiers/dossiers en rapport, puis remet les nouveaux. Ensuite clic sur le carré rouge DeScript ingame et sur le "plus" vert, pour ajouter un script ( bien sur : "atmospheres.lua" )
EDIT : ou alors appuie sur "c" avec la souris sur le carré rouge je me rappelle plus dsl | |
| | | Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 17 Sep 2010 - 9:02 | |
| Effectivement, click molette sur le carré rouge si tu as une molette. Sinon, oui, c'est 'C' en ayant le curseur sur le carré rouge. Ensuite, tu tapes 'Atmospheres.lua' dans la barre de texte en bas, tu appuies sur le '+' vert, et c'est parti ! | |
| | | PiR ToriObsédé
Messages : 881 Date d'inscription : 03/12/2009 Age : 29 Localisation : coucou tu veux un morceau ^^ ?
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 17 Sep 2010 - 20:29 | |
| ça marche ! comment on fait pour remmetre les shader par defaut ? | |
| | | Contenu sponsorisé
| Sujet: Re: [Tuto] Lua scripting et Toribash | |
| |
| | | | [Tuto] Lua scripting et Toribash | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |