Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Warforged Nightmare area party
- enum Misc
- {
- ITEM_NIGHTMARISH_HITCHING_POST = 112324,
- NPC_NIGHTMARISH = 80682,
- SPELL_NIGHTMARISH_REINS = 162997,
- SPELL_WARFORGED_NIGHTMARE = 163024,
- };
- // Nightmarish Hitching Post - 80682
- class freakz_npc_nightmarish_hitching_post : public CreatureScript
- {
- public:
- freakz_npc_nightmarish_hitching_post() : CreatureScript("freakz_npc_nightmarish_hitching_post") { }
- bool OnGossipHello(Player* player, Creature* creature)
- {
- if (Unit * owner = creature->GetOwner())
- {
- if (Player * playerOwner = owner->ToPlayer())
- {
- if (player->IsInRaidWith(playerOwner))
- {
- {
- if (player->IsMounted())
- {
- creature->AddAura(SPELL_NIGHTMARISH_REINS, player);
- }
- }
- }
- }
- }
- player->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
- return true;
- }
- };
- // Nightmarish Reins - 162997
- class freakz_spell_nightmarish_reins : public SpellScriptLoader
- {
- public:
- freakz_spell_nightmarish_reins() : SpellScriptLoader("freakz_spell_nightmarish_reins") { }
- class freakz_spell_nightmarish_reins_AuraScript : public AuraScript
- {
- PrepareAuraScript(freakz_spell_nightmarish_reins_AuraScript);
- uint32 mount = 55896; // warforged display id
- void OnApply(AuraEffect const* aurFf, AuraEffectHandleModes mode)
- {
- if (Player* player = GetTarget()->ToPlayer())
- player->SetUInt32Value(UNIT_FIELD_MOUNT_DISPLAY_ID, mount);
- }
- void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- if (Player* player = GetTarget()->ToPlayer())
- {
- std::list<AuraEffect *> const& mountAuras = player->GetAuraEffectsByType(SPELL_AURA_MOUNTED);
- for (std::list<AuraEffect *>::const_iterator i = mountAuras.begin(); i != mountAuras.end(); ++i)
- {
- uint32 creatureEntry = (*i)->GetMiscValue();
- if (CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(creatureEntry))
- {
- uint32 displayId = ObjectMgr::ChooseDisplayId(creatureInfo);
- player->SetUInt32Value(UNIT_FIELD_MOUNT_DISPLAY_ID, displayId);
- }
- }
- }
- }
- void Register()
- {
- OnEffectApply += AuraEffectApplyFn(freakz_spell_nightmarish_reins_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
- OnEffectRemove += AuraEffectRemoveFn(freakz_spell_nightmarish_reins_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
- }
- };
- AuraScript* GetAuraScript() const
- {
- return new freakz_spell_nightmarish_reins_AuraScript();
- }
- };
- // Warforged Nightmare - 163024
- class freakz_spell_warforged_nightmare : public SpellScriptLoader
- {
- public:
- freakz_spell_warforged_nightmare() : SpellScriptLoader("freakz_spell_warforged_nightmare") { }
- class freakz_spell_warforged_nightmare_SpellScript : public SpellScript
- {
- PrepareSpellScript(freakz_spell_warforged_nightmare_SpellScript);
- void HandleAfterCast()
- {
- if (Player* player = GetCaster()->ToPlayer())
- {
- if (!player->HasItemCount(ITEM_NIGHTMARISH_HITCHING_POST, 1, true))
- player->AddItem(ITEM_NIGHTMARISH_HITCHING_POST, 1);
- else
- return;
- }
- }
- void Register()
- {
- AfterCast += SpellCastFn(freakz_spell_warforged_nightmare_SpellScript::HandleAfterCast);
- }
- };
- SpellScript* GetSpellScript() const
- {
- return new freakz_spell_warforged_nightmare_SpellScript();
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement