• Anuncios

    • Guest

      RGPD (LEY DE 25 DE MAYO DE 2018)   24/05/2018

      Pueden ver el original RGPD del servidor en este enlace (inglés). Opcionalmente, pueden ver una versión adaptada al español aquí: ¡Es muy importante leer y aceptar esto antes de seguir jugando!
    • Terënas

      ¿Necesitas ayuda?   16/08/2018

      Bienvenidos al foro en español de Firestorm
      Si es tu primera vez y no sabes dónde solicitar ayuda para resolver tu problema, te dejamos unos enlaces que seguro te serán de utilidad.   ¿Tienes un problema dentro del juego? ¿No puedes entrar al juego? ¿Compraste puntos y no te han llegado? ¿Fuiste sancionado y quieres apelar? ¿Perdiste una montura u objetos? ¿Encontraste a un jugador haciendo trampa? ¿Compraste algo en la tienda y no te ha llegado? ¿Encontraste un bug (error o fallo) en el juego?   Si deseas contactar con un miembro del Staff puedes ver la lista completa de miembros en el siguiente enlace:    
    • Guest

      ¡Avatares personalizados ahora disponibles!   12/04/2020

      ¡Saludos, usuarios del foro de Firestorm!   ¡A petición popular de los usuarios y debido a los múltiples problemas con la sincronización de avatares del foro con los avatares de la cuenta de los jugadores, ahora los usuarios del foro podrán seleccionar un avatar personalizado y una imagen de fondo en sus perfiles del foro! Para poder cambiar vuestro avatar, deberán acceder a vuestro perfil del foro y pulsar en el icono de imagen que encontrarán junto a vuestro avatar: 1) La imagen no podrá superar los 250 Kb de tamaño. 2) La resolución máxima será de 170x170px.   Para poder cambiar vuestro fondo de perfil, deberán pulsar en el botón de Foto de portada (deberán pulsar a la derecha de dicho botón, por alguna extraña razón): 1) La imagen no podrá superar los 750 Kb de tamaño.   ¡No olviden respetar las normas de cortesía y normas sociales especificadas tanto en el post de normas del foro como en el post de código de conducta del servidor, o su cuenta del foro será sancionada acorde a la gravedad de la falta cometida!   Un saludo y pasen un buen día.
    • Guest

      ¡Cambios de nombre del foro!   27/05/2020

             Nos alegra comunicarles que todo aquel que quiera cambiar su nombre, ya sea porque tenga su correo en su perfil de foro, o simplemente porque haya decidido cambiarlo, ahora podrá hacerlo.   Simplemente tendrá que comentar en este post con el nombre que desea tener en el foro para que su solicitud sea atendida.   No se admitirán nombres que resulten ofensivos y/o inapropiados (sexual, racista, terrorista, etc).                       ¡Un saludo a todos!
Conéctate para seguir esto  
Seguidores 0
Raxhur

[Tutorial] Smart_Scripts – Nivel básico

2 posts en este tema

Antes de empezar aclarar que este post es una adaptación/traducción del post original creado por gacob, a quien hay que agradecer su contribución. >POST ORIGINAL

En este tutorial aprenderemos un nivel básico de smart_scripts (SAI). Los SAI se usan para crear scripts para hechizos, misiones, npcs, etc. En este tutorial aprenderéis a poner hechizos a un NPC.

Wiki (de TrinityCore ENG)

SAI wiki (de TrinityCore ENG, se explican todos los parámetros y variaciones)

 

Primero necesitas preparar a la criatura para que funcione con los SAI, para hacer esto necesitas editar el campo llamado AIName` en la tabla `creature_template`. El campo `AIName` es de tipo char(64), esto significa que el campo es texto con 64 caracteres de máximo. Si sabes suficiente sobre tipos  (types), deberías saber que este campo utiliza comillas( ' ' en el SQLYog y " " en HeidiSQL). Tienes que editar el campo a "SmartAI";

 

UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=XXX;

 

Ahora el NPC está listo para usar los SAI, pero aun debes cambiar cosas en la tabla de creature_template. Si trabajamos los hechizos con los SAI, primero se debe añadir el hechizo a la criatura. Se va a usar (hechizo) spell1=50 y spell2=100 solo para este tutorial.

 

UPDATE `creature_template` SET `spell1`=50, `spell2`=100 WHERE `entry`=XXX;

 

Ahora se puede empezar a utilizar los SAI.

Explicación de los campos:

- entryorguid = ID del NPC/criatura, gobject (objeto del juego – game object),etc

- source_type = Si la ID es  de una criatura, un gobject, etc. (0 creature, 1 gobject, > Mas info)

- id = Esto empieza por 0 y es la id del código del SAI.

- link = Es para enlazar una id con otra id usando event_type 61 (por ejemplo, la id 3 solo funcionará si la id 2 funciono antes)

- event_type = Esta es la lista de las causas llamadas eventos / events (en combate = 0, salir del combate = 1, cuando se acabe una misión = 49, etc > Mas info)

- event_phase_mask = Es la fase del SAI

- event_chance = La probabilidad % de que ocurra un evento (valores entre 1 y 100)

- event_flags = Valor que controla en que condiciones ocurre el evento. (no se puede repetir 1, se repite en mazmorra normal 2, en mazmorra heroica 4)

- event_param1 a 4 = Parámetros del event_type elegido.

- action_type = La acción que se desencadenara cuando ocurra el evento. > Mas info

- action_param1 a 6 = Parámetros del action_type elegido.

- target_type = Quien será el objetivo de la acción (valores del 1 al 29).

- target_param1 a 3 = Parámetros del objetivo

- target_x, y, z u o = Esto se usa solo en algunos casos

- comment = Un comentario de tu script con " " /  ' ' ("Nombre de criatura - Evento - Acción")

 

DELETE FROM `smart_scripts` WHERE `entryorguid` IN (XXX);

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

(xxx, 0, 0, 0, 0, 0, 100, 0, 100, 20000, 3000, 17000, 11, 50, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Lanzar hechizo 50'),

(xxx, 0, 1, 0, 0, 0, 100, 0, 100, 20000, 30000, 38000, 11, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Lanzar hechizo 100');

 

Para las scripts de hechizos con SAI para una criatura, tenemos que usar SMART_EVENT_UPDATE_IC  (0) que significa que debe ocurrir cuadno el NPC/criatura esté en combate. Tiene los parámetros: InitialMin, InitialMax, RepeatMin y RepeatMax. Los valores deben estar en milisegundos, InitialMin significa el tiempo mínimo en el que el hechizo puede ser lanzado (en el script de ejemplo, se puede ver que el hechizo puede ser lazando en un mínimo de 0,1 segundos y en un máximo de 20 segundos). RepeatMin y RepeatMax significa lo mismo pero para el margen de tiempo en el que el hechizo puede ser lanzado, el valor ded RepeatMin debe ser como mínimo el CD(tiempo de refresco)/tiempo de casteo.

Para la acción se debe usar SMART_ACTION_CAST (11) con param1 spellid(50 and 100), castflag(0) y triggeredinflags(0). Los otros parámetros también en 0.

Para el target_type, depende. Si es un hechizo que lanza un NPC a un enemigo, el valor es SMART_TARGET_VICTIM (2) pero si es un hechizo que un NPC se lanza a si mismo, el valor debe ser  SMART_TARGET_SELF (1). Puede haber mas opciones.

 

Este es el fin de la tutorial, si hay algún fallo de sintaxis o traducción o cualquier duda, preguntad.

A 1 persona le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios
On 12/1/2018 at 11:29 PM, Raxhur dijo:

RepeatMin y RepeatMax significa lo mismo pero para el margen de tiempo en el que el hechizo puede ser lanzado

En realidad la traducción sería:

RepeatMin y RepeatMax significan lo mismo pero para la segunda vez y más que el hechizo puede ser lanzado.

 

Es decir, en Initial lo que haces es sólo poner los segundos en el que el NPC usará el hechizo por primera vez, en Repeat pones la repetición tras el Initial. Por ejemplo, Initial sería de 1-10 segundos y quiero que después de esos segundos se repita cada 20-40 segundos, eso significa que el NPC estará a melé durante 20 segundos(mínimo, hasta 40 segundos) tras usar la primera habilidad. ¿Para qué realmente es importante el Repeat? Pues para cuando un NPC tiene varias habilidades, si dejas un Repeat bajo lo que hará es spamear habilidades todo el rato e incluso algunas habilidades cortará a otras. Por eso es importante poner un buen Repeat.

 

Muchas gracias por tu aporte traduciendo el tutorial ^_^.

A 1 persona le gusta esto

Compartir este post


Enlace al post
Compartir en otros sitios

Registra una cuenta o conéctate para comentar

Debes ser un miembro de la comunidad para dejar un comentario

Crear una cuenta

Regístrate en nuestra comunidad. ¡Es fácil!


Registrar una cuenta nueva

Iniciar Sesión

¿Ya tienes cuenta? Conéctate aquí.


Iniciar Sesión
Conéctate para seguir esto  
Seguidores 0