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

Question sur les pets files 2016


huntmaster1327

Question

Bonsoir, alors voilà j'ai quelque question concernant le système de pets des files 2016 de la team FE.

J'ai pu constaté que le pet gagnait de l'xp juste en le renvoyant et le rappelant, je voudrais retirer ceci mais je ne sais pas comment faire.

Je voudrais savoir comment changer la liste des items nécessaires pour faire évoluer le pet (c'est à dire débloquer le pallier 40+).

Et enfin j'aimerais savoir comment changer les bonus que rapportent les pets. 

J'ai déjà regardé côté quest et item proto mais je ne trouve pas alors si quelqu'un pouvait m'indiquer où ça se passe :S

Merci pour vos futures réponses.

 

Version des files : 2016

Domaine (Base de données, Core, etc.) : base de données

Votre niveau (débutant, intermédiaire, avancé) : intermédiaire

 

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le règlement des demandes d'aides.

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 85
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans cette question

Meilleurs contributeurs dans cette question

Images postées

Messages recommandés

  • 0

Je vois! Je te remercie, je vais faire ça pour tous mes pets alors ^^

Parcontre tu ne saurais pas comment changer la durée du pet ? il a une durée aléatoire quand on ouvre l'oeuf...

Avec fortifiant on peut lui en redonner ou le faire revivre mais c'est ce serait cool d'avoir une durée fixe =)

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

Sisi,

il faut que tu cherche cette ligne dans input_main.cpp

        int tmpdur = number(1, 14) * 24 * 60;

 

Ça veut dire que la durée de ton pet va varier entre 1j et 14j.

Si, par exemple, tu veux le garder un mois, il faut mettre :

        int tmpdur = 30 * 24 * 60;

 

edit : tu as raison, c'est en jour

  • Love 1
Lien vers le commentaire
Partager sur d’autres sites

  • 0

Arf j'ai un problème de compil

 

Voici ce que j'ai :

	int cbonus[3] = { Get_Level()*101, Get_Level()*0.405, Get_Level()*5.051 };
int cbonus2[3] = { Get_Level()*50.505, Get_Level()*0.61, Get_Level()*0.105 };
for (int i = 0; i < 3; ++i) {
	if (m_dwVnum == 34041) {// singe
		int test[3] = { 1, 63, 54}; // numéro des bonus voulu pour le pet de vnum A
	m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus[i]), 0,  60 * 60 * 24 * 365, 0, false); }
	else if (m_dwVnum == 34053) {//nemere
		int test[3] = { 1, 17, 37};
	m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus2[i]), 0,  60 * 60 * 24 * 365, 0, false); }
	}
	else {
		int test[3] = { 1, 15, 17};
	m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus[i]), 0,  60 * 60 * 24 * 365, 0, false); }
	}

 

je veux mettre 10 000 pv / 40% bonus mob et 500 défense au lvl 99 sur mon singe

et 5000 pv / 60 dh / 10% résistance magique sur le nemere

J'ai donc fait une deuxième variable cbonus2 pour gérer les valeurs différentes

apparement Get_Level, n'est pas reconnue

 

Edit : j'avais une accolade en trop à la fin du else if, donc pour les erreur de syntaxe c'est corrigé. Parcontre la fonction get_level n'est pas définie dans le fichier, où as-tu trouvé cette fonction ? ^^'

Edit 2: je crois que c'est GetLevel et pas Get_Level ^^ je teste

59fb3396d38ee_erreurcompil4.jpg.5414efa60497efb1969b5a375398153e.jpg

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

Peux-tu poster un screen du problème d'affichage ?

 

J'ai peut-être trouvé quelque chose pour le gain d'exp à chaque fois que le pet est appelé. (je ne promet rien du tout)

ça serai de mettre en commentaires ces deux lignes dans le fichier New_PetSystem.cpp (avec //)

        this->SetExp(atoi(row[2]), 0);        
        this->SetExp(atoi(row[3]), 1);

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

C'est loin d'être évident pour ça...

Mais on peut y arriver

 

Il va falloir par commencer par ça. Ca va permettre d'envoyer les numéros des bonus.

    int cbonus[3] = { Get_Level()*101, Get_Level()*0.405, Get_Level()*5.051 };
    int cbonus2[3] = { Get_Level()*50.505, Get_Level()*0.61, Get_Level()*0.105 };
    for (int i = 0; i < 3; ++i) {
        if (m_dwVnum == 34041) {// singe
            int test[3] = { 1, 63, 54}; // numéro des bonus voulu pour le pet de vnum A
            if (i==0)
                 m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", test[0], test[1], test[2])
        m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus[i]), 0,  60 * 60 * 24 * 365, 0, false); }
        else if (m_dwVnum == 34053) {//nemere
            int test[3] = { 1, 17, 37};
            if (i==0)
                 m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", test[0], test[1], test[2])
        m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus2[i]), 0,  60 * 60 * 24 * 365, 0, false); }
        }
        else {
            int test[3] = { 1, 15, 17};
            if (i==0)
                 m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", test[0], test[1], test[2])
        m_pk

 

Ensuite il faut réceptionner ces infos dans le client, dans le fichier game.py

Sous cette ligne

		"PetBonus"				: self.SetPetBonus,

tu vas rajouter :

		"PetNomBonus"			: self.SetPetBonusNom,

 

 

On va déclarer ensuite SetPetBonusNom un peu plus bas,

sous ces lignes

def SetPetBonus(self, hp, dif, sp):
	self.petmain.SetHp(hp)
	self.petmain.SetDef(dif)
	self.petmain.SetSp(sp)

 

tu vas rajouter :

def SetPetBonusNom(self, a, b, c):
	self.petmain.SetNomBonus1(a)
	self.petmain.SetNomBonus2(b)
	self.petmain.SetNomBonus3(c)		

 

Là les infos sont réceptionnées et envoyées dans uipetsystem.py

On ouvre ce fichier

Et sous ces lignes

def SetSp(self, sp):
	self.petsp.SetText(pointop(sp)+"%")

 

On va rajouter :

def SetNomBonus1(self, nb):
	self.petnombonus1.SetText(AFFECT_DICT[int(nb)])

def SetNomBonus2(self, nb):
	self.petnombonus2.SetText(AFFECT_DICT[int(nb)])

def SetNomBonus3(self, nb):
	self.petnombonus3.SetText(AFFECT_DICT[int(nb)])	

 

Ca va permettre l'affichage, mais il faut déclarer petnombonus1, petnombonus2 et petnombonus3

Sous ces lignes :

		self.pethp = self.GetChild("HpValue")
		self.petdef = self.GetChild("DefValue")
		self.petsp = self.GetChild("SpValue")

Tu vas rajouter ça :

		self.petnombonus1 = self.GetChild("HpTitle")
		self.petnombonus2 = self.GetChild("DefTitle")
		self.petnombonus3 = self.GetChild("SpTitle")

 

Mais, il faut aussi préciser les valeurs par défauts :

donc sous ces lignes :

	self.pethp.SetText("")
	self.petdef.SetText("")
	self.petsp.SetText("")

 

tu vas rajouter :

	self.petnombonus1.SetText("")
	self.petnombonus2.SetText("")
	self.petnombonus3.SetText("")

 

Et... c'est pas fini.

Car il y a un texte de base qu'il faut supprimer. Celui-ci est contenu dans petinformationwindow.py (pack uiscript)

tu vas rechercher l'une après l'autre, ces 3 lignes :

					{"name":"HpTitle", "type":"text", "x":0, "y":0, "text": "Points de vie", "color":GOLD_COLOR, "all_align" : "center"},
					{"name":"DefTitle", "type":"text", "x":0, "y":0, "text": "Défense", "color":GOLD_COLOR, "all_align" : "center"},
					{"name":"SpTitle", "type":"text", "x":0, "y":0, "text": "Points de Magie", "color":GOLD_COLOR, "all_align" : "center"},

 

et les remplacer par ces 3 là :

					{"name":"HpTitle", "type":"text", "x":0, "y":0, "text": "", "color":GOLD_COLOR, "all_align" : "center"},
					{"name":"DefTitle", "type":"text", "x":0, "y":0, "text": "", "color":GOLD_COLOR, "all_align" : "center"},
					{"name":"SpTitle", "type":"text", "x":0, "y":0, "text": "", "color":GOLD_COLOR, "all_align" : "center"},

 

Et... normalement c'est bon !  :angel:

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

En fait, je suis pas sûr que l'affichage (pv/def/pm) correspondent aux bonus que tu as changé

(le message d'iryzz m'a mis le doute)

 

 

Je l'avais sauvegardé au cas où, le voici mais je te promet rien, j'étais inspiré mais j'ai fais ça en 5 minutes... ça vaut ce que ça vaut

 

 

 

Il va falloir par commencer par ça. Ca va permettre d'envoyer les numéros des bonus.

    int cbonus[3] = { Get_Level()*101, Get_Level()*0.405, Get_Level()*5.051 };
     int cbonus2[3] = { Get_Level()*50.505, Get_Level()*0.61, Get_Level()*0.105 };
     for (int i = 0; i < 3; ++i) {
         if (m_dwVnum == 34041) {// singe
             int test[3] = { 1, 63, 54}; // numéro des bonus voulu pour le pet de vnum A
             if (i==0)
                  m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", test[0], test[1], test[2])
         m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus[i]), 0,  60 * 60 * 24 * 365, 0, false); }
         else if (m_dwVnum == 34053) {//nemere
             int test[3] = { 1, 17, 37};
             if (i==0)
                  m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", test[0], test[1], test[2])
         m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus2[i]), 0,  60 * 60 * 24 * 365, 0, false); }
         else {
             int test[3] = { 1, 15, 17};
             if (i==0)
                  m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", test[0], test[1], test[2])
         m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus2[i]), 0,  60 * 60 * 24 * 365, 0, false); }
        }

 

