diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-08-02 21:14:38 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-08-02 21:14:38 +0000 |
commit | ac0261e807d352714ddf77be4351c037e0ed98a0 (patch) | |
tree | b7e29eeef47d4b16754eb5f2e4f42cdadc9c8751 | |
parent | d2dad92cd1c4f7cb560c5920421760be901cc9f7 (diff) | |
download | hercules-ac0261e807d352714ddf77be4351c037e0ed98a0.tar.gz hercules-ac0261e807d352714ddf77be4351c037e0ed98a0.tar.bz2 hercules-ac0261e807d352714ddf77be4351c037e0ed98a0.tar.xz hercules-ac0261e807d352714ddf77be4351c037e0ed98a0.zip |
- Rewrote pc_payzeny to not use doubles, it may more accurately prevent charging a player more zeny than they can withhold.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8072 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | src/map/pc.c | 11 | ||||
-rw-r--r-- | src/map/unit.c | 5 |
3 files changed, 11 insertions, 7 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 13f1dd811..63012b0c7 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/08/02
+ * Rewrote pc_payzeny to not use doubles, it may more accurately prevent
+ charging a player more zeny than they can withhold. [Skotlex]
* Fixed failing to create Deadly Poison Bottles damaging 50% of your max
life instead of 25% [Skotlex]
* Added the missing status-change flags to SC_FREEZE to signal it should
diff --git a/src/map/pc.c b/src/map/pc.c index b312c796f..674b63973 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -2516,16 +2516,17 @@ int pc_inventoryblank(struct map_session_data *sd) */ int pc_payzeny(struct map_session_data *sd,int zeny) { - double z; - nullpo_retr(0, sd); if(sd->state.finalsave) return 1; - z = (double)sd->status.zeny; - if(sd->status.zeny<zeny || z - (double)zeny > MAX_ZENY) - return 1; + if (zeny > 0 && sd->status.zeny < zeny) + return 1; //Not enough. + + if (zeny < 0 && sd->status.zeny > MAX_ZENY +zeny) + return 1; //Overflow + sd->status.zeny-=zeny; clif_updatestatus(sd,SP_ZENY); diff --git a/src/map/unit.c b/src/map/unit.c index e35a8005c..a230881fa 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -1724,9 +1724,10 @@ int unit_free(struct block_list *bl) { } } else if(bl->type == BL_MOB) { struct mob_data *md = (struct mob_data*)bl; - if(md->deletetimer!=-1) + if(md->deletetimer!=-1) { delete_timer(md->deletetimer,mob_timer_delete); - md->deletetimer=-1; + md->deletetimer=-1; + } if(md->lootitem) { aFree(md->lootitem); md->lootitem=NULL; |