*Fix some receive emote. More to be fixed.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-04-15 19:01:51 -05:00
parent e9272c9e84
commit 20344396b3
4 changed files with 57 additions and 67 deletions
@@ -190,6 +190,18 @@ struct TRINITY_DLL_DECL example_creatureAI : public ScriptedAI
DoMeleeAttackIfReady();
}
//Our Recive emote function
void ReceiveEmote(Player *player, uint32 emote)
{
m_creature->HandleEmoteCommand(emote);
if (emote == TEXTEMOTE_DANCE)
DoScriptText(SAY_DANCE, m_creature);
if (emote == TEXTEMOTE_SALUTE)
DoScriptText(SAY_SALUTE, m_creature);
}
};
//This is the GetAI method used by all scripts that involve AI
@@ -229,20 +241,6 @@ bool GossipHello_example_creature(Player *player, Creature *_Creature)
return true;
}
//Our Recive emote function
bool ReceiveEmote_example_creature(Player *player, Creature *_Creature, uint32 emote)
{
_Creature->HandleEmoteCommand(emote);
if (emote == TEXTEMOTE_DANCE)
DoScriptText(SAY_DANCE, _Creature);
if (emote == TEXTEMOTE_SALUTE)
DoScriptText(SAY_SALUTE, _Creature);
return true;
}
//This is the actual function called only once durring InitScripts()
//It must define all handled functions that are to be run in this script
//For example if you want this Script to handle Emotes you must include
@@ -256,6 +254,5 @@ void AddSC_example_creature()
newscript->GetAI = &GetAI_example_creature;
newscript->pGossipHello = &GossipHello_example_creature;
newscript->pGossipSelect = &GossipSelect_example_creature;
newscript->pReceiveEmote = &ReceiveEmote_example_creature;
newscript->RegisterSelf();
}
@@ -116,7 +116,18 @@ struct TRINITY_DLL_DECL npc_shenthulAI : public ScriptedAI
DoMeleeAttackIfReady();
}
void ReciveEmote_npc_shenthul(Player *player, uint32 emote)
{
if( emote == TEXTEMOTE_SALUTE && player->GetQuestStatus(QUEST_2460) == QUEST_STATUS_INCOMPLETE )
if(CanEmote)
{
player->AreaExploredOrEventHappens(QUEST_2460);
Reset();
}
}
};
CreatureAI* GetAI_npc_shenthul(Creature *_Creature)
{
return new npc_shenthulAI (_Creature);
@@ -132,17 +143,6 @@ bool QuestAccept_npc_shenthul(Player* player, Creature* creature, Quest const* q
return true;
}
bool ReciveEmote_npc_shenthul(Player *player, Creature *_Creature, uint32 emote)
{
if( emote == TEXTEMOTE_SALUTE && player->GetQuestStatus(QUEST_2460) == QUEST_STATUS_INCOMPLETE )
if( ((npc_shenthulAI*)_Creature->AI())->CanEmote )
{
player->AreaExploredOrEventHappens(QUEST_2460);
((npc_shenthulAI*)_Creature->AI())->Reset();
}
return true;
}
/*######
## npc_thrall_warchief
######*/
@@ -263,7 +263,6 @@ void AddSC_orgrimmar()
newscript->Name="npc_shenthul";
newscript->GetAI = &GetAI_npc_shenthul;
newscript->pQuestAccept = &QuestAccept_npc_shenthul;
newscript->pReceiveEmote = &ReciveEmote_npc_shenthul;
newscript->RegisterSelf();
newscript = new Script;
@@ -227,6 +227,32 @@ struct TRINITY_DLL_DECL mobs_spectral_ghostly_citizenAI : public ScriptedAI
DoMeleeAttackIfReady();
}
void ReciveEmote(Player *player, uint32 emote)
{
switch(emote)
{
case TEXTEMOTE_DANCE:
EnterEvadeMode();
break;
case TEXTEMOTE_RUDE:
//Should instead cast spell, kicking player back. Spell not found.
if (m_creature->IsWithinDistInMap(player, 5))
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_RUDE);
else
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_RUDE);
break;
case TEXTEMOTE_WAVE:
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_WAVE);
break;
case TEXTEMOTE_BOW:
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_BOW);
break;
case TEXTEMOTE_KISS:
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_FLEX);
break;
}
}
};
CreatureAI* GetAI_mobs_spectral_ghostly_citizen(Creature *_Creature)
@@ -234,34 +260,6 @@ CreatureAI* GetAI_mobs_spectral_ghostly_citizen(Creature *_Creature)
return new mobs_spectral_ghostly_citizenAI (_Creature);
}
bool ReciveEmote_mobs_spectral_ghostly_citizen(Player *player, Creature *_Creature, uint32 emote)
{
switch(emote)
{
case TEXTEMOTE_DANCE:
((mobs_spectral_ghostly_citizenAI*)_Creature->AI())->EnterEvadeMode();
break;
case TEXTEMOTE_RUDE:
//Should instead cast spell, kicking player back. Spell not found.
if (_Creature->IsWithinDistInMap(player, 5))
_Creature->HandleEmoteCommand(EMOTE_ONESHOT_RUDE);
else
_Creature->HandleEmoteCommand(EMOTE_ONESHOT_RUDE);
break;
case TEXTEMOTE_WAVE:
_Creature->HandleEmoteCommand(EMOTE_ONESHOT_WAVE);
break;
case TEXTEMOTE_BOW:
_Creature->HandleEmoteCommand(EMOTE_ONESHOT_BOW);
break;
case TEXTEMOTE_KISS:
_Creature->HandleEmoteCommand(EMOTE_ONESHOT_FLEX);
break;
}
return true;
}
void AddSC_stratholme()
{
Script *newscript;
@@ -284,7 +282,6 @@ void AddSC_stratholme()
newscript = new Script;
newscript->Name = "mobs_spectral_ghostly_citizen";
newscript->GetAI = &GetAI_mobs_spectral_ghostly_citizen;
newscript->pReceiveEmote = &ReciveEmote_mobs_spectral_ghostly_citizen;
newscript->RegisterSelf();
}
@@ -259,19 +259,17 @@ struct TRINITY_DLL_DECL npc_pluckyAI : public ScriptedAI
DoMeleeAttackIfReady();
}
};
bool ReceiveEmote_npc_plucky( Player *player, Creature *_Creature, uint32 emote )
{
if( (emote == TEXTEMOTE_BECKON || emote == TEXTEMOTE_CHICKEN &&
player->GetQuestStatus(QUEST_GET_THE_SCOOP) == QUEST_STATUS_INCOMPLETE) )
void ReceiveEmote( Player *player, uint32 emote )
{
_Creature->SetInFront(player);
((npc_pluckyAI*)((Creature*)_Creature)->AI())->TransformHuman(emote);
if( (emote == TEXTEMOTE_BECKON || emote == TEXTEMOTE_CHICKEN &&
player->GetQuestStatus(QUEST_GET_THE_SCOOP) == QUEST_STATUS_INCOMPLETE) )
{
m_creature->SetInFront(player);
TransformHuman(emote);
}
}
return true;
}
};
bool GossipHello_npc_plucky(Player *player, Creature *_Creature)
{
@@ -316,7 +314,6 @@ void AddSC_thousand_needles()
newscript = new Script;
newscript->Name = "npc_plucky";
newscript->GetAI = &GetAI_npc_plucky;
newscript->pReceiveEmote = &ReceiveEmote_npc_plucky;
newscript->pGossipHello = &GossipHello_npc_plucky;
newscript->pGossipSelect = &GossipSelect_npc_plucky;
newscript->RegisterSelf();