Ensuite il faut réceptionner ces infos dans le client, dans le fichier game.py

Sous cette ligne

            "PetBonus"                : self.SetPetBonus,

tu vas rajouter :

            "PetNomBonus"            : self.SetPetBonusNom,

 

 

On va déclarer ensuite SetPetBonusNom un peu plus bas,

sous ces lignes

    def SetPetBonus(self, hp, dif, sp):
        self.petmain.SetHp(hp)
        self.petmain.SetDef(dif)
        self.petmain.SetSp(sp)

 

tu vas rajouter :

    def SetPetBonusNom(self, a, b, c):
        self.petmain.SetNomBonus1(a)
        self.petmain.SetNomBonus2(b)
        self.petmain.SetNomBonus3(c)        

 

L? les infos sont réceptionnées et envoyées dans uipetsystem.py

On ouvre ce fichier

Et sous ces lignes

    def SetSp(self, sp):
        self.petsp.SetText(pointop(sp)+"%")

 

On va rajouter :

    def SetNomBonus1(self, nb):
        self.petnombonus1.SetText(AFFECT_DICT[int(nb)])
    
    def SetNomBonus2(self, nb):
        self.petnombonus2.SetText(AFFECT_DICT[int(nb)])
    
    def SetNomBonus3(self, nb):
        self.petnombonus3.SetText(AFFECT_DICT[int(nb)])    

 

Ca va permettre l'affichage, mais il faut déclarer petnombonus1, petnombonus2 et petnombonus3

Sous ces lignes :

            self.pethp = self.GetChild("HpValue")
            self.petdef = self.GetChild("DefValue")
            self.petsp = self.GetChild("SpValue")

Tu vas rajouter ça :

            self.petnombonus1 = self.GetChild("HpTitle")
            self.petnombonus2 = self.GetChild("DefTitle")
            self.petnombonus3 = self.GetChild("SpTitle")

 

Mais, il faut aussi préciser les valeurs par défauts :

donc sous ces lignes :

        self.pethp.SetText("")
        self.petdef.SetText("")
        self.petsp.SetText("")

 

tu vas rajouter :

        self.petnombonus1.SetText("")
        self.petnombonus2.SetText("")
        self.petnombonus3.SetText("")

 

Et... c'est pas fini.

Car il y a un texte de base qu'il faut supprimer. Celui-ci est contenu dans petinformationwindow.py (pack uiscript)

tu vas rechercher l'une après l'autre, ces 3 lignes :

                        {"name":"HpTitle", "type":"text", "x":0, "y":0, "text": "Points de vie", "color":GOLD_COLOR, "all_align" : "center"},
                        {"name":"DefTitle", "type":"text", "x":0, "y":0, "text": "Défense", "color":GOLD_COLOR, "all_align" : "center"},
                        {"name":"SpTitle", "type":"text", "x":0, "y":0, "text": "Points de Magie", "color":GOLD_COLOR, "all_align" : "center"},

 

et les remplacer par ces 3 l? :

                        {"name":"HpTitle", "type":"text", "x":0, "y":0, "text": "", "color":GOLD_COLOR, "all_align" : "center"},
                        {"name":"DefTitle", "type":"text", "x":0, "y":0, "text": "", "color":GOLD_COLOR, "all_align" : "center"},
                        {"name":"SpTitle", "type":"text", "x":0, "y":0, "text": "", "color":GOLD_COLOR, "all_align" : "center"},

 

Et... normalement c'est bon !  :angel:

 

edit pour l'accolade, il en manque pas mais une était mal placée

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Hellow,

 

Sa te montre pas le bonus car de base les bonus sont en pourcentage fin si j'ai bien compris ce que tu veux ,pourquoi ce casser la tête suffit d'enlever le pourcentage et changer le nom des bonus dans la fenêtre du pet (tu me dit si c'est pas sa hein ^^ )

Lien vers le commentaire
Partager sur d’autres sites

  • 0

D'accord et comment je fais ça ? :)

 

Edit : Ta méthode pourrait fonctionner iryzz, cependant je devrais mettre chaque valeur manuellement pour chaque lvl, exemple:

lvl 1 : X pv, Y bonus mob, Z defense

lvl 2 : X2 pv, Y2 bonus mob, Z2 defense

et ainsi de suite, on en revient donc à un item proto client & server => le côté server (newpetsystem.cpp) pour les vraies valeurs, et ta modif pour le côté client. A moins que je me trompe totalement mais dans ce cas là j'aimerais bien avoir plus d'information stp :)

 

Edit 2 : Sparks tu as oublié beaucoup d'accolades à chaque condition que tu as rajouté

Lien vers le commentaire
Partager sur d’autres sites

  • 0

J'ai finalement compilé après avoir rajouté les accolades et ; manquants, parcontre pour la partie client, après avoir fait toutes les modif que tu as dit, le jeu se ferme à la fin du chargement.

Voici les erreurs du syserr:

 

uipetsystem.py(line:186) __LoadWindow
ui.py(line:3035) LoadScriptFile
ui.py(line:3235) LoadChildren
ui.py(line:3235) LoadChildren
ui.py(line:3055) LoadChildren

PetInformationWindow.LoadWindow.LoadObject - :string indices must be integers, not str

0916 18:23:16001 :: ============================================================================================================
0916 18:23:16001 :: Abort!!!!

 

Voici ce qu'il y a ligne 186 dans uipetsystem.py :

			pyScrLoader.LoadScriptFile(self, "uiscript/PetInformationWindow.py")

 

Donc ça viendrait du PetInformationWindow.py ...

 

