From 7a9332d87248c6d79168ed13d7025cc8b719b16b Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Sat, 29 Aug 2020 01:14:39 -0300 Subject: getskillname(), function required by magic functionality Gumi suggested a [skill] in ManaPlus, but it was not done. Besides, these are known to not work on menus, so this is a better idea. Note that the field returned in skill_db is "desc", not "name". --- src/emap/init.c | 1 + src/emap/script_buildins.c | 15 +++++++++++++++ src/emap/script_buildins.h | 1 + 3 files changed, 17 insertions(+) diff --git a/src/emap/init.c b/src/emap/init.c index a4902ba..b663268 100644 --- a/src/emap/init.c +++ b/src/emap/init.c @@ -220,6 +220,7 @@ HPExport void plugin_init (void) addScriptCommand("aggravate", "i", aggravate); addScriptCommand("getnpcsubtype", "?", getNpcSubtype); addScriptCommand("kick", "v?", kick); + addScriptCommand("getskillname", "i", getskillname); do_init_langs(); diff --git a/src/emap/script_buildins.c b/src/emap/script_buildins.c index 109cb66..553e8b1 100644 --- a/src/emap/script_buildins.c +++ b/src/emap/script_buildins.c @@ -20,6 +20,7 @@ #include "map/pc.h" #include "map/refine.h" #include "map/script.h" +#include "map/skill.h" #include "map/quest.h" #include "emap/clif.h" @@ -2636,3 +2637,17 @@ BUILDIN(kick) script_pushint(st, 1); return true; } + +BUILDIN(getskillname) +{ + int skill_id = script_getnum(st, 2); + + if (skill_id < 0) { + script_pushstr(st, ""); + return false; + } + + script_pushstrcopy(st, skill->get_desc(skill_id)); + return true; +} + diff --git a/src/emap/script_buildins.h b/src/emap/script_buildins.h index 5a653d7..bcffa7a 100644 --- a/src/emap/script_buildins.h +++ b/src/emap/script_buildins.h @@ -105,5 +105,6 @@ BUILDIN(aggravate); BUILDIN(getNpcSubtype); BUILDIN(kick); BUILDIN(getCraftRecipe); +BUILDIN(getskillname); #endif // EVOL_MAP_SCRIPT_BUILDINS -- cgit v1.2.3-70-g09d2