Limitacion de monturas custom

Yaka

Explorador
Desde
10 Jul 2024
Mensajes
52
Reacciones
3
Honor
12
Buenas quisiera saber como podria limitar una montura voladora custom para que su uso no este disponible en estancias, campos de batalla y arenas.
 

Alexstrasza

Inteligencia Artificial
Moderador
Desde
29 Mar 2023
Mensajes
967
Reacciones
246
Honor
82
Hola, para limitar una montura voladora personalizada para que no esté disponible en estancias, campos de batalla y arenas, tendrías que modificar su script en el código fuente del servidor. Por favor, ten en cuenta que necesitarás tener acceso y una comprensión sólida del código de tu servidor para realizar esto, y que los detalles exactos pueden variar dependiendo del emulador que estés utilizando.

Aquí te dejo un ejemplo genérico de cómo podrías intentar hacerlo:

1. Identifica el script de la montura en el código fuente del servidor. Este generalmente se encuentra en los archivos de script del servidor y puede tener una etiqueta o comentario que lo identifica.

2. Dentro del script de la montura, deberías buscar la función o método que controla si la montura puede ser utilizada. Esto puede depender del emulador, pero usualmente se parece a `CanUseMount`.

3. En esa función, deberías poder agregar una verificación para ver si el jugador está en una instancia, un campo de batalla o una arena. Esto también dependerá del emulador, pero usualmente puedes usar funciones como `player->InInstance()`, `player->InBattleground()` o `player->InArena()`.

4. Si el jugador está en una de esas ubicaciones, entonces deberías hacer que la función `CanUseMount` retorne `false`.

5. Finalmente, compila el código fuente y actualiza el servidor con la nueva versión.

Por favor, recuerda que este es solo un ejemplo genérico y los detalles exactos pueden variar dependiendo del emulador y la versión específicos que estés utilizando. Si no estás seguro de cómo hacer esto, te recomendaría buscar la ayuda de alguien con más experiencia en la codificación y gestión de servidores de juegos.

Espero que esto te ayude a limitar el uso de tu montura voladora personalizada en las ubicaciones deseadas.
 
Upvote 0

Yaka

Explorador
Desde
10 Jul 2024
Mensajes
52
Reacciones
3
Honor
12
Hola, para limitar una montura voladora personalizada para que no esté disponible en estancias, campos de batalla y arenas, tendrías que modificar su script en el código fuente del servidor. Por favor, ten en cuenta que necesitarás tener acceso y una comprensión sólida del código de tu servidor para realizar esto, y que los detalles exactos pueden variar dependiendo del emulador que estés utilizando.

Aquí te dejo un ejemplo genérico de cómo podrías intentar hacerlo:

1. Identifica el script de la montura en el código fuente del servidor. Este generalmente se encuentra en los archivos de script del servidor y puede tener una etiqueta o comentario que lo identifica.

2. Dentro del script de la montura, deberías buscar la función o método que controla si la montura puede ser utilizada. Esto puede depender del emulador, pero usualmente se parece a `CanUseMount`.

3. En esa función, deberías poder agregar una verificación para ver si el jugador está en una instancia, un campo de batalla o una arena. Esto también dependerá del emulador, pero usualmente puedes usar funciones como `player->InInstance()`, `player->InBattleground()` o `player->InArena()`.

4. Si el jugador está en una de esas ubicaciones, entonces deberías hacer que la función `CanUseMount` retorne `false`.

5. Finalmente, compila el código fuente y actualiza el servidor con la nueva versión.

Por favor, recuerda que este es solo un ejemplo genérico y los detalles exactos pueden variar dependiendo del emulador y la versión específicos que estés utilizando. Si no estás seguro de cómo hacer esto, te recomendaría buscar la ayuda de alguien con más experiencia en la codificación y gestión de servidores de juegos.

Espero que esto te ayude a limitar el uso de tu montura voladora personalizada en las ubicaciones deseadas.
como seria el proceso a travez de la base de datos en lugar de utilizar un script
 
Upvote 0

Alexstrasza

Inteligencia Artificial
Moderador
Desde
29 Mar 2023
Mensajes
967
Reacciones
246
Honor
82
como seria el proceso a travez de la base de datos en lugar de utilizar un script
Para limitar el uso de una montura voladora personalizada desde la base de datos, el proceso puede variar dependiendo de la estructura exacta de tu base de datos y cómo tu servidor de juego interactúa con ella. Sin embargo, aquí te dejo un ejemplo general de cómo se podría intentar hacerlo:

1. **Identifica la tabla en la base de datos que almacena la información sobre las monturas**: Dependiendo del emulador que estés utilizando, la tabla podría llamarse algo como `mounts` o `player_mounts`.

2. **Modifica la estructura de la tabla**: Agrega una columna para indicar si la montura está permitida en estancias, campos de batalla o arenas. Podrías nombrar esta columna algo como `allowed_in_instances`.

3. **Cambia los valores en la nueva columna**: Para la montura voladora personalizada en cuestión, establece el valor en `allowed_in_instances` a `false` o `0`.

4. **Modifica el código del servidor para reconocer la nueva configuración**: Se debe cambiar el código del servidor para que cuando un jugador intente usar una montura, primero verifique en la base de datos si esa montura está permitida en la ubicación actual. Si no estás seguro de cómo hacer esto, te recomendaría buscar la ayuda de un desarrollador experimentado.

5. **Actualiza la base de datos y reinicia el servidor**: Finalmente, deberías actualizar la base de datos con las nuevas configuraciones y reiniciar el servidor para que los cambios surtan efecto.

Por favor, ten en cuenta que este es solo un ejemplo genérico y que los detalles pueden variar ampliamente dependiendo de la configuración exacta de tu servidor y base de datos. Si este proceso parece demasiado complejo, te recomendaría buscar la ayuda de un desarrollador experimentado o considerar otras formas de limitar el uso de la montura.
 
Upvote 0

Yaka

Explorador
Desde
10 Jul 2024
Mensajes
52
Reacciones
3
Honor
12
Para limitar el uso de una montura voladora personalizada desde la base de datos, el proceso puede variar dependiendo de la estructura exacta de tu base de datos y cómo tu servidor de juego interactúa con ella. Sin embargo, aquí te dejo un ejemplo general de cómo se podría intentar hacerlo:

1. **Identifica la tabla en la base de datos que almacena la información sobre las monturas**: Dependiendo del emulador que estés utilizando, la tabla podría llamarse algo como `mounts` o `player_mounts`.

2. **Modifica la estructura de la tabla**: Agrega una columna para indicar si la montura está permitida en estancias, campos de batalla o arenas. Podrías nombrar esta columna algo como `allowed_in_instances`.

3. **Cambia los valores en la nueva columna**: Para la montura voladora personalizada en cuestión, establece el valor en `allowed_in_instances` a `false` o `0`.

4. **Modifica el código del servidor para reconocer la nueva configuración**: Se debe cambiar el código del servidor para que cuando un jugador intente usar una montura, primero verifique en la base de datos si esa montura está permitida en la ubicación actual. Si no estás seguro de cómo hacer esto, te recomendaría buscar la ayuda de un desarrollador experimentado.

5. **Actualiza la base de datos y reinicia el servidor**: Finalmente, deberías actualizar la base de datos con las nuevas configuraciones y reiniciar el servidor para que los cambios surtan efecto.

Por favor, ten en cuenta que este es solo un ejemplo genérico y que los detalles pueden variar ampliamente dependiendo de la configuración exacta de tu servidor y base de datos. Si este proceso parece demasiado complejo, te recomendaría buscar la ayuda de un desarrollador experimentado o considerar otras formas de limitar el uso de la montura.
En un servidor azerothcore como podria ser el proceso
 
Upvote 0

Alexstrasza

Inteligencia Artificial
Moderador
Desde
29 Mar 2023
Mensajes
967
Reacciones
246
Honor
82
En un servidor azerothcore como podria ser el proceso
En un servidor AzerothCore, la gestión de las habilidades de montura está generalmente manejada por el código del servidor en lugar de la base de datos. Esto significa que para limitar el uso de una montura personalizada en estancias, campos de batalla y arenas, necesitarías modificar el código del servidor en lugar de la base de datos.

No obstante, aquí te dejo una guía general de cómo podrías abordar este problema desde el código del servidor:

1. **Identifica el código que maneja el uso de monturas**: Normalmente se encuentra en el archivo `Player.cpp`. Estarás buscando una función llamada `Player::CanMount`.

2. **Modifica el código para verificar la ubicación del jugador**: Dentro de la función `Player::CanMount`, debes agregar código para verificar si el jugador está actualmente en una instancia, un campo de batalla o una arena. Puedes hacer esto utilizando las funciones `Player::InBattleground`, `Player::InArena` o `Player::InInstance`.

3. **Restringe el uso de la montura personalizada**: Si el jugador está en una de las ubicaciones restringidas, el código debe prevenir el uso de la montura personalizada. Esto podría implicar que `Player::CanMount` devuelva `false` cuando se intenta montar la montura personalizada en una ubicación restringida.

4. **Compila y actualiza el servidor**: Una vez que has hecho los cambios en el código, debes compilar el servidor y luego actualizarlo con la nueva compilación.

Ten en cuenta que este es un ejemplo genérico y los detalles exactos pueden variar dependiendo de la configuración exacta de tu servidor AzerothCore. Te recomendaría buscar la ayuda de un desarrollador experimentado si no estás seguro de cómo proceder.
 
Upvote 0
Desde
12 Sep 2021
Mensajes
109
Reacciones
131
Honor
67
Buenas quisiera saber como podria limitar una montura voladora custom para que su uso no este disponible en estancias, campos de batalla y arenas.
Las monturas son spells (auras más específicamente) debes añadir en la db las flags que comúnmente usan las spells de monturas, en el caso de lo que buscas sería SPELL_ATTR0_OUTDOORS_ONLY. El nombre puede variar en dependencia del core pero debería ser similar. También puedes añadir otras que comúnmente las monturas llevarían como SPELL_ATTR0_CANT_USED_IN_COMBAT.

Añadirle dichas flags puedes hacerlo tanto desde core como desde DB. Para hacerlo desde DB puedes buscar la tabla `spell_dbc` y en la columna `Attributes` añadir dichas flags.

SPELL_ATTR0_OUTDOORS_ONLY: 0x8000
SPELL_ATTR0_CANT_USED_IN_COMBAT: 0x10000000

Por ejemplo, supongamos que tu montura es el aura 230900 y cómo mismo digo arriba los nombres de las tablas/columnas pueden variar ya que no sé que nombres usa AC, pero deberían ser muy similares en caso de no ser los mismos.

UPDATE `spell_dbc` SET `Attributes` = `Attributes` | 0x8000 | 0x10000000 WHERE `Id` = 230900;
 
Última edición:
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