Deshabilitar fatiga en tu servidor wow

Remamakiller

ULTRA VIP
Desde
23 Oct 2019
Mensajes
754
Reacciones
497
Honor
82
Este tutorial es para aquellos que tienen servidor trinitycore 3.3.5a con mapas custom o eventos en el agua
y que no pueden ir por la fatiga.

Para deshabilitar la fatiga, antes de compilar hacen esto:

Buscar en : src / game / entidades / player / player.h

Y buscas
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

y lo reemplazas Ppor este
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Todos los creditos van para
Diantonix
 
Última edición por un moderador:

locomaru

Capataz
Desde
24 May 2020
Mensajes
52
Reacciones
73
Honor
52
Antes de todo darle los creditos a:
-Diantonix: por descubrir el codigo
-Remamakiller: por traernoslo a disposición de la comunidad.
-WoW Creador: por mantener esta comunidad activa y dar tantos aportes a los usuarios.

Sin vosotros esto no habria sido posible chicos, muchas gracias :love:(y).

Dolencia de Fatiga = Desactivada.

Descripción:

La dolencia de Fatiga es la conocida barra amarilla que aparece cuando nos alejamos mucho de la orilla (cuando el agua se vuelve completamente oscura) dando al jugador el entendimiento de que si no vuelve a la orilla su personaje acabara muerto.

Código y su función:
El código que han posteado los dos compañeros anteriores nombrados en los creditos hace referencia a código de compilación. Esto quiere decir de que para poder desactivar la Fatiga tendremos que editar un repack compilando una core nosotros mismos (usando las librerias, el cmake, visual studio, etc)
Bien, yo he probado ha modificar mi propia core para ver los resultados oportunos cambiando el siguiente código de 0 a -1 como remamakiller.

Tecnicamente dicho cambio se debe aplicar en el archivo de la core llamado Player.h (en este archivo se encuentran un monton de funciones relacionadas con el jugador y su personaje)
El archivo de Player.h se encuentra dentro de \src\server\game\Entities\Player\
Obviamente estos archivos son generados con una precompilación descargada del github de trinity y con la correspondiente función del CMake para recrear los archivos permitiendo asi crear el codigo para una compilación y posteriormente diseñar nuestro propio repack hecho por nosotros.

Como explico el compañero dentro de Player.h hay que encontrar la linea
-FATIGUE_TIMER = 0,
y cambiar el 0 a -1

5 lineas mas abajo explica el propio archivo mediante una sintaxys que poner la fatiga a -1 desactivara la "barra"

2.png


Los resultados de la compilación visual studio 19 son curiosos ya que este simple cambio actualiza 13 archivos durante la compilación. Personalmente creo que esos 13 archivos tienen algo que ver con los mapeados (mares) que se encuentran en el juego. Aunque puedo estar equivocado.

No obstante la compilación fue correcta y es efectiva para su uso sin necesidad de tener que modificar nada mas ni en MPQs, ni en la DataBase, ni en ningún archivo de la core.

unknown.png


Resultados con efectos curiosos.
Al entrar en el servidor para probar este cambio descubri algo curioso el cual le comente al compañero Nekro por privado.
Tecnicamente este codigo no elimina la fatiga completamente, es decir, la barra de fatiga sigue dencendiendo a pesar de que nosotros no la veamos mientras nadamos en aguas lejanas. Es decir, que si nos pasamos mucho tiempo en el agua a parte de no ver la barra de fatiga nuestro personaje morira.

Peroooooo hay un cambio importante y es que a parte de no mostrar la barra de fatiga también permite al jugador poder estar ubicado sin morir en zonas creadas por nosotros (ejemplo una isla).
Siempre que el jugador ande por la isla y no toque el agua podra mantenerse vivo.

Con estas imagenes explicare correctamente a que me refiero.

Explicación con imagenes:

Mi personaje se encuentra en una isla que diseñe en el territorio abandonado de Gillijim (mapa de la alfa de wow) "RECUADRO ROJO. Como compile la core eliminando la fatiga, la barra amarilla no aparece y mi personaje camina tranquilamente sin que le ocurra nada por la isla.
PRUEBA1.png


Mi personaje se aproxima a tocar el agua profunda (agua que nos reduce la fatiga)

PRUEBA2.png


