• 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
Cidragon

[WOD] Bosses Sima ígnea

2 posts en este tema

- Enlace del Bugtracker: no hay.

- Enlace de Wowhead: http://www.wowhead.com/zone=2437/ragefire-chasm

- Descripción del arreglo: Añadido hechizos a los primeros 3 bosses (adarogg, dark shaman koranthal, slagmaw) ya que en la actualidad no tienen ninguno.

- Código:

Adarogg prueba :

Spoiler

 

adarogg_attack.jpg

 


				
		#include "ScriptMgr.h"
		#include "ScriptedCreature.h"				
		
        enum Spells
		{
		    SPELL_FLAMEBREATH = 119420,
		    SPELL_INFERNOCHARGE = 119405,
		};	
        
		enum Events
		{
		    EVENT_FLAMEBREATH = 1, // between 12 and 15 seconds
		    EVENT_INFERNOCHARGE = 2, // 10 seconds
		};	
        
			class boss_adarogg : public CreatureScript
		{
		    public:				
			        boss_adarogg(): CreatureScript("boss_adarogg"){}				
			        struct boss_adaroggAI : public BossAI
		        {
		            boss_adaroggAI(Creature* creature) : BossAI(creature,0) {}				
			        
                    void Reset() override
		            {
		                _Reset();
		            }				
			        
                    void EnterCombat(Unit* who) override
		            {
		                _EnterCombat();
		                
		                events.ScheduleEvent(EVENT_FLAMEBREATH, urand(12000,15000));
		                events.ScheduleEvent(EVENT_INFERNOCHARGE, 10000);
		            }				
			        
                    void UpdateAI(uint32 uiDiff) override
		            {
		                
		                if (!UpdateVictim())
		                return;				
			                events.Update(uiDiff);				
			                if (me->HasUnitState(UNIT_STATE_CASTING))
		                    return;				
			                while (uint32 eventId = events.ExecuteEvent())
		                {
		                    switch (eventId)
		                    {
		                        case EVENT_FLAMEBREATH:
		                            DoCastVictim(SPELL_FLAMEBREATH);
		                            events.ScheduleEvent(EVENT_FLAMEBREATH, urand(12000,15000));
		                            break;
		                        case EVENT_INFERNOCHARGE:
		                            if (Unit *target = SelectTarget(SELECT_TARGET_RANDOM, 0))
		                                DoCast(target, SPELL_FLAMEBREATH);
		                            
		                            events.ScheduleEvent(EVENT_INFERNOCHARGE, 10000);
		                        
		                            break;
		                    }
		                }				
			                DoMeleeAttackIfReady();
		            }
		        };				
			    
                CreatureAI* GetAI(Creature* creature) const override
		        {
		            return new boss_adaroggAI(creature);
		        }				
			};	
            
			void AddSC_boss_adarogg()
			{
		    	new boss_adarogg();
			}				
			

 

dark shaman koranthal Prueba: Se me olvido tomar foto pero creo que es bastante fácil ver si tiene o no un script adherido

Spoiler

 


				
		#include "ScriptMgr.h"
		#include "ScriptedCreature.h"				
		
        enum Spells
		{
		    SPELL_SHADOWSTORM = 119971,
		    SPELL_TWISTEDELEMENTS = 119300,
		};				
		
        enum Events
		{
		    EVENT_SHADOWSTORM = 1, // 15 seconds
		    EVENT_TWISTEDELEMENTS = 2, // 5 seconds
		};				
		
        class boss_dark_shaman_koranthal : public CreatureScript
		{
		    public:				
			    boss_dark_shaman_koranthal(): CreatureScript("boss_dark_shaman_koranthal"){}				
			    
                struct boss_dark_shaman_koranthalAI : public BossAI
		        {
		            boss_dark_shaman_koranthalAI(Creature* creature) : BossAI(creature,0) {}				
			        
                    void Reset() override
		            {
		                _Reset();
		            }				
			        
                    void EnterCombat(Unit* who) override
		            {
		                _EnterCombat();
		                
		                events.ScheduleEvent(EVENT_SHADOWSTORM, 15000);
		                events.ScheduleEvent(EVENT_TWISTEDELEMENTS, 5000);
		            }				
			        
                    void UpdateAI(uint32 uiDiff) override
		            {
		                
		                if (!UpdateVictim())
		                return;				
			                events.Update(uiDiff);				
			                if (me->HasUnitState(UNIT_STATE_CASTING))
		                    return;				
			                while (uint32 eventId = events.ExecuteEvent())
		                {
		                    switch (eventId)
		                    {
		                        case EVENT_SHADOWSTORM:
		                            DoCastVictim(SPELL_SHADOWSTORM);
		                            events.ScheduleEvent(EVENT_SHADOWSTORM, 15000);
		                            break;
		                        case EVENT_TWISTEDELEMENTS:
		                            DoCastVictim(SPELL_TWISTEDELEMENTS);
		                            events.ScheduleEvent(EVENT_TWISTEDELEMENTS, 5000);
		                            break;
		                    }
		                }				
			                DoMeleeAttackIfReady();
		            }
		        };				
			    
                CreatureAI* GetAI(Creature* creature) const override
		        {
		            return new boss_dark_shaman_koranthalAI(creature);
		        }				
			};
            
			void AddSC_boss_dark_shaman_koranthal()
            {
                new boss_dark_shaman_koranthal();
            }				
			

 

Slagmaw prueba: 

Spoiler

 

Ni siquiera ataca!

Slagmaw_attack.jpg


				
		#include "ScriptMgr.h"
		#include "ScriptedCreature.h"				
		
        enum Spells
		{
		    SPELL_HUNTERSRUSH = 223971,
		    SPELL_LAVASPIT = 119434,
		};				
		
        enum Events
		{
		    EVENT_HUNTERSRUSH = 1, // No idea when he cast it... pretty useless buff for a boss anyway
		    EVENT_LAVASPIT = 2, // Always casting
		};				
		
        class boss_slagmaw : public CreatureScript
		{
		    public:				
			    boss_slagmaw(): CreatureScript("boss_slagmaw"){}				
			    
                struct boss_slagmawAI : public BossAI
		        {
		            uint32 lavaSpitCounter;
		            
		            boss_slagmawAI(Creature* creature) : BossAI(creature,0) 
		            {
		                Initialize();
		            }				
			            void Initialize()
		            {
		                lavaSpitCounter = 0;
		            }
		            
		            
		            void Reset() override
		            {
		                _Reset();
		                Initialize();
		            }				
			        
                    void EnterCombat(Unit* who) override
		            {
		                _EnterCombat();
		                
		                //events.ScheduleEvent(EVENT_HUNTERSRUSH, 0); miss information
		                events.ScheduleEvent(EVENT_LAVASPIT, 3000);
		            }				
			        
                    void UpdateAI(uint32 uiDiff) override
		            {
		                
		                if (!UpdateVictim())
		                return;				
			                events.Update(uiDiff);				
			                if (me->HasUnitState(UNIT_STATE_CASTING))
		                    return;				
			                while (uint32 eventId = events.ExecuteEvent())
		                {
		                    switch (eventId)
		                    {
		                        case EVENT_HUNTERSRUSH:
		                            DoCast(me, SPELL_HUNTERSRUSH);
		                            //events.ScheduleEvent(EVENT_HUNTERSRUSH, 0);   miss information
		                            break;
		                        case EVENT_LAVASPIT:
		                            DoCastVictim(SPELL_LAVASPIT);
		                            events.ScheduleEvent(EVENT_LAVASPIT, 3000);
		                            break;
		                    }
		                }
		                
		                /*  no idea how to reproduce the behaviour right now
		                if(lavaSpitCounter == 5)
		                {
		                    move boss
		                    lavaSpitCounter = 0;
		                }
		                
		                */				
			                DoMeleeAttackIfReady();
		            }
		        };				
			    
                CreatureAI* GetAI(Creature* creature) const override
		        {
		            return new boss_slagmawAI(creature);
		        }				
			};	
            
			void AddSC_boss_slagmaw()
            {
                new boss_slagmaw();
            }				
			

 

 

"lava guard gordoth" es un tema aparte, al parecer si tiene script adecuado pero no pude testear la habilidad enrage ya que me fue imposible no matarlo de 1 hit y a esta hora estoy un poco perezoso para buscar otra arma. Dejare el script de todas maneras por si al compararlo pueden sacar algo mejor

