Help needed for little script.
-
- Posts: 8
- Joined: Fri Oct 11, 2013 2:22 pm
Re: Help needed for little script.
It's that i did. I cloned an ogre for the hook.
Re: Help needed for little script.
Salut!
Je suis sur que je peux t'aider. Alors en gros tu veux spawer une porte et une serrure lorsqu'un monstre meurt?
D'abord, cloneObject l'ogre en lui donnant un "name" unique et lui ajoutant un onDie hook. Un truc pour éviter de faire Ctrl-R toutes les deux secondes pour reloader le .lua: dans le hook, tu peux caller une fonction dans un autre script.
Mettons que dans le editor, tu crées un script_entity nommé par exemple puzzlePorte2 (id). Dedans, tu peux mettre une fonction, par exemple:
Alors, dans le cloneObject, le onDie peut être simplement:
La syntaxe est id du script entity - point - nom de la fonction. Comme ça, ensuite, tu peux éditer et tester tranquillement ta fonction dans le editor.
Alors pour ce qui est de la porte et de la serrure:
Pour le monstre qui laisser tomber la clé, tu pourrais la spawner via script, mais le plus simple est juste de la mettre sur le monstre dans l'éditeur.
J'espère que ça t'aide, hésite pas pour d'autre questions.
Je suis sur que je peux t'aider. Alors en gros tu veux spawer une porte et une serrure lorsqu'un monstre meurt?
D'abord, cloneObject l'ogre en lui donnant un "name" unique et lui ajoutant un onDie hook. Un truc pour éviter de faire Ctrl-R toutes les deux secondes pour reloader le .lua: dans le hook, tu peux caller une fonction dans un autre script.
Mettons que dans le editor, tu crées un script_entity nommé par exemple puzzlePorte2 (id). Dedans, tu peux mettre une fonction, par exemple:
Code: Select all
function mortDeLOgre()
[...] bla bla bla
end
Code: Select all
onDie = function(monster)
puzzlePorte2.mortDeLOgre()
end
Alors pour ce qui est de la porte et de la serrure:
Code: Select all
function mortDeLOgre()
-- Spawn la porte, remplace "door" par le modèle voulu. Le id doit être unique.
spawn("door", level, x, y, facing, "maPorte")
-- Spawn la serrure et le connecteur. La serrure a pas besoin de id unique.
-- remplace "lock" par ton modèle et "key" par le modele de clé pour ouvrir.
spawn("lock", level, x, y, facing)
:setOpenedBy("key")
:addConnector("activate", "maPorte", "open")
end
J'espère que ça t'aide, hésite pas pour d'autre questions.
- Eleven Warrior
- Posts: 745
- Joined: Thu Apr 18, 2013 2:32 pm
- Location: Australia
Re: Help needed for little script.
Hi Diramuid..
Culd I get that coding in English please It looks good thxs..
EDIT: NVM thxs..
Culd I get that coding in English please It looks good thxs..
EDIT: NVM thxs..
- Eleven Warrior
- Posts: 745
- Joined: Thu Apr 18, 2013 2:32 pm
- Location: Australia
Re: Help needed for little script.
Wow Diarmuid c'est codage génial, je dois essayer moi-même. Je vois maintenant avec l'ogre. Je viens de l'ajouter au monstre cloné:
onDie = function (monstre)
puzzlePorte2.mortDeLOgre ()
fin
Puis-je faire une entité de script dans l'éditeur appelé:
fonction fonction mortDeLOgre ()
[...] Blah blah blah
fin
Qui appelle le script Ogre dans le fichier (monters.lua).
Puis je me trompe, c'est la partie que je ne suis pas sûr .. Est ce code dans le script de l'éditeur ou partie du monstre cloné dans le fichier lua?
fonction mortDeLOgre ()
frayer (niveau de la "porte", x, y, face, "maPorte")
spawn ("lock", niveau, x, y, exposition)
setOpenedBy ("clé")
addConnector ("activate", "maPorte", "ouvert")
fin
PS: A woud démo serait bien si vous avez les thxs de temps .. J'ai tapé cela en utilisant Google Translator espérons son OK ..
onDie = function (monstre)
puzzlePorte2.mortDeLOgre ()
fin
Puis-je faire une entité de script dans l'éditeur appelé:
fonction fonction mortDeLOgre ()
[...] Blah blah blah
fin
Qui appelle le script Ogre dans le fichier (monters.lua).
Puis je me trompe, c'est la partie que je ne suis pas sûr .. Est ce code dans le script de l'éditeur ou partie du monstre cloné dans le fichier lua?
fonction mortDeLOgre ()
frayer (niveau de la "porte", x, y, face, "maPorte")
spawn ("lock", niveau, x, y, exposition)
setOpenedBy ("clé")
addConnector ("activate", "maPorte", "ouvert")
fin
PS: A woud démo serait bien si vous avez les thxs de temps .. J'ai tapé cela en utilisant Google Translator espérons son OK ..
-
- Posts: 8
- Joined: Fri Oct 11, 2013 2:22 pm
Re: Help needed for little script.
Mon sauveur français. Pas facile de s'exprimer dans une langue qu'on maîtrise pas. J'ai quelques notion à force de regarder scrubs en vostfr, mais bon.
Merci j'vais tester ça quand ma fille daignera faire sa sieste ^^.
Elvenwarrior, google translator is evil But speak french is most evil . i hate this language grr.
Forgives me i continue in french with diarmuid, it's easiest for me.
Sinon diarmuid y a un truc que je comprends pas sur le lua. J'essais de chopper des idées à droite à gauche. Je suis pas complêtement un imbécile, donc je me dis qu'avec le temps j'arriverais à me demerder. Bref, je vois dans des codes des lignes décallée en vertical, est obligatoire ou c'est juste pour s'y retrouver? Et surtout à la fin les "end" ou "return true", je comprends pas bien quand et pourquoi. D'autant plus que quand j'essais de modifier un code qui en contient plusieurs, je me retrouve avec des erreur du type "end near blabla <eof> blabla". Là je rame un peu.
Merci j'vais tester ça quand ma fille daignera faire sa sieste ^^.
Elvenwarrior, google translator is evil But speak french is most evil . i hate this language grr.
Forgives me i continue in french with diarmuid, it's easiest for me.
Sinon diarmuid y a un truc que je comprends pas sur le lua. J'essais de chopper des idées à droite à gauche. Je suis pas complêtement un imbécile, donc je me dis qu'avec le temps j'arriverais à me demerder. Bref, je vois dans des codes des lignes décallée en vertical, est obligatoire ou c'est juste pour s'y retrouver? Et surtout à la fin les "end" ou "return true", je comprends pas bien quand et pourquoi. D'autant plus que quand j'essais de modifier un code qui en contient plusieurs, je me retrouve avec des erreur du type "end near blabla <eof> blabla". Là je rame un peu.
Re: Help needed for little script.
@Elven warrior, I was just helping with his specific questions.
@Yann, ah attendre qu le petit dorme, de bons souvenirs. Là à trois ans et demi mon garçon ne fait plus de sieste, mais il y a un an les weekends c'était vite sur Grimrock l'après-midi .
Les end, c'est pour montrer la fin d'un "bloc" en Lua. À chaque fois que tu commences une function, un if, un for, un while, tu dois dire au script où ça finit.
function [...] end
if [...] end
if [...] elseif [...] else [...] end
for i = 1, 4 do [...] end
si chaque mot clé en Lua n'a pas son end correspondant, ça marche pas.
pour les retraits verticaux, effectivement c'est juste pour rendre ça plus lisible.
Pour ce qui est du return, c'est la valeur que retourne une fonction. Pour certains hooks, par exemple, comme onMove, si tu retournes false, ça empêche le mouvement. Pour onDie par contre, le monstre est déjà mort, donc retourner quoi que ce soit ne change rien.
@Yann, ah attendre qu le petit dorme, de bons souvenirs. Là à trois ans et demi mon garçon ne fait plus de sieste, mais il y a un an les weekends c'était vite sur Grimrock l'après-midi .
Les end, c'est pour montrer la fin d'un "bloc" en Lua. À chaque fois que tu commences une function, un if, un for, un while, tu dois dire au script où ça finit.
function [...] end
if [...] end
if [...] elseif [...] else [...] end
for i = 1, 4 do [...] end
si chaque mot clé en Lua n'a pas son end correspondant, ça marche pas.
pour les retraits verticaux, effectivement c'est juste pour rendre ça plus lisible.
Pour ce qui est du return, c'est la valeur que retourne une fonction. Pour certains hooks, par exemple, comme onMove, si tu retournes false, ça empêche le mouvement. Pour onDie par contre, le monstre est déjà mort, donc retourner quoi que ce soit ne change rien.
-
- Posts: 8
- Joined: Fri Oct 11, 2013 2:22 pm
Re: Help needed for little script.
7 mois et demi. Un vrai trésor mais quand elle râle avant sa sieste c'est pas drôle tous les jours. Encore moins que sa sieste dure pas plus de25 minutes deux fois par jours. Ca fait pas beaucoup de temps sur grimrock.
Merci pour les eclaircissement en tout cas. Ca m'aide beaucoup.
Edit: Euh arrêtes moi si je me trompe, mais un script simple ça peut se résumer à "si l'objet X est en l'état Y alors l'évènement Z défini se produit"?
Merci pour les eclaircissement en tout cas. Ca m'aide beaucoup.
Edit: Euh arrêtes moi si je me trompe, mais un script simple ça peut se résumer à "si l'objet X est en l'état Y alors l'évènement Z défini se produit"?