Core/Scripting: A few updates.

This commit is contained in:
Malcrom
2013-06-24 01:26:58 -02:30
parent d791515502
commit fc4652964e
3 changed files with 72 additions and 69 deletions

View File

@@ -25,7 +25,7 @@ enum Spells
SPELL_CORROSIVE_ACID = 20667,
SPELL_FREEZE = 18763,
SPELL_FLAMEBREATH = 20712,
SPELL_SELF_ROOT_FOREVER = 33356,
SPELL_SELF_ROOT_FOREVER = 33356
};
enum Adds
@@ -34,7 +34,7 @@ enum Adds
NPC_RAGE_TALON_FIRE_TONG = 10372,
NPC_CHROMATIC_WHELP = 10442,
NPC_CHROMATIC_DRAGONSPAWN = 10447,
NPC_BLACKHAND_ELITE = 10317,
NPC_BLACKHAND_ELITE = 10317
};
enum Events
@@ -45,7 +45,7 @@ enum Events
EVENT_SUMMON_ORC_PACK = 4,
EVENT_CORROSIVE_ACID = 5,
EVENT_FREEZE = 6,
EVENT_FLAME_BREATH = 7,
EVENT_FLAME_BREATH = 7
};
class boss_gyth : public CreatureScript
@@ -74,9 +74,9 @@ public:
void EnterCombat(Unit* /*who*/)
{
_EnterCombat();
events.ScheduleEvent(EVENT_SUMMON_DRAGON_PACK, 3 * IN_MILLISECONDS);
events.ScheduleEvent(EVENT_SUMMON_ORC_PACK, 60 * IN_MILLISECONDS);
events.ScheduleEvent(EVENT_AGGRO, 60 * IN_MILLISECONDS);
events.ScheduleEvent(EVENT_SUMMON_DRAGON_PACK, 3000);
events.ScheduleEvent(EVENT_SUMMON_ORC_PACK, 60000);
events.ScheduleEvent(EVENT_AGGRO, 60000);
}
void JustDied(Unit* /*killer*/)
@@ -99,7 +99,7 @@ public:
if (!SummonedRend && HealthBelowPct(11))
{
events.ScheduleEvent(EVENT_SUMMON_REND, 8 * IN_MILLISECONDS);
events.ScheduleEvent(EVENT_SUMMON_REND, 8000);
SummonedRend = true;
}

View File

@@ -19,7 +19,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "blackrock_spire.h"
#include "SpellAuraEffects.h"
#include "Spell.h"
enum Text
{
@@ -73,11 +73,6 @@ class boss_pyroguard_emberseer : public CreatureScript
public:
boss_pyroguard_emberseer() : CreatureScript("boss_pyroguard_emberseer") { }
CreatureAI* GetAI(Creature* creature) const
{
return new boss_pyroguard_emberseerAI(creature);
}
struct boss_pyroguard_emberseerAI : public BossAI
{
boss_pyroguard_emberseerAI(Creature* creature) : BossAI(creature, DATA_PYROGAURD_EMBERSEER) {}
@@ -291,6 +286,11 @@ public:
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_pyroguard_emberseerAI(creature);
}
};
/*####

View File

@@ -86,40 +86,6 @@ class boss_victor_nefarius : public CreatureScript
public:
boss_victor_nefarius() : CreatureScript("boss_victor_nefarius") { }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
player->SEND_GOSSIP_MENU(7198, creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+2:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
player->SEND_GOSSIP_MENU(7199, creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+3:
player->CLOSE_GOSSIP_MENU();
creature->AI()->Talk(SAY_GAMESBEGIN_1);
CAST_AI(boss_victor_nefarius::boss_victor_nefariusAI, creature->AI())->BeginEvent(player);
break;
}
return true;
}
bool OnGossipHello(Player* player, Creature* creature)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(7134, creature->GetGUID());
return true;
}
CreatureAI* GetAI(Creature* creature) const
{
return new boss_victor_nefariusAI (creature);
}
struct boss_victor_nefariusAI : public ScriptedAI
{
boss_victor_nefariusAI(Creature* creature) : ScriptedAI(creature)
@@ -210,30 +176,21 @@ public:
}
}
uint32 SpawnedAdds;
uint32 AddSpawnTimer;
uint32 ShadowBoltTimer;
uint32 FearTimer;
uint32 MindControlTimer;
uint32 ResetTimer;
uint32 DrakType1;
uint32 DrakType2;
uint64 NefarianGUID;
uint32 NefCheckTime;
void Reset()
{
SpawnedAdds = 0;
AddSpawnTimer = 10000;
ShadowBoltTimer = 5000;
FearTimer = 8000;
ResetTimer = 900000; // On official it takes him 15 minutes(900 seconds) to reset. We are only doing 1 minute to make testing easier
NefarianGUID = 0;
NefCheckTime = 2000;
me->SetUInt32Value(UNIT_NPC_FLAGS, 1);
me->setFaction(35);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
if(me->GetMapId() == 469)
{
SpawnedAdds = 0;
AddSpawnTimer = 10000;
ShadowBoltTimer = 5000;
FearTimer = 8000;
ResetTimer = 900000; // On official it takes him 15 minutes(900 seconds) to reset. We are only doing 1 minute to make testing easier
NefarianGUID = 0;
NefCheckTime = 2000;
me->SetUInt32Value(UNIT_NPC_FLAGS, 1);
me->setFaction(35);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
}
void BeginEvent(Player* target)
@@ -389,7 +346,53 @@ public:
} else NefCheckTime -= diff;
}
}
private:
uint32 SpawnedAdds;
uint32 AddSpawnTimer;
uint32 ShadowBoltTimer;
uint32 FearTimer;
uint32 MindControlTimer;
uint32 ResetTimer;
uint32 DrakType1;
uint32 DrakType2;
uint64 NefarianGUID;
uint32 NefCheckTime;
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_victor_nefariusAI (creature);
}
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
player->SEND_GOSSIP_MENU(7198, creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+2:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
player->SEND_GOSSIP_MENU(7199, creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+3:
player->CLOSE_GOSSIP_MENU();
creature->AI()->Talk(SAY_GAMESBEGIN_1);
CAST_AI(boss_victor_nefarius::boss_victor_nefariusAI, creature->AI())->BeginEvent(player);
break;
}
return true;
}
bool OnGossipHello(Player* player, Creature* creature)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(7134, creature->GetGUID());
return true;
}
};
void AddSC_boss_victor_nefarius()