Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 [résolu]fonction, condition

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: [résolu]fonction, condition   Dim 24 Juil 2016 - 18:04

Bonjour,

grace à  Ariann et le module Dragdrop, j'ai réussi à mettre en place une énigme.



Le joueur devra mettre en place les images d'oiseaux sur le nom correspondant, si l'ordre est bon, cela déclenchera un texte ou un évènement.
J'ai beau chercher dans les tutoriels et les forums, je ne trouve pas comment faire.
Dois-je mettre sur les noms un hotspots, une région ???
Comment créer la condition pour déclencher la suite.

Je ne suis pas encore très doué, mais je persévère!!!

Merci pour votre aide.


Dernière édition par dominouhe le Mar 26 Juil 2016 - 6:47, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu]fonction, condition   Lun 25 Juil 2016 - 3:32

Salut dominouhe,

Voilà un proposition :

  1. Dans ta pièce, dessine pour chaque case une région spécifique correspondant à la zone dans laquelle devra se trouver le coin bas-gauche de chaque image (idéalement ce serait juste un point, mais les joueur.se.s ne seront probablement pas si précis.es)
  2. Dans la fonction repeatedly_execute du module Dragdrop, insère une ligne avec l'instruction CallRoomScript(0); en dessous de dragdrop.isDragging = false;
  3. Dans le script de ta pièce, insère le code suivant :
    Code:
    function on_call (int valeur) {
      if (valeur == 0) {
        if (Region.GetAtRoomXY(oChevalierGambette.X, oChevalierGambette.Y) == region[1] &&
            Region.GetAtRoomXY(oMouetteRieuse.X, oMouetteRieuse.Y) == region[2] &&
            Region.GetAtRoomXY(oAigrette.X, oAigrette.Y) == region[3] &&
            Region.GetAtRoomXY(oAvocette.X, oAvocette.Y) == region[4] &&
            Region.GetAtRoomXY(oHeron.X, oHeron.Y) == region[5] &&
            Region.GetAtRoomXY(oEchasseBlanche.X, oEchasseBlanche.Y) == region[6]) {
        
          // Le code que tu veux exécuter lorsque le placement est bon

        }
      }
    }



Tu auras compris que j'ai supposé certains noms pour tes images-objets, mais c'est à toi d'adapter avec les noms que tu leur as vraiment donnés. Même chose pour les numéros de région que j'ai assignés de gauche à droite et de haut en bas.

_________________
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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]fonction, condition   Lun 25 Juil 2016 - 9:42

Super, merci Kitai   (et en plus tu connais bien les oiseaux des marais), je ne risquais pas trouver tout seul.

Que peux tu me conseiller pour apprendre mieux cette programmation?


Dernière édition par dominouhe le Lun 25 Juil 2016 - 17:17, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]fonction, condition   Lun 25 Juil 2016 - 10:07

Ce n'est pas possible !!! triste
Maintenant j'ai une erreur avec "else".
Code:
// room script file
                   function on_call (int valeur){
          if (valeur == 0) {
            if (Region.GetAtRoomXY(oChevalierGambette.X, oChevalierGambette.Y) == region[1] &&
                Region.GetAtRoomXY(oMouetteRieuse.X, oMouetteRieuse.Y) == region[2] &&
                Region.GetAtRoomXY(oAigrette.X, oAigrette.Y) == region[3] &&
                Region.GetAtRoomXY(oAvocette.X, oAvocette.Y) == region[4] &&
                Region.GetAtRoomXY(oHeron.X, oHeron.Y) == region[5] &&
                Region.GetAtRoomXY(oEchasseBlanche.X, oEchasseBlanche.Y) == region[6]) {
            
              // Le code à exécuter lorsque le classement est bon
                Display ("Bravo le classement est bon!");
                
                 // Le code à exécuter lorsque le classement n'est pas bon
              else {
                Display ("Désolé il y a au moins une erreur dans le classement!");
              }
             }
          }
        }
        
                    
Failed to save room room1.crm; details below
room1.asc(15): Error (line 15): PE04: parse error at 'else'

Je commence à ne plus avoir de cheveux à force de me les arracher!!!!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: [résolu]fonction, condition   Lun 25 Juil 2016 - 10:25

Bin compte tes "}" aussi, tu auras moins d’erreurs ! clin d\\\\'oeil Il en manque une ou deux avant le else.

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]fonction, condition   Lun 25 Juil 2016 - 10:42

Si je met ça:
Code:
// room script file
                   function on_call (int valeur){
          if (valeur == 0) {
            if (Region.GetAtRoomXY(oChevalierGambette.X, oChevalierGambette.Y) == region[1] &&
                Region.GetAtRoomXY(oMouetteRieuse.X, oMouetteRieuse.Y) == region[2] &&
                Region.GetAtRoomXY(oAigrette.X, oAigrette.Y) == region[3] &&
                Region.GetAtRoomXY(oAvocette.X, oAvocette.Y) == region[4] &&
                Region.GetAtRoomXY(oHeron.X, oHeron.Y) == region[5] &&
                Region.GetAtRoomXY(oEchasseBlanche.X, oEchasseBlanche.Y) == region[6]) {
            
              // Le code à exécuter lorsque le classement est bon
                Display ("Bravo le classement est bon!");
                
              
             }
          }
        }
        
                    

ça fonctionne.

Si je rajoute else:

