summaryrefslogtreecommitdiff
path: root/src/map/pc.c
diff options
context:
space:
mode:
authorgumi <mekolat@users.noreply.github.com>2017-04-25 20:40:37 -0400
committergumi <mekolat@users.noreply.github.com>2017-04-25 20:45:09 -0400
commitaa1c480aa0140098ae32958bbf165c2829d2f9bf (patch)
tree814d993ece009989af083bb95759e74331753b65 /src/map/pc.c
parentc7a6a1eeb552fcc48f3937cea044cd5f658c262c (diff)
downloadhercules-aa1c480aa0140098ae32958bbf165c2829d2f9bf.tar.gz
hercules-aa1c480aa0140098ae32958bbf165c2829d2f9bf.tar.bz2
hercules-aa1c480aa0140098ae32958bbf165c2829d2f9bf.tar.xz
hercules-aa1c480aa0140098ae32958bbf165c2829d2f9bf.zip
expose bank vault to the script engine
Diffstat (limited to 'src/map/pc.c')
-rw-r--r--src/map/pc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index 582abf71c..156e07dee 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -8141,6 +8141,7 @@ int pc_readparam(const struct map_session_data *sd, int type)
case SP_SKILLPOINT: val = sd->status.skill_point; break;
case SP_STATUSPOINT: val = sd->status.status_point; break;
case SP_ZENY: val = sd->status.zeny; break;
+ case SP_BANKVAULT: val = sd->status.bank_vault; break;
case SP_BASELEVEL: val = sd->status.base_level; break;
case SP_JOBLEVEL: val = sd->status.job_level; break;
case SP_CLASS: val = sd->status.class; break;
@@ -8285,6 +8286,7 @@ int pc_readparam(const struct map_session_data *sd, int type)
*------------------------------------------*/
int pc_setparam(struct map_session_data *sd,int type,int val)
{
+ int delta;
nullpo_ret(sd);
switch(type){
@@ -8335,6 +8337,19 @@ int pc_setparam(struct map_session_data *sd,int type,int val)
logs->zeny(sd, LOG_TYPE_SCRIPT, sd, -(sd->status.zeny - cap_value(val, 0, MAX_ZENY)));
sd->status.zeny = cap_value(val, 0, MAX_ZENY);
break;
+ case SP_BANKVAULT:
+ val = cap_value(val, 0, MAX_BANK_ZENY);
+ delta = (val - sd->status.bank_vault);
+ sd->status.bank_vault = val;
+ if (map->save_settings & 256) {
+ chrif->save(sd, 0); // send to char server
+ }
+ if (delta > 0) {
+ clif->bank_deposit(sd, BDA_SUCCESS);
+ } else if (delta < 0) {
+ clif->bank_withdraw(sd, BWA_SUCCESS);
+ }
+ return 1; // the vault uses a different packet
case SP_BASEEXP:
if(pc->nextbaseexp(sd) > 0) {
sd->status.base_exp = val;