Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

Liaison Client ---> Quête (+ debug)


Calypso

Messages recommandés

  • Retraité

Bonjour tout le monde,

 

Aujourd'hui je vous fais un petit tutoriel qui concerne la liaison Client / Quête.

Je ne ferai pas la partie sur le cmdchat, car je ne me suis pas penché dessus, donc si quelqu'un veut s'occuper de cette partie, je pourrais m'occuper l'ajouter au tutoriel.

 

Explication sur la liaison

 

Pour éclaircir un peu le but de la liaison, je vais vous donner un exemple. Vous avez ajouter un bouton sur l'interface, qui permet de bloquer son exp.

 

Bon, le mieux c'est faire ça via une quête. Si le joueur clique sur oui, ça bloque l'exp, et quand il débloque l'exp, et bien ça la débloque.

Vous pouvez faire ça avec pas mal de quête, comme le biologiste qui peut être mise en gui

 

Etape 1 ---> Coté client

Bon bah rien de compliqué sur le côté client :

Révélation

Où vous en avez besoin :


def OnBlockExp(self, nb):
    import event
    constInfo.BLOCKEXP = int(nb)
    event.QuestButtonClick(5)
    self.OnCloseBlock()
    return TRUE
 

Voici un exemple. Le premier correspond à : si je clique sur oui lorsque l'exp est débloqué, alors je fais ceci. Et ce qui est en dessous, le contraire.

C'est cette ligne qui nous intéresse ( C'est la même chose pour tout le reste)


event.QuestButtonClick(5)
 

Lorsque qu'on clique sur le bouton, j’exécute la quête avec l'ID 5.

 

Gestion du cmdchat : (pour récupérer la valeur après une fermeture du client)

game.py :


def SendBlockEXP(self, nb):
    constInfo.BLOCKEXP = int(nb)
 

On peut passer au côté quête maintenant.

 

Etape 2 ---> Côté quête

Là aussi, dans ce cas là c'est pas bien compliqué. La quête doit se composer de :

Révélation

when button begin

 

Lorsque que l'on clique sur le bouton tout simplement, et c'est là que ça fait la liaison avec le client.

 

event.QuestButtonClick(5) ---> Entre parenthèse se trouve la ligne où se trouve votre quête dans locale_list. Attention ! On ne compte pas la ligne 0 !

 

Voici un petit exemple de quête :


quest gestion_exp_gui begin
    state start begin
        when button begin
            if pc.getqf("lock_exp")==0 then
                pc.setqf("lock_exp", 1)
                chat("Votre expérience est bloquée")
            else
                pc.setqf("lock_exp", 0)
                chat("Votre experience est débloquée.")
            end
        end
        
        when login begin
            cmdchat("Blockexp "..pc.getqf("lock_exp"))
        end
    end
end

 

 

À vous de l'améliorer mais c'est un peu le principe.

 

Tutoriel terminé mais comme j'ai dit, si vous souhaitez l'améliorer, n'hésitez pas.

Modifié par GuiguiOfMetin
  • Love 2
Lien vers le commentaire
Partager sur d’autres sites

  • Retraité

Le problème vient de ta quête.

"Problème" est un bien grand mot d'ailleurs, ce n'est que quelques bouts de code à ajouter.

 

Sinon c'est sympa de ta part mais tu devrais appuyer davantage sur les multiples possibilités qu'offre ce type de codage. Commence également par le commencement.

 

Bye.

You can't be immortal,
But you can make people remember
you for thousands of years...

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Le problème de ce genre de tutoriel est que cela te permet seulement de voir des morceaux de code, de modifier ce que l'on souhaite mais pas de créer nos propres code, la en clair on applique sans rien comprendre (comme pour les maths :D).

 

En clair il faudrait que l'on est des infos sur les différents code présent, à quoi ils servent, leur fonction, leur utilité etc...

Lien vers le commentaire
Partager sur d’autres sites



Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.