| Possibilités de IF | |
|
|
Auteur | Message |
---|
-a-timburton-a- Cliqueur Emérite
Nombre de messages : 588
Date d'inscription : 17/05/2010
| Sujet: 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. |
|
| |
Asraroth Disciple de la Grande Tasse Bleue
Nombre de messages : 1468
Age : 49
Date d'inscription : 20/10/2006
| Sujet: 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". |
|
| |
-a-timburton-a- Cliqueur Emérite
Nombre de messages : 588
Date d'inscription : 17/05/2010
| Sujet: 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 |
|
| |
Asraroth Disciple de la Grande Tasse Bleue
Nombre de messages : 1468
Age : 49
Date d'inscription : 20/10/2006
| Sujet: 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; |
|
| |
-a-timburton-a- Cliqueur Emérite
Nombre de messages : 588
Date d'inscription : 17/05/2010
| Sujet: 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
|
|
| |
flotant Adepte de la Grande Tasse Bleue
Nombre de messages : 168
Age : 48
Date d'inscription : 13/06/2010
| Sujet: 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. : : _________________ Il vaut mieux vivre ses rêves que de rêver sa vie............
|
|
| |
-a-timburton-a- Cliqueur Emérite
Nombre de messages : 588
Date d'inscription : 17/05/2010
| Sujet: 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 ^^ |
|
| |
flotant Adepte de la Grande Tasse Bleue
Nombre de messages : 168
Age : 48
Date d'inscription : 13/06/2010
| Sujet: 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 !!!! : : _________________ Il vaut mieux vivre ses rêves que de rêver sa vie............
|
|
| |
Asraroth Disciple de la Grande Tasse Bleue
Nombre de messages : 1468
Age : 49
Date d'inscription : 20/10/2006
| Sujet: 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) : |
|
| |
mikeen2d C'est quoi la Tasse Bleue ?
Nombre de messages : 27
Age : 40
Localisation : Montpellier
Date d'inscription : 05/09/2010
| Sujet: 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 |
|
| |
mikeen2d C'est quoi la Tasse Bleue ?
Nombre de messages : 27
Age : 40
Localisation : Montpellier
Date d'inscription : 05/09/2010
| Sujet: 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)" |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: 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 ! |
|
| |
mikeen2d C'est quoi la Tasse Bleue ?
Nombre de messages : 27
Age : 40
Localisation : Montpellier
Date d'inscription : 05/09/2010
| Sujet: 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 ? |
|
| |
Benjiman33 Cliqueur Amateur
Nombre de messages : 312
Age : 38
Localisation : Bordeaux-Toulouse
Date d'inscription : 27/07/2007
| Sujet: 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) |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: 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 ! |
|
| |
mikeen2d C'est quoi la Tasse Bleue ?
Nombre de messages : 27
Age : 40
Localisation : Montpellier
Date d'inscription : 05/09/2010
| Sujet: 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. |
|
| |
Contenu sponsorisé
| Sujet: Re: Possibilités de IF | |
| |
|
| |
| Possibilités de IF | |
|