aboutsummaryrefslogtreecommitdiff
path: root/src/bindings/scripts
diff options
context:
space:
mode:
authormegamage <none@none>2009-08-19 23:05:36 -0500
committermegamage <none@none>2009-08-19 23:05:36 -0500
commitcf9022aa16b917e82b4c5b27066230ced19433b4 (patch)
treed396a1ec2253f67d6e29731486e0af179cad7150 /src/bindings/scripts
parent411902af037451da2e7114f6864d76bb57f79516 (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.cpp37
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();