diff options
| author | megamage <none@none> | 2009-03-31 14:17:57 -0600 |
|---|---|---|
| committer | megamage <none@none> | 2009-03-31 14:17:57 -0600 |
| commit | 4afd030b48c428af9775340cac9574118cee78d2 (patch) | |
| tree | 004dc51c069367f180d478798e265f246be9d106 /src/bindings/scripts | |
| parent | b51cea6ce48295c3ebea9b2340d76a4ab147a6e5 (diff) | |
| parent | e097f358a198b086d2960f774ac1da148b8b3c54 (diff) | |
*Merge.
--HG--
branch : trunk
Diffstat (limited to 'src/bindings/scripts')
| -rw-r--r-- | src/bindings/scripts/ScriptMgr.cpp | 24 | ||||
| -rw-r--r-- | src/bindings/scripts/ScriptMgr.h | 2 | ||||
| -rw-r--r-- | src/bindings/scripts/scripts/go/go_scripts.cpp | 19 | ||||
| -rw-r--r-- | src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp | 57 |
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(); + } |
