Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -30%
PC portable Lenovo Yoga Slim 6 i5-13500H – 16 Go ...
Voir le deal
699 €

 

 [Tuto] Faire des inventaires à la DOTT

Aller en bas 
4 participants
AuteurMessage
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs


Nombre de messages : 1513

Age : 31

Localisation : La Rochelle

Date d'inscription : 09/01/2008


[Tuto] Faire des inventaires à la DOTT Empty
MessageSujet: [Tuto] Faire des inventaires à la DOTT   [Tuto] Faire des inventaires à la DOTT EmptyJeu 10 Juin 2010 - 13:36

Bonjour, aujourd'hui au lieu de préparer le BAC et de mettre le nez dans les cours, nous allons plutôt nous intéresser aux inventaires. Nous allons essayer de refaire un système d'inventaire à la DOTT (un inventaire pour chaque personnage jouables) ; c'est très simple de faire ce système.

Tout d'abord, dans ce tuto je ne ferai que deux personnages, vous adapterez en fonction du nombre de personnage de votre jeu.
J'utilise également la version 3.1 d'AGS. Z'êtes prêts ? Alors on y va !

1°) Gestion des personnages :

Bon, ici nous aurons deux personnages, Roger et Sam, que je vous présente :

[Tuto] Faire des inventaires à la DOTT 110

Initialement, Roger sera le joueur de départ, il faudra cliquer sur Sam en mode Interact pour switcher de joueur (par exemple) et inversement, j'utilise pour cela la fonction Character.SetAsPlayer() :

Code:
function cSam_Interact()
{
  cSam.Say("A mon tour !");
/*Message permettant d'indiquer au joueur que le personnage est sous contrôle. */
  cSam.SetAsPlayer();
}

function cEgo_Interact()
{
  cEgo.Say("C'est parti !");
  cEgo.SetAsPlayer();
}

Dans le jeu, je dirige Roger, puis quand je clique sur Sam en mode Interact, je dirige ce dernier, puis à nouveau quand je clique sur Roger en mode Interact, celui-ci devient actif, etc...

2°) Création des GUI :

Vous devez faire maintenant au moins un GUI (ici on considérera que tous les GUI d'inventaire seront identiques), dans DOTT seule la couleur des cadres changeait ; ok, donc voici mon magnifique inventaire :

[Tuto] Faire des inventaires à la DOTT 210

Oui, je sais, c'est celui du template default, ça va hein !
Vous devez bien évidemment insérer un minimum de contrôles au GUI, le plus important étant sans aucun doute l'Inventory Window permettant de stocker les items, eh bien c'est lui qui va être important, sélectionnez-le dans votre GUI, maintenant, regardez la propriété CharacterID en bas à droite :

[Tuto] Faire des inventaires à la DOTT 211

Cette propriété va nous permette d'assigner un inventaire à un joueur particulier (-1 signifie joueur, donc quand on switcherait ça serait le même inventaire, ce que l'on ne veut pas), on va assigner l'ID de l'un de nos personnages, par exemple 0 pour Roger :

[Tuto] Faire des inventaires à la DOTT 310

Désormais quand nous serons dans ce GUI avec un autre joueur que Roger, nous ne verrons rien.
Voilà, premier GUI OK, plus que le second.
Pour copier un GUI il y a une manière très simple : l'export/import

Tout d'abord sélectionnez votre GUI dans l'arbre à onglet :

[Tuto] Faire des inventaires à la DOTT 410

Puis clique-droit dessus : Export GUI... Donnez-lui un nom bidon...
Puis clique-droit sur GUIs : Import GUI... Sélectionnez celui que vous venez d'exporter.

Et voilà il s'affiche avec un petit 2 à la fin pour chaque propriétés communes.

[Tuto] Faire des inventaires à la DOTT 510

Il ne vous reste plus qu'à aller dans la propriété CharacterID et de la changer en 1 pour l'inventaire de Sam.

3°) Afficher les bons GUI :

