diff options
-rw-r--r-- | example/serverdata/scripts/npcs/banker.lua | 8 | ||||
-rw-r--r-- | scripts/lua/libmana-constants.lua | 3 | ||||
-rw-r--r-- | src/scripting/lua.cpp | 17 |
3 files changed, 27 insertions, 1 deletions
diff --git a/example/serverdata/scripts/npcs/banker.lua b/example/serverdata/scripts/npcs/banker.lua index 79d6af6d..bd11ba55 100644 --- a/example/serverdata/scripts/npcs/banker.lua +++ b/example/serverdata/scripts/npcs/banker.lua @@ -11,7 +11,13 @@ ---------------------------------------------------------------------------------- function Banker(npc, ch) - do_message(npc, ch, "Welcome to the bank!") + if mana.chr_get_gender(ch) == GENDER_MALE then + do_message(npc, ch, "Welcome to the bank, sir!") + elseif mana.chr_get_gender(ch) == GENDER_FEMALE then + do_message(npc, ch, "Welcome to the bank, madam!") + else + do_message(npc, ch, "Welcome to the bank... uhm... person of unspecified gender!") + end local account = tonumber(get_quest_var(ch, "BankAccount")) local result = -1 do_wait() diff --git a/scripts/lua/libmana-constants.lua b/scripts/lua/libmana-constants.lua index 227b93fb..f2140125 100644 --- a/scripts/lua/libmana-constants.lua +++ b/scripts/lua/libmana-constants.lua @@ -101,3 +101,6 @@ EMOTE_UPSET = 10010; EMOTE_PERTURBED = 10011; EMOTE_SPEECH = 10012; EMOTE_BLAH = 10013; + +GENDER_MALE = 0; +GENDER_FEMALE = 1; diff --git a/src/scripting/lua.cpp b/src/scripting/lua.cpp index 3a615412..92835048 100644 --- a/src/scripting/lua.cpp +++ b/src/scripting/lua.cpp @@ -1367,6 +1367,22 @@ static int chr_get_kill_count(lua_State *s) return 1; } +/** + * Get the gender of the character + * mana.chr_get_gender (character) + */ +static int chr_get_gender(lua_State *s) +{ + Character *c = getCharacter(s, 1); + if (!c) + { + raiseScriptError(s, "chr_get_gender called for nonexistent character."); + return 0; + } + + lua_pushinteger(s, c->getGender()); + return 1; +} /** * Enables a special for a character @@ -1608,6 +1624,7 @@ LuaScript::LuaScript(): { "chr_set_hair_color", &chr_set_hair_color }, { "chr_get_hair_color", &chr_get_hair_color }, { "chr_get_kill_count", &chr_get_kill_count }, + { "chr_get_gender", &chr_get_gender }, { "chr_give_special", &chr_give_special }, { "chr_has_special", &chr_has_special }, { "chr_take_special", &chr_take_special }, |