summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-09-28 22:39:00 +0200
committerYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-10-22 20:34:46 +0200
commit22afb99c7977176474f81546bca6b114b05e818f (patch)
tree911c5f5bd6a766c2fadd16d555fad46fa325fb6b
parent1afba34aaf6c3379208b61b111cd6e182f35443a (diff)
downloadmanaserv-22afb99c7977176474f81546bca6b114b05e818f.tar.gz
manaserv-22afb99c7977176474f81546bca6b114b05e818f.tar.xz
manaserv-22afb99c7977176474f81546bca6b114b05e818f.zip
Added the chr_get_level script function.
Reviewed-by: Ablu.
-rw-r--r--example/serverdata/scripts/maps/desert.lua1
-rw-r--r--src/scripting/lua.cpp18
2 files changed, 19 insertions, 0 deletions
diff --git a/example/serverdata/scripts/maps/desert.lua b/example/serverdata/scripts/maps/desert.lua
index 57b4533..54c219d 100644
--- a/example/serverdata/scripts/maps/desert.lua
+++ b/example/serverdata/scripts/maps/desert.lua
@@ -56,6 +56,7 @@ function Harmony(npc, ch, list)
mana.chr_money_change(ch, 100)
do_message(npc, ch, string.format("You now have %d shiny coins!", mana.chr_money(ch)))
harmony_have_talked_to_someone = true
+ do_message(npc, ch, string.format("Try to come back with a better level than %i.", mana.chr_get_level(ch)))
end
do_message(npc, ch, "Have fun!")
mana.effect_create(EMOTE_HAPPY, npc)
diff --git a/src/scripting/lua.cpp b/src/scripting/lua.cpp
index 5f31648..fb71a2a 100644
--- a/src/scripting/lua.cpp
+++ b/src/scripting/lua.cpp
@@ -476,6 +476,23 @@ static int chr_inv_count(lua_State *s)
}
/**
+ * mana.chr_get_level(): int level
+ * Tells the character current level.
+ */
+static int chr_get_level(lua_State *s)
+{
+ Character *ch = getCharacter(s, 1);
+ if (!ch)
+ {
+ raiseScriptError(s, "chr_get_level "
+ "called for nonexistent character.");
+ }
+
+ lua_pushinteger(s, ch->getLevel());
+ return 1;
+}
+
+/**
* mana.npc_trade(NPC*, Character*, bool sell, table items): int
* Callback for trading between a player and an NPC.
* Let the player buy or sell only a subset of predeterminded items.
@@ -2302,6 +2319,7 @@ LuaScript::LuaScript():
{ "chr_warp", &chr_warp },
{ "chr_inv_change", &chr_inv_change },
{ "chr_inv_count", &chr_inv_count },
+ { "chr_get_level", &chr_get_level },
{ "chr_get_quest", &chr_get_quest },
{ "chr_set_quest", &chr_set_quest },
{ "getvar_map", &getvar_map },