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

Partagez | 
 

 Possibilités de IF

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
-a-timburton-a-
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 588

Date d'inscription : 17/05/2010


MessageSujet: Possibilités de IF   Mar 29 Juin 2010 - 20:19

Hello,

Sincèrement je ne sais pas vraiment programmer des trucs avec IF, sans que l'on m'aide.

Quelqu'un pourrait il faire une légère liste des trucs jugés "importants" s'il vous plait?
Du genre " Si on possède tel objet" "Si vous avez regarder cet objet" "si vous avez interagi avec cet objet".

Bref, c'est les trucs que je ne saurais pas écrire, et qui me semblent êtres importants.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1431

Age : 41

Date d'inscription : 20/10/2006


MessageSujet: Re: Possibilités de IF   Mar 29 Juin 2010 - 21:12

A part (peut-être/surement) pour "si on possède tel objet", il n'y à pas de fonction pour les autres. Il te faut le gérer toi-même dans ton script. Pour ce faire, le + simple (à mon avis), est d'utiliser des variables booléennes. [Rappel : Une variable booléenne peut prendre comme valeur "True" (Vrai) ou "False" (Faux)]
Aussi, il te suffit d'initialiser tout un tas de variables (globales) booléennes à "False", et de les passer à "True" lorsque l'action est réalisée.

Exemple : Gérer le fait que le joueur regarde la citrouille à plusieurs reprises
1°/ création d'une variable Global "CitrouilleVue" initialisé à False
2°/ sur l'évènement "LookAt" de la citrouille :
Code:
if (!CitrouilleVue){
  player.say("Quelle belle citrouille !");
  CitrouilleVue = True;
} else {
  player.say("Cette citrouille ne m'est pas inconnue");
}
La 1ere fois que le joueur regardera la citrouille, il aura le message "Quelle belle citrouille !". Et les fois suivantes, le message "Cette citrouille ne m'est pas inconnue".





Revenir en haut Aller en bas
Voir le profil de l'utilisateur
-a-timburton-a-
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 588

Date d'inscription : 17/05/2010


MessageSujet: Re: Possibilités de IF   Mar 29 Juin 2010 - 21:15

Merci
Globalement, la "Global variable" c'est l'équivalent des interrupteurs dans RPGMaker.

Et quelle serait la commande pour " si on possède tel objet"
Ô grand Asraroth, seigneur des flammes infernales de la connaissance ultime.

EDIT: j'ai trouvé ^^ c'est RESOLU
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1431

Age : 41

Date d'inscription : 20/10/2006


MessageSujet: Re: Possibilités de IF   Mar 29 Juin 2010 - 21:30

Je ne m'en souviens pas, et sur mon poste perso, l'aide d'AGS ne fonctionne pas.
Sur Cadaver Heart, dans un soucis de lisibilité du code, j'ai employé la même technique. C'est à dire, utiliser des variables booléennes. Exemple :
Code:
bool PossedeArrosoir = false;
Code:
function PickUp_Arrosoir(){
  oArrosoir.Visible = false;
  player.AddInventory(iArrosoir);
  PossedeArrosoir = true;
}
Après, en cas de besoin, il reste qu'a tester la variable 'PossedeArrosoir' :
Code:
If (PossedeArrosoir)...
Si le joueur jète l'arrosoir, ou que l'arrosoir disparait après utilisation, ne pas oublier de mettre :
Code:
PossedeArrosoir = false;
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
-a-timburton-a-
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 588

Date d'inscription : 17/05/2010


MessageSujet: Re: Possibilités de IF   Mar 29 Juin 2010 - 21:36

J'avais réussi.

mais merci d'avoir approfondi le sujet.

Longue vie à toi.

je me soumet à ta toute puissance.
Je ne sais plus quoi dire pour te faire plaisir
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
flotant
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 168

Age : 40

Date d'inscription : 13/06/2010


MessageSujet: Re: Possibilités de IF   Mer 30 Juin 2010 - 10:16

Merci
Oui merci car en lisant les questions et réponses j'apprends des choses et me conforte dans d'autres. Je pense comme beaucoups d'autres. :cool:

_________________
Il vaut mieux vivre ses rêves que de rêver sa vie............
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
-a-timburton-a-
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 588

Date d'inscription : 17/05/2010


MessageSujet: Re: Possibilités de IF   Mer 30 Juin 2010 - 10:21

Surtout en lisant celles des autres, ça t'évite de passer pour un c** en posant toi même la question ^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
flotant
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 168

Age : 40

Date d'inscription : 13/06/2010


MessageSujet: Re: Possibilités de IF   Mer 30 Juin 2010 - 10:29

Oui je tu as raison et comme déjà dis
(accent chinois) celui qui pose une question est idiot 5 minutes, celui qui pose pas de question est idiot toute sa vie.

On pourrai le faire en if !!!! :clin d\\\\'oeil:

