[Tuto 6xx] Réparer des quetes avec Keira2 & SAI-Editor - Version imprimable +- AquaYoup (https://aquayoup.123.fr) +-- Forum : Développement World of Warcraft (https://aquayoup.123.fr/forum-1.html) +--- Forum : Tutoriels (https://aquayoup.123.fr/forum-6.html) +--- Sujet : [Tuto 6xx] Réparer des quetes avec Keira2 & SAI-Editor (/thread-41.html) |
Réparer des quetes avec Keira2 & SAI-Editor - Stitch - 01/10/2016 Réparer des quetes avec Keira2 & SAI-Editor
( Premier survol d'un sujet complexe et varié)
Les outils nécessaires :
Intro
Faire un tuto pour réparer des quêtes c'est un peut comme vouloir aller ramasser des salades sur la lune en vélo ... c'est impossible ... parce qu'il y a énormément de types de bugs différents et pour chacun plusieurs façon de faire . Je vais donc effleurer le sujet sans trop rentrer dans les détails mais au final vous aurez cerné Keira2 et le concept pour réparer les quêtes . Sachez qu'il existe quand même un solution miracle qui s'adapte pratiquement a tout les cas , c'est le killcrédit 6d.Les bugs sur ces quêtes peuvent êtres en gros de 2 types différents : il manque une des donnée , elle est erroné ou bien toute la quête ou une de ces branches n'existe pas . Pour réparer ces quêtes en général nous utiliserons Keira2 pour tout ce qui est définitions de la quête et SAI-Editor pour remplir ces conditions . Je vous inviterais avant de poursuivre a lire le tuto sur SAI-Editor , de l’expérimenter un peut bref de commencer a le comprendre . Keira2 n'est pas un programme a proprement parler comme l’était Truice sous 335 mais un site qui peut être local ou en ligne . Il n’exécute pas non plus de sql crée par nos modifs directement dans la DB mais génère juste les lignes sql a copier/coller dans son PHPMyAdmin . Pour ne pas trop m’étendre et vous perdre , je ne parlerais ici principalement que de la partie quête de Keira2 . Sachez toute fois qu'une fois ces lignes sql copier/coller dans votre PhpmyAdmin vous pourrez pour la plupart d’entre elles (mais pas toutes) les recharger dans le jeu sans avoir a relancer votre serveur par la commande .reload all . Bon vous êtes prés ? on commence ?
J'en vois déjà un la bas au fond qui transpire ... mais non reviens tu verras ... c'est facile Partie A - Mise en bouche : Présentation des différentes parties de Keira2 :
En cernant les diverses parties de Keira2 vous comprendrez par logique comment réparer les quêtes . Je reviendrais sur leur utilisations un peut plus bas par quelques type de quêtes .0) Lancement de Keira2 : Vous trouverez dans la partie haute les boutons vers les divers sujets traités par Keira2 : Quetes , Mob, etc et dans la partie basse la partie concernant ce sujet qui s'adaptera a ce choix , par défaut il ce positionne sur la recherche mais chaque sujet a ces sous branches propres . La partie quête de Keira2 est composé des branches Quest Part1 , Quest Part2 , Quest Part3 , etc 1) La branche Quest Part1 :
2) La branche Quest Part2 :
3) La branche Quest Part3 : on passera vite sur cette partie , Je ni ai perso jamais touché .
4) La branche Quest Objectives : C'est assurément la partie la plus importantes dans le debug d'une quête , celle ou vous interviendrez le plus souvent . A ne pas négliger . Elle conditionne ce qui vous est demandé : tuer x mob , ramener x item , etc . A coté de la colonne ID vous avez un icon qui permet de sélectionner la ligne et de la faire remonter dans l’éditeur au dessus . Après édition il faudra valider un des boutons Edit,Delete ou Add new. Chaque ligne correspond a une chose demandé pour finir la quête .
Citation :Type = 0 : KILL pnj
5) Les branches Creature Starters , Creature Enders , Gameobject Starters , Gameobject Enders désignent les ID des PNJ ou gameobject qui donnent ou terminent la quête . Partie B - exemples de bug de quetes et comment y remedier
6) types de Quelques types de quetes : je ne détaillerais pas tout les Types listé en 4 parce que j'en utilise encore que très peut , je ne les connais donc pas très bien . sa viendra au fil du débug de la DB .
6a) Tuer x mob : Elle peut paraitre simple celle la ... et pourtant il y a un petit piege - Dans la majorité des cas , c'est a dire quand il ni a qu'une sorte de MOB a tuer il faudra renseigner la ligne comme montré sur le screen 4 avec Type = 0 - Dans le cas ou il y aurais plusieurs sortes de MOB a tuer vous avec 2 choix possibles :
Le killcrédit c'est quoi ? ... je vous remercie de m'avoir posé la question , sa me fait un bon enchainement En fait la réponse est dans son nom killcrédit : crédit quand on tue un MOB ... " Bravo Stitch 3600 lignes pour en arriver la ... Bravo , + REP " Bon sérieusement c'est exactement comme pour 6a , l'on fait comme si l'on nous demandait de tuer un mob même si ce qui est demandé n'est que d'ouvrir une porte . La seule différence c'est qu'en 6a il suffisait de tuer le dit MOB pour être crédité , la ce n'est pas le cas . Le crédit sera tout simplement donné grâce SmartAI et son action ACTION_CALL_KILLEDMONSTER (33) a la place d'un mob . Les seules conditions sont que l'id de ce " MOB " doit exister dans la DB et bien sur ne pas être spawn quelque part , il ne servira qu'a sa . Vous comprenez maintenant pourquoi vous croisez des mobs sur wowhead avec la mention " L'emplacement de ce PNJ est inconnu " ... sa peut aussi indiquer un pet mais bon . Citation :Le script correspondant a ce screen : Le crédit de quête étant donné par SmartAI il peut être de n'importe qu'elle nature , il suffit de définir un Event dans SmartAi adapté . Le script peut aussi bien être celui d'un MOB (AIName`="SmartAI") que celui d'un gameobject (AIName`="SmartGameObjectAI") . Exemple :
Des types de gameobject il y en a une tartine et donc autant de source a problème et solution , pour les curieux vous trouverez une liste avec leurs détails Trinity ICI . La plupart du temps l'on aura affaire a un changement d’état comme ouvrir une cage pour libérer un prisonnier ou appuyer sur un bouton . Ici l'on pourra aussi utiliser le killcrédit mais avec en event de notre SmartAI un test sur ce changement d’état. Plutôt qu’écrire un roman , je vais prendre exemple sur la quête Les prisonniers de guerre au Carmine , celle ci nous demande de libérer des prisonniers enfermés dans l' enclos rochenoire qui est fermé a clef . Ce gameobject est un fait un simple bouton (BUTTON = 1) . Je vais détecter que le joueur ouvre l'enclos par un changement de son état grâce a EVENT_GO_STATE_CHANGED (70) qui sera égal a 2 : go_state_activated .
Le verrouillage est fait par le gameobject lui même . Si l'on examine ce gameobject (l'enclo ID 204441) l'on remarquera dans la case OPEN une valeur open=1930, s'il n'avait pas été verrouillé il y aurait eu 0 . Ce 1930 correspond a une entrée 1930 dans Lock.dbc ou l'on y trouvera une valeur 59261 ... 59261 qui est en fait l'id de l'item de déverrouillage clef (item 59261) . Vous remarquerez la principale difficulté de SmartAI qui est de relier event a cible , ici avec TARGET_PLAYER_RANGE (17) ce n'est pas très optimal puisqu'un autre joueur ayant lui aussi la quête et étant a porté aurait le crédit sans activer l'enclos , j'aurais pu utiliser TARGET_CLOSEST_PLAYER (21) mais j'ai remarqué que celui ci marchait quand il voulait . 6f) explorer un lieu : ObjectID étant a 99% avec la valeur -1 , j'avoue que je n'ai pas trouvé de corrélation dans la DB entre la zone et la quête , peut etre les dbc ou un spell (spell_area) mais la aussi je n'ai rien trouvé . Donc je ne me casse plus la tete , je passe par un trigger . Un trigger est un mob passif et invisible qui ne fait rien si ce n'est dans ce cas donner un killcrédit a un joueur détecté rans un certain rayon . Bon voila pour ce premier survol des résolutions de bugs de quêtes ce termine . Bien entendu il n'est pas parfait parce que c'est un milieu très complexe et varié et que ces débugs sont surtout basé sur le killcrédit plutot que sur une méthode plus propre . Au début j'étais plutôt partie sur un tuto sur Keyra2 mais au final celui ci est assez facile a cerner la seule partie qui justifiait d’être développé était celui des quêtes ... Je mettrais a jour au fil du temps lorsque les idées ou connaissances me permettrons de l’étoffer . 6g) Probleme de spell : Certaines quêtes nous demanderont d'utiliser un item fourni pour une utilisation spéciale mais voila ... cet item lance un sort qui ne marche pas et donc la quête ne peut être remplie . Pour illustrer cet exemple la quête Un désherbant radical , elle nous fournie l'item Massacr'herbes qui lance justement un spell qui ne marche pas , source du bug . Pour remédier a cela je vais utiliser la table spell_linked_spell , celle ci permet de lier un sort a un autre . Lorsque je lance le 1er sa lancera automatiquement le second . Il est possible de lier plusieurs sorts au premier pour arriver a ces fin . Il faut savoir que souvent les sorts existent en plusieurs exemplaires , parfois avec une limitation ou condition et parfois justement sans . Assez souvent l'on trouvera l’équivalent ou plusieurs qui une fois associés produiront l'effet désiré . Il vous faudra rechercher par nom sur wowhead et expérimenter ( avec .learn 123) . Si un sort testé ne marche pas je vous conseille de le désapprendre (.unlearn 123) afin que dans votre prochain essaie celui ci n’interfère pas . Il ce peut aussi que le sort testé ai un verrou comme un besoin de mana et ne marche pas sur le joueur mais marche sur le mob qui a moins de verrou . Citation :REPLACE INTO `world`.`spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES ('68211', '68212', '0', 'Massacr''herbes : quete 14236'); Chose intéressante aussi cette technique peut permettre de déboguer une classe , du moins provisoirement le temps de trouver un pro du C++ Ne vous faites quand mème pas trop d'illusion pour les sorts de classes , les équivalent sont beaucoup plus difficiles a trouver sans effet secondaire , surtout pour les talents . A noter dans la DB la table item_template_548 qui comme son nom l'indique provient de MOP , je l'ai rajouté puisque les items n'apparaissent plus dans la DB 6x et sont géré par les DBC . Elle ne sert a rien d'autre que de trouver le spell lancé par l'item dans la case spellid_1 . 7) Divers : Petits trucs bizarres que j'ai pu constater et astuces diverses
RE: Réparer des quetes avec Keyra2 & SAI-Editor - Stitch - 01/10/2016 Exemple de GameObject pouvant servir de base : Type Buttom (1) : Un Détonateur qui ne despawn pas et un temps de recharge de 5s . Le test ce fait par un changement d’état de celui ci (activé) Citation :REPLACE INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `Data0`, `Data1`, `Data2`, `Data3`, `Data4`, `Data5`, `Data6`, `Data7`, `Data8`, `Data9`, `Data10`, `Data11`, `Data12`, `Data13`, `Data14`, `Data15`, `Data16`, `Data17`, `Data18`, `Data19`, `Data20`, `Data21`, `Data22`, `Data23`, `Data24`, `Data25`, `Data26`, `Data27`, `Data28`, `Data29`, `Data30`, `Data31`, `Data32`, `unkInt32`, `AIName`, `ScriptName`, `VerifiedBuild`) VALUES Citation :SET @ENTRY := 204042; Type Goober (10) : Ici un canon utilisable uniquement avec la quête 26628 en cour , utilisable par gossip_hello Citation :REPLACE INTO `gameobject_template` (`entry`, `type`, `displayId`, `name`, `IconName`, `castBarCaption`, `unk1`, `faction`, `flags`, `size`, `Data0`, `Data1`, `Data2`, `Data3`, `Data4`, `Data5`, `Data6`, `Data7`, `Data8`, `Data9`, `Data10`, `Data11`, `Data12`, `Data13`, `Data14`, `Data15`, `Data16`, `Data17`, `Data18`, `Data19`, `Data20`, `Data21`, `Data22`, `Data23`, `Data24`, `Data25`, `Data26`, `Data27`, `Data28`, `Data29`, `Data30`, `Data31`, `Data32`, `unkInt32`, `AIName`, `ScriptName`, `VerifiedBuild`) VALUES Citation :SET @ENTRY := 113531; RE: Réparer des quetes avec Keyra2 & SAI-Editor - Stitch - 01/10/2016 [Réservé] RE: Réparer des quetes avec Keyra2 & SAI-Editor - Stitch - 02/10/2016 Voila le premier survol de la résolution des bugs de quêtes est fini , il est loin d'etre complet et parfait , je l'etofferais avec le temps . RE: Réparer des quetes avec Keyra2 & SAI-Editor - thogrinn - 02/10/2016 C'est compréhensible, excellent ! Merci !! RE: Réparer des quetes avec Keyra2 & SAI-Editor - Stitch - 02/10/2016 merci Thogrinn , je l etofferais lorsque je croiserais des cas differants RE: Réparer des quetes avec Keyra2 & SAI-Editor - Stitch - 03/10/2016 Ajout d'une astuce très importante pour le débug de quête concernant les spells qui peuvent être lancé par un item : 6g) Probleme de spell RE: Réparer des quetes avec Keyra2 & SAI-Editor - thogrinn - 03/10/2016 De toute façon, vu qu'on est pas sur du Blizz'like, pas grave si un sort de classe n'est pas parfaitement exécuté. Mais justement ; Prenons un exemple : - Les skills appris par niveaux sont les plus simple à compenser ; Mais pour les talents, je pensais à celui ci : "Désengagement", sort de chasseur qui permet de faire un bon en arrière, pour lâcher l'aggro et laisser le pet' prendre le relais. Et dans les talents (première ligne), il y a possibilité d'améliorer ce fameux skill : - Augmenter la vitesse de courses, - Créer un piège au moment du jump (comme un filet sur le mob qui l'empêche de bouger), - Et le dernier, pour diminuer le temps de recharge. Alors avec le Spell_Link, pour les sorts de base, c'est cool (par exemple remplacer la charge du guerrier de WoD par l'ancienne version quand ça ne marchait pas), et éventuellement gérer d'autres paramètres avec l'édit de DBC. Mais pour les talents, concrètement, quelles est la meilleure solution à ton avis ? ? RE: Réparer des quetes avec Keyra2 & SAI-Editor - Stitch - 03/10/2016 les dbc on ne les touche pas cette methode ayant l avantage aussi detre reversible. rajouter un vitesse de x seconde sur ce sort est possible mais dans ce cas il faut le faire sur le talent qui est en fait un second spell collé au desengagement et non de desengagement d origine . le probleme des talents c est que le spell qu on lui colle aura du mal a ce caler sur la bonne cible alors qu il est moins embetant pour le sort d origine. c est pour ce cas que j ai rajouté le stun a la charge wawa plutot qu au talent , parce que lon ne pouvait ce passer de ce stun , la charge perd de son interet . par contre certaines classes sont problematiques comme le druide ou jai pu rajouter forme de voyage ou felin mais il ne bascule pas , il faut soit prendre 1 autre forme soit clic droit sur licon pres de la mini map. RE: Réparer des quetes avec Keyra2 & SAI-Editor - thogrinn - 03/10/2016 Ok je comprends. Et de toute façon, c'est pas gênant, c'est pas comme les anciens talents 335/4xx ; Je trouve le nouveau système de talents pas terrible. Et c'est pas vraiment d'une utilité démentielle non plus... Quand Bliiz' m'a offer WoD + 7 jours de jeu, comme j'ai pas jouer sur l'offi, j'ai pris le sésame perso 90 ; Et j'ai mis aucun point de talents pendant la progression ; Ca n'a posé aucun soucis ! Et puis si tout peut se compenser sur les skills, c'est top. RE: Réparer des quetes avec Keyra2 & SAI-Editor - Stitch - 06/10/2016 Ajout d'un petit 7) Divers : Petits trucs bizarres que j'ai pu constater ou astuces diverses RE: Réparer des quetes avec Keyra2 & SAI-Editor - thogrinn - 06/10/2016 Bien le coup de la table "disable" ! RE: Réparer des quetes avec Keyra2 & SAI-Editor - Stitch - 06/10/2016 C'est vrais que tu t'attend quand une quête est désactivée dans cette table a ne pas la voir dans le jeu et non de l'avoir quand même proposé par le pnj mais que les items dropés (compteur quand mème affiché a l’écran) ne soient pas comptabilisés ... Elle m'a fait chercher un moment celle la hier a Dun Morog . RE: Réparer des quetes avec Keyra2 & SAI-Editor - Stitch - 07/10/2016 Ajout dans 7) Divers :Lorsque vous utilisez des EVENT_LINK (61) ou non , faite attention que les link to & link from soient valident . sa peut crash le serveur au démarrage . RE: Réparer des quetes avec Keyra2 & SAI-Editor - Stitch - 22/10/2016 Ajout en 1ere réponse du tuto (Réserved) de quelques exemples de gameobject pouvant servir de base . lorsque je tomberais sur des cas intéressant je les rajouterais a cette liste :
RE: Réparer des quetes avec Keyra2 & SAI-Editor - victeams - 20/08/2017 Super le tuto c'est hyper compréhensible. Mais comment fait on apparaitre un mob qui n'est pas là ? Je fait quelques qêtes avec les Panda, et quand j'ai la quête Aysa la Tushui et comme objectif Parlez au Marchand Lorvo, près de l’Étang de Fu, le marchand en question n'y est pas.... Comment je peux le faire apparaire, dans la dbb je pense ? Merci RE: Réparer des quetes avec Keyra2 & SAI-Editor - Stitch - 20/08/2017 Apparemment l'importation de la db firestorm a foutu un sacré bordel dans les spell_area , en gros tu ne vois pas le pnj et surement les autres aussi parce que tu es phasé alors que tu ne devrais pas . A n'en pas douter sa doit etre le cas aussi dans d'autres zones .. |