Maintenant que nous avons nos GUI pour chaque personnage, nous devons afficher les GUI en fonction du personnage actif, si c'est Roger, alors on affiche le premier, si c'est Sam, alors on affiche le second, etc pour chaque personnage.

Les appels des inventaires se font quand on clique sur la petite mallette dans le template default, si vous avez fait autrement il suffit d'adapter.

[Tuto] Faire des inventaires à la DOTT 610

Donc on va sur ce GUI, soit gIconbar, on sélectionne la mallette puis on modifie la fonction btnIconInv_Click :

Code:
function btnIconInv_Click(GUIControl *control, MouseButton button) {
 
  show_inventory_window();
}

Ah ? une autre fonction, elle a été créée par AGS pour configurer au mieux l'affichage du GUI. Pour aller la voir, cliquez sur le menu déroulant en haut et sélectionnez-la :

[Tuto] Faire des inventaires à la DOTT 710

Code:
function show_inventory_window ()
{
  gInventory.Visible = true;
  // switch to the Use cursor (to select items with)
  mouse.Mode = eModeInteract;
  // But, override the appearance to look like the arrow
  mouse.UseModeGraphic(eModePointer);
}

Ici nous devons modifier le GUI à afficher en fonction du personnage ; on va le faire avec de simples conditions :

Code:
function show_inventory_window ()
{

  if(player == cEgo) gInventory.Visible = true;
  else gInventory2.Visible = true; // cSam

  // switch to the Use cursor (to select items with)
  mouse.Mode = eModeInteract;
  // But, override the appearance to look like the arrow
  mouse.UseModeGraphic(eModePointer);
}

L'avantage de l'écrire dans la fonction show_inventory_window, c'est qu'elle est appelée autre part également :

Code:
if (keycode == eKeyTab)  show_inventory_window();  // Tab, //show inventory

Ainsi, quelle que soit la manière d'afficher l'inventaire, ce sera toujours le bon GUI ! ^^

Et pour finir, dans la fonction permettant de quitter le GUI (en général c'est un bouton qui le fait), on efface tous les GUI pour être sûr :

Code:
function btnInvOK_Click(GUIControl *control, MouseButton button) {
   // They pressed the OK button, close the GUI
   gInventory.Visible = false;
   gInventory2.Visible = false;
   mouse.UseDefaultGraphic();
}

C'est une méthode pas si barbare parce que quand les GUI sont déjà effacés, cela prend moins de temps au CPU.

Et voilà, c'est finit !!! Alors pas très dur sourire

4°) Activer les items au départ :

Dans la liste d'items vous avez certainement reconnu la propriété PlayerStartsWithItem qui permet de débuter le jeu avec l'item en possession, le problème c'est que l'on ne peut que le faire avec le joueur de départ, donc pour ajouter des objets aux autres personnages (par exemple le scalpel de Laverne ou le décapsuleur de Hoagie) vous devez vous créer une petite fonction items_start et vous énumérerez les items de départ des personnages :

Code:
function items_start()
{
cHoagie.AddInventory(iDecapsuleur);
cLaverne.AddInventory(iScalpel);
...
}

Et vous faite un appel à cette fonction dans le game_start :

Code:
function game_start() { 
  // Put the code all in a function and then just call the function.
  // It saves cluttering up places like game_start.
  initialize_control_panel();
  items_start();
  // Use the KeyboardMovement module to, per default, replicate the standard
  // keyboard movement of most Sierra games. See KeyboardMovement.txt for more info
  KeyboardMovement.SetMode(eKeyboardMovement_Tapping);
}

Et voilà, si vous avez des questions, des remarques ou des suggestions, hésitez pas à me les communiquer sourire

A bientôt !
Revenir en haut Aller en bas
Benjiman33
Cliqueur Amateur
Cliqueur Amateur
Benjiman33


Nombre de messages : 312

Age : 38

Localisation : Bordeaux-Toulouse

Date d'inscription : 27/07/2007


