Modificar "casteo" o tiempo para crear objetos

Mewsito

Explorador
Desde
13 Dec 2021
Mensajes
16
Reacciones
3
Honor
5
¡¡Muy buenas gente!!

Alguien sabe dónde hay que toquetear (si en la BDD del MySQL, o en los archivos DBC del emu) para modificar el tiempo que tardas en hacer ciertas cosas?

Había pensado en cosas como por ejemplo:
- Eliminar cooldown de piedra del hogar.
- Que las profesiones no tarden tanto en crear los objetos.
- Cosas por el estilo...

Muchas gracias por vuestro tiempo y dedicación!!
 
Desde
12 Sep 2021
Mensajes
109
Reacciones
131
Honor
67
¡¡Muy buenas gente!!

Alguien sabe dónde hay que toquetear (si en la BDD del MySQL, o en los archivos DBC del emu) para modificar el tiempo que tardas en hacer ciertas cosas?

Había pensado en cosas como por ejemplo:
- Eliminar cooldown de piedra del hogar.
- Que las profesiones no tarden tanto en crear los objetos.
- Cosas por el estilo...

Muchas gracias por vuestro tiempo y dedicación!!
- Para remover el cooldown de un item puedes hacerlo directamente por db en `item_template` la columna `spell_cooldown`.

- No sé y no creo que se pueda bajar el tiempo de crear objetos por db ya que eso es un spell que se triggerea al hacer la acción de crear algo, personalmente le haría un "SpellScript" en C++ haciendo que le baje el tiempo bajo X circunstancia o poniéndola instantánea o en "SpellMgr.cpp" le modificaría directamente a ese spell el valor de "Cast time" y le pondría el que quisiera.

Para ambos casos la solución es para las versiones 548 o superior, ya que desconozco en versiones anteriores si existen esos valores en db o si sería más fácil reducir el tiempo de casteo de un spell.

Saludos, espero que resuelvas ✌️
 
Upvote 0

Mewsito

Explorador
Desde
13 Dec 2021
Mensajes
16
Reacciones
3
Honor
5
- Para remover el cooldown de un item puedes hacerlo directamente por db en `item_template` la columna `spell_cooldown`.

- No sé y no creo que se pueda bajar el tiempo de crear objetos por db ya que eso es un spell que se triggerea al hacer la acción de crear algo, personalmente le haría un "SpellScript" en C++ haciendo que le baje el tiempo bajo X circunstancia o poniéndola instantánea o en "SpellMgr.cpp" le modificaría directamente a ese spell el valor de "Cast time" y le pondría el que quisiera.

Para ambos casos la solución es para las versiones 548 o superior, ya que desconozco en versiones anteriores si existen esos valores en db o si sería más fácil reducir el tiempo de casteo de un spell.

Saludos, espero que resuelvas ✌️

mil gracias Syrus!
Con lo de las versiones 548 a qué te refieres?
 
Upvote 0
Desde
30 Mar 2022
Mensajes
494
Reacciones
417
Honor
82
Estuve investigando un poco en la dbc y puede que se pueda modificar algo pero abría que buscar mucho los datos que intervengan en cada caso, pero como siempre digo mejor es no estar tocando las dbc sin conocimientos porque puede afectar a otras mil cosas más
 
Upvote 0

Mewsito

Explorador
Desde
13 Dec 2021
Mensajes
16
Reacciones
3
Honor
5
Estuve investigando un poco en la dbc y puede que se pueda modificar algo pero abría que buscar mucho los datos que intervengan en cada caso, pero como siempre digo mejor es no estar tocando las dbc sin conocimientos porque puede afectar a otras mil cosas más
Lo de la DBC lo estuve mirando, pero claro, si para cada objeto que se castea para crearlo he de modificar una linea del DBC... me muero jajaja. Quería sabersi hay algo que se pudiera hacer "para todo"
 
Upvote 0
Desde
30 Mar 2022
Mensajes
494
Reacciones
417
Honor
82
Yo creo que al haber costos distintos igual tmb hay tiempos de crafteos distintos pero claro abría que explorar todas las dbc a ver cuáles son las que intervienen y si es que lo hacen. Pero posiblemente sí tengas que modificar uno a uno los items
 
Upvote 0
Desde
12 Sep 2021
Mensajes
109
Reacciones
131
Honor
67
Te referirás a que expansión no 🫣😜😜
😂 Si si me refería expansión 😅 además de si es posible que especifique la base ya que es para ver si lo puedo ayudar haciéndole un script en C++ ya que si lo hace por DBC creo que va a ser mucho más largo, las profesiones solas cada vez que se aprende un rango nuevo el spell de recolección cambia. O no se si DBC tenga algún apartado y agrupe esas spells de profesión por skills.
 
Upvote 0

Mewsito

Explorador
Desde
13 Dec 2021
Mensajes
16
Reacciones
3
Honor
5
@Mewsito una pregunta, en que servidor estás intentando implementar eso y cuales spells por ejemplo querrías bajar el tiempo de canalización?
estmos haciendo un servidor unos amigos, de momento nada "serio" pero bueno, queríamos mirar de que las profesiones fueran más rapido de subir... porque hya objetos que tardan "bastante" en crerase... y bueno, por hacerlo más ameno...

otra consulta... se que en la conf de casi todos los emus se pueden modificar drops de NPCs y tal... pero por ejemplo, drops de mineria o herboristeriía? se puede hacer que las menas o hierbas den más drop?
 
Upvote 0

Mewsito

Explorador
Desde
13 Dec 2021
Mensajes
16
Reacciones
3
Honor
5
😂 Si si me refería expansión 😅 además de si es posible que especifique la base ya que es para ver si lo puedo ayudar haciéndole un script en C++ ya que si lo hace por DBC creo que va a ser mucho más largo, las profesiones solas cada vez que se aprende un rango nuevo el spell de recolección cambia. O no se si DBC tenga algún apartado y agrupe esas spells de profesión por skills.
la version en la del LK, 335a, así que por lo que me habéis dicho hacer algo en C++ me da que no...
 
Upvote 0
Desde
12 Sep 2021
Mensajes
109
Reacciones
131
Honor
67
otra consulta... se que en la conf de casi todos los emus se pueden modificar drops de NPCs y tal... pero por ejemplo, drops de mineria o herboristeriía? se puede hacer que las menas o hierbas den más drop?
Al final del config debes tener un listado de distintos drops pero creo que abarcan más de lo que necesitas, para centrar más en eso se puede hacer directamente en db en `gameobject_loot_template` ahí puedes especificar la cantidad min/max a obtener del loot de un objeto de hiervas y menas, para el caso de los npc que permiten ser minados/desollados/recolectados(hervoristeria) sería en la tabla `skinning_loot_template`. Por último también puedes usar la `reference_loot_template` donde puedes agrupar varios objetos y su loot para luego usarlo en otros lugares sin tener que mencionar objeto por objeto.

la version en la del LK, 335a, así que por lo que me habéis dicho hacer algo en C++ me da que no...
Aunque sea 335a es posible hacer scripts en C++ pero hasta donde tengo entendido (y discúlpenme si estoy equivocado) utilizan más LUA por una cuestión de comodidad.
 
Upvote 0

Mewsito

Explorador
Desde
13 Dec 2021
Mensajes
16
Reacciones
3
Honor
5
Al final del config debes tener un listado de distintos drops pero creo que abarcan más de lo que necesitas, para centrar más en eso se puede hacer directamente en db en `gameobject_loot_template` ahí puedes especificar la cantidad min/max a obtener del loot de un objeto de hiervas y menas, para el caso de los npc que permiten ser minados/desollados/recolectados(hervoristeria) sería en la tabla `skinning_loot_template`. Por último también puedes usar la `reference_loot_template` donde puedes agrupar varios objetos y su loot para luego usarlo en otros lugares sin tener que mencionar objeto por objeto.


Aunque sea 335a es posible hacer scripts en C++ pero hasta donde tengo entendido (y discúlpenme si estoy equivocado) utilizan más LUA por una cuestión de comodidad.

perfect, miraré eb la DB, y i, se usa LUA para tema de hacer codigos...
 
Upvote 0

MeluS

Capataz
Desde
31 Mar 2020
Mensajes
21
Reacciones
22
Honor
32
¡¡Muy buenas gente!!

Alguien sabe dónde hay que toquetear (si en la BDD del MySQL, o en los archivos DBC del emu) para modificar el tiempo que tardas en hacer ciertas cosas?

Había pensado en cosas como por ejemplo:
- Eliminar cooldown de piedra del hogar.
- Que las profesiones no tarden tanto en crear los objetos.
- Cosas por el estilo...

Muchas gracias por vuestro tiempo y dedicación!!

En el caso de la piedra de hogar sería tan sencillo como buscar en la base de datos de world en item_template la id del item y buscar la spell a la que llama (en mi caso la 8690), el cooldown en este caso está en la spell.dbc (mi versión es wotlk) y en este casó ahí tienes el cooldown, existe otra posibilidad más complicada que es crear una spell custom que sea un aura que haga un SPELL_MOD y que cambies el cooldown de la spell si se tiene aplicada ese aura (como un encantamiento etc).


1665555680916.png

Si se quiere hacer por código podrías meterle un un script con un aftercast que quedaría más o menos asó (versión trinitycore), el problema de esta forma es que el jugador vería que el tiempo de reutilización sigue siendo el tiempo blizz, de las otras dos formas no lo sería.

1665555870868.png

Para el tema de profesiones y tal es más o menos lo mismo, es buscar la spell que se triggerea cuando vas a hacer un casteo y modificarle el casttime, en este caso si que tendría que ser por dbc, si quieres que distintos objetos tengan distintos tiempos ahí deberías crear duplicados de esa spell y hacer un script en el code que detecte que item se va a crear y que triggeré una spell distinta con distintos tiempos.
También como en el caso anterior se puede meter un aura SPELL_MOD pero en este caso al casttime de la blizz.

Saludos
 
Upvote 0
Desde
30 Mar 2022
Mensajes
494
Reacciones
417
Honor
82
Aunque sea 335a es posible hacer scripts en C++ pero hasta donde tengo entendido (y discúlpenme si estoy equivocado) utilizan más LUA por una cuestión de comodidad.
Sea la expansión que sea se puede hacer script C++ el lua son módulos adicionales que se le pueden agregar que facilitan ciertas cosas.


Al final del config debes tener un listado de distintos drops pero creo que abarcan más de lo que necesitas, para centrar más en eso se puede hacer directamente en db en `gameobject_loot_template` ahí puedes especificar la cantidad min/max a obtener del loot de un objeto de hiervas y menas, para el caso de los npc que permiten ser minados/desollados/recolectados(hervoristeria) sería en la tabla `skinning_loot_template`. Por último también puedes usar la `reference_loot_template` donde puedes agrupar varios objetos y su loot para luego usarlo en otros lugares sin tener que mencionar objeto por objeto.
Para esto es como dices modificar los valores en las tablas correspondiente eso sí es editar el tipo de item minable/desollable y se puede modificar el valor como dices min y Max para que de más cantidad y la opción chance que es para la probabilidad de que aparezca ese objeto
 
Upvote 0

Mewsito

Explorador
Desde
13 Dec 2021
Mensajes
16
Reacciones
3
Honor
5
En el caso de la piedra de hogar sería tan sencillo como buscar en la base de datos de world en item_template la id del item y buscar la spell a la que llama (en mi caso la 8690), el cooldown en este caso está en la spell.dbc (mi versión es wotlk) y en este casó ahí tienes el cooldown, existe otra posibilidad más complicada que es crear una spell custom que sea un aura que haga un SPELL_MOD y que cambies el cooldown de la spell si se tiene aplicada ese aura (como un encantamiento etc).


View attachment 3632
Si se quiere hacer por código podrías meterle un un script con un aftercast que quedaría más o menos asó (versión trinitycore), el problema de esta forma es que el jugador vería que el tiempo de reutilización sigue siendo el tiempo blizz, de las otras dos formas no lo sería.

View attachment 3633
Para el tema de profesiones y tal es más o menos lo mismo, es buscar la spell que se triggerea cuando vas a hacer un casteo y modificarle el casttime, en este caso si que tendría que ser por dbc, si quieres que distintos objetos tengan distintos tiempos ahí deberías crear duplicados de esa spell y hacer un script en el code que detecte que item se va a crear y que triggeré una spell distinta con distintos tiempos.
También como en el caso anterior se puede meter un aura SPELL_MOD pero en este caso al casttime de la blizz.

Saludos

mil gracias Melus !
 
Upvote 0

Mewsito

Explorador
Desde
13 Dec 2021
Mensajes
16
Reacciones
3
Honor
5
Hola chicos! vuelvo por aquí a ver si me podéis echar una mano con la BDD...

El caso es que estaba cambiando las tablas de los loot template, pero claro, al entrar en la de desuello, veo que hay como mas de 1000 entradas!! jajaja, me muero si las tengo que haer 1 a 1 (que sí, que se puede!!!) pero... estoy más que seguro que con programas como el SQLyog se puede hacer un query (como cuando aplicas una actualización de las tablas) que busque todos los registros de esa tabla y cambie el valor que uno quiere (en mi caso, el MAXCOUNT...
Alguno controlais algo del tema de querys para hacer algo así?

Mil gracias de ante mano!!
 
Upvote 0

Crea una cuenta o inicia sesión para comentar

Debes ser usuario para poder dejar un comentario.

¡Regístrate!

Crea una cuenta en nuestra comunidad. ¡Es fácil!

Acceder

¿Ya tienes una cuenta? Accede aquí

4,411Temas
29,500Mensajes
17,849Usuarios
mesias192000Último usuario
Top