Hypnos

Staff Retirado
  • Contenido

    1965
  • Registrado

  • Última Visita

Todo el contenido de Hypnos

  1. Pues eso, aquí os iré dejando los enlaces a los videos que vaya subiendo de como arreglar ciertos bugs en el wow. Aquí tenéi el primero de la saga:
  2. Antes de nada vamos a explicar lo que deberia ser el procedimiento normal a la hora de arreglar un bug reportado,lo que deberia hacer cualquier programador,desarrollador,developer, llamalo x. 1- Verificar que el reporte es cierto y el bug existe ya sea de manera general o especifica para 1 determinado player. 2- Investigar,recopilar toda la informacion que sea relevante e intentar reproducirlo para averiguar que produce el bug concretamente. 3- Una vez localizado el problema, crear el parche para arreglarlo. 4- Aplicarlo y testearlo para asegurarse que funciona y no surge ningun otro problema o bug. Creo que la manera mas sencilla de abordar el arreglo de misiones sera exponiendo los diferentes tipos de problemas y para ello iremos creando una lista de bugs mas comunes y no tan comunes con sus respectivas soluciones. Esto no implica que la solucion a determinado bug sea siempre la que pongamos aqui. Si fuera tan facil, todas las misiones estarian ya arregladas hace tiempo. De ahi la importancia de investigar cada bug detenidamente. * En todos los ejemplos usaremos ids de npcs,quests,etc. inventados. Doy por hecho que habeis leido las otras guias y ya sabeis mas menos como se hacen parches o teneis la nocion basica de ello. Tipos de bugs y parches: 1- Bug: He completado la mision pero al querer entregarla el npc no muestra la ventana de dialogo para completar la mision. Razon: el npc carece de la flag de questgiver o el npc no tiene añadida la mision para completarla. Parche/solucion: UPDATE `creature_template` SET `npcflag`=npcflag|2 WHERE `entry`=80800;-- Añadimos al npc la flag de questgiver DELETE FROM `creature_questender` WHERE `id`=80800 AND `quest`=34000; INSERT INTO `creature_questender` (`id`,`quest`) VALUES (80800,34000);-- Añadimos la mision al npc. 2- Bug: He completado la mision pero al querer entregarla el npc muestra una ventana diciendo grettins y no me deja entregarla. Razon: el npc no tiene añadida la mision para completarla. Parche/solucion: DELETE FROM `creature_questender` WHERE `id`=80800 AND `quest`=34000; INSERT INTO `creature_questender` (`id`,`quest`) VALUES (80800,34000);-- Añadimos la mision al npc. 3- Bug: He completado la mision y al querer entregarla el npc muestra la ventana de completarla pero el boton de completar no hace nada. Razon: Esto puede ser debido a muchisimas cosas por lo que este tipo de bug necesita ser investigado directamente en la base de datos la mayoria de las veces. Puede ser desde algun requerimiento de la mision tipo razas permitidas,objetivos duplicados o con datos erroneos,alguna condicion de la tabla condiciones...Por lo que para este no haremos un parche concreto ya que podrian ser muchos diferentes. 4- Bug: No se completan los objetivos cuando mato los npcs que dice. Razon: Hay algun dato mal en la tabla quest_template_objetives. O bien la id del objetivo no es la correcta o no esta añadida, o bien el tipo de objetivo no es el correcto. Parche/solucion: DELETE FROM `quest_template_objective` WHERE `questid`=33915 AND `objectid`=76820; INSERT INTO `quest_template_objective` (`QuestID`, `Type`, `Index`, `ObjectID`, `Amount`, `Flags`, `UnkFloat`,`Description`, `VisualEffects`, `BuildVerified`) values (33915,0,0,76820,1,1,0,'','',1); -- Indica que el objetivo es matar 1 criatura con id 76820 type=0 es matar una criatura type=1 es conseguir un objeto type=2 entregar la mison a un npc type=3 interactuar con un npc * Normalmente esta tabla no se toca, ni se deberia tocar ya que los datos son copiados directamente del oficial. 5- Bug: el npc no me muestra la siguiente mision al completar la que tenia o bien he abandonado una mision y al querer volverla a coger no me la muestra y muestra otra diferente. Razon: no se ha establecido el orden de la linea de misiones por lo que se muestran de forma aleatoria. Parche/solucion: UPDATE `quest_template` SET `PrevQuestId`=0,`NextQuestId`=34000 WHERE `id`=33999;-- primera mision de la cadena de misiones UPDATE `quest_template` SET `PrevQuestId`=33999,`NextQuestId`=34001 WHERE `id`=34000;-- segunda UPDATE `quest_template` SET `PrevQuestId`=34000,`NextQuestId`=34002 WHERE `id`=34001;-- tercera UPDATE `quest_template` SET `PrevQuestId`=34001 WHERE `id`=34002;-- cuarta(ultima) Hasta aqui los tipos de bug mas comunes y "faciles" de arreglar. Existen otro tipo de bugs de este estilo pero que no son tan comunes por lo que no los mencionaremos. Si alguien tiene alguna pregunta sobre otro tipo de bug, puede hacerla en este tema. Todos estos bugs se pueden arreglar porque partimos de que esas misiones no necesitan ser scriptadas o ya lo tienen hecho. Despues existen las misiones que no estan scriptadas, esto quiere decir que los npcs tienen que realizar alguna accion o evento para que los objetivos sean cumplidos. Este tipo de misiones fallan porque no tienen el script o el script es erroneo. Creo que sabeis a cuales nos referimos, sino, pues son esas en las que aceptamos la mision y el npc deberia caminar hacia un lugar, o al acercarnos a un sitio deberia aparecer un npc u otras acciones que iremos viendo mas a fondo segun avancemos en las guias. Para todas estas misiones que requieren de una accion por parte del npc o npcs se usa la tabla smart_scripts. Este tipo de parches es lo que se llaman SAIs. Y como esto ya es un tema bastante mas complejo, lo dejaremos para la siguiente guia. Espero que a los que se interesaron un poco por el tema de arreglar cosas, esta miniguia les haya picado un poco mas la cosa y les haya gustado. Cualquier duda, ponerla por aqui debajo. Saludos y hasta la proxima.
  3. this was a request for adding the patche but noone did answer,so it isnt added in game.
  4. Arreglo para el reporte del bugtracker https://firestorm-servers.com/es/report/see_report/90272 Realm: Sethraliss -- Adding Lost Spectral Gryphon 121567 (creature tameable) -- Spawning Spectral Feather 269775 (object which summon Lost Spectral Gryphon npc) -- Set respawn to 12 hours UPDATE `gameobject_template` SET `displayId`=3651,`IconName`='Interact',`Data2`=269775,`AIName`='SmartGameObjectAI',`VerifiedBuild`=23877 WHERE `entry`=269775; DELETE FROM `gameobject` WHERE `id`=269775; INSERT INTO `gameobject` (`guid`,`id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `isActive`, `ScriptName`, `VerifiedBuild`) values (210413033,'269775','0','1519','5390','0','0','0','0','-1','-8830.45','477.518','109.766','2.26429','-0','-0','-0.933061','-0.359719',43200,'255','1','0','','23877'); DELETE FROM `smart_scripts` WHERE `entryorguid`=269775; INSERT INTO `smart_scripts`(`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`, `event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`, `action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`, `target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES (269775,1,0,1,64,0,100,0,2,0,0,0,12,121567,2,39600000,0,0,0,8,0,0,0,'-8830.15','477.277','109.624','2.40566','Spectral Feather- On click - Summon Lost Spectral Gryphon'), (269775,1,1,0,64,0,100,0,2,0,0,0,41,1000,0,0,0,0,0,20,269775,10,0,'0','0','0','0','Spectral Feather- On click - Despawn self cast'); UPDATE `creature_template` SET `minlevel`=110,`maxlevel`=120 WHERE `entry`=121567; -- Adding Gon 121571 (creature tameable) -- Spawning Spectral Eggshell 269796 (object which summon Gon npc) -- Set respawn to 4 hours UPDATE `gameobject_template` SET `displayId`=17624,`IconName`='Interact',`Data2`=269796,`AIName`='SmartGameObjectAI',`VerifiedBuild`=23877 WHERE `entry`=269796; DELETE FROM `gameobject` WHERE `id`=269796; INSERT INTO `gameobject` (`guid`,`id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `isActive`, `ScriptName`, `VerifiedBuild`) values (210413034,'269796','1','1637','5169','0','0','0','0','-1','1687.98','-4130.07','49.2794','6.12799','-0','-0','-0.933061','-0.359719',14400,'255','1','0','','23877'); DELETE FROM `smart_scripts` WHERE `entryorguid`=269796; INSERT INTO `smart_scripts`(`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`, `event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`, `action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`, `target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES (269796,1,0,1,64,0,100,0,2,0,0,0,12,121571,2,10800000,0,0,0,8,0,0,0,'1689.43','-4130.70','50.84709','2.8513','Spectral Eggshell- On click - Summon Gon'), (269796,1,1,0,64,0,100,0,2,0,0,0,41,1000,0,0,0,0,0,20,269796,10,0,'0','0','0','0','Spectral Eggshell- On click - Despawn self cast'); UPDATE `creature_template` SET `minlevel`=110,`maxlevel`=120 WHERE `entry`=121571;
  5. Buenas gente, aunque ando retirado del staff y todo lo relacionado con Firestorm desde hace unos meses, he decidido compartir con vosotros un tutorial que estoy haciendo de como crear tu propio servidor local usando el core de Trinity, en este caso la version 7.1. (Legión). Aviso, que dado que van arreglando cosas poco a poco y es un código libre-compartido y lo hacen como hobby, esta lleno de bugs y la mayoría de las cosas no funcionan. Esto quiere decir que dicho servidor local sirve mayormente para trastear con el y aprender cositas pero no para ponerlo público, lo sumo ponerlo Lan y echar unas risas con los amigos. Sin más, os dejo la primera parte del tutorial y muy pronto iré añadiendo las siguientes. Espero que os guste....
  6. Buenas, este tema sera para que podais descargar las aplicaciones necesarias para crear vuestros propios parches (arreglos-fixes) para un servidor de wow y de paso aprender a configurarlas y usarlas. Ademas, cualquier duda para usar estas aplicaciones o error podra ser comentado y resuelto aqui. Basicamente con notepad podrias hacer los parches pero vamos a hacerlo todo mas comodo y fiable. 1- REQUERIMIENTOS: 1.1. SqlYog : Es un gestor de base de datos (DB). Lo usaremos para aplicar-introducir los parches a nuestra base de datos. Si ya tienes conocimientos de sql puedes usar directamente mysqld pero es mucho mas sencillo usar SqlYog o incluso Heidi (similar para SqlYog) ya que tiene la interface muy intuitiva y dispone de muchas herramientas que nos facilitaran muchisimo el trabajo. 1.2. Mysqld : es el servidor que nos permitira que la base de datos este comunidacada con nuestro gestor de BD. Digamos el intermediario. Ha de estar instalado y abierto si o si, siempre que queramos usar Sqlyog o Heidi. 1.3. Base de datos: es donde podremos consultar todas las tablas de datos que tiene nuestro servidor y donde quedaran guardados nuestros parches para que los ejecute el juego. Wow tiene 4 base de datos: . auth : donde se guardan nuestros datos de cuenta para loguear entre otras cosas. . characters: aqui estan todos los datos de nuestros pjs. . hotfixes: la mayoria de los ultimos arreglos que va añadiendo blizzard con los parches introducidos despues de una expansion. . world: todos los datos relacionados con el juego desde las criaturas hasta los vuelos o logros,etc... Nosotros usaremos unicamente las BDs de World (principalmente) y quizas hotfixes. 1.4. Notepad++ : Es un gestor de texto que te permite trabajar con muy variados lenguajes, lo que facilita mucho el trabajo. Hara que cada variable de tu codigo este representada con diferente color, por lo que si cometes un error podras darte cuenta rapido. Su interface es muy sencilla e intuitiva, realmente facil de usar. 2- DESCARGAS:
  7. Pos eso, pequeños consejos para los que empezamos en esta expansión siendo completos noobs xD.
  8. Identificación de los nombres de las columnas locales _loc1: Esta columna corresponde al cliente Koreano. locales _loc2: Esta columna corresponde al cliente Frances. locales _loc3: Esta columna corresponde al cliente Aleman. locales _loc4: Esta columna corresponde al cliente Chino. locales _loc5: Esta columna corresponde al cliente Taiwanese. locales _loc6: Esta columna corresponde al cliente Español (España). locales_loc7: Esta columna corresponde al cliente Español (Latino America). locales _loc8: Esta columna corresponde al cliente Ruso. Ingles - no necesitado.Viene por defecto en el wow. Herramientas Útiles - IMPORTANTE Aquí estan algunas herramientas: $B: Cambio de linea. $N: Nombre del jugador (Ejemplo: Bievenido Paco) $R: Raza del jugador (Ejemplo: Bienvenido Pandaren) $C: Clase del jugador (Ejemplo: Bievenido Guerrero) $G: Diferencia entre hombre o mujer. Pon hombre primero y luego mujer (y un punto ":" en el medio) Modelo de Sentencias SQL para la traducción de Misiones Una misión esta compuesta de 17 partes (y por lo tanto de 17 textos que podrían ser traducidos): Title: Nombre de la misión. Details: Detalles de la misión. Objetives: Objetivos de la mision. OfferRewardText: Texto que se muestra mientras estas en la mision y hablas con el que completa la mision (objectivos completados). RequestItemsText:Texto que se muestra mientras estas en la mision y hablas con el que completa la mision (objectivos NO completados). EndText: sin tratar. CompletedText: sin tratar. ObjectiveText1: Objetivo 1 ObjectiveText2: Objetivo 2 ObjectiveText3: Objetivo 3 ObjectiveText4: Objetivo 4 QuestGiverTextWindow: sin tratar. QuestGiverTargetName: sin tratar. QuestTurnTextWindow: sin tratar. QuestTurnTargetName: sin tratar. No os dare un ejemplo de como hacerlo en el juego, por el contrario os mostrare como hacerlo con sql. Nota: el siguiente ejemplo es para traducir a frances,si vas a traducir a español usa la columna _loc6. Titulo: UPDATE locales_quest SET `Title_loc2`="#1" WHERE `entry`='#2'; /* Donde: #1 es el nombre de la mision #2 corresponde a la id de la mision (wowhead) */ Detalles: UPDATE locales_quest SET `Details_loc2`="#1" WHERE `entry`='#2'; /* Donde: #1 corresponde a los detalles de la mision. #2 corresponde a la ide de la mision (wowhead) */ Objetivos: UPDATE locales_quest SET `Objectives_loc2`="#1" WHERE `entry`='#2'; /* Donde: #1 corresponde a los objetivos de la mision #2 corresponde a la id de la mision (wowhead) */ Texto de oferta de recompensa: UPDATE locales_quest SET `OfferRewardText_loc2`="#1" WHERE `entry`='#2'; /* Donde: #1 es el texto que se visualiza mientras estas en la mision con los objetivos ya completados(Mision completada) #2 corresponde al id de la mision (wowhead) */ Texto piezas requeridas: UPDATE locales_quest SET `RequestItemsText_loc2`="#1" WHERE `entry`='#2'; /* Donde: #1 es el texto que se ve mientras estas en la mision sin haber completado los objetivos (Mision no completada) #2 corresponde a la id de la mision (wowhead) */ Texto del objetivo 1: UPDATE locales_quest SET `ObjectiveText1_loc2`="#1" WHERE `entry`='#2'; / * Where: #1 es el texto del objetivo 1 #2 corresponde a la id de la mision (wowhead) */ Texto del objetivo 2: UPDATE locales_quest SET `ObjectiveText2_loc2`="#1" WHERE `entry`='#2'; /* Donde: #1 es el texto del objetivo 2 #2 corresponde a la id de la mision (wowhead) */ Texto del objetivo 3: UPDATE locales_quest SET `ObjectiveText3_loc2`="#1" WHERE `entry`='#2'; /* Donde: #1 es el texto del objetivo 3 #2 corresponde a la id de la mision (wowhead) */ Texto del objetivo 4: UPDATE locales_quest SET `ObjectiveText4_loc2`="#1" WHERE `entry`='#2'; /* Donde: #1 es el texto del objetivo 4 #2 corresponde a la id de la mision (wowhead) */ Mision de ejemplo: À la recherche du varech Example Title: À la recherche du varech Details: Je peux préparer une potion d'invisibilité pour Maybell, qui lui permettra de s'échapper du vignoble des Maclure et de rejoindre Tommy Joe. Mais pour préparer cette potion, j'ai besoin de varech cristallin.$B$BCette plante pousse habituellement dans l'océan, mais parfois les murlocs en récoltent. Il faut aller voir si les murlocs près du lac de Cristal n'en auraient pas en ce moment. Le lac de Cristal est à l'est de Comté-de-l’Or. Objectives: Apportez 4 Feuilles de Varech cristallin à William Pilon de Comté-de-l’Or. OfferRewardText: Vous avez les feuilles. Bien joué ! Maintenant, juste un instant, le temps que je concocte la potion... RequestItemsText: Avez-vous ce varech cristallin ? Je suis sûr que Maybell est impatiente de voir son galant... ObjectiveText1: Feuille de varech cristallin Credits for Mikrole.
  9. Pos na, que me aburria y me dio por hacer un video de una bg xD. Perdon por el sonido, esta grabado antes de que consiguiera configurar bien todo y la grafica hacia que estuviera todo desincronizado porque no daba para tener los graficos altos xD.
  10. No tiene nada que ver. Las misiones se pueden arreglar con sql y es otra historia.
  11. Buenas, no recuerdo quien eres aunque me suena tu nombre...un placer verte por estos lares tambien ;). Saludos.
  12. Muchas gracias de nuevo, esta claro que por personas como tú erá por lo que merecía la pena intentar ayudar en lo que se pudiera. Nos seguiremos viendo por aquí de vez en cuando, cuidate y pasalo bien ;).
  13. @jandres80 me alagan y agradan mucho tus palabras, gracias ^^. Sí, todavía lo visito de vez en cuando :P. Siento no recordar quien eres ahora mismo pero un saludo y un gran abrazo para ti también ;).
  14. Te comento por si no te habias dado cuenta pero yo hace tiempo que no pertenezco al staff. Si quieres tienes la seccion de parches para ponerlo cuando lo acabes pero yo ni idea de como va el tema ahora. Saludos.
  15. Posiblemente por falta de tiempo. Se enfocan en cosas mas importantes o traducciones que son mas practicas. No se realmente :P.