Aller au contenu
  • 0

Fermeture client après la sélection de suppression personnage


Saejin

Question

Version des Files / Type d’Émulateur : Etrangère

Domaine ( Base de Données, Client, Core, Sources... ) : Client

Niveau : Débutant, Intermédiaire ou Avancé ? Débutant

Bonjour,

 

Je rencontre un soucis que je viens de découvrir côté client .

 

1. Description du dysfonctionnement / Question :

 

Fermeture du client après avoir cliquer sur "supprimer" lors de la sélection du personnage.

 

 

2. SysErr ( Client / Server ) / SysLog ( Server )

 

Révélation

0113 00:15:14494 :: 
uicommon.py(line:263) __CreateDialog
ui.py(line:8065) GetChild

InputDialogWithDescription.LoadBoardDialog.BindObject - <type 'exceptions.KeyError'>:'special_bg'

0113 00:15:14494 :: ============================================================================================================
0113 00:15:14494 :: Abort!!!!


 

 

Quelqu'un saurait m'aiguiller là dessus ?

 

Merci d'avance

Modifié par Saejin
Lien à poster

Messages recommandés

  • 0
  • Administrateur
Il y a 7 heures, Oscar a dit :

Salut,

Tu peux te connecter avec un autre compte ?

 

Le problème est la suppression du personnage, pas la connexion au compte.

Dans son cas, ça a l'air d'un problème sur la partie python visiblement.

  • J'adore 1

090100logo.png 090149logo-4-bis.png

Lien à poster
  • 0

Bonjour,

 

Lorsque je commente la ligne  #self.special_bg = getObject("special_bg") dans uicommon.py, le bouton delete ne fonctionne plus mais mon client ne crash pas

Je ne sais vraiment pas comment faire pour résoudre cela.

 

Merci d'avance

Lien à poster
  • 0

Bonjour,

 

Petit up svp

 

D'après ce que je comprend de l'erreur, il manque la clé "special_bg" dans mon fichier "inputdialogwithdescription.py".

Malheureusement, je n'ai pas les compétences pour comprendre ou savoir ce que je dois y mettre même si ça parait facile...

 

J'ai chercher cela sur plusieurs clients téléchargés, mais il n'y a pas de "special_bg".

 

Voici mon fichier :

import uiScriptLocale

window = {
    "name" : "InputDialog_WithDescription",

    "x" : 0,
    "y" : 0,

    "style" : ("movable", "float",),

    "width" : 170,
    "height" : 106,

    "children" :
    (
        {
            "name" : "Board",
            "type" : "board_with_titlebar",

            "x" : 0,
            "y" : 0,

            "width" : 170,
            "height" : 106,

            "title" : "",

            "children" :
            (

                ## Text
                {
                    "name" : "Description",
                    "type" : "text",
                    "text" : "",
                    "horizontal_align" : "center",
                    "text_horizontal_align" : "center",
                    "x" : 0,
                    "y" : 34,
                },

                ## Input Slot
                {
                    "name" : "InputSlot",
                    "type" : "slotbar",

                    "x" : 0,
                    "y" : 51,
                    "width" : 90,
                    "height" : 18,
                    "horizontal_align" : "center",

                    "children" :
                    (
                        {
                            "name" : "InputValue",
                            "type" : "editline",

                            "x" : 3,
                            "y" : 3,

                            "width" : 90,
                            "height" : 18,

                            "input_limit" : 12,
                        },
                    ),
                },

                ## Button
                {
                    "name" : "AcceptButton",
                    "type" : "button",

                    "x" : - 61 - 5 + 30,
                    "y" : 74,
                    "horizontal_align" : "center",

                    "text" : "|cffb6a68dOK",

                    "default_image" : "d:/ymir work/ui/public/middle_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/middle_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/middle_button_03.sub",
                },
                {
                    "name" : "CancelButton",
                    "type" : "button",

                    "x" : 5 + 30,
                    "y" : 74,
                    "horizontal_align" : "center",

                    "text" : uiScriptLocale.CANCEL,

                    "default_image" : "d:/ymir work/ui/public/middle_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/middle_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/middle_button_03.sub",
                },

            ),
        },
    ),
}

 

 

EDIT

Re information, si je commente cette ligne, le bouton de suppression personnage ne fonctionne plus, donc en partant de ça, que dois-je mettre pour le rendre fonctionne ? Enfin, plus précisément, dans un client lambda, quel bout de code me rend la suppression du personnage possible ?

 

Ce serait peut être plus simple de partir dans ce sens...

 

EDIT 2 :

 

Si j'ajoute ceci dans "inputdialogwithdescription.py" :

                ## Special_bg
                {
                    "name" : "special_bg",
                    "type" : "button",

                    "x" : - 61 - 5 + 30,
                    "y" : 74,
                    "horizontal_align" : "center",

                    "text" : "|cffb6a68dOK",

                    "default_image" : "d:/ymir work/ui/public/middle_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/middle_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/middle_button_03.sub",
                },

 

J'obtiens ceci dans le syserr :

0129 15:13:10738 :: Traceback (most recent call last):

0129 15:13:10738 ::   File "ui.py", line 1924, in CallEvent