Code:
// room script file
                   function on_call (int valeur){
          if (valeur == 0) {
            if (Region.GetAtRoomXY(oChevalierGambette.X, oChevalierGambette.Y) == region[1] &&
                Region.GetAtRoomXY(oMouetteRieuse.X, oMouetteRieuse.Y) == region[2] &&
                Region.GetAtRoomXY(oAigrette.X, oAigrette.Y) == region[3] &&
                Region.GetAtRoomXY(oAvocette.X, oAvocette.Y) == region[4] &&
                Region.GetAtRoomXY(oHeron.X, oHeron.Y) == region[5] &&
                Region.GetAtRoomXY(oEchasseBlanche.X, oEchasseBlanche.Y) == region[6]) {
            
              // Le code à exécuter lorsque le classement est bon
                Display ("Bravo le classement est bon!");
                
                 // Le code à exécuter lorsque le classement n'est pas bon
              else {
                Display ("Désolé il y a au moins une erreur dans le classement!");
              }
             }
          }
        }
        
                    

erreur !!!

Je ne vois pas où il manque des }
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: [résolu]fonction, condition   Lun 25 Juil 2016 - 11:05

Juste avant le else.
La structure, c'est:
Code:
if (condition) {
   // des trucs
} else {
   // d'autres trucs
}

_________________
Mon petit DevBlog


Dernière édition par Billbis le Lun 25 Juil 2016 - 13:02, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]fonction, condition   Lun 25 Juil 2016 - 11:35

Merci Billbis, c'était pourtant simple !!!!

Serait il possible que le message "Désolé il y a au moins une erreur dans le classement!", n’apparaisse que lorsque les 6 images sont en place, car pour l'instant le message s'affiche après le déplacement de chaque "objet"?


Dernière édition par dominouhe le Lun 25 Juil 2016 - 17:18, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]fonction, condition   Lun 25 Juil 2016 - 16:53

Voia ce que j'ai trouvé comme solution, y a t'il quelque chose de plus simple?

Code:
       // room script file
                           function on_call (int valeur){
                  if (valeur == 0) {
                    if (Region.GetAtRoomXY(oChevalierGambette.X, oChevalierGambette.Y) == region[1] &&
                        Region.GetAtRoomXY(oMouetteRieuse.X, oMouetteRieuse.Y) == region[2] &&
                        Region.GetAtRoomXY(oAigrette.X, oAigrette.Y) == region[3] &&
                        Region.GetAtRoomXY(oAvocette.X, oAvocette.Y) == region[4] &&
                        Region.GetAtRoomXY(oHeron.X, oHeron.Y) == region[5] &&
                        Region.GetAtRoomXY(oEchasseBlanche.X, oEchasseBlanche.Y) == region[6]) {
                    
                      // Le code à exécuter lorsque le classement est bon
                        Display ("Bravo le classement est bon!");
                        }
                         // Le code à exécuter lorsque le classement n'est pas bon
                      else if ( oChevalierGambette.X >441 &&
                                oMouetteRieuse.X >441 &&
                                oAigrette.X >441 &&
                                oAvocette.X >411 &&
                                oHeron.X >411 &&
                                oEchasseBlanche.X){
                        
                        Display ("désolé il y a au moins une erreur dans le classement!");                      
                     }
                  }
                }
                
                            
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu]fonction, condition   Lun 25 Juil 2016 - 21:46

dominouhe a écrit:
Voia ce que j'ai trouvé comme solution, y a t'il quelque chose de plus simple?
Plus simple je sais pas, mais ce qui suit est je pense plus "propre", plus proche de ce que tu recherches :
Code:
// room script file
function on_call (int valeur){
  if (valeur == 0) {
    // On récupère la région sous chaque image
    Region* rChevalierGambette = Region.GetAtRoomXY(oChevalierGambette.X, oChevalierGambette.Y),
            rMouetteRieuse = Region.GetAtRoomXY(oMouetteRieuse.X, oMouetteRieuse.Y),
            rAigrette = Region.GetAtRoomXY(oAigrette.X, oAigrette.Y),
            rAvocette = Region.GetAtRoomXY(oAvocette.X, oAvocette.Y),
            rHeron = Region.GetAtRoomXY(oHeron.X, oHeron.Y),
            rEchasseBlanche = Region.GetAtRoomXY(oEchasseBlanche.X, oEchasseBlanche.Y);

    // Si toutes les images ont été placées sur une région...
    if (rChevalierGambette != region[0] && rMouetteRieuse != region[0] &&
        rAigrette != region[0] && rAvocette != region[0] &&
        rHeron != region[0] && rEchasseBlanche != region[0]) {

      // Si chaque image est placée sur sa région...
      if (rChevalierGambette == region[1] && rMouetteRieuse == region[2] &&
          rAigrette == region[3] && rAvocette == region[4] &&
          rHeron == region[5] && rEchasseBlanche == region[6]) {
      
        Display ("Bravo le classement est bon!");

      }
    
      // Sinon, il y a au moins deux images qui sont mal placées (car il ne peut pas y en avoir une seule)
      else {

        Display ("désolé il y a au moins une erreur dans le classement!");

      }
    }
  }
}

_________________
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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]fonction, condition   Mar 26 Juil 2016 - 6:36

Merci Kitai.

Recupérer les régions: J'ai encore appris quelque chose!

Citation :
/ Sinon, il y a au moins deux images qui sont mal placées (car il ne peut pas y en avoir une seule)
Mais oui bien sur, je n'y avait pas pensé.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [résolu]fonction, condition   Aujourd'hui à 8:00

Revenir en haut Aller en bas
 
[résolu]fonction, condition
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Etude sur la condition humaine.
» commande Wait-Condition
» Script condition ?
» Pandawa feu level 105
» Comment Tuer un ennemis avec certaines conditions

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: