| Le walk de mon perso ne semble pas fonctionner... | |
|
|
|
Auteur | Message |
---|
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 23:35 | |
| Oh, bien vu ! Bon bah le plus simple est d'opter pour la solution rétro-compatibilité |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mar 5 Mai 2020 - 23:47 | |
| Nouvelle édition, exorcisée : [EDIT - https://we.tl/t-G0hkHeHRUt ] - Kitai a écrit:
- Pour l'utiliser c'est plutôt simple, si je reprends le premier exemple de @Ravaillac ça donne ça :
- Code:
-
function oBouquins_Look() { if (cMar.HasAsyncWalkedTo(2400, 1052, true)) { player.FaceDirection (eDirectionLeft); player.Say("Barney est très loin d'être un as du rangement."); } } Le code dans les { } sera exécuté seulement lorsque cMar aura atteint sa destination (= 2400,1052). J'ai passé un troisième argument à HasAsyncWalkedTo : true. Ça veut dire que cMar a le droit d'ignorer les walkable areas si au bout d'un moment elles suffisent plus pour atteindre sa destination.
Le module se charge aussi de détecter les clics "dans le vide" en mode WalkTo sur les walkable areas : si le personnage-joueur se trouve en dehors d'une walkable area à l'origine, il va commencer à se déplacer en les ignorant pour rejoindre la plus proche (techniquement, rejoindre le personnage fantôme automatiquement placé sur la walkable area la plus proche) puis à nouveau faire attention aux walkable areas dans ses déplacements une fois qu'il l'aura rejointe.
De façon générale, c'est une bonne idée de remplacer tous les Walk(x, y, eNoBlock) par AsyncWalk(x,y), histoire d'être sûr que les persos se retrouvent jamais bloqués s'ils se trouvent hors d'une walkable area au moment où la fonction est appelée.
Dernière note : HasAsyncWalkedTo ne fonctionne que dans les fonction d'interaction, celles qu'on génère depuis la grille de propriétés des persos/objets/hotspots/objets d'inventaire. Par exemple ça marchera pas au milieu d'un dialogue. Toujours heureux de répondre à toute question
Dernière édition par Kitai le Lun 11 Mai 2020 - 18:07, édité 1 fois (Raison : Remplace par le bon lien) |
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Dim 10 Mai 2020 - 5:05 | |
| Merci à vous deux pour votre implication dans la recherche de solutions !!
Désolé de pas avoir donné de nouvelles mais j'avais fait un petit break avec AGS je me prenais trop la tête dessus je faisais une overdose.
Cependant je n'ai pas bien compris quoi faire de ce fichier .asc, la fonction ci-dessus ne semble pas fonctionner sans celui-ci.
_________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Dim 10 Mai 2020 - 17:37 | |
| C'est un fichier .scm : c'est un module, c'est-à-dire une paire de fichiers en-tête .ash et corps .asc. Ça te dit quelque chose ? Tu l'importes dans ton projet et ça te permet d'utiliser la fonction HasAsyncWalkedTo dans le reste de tes scripts, comme dans la fonction oBouquins_Look de ton global script par exemple, comme illustré dans mon message. Dans mon exemple, ça va permettre au perso de marcher jusqu'à destination même si cette destination est hors d'une walkable area (en dehors des limites de la pièce par exemple) et une fois arrivé à destination seulement exécuter le reste du code. Et si tu cliques ailleurs entre-temps, avant que le perso arrive à destination, ça va tout annuler comme tu le voulais. _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 11 Mai 2020 - 16:28 | |
| Yeah merci beaucoup Kitai !! Cependant il n'y a qu'un fichier .asc donc c'est pour ça que je me posais la question... - Citation :
- Et si tu cliques ailleurs entre-temps, avant que le perso arrive à destination, ça va tout annuler comme tu le voulais.
...Et merci pour ça aussi, c'est vrai que ça me chagrinait ma race de pas pouvoir faire cela. _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 11 Mai 2020 - 18:06 | |
| - Ravaillac a écrit:
- Cependant il n'y a qu'un fichier .asc donc c'est pour ça que je me posais la question...
Ah tiens oui... Je pensais pourtant avoir vérifié après ton message, peut-être que j'ai suivi le lien de la première version à la place Bref, voilà un lien vers le fichier .scm : https://we.tl/t-G0hkHeHRUt_________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 11 Mai 2020 - 18:19 | |
| - Ravaillac a écrit:
- Citation :
- Et si tu cliques ailleurs entre-temps, avant que le perso arrive à destination, ça va tout annuler comme tu le voulais.
...Et merci pour ça aussi, c'est vrai que ça me chagrinait ma race de pas pouvoir faire cela. Par contre si j'ai bien compris et si tu veux le faire de manière systématique, il faudra que tu utilises AsyncWalk (ou HasAsyncWalkedTo ?) au lieu de Walk à chaque interaction. Ça veut dire aussi faire attention à ce que les coordonnées correspondent aux WalkableAreas sauf quand c'est nécessaire de faire autrement. @Kitai me démentira si je dis des bêtises. D'ailleurs, question pour ce dernier, qu'est-ce qui se passe au niveau du scaling du perso quand il sort d'une WalkableArea ? Autre question sur un point de détail : c'est voulu de passer par WeTransfer plutôt que Dropbox ou un hébergeur plus permanent ? Parce que là tes liens ne sont valables que 7 jours, normalement. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Lun 11 Mai 2020 - 18:32 | |
| - valoulef a écrit:
- Par contre si j'ai bien compris et si tu veux le faire de manière systématique, il faudra que tu utilises AsyncWalk (ou HasAsyncWalkedTo ?) au lieu de Walk à chaque interaction.
Oui, c'est le principe : tu utilises HasAsyncWalkedTo lorsque tu veux faire marcher le perso vers une destination (potentiellement hors walkable area) et déclencer la suite de l'interaction uniquement une fois la destination atteinte, avec possibilité d'annuler entre-temps. Ça reste tout à fait possible d'utiliser Walk(..., eBlock) ailleurs au besoin, par exemple pour une interaction vitale au déroulement du jeu que les joueurs doivent pas pouvoir annuler. - valoulef a écrit:
- Ça veut dire aussi faire attention à ce que les coordonnées correspondent aux WalkableAreas sauf quand c'est nécessaire de faire autrement.
C'est pour ça que je suggérais de remplacer les commandes Walk(..., eNoBlock) par AsyncWalk, qui sait gérer les points de départ hors walkable areas. Le module quant à lui déclenche automatiquement AsyncWalk lors d'un clic en mode WalkTo sur une walkable area, donc pas de souci à se faire de ce côté là. - valoulef a écrit:
- D'ailleurs, question pour ce dernier, qu'est-ce qui se passe au niveau du scaling du perso quand il sort d'une WalkableArea ?
D'après mes tests (limités) ça conserve le scaling le plus récent. J'ai essayé avec un max scaling de 120% sur le bord bas de la pièce, et mon perso a conservé un scaling de 120% après avoir débordé de la pièce vers le bas. - valoulef a écrit:
- Autre question sur un point de détail : c'est voulu de passer par WeTransfer plutôt que Dropbox ou un hébergeur plus permanent ? Parce que là tes liens ne sont valables que 7 jours, normalement.
Je savais pas ça. J'aime pas Dropbox, donc j'ai sauté sur l'occasion d'utiliser autre chose. Ma Dropbox commence à être un peu pleine et je l'ai pas synchronisée sur mon ordi, c'est chiant de se log in tout ça. Je verrai peut-être à ajouter ça à Gitlab. _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mer 13 Mai 2020 - 3:07 | |
| Bon bah bon, bon... J'ai testé ce petit module personnalisé-spécialement-pour-moi mais je n'ai pas pu le voir à l’œuvre hélas... étant donné qu'il n'y a plus que le curseur de base/flèche de déplacement, et que pour utiliser la fonction "look" ou "use" de mon perso il faut cliquer droit pour les voir dérouler, comme dans Sam&Max ou dans je ne sais plus quel template de base. Template de base sur lequel j'ai d'ailleurs chouré la fonction de la souris pour avoir cette particularité du curseur. (voir ci-dessous) - Code:
-
// called when a mouse button is clicked function on_mouse_click(MouseButton button) { if (IsGamePaused()) { // game is paused, so do nothing (i.e. don't process mouse clicks) } else if (button == eMouseLeft) { // left-click, so try using the current mouse cursor mode at this position Room.ProcessClick(mouse.x, mouse.y, mouse.Mode); } else if (button == eMouseRight) { // right-click, so cycle the mouse cursor mode mouse.SelectNextMode(); } else if (button == eMouseWheelNorth) { mouse.SelectNextMode(); } else if (button == eMouseWheelSouth) { mouse.SelectNextMode(); } } J'imagine que ton petit module fonctionne, mais je ne comprends pas trop pourquoi ça "bloque", au sens premier du terme... Car mon perso est bloqué avec la fonction "déplacer" du curseur par défaut. Cependant ce qui est cool c'est que quand il se dirige vers un hotspot apparemment le joueur peut changer d'avis et l'envoyer ailleurs en cours de route s'il le souhaite. Et ça, c'est cool. Merci encore _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Mer 13 Mai 2020 - 15:44 | |
| Ouvre le corps du script et ajoute cette ligne directement sous la ligne function on_mouse_click (MouseButton button) {: - Code:
-
if (button != eMouseLeft) return; _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Jeu 14 Mai 2020 - 3:24 | |
| Arg. Merci mais malheureusement ça ne change rien. ><
_________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Jeu 14 Mai 2020 - 17:05 | |
| Je me rends compte que mon message était ambigu : tu as bien ajouté la ligne à Async.asc, et non pas au code de ton message précédent ? _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
|
| |
Jorkz Cliqueur Emérite
Nombre de messages : 666
Age : 40
Localisation : Montpellier
Date d'inscription : 16/07/2006
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... Ven 15 Mai 2020 - 2:07 | |
| ahah non je l'ai mis sur le globalscript normal... Là c'est bon, dans le Async.asc ça fonctionne. Merci ! _________________ L' est si forte à la course qu'elle en sort de la phrase. autruche
|
|
| |
Contenu sponsorisé
| Sujet: Re: Le walk de mon perso ne semble pas fonctionner... | |
| |
|
| |
| Le walk de mon perso ne semble pas fonctionner... | |
|