diff options
author | gumi <mekolat@users.noreply.github.com> | 2017-04-25 20:40:37 -0400 |
---|---|---|
committer | gumi <mekolat@users.noreply.github.com> | 2017-04-25 20:45:09 -0400 |
commit | aa1c480aa0140098ae32958bbf165c2829d2f9bf (patch) | |
tree | 814d993ece009989af083bb95759e74331753b65 /src/map/pc.c | |
parent | c7a6a1eeb552fcc48f3937cea044cd5f658c262c (diff) | |
download | hercules-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.c | 15 |
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; |