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

[Débug files 2016] give_basic_weapon.quest


Galet

Messages recommandés

  • Funkiest

Bonjour,

 

En voyant ce sujet, j'ai décidé de m'y pencher car ce bug me posait vraiment problème, alors j'ai eu le raisonnement qui va suivre :

 

1 - J'ai premièrement analysé chacun de mes paquets, à la connexion, au tp, à la création d'un nouveau personnage etc...

2 - J'ai créé une quête s'appelant "testlogin.quest" qui m'affichait du texte à la connexion.

3 - Cette quête marchait sans aucun soucis, le texte ne restait pas.

4 - J'ai pensé à la quête des montures, qui s'est mise à marcher après l'avoir renommée.

5 - J'ai laissé uniquement du texte sur la "give_basic_weapon.quest", cette quête avait le problème en question.

6 - J'ai transposé le contenu de la "give_basic_weapon.quest" sur ma quête "testlogin.quest", la quête fonctionnait parfaitement sans aucun soucis.

 

Du coup, voilà la solution, qui est, je précise, bancale; en effet, je n'ai pas encore identifié la source probable du bug, même si les paquets semblent être les coupables. Je vais aussi vous donner des conseils pour être sûr que le bug ne pointe pas le bout de son nez à nouveau. PS : Vous n'avez pas besoin d'utiliser les sources pour cette solution !

 

Premièrement, identifiez la quête qui pose problème, chez moi, c'était la "give_basic_weapon.quest", alors on va faire avec celle-ci :

 

1 - Une fois la quête identifiée, renommez-la du coup, chez moi, j'ai renommé : "give_basic_weapon.quest" en "giveitem.quest".

2 - Ouvrez la quête "giveitem.quest" (donc votre quête renommée) et changez la première ligne pour qu'elle corresponde avec le nom de la quête. (Exemple : "give_basic_weapon" deviendra "giveitem")

3 - Ouvrez "locale_list" et renommez l'ancienne quête par le nom de la nouvelle (Chez moi :  "give_basic_weapon.quest" est devenu "giveitem.quest")

4 - Enregistrez, compilez vos quêtes, rebootez, allez en jeu.

4Bis - Enregistrez, compilez vos quêtes, allez en jeu et tapez /reload q

 

Vous pouvez choisir l'étape 4 qui vous convient.

 

Chez moi, le soucis était corrigé mais je vous conseille d'effectuer la manipulation qui va suivre en local avant d'ouvrir votre serveur et avant de transférer sur votre dédié à l'ouverture :

 

/!\ NE FAITES PAS ÇA SUR UN SERVEUR DÉDIÉ AVEC DES JOUEURS ! C'EST PRIMORDIAL ! CE N'EST À FAIRE SOUS AUCUN PRÉTEXTE ET SURTOUT  SI VOUS AVEZ DES JOUEURS /!\

 