[Tuto] Faire des inventaires à la DOTT Empty
MessageSujet: Re: [Tuto] Faire des inventaires à la DOTT   [Tuto] Faire des inventaires à la DOTT EmptyJeu 10 Juin 2010 - 14:50

Héhé Merci CrazyLegs...
Un tuto qui tombe à pic !
J'allais justement bientôt avoir besoin de faire un inventaire pour chaque personnage. Et je ne connaissais pas le coup du CharacterID donc j'aurais bataillé jpense...
J'essayerais ça quand j'aurai un peu de temps. Je dois aussi me pencher sur le changement de room et lors du changement de perso (à la DOTT) entre mes 3 petits cochons^^, mais je crois me rappeler que le simple fait de changer de perso principal change directement la room donc pratique (à vérifier).

merci en tout cas clin d'oeil
Revenir en haut Aller en bas
-a-timburton-a-
Cliqueur Emérite
Cliqueur Emérite
-a-timburton-a-


Nombre de messages : 588

Date d'inscription : 17/05/2010


[Tuto] Faire des inventaires à la DOTT Empty
MessageSujet: Re: [Tuto] Faire des inventaires à la DOTT   [Tuto] Faire des inventaires à la DOTT EmptyJeu 10 Juin 2010 - 15:21

Le tuto à l'air d'être parfait.

Grand boulot; merci à toi.
Revenir en haut Aller en bas
Godzillu
Grand Cliqueur Royal
Grand Cliqueur Royal
Godzillu


Nombre de messages : 1658

Date d'inscription : 11/03/2007


[Tuto] Faire des inventaires à la DOTT Empty
MessageSujet: Re: [Tuto] Faire des inventaires à la DOTT   [Tuto] Faire des inventaires à la DOTT EmptyJeu 10 Juin 2010 - 17:10

Et le bac alors!

Beau boulot tout de même soit dit en passant sourire
Revenir en haut Aller en bas
http://mr-godzillu.over-blog.com/
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs


Nombre de messages : 1513

Age : 31

Localisation : La Rochelle

Date d'inscription : 09/01/2008


[Tuto] Faire des inventaires à la DOTT Empty
MessageSujet: Re: [Tuto] Faire des inventaires à la DOTT   [Tuto] Faire des inventaires à la DOTT EmptyJeu 10 Juin 2010 - 17:15

Merci ! sourire
J'espère que ça te sera utile !
Revenir en haut Aller en bas
Benjiman33
Cliqueur Amateur
Cliqueur Amateur
Benjiman33


Nombre de messages : 312

Age : 38

Localisation : Bordeaux-Toulouse

Date d'inscription : 27/07/2007


[Tuto] Faire des inventaires à la DOTT Empty
MessageSujet: Re: [Tuto] Faire des inventaires à la DOTT   [Tuto] Faire des inventaires à la DOTT EmptyDim 15 Aoû 2010 - 16:26

Salut crazy, je reup ton topic pour une petite précision:

Crazy Legs a écrit:
Cette propriété va nous permette d'assigner un inventaire à un joueur particulier (-1 signifie joueur, donc quand on switcherait ça serait le même inventaire, ce que l'on ne veut pas)

Es tu sur de ça ? Car je n'ai qu'un seul Inventaire dans mon Gui et lorsque je switch de perso, l'inventaire change aussi et les objets du nouveau perso remplacent ceux de l'ancien. Je pense qu'AGS mémorise tout seul les objets de chaque perso et fait le changement sans qu'on ai besoin de créer plusieurs inventaires.

Egalement une précision pour ceux qui ont lu ce topic et qui veulent faire un système total à la DOTT: Créez un bouton GUI avec la tête d'un perso. Lorsque vous cliquez dessus vous sélectionnez ce perso et lorsque vous "utilisez" un objet avec lui vous lui donnez cet objet. Utilisez le code suivant dans la fonction "Onclick" du bouton Gui:


