summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-02-25 20:25:03 +0300
committerAndrei Karas <akaras@inbox.ru>2016-02-25 20:25:03 +0300
commit64a067458ea169b9ff5b9a78ed1a011da86e8bdf (patch)
tree0bae841148a69a2bd160b914d3d17ed0b4ac3421 /src
parent704b5b31fea63483c81f0744d88e46a856573424 (diff)
downloadmv-64a067458ea169b9ff5b9a78ed1a011da86e8bdf.tar.gz
mv-64a067458ea169b9ff5b9a78ed1a011da86e8bdf.tar.bz2
mv-64a067458ea169b9ff5b9a78ed1a011da86e8bdf.tar.xz
mv-64a067458ea169b9ff5b9a78ed1a011da86e8bdf.zip
Add chat command /killable. Also add it to player context menu.
Diffstat (limited to 'src')
-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 6c7cb1d8f..426c89da7 100644
--- a/src/actions/commands.cpp
+++ b/src/actions/commands.cpp
@@ -1402,4 +1402,10 @@ impHandler(commandKiller)
return true;
}
+impHandler(commandKillable)
+{
+ adminHandler->killable(event.args);
+ return true;
+}
+
} // namespace Actions
diff --git a/src/actions/commands.h b/src/actions/commands.h
index 9328f1d2c..19581facc 100644
--- a/src/actions/commands.h
+++ b/src/actions/commands.h
@@ -121,6 +121,7 @@ namespace Actions
decHandler(commandRandomWarp);
decHandler(commandGotoNpc);
decHandler(commandKiller);
+ decHandler(commandKillable);
} // namespace Actions
#undef decHandler
diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp
index a87b76c5e..b1ff43838 100644
--- a/src/dyetool/actions/commands.cpp
+++ b/src/dyetool/actions/commands.cpp
@@ -121,5 +121,6 @@ impHandlerVoid(commandLoadPosition)
impHandlerVoid(commandRandomWarp)
impHandlerVoid(commandGotoNpc)
impHandlerVoid(commandKiller)
+impHandlerVoid(commandKillable)
} // namespace Actions
diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h
index edfc88f34..c838648a4 100644
--- a/src/enums/input/inputaction.h
+++ b/src/enums/input/inputaction.h
@@ -650,6 +650,7 @@ enumStart(InputAction)
COMMAND_RANDOM_WARP,
COMMAND_GOTO_NPC,
COMMAND_KILLER,
+ COMMAND_KILLABLE,
TOTAL
}
enumEnd(InputAction);
diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp
index f5bc3d32d..b8923bd7e 100644
--- a/src/gui/popups/popupmenu.cpp
+++ b/src/gui/popups/popupmenu.cpp
@@ -2749,6 +2749,9 @@ void PopupMenu::showPlayerGMCommands()
// TRANSLATORS: set player as killer
mBrowserBox->addRow("/killer 'NAME'", _("Killer"));
// TRANSLATORS: popup menu item
+ // TRANSLATORS: set player as killable
+ mBrowserBox->addRow("/killable 'NAME'", _("Killable"));
+ // TRANSLATORS: popup menu item
// TRANSLATORS: set player save position
mBrowserBox->addRow("/savepos 'NAME'", _("Set save"));
// TRANSLATORS: popup menu item
diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h
index 93f1e73bb..6c0975015 100644
--- a/src/input/inputactionmap.h
+++ b/src/input/inputactionmap.h
@@ -5389,6 +5389,12 @@ static const InputActionData inputActionData
"setkiller|killer",
UseArgs_true,
Protected_true},
+ {"keyCommandKillable",
+ defaultAction(&Actions::commandKillable),
+ InputCondition::INGAME,
+ "setkillable|killable",
+ UseArgs_true,
+ Protected_true},
};
#undef defaultAction
diff --git a/src/net/adminhandler.h b/src/net/adminhandler.h
index ae8a55e73..6814f36ea 100644
--- a/src/net/adminhandler.h
+++ b/src/net/adminhandler.h
@@ -144,6 +144,8 @@ class AdminHandler notfinal
virtual void gotoNpc(const std::string &name) const = 0;
virtual void killer(const std::string &name) const = 0;
+
+ virtual void killable(const std::string &name) const = 0;
};
} // namespace Net
diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp
index 25104c076..270c20070 100644
--- a/src/net/eathena/adminhandler.cpp
+++ b/src/net/eathena/adminhandler.cpp
@@ -275,4 +275,9 @@ void AdminHandler::killer(const std::string &name) const
Gm::runCharCommand("killer", name);
}
+void AdminHandler::killable(const std::string &name) const
+{
+ Gm::runCharCommand("killable", name);
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h
index 24dbf9b8a..6e6906fcf 100644
--- a/src/net/eathena/adminhandler.h
+++ b/src/net/eathena/adminhandler.h
@@ -118,6 +118,8 @@ class AdminHandler final : public Ea::AdminHandler
void killer(const std::string &name) const override final;
+ void killable(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 1b2d2919a..5b3645786 100644
--- a/src/net/tmwa/adminhandler.cpp
+++ b/src/net/tmwa/adminhandler.cpp
@@ -215,4 +215,8 @@ void AdminHandler::killer(const std::string &name A_UNUSED) const
{
}
+void AdminHandler::killable(const std::string &name A_UNUSED) const
+{
+}
+
} // namespace TmwAthena
diff --git a/src/net/tmwa/adminhandler.h b/src/net/tmwa/adminhandler.h
index 22deeeb08..607ea8ed1 100644
--- a/src/net/tmwa/adminhandler.h
+++ b/src/net/tmwa/adminhandler.h
@@ -130,6 +130,8 @@ class AdminHandler final : public Ea::AdminHandler
void gotoNpc(const std::string &name) const override final A_CONST;
void killer(const std::string &name) const override final A_CONST;
+
+ void killable(const std::string &name) const override final A_CONST;
};
} // namespace TmwAthena