_________________
Il vaut mieux vivre ses rêves que de rêver sa vie............
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1431

Age : 41

Date d'inscription : 20/10/2006


MessageSujet: Re: Possibilités de IF   Mer 30 Juin 2010 - 17:15

En même temps, le forum est fait pour çà... donc faut pas hésiter à poser des questions (après avoir lu les tutos de Shai-La) grand sourire:
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mikeen2d
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?


Nombre de messages : 27

Age : 32

Localisation : Montpellier

Date d'inscription : 05/09/2010


MessageSujet: Re: Possibilités de IF   Mar 7 Sep 2010 - 20:40

message effacé . désolé me suis trompé de citation .


Dernière édition par mikeen2d le Mar 7 Sep 2010 - 20:42, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mikeen2d
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?


Nombre de messages : 27

Age : 32

Localisation : Montpellier

Date d'inscription : 05/09/2010


MessageSujet: Re: Possibilités de IF   Mar 7 Sep 2010 - 20:41

Asraroth a écrit:
A part (peut-être/surement) pour "si on possède tel objet", il n'y à pas de fonction pour les autres. Il te faut le gérer toi-même dans ton script. Pour ce faire, le + simple (à mon avis), est d'utiliser des variables booléennes. [Rappel : Une variable booléenne peut prendre comme valeur "True" (Vrai) ou "False" (Faux)]
Aussi, il te suffit d'initialiser tout un tas de variables (globales) booléennes à "False", et de les passer à "True" lorsque l'action est réalisée.

Exemple : Gérer le fait que le joueur regarde la citrouille à plusieurs reprises
1°/ création d'une variable Global "CitrouilleVue" initialisé à False
2°/ sur l'évènement "LookAt" de la citrouille :
Code:
if (!CitrouilleVue){
  player.say("Quelle belle citrouille !");
  CitrouilleVue = True;
} else {
  player.say("Cette citrouille ne m'est pas inconnue");
}
La 1ere fois que le joueur regardera la citrouille, il aura le message "Quelle belle citrouille !". Et les fois suivantes, le message "Cette citrouille ne m'est pas inconnue".






Oui désolé je ressors de vieux post apparemment mais c'est pour m'éclairer un peu et c'est en rapport avec ce que j'essaye de faire.

Donc rebonsoir , je cherchais un moyen de faire dire à mon personnage lorsqu'il voit un même objet , différente tirade .
comme ici l'histoire de la citrouille .
Pour ma part c'est une mouche du nom de hmouche (un hotpost)

Je suis donc aller dans global variable et cliquer sur add a new variable.
J'ai mis comme non hmouche ,bool, et false
puis j'ai fais une fonction lorsque le perso vois la mouche comme ceci :


function hmouche_Look()
{
if (!hmouche){
player.say("c'est une mouche!");
hmouche = True;
} else {
player.say("En realite c'est une animation minable que j'ai fait");
}
}

et donc là j'ai un message d'erreur disant que hmouche est déjà utiliser par un autre item Oo : "Hotspot 'hmouche' script name conflicts with other game item"
je change alors le nom de ma global variable en "mouche"

et là j'ai ça qui apparait ... : room1.asc(43): Error (line 43): Operator cannot be applied to this type

la ligne 43 correspond au début de ma fonction cité plus haut .

J'ai remarqué aussi que j'ai beaucoup de mal à utilisé les if sans que je créais une erreur .

donc voilà je ne comprend pas trop aussi le "if (!hmouche)"
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: Possibilités de IF   Mar 7 Sep 2010 - 22:07

mikeen2d a écrit:
et donc là j'ai un message d'erreur disant que hmouche est déjà utiliser par un autre item Oo : "Hotspot 'hmouche' script name conflicts with other game item"
En effet, ce nom, hmouche, c'est le nom de ton hotspot ^^
Toi tu l'utilises comme une variable booléenne (qui peut être soit vraie soit fausse), ce qui est absurde pour AGS, qui lui ne reconnaît hmouche que comme dénotant un hotspot qui ne peut intrinsèquement pas être vrai ou faux.

mikeen2d a écrit:
je change alors le nom de ma global variable en "mouche"
La solution est bien effectivement de créer une variable bien à soi, dont le nom n'est pas déjà utilisé par un autre élément global du jeu (les hotspots sont des éléments globaux du jeu).

mikeen2d a écrit:
et là j'ai ça qui apparait ... : room1.asc(43): Error (line 43): Operator cannot be applied to this type
Là je ne suis pas bien certain de saisir : as-tu bien remplacé if (!hmouche){ par if (!mouche) ? Es-tu sûr que "mouche" n'est pas déjà utilisé par un autre élément global ? (Si c'est le cas, il devrait logiquement apparaître automatiquement lorsque tu le tapes dans le script, comme apparaissent par exemple les noms d'objet, de persos, etc. S'il y a deux lignes "mouche" qui apparaissent, alors tu as sûrement nommé deux éléments distincts de la même façon, ce qui créera un conflit)
Enfin, où déclares-tu ta variable mouche ? Dans l'onglet Global Variables ?

_________________
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
mikeen2d
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?


Nombre de messages : 27

Age : 32

Localisation : Montpellier

Date d'inscription : 05/09/2010


MessageSujet: Re: Possibilités de IF   Mer 8 Sep 2010 - 6:02

ah ok je doit remplacé egalement !hmouche par la global variable , c'est logique donc !!
et bin ça marche alors !!merci Kitai

Donc si je résume je ne peux pas appeler un hotpost ou objet en commençant par h ou o puisque ceux ci sont déjà utilisé , c'est bien ça ?
Je ne peux donc les utiliser si je dois uniquement changer leur propriété ? comme move , ou un événement ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Benjiman33
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 312

Age : 30

Localisation : Bordeaux-Toulouse

Date d'inscription : 27/07/2007


MessageSujet: Re: Possibilités de IF   Mer 8 Sep 2010 - 8:39

Kitai a raison tu ne peux pas appeler à la fois un hotspot hmouche et une variable globale hmouche.

Citation :
Donc si je résume je ne peux pas appeler un hotpost ou objet en commençant par h ou o puisque ceux ci sont déjà utilisé , c'est bien ça ?

Si justement, lorsque tu créé un hotspot (une mouche en l'occurence) appelle le hmouche. Mais c'est lorsque tu crée une variable dans "global variable" que tu ne peux pas l'appeler "hmouche" puisque c'est déjà le nom de ton hotspot. Donc appelle la variable différemment ("mouche" comme tu l'a fait c'est bon)
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: Possibilités de IF   Mer 8 Sep 2010 - 14:48

mikeen2d a écrit:
Donc si je résume je ne peux pas appeler un hotpost ou objet en commençant par h ou o puisque ceux ci sont déjà utilisé , c'est bien ça ?
Je ne peux donc les utiliser si je dois uniquement changer leur propriété ? comme move , ou un événement ?
Comme l'explique Benjiman33, on fait généralement précédé le nom qu'on veut donner à un hotspot de la lettre h, la lettre o pour les objets, c pour les personnages (Characters), etc.
Ces noms font références aux hotspots/objets/personnages eux-mêmes, directement. Tu peux les redéfinir dans l'onglet de propriétés de ces éléments (généralement sous le sous-titre Design à la ligne Name).

J'ai l'impression que toi tu fais un amalgame entre le nom de ces éléments et la variable globale (définie dans le menu Global variables, elle) dont tu te sers dans la fonction hmouche_Look. La variable globale mouche que tu as créée n'est reliée au hotspot hmouche que parce que tu l'utilises dans cette fonction (qui est, à son tour, liée au hotspot : elle se déclenche lorsque le joueur le regarde), et uniquement pour ça.
De façon plus générale, une variable globale n'est liée à rien d'autre qu'elle-même. C'est toi qui lui donnes un sens en l'utilisant à des endroits pertinents ; et généralement tu vas décider de donner un nom cohérent à ta variable globale pour mieux t'y retrouver. Mais l'interprétateur d'AGS, lui, se fiche pas mal de la forme du nom des éléments : ce qui lui importe c'est que chaque élément ait un nom distinct.

Dans ton cas, il faut utiliser mouche et non pas hmouche dans le if parce que c'est bien la variable globale que tu as créée qu'on va utiliser dans la fonction hmouche_Look : elle vaut false par défaut (la valeur que tu lui as donnée dans Global variables) et on lui donne la valeur true lorsque le personnage regarde la mouche pour la première fois.
Dès lors, mouche vaudra true et la condition if (!mouche) ne pourra plus être remplie : le else va donc se déclencher et ton personnage dira "En realite c'est une animation minable que j'ai fait".

Utiliser hmouche (le hotspot) comme tu le faisais, c'était simplement incohérent : un hotspot n'est pas une variable booléenne.

_________________
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
mikeen2d
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?


Nombre de messages : 27

Age : 32

Localisation : Montpellier

Date d'inscription : 05/09/2010


MessageSujet: Re: Possibilités de IF   Mer 8 Sep 2010 - 18:40

ok je comprend mieux , effectivement j'ai tout confondu alors , j'aurais pu appeler ma variable global patate que ça aurais marché également . je te remercie Kitai c'est très clair comme explication (j'avoue que cette fonction je l'ai un peu marqué sans comprendre le principe réel)

je te remercie benjiman33 également pour ta réponse.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Possibilités de IF   Aujourd'hui à 19:14

Revenir en haut Aller en bas
 
Possibilités de IF
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu]Possibilité d'écriture en italique
» Une ville vivante, des possibilités infinies...
» Possibilité de laisser un message vocal direct au lapin ?
» Assassin's Creed : Brotherhood : Possibilité de rejouer les missions
» Les possibilités cachées de la Wii !

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: