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

Kameyu

Développeur
  • Compteur de contenus

    1488
  • Inscription

  • Dernière visite

  • Jours gagnés

    12

Tout ce qui a été posté par Kameyu

  1. Problème résolu, l'interface était initialisé au mauvais endroit (dans le game.py et non l'interface). Je lock.
  2. Salut, Hélas c'est possible dans un sens mais pas dans l'autre. Le game.py appelle le interfacemodule.py donc on ne peut pas appeler, depuis le module d'interface, le game.py. Le truc que je t'ai fait faire en revanche, c'est de faire appel à l'interface, depuis le game.py car l'inverse n'est pas réalisable. Enfin si mais c'est complexe pour rien. En revanche, vu que ça devient un poil plus compliqué, je te conseille de passer sur Discord pour qu'on puisse voir ça en direct. Dans les faits, je doute que ta question n'aide qui que ce soit à moins qu'ils essaient de débug l'interface Illumina, ce que je doute J'ai mon Discord renseigné dans mon profil.
  3. Normalement, la fonction Show() devrait faire l'affaire, mais je suis pas sûr que cette fonction te permette de fermer la fenêtre directment. Logiquement non.
  4. Kameyu

    Problème de ceintures

    Salut, Tu as regardé dans les sources si tu pouvais trouver un message identique ? Généralement quand tu as un item dans ta ceinture, le jeu t'empêche de la retirer, de mémoire le texte n'est pas traduit. Le serveur utilise la fonction LC_TEXT() pour traduire les textes Coréens (et pas Japonais lol), cette fonction va chercher une potentielle traduction avec le texte fourni pour renvoyer une traduction au préalable depuis le fichier locale_string.txt (qui se trouve dans /usr/metin2/share/locale/france/) Essaie de voir si tu as des items dans ta ceinture. Si c'est le cas c'est normal, tu ne peux pas retirer ta ceinture si tu as des items à l'intérieur. Sinon, ce serait trop facile de tricher, tu mets une ceinture 16 slots, et hop tu la retires pour une ceinture qui en possède que 4
  5. Non, c'était bien Board, mais en minuscule du coup (oui, les majuscules et minuscules sont différentes en développement)
  6. C'est normal, je t'ai donné une fonction d'exemple, tu dois avoir autre chose à la place d'un "Board", ou alors sous un autre nom. Montre-moi la définition de ta classe PetSystemMain(self)
  7. D'ailleurs, la fonction ToggleWindow, il faut la mettre dans la Class "PetSystemMain", pas dans la class TextToolTip ^^ Edit: C'est pas OpenPetMainGui mais ToggleWindow du coup, erreur de ma part
  8. Tu as pensé à "import" uipetsystem ?
  9. Ok donc en gros là ton système de pet est instancié mais pas dans ton interface, il est instancié dans le game.py. Il est préférable de l'instancier dans l'interface mais soit, c'est une question de goût pour moi. Ce que tu vas faire, c'est initialiser (dans la fonction __init__ de ton interfacemodule.py) le uipetsystem: wndPetSystem = None Ensuite dans ta fonction MakeTaskBar là où y'a le truc du bouton DragonSoul (qu'on a vu plus haut) Tu vas devoir modifier le bouton où y'a écrit self.TogglePetMain et mettre: self.wndPetSystem.OpenPetMainGui() Ensuite, il faut créer la fonction qui va initialiser ton interface de pet: def __MakePetSystem(self): wndPetSystem = uipetsystem.PetSystemMain() wndPetSystem.Hide() self.wndPetSystem = wndPetSystem Dès que t'as fait ça, il faut ensuite le rajouter dans la fonction MakeInterface(self): (toujours dans interfacemodule.py) comme ceci: Ensuite, dans Close(self): il faut penser à le "supprimer": Un peu plus bas dans la même fonction, tu dois libérer l'objet de la mémoire: Pareil dans __HideWindows(self):, mais je vais pas tout réécrire ou coller, je pense que tu vois le principe. Bien sûr, tout ça en n'oubliant pas que wndPetInterface c'est le nom de mon système, pas le même que le tien, le tien ce sera wndPetSystem comme je t'ai dit de l'initialiser); Il faudra donc que tu modifies ton game.py (la fonction qu'appelle la touche "P") par: onPressKeyDict[app.DIK_P] = lambda : self.interface.wndPetSystem.Show() Par contre je te préviens, ça ne fermera pas la fenêtre si tu rappuies sur P. Show() ne permet que de l'ouvrir. Il faudra que tu crées une fonction dans ton fichier de système de pet (uipetsystem.py je crois ?) qui te permette de la fermer si elle est ouverte. Ça ressemble à ça chez moi: def ToggleWindow(self): if self.Board.IsShow(): self.Board.Hide() else: self.Board.Show() Et du coup à la touche P tu remplaces "Show()" par "ToggleWindow()". Et voilà
  10. Dans ton game.py cherche "petmain" et dis-moi à quelle valeur il est initialisé.
  11. Mdr bah oui tu m'étonnes que ça marche pas. En gros ton bouton d'interface est paramétré pour fermer l'expansion de la taskbar (le bouton du milieu), pas pour ouvrir l'interface de pets. Est-ce que dans ton fichier interfacemodule.py le pet GUI est initialisé ? (logiquement oui vu que ça marche avec le bouton P) Si oui, sous quel nom ? Comme mon truc par exemple: self.wndpetInterface = None
  12. Et la touche sur la lettre P utilise la même fonction ? Parce que moi là c'est pas du tout ce que je lis...
  13. Et la fonction TogglePetMain donne quoi ?
  14. Ton interface est instancié (créé) dans ton game.py. Tout ce qui touche à l'interface se trouve dans (interfacemodule.py). Normalement, tu devrais rajouter ton bouton dans le fichier interfacemodule: if uiTaskBar.TaskBar.IS_EXPANDED: self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_EXPAND, ui.__mem_func__(self.ToggleExpandedButton)) self.wndExpandedTaskBar = uiTaskBar.ExpandedTaskBar() self.wndExpandedTaskBar.LoadWindow() self.wndExpandedTaskBar.SetToggleButtonEvent(uiTaskBar.ExpandedTaskBar.BUTTON_DRAGON_SOUL, ui.__mem_func__(self.ToggleDragonSoulWindow))
  15. Ouais mais du coup la personne qui va suivre le tutoriel ne comprendra pas pourquoi tu as mis method et pas Log, et inversement ^^. Dans l'idée il aurait fallu éviter le générique pour que les personnes qui ne sont pas forcément à l'aise avec le code puissent trouver leurs marques. Sinon à part ça, le tutoriel est plutôt correct dans l'ensemble, ça aidera peut-être certains développeurs débutants à s'habituer aux sources Metin2.
  16. Attention par contre, la méthode: N'est pas celle que tu as créée, il faut que tu appelles: rory.Log(arg)
  17. Kameyu

    Qu'est ce que TWIX_YMIR

    Salut, ce sujet n'est pas un post d'informations à propos de ton projet, si tu souhaites nous faire part des informations le concernant, je t'invite à faire un nouveau sujet dans la catégorie appropriée. Je ferme le sujet pour éviter tout nouveau post. Merci d'avance pour ton implication .
  18. Kameyu

    Présentation Stews

    Bienvenue Stews, présentation agréable, amuse-toi bien chez nous !
  19. Kameyu

    Présentation de Makise

    Bienvenue Makise, j'avais oublié de te répondre :).
  20. Kameyu

    Log bug,

    Pour le truc du log c'est que tu as clear les logs à un moment donné et que tu as supprimé un truc qu'il ne fallait pas toucher. Mais c'est pas quelque chose d'obligatoire au fonctionnement de ton serveur. Par contre, ton syserr DB n'est pas "rempli" y'a qu'une seule erreur c'est la query qui n'a pas réussi à s'exécuter. Logiquement c'est rien de grave si ça n'arrive qu'une fois, il est possible que tu aies coupé le DB au moment où une query était exécutée mais c'est pure coïncidence. Ça ne devrait pas arriver de nouveau. Si ça arrive encore, ouvre un nouveau post ou demande à déverrouiller celui-ci on verra ça à ce moment précis.
  21. Kameyu

    Log bug,

    Les connexion refused sont dûs au fait que ton DB met trop de temps à se lancer, du coup ton script lance le game alors que le DB n'est pas prêt. Et vu que les connexions ne s'établissent pas, le game indique "Connexion refused" car il ne peut pas se connecter au DB. Dans ton script de start (/usr/metin2/start.sh) change le délai de sommeil après le lancement du DB à 6-8 secondes environ comme ceci:
  22. Kameyu

    Présentation pour SP

    Bienvenue Takumi, premier like de ma part plus que 2 .

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.