summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-02-25 23:19:40 +0300
committerAndrei Karas <akaras@inbox.ru>2016-02-25 23:19:40 +0300
commit9bc12d91bb8d149ea49db42bdfb62781081457c8 (patch)
tree73a64300b537efd7f6727b4bfe1b15d9213e03f4
parentbb0b0d183a4f777653df14f5e003b893e47a9e76 (diff)
downloadmv-9bc12d91bb8d149ea49db42bdfb62781081457c8.tar.gz
mv-9bc12d91bb8d149ea49db42bdfb62781081457c8.tar.bz2
mv-9bc12d91bb8d149ea49db42bdfb62781081457c8.tar.xz
mv-9bc12d91bb8d149ea49db42bdfb62781081457c8.zip
Add chat command /kill. Also add it to player context menu.
-rw-r--r--src/actions/commands.cpp6
-rw-r--r--src/actions/commands.h1
-rw-r--r--src/dyetool/actions/commands.cpp1
-rw-r--r--src/enums/input/inputaction.h1
-rw-r--r--src/gui/popups/popupmenu.cpp3
-rw-r--r--src/input/inputactionmap.h6
-rw-r--r--src/net/adminhandler.h2
-rw-r--r--src/net/eathena/adminhandler.cpp5
-rw-r--r--src/net/eathena/adminhandler.h2
-rw-r--r--src/net/tmwa/adminhandler.cpp4
-rw-r--r--src/net/tmwa/adminhandler.h2
11 files changed, 33 insertions, 0 deletions
diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp
index 1bc922a1f..ab9a8dda7 100644
--- a/src/actions/commands.cpp
+++ b/src/actions/commands.cpp
@@ -1450,4 +1450,10 @@ impHandler(commandNuke)
return true;
}
+impHandler(commandKill)
+{
+ adminHandler->kill(event.args);
+ return true;
+}
+
} // namespace Actions
diff --git a/src/actions/commands.h b/src/actions/commands.h
index f6d8a70e5..ac7ff1ca7 100644
--- a/src/actions/commands.h
+++ b/src/actions/commands.h
@@ -128,6 +128,7 @@ namespace Actions
decHandler(commandImmortal);
decHandler(commandHide);
decHandler(commandNuke);
+ decHandler(commandKill);
} // namespace Actions
#undef decHandler
diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp
index 9028e6ec4..09cd7e56c 100644
--- a/src/dyetool/actions/commands.cpp
+++ b/src/dyetool/actions/commands.cpp
@@ -128,5 +128,6 @@ impHandlerVoid(commandDisguise)
impHandlerVoid(commandImmortal)
impHandlerVoid(commandHide)
impHandlerVoid(commandNuke)
+impHandlerVoid(commandKill)
} // namespace Actions
diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h
index be65343e6..43efada74 100644
--- a/src/enums/input/inputaction.h
+++ b/src/enums/input/inputaction.h
@@ -657,6 +657,7 @@ enumStart(InputAction)
COMMAND_IMMORTAL,
COMMAND_HIDE,
COMMAND_NUKE,
+ COMMAND_KILL,
TOTAL
}
enumEnd(InputAction);
diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp
index 59a67b7be..0fa5a2ca6 100644
--- a/src/gui/popups/popupmenu.cpp
+++ b/src/gui/popups/popupmenu.cpp
@@ -2734,6 +2734,9 @@ void PopupMenu::showPlayerGMCommands()
// TRANSLATORS: popup menu item
// TRANSLATORS: nuke player
mBrowserBox->addRow("/nuke 'NAME'", _("Nuke"));
+ // TRANSLATORS: popup menu item
+ // TRANSLATORS: kill player
+ mBrowserBox->addRow("/kill 'NAME'", _("Kill"));
if (mBeingId != BeingId_zero)
{
mBrowserBox->addRow("##3---");
diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h
index 01522c8e4..95e609876 100644
--- a/src/input/inputactionmap.h
+++ b/src/input/inputactionmap.h
@@ -5431,6 +5431,12 @@ static const InputActionData inputActionData
"nuke",
UseArgs_true,
Protected_true},
+ {"keyCommandKill",
+ defaultAction(&Actions::commandKill),
+ InputCondition::INGAME,
+ "kill",
+ UseArgs_true,
+ Protected_true},
};
#undef defaultAction
diff --git a/src/net/adminhandler.h b/src/net/adminhandler.h
index 624967f4a..1fa8ffc27 100644
--- a/src/net/adminhandler.h
+++ b/src/net/adminhandler.h
@@ -156,6 +156,8 @@ class AdminHandler notfinal
virtual void hide(const std::string &name) const = 0;
virtual void nuke(const std::string &name) const = 0;
+
+ virtual void kill(const std::string &name) const = 0;
};
} // namespace Net
diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp
index b0bc933e7..3618b1357 100644
--- a/src/net/eathena/adminhandler.cpp
+++ b/src/net/eathena/adminhandler.cpp
@@ -310,4 +310,9 @@ void AdminHandler::nuke(const std::string &name) const
Gm::runCommand("nuke", name);
}
+void AdminHandler::kill(const std::string &name) const
+{
+ Gm::runCharCommand("kill", name);
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h
index 4844b4f2b..548bea7f6 100644
--- a/src/net/eathena/adminhandler.h
+++ b/src/net/eathena/adminhandler.h
@@ -132,6 +132,8 @@ class AdminHandler final : public Ea::AdminHandler
void nuke(const std::string &name) const override final;
+ void kill(const std::string &name) const override final;
+
protected:
static std::string mStatsName;
};
diff --git a/src/net/tmwa/adminhandler.cpp b/src/net/tmwa/adminhandler.cpp
index ccb5aaa0a..2437218df 100644
--- a/src/net/tmwa/adminhandler.cpp
+++ b/src/net/tmwa/adminhandler.cpp
@@ -245,4 +245,8 @@ void AdminHandler::nuke(const std::string &name A_UNUSED) const
{
}
+void AdminHandler::kill(const std::string &name A_UNUSED) const
+{
+}
+
} // namespace TmwAthena
diff --git a/src/net/tmwa/adminhandler.h b/src/net/tmwa/adminhandler.h
index c7e4c584d..7f5b5730d 100644
--- a/src/net/tmwa/adminhandler.h
+++ b/src/net/tmwa/adminhandler.h
@@ -144,6 +144,8 @@ class AdminHandler final : public Ea::AdminHandler
void hide(const std::string &name) const override final;
void nuke(const std::string &name) const override final;
+
+ void kill(const std::string &name) const override final;
};
} // namespace TmwAthena