aboutsummaryrefslogtreecommitdiff
path: root/src/game/Level2.cpp
diff options
context:
space:
mode:
authorBlaymoira <none@none>2009-01-14 18:41:20 +0100
committerBlaymoira <none@none>2009-01-14 18:41:20 +0100
commite4d2c1c04e4befe54529c4eb216f3f9e360160d3 (patch)
tree7006ee2180650a4f99f43eb6ae813483a2e044ee /src/game/Level2.cpp
parent8137a534b40918540e9fded5d3d582a6d2a9fd44 (diff)
*Command for add npc formation - by Silver1ce
--HG-- branch : trunk
Diffstat (limited to 'src/game/Level2.cpp')
-rw-r--r--src/game/Level2.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp
index 0258954d983..85eef6a6da5 100644
--- a/src/game/Level2.cpp
+++ b/src/game/Level2.cpp
@@ -4007,3 +4007,49 @@ bool ChatHandler::HandleTempGameObjectCommand(const char* args)
return true;
}
+
+bool ChatHandler::HandleNpcAddFormationCommand(const char* args)
+{
+ if (!*args)
+ return false;
+
+ uint32 leaderGUID = (uint32) atoi((char*)args);
+ Creature *pCreature = getSelectedCreature();
+
+ if(!pCreature || !pCreature->GetDBTableGUIDLow())
+ {
+ SendSysMessage(LANG_SELECT_CREATURE);
+ SetSentErrorMessage(true);
+ return false;
+ }
+
+ uint32 lowguid = pCreature->GetDBTableGUIDLow();
+ if(pCreature->GetFormationID())
+ {
+ PSendSysMessage("Selected creature is already member of group %u", pCreature->GetFormationID());
+ return false;
+ }
+
+ if (!lowguid)
+ return false;
+
+ Player *chr = m_session->GetPlayer();
+ FormationMember *group_member;
+
+ group_member = new FormationMember;
+ group_member->follow_angle = pCreature->GetAngle(chr) - chr->GetOrientation();
+ group_member->follow_dist = sqrtf(pow(chr->GetPositionX() - pCreature->GetPositionX(),int(2))+pow(chr->GetPositionY()-pCreature->GetPositionY(),int(2)));
+ group_member->memberGUID = lowguid;
+ group_member->leaderGUID = leaderGUID;
+ group_member->groupAI = 0;
+
+ CreatureGroupMap[lowguid] = group_member;
+ pCreature->SearchFormation();
+
+ WorldDatabase.PExecuteLog("INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES ('%u','%u','%f', '%f', '%u')",
+ leaderGUID, lowguid, group_member->follow_dist, group_member->follow_angle, group_member->groupAI);
+
+ PSendSysMessage("Creature %u added to formation with leader %u", lowguid, leaderGUID);
+
+ return true;
+ }