if(player.ActiveInventory==null) // donc si c'est un simple clic sur la tête (pas d'activeInventory veut dire qu'on a pas sélectionné d'objet à transférer à player2)
{cplayer2.SetAsPlayer(); } // On prends le controle du perso
else { // sinon on lui donne l'objet
cplayer2.AddInventory(player.ActiveInventory); // cplayer2 va recevoir l'objet
player.LoseInventory(player.ActiveInventory);}// et le joueur 1 le perdre
}


Revenir en haut Aller en bas
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs


Nombre de messages : 1513

Age : 31

Localisation : La Rochelle

Date d'inscription : 09/01/2008


[Tuto] Faire des inventaires à la DOTT Empty
MessageSujet: Re: [Tuto] Faire des inventaires à la DOTT   [Tuto] Faire des inventaires à la DOTT EmptyDim 15 Aoû 2010 - 16:34

Citation :
Car je n'ai qu'un seul Inventaire dans mon Gui et lorsque je switch de perso, l'inventaire change aussi et les objets du nouveau perso remplacent ceux de l'ancien. Je pense qu'AGS mémorise tout seul les objets de chaque perso et fait le changement sans qu'on ai besoin de créer plusieurs inventaires.

Oui, mais tu dois alors assigner à chaque fois le nouveau cochon en tant que joueur ; et aussi je ne sais pas si y a moyen de changer l'apparence du GUI de l'inventaire en fonction du cochon actuel ?
Revenir en haut Aller en bas
Benjiman33
Cliqueur Amateur
Cliqueur Amateur
Benjiman33


Nombre de messages : 312

Age : 38

Localisation : Bordeaux-Toulouse

Date d'inscription : 27/07/2007


[Tuto] Faire des inventaires à la DOTT Empty
MessageSujet: Re: [Tuto] Faire des inventaires à la DOTT   [Tuto] Faire des inventaires à la DOTT EmptyDim 15 Aoû 2010 - 16:45

Oui quand je switch sur un cochon je le définis en tant que joueur:
cNouf.SetAsPlayer();
Tu dois forcémment le définir en tant que joueur pour l'utiliser donc l'utilité d'un 2è Gui me semble intéressante si tu veux changer l'apparence de ce Gui entre deux joueurs ...
Revenir en haut Aller en bas
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs


Nombre de messages : 1513

Age : 31

Localisation : La Rochelle

Date d'inscription : 09/01/2008


[Tuto] Faire des inventaires à la DOTT Empty
MessageSujet: Re: [Tuto] Faire des inventaires à la DOTT   [Tuto] Faire des inventaires à la DOTT EmptyDim 15 Aoû 2010 - 16:54

Oui et c'est comme ça dans DOTT ^^
En fait c'est ça le + du tuto c'est de bidouiller pour pouvoir changer l'apparence du GUI, par défaut on pouvait pas.
Revenir en haut Aller en bas
Benjiman33
Cliqueur Amateur
Cliqueur Amateur
Benjiman33


Nombre de messages : 312

Age : 38

Localisation : Bordeaux-Toulouse

Date d'inscription : 27/07/2007


[Tuto] Faire des inventaires à la DOTT Empty
MessageSujet: Re: [Tuto] Faire des inventaires à la DOTT   [Tuto] Faire des inventaires à la DOTT EmptyDim 15 Aoû 2010 - 17:04

Ok et en effet dans ce cas là ta technique me semble la seule solution...
Revenir en haut Aller en bas
Contenu sponsorisé





[Tuto] Faire des inventaires à la DOTT Empty
MessageSujet: Re: [Tuto] Faire des inventaires à la DOTT   [Tuto] Faire des inventaires à la DOTT Empty

Revenir en haut Aller en bas
 
[Tuto] Faire des inventaires à la DOTT
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RESOLU] Tuto pour faire des bruits de pas ?
» Avoir plusieurs inventaires
» DOTT 2
» Template Dott.
» Character DoTT 320*200

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Trucs & Astuces, Tutoriaux-
Sauter vers: