summaryrefslogtreecommitdiff
path: root/src/scripting
diff options
context:
space:
mode:
authorYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-01-31 02:02:43 +0100
committerYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-01-31 02:02:43 +0100
commitb2209cbe93aa12dcd4e4e3b9a7cd8b13ed5713e9 (patch)
tree7375b0a214fa1e0c4523c49b0806417208b371c3 /src/scripting
parent4bae401f089c39371bc1c89d45aafae24b9402fe (diff)
downloadmanaserv-b2209cbe93aa12dcd4e4e3b9a7cd8b13ed5713e9.tar.gz
manaserv-b2209cbe93aa12dcd4e4e3b9a7cd8b13ed5713e9.tar.bz2
manaserv-b2209cbe93aa12dcd4e4e3b9a7cd8b13ed5713e9.tar.xz
manaserv-b2209cbe93aa12dcd4e4e3b9a7cd8b13ed5713e9.zip
Fixed the money handling.
- At character's attributes recalculation when necessary. - In the lua scripting functions.
Diffstat (limited to 'src/scripting')
-rw-r--r--src/scripting/lua.cpp29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/scripting/lua.cpp b/src/scripting/lua.cpp
index 3a615412..57146cb9 100644
--- a/src/scripting/lua.cpp
+++ b/src/scripting/lua.cpp
@@ -370,8 +370,14 @@ static int chr_inv_change(lua_State *s)
int id = lua_tointeger(s, i * 2 + 2);
int nb = lua_tointeger(s, i * 2 + 3);
- if (id == 0)
- LOG_WARN("chr_inv_change: id 0! Currency is now handled through attributes!");
+ if (id == 0) // Id 0 = Change money amount.
+ {
+ double money = q->getModifiedAttribute(ATTR_MONEY);
+ money += nb;
+ q->setAttribute(ATTR_MONEY, money);
+ lua_pushboolean(s, 1);
+ return 1;
+ }
else if (nb < 0)
{
nb = inv.remove(id, -nb);
@@ -421,8 +427,23 @@ static int chr_inv_count(lua_State *s)
Inventory inv(q);
for (int i = 2; i <= nb_items + 1; ++i)
{
- int nb = inv.count(luaL_checkint(s, i));
- lua_pushinteger(s, nb);
+ int id = luaL_checkint(s, i);
+
+ // Id 0 = Money - get it through attributes
+ if (id == 0)
+ {
+ int money = (int) q->getAttribute(ATTR_MONEY);
+
+ if (money < 0)
+ money = 0;
+ lua_pushinteger(s, money);
+ }
+ else
+ {
+ // Otherwise, return the normal count result
+ int nb = inv.count(id);
+ lua_pushinteger(s, nb);
+ }
}
return nb_items;
}