Mi personaje muere instantaneamente al tocar el agua, esto se debe a que el agua no se ve afectada por la compilación de la core eliminando la fatiga, pero si el estar en un terreno fisico por donde caminar (curiosamente resulta gracioso que mi personaje se ahogue con tocar el agua con el pie, como si fuera esto GTA III xD)

PRUEBA3.png


Conclusión:
La fatiga realmente no desaparece, esta oculta y si un personaje entra en el agua muere. Puede ser un fastidio para los jugadores pero tambien puede ser una virtud.

Es decir, podriamos usar esta fatiga para crear nuevas islas para los jugadores (islas de hermandades) donde solo los jugadores de la hermandad puedan ir alli con algun objeto que los teletransporte, o incluso poniendo un npc que ancle la piedra hogar a esas islas. Como el agua es dañina por la fatiga podria ser util para impedir que otros jugadores puedan ir a esas islas quedando solo como unica solución que la hermandad te de acceso ellos mismos.

También se puede hacer otra cosa, aunque no la he probado, y es crear algun vuelo. Es decir, configurar un vuelo para que los jugadores puedan viajar alli en grifo desde Bahia del botin a la isla que hemos creado por ejemplo.

Como detalle personal, no se si hay una manera de desactivar completamente la fatiga, tal vez haya que tocar algun apartado mas en la core, mpq o la database. Pero bueno aun asi personalmente yo lo dejare asi ya que voy a hacer una cadena de quest donde la unica manera de llegar a la isla sea consiguiendo completar las quest y obteniendo un objeto que los teletransporte a la isla que diseñe.

fin.png


Con esto acabo mi post y el testeo. Un saludo y nuevamente gracias a los dos usuarios que contribuyeron con la información dandola a conocer :)
 
Última edición:

Tuerny

Aprendiz de Desarrollo
Guardian
Desde
31 Oct 2020
Mensajes
322
Reacciones
414
Honor
82
Si quieres no tener fatiga y que el agua no te mate al meterte en ella debes de poner en player.cpp el siguiente código sustituyendo el existente:

C++:
Necesitas, Acceder o Registrarse para ver el contenido.

La línea del daño para el agua es la de "EnvironmentalDamage(DAMAGE_EXHAUSTED, damage);" , con lo cual si la anulas poniendo "//" delante, el agua ya no te hará daño.

Acabo de contestar a esto porque acabo de hacerlo en mi server y funciona 100%, tanto en Trinitycore como en Azerothcore 3.3.5

Espero que aunque tarde pueda ayudar a alguien que lo necesite.

Prueba en el agua resultado de esto:
1624556007559.jpg
1624556038520.jpg


El pj está en Gilneas en el mapa de Azeroth en 3.3.5 al sur del todo, donde antes había fatiga. Con este código más lo dicho en el primer mensaje de cambiar en Player.h dará el resultado de las fotos.
 
Última edición:

Remamakiller

ULTRA VIP
Desde
23 Oct 2019
Mensajes
754
Reacciones
497
Honor
82
Si quieres no tener fatiga y que el agua no te mate al meterte en ella debes de poner en player.cpp el siguiente código sustituyendo el existente:

C++:
Necesitas, Acceder o Registrarse para ver el contenido.

La línea del daño para el agua es la de "EnvironmentalDamage(DAMAGE_EXHAUSTED, damage);" , con lo cual si la anulas poniendo "//" delante, el agua ya no te hará daño.

Acabo de contestar a esto porque acabo de hacerlo en mi server y funciona 100%, tanto en Trinitycore como en Azerothcore 3.3.5

Espero que aunque tarde pueda ayudar a alguien que lo necesite.

Prueba en el agua resultado de esto:
View attachment 2235 View attachment 2236

El pj está en Gilneas en el mapa de Azeroth en 3.3.5 al sur del todo, donde antes había fatiga. Con este código más lo dicho en el primer mensaje de cambiar en Player.h dará el resultado de las fotos.
Excelente aporte
Muchas gracias
 
Última edición:

Create an account or login to comment

You must be a member in order to leave a comment

Create account

Create an account on our community. It's easy!

Log in

Already have an account? Log in here.

3,651Temas
24,070Mensajes
15,175Usuarios
ronathÚltimo usuario
Top