| [résolu]Bouton "Nouveau jeu" sur un gui | |
|
|
|
Auteur | Message |
---|
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: [résolu]Bouton "Nouveau jeu" sur un gui Sam 14 Jan 2012 - 13:54 | |
| Salut tout le monde, Voilà, je sais que quand je joue à un jeu de Shaila, au début, il y a dans le gui "nouveau", "Charger" et "Sauvegarder". J'aimerais connaitre le script pour "Nouveau jeu". Merci.
Dernière édition par Alph Eratz le Lun 6 Fév 2012 - 9:54, édité 1 fois |
|
| |
Shai-la Ouvrière en Chef de la Grande Tasse Bleue
Nombre de messages : 6018
Age : 46
Localisation : Montpellier
Date d'inscription : 17/04/2006
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Sam 14 Jan 2012 - 20:01 | |
| Il n'y a pas de script : ça va seulement à la room suivante. Ca lance le jeu quoi |
|
| |
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Sam 14 Jan 2012 - 21:20 | |
| - Shai-la a écrit:
- Il n'y a pas de script : ça va seulement à la room suivante. Ca lance le jeu quoi
Oui d'accord mais si tu es sur le jeu et que tu veux reprendre à zéro. Il y a une room qui va être utilisée environs 4 fois, va-t-elle se remettre à zéro, elle aussi? |
|
| |
Shai-la Ouvrière en Chef de la Grande Tasse Bleue
Nombre de messages : 6018
Age : 46
Localisation : Montpellier
Date d'inscription : 17/04/2006
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Sam 14 Jan 2012 - 21:22 | |
| ben tu utilises simplement la commande "restart game" dans ce cas? |
|
| |
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Dim 15 Jan 2012 - 0:47 | |
| Oh ben boui, mais si je fais "restart Game" ça va me remettre sur la page de présentation, celle où je sélectionne mes options, ma sauvegarde et le chargement d'un jeu sauvegardé. En bref je vais tourner en rond. Je fais un essai et je te dis. |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Dim 15 Jan 2012 - 11:10 | |
| Si j'ai bien compris Alph, quand tu dis "reprendre à zéro", tu veux dire "relancer la partie chargée". Il te suffit donc d'utiliser la commande RestoreGameSlot à la place de RestartGame. Bien sûr il faut que tu saches quel est le bloc de sauvegarde à recharger (autrement dit celui que le joueur avait sélectionné au début). Et tu ne vas pas pouvoir stocker cette donnée (le numéro de bloc de la partie chargée) dans une variable car les variables sont propres à chaque partie. Une solution peut donc est être de stocker ce numéro dans un fichier (avec mon module FichiersParamètres par exemple ). Quoiqu'il en soit, si tu dois récupérer le numéro de partie chargée, je doute que tu puisses utiliser RestoreGameDialog : il faudra plutôt un système de chargement personnalisé qui te permettra de récupérer le numéro sur lequel a cliqué le joueur. Tiens nous au courant ! _________________ 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 ! |
|
| |
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Dim 15 Jan 2012 - 11:43 | |
| Pas du tout. Imagine que pour des raisons plus ou moins obscures tu veuilles reprendre à zéro le jeu, tu vas faire nouvelle partie, d'accord. Mais, par rapport à la "room" où tu as tes options si tu fais "restore game" et bien tu reviens sur la "room" des options de départ. C'est le serpent qui se mord la queue. Donc, il doit y avoir une commande pour faire "reset" le jeu et permettre la validation de "FirstLoad" ou bien il faut quitter le jeu.
Dernière édition par Alph Eratz le Dim 15 Jan 2012 - 11:45, édité 1 fois (Raison : Fautes et répétitions) |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Dim 15 Jan 2012 - 12:57 | |
| Ah ok j'ai compris : en fait tu veux qu'en cours de jeu, le joueur puisse choisir de recommencer le jeu sans avoir à recliquer sur "nouveau jeu" à l'écran d'accueil, en passant directement à la pièce à laquelle on arrive lorsqu'on clique sur "nouveau jeu". La solution est justement de placer une commande dans le script qui se déclenche lorsque le joueur clique sur "nouveau jeu". Quelque part dans le script de ce bouton, tu auras la commande player.ChangeRoom(N) (avec N le numéro de la première pièce de jeu effective). Essaie de placer, avant cette commande, la commande SetRestartPoint(). De cette façon, si tu fais plus tard appel à la commande RestartGame(), le script reprendra à ce player.ChangeRoom(N).
Dis-moi si ça répond à ton problème. _________________ 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 ! |
|
| |
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Dim 15 Jan 2012 - 19:32 | |
| Je ne peux plus tester tant que le premier problème n'est pas résolu. |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Lun 16 Jan 2012 - 16:29 | |
| Qu'est-ce que tu entends par "premier problème" ?
Normalement, ton jeu devrait ressembler à ça :
- N = numéro de la pièce de départ du personnage principal. - Pièce N = affiche le menu de départ ("nouveau jeu", "chargement", etc.) - Clic sur "nouveau jeu" = commandes SetRestartPoint() et player.ChangeRoom()
- Dans un GUI global (près de "Quitter" par exemple), un bouton "Reset". - Clic sur "Reset" = commande RestartGame().
De cette façon, lorsque le joueur lance le fichier .exe du jeu, il tombe sur la pièce de départ (N) et peut choisir de commencer une nouvelle partie, de charger, etc. Une fois qu'il est dans une partie, s'il clique sur le bouton "Reset", le jeu sera réinitialisé depuis le clic sur "nouveau jeu" (là où tu as mis la commande SetRestartPoint). _________________ 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 ! |
|
| |
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Lun 16 Jan 2012 - 17:18 | |
| Oui, je comprends bien Kitai, mais en ce moment j'ai un problème avec le script du déplacement des gui (voir le post à ce sujet, n'est-ce pas), j'ai une erreur qui m'empêche de lancer le jeu. J'avais pourtant réussi à jouer un peu avant pour tester la petite astuce qui est ici et le seul hic c'est que l'inventaire ne se réinitialisait pas. |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Lun 16 Jan 2012 - 17:33 | |
| C'est bizarre que seul l'inventaire ne se réinitialise pas... Après, c'est assez simple de gérer ça manuellement : il suffit de placer avant la commande RestartGame quelque chose comme - Code:
-
int i = 0; while (i < Game.InventoryItemCount) if (player.HasInventory(inventory[i])) player.LoseInventory(inventory[i]); i++; } De cette façon, juste avant de redémarrer la partie, le personnage principal perdra tous ses objets d'inventaire (si c'est bien comme ça qu'il faut que l'inventaire du personnage principal soit en début de jeu). _________________ 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 ! |
|
| |
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Lun 16 Jan 2012 - 20:31 | |
| - Kitai a écrit:
- C'est bizarre que seul l'inventaire ne se réinitialise pas... Après, c'est assez simple de gérer ça manuellement : il suffit de placer avant la commande RestartGame quelque chose comme
- Code:
-
int i = 0; while (i < Game.InventoryItemCount) if (player.HasInventory(inventory[i])) player.LoseInventory(inventory[i]); i++; } De cette façon, juste avant de redémarrer la partie, le personnage principal perdra tous ses objets d'inventaire (si c'est bien comme ça qu'il faut que l'inventaire du personnage principal soit en début de jeu). Ca va plus loin que ça, la réinitialisation semble se faire mais aussi le texte qui apparait avec "Room firstload" est inexistant. Donc , on retourne bien dans la pièce de départ du jeu mais c'est tout. Je n'ai peut-être pas compris. Je te mets le bout de script: - Code:
-
function Button9_OnClick(GUIControl *control, MouseButton button) { SetRestartPoint(); gDemarrage.Visible = false; gGuprincipal.Visible = true; cAlph.ChangeRoom(1, 200, 550); } J'ai relu ce que tu as marqué et je n'ai pas l"'impression de m'être trompé. |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Mar 17 Jan 2012 - 11:47 | |
| Effectivement ça semble un peu problématique de faire dans cet ordre là... J'ai testé une autre méthode qui semble pas mal marcher chez moi : au lieu de mettre la commande SetRestartPoint() dans la fonction du clic sur "nouveau jeu" (ton bouton 9 apparemment), tu la places en tout premier dans la fonction room_FirstLoad() de la pièce 1 (celle où t'emmène le clic sur "nouveau jeu"). Comme ça lorsque le joueur choisit de redémarrer la partie, le script reprend dans la fonction room_FirstLoad() : c'est justement ce que tu voulais J'ai également testé avec l'inventaire, et il est bien réinitialisé quand je fais ça. Si tu as toujours un problème avec l'inventaire, ça vient donc sûrement d'ailleurs. Dis-moi si ça marche. _________________ 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 ! |
|
| |
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Ven 20 Jan 2012 - 16:59 | |
| Ça ne marche pas, y aurait-il une commande que permet de remettre à zéro l'inventaire simplement parce le script que tu as mis plus haut ne marche pas non plus à moins qu'il faille modifier quelque chose que j'ignore.? |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Ven 20 Jan 2012 - 18:16 | |
| Je pense que le plus simple serait que tu m'envoie une copie de ton projet, histoire que je regarde un peu le code. Théoriquement, puisque ça marche chez moi, il n'y a aucune raison que ça ne marche pas chez toi. Il doit y avoir un conflit quelque part dans le code qui empêche ce que je t'ai donné de fonctionner comme ça le doit. Je peux y jeter un coup d’œil pour rendre tout ça fonctionnel. De plus, le code de réinitialisation de l'inventaire que j'ai donné contient quelques problèmes, il faudrait plutôt faire ça : - Code:
-
int i; while (i <= Game.InventoryItemCount) { player.InventoryQuantity[i] = 0; i++; } Je pense que ça marcherait mieux, mais ça enlèvera aussi les objets que le personnage principal est censé avoir dès le début comme on le choisit dans l'éditeur (" PlayerStartsWithItem"). _________________ 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 ! |
|
| |
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Ven 20 Jan 2012 - 21:47 | |
| J'ai testé avec les nouvelles lignes et ça met : - Code:
-
// room script file
function room_AfterFadeIn() { btnTextes.Enabled =true; }
function hHotspot1_AnyClick() { cAlph.Walk(500, 350, eBlock); cAlph.ChangeRoom(2, 1660, 380); gCarte1.Visible = false; }
function hHotspot2_AnyClick() { cAlph.Walk(255, 270, eBlock); cAlph.Say("Ce saule me fait froid dans le dos."); cAlph.Say("Mon oncle dit qu'il est le gardien de cette maison."); cAlph.Say("Parfois, j'ai l'impression qu'il est vivant."); }
function hHotspot3_AnyClick() { cAlph.Walk(355, 410, eBlock); cAlph.Say("C'est le bureau de mon pere."); cAlph.Say("Il est architecte."); cAlph.Say("C'est lui qui a fait les plans de la maison."); }
function hHotspot4_AnyClick() { cAlph.Walk(500, 315, eBlock); cAlph.Say("C'est ma chambre."); } function room_FirstLoad() { int i; while (i <= Game.InventoryItemCount) { player.InventoryQuantity[i] = 0; i++; } SetRestartPoint(); gGuprincipal.Visible = true; Hypertext.ShowOnButton(btnTextes, "Alph1"); Wait(80); Hypertext.ShowOnButton(btnTextes, "Alph2"); Wait(120); Hypertext.ShowOnButton(btnTextes, "Vide1"); }
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Sam 21 Jan 2012 - 11:52 | |
| Excuse moi Alph, il y avait encore un petit problème dans mon code Du coup ça donnerait plutôt ça : - Code:
-
int i = 1; while (i <= Game.InventoryItemCount) { player.InventoryQuantity[i] = 0; i++; } Et je viens de vérifier, en fait la fonction room_FirstLoad se déclenche avant le Restart : dans mes essais, le jeu est entièrement réinitialisé (inventaires compris) à l'état dans lequel il était juste après cette fonction room_FirstLoad. C'est-à-dire que toute commande Display, par exemple, qui est dans la fonction room_FirstLoad ne se déclenchera plus lors du restart : elle s'est déjà déclenchée avant le point de restauration (la commande SetRestartPoint attend que la fonction où elle est entrée ait fini de s'exécuter avant de définir le point de réinitialisation, la bougresse !). Et si on met SetRestartPoint avant la commande ChangeRoom, eh bien cette commande est tout simplement zappée lors de la restauration ! J'ai trouvé une solution vraiment pas propre mais je ne vois pas comment faire autrement pour le moment : dans le bouton qui correspond à " Nouveau Jeu" je mets la commande CallRoomScript(1); et dans la pièce correspondant à l'écran d'accueil, je mets le code suivant : - Code:
-
bool changepiece = false; function on_call(int value) { if (value == 1) { SetRestartPoint(); changepiece = true; } }
function room_RepExec() { if (changepiece == 1) { player.ChangeRoom(1); return; }
// suite du code ...
} De cette façon, lorsque la commande RestartGame sera appelée, le jeu reprendra à l'écran d'accueil, mais avec la variable changepiece qui vaudra true et donc un cycle de jeu plus tard (le temps que room_RepExec soit exécutée) le changement de pièce aura lieu. En plus de ne pas être très propre, cette méthode a le désavantage d'afficher l'écran d'accueil pendant un très court instant avant de transporter le joueur dans la première pièce de jeu. Mais elle a l'avantage de fonctionner : la fonction room_FirstLoad sera bien déclenchée. _________________ 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 ! |
|
| |
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Sam 21 Jan 2012 - 15:02 | |
| La commande CallRoomScript(1); C'est pour la pièce n°1? |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Dim 22 Jan 2012 - 11:14 | |
| La commande CallRoomScript permet de déclencher la fonction on_call située dans le script de la pièce actuelle. La paramètre qui lui est passé ( 1 en l'occurrence) permet simplement de d'attribuer des actions différentes selon sa valeur. Si le code qui se déclenche lors de l'appui sur le bouton " Nouveau Jeu" est déjà dans le script de la pièce écran d'accueil (si ton " Nouveau Jeu" est un hotspot par exemple), alors tu n'as pas besoin de faire si compliqué, il te suffit de mettre directement les lignes SetRestartPoint(); et changepiece = true; dans ce code. _________________ 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 ! |
|
| |
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Mer 25 Jan 2012 - 7:20 | |
| J'ai fait un tests en allant dans plusieurs pièces où il y avait des "first load" et bien le jeu ne se remet pas à zéro. J'ai donc pour l'instant enlevé le code de peur qu'il me fasse un bug. Mais je crois aussi que j'ai dû m'embrouiller. Pour le "reset" de l'inventaire ça marche pas de problème, mais je ne l'utiliserai pas sans le "reset game" qui n'existe pas en commande, hélas. |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Mer 25 Jan 2012 - 9:02 | |
| - Alph Eratz a écrit:
- J'ai fait un tests en allant dans plusieurs pièces où il y avait des "first load" et bien le jeu ne se remet pas à zéro.
J'ai fait ce test aussi et les "first load" se lancent sans problème, toujours en réinitialisant l'inventaire (sans le code supplémentaire que j'ai donné pour cela). Je ne sais pas d'où vient le problème dans ton jeu mais je réinitialise ma proposition : si tu veux, tu peux m'envoyer le projet pour que je jette un coup d’œil au code. EDIT : J'ai trouvé une solution bien plus simple et efficace. Plus besoin d'utiliser de SetRestartPoint ou de CallRoomScript. Tu mets simplement dans le script de la pièce écran d'accueil le code suivante : - Code:
-
function on_event(EventType event, int data) { if ((event == eEventRestoreGame) && (data == 999)) player.ChangeRoom(N); } (avec N le numéro de la première pièce de jeu effective, bien sûr) Le ChangeRoom se déclenchera alors lorsque le joueur restaurera la sauvegarde 999, ce qui se passe en fait avec la commande RestartGame(). _________________ 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 ! |
|
| |
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Mer 25 Jan 2012 - 11:21 | |
| Je vais faire une essai. Tu veux quoi au juste au niveau du code? J'avoue je suis un peu paumé là!
euh! ton code fonctionne. J'ai fait un petit test, ça réinitialisé le texte du début de cette room donc je pense que c'est bon mais j'en ferai plus ce soir.
Dernière édition par Alph Eratz le Mer 25 Jan 2012 - 11:46, édité 1 fois |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Mer 25 Jan 2012 - 11:31 | |
| Tout le code du projet, justement, pour voir les éventuels conflits. J'ouvre le projet avec AGS et je regarde les scripts principaux et des pièces, et je repère où ça va pas. _________________ 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 ! |
|
| |
Alph Eratz Cliqueur Emérite
Nombre de messages : 861
Age : 60
Localisation : Ca y est Saroumane le multicolor est défait, en route pour le Rohan
Date d'inscription : 22/01/2008
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui Mer 25 Jan 2012 - 11:49 | |
| Et comment on fait?( suis un peu nul!). ça risque d'être le bord** là dedans. |
|
| |
Contenu sponsorisé
| Sujet: Re: [résolu]Bouton "Nouveau jeu" sur un gui | |
| |
|
| |
| [résolu]Bouton "Nouveau jeu" sur un gui | |
|