summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Sehmisch <mana@crushnet.org>2011-02-08 18:15:08 +0100
committerPhilipp Sehmisch <mana@crushnet.org>2011-02-08 18:15:08 +0100
commita36fd4479a22281ea6e9d03e434d5dc6768f6c5a (patch)
treecd0a0d19703f155f372283e11bd99366097aacd0
parent19d140fb6989ada459b0a71ec3bf5647ff93bec2 (diff)
downloadmanaserv-a36fd4479a22281ea6e9d03e434d5dc6768f6c5a.tar.gz
manaserv-a36fd4479a22281ea6e9d03e434d5dc6768f6c5a.tar.bz2
manaserv-a36fd4479a22281ea6e9d03e434d5dc6768f6c5a.tar.xz
manaserv-a36fd4479a22281ea6e9d03e434d5dc6768f6c5a.zip
Implemented LUA binding to get the gender of a character
The function is named mana.chr_get_gender. It returns 0 for male and 1 for female. libmana-constants.lua defines the variables GENDER_MALE and GENDER_FEMALE with these values. Also made the banker NPC refer to the gender of the player character. Reviewed-by: Jaxad0127
-rw-r--r--example/serverdata/scripts/npcs/banker.lua8
-rw-r--r--scripts/lua/libmana-constants.lua3
-rw-r--r--src/scripting/lua.cpp17
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 },