Spoiler

 


				
		#include "ScriptMgr.h"
		#include "ScriptedCreature.h"				
		
        enum Spells
		{
		    SPELL_ENRAGE = 50420,
		    SPELL_GROUNDRUPTURE = 119999,
		    SPELL_SEISMICSLAM = 120024,
		};				
		
        enum Events
		{
		    EVENT_GROUNDRUPTURE = 1, // 10 seconds
		    EVENT_SEISMICSLAM = 2, // 25 seconds. This is a speculation, hard to find information if people kill him in 10-30 seconds
		};				
		
        class boss_lava_guard_gordoth : public CreatureScript
		{
		    public:				
			    boss_lava_guard_gordoth(): CreatureScript("boss_lava_guard_gordoth"){}				
			    
                struct boss_lava_guard_gordothAI : public BossAI
		        {
		            bool Is_Enraged;	
                    
			        
                    boss_lava_guard_gordothAI(Creature* creature) : BossAI(creature,0) 
		            {
		                Initialize();
		            }				
			        
                    void Initialize()
		            {
		                Is_Enraged = false;
		            }				
			            				
			        
                    void Reset() override
		            {
		                _Reset();
		                Initialize();
		            }				
			        
                    void EnterCombat(Unit* who) override
		            {
		                _EnterCombat();
		                
		                events.ScheduleEvent(EVENT_GROUNDRUPTURE, 6000);
		                events.ScheduleEvent(EVENT_SEISMICSLAM, 10000);
		            }				
			        
                    void UpdateAI(uint32 uiDiff) override
		            {
		                
		                if (!UpdateVictim())
		                return;				
			                events.Update(uiDiff);				
			                if (me->HasUnitState(UNIT_STATE_CASTING))
		                    return;				
			                // cast enrage on 30% HP
		                if(HealthBelowPct(30) && !Is_Enraged)
		                {
		                    DoCast(me, SPELL_ENRAGE);
		                    Is_Enraged = true;
		                }
		                    
		                while (uint32 eventId = events.ExecuteEvent())
		                {
		                    switch (eventId)
		                    {
		                        case EVENT_GROUNDRUPTURE:
		                            DoCastVictim(SPELL_GROUNDRUPTURE);
		                            events.ScheduleEvent(EVENT_GROUNDRUPTURE, 10000);
		                            break;
		                        case EVENT_SEISMICSLAM:
		                            DoCastVictim(SPELL_SEISMICSLAM);
		                            events.ScheduleEvent(EVENT_SEISMICSLAM, 25000);
		                        
		                            break;
		                    }
		                }				
			                DoMeleeAttackIfReady();
		            }
		        };				
			    
                CreatureAI* GetAI(Creature* creature) const override
		        {
		            return new boss_lava_guard_gordothAI(creature);
		        }				
			};	
            
			void AddSC_boss_lava_guard_gordoth()
            {
                new boss_lava_guard_gordoth();
            }				
			

 

 

SQL para añadir script a los bosses:

Spoiler

 


				
		UPDATE `world`.`creature_template` SET `ScriptName`='boss_adarogg' WHERE `entry`='61408';
		UPDATE `world`.`creature_template` SET `ScriptName`='boss_dark_shaman_koranthal' WHERE `entry`='61412';
		UPDATE `world`.`creature_template` SET `ScriptName`='boss_lava_guard_gordoth' WHERE `entry`='61528';
		UPDATE `world`.`creature_template` SET `ScriptName`='boss_slagmaw' WHERE `entry`='61463';				
			

 

Notas importantes:

- El script fue testeado en en Legion y WOD (desde trinitycore) y según sus estándares debería servir para todas las versiones después de cataclysm.

- El boss Slagmaw desaparece y aparece cada 5 hechizos "Lava Spit", si conocen como realizar esa acción estaría agradecido que como se hace.

- Los textos pierden formato constantemente, ya me aburri de editar para que se vea ordenado xD.

Espero que esto ayude en algo, de a poco se parte! 

Editado por Cidragon
wtf, había spoiler sobre spoiler

Compartir este post


Enlace al post
Compartir en otros sitios

Aceptado.

Ya se ha pasado a los desarrolladores.

Compartir este post


Enlace al post
Compartir en otros sitios
Guest
Este tema esta cerrado para más respuestas.
Conéctate para seguir esto  
Seguidores 0