From 1afba34aaf6c3379208b61b111cd6e182f35443a Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Wed, 28 Sep 2011 22:58:09 +0200 Subject: Added the chr_set_gender() script function. Reviewed-by: Ablu. --- src/scripting/lua.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/scripting/lua.cpp') diff --git a/src/scripting/lua.cpp b/src/scripting/lua.cpp index a322a3f9..5f316488 100644 --- a/src/scripting/lua.cpp +++ b/src/scripting/lua.cpp @@ -1805,6 +1805,25 @@ static int chr_get_gender(lua_State *s) return 1; } +/** + * mana.chr_set_gender(Character*, int gender): void + * Set the gender of the character. + */ +static int chr_set_gender(lua_State *s) +{ + Character *c = getCharacter(s, 1); + if (!c) + { + raiseScriptError(s, "chr_set_gender called for nonexistent character."); + return 0; + } + + const int gender = luaL_checkinteger(s, 2); + c->setGender(gender); + + return 0; +} + /** * mana.chr_give_special(Character*, int special): void * Enables a special for a character. @@ -2299,6 +2318,7 @@ LuaScript::LuaScript(): { "chr_get_hair_color", &chr_get_hair_color }, { "chr_get_kill_count", &chr_get_kill_count }, { "chr_get_gender", &chr_get_gender }, + { "chr_set_gender", &chr_set_gender }, { "chr_give_special", &chr_give_special }, { "chr_has_special", &chr_has_special }, { "chr_take_special", &chr_take_special }, -- cgit v1.2.3-70-g09d2 From 22afb99c7977176474f81546bca6b114b05e818f Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Wed, 28 Sep 2011 22:39:00 +0200 Subject: Added the chr_get_level script function. Reviewed-by: Ablu. --- example/serverdata/scripts/maps/desert.lua | 1 + src/scripting/lua.cpp | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) (limited to 'src/scripting/lua.cpp') diff --git a/example/serverdata/scripts/maps/desert.lua b/example/serverdata/scripts/maps/desert.lua index 57b4533d..54c219d9 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 5f316488..fb71a2a0 100644 --- a/src/scripting/lua.cpp +++ b/src/scripting/lua.cpp @@ -475,6 +475,23 @@ static int chr_inv_count(lua_State *s) return nb_items; } +/** + * 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. @@ -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 }, -- cgit v1.2.3-70-g09d2 From 680ff9e09be0f5192fbd1c1166b25fe99f4c2d74 Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Sat, 22 Oct 2011 21:17:26 +0200 Subject: Fixed the get_level doxygen documentation. Thanks to Ablu. --- src/scripting/lua.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/scripting/lua.cpp') diff --git a/src/scripting/lua.cpp b/src/scripting/lua.cpp index fb71a2a0..77cfd339 100644 --- a/src/scripting/lua.cpp +++ b/src/scripting/lua.cpp @@ -476,7 +476,7 @@ static int chr_inv_count(lua_State *s) } /** - * mana.chr_get_level(): int level + * mana.chr_get_level(Character*): int level * Tells the character current level. */ static int chr_get_level(lua_State *s) -- cgit v1.2.3-70-g09d2