aboutsummaryrefslogtreecommitdiff
path: root/src/bindings/scripts
diff options
context:
space:
mode:
authormegamage <none@none>2009-03-31 14:17:57 -0600
committermegamage <none@none>2009-03-31 14:17:57 -0600
commit4afd030b48c428af9775340cac9574118cee78d2 (patch)
tree004dc51c069367f180d478798e265f246be9d106 /src/bindings/scripts
parentb51cea6ce48295c3ebea9b2340d76a4ab147a6e5 (diff)
parente097f358a198b086d2960f774ac1da148b8b3c54 (diff)
*Merge.
--HG-- branch : trunk
Diffstat (limited to 'src/bindings/scripts')
-rw-r--r--src/bindings/scripts/ScriptMgr.cpp24
-rw-r--r--src/bindings/scripts/ScriptMgr.h2
-rw-r--r--src/bindings/scripts/scripts/go/go_scripts.cpp19
-rw-r--r--src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp57
4 files changed, 102 insertions, 0 deletions
diff --git a/src/bindings/scripts/ScriptMgr.cpp b/src/bindings/scripts/ScriptMgr.cpp
index 09bbf7955e8..7987d5f1788 100644
--- a/src/bindings/scripts/ScriptMgr.cpp
+++ b/src/bindings/scripts/ScriptMgr.cpp
@@ -2303,6 +2303,30 @@ bool GossipSelectWithCode( Player *player, Creature *_Creature, uint32 sender, u
}
TRINITY_DLL_EXPORT
+bool GOSelect( Player *player, GameObject *_GO, uint32 sender, uint32 action )
+{
+ debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action);
+
+ Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId];
+ if(!tmpscript || !tmpscript->pGOSelect) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pGOSelect(player,_GO,sender,action);
+}
+
+TRINITY_DLL_EXPORT
+bool GOSelectWithCode( Player *player, GameObject *_GO, uint32 sender, uint32 action, const char* sCode )
+{
+ debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action);
+
+ Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId];
+ if(!tmpscript || !tmpscript->pGOSelectWithCode) return false;
+
+ player->PlayerTalkClass->ClearMenus();
+ return tmpscript->pGOSelectWithCode(player,_GO,sender,action,sCode);
+}
+
+TRINITY_DLL_EXPORT
bool QuestAccept( Player *player, Creature *_Creature, Quest const *_Quest )
{
Script *tmpscript = m_scripts[_Creature->GetScriptId()];
diff --git a/src/bindings/scripts/ScriptMgr.h b/src/bindings/scripts/ScriptMgr.h
index 7d814c373da..69ade0e4a45 100644
--- a/src/bindings/scripts/ScriptMgr.h
+++ b/src/bindings/scripts/ScriptMgr.h
@@ -45,6 +45,8 @@ struct Script
bool (*pQuestAccept )(Player*, Creature*, Quest const* );
bool (*pGossipSelect )(Player*, Creature*, uint32 , uint32 );
bool (*pGossipSelectWithCode)(Player*, Creature*, uint32 , uint32 , const char* );
+ bool (*pGOSelect )(Player*, GameObject*, uint32 , uint32 );
+ bool (*pGOSelectWithCode )(Player*, GameObject*, uint32 , uint32 , const char* );
bool (*pQuestSelect )(Player*, Creature*, Quest const* );
bool (*pQuestComplete )(Player*, Creature*, Quest const* );
uint32 (*pNPCDialogStatus )(Player*, Creature* );
diff --git a/src/bindings/scripts/scripts/go/go_scripts.cpp b/src/bindings/scripts/scripts/go/go_scripts.cpp
index faa55482b8a..bfa0eff3dd8 100644
--- a/src/bindings/scripts/scripts/go/go_scripts.cpp
+++ b/src/bindings/scripts/scripts/go/go_scripts.cpp
@@ -219,6 +219,20 @@ bool GOHello_go_ethereum_prison(Player *player, GameObject* _GO)
return true;
}
+/*######
+## go_sacred_fire_of_life
+######*/
+
+#define NPC_ARIKARA 10882
+
+bool GOHello_go_sacred_fire_of_life(Player* pPlayer, GameObject* pGO)
+{
+ if (pGO->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
+ pPlayer->SummonCreature(NPC_ARIKARA, -5008.338, -2118.894, 83.657, 0.874, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+
+ return true;
+}
+
void AddSC_go_scripts()
{
Script *newscript;
@@ -283,5 +297,10 @@ void AddSC_go_scripts()
newscript->pGOHello = &GOHello_go_ethereum_prison;
newscript->RegisterSelf();
+ newscript = new Script;
+ newscript->Name = "go_sacred_fire_of_life";
+ newscript->pGOHello = &GOHello_go_sacred_fire_of_life;
+ newscript->RegisterSelf();
+
}
diff --git a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
index 90ba27b2511..914714dd4aa 100644
--- a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
+++ b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
@@ -491,6 +491,56 @@ CreatureAI* GetAI_npc_isla_starmaneAI(Creature *_Creature)
return (CreatureAI*)thisAI;
}
+/*######
+## go_skull_pile
+######*/
+#define GOSSIP_S_DARKSCREECHER_AKKARAI "Summon Darkscreecher Akkarai"
+#define GOSSIP_S_KARROG "Summon Karrog"
+#define GOSSIP_S_GEZZARAK_THE_HUNTRESS "Summon Gezzarak the Huntress"
+#define GOSSIP_S_VAKKIZ_THE_WINDRAGER "Summon Vakkiz the Windrager"
+
+bool GossipHello_go_skull_pile(Player *player, GameObject* _GO)
+{
+ if (player->GetQuestStatus(11885) == QUEST_STATUS_INCOMPLETE)
+ {
+ player->ADD_GOSSIP_ITEM(1, GOSSIP_S_DARKSCREECHER_AKKARAI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
+ player->ADD_GOSSIP_ITEM(2, GOSSIP_S_KARROG, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
+ player->ADD_GOSSIP_ITEM(3, GOSSIP_S_GEZZARAK_THE_HUNTRESS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
+ player->ADD_GOSSIP_ITEM(4, GOSSIP_S_VAKKIZ_THE_WINDRAGER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
+ }
+
+ player->SEND_GOSSIP_MENU(_GO->GetGOInfo()->questgiver.gossipID, _GO->GetGUID());
+ return true;
+}
+
+void SendActionMenu_go_skull_pile(Player *player, GameObject* _GO, uint32 action)
+{
+ switch(action)
+ {
+ case GOSSIP_ACTION_INFO_DEF + 1:
+ player->CastSpell(player,40642,false);
+ break;
+ case GOSSIP_ACTION_INFO_DEF + 2:
+ player->CastSpell(player,40640,false);
+ break;
+ case GOSSIP_ACTION_INFO_DEF + 3:
+ player->CastSpell(player,40632,false);
+ break;
+ case GOSSIP_ACTION_INFO_DEF + 4:
+ player->CastSpell(player,40644,false);
+ break;
+ }
+}
+
+bool GossipSelect_go_skull_pile(Player *player, GameObject* _GO, uint32 sender, uint32 action )
+{
+ switch(sender)
+ {
+ case GOSSIP_SENDER_MAIN: SendActionMenu_go_skull_pile(player, _GO, action); break;
+ }
+ return true;
+}
+
void AddSC_terokkar_forest()
{
Script *newscript;
@@ -532,5 +582,12 @@ void AddSC_terokkar_forest()
newscript->GetAI = &GetAI_npc_isla_starmaneAI;
newscript->pQuestAccept = &QuestAccept_npc_isla_starmane;
newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="go_skull_pile";
+ newscript->pGOHello = &GossipHello_go_skull_pile;
+ newscript->pGOSelect = &GossipSelect_go_skull_pile;
+ newscript->RegisterSelf();
+
}