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

Partagez | 
 

 [résolu]Conditions multiples

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
avatar

Nombre de messages : 131

Age : 61

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


MessageSujet: [résolu]Conditions multiples   Mer 18 Jan 2017 - 16:24

Bonjour,
j'ai un bouton qui me dirige vers 3 rooms suivant 3 conditions:

Code:
if(player.InventoryQuantity[11]== 1)     cBrett.ChangeRoom (53);
if(player.InventoryQuantity[9]== 1)     cBrett.ChangeRoom (49);
if(player.InventoryQuantity[11]== 0) &  if(player.InventoryQuantity[9]== 0)  cBrett.ChangeRoom (4);
Comment faire?

Merci


Dernière édition par dominouche le Jeu 19 Jan 2017 - 14:21, é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
avatar

Nombre de messages : 2549

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu]Conditions multiples   Mer 18 Jan 2017 - 16:51

Ta question est un peu vague, mais j'imagine que ton code entraîne un problème lors de la compilation. Essaie de la façon suivante :
Code:
if(player.InventoryQuantity[11]== 1)    cBrett.ChangeRoom (53);
else if(player.InventoryQuantity[9]== 1)    cBrett.ChangeRoom (49);
else if(player.InventoryQuantity[11]== 0 && player.InventoryQuantity[9]== 0)  cBrett.ChangeRoom (4);

_________________
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
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 1390

Age : 28

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: Re: [résolu]Conditions multiples   Mer 18 Jan 2017 - 16:55

Je me suis permis d'éditer ton message pour ajouter les balises de code.

Tu dois ajouter le mot-clé else (sinon) avant les deux dernières conditions. Ainsi, si la première condition est vérifiée, alors le code associé s'exécutera, et les deux autres conditions seront ignorées. Sinon, la deuxième sera vérifiée et ainsi de suite.

Attention sur la 3ème ligne : l'opérateur "&" ne peut pas s'utiliser comme ça. Si tu souhaites que les deux conditions soient vérifiées (et donc vraies toutes les deux) pour exécuter le code, alors tu dois utiliser l'opérateur "&&" (ET). Mais dans ton exemple, c'est impossible car elle s'excluent mutuellement*. Tu recherche certainement que le code s'exécute si l'une OU l'autre des conditions sont vérifiées. Il faut donc utiliser l'opérateur OU qui s'écrit avec deux barres verticales : || (touche 6). Plus d'infos ici sur les opérateurs.

Code:
if(player.InventoryQuantity[11]== 1)     cBrett.ChangeRoom (53);
else if(player.InventoryQuantity[9]== 1)     cBrett.ChangeRoom (49);
else if(player.InventoryQuantity[11]== 0  || player.InventoryQuantity[9]== 0)  cBrett.ChangeRoom (4);

*Edit : En fait je viens de me rendre compte que non, puisque si je comprends bien ce sont deux inventaires différents qui sont vérifiés. Donc je dis des bêtises, tu peux utiliser l'opérateur "&&" si c'est bien ce que tu veux faire. Mais bon comme ça tu auras les deux exemples.

_________________
"Je pense que la Terre tourne autour du soleil à une vitesse de 30 kilomètres par seconde et que je suis là, accroché à ce bolide de feu qui fonce d'un infini à un autre, accroché à une table, suspendu dans le vide, pendant que, sérieusement, drogué, abruti, inconscient, j'affirme que nous sommes désolés d'apprendre la perte d'un colis expédié le 4 et que nous ferons l'impossible pour réparer cet incident."

L'Employé, Jacques Sternberg.
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
avatar

Nombre de messages : 131

Age : 61

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]Conditions multiples   Mer 18 Jan 2017 - 22:16

Vous êtes vraiment tous super!
Des réponses rapides et efficaces!

Je ne savais pas que l'on pouvais mettre 2 "else" à la suite.
J'ai utilisé le script de Kitai et ça fonctionne!

Merci à vous 2.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Samaël Pyro
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
avatar

Nombre de messages : 20

Age : 20

Localisation : France - Normandie

Date d'inscription : 24/11/2015


MessageSujet: Re: [résolu]Conditions multiples   Dim 2 Avr 2017 - 21:47

Bonjour j'ai un problème de mon côté.
Je ne comprends trop comment marche le code ci-dessus.
Et j'aimerais pour ma part qu'une fois les bons items obtenus, que mon personnage dise qu'il en a finit pour cette zone du jeu. C'est a ce moment que j'active une walkable area et le fait changer de zone.
Je ne vois pas du tout comment faire surtout qu'il y a des items facultatifs dont le joueur n'a pas forcement besoin pour avancer (objectif Bonus/second)
.
J'espère m'être expliqué assez clairement et que vous pourrez répondre à mon problème au plus vite, merci d'avance!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://samaelpyro.deviantart.com/
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 1390

Age : 28

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: Re: [résolu]Conditions multiples   Dim 2 Avr 2017 - 22:12

Qu'est-ce que tu ne comprends pas dans le code ? Est-ce que quelque chose comme ça pourrait faire l'affaire ?

Dans la fonction de l'event    "First Load" de la room :
Code:
bool couverts = false;

Dans le repatedly_execute de la room :
Code:

if (!couverts){
 if ((player.HasInventory(iCouteau)) && (player.HasInventory(iFourchette)) && (player.HasInventory(iCuiller))){
   couverts = true;
   RestoreWalkableArea(2);
   player.WalkTo(600, 200, eBlock);
   RemoveWalkableArea(1);
 }
}

Remplacer évidemment par les bons objets d'inventaire.
En l'état tu ne pourras pas revenir en arrière.
Je ne détaille pas trop mais n'hésite pas à demander des explications supplémentaires.
(lalalère !)

_________________
"Je pense que la Terre tourne autour du soleil à une vitesse de 30 kilomètres par seconde et que je suis là, accroché à ce bolide de feu qui fonce d'un infini à un autre, accroché à une table, suspendu dans le vide, pendant que, sérieusement, drogué, abruti, inconscient, j'affirme que nous sommes désolés d'apprendre la perte d'un colis expédié le 4 et que nous ferons l'impossible pour réparer cet incident."

L'Employé, Jacques Sternberg.


Dernière édition par valoulef le Dim 2 Avr 2017 - 22:27, édité 5 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Samaël Pyro
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
avatar

Nombre de messages : 20

Age : 20

Localisation : France - Normandie

Date d'inscription : 24/11/2015


MessageSujet: Re: [résolu]Conditions multiples   Dim 2 Avr 2017 - 22:14

Merci beaucoup Valoulef! =D Je teste ça au plus vite.
Cela me permet d'avancer grandement dans mon jeu! =D
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://samaelpyro.deviantart.com/
Contenu sponsorisé




MessageSujet: Re: [résolu]Conditions multiples   

Revenir en haut Aller en bas
 
[résolu]Conditions multiples
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Conditions de victoire saison 2
» Besoin d'un tutoriel[résolu]
» [résolu]Questions sur "conditions,interrupteur,variable"
» [Résolu] Le mystère de la borne d'arcade !!
» [Résolu] Problème d'accès à http://192.168.0.1

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: