aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormegamage <none@none>2008-12-28 16:27:45 -0600
committermegamage <none@none>2008-12-28 16:27:45 -0600
commit2d25493b8b847745c9bb5179c9a301e49effff65 (patch)
treec28a893338fecd94aa2cd3013508f0305b41738f
parente2ee47fb355c3ff59c54cd1bd3f2c8b329c8a108 (diff)
parent7e85d91f696e6c73fb4d94f24330fb380e725a77 (diff)
*Merge with Trinity 702.
--HG-- branch : trunk
-rw-r--r--src/bindings/scripts/include/sc_creature.cpp8
-rw-r--r--src/bindings/scripts/include/sc_creature.h4
-rw-r--r--src/game/Chat.cpp6
-rw-r--r--src/game/Level2.cpp132
-rw-r--r--src/game/WaypointMovementGenerator.cpp2
5 files changed, 88 insertions, 64 deletions
diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp
index 590118e7a8c..fad8c631e5e 100644
--- a/src/bindings/scripts/include/sc_creature.cpp
+++ b/src/bindings/scripts/include/sc_creature.cpp
@@ -740,11 +740,11 @@ void ScriptedAI::DoTeleportAll(float x, float y, float z, float o)
i_pl->TeleportTo(m_creature->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT);
}
-Unit* ScriptedAI::FindCreature(uint32 entry, uint32 range)
+Unit* ScriptedAI::FindCreature(uint32 entry, uint32 range, uint32 district)
{
CellPair pair(Trinity::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
Cell cell(pair);
- cell.data.Part.reserved = ALL_DISTRICT;
+ cell.data.Part.reserved = district;
cell.SetNoCreate();
std::list<Creature*> NPCList;
@@ -765,11 +765,11 @@ Unit* ScriptedAI::FindCreature(uint32 entry, uint32 range)
}else error_log("SD2 ERROR: Entry: %u not found!", entry); return NULL;
}
-GameObject* ScriptedAI::FindGameObject(uint32 entry)
+GameObject* ScriptedAI::FindGameObject(uint32 entry, uint32 district)
{
CellPair pair(Trinity::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
Cell cell(pair);
- cell.data.Part.reserved = ALL_DISTRICT;
+ cell.data.Part.reserved = district;
cell.SetNoCreate();
std::list<GameObject*> GOList;
diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h
index 1878e6e11dc..3ece26bdb6f 100644
--- a/src/bindings/scripts/include/sc_creature.h
+++ b/src/bindings/scripts/include/sc_creature.h
@@ -149,10 +149,10 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI
void DoTeleportAll(float x, float y, float z, float o);
//Get a single creature of given entry
- Unit* FindCreature(uint32 entry, uint32 range);
+ Unit* FindCreature(uint32 entry, uint32 range, uint32 district = ALL_DISTRICT);
//Get a single gameobject of given entry
- GameObject* FindGameObject(uint32 entry);
+ GameObject* FindGameObject(uint32 entry, uint32 district = ALL_DISTRICT);
//Returns friendly unit with the most amount of hp missing from max hp
Unit* DoSelectLowestHpFriendly(float range, uint32 MinHPDiff = 1);
diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp
index 1f352a16cba..fe7949fc700 100644
--- a/src/game/Chat.cpp
+++ b/src/game/Chat.cpp
@@ -845,8 +845,8 @@ int ChatHandler::ParseCommands(const char* text)
ASSERT(text);
ASSERT(*text);
- //if(m_session->GetSecurity() == 0)
- // return 0;
+ if(m_session->GetSecurity() == 0)
+ return 0;
/// chat case (.command or !command format)
if(m_session)
@@ -869,7 +869,7 @@ int ChatHandler::ParseCommands(const char* text)
if(text[0] == '!' || text[0] == '.')
++text;
- if(!ExecuteCommandInTable(getCommandTable(), text, fullcmd) && m_session->GetSecurity() > SEC_PLAYER)
+ if(!ExecuteCommandInTable(getCommandTable(), text, fullcmd))
SendSysMessage(LANG_NO_CMD);
return 1;
diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp
index 97a094585d1..cbbadf5541a 100644
--- a/src/game/Level2.cpp
+++ b/src/game/Level2.cpp
@@ -1679,71 +1679,95 @@ bool ChatHandler::HandleNpcFactionIdCommand(const char* args)
//kick player
bool ChatHandler::HandleKickPlayerCommand(const char *args)
{
- if(!*args)
- return false;
-
const char* kickName = strtok((char*)args, " ");
- if(!kickName)
- {
-
- SendSysMessage(LANG_NO_CHAR_SELECTED);
- SetSentErrorMessage(true);
- return false;
- }
-
- std::string name = kickName;
+ char* kickReason = strtok(NULL, "\n");
+ std::string reason = "No Reason";
+ std::string kicker = "Console";
+ if(kickReason)
+ reason = kickReason;
+ if(m_session)
+ kicker = m_session->GetPlayer()->GetName();
- if(!normalizePlayerName(name))
+ if(!kickName)
{
- SendSysMessage(LANG_PLAYER_NOT_FOUND);
- SetSentErrorMessage(true);
- return false;
- }
+ Player* player = getSelectedPlayer();
+ if(!player)
+ {
+ SendSysMessage(LANG_NO_CHAR_SELECTED);
+ SetSentErrorMessage(true);
+ return false;
+ }
- if(m_session && name==m_session->GetPlayer()->GetName())
- {
- SendSysMessage(LANG_COMMAND_KICKSELF);
- SetSentErrorMessage(true);
- return false;
- }
+ if(player==m_session->GetPlayer())
+ {
+ SendSysMessage(LANG_COMMAND_KICKSELF);
+ SetSentErrorMessage(true);
+ return false;
+ }
+
+ if(sWorld.getConfig(CONFIG_SHOW_KICK_IN_WORLD) == 1)
+ {
- Player* player = objmgr.GetPlayer(kickName);
- if(!player)
- {
- SendSysMessage(LANG_PLAYER_NOT_FOUND);
- SetSentErrorMessage(true);
- return false;
- }
-
- if(player->GetSession()->GetSecurity() > m_session->GetSecurity())
+ sWorld.SendWorldText(LANG_COMMAND_KICKMESSAGE, player->GetName(), kicker.c_str(), reason.c_str());
+ }
+ else
+ {
+
+ PSendSysMessage(LANG_COMMAND_KICKMESSAGE, player->GetName(), kicker.c_str(), reason.c_str());
+ }
+
+ player->GetSession()->KickPlayer();
+ }
+ else
{
- SendSysMessage(LANG_YOURS_SECURITY_IS_LOW); //maybe replacement string for this later on
- SetSentErrorMessage(true);
- return false;
- }
-
- char* kickReason = strtok(NULL, "\n");
- std::string reason = "No Reason";
- if(kickReason)
- {reason = kickReason;}
+ std::string name = kickName;
+ if(!normalizePlayerName(name))
+ {
+ SendSysMessage(LANG_PLAYER_NOT_FOUND);
+ SetSentErrorMessage(true);
+ return false;
+ }
- if(sWorld.KickPlayer(name.c_str()))
- {
- if(sWorld.getConfig(CONFIG_SHOW_KICK_IN_WORLD) == 1)
+ if(m_session && name==m_session->GetPlayer()->GetName())
{
- sWorld.SendWorldText(LANG_COMMAND_KICKMESSAGE, name.c_str(), m_session->GetPlayer()->GetName(), reason.c_str());
+ SendSysMessage(LANG_COMMAND_KICKSELF);
+ SetSentErrorMessage(true);
+ return false;
}
- else
+
+ Player* player = objmgr.GetPlayer(kickName);
+ if(!player)
{
- PSendSysMessage(LANG_COMMAND_KICKMESSAGE, name.c_str(), m_session->GetPlayer()->GetName(), reason.c_str());
+ SendSysMessage(LANG_PLAYER_NOT_FOUND);
+ SetSentErrorMessage(true);
+ return false;
}
- }
- else
- {
- PSendSysMessage(LANG_COMMAND_KICKNOTFOUNDPLAYER, name.c_str());
- return false;
- }
-
+
+ if(m_session && player->GetSession()->GetSecurity() > m_session->GetSecurity())
+ {
+ SendSysMessage(LANG_YOURS_SECURITY_IS_LOW); //maybe replacement string for this later on
+ SetSentErrorMessage(true);
+ return false;
+ }
+
+ if(sWorld.KickPlayer(name.c_str()))
+ {
+ if(sWorld.getConfig(CONFIG_SHOW_KICK_IN_WORLD) == 1)
+ {
+
+ sWorld.SendWorldText(LANG_COMMAND_KICKMESSAGE, name.c_str(), kicker.c_str(), reason.c_str());
+ }
+ else
+ {
+ PSendSysMessage(LANG_COMMAND_KICKMESSAGE, name.c_str(), kicker.c_str(), reason.c_str());
+ }
+ }
+ else
+ {
+ PSendSysMessage(LANG_COMMAND_KICKNOTFOUNDPLAYER, name.c_str());
+ return false;
+ }
+ }
return true;
}
diff --git a/src/game/WaypointMovementGenerator.cpp b/src/game/WaypointMovementGenerator.cpp
index 589afa088c3..adc4345fdfc 100644
--- a/src/game/WaypointMovementGenerator.cpp
+++ b/src/game/WaypointMovementGenerator.cpp
@@ -100,8 +100,8 @@ WaypointMovementGenerator<Creature>::Initialize(Creature &u)
StopedByPlayer = false;
if(!path_id)
path_id = u.GetWaypointPath();
- /*i_currentNode = 0;
waypoints = WaypointMgr.GetPath(path_id);
+ /*i_currentNode = 0;
if(waypoints && waypoints->size())
{
Traveller<Creature> traveller(u);