Buenas, voy a ser breve con esta. Cualquier duda preguntar abajo como siempre. Esto os valdra para,por ejemplo, algo que anda pidiendo mucho la gente que es meterle las magias a los guardias de las ciudades principales. Lo que vamos a hacer es lo que se llama una SAI o smart_script.
Vamos a usar el siguiente reporte: https://firestorm-servers.com/es/report/see_report/3659
Primero metemos las magias en la tabla de el npc,en creature_template,la primera linea.
En la segunda linea indicamos en la tabla de la criatura que esta tendra una SAI, sin esto no funcionaria nada.
Y a continuacion, hacemos la SAI.
UPDATE `creature_template` SET `spell1`=9080,`spell2`=11972,`spell3`=14516,`spell4`=16100 WHERE `entry`=13839;
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=13839;
DELETE FROM `smart_scripts` WHERE `entryorguid`=13839;
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
(13839,0,0,0,4,0,100,0,0,0,5000,5000,11,16100,0,0,0,0,0,17,20,40,0,0,0,0,0,'Royal DreadGuard- SMART_ACTION_CAST Shoot '),
(13839,0,1,0,0,0,100,0,0,0,30000,30000,11,9080,0,0,0,0,0,2,0,0,0,0, 0, 0, 0,'Royal DreadGuard- SMART_ACTION_CAST Harmstring '),
(13839,0,2,0,0,0,100,0,0,0,10000,10000,11,14516,0,0,0,0,0,2,0,0,0,0, 0, 0, 0,'Royal DreadGuard- SMART_ACTION_CAST Srike'),
(13839,0,3,0,0,0,100,0,0,0,35000,35000,11,11972,0,0,0,0,0,2,0,0,0,0, 0, 0, 0,'Royal DreadGuard- SMART_ACTION_CAST Shield Bash');
entryorguid= la id del npc
source_type=0 siempre ya que significa que es una criatura,npc.
id= significa el orden de los eventos.
link=al evento que quieres que suceda despues, Se explicara mas adelante en otra guia, cuando se use.
event_type= el evento que tiene que ocurrir para que se ejecute esa linea o accion. En la wiki de trinity podeis ver las que hay. En nuestro caso hemos usado el evento 4. Significa que cuando entre en agroo casteara esa magia.
event_chance= la probabilidad de que ocurra. Normalmente es 100 porque queremos que ocurra siempre. Para hacer castear magias de forma aleatoria se pondria menos,¿logico no?
event_flags= la cantidad de veces que queremos que se repita el evento. Sirve para limitarlo a x numero de veces.
event_param3 y event_param4= al minimo y maximo de tiempo en el que queremos que el evento sea chekeado para ocurrir otra vez. Digamos que para decirle que tire la magia cada 10 segundos por ejemplo. El valor es en milisegundos. Si queremos que sean 10 segundos, tendremos que poner 10000.
action_type= la accion que queremos que ocurra cuando se de el evento que pusimos. En este caso sera castear magias en los 4 eventos que pusimos. Corresponde al valor 11.
action_param1= la id de la magia que tirara.
target_type= sobre quien se ejecutara la accion. En el primer evento hemos puesto al player que se encuentre en el rango de 20-40 yardas. El valor 17 corresponde al player en rango.
En las otras 3 hemos puesto el valor 2 que corresponde a la victima, o lo que es lo mismo al player que coja el agroo.
Os he explicado solo las columnas que hemos usado y alguna mas. Cuando se haga otra guia se explicaran las que vayan haciendo falta.
Explicando esta SAI de forma resumida, lo que hara sera:
Cuando un jugador este en rango de 20-40 yardas el guardia usara la magia shoot para dispararle cada 5 segundos hasta que entre en un rango inferior a 20 yardas o se aleje fuera de la zona de agroo.
Si se acerca mas de 20 yardas, el guardia le tirara la magia Harmstring cada 30 segundos, Srike cada 10 segundos y Shield Bash cada 35 segundos.