diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-11-23 01:00:04 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-11-23 01:00:04 +0300 |
commit | 26c14e5269feafec782166f80c31fe1a7c2b3d53 (patch) | |
tree | 3e3af33e53421438332a8738f273d032d7165640 /src/actions | |
parent | 9a50b90628eb61e1e48db35a36e9ad5c2a9a2bd5 (diff) | |
download | manaplus-26c14e5269feafec782166f80c31fe1a7c2b3d53.tar.gz manaplus-26c14e5269feafec782166f80c31fe1a7c2b3d53.tar.bz2 manaplus-26c14e5269feafec782166f80c31fe1a7c2b3d53.tar.xz manaplus-26c14e5269feafec782166f80c31fe1a7c2b3d53.zip |
Add chat command skill.
New chat command: /skill ID[ LEVEL[ TEXT]]
Diffstat (limited to 'src/actions')
-rw-r--r-- | src/actions/commands.cpp | 39 | ||||
-rw-r--r-- | src/actions/commands.h | 1 |
2 files changed, 40 insertions, 0 deletions
diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index 5dcbc3d93..cea0bdc67 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -1076,4 +1076,43 @@ impHandler(selectSkillLevel) return false; } +impHandler(skill) +{ + if (!skillDialog) + return false; + + StringVect vect; + splitToStringVector(vect, event.args, ' '); + const int sz = static_cast<int>(vect.size()); + if (sz < 1) + return true; + const int skillId = atoi(vect[0].c_str()); + int level = 0; + std::string text; + if (sz > 1) + { + level = atoi(vect[1].c_str()); + if (sz > 2) + text = vect[2]; + } + if (text.empty()) + { + skillDialog->useSkill(skillId, + AutoTarget_true, + level, + false, + ""); + } + else + { + logger->log("text: " + text); + skillDialog->useSkill(skillId, + AutoTarget_true, + level, + true, + text); + } + return true; +} + } // namespace Actions diff --git a/src/actions/commands.h b/src/actions/commands.h index 0e71f409c..67b53be0c 100644 --- a/src/actions/commands.h +++ b/src/actions/commands.h @@ -91,6 +91,7 @@ namespace Actions decHandler(serverConfGet); decHandler(slide); decHandler(selectSkillLevel); + decHandler(skill); } // namespace Actions #undef decHandler |