diff options
| author | megamage <none@none> | 2009-08-19 23:05:36 -0500 |
|---|---|---|
| committer | megamage <none@none> | 2009-08-19 23:05:36 -0500 |
| commit | cf9022aa16b917e82b4c5b27066230ced19433b4 (patch) | |
| tree | d396a1ec2253f67d6e29731486e0af179cad7150 /src/bindings/scripts | |
| parent | 411902af037451da2e7114f6864d76bb57f79516 (diff) | |
*Wintergrasp: only allow a workshop to build 4 vehicles.
*remove all existing vehicles when workshop is destroyed or captured.
--HG--
branch : trunk
Diffstat (limited to 'src/bindings/scripts')
| -rw-r--r-- | src/bindings/scripts/scripts/northrend/wintergrasp.cpp | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/src/bindings/scripts/scripts/northrend/wintergrasp.cpp b/src/bindings/scripts/scripts/northrend/wintergrasp.cpp index 275043d91e5..81f45738e4f 100644 --- a/src/bindings/scripts/scripts/northrend/wintergrasp.cpp +++ b/src/bindings/scripts/scripts/northrend/wintergrasp.cpp @@ -17,19 +17,43 @@ #include "precompiled.h" #include "Wintergrasp.h" + +struct TRINITY_DLL_DECL npc_demolisher_engineererAI : public ScriptedAI +{ + npc_demolisher_engineererAI(Creature* pCreature) : ScriptedAI(pCreature) {} + + /* + void JustDied(Unit *killer) + { + if(me->GetZoneScript()) + me->GetZoneScript()->SetData(DATA_ENGINEER_DIE, me->GetDBTableGUIDLow()); + } + */ +}; + +CreatureAI* GetAI_npc_demolisher_engineerer(Creature* pCreature) +{ + return new npc_demolisher_engineererAI (pCreature); +} + bool GossipHello_npc_demolisher_engineerer(Player* pPlayer, Creature* pCreature) { if (pCreature->isQuestGiver()) pPlayer->PrepareQuestMenu(pCreature->GetGUID()); - if (pPlayer->HasAura(SPELL_CORPORAL)) - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Build catapult.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - else if (pPlayer->HasAura(SPELL_LIEUTENANT)) + if(pPlayer->isGameMaster() || pCreature->GetZoneScript() && pCreature->GetZoneScript()->GetData(pCreature->GetDBTableGUIDLow())) { - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Build catapult.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Build demolisher.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Build siege engine.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); + if (pPlayer->HasAura(SPELL_CORPORAL)) + pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Build catapult.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); + else if (pPlayer->HasAura(SPELL_LIEUTENANT)) + { + pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Build catapult.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); + pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Build demolisher.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); + pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Build siege engine.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); + } } + else + pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I cannot build more!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9); pPlayer->SEND_GOSSIP_MENU(pCreature->GetNpcTextId(), pCreature->GetGUID()); return true; @@ -54,6 +78,7 @@ void AddSC_wintergrasp() newscript = new Script; newscript->Name = "npc_demolisher_engineerer"; + newscript->GetAI = &GetAI_npc_demolisher_engineerer; newscript->pGossipHello = &GossipHello_npc_demolisher_engineerer; newscript->pGossipSelect = &GossipSelect_npc_demolisher_engineerer; newscript->RegisterSelf(); |