Avant de mettre vos quêtes sous votre dédié naissant (donc avant l'ouverture), suivez ces étapes :

 

1 - Supprimez le dossier "Object" qui se situe dans le dossier "quest"

2 - Videz complètement la table "quest" dans la base de donnée player

3 - Compilez et ouvrez votre serveur

 

Avec ces deux solutions combinées je suis presque sûr à 100% que vous n'aurez plus ce bug, cependant, je précise qu'à chaque fois que vous identifiez une quête avec ce soucis, vous devez refaire la première étape (en faisant attention que cette quête ne soit pas appelée ailleurs, sinon, vous devez adapter)

 

Bonne journée et bon débug !

 

 

 

 

Solution n°2, proposée par Loki :

Ouvrez votre quête give_basic_weapon.quest

 

Ajoutez return après le dernier say :

 

     say("monture niveau 11 ainsi que tout l'équipement du")
    say("débutant +9 (bouclier, armure, armes et bijoux) !")
    say("Alors qu'attendez vous ? Bonne chance !")
    return
   end
  end
 end
end
 

 

 

 

Solution n°3, proposée par crapounette :

 

Ouvrez votre quête give_basic_weapon.quest :

Supprimez toutes les lignes qui utilisent fonction say

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

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

Meilleurs contributeurs dans ce sujet

moi j'ai tous simplement supprime

 

 

say_title("Bienvenue "..pc.name.." :")

say("Les grands sages ont décidé de vous aidez pour")

say("le début de l'aventure et vous on fait grâce de")

say("plusieurs présents. Ils vous ont donné une")

say("monture niveau 11 ainsi que tout l'équipement du")

say("débutant +9 (bouclier, armure, armes et bijoux) !")

say("Alors qu'attendez vous ? Bonne chance !")

 

voici la quête que j'utilise

 

quest bienvenue begin

state start begin

when login begin

if pc.getqf("basic_weapon") == 0 then

pc.setqf("basic_weapon", 1)

 

--Equipement pour Guerrier

 

local arme = 19 --Epée+9

local arme2 = 3009 --Glaive+9

local armure = 11209 --Armure du singe+9

local casque = 12209 --Heaume traditionnel+9

 

--Equipement pour Ninja

 

if pc.job == 1 then

arme = 19 --Epée+9

arme2 = 1009 --Dague+9

armure = 11409 --Costume azur+9

casque = 12349 --Capuchon en cuir+9

 

--Equipement pour Sura

 

elseif pc.job == 2 then

arme = 19 --Epée+9

arme2 = 0 --Rien

armure = 11609 --Armure de réquiem+9

casque = 12489 --Heaume sanglant+9

 

--Equipement pour Chamane

 

elseif pc.job == 3 then

arme = 7009 --Eventail+9

arme2 = 0 --Rien

armure = 11809 --Robe Pourpre+9

casque = 12629 --Chapeau de moine+9

end

 

if pc.countitem(arme) == 0 and pc.countitem(arme2) == 0 and pc.countitem(armure) == 0 and pc.countitem(casque) == 0  and pc.weapon != arme then

pc.give_gold(50000) --50 000 Yangs

pc.give_item2(50052, 1) --Livre cheval de combat

pc.give_item2(27003, 200) --Potion Rouge(G) x200

pc.give_item2(27006, 200) --Potion Bleue(G) x200

pc.give_item2(72727, 1) --Élixir de la lune (P)

pc.give_item2(72723, 1) --Élixir du soleil (P)

pc.give_item2(15009, 1) --Chaussures de cuir+9

pc.give_item2(50187, 1) -- Coffre d'apprenti I

pc.give_item2(13009, 1) --Bouclier de bataille+9

pc.give_item2(14009, 1) --Bracelet de bois+9

pc.give_item2(16009, 1) --Collier de bois+9

pc.give_item2(17009, 1) --Boucles oreilles bois+9

pc.give_item2(arme) --Arme level 0+9 différente pour chaque race.

pc.give_item2(arme2) --Arme level 0+9 différente pour chaque race.

pc.give_item2(armure) --Armure level 0+9 différente pour chaque race.

pc.give_item2(casque) --Casque level 0+9 différent pour chaque race.

pc.set_skill_level(131, 1)

repeat

horse . advance ()

until horse . get_level () >= 11

horse.summon()

horse.ride()

end

local empire={"Shinsoo", "Chunjo", "Jinno"}

notice_all("Le personnage ".. pc.get_name() .." du royaume "..empire[pc.getempire()].." a été crée.")

---                                              l

 

end

end

end

end

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...
  • 2 mois après...
  • 3 semaines après...
  • 2 mois après...

Si non depack le root de votre client, puis ouvrir le fichier uiQuest.py.

Ensuite trouver la fonction : def MakeQuestion(self, n): et la modifier comme suit :

def MakeQuestion(self, n):
		global entire_questbutton_number
		global entire_questpage_number
		global cur_questpage_number
		entire_questpage_number = ((n-2)/7)+1
		entire_questbutton_number = n
		
		if not self.board:
			return
		
		self.btnAnswer = [self.MakeEachButton(i) for i in xrange (n)]
			
		import localeInfo
		self.prevbutton = self.MakeNextPrevPageButton()
		self.prevbutton.SetPosition(self.sx+self.board.GetWidth()/2-164, self.board.GetHeight()/2-16)
		self.prevbutton.SetText(localeInfo.UI_PREVPAGE)
		#self.prevbutton.SetEvent(self.PrevQuestPageEvent, 1, n) # buggy
		self.prevbutton.SAFE_SetEvent(self.PrevQuestPageEvent, 1, n) # unbuggy
		
		self.nextbutton = self.MakeNextPrevPageButton()
		self.nextbutton.SetPosition(self.sx+self.board.GetWidth()/2+112, self.board.GetHeight()/2-16)
		self.nextbutton.SetText(localeInfo.UI_NEXTPAGE)
		#self.nextbutton.SetEvent(self.NextQuestPageEvent, 1, n) # buggy
		self.nextbutton.SAFE_SetEvent(self.NextQuestPageEvent, 1, n) # unbuggy
		
		if cur_questpage_number != 1:
			cur_questpage_number = 1

Ne pas oublier les tab

Modifié par PaJa41
Lien vers le commentaire
Partager sur d’autres sites



  • brilliantdiscord_widget
  • Flux d'Activité

    1. 21

      Metin2 en 2020 peut-on en parler?

    2. 0

      METIN2Project

    3. 3

      Ressources - UnPack - Metin2 Client - Officiel

    4. 0

      Barre des tâches d'argent étendue

    5. 16

      Redémarrage automatique des channels

    6. 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.