From e210432ace0352c369e868a262105899a8f4763a Mon Sep 17 00:00:00 2001 From: Blaymoira Date: Sun, 28 Dec 2008 18:09:33 +0100 Subject: *Not check on security level 0 the command syntax - by Machiavelli --HG-- branch : trunk --- src/game/Chat.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index 1beb78b9419..d86e941c3f5 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -842,8 +842,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) @@ -866,7 +866,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; -- cgit v1.2.3 From 057d490710ffe389e20e0c63e58590a7fd41e9aa Mon Sep 17 00:00:00 2001 From: Blaymoira Date: Sun, 28 Dec 2008 18:10:15 +0100 Subject: *Changes in FindCreature and FindGameObject function --HG-- branch : trunk --- src/bindings/scripts/include/sc_creature.cpp | 8 ++++---- src/bindings/scripts/include/sc_creature.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') 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 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 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); -- cgit v1.2.3 From ac00498f884b596d0ba8940a61ace9b9bacc39a5 Mon Sep 17 00:00:00 2001 From: Blaymoira Date: Sun, 28 Dec 2008 22:58:52 +0100 Subject: *Kick command CLI support - by Machiavelli --HG-- branch : trunk --- src/game/Level2.cpp | 132 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 78 insertions(+), 54 deletions(-) (limited to 'src') diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index 821ea1696d9..932ea2352ce 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; } -- cgit v1.2.3 From 7e85d91f696e6c73fb4d94f24330fb380e725a77 Mon Sep 17 00:00:00 2001 From: megamage Date: Sun, 28 Dec 2008 16:24:28 -0600 Subject: *Fix crash caused by Waypoint movement. --HG-- branch : trunk --- src/game/WaypointMovementGenerator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') 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::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 traveller(u); -- cgit v1.2.3