0129 15:13:10738 ::   File "ui.py", line 127, in __call__

0129 15:13:10738 ::   File "ui.py", line 109, in __call__

0129 15:13:10738 ::   File "introSelect.py", line 460, in InputPrivateCode

0129 15:13:10739 ::   File "uicommon.py", line 137, in SetMaxLength

0129 15:13:10739 ::   File "uicommon.py", line 141, in SetSlotWidth

0129 15:13:10739 :: AttributeError
0129 15:13:10739 :: : 
0129 15:13:10739 :: 'SlotBar' object has no attribute 'SetWidth'
0129 15:13:10739 :: 


 

C'est censé ouvrir une fenêtre pour y entrer le code de suppression personnage mais il doit manquer un bout de code ou une fonction...

 

 

Merci d'avance

Modifié par Saejin
Lien à poster
  • 0

Merci d'avoir répondu,

 

Comment je procède pour cela ?

Serait-il possible aussi de m'expliquer la fonction s'il vous plait ?

 

ui.py :

		# Delete
		if metin2_app.VK_DELETE == key:
			ime.Delete()
			TextLine.SetText(self, ime.GetText(self.bCodePage))
			return True
			
		return True
		
		if FALSE == self.CanClick:
			return

 

 

Merci d'avance

Modifié par Saejin
Lien à poster
  • 0

Yo ! Désolé j'avais complètement loupé ton sujet, donc je réponds tardivement !

 

Du coup, il te dit qu'il te manque le special_bg dans l'uiscript, tu avais bien decrypté l'erreur.

 

Maintenant à la vue de ta classe... Ton crash vient effectivement de ton 

self.special_bg = getObject("special_bg")

La logique voudrait que ce soit une image (avec le nom | utilisée pour illumina ?) hors, la classe le récupère... Pour l'utiliser ? Juste coder avec le Q ? Il nous faudrait ton introselect.py pour le vérifier. Mais ce n'est normalement pas ça qui rend ta fenêtre inutilisable.

 

Vérifie qu'il ne te manque pas le SetAcceptEvent et le SetCancelEvent hérités de l'InputDialog.

 

 

Évitons ce qui comparé à un marchand de voiture donnerait : "Bonjour, j'ai un problème de parallélisme" --> "Il faut changer de voiture monsieur."

 

Bonne chance pour ta recherche.

Modifié par Takuma
Lien à poster
  • 0

Du coup pour ton bg, aucune idée, je sais pas vraiment ce que c'est... Je suppose que c'est une image, mais je suis incapable de te la donner. Par contre ton code côté client semble normal, commente ton special_bg, essaye de supprimer ton personnage, regarde si en fermant tu n'as pas d'erreur dans le syserr client quand même, et vérifie les syserr serveur... 

 

C'est peut-être un fond ajouté par ton interface ?

Lien à poster
  • 0

Bonjour et merci d'avoir répondu,

 

Après avoir commenter "special_bg", mon client ne crash plus mais j'ai ceci dans le syserr

0211 08:50:36723 :: Traceback (most recent call last):

0211 08:50:36724 ::   File "ui.py", line 1924, in CallEvent

0211 08:50:36724 ::   File "ui.py", line 127, in __call__

0211 08:50:36724 ::   File "ui.py", line 109, in __call__

0211 08:50:36724 ::   File "introSelect.py", line 460, in InputPrivateCode

0211 08:50:36724 ::   File "uicommon.py", line 137, in SetMaxLength

0211 08:50:36725 ::   File "uicommon.py", line 141, in SetSlotWidth

0211 08:50:36725 :: AttributeError
0211 08:50:36725 :: : 
0211 08:50:36725 :: 'SlotBar' object has no attribute 'SetWidth'
0211 08:50:36725 :: 


 

Aucune idée...

 

Merci d'avance

Lien à poster
  • 0

Hum... Je connais pas les éléments par coeur... (encore moins leurs méthodes) essaye avec cette fonction pour voir ? :

def SetSlotWidth(self, width):
	self.inputSlot.SetSize(width, self.inputSlot.GetHeight())
	self.inputValue.SetSize(width, self.inputValue.GetHeight())
	self.inputSlot.SetWindowHorizontalAlignCenter()

 

Lien à poster
  • 0

Merci d'avoir répondu, 

 

toujours le même soucis :

0211 16:49:10088 :: Traceback (most recent call last):

0211 16:49:10088 ::   File "ui.py", line 1924, in CallEvent

0211 16:49:10088 ::   File "ui.py", line 127, in __call__

0211 16:49:10088 ::   File "ui.py", line 109, in __call__

0211 16:49:10089 ::   File "introSelect.py", line 460, in InputPrivateCode

0211 16:49:10089 ::   File "uicommon.py", line 137, in SetMaxLength

0211 16:49:10089 ::   File "uicommon.py", line 141, in SetSlotWidth

0211 16:49:10090 :: AttributeError
0211 16:49:10090 :: : 
0211 16:49:10090 :: 'SlotBar' object has no attribute 'SetWidth'
0211 16:49:10090 :: 

 

Merci d'avance

Lien à poster
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.


×
×
  • Créer...

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.