Voici la partie avec les 3 lignes modifiées (j'ai bien mis des tabulations) :

				## Pet Abilities
			{ 
				"name" : "AbilitiesWindow", "type" : "window", "x" : 43, "y" : 259, "width" : LONG_LABEL_WIDTH, "height" : LONG_LABEL_HEIGHT, "style" : ("attach",),
				"children" :
				(
					{"name":"AbilitiesName", "type":"text", "x":0, "y":0, "text": "Bonus", "r":1.0, "g":0.0, "b":0.0, "a":1.0, "all_align" : "center"},
				),	
			},

			## HP Title
			{ 
				"name" : "HpWindow", "type" : "window", "x" : 20, "y" : 282, "width" : MIDDLE_LABLE_WIDTH, "height" : MIDDLE_LABLE_HEIGHT, "style" : ("attach",),
				"children" :
				(
					{"name":"HpTitle", "type":"text", "x":0, "y":0, "text": "", "color":GOLD_COLOR, "all_align" : "center"},
				),	
			},
			## HP Value
			{ 
				"name" : "HpValueWindow", "type" : "window", "x" : 20 + MIDDLE_LABLE_WIDTH, "y" : 282, "width" : MIDDLE_LABLE_WIDTH, "height" : MIDDLE_LABLE_HEIGHT, "style" : ("attach",),
				"children" :
				(
					{"name":"HpValue", "type":"text", "x":0, "y":0, "text": "", "color":WHITE_COLOR, "all_align" : "center"},
				),	
			},

			## Defence Title
			{ 
				"name" : "DefWindow", "type" : "window", "x" : 20, "y" : 304, "width" : MIDDLE_LABLE_WIDTH, "height" : MIDDLE_LABLE_HEIGHT, "style" : ("attach",),
				"children" :
				(
					{"name":"DefTitle", "type":"text", "x":0, "y":0, "text": "", "color":GOLD_COLOR, "all_align" : "center"}
				),	
			},
			## Defence Value
			{ 
				"name" : "DefValueWindow", "type" : "window", "x" : 20 + MIDDLE_LABLE_WIDTH, "y" : 304, "width" : MIDDLE_LABLE_WIDTH, "height" : MIDDLE_LABLE_HEIGHT, "style" : ("attach",),
				"children" :
				(
					{"name":"DefValue", "type":"text", "x":0, "y":0, "text": "", "color":WHITE_COLOR, "all_align" : "center"},
				),	
			},

			## SP Title
			{ 
				"name" : "SpWindow", "type" : "window", "x" : 20, "y" : 326, "width" : MIDDLE_LABLE_WIDTH, "height" : MIDDLE_LABLE_HEIGHT, "style" : ("attach",),
				"children" :
				(
					{"name":"SpTitle", "type":"text", "x":0, "y":0, "text": "", "color":GOLD_COLOR, "all_align" : "center"},
				),
			},
			## SP Value
			{ 
				"name" : "SpValueWindow", "type" : "window", "x" : 20 + MIDDLE_LABLE_WIDTH, "y" : 326, "width" : MIDDLE_LABLE_WIDTH, "height" : MIDDLE_LABLE_HEIGHT, "style" : ("attach",),
				"children" :
				(
					{"name":"SpValue", "type":"text", "x":0, "y":0, "text": "", "color":WHITE_COLOR, "all_align" : "center"},
				),
			},

			## Pet Skill Title
			{ 
				"name" : "PetSkillWindow", "type" : "window", "x" : 11, "y" : 371, "width" : 120, "height" : 20, "style" : ("attach",),
				"children" :
				(
					{"name":"PetSkillTitle", "type":"text", "x":0, "y":0, "text": "Compétences", "r":1.0, "g":0.0, "b":0.0, "a":1.0, "all_align" : "center"},
				),
			},

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

Pour vérification, tu vas rajouter une ligne dans ton game.py, tu vas remplacer :

 

 

    def SetPetBonusNom(self, a, b, c):
        self.petmain.SetNomBonus1(a)
        self.petmain.SetNomBonus2(b)
        self.petmain.SetNomBonus3(c)

 

 

par :

 

    def SetPetBonusNom(self, a, b, c):
        self.petmain.SetNomBonus1(a)
        self.petmain.SetNomBonus2(b)
        self.petmain.SetNomBonus3(c)
        chat.AppendChat(1, a + " " + b + " " +c)

 

Une ligne devrait s'afficher quand tu appelle ton pet, dis moi ce que tu vois

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Toujours pareil :/

 

PS j'ai ça dans new_petsystem.cpp :

 

	int cbonus[3] = { GetLevel()*101, GetLevel()*0.405, GetLevel()*5.051 };
int cbonus2[3] = { GetLevel()*50.505, GetLevel()*0.61, GetLevel()*0.105 };
	for (int i = 0; i < 3; ++i) {
		if (m_dwVnum == 34041) {// singe
			int test[3] = { 1, 63, 54}; // numero des bonus voulu pour le pet de vnum A
		if (i==0) {
		m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", test[0], test[1], test[2]); }
			m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus[i]), 0,  60 * 60 * 24 * 365, 0, false); }
		else if (m_dwVnum == 34053) {//nemere
			int test[3] = { 1, 17, 37};
		if (i==0) {
		m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", test[0], test[1], test[2]); }
			m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus2[i]), 0,  60 * 60 * 24 * 365, 0, false); }
		else {
			int test[3] = { 1, 15, 17};
		if (i==0) {
		m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", test[0], test[1], test[2]); }
			m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus2[i]), 0,  60 * 60 * 24 * 365, 0, false); }
	}

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

Maintenant je sais...

Je me suis planté sur l'affichage du bonus, c'est complètement con.

 

On va tout changer pour la peine, tu vas avoir un truc tout beau.

 

tu vas changer ça :

   int cbonus[3] = { Get_Level()*101, Get_Level()*0.405, Get_Level()*5.051 };
     int cbonus2[3] = { Get_Level()*50.505, Get_Level()*0.61, Get_Level()*0.105 };
     for (int i = 0; i < 3; ++i) {
         if (m_dwVnum == 34041) {// singe
             int test[3] = { 1, 63, 54}; // numéro des bonus voulu pour le pet de vnum A
             if (i==0)
                  m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", test[0], test[1], test[2])
         m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus[i]), 0,  60 * 60 * 24 * 365, 0, false); }
         else if (m_dwVnum == 34053) {//nemere
             int test[3] = { 1, 17, 37};
             if (i==0)
                  m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", test[0], test[1], test[2])
         m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus2[i]), 0,  60 * 60 * 24 * 365, 0, false); }
         else {
             int test[3] = { 1, 15, 17};
             if (i==0)
                  m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", test[0], test[1], test[2])
         m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus2[i]), 0,  60 * 60 * 24 * 365, 0, false); }
         }

 

en :

 

      int cbonus[3] = { Get_Level()*101, Get_Level()*0.405, Get_Level()*5.051 };
     int cbonus2[3] = { Get_Level()*50.505, Get_Level()*0.61, Get_Level()*0.105 };
     for (int i = 0; i < 3; ++i) {
         if (m_dwVnum == 34041) {// singe
             int test[3] = { 1, 63, 54}; // numéro des bonus voulu pour le pet de vnum A
             m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", i, test[i], cbonus[i])
         m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus[i]), 0,  60 * 60 * 24 * 365, 0, false); }
         else if (m_dwVnum == 34053) {//nemere
             int test[3] = { 1, 17, 37};
             m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", i, test[i], cbonus2[i])
         m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus2[i]), 0,  60 * 60 * 24 * 365, 0, false); }
         else {
             int test[3] = { 1, 15, 17};
             m_pkOwner->ChatPacket(CHAT_TYPE_COMMAND, "PetNomBonus %d %d %d", i, test[i], cbonus2[i])
         m_pkOwner->AddAffect(AFFECT_NEW_PET, aApplyInfo[test[i]].bPointType, (int)(cbonus2[i]), 0,  60 * 60 * 24 * 365, 0, false); }
         }

 

ensuite :

    def SetPetBonusNom(self, a, b, c):
        self.petmain.SetNomBonus1(a)
        self.petmain.SetNomBonus2(b)
        self.petmain.SetNomBonus3(c)  

 

en

 

    def SetPetBonusNom(self, a, b, c):
        self.petmain.SetNomBonus(int(a), int(b), int(c))

 

puis :

    def SetNomBonus1(self, nb):
        self.petnombonus1.SetText(AFFECT_DICT[int(nb)])
    
    def SetNomBonus2(self, nb):
        self.petnombonus2.SetText(AFFECT_DICT[int(nb)])
    
    def SetNomBonus3(self, nb):
        self.petnombonus3.SetText(AFFECT_DICT[int(nb)])

 

en

    def SetNomBonus(self, i, bonus, nb):
        if i == 1:
            self.petnombonus1.SetText(self.tooltipItem.__GetAffectString(bonus, nb))
        elif i == 2:
            self.petnombonus2.SetText(self.tooltipItem.__GetAffectString(bonus, nb))
        elif i == 3:
            self.petnombonus3.SetText(self.tooltipItem.__GetAffectString(bonus, nb))

 

Là normalement... On est pas mal.

Si tout va bien il y aura un léger bug d'affichage (t'auras deux valeurs...) mais ça sera résolvable.

Pour ça, j'aurais besoin que tu poste un screen du résultat (si ça fonctionne en tout cas...)

Lien vers le commentaire
Partager sur d’autres sites

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


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 37
    2. 21

      Metin2 en 2020 peut-on en parler?

    3. 0

      METIN2Project

    4. 3

      Ressources - UnPack - Metin2 Client - Officiel

    5. 0

      Barre des tâches d'argent étendue

    6. 16

      Redémarrage automatique des channels

    7. 16

      Multi Logo GM / SGM / GA

  • En ligne récemment

    • Aucun utilisateur enregistré regarde cette page.

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.