diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-12-15 18:13:37 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-12-15 18:13:37 +0000 |
commit | a08c2d5709c644507cf034e319e60eeed0ad636a (patch) | |
tree | b922bc1bf52ee40e89e101be2335c6b1408277f5 /src | |
parent | ebbe046a99ed1928e60506fe1a86edc8a396ee54 (diff) | |
download | hercules-a08c2d5709c644507cf034e319e60eeed0ad636a.tar.gz hercules-a08c2d5709c644507cf034e319e60eeed0ad636a.tar.bz2 hercules-a08c2d5709c644507cf034e319e60eeed0ad636a.tar.xz hercules-a08c2d5709c644507cf034e319e60eeed0ad636a.zip |
- There will be now warnings printed when a shop sells an item which's buy price is 20z, since those usually are "rare" items with no buyying price set. Note that this reports one fake, and that is the selling of a certain shuriken that indeed costs 20z.
- Most likely fixed client crash when xmas/wedding status runs out.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9505 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/common/utils.c | 1 | ||||
-rw-r--r-- | src/map/npc.c | 5 | ||||
-rw-r--r-- | src/map/status.c | 7 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/common/utils.c b/src/common/utils.c index 6d4abb26d..25ada1ce5 100644 --- a/src/common/utils.c +++ b/src/common/utils.c @@ -18,6 +18,7 @@ #include "../common/mmo.h" #include "../common/malloc.h" #include "../common/showmsg.h" +#include "../common/cbasetypes.h" void dump(unsigned char *buffer, int num) { diff --git a/src/map/npc.c b/src/map/npc.c index 629d9e94f..7f7e7e669 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -1657,7 +1657,12 @@ static int npc_parse_shop (char *w1, char *w2, char *w3, char *w4) nd->u.shop_item[pos].nameid = nameid; id = itemdb_search(nameid); if (value < 0) + { + if (id->value_buy == 20) + ShowWarning ("Selling item %s [%d] with no buying price (defaults to %d) at %s\n", + id->name, id->nameid, id->value_buy, current_file); value = id->value_buy; + } nd->u.shop_item[pos].value = value; // check for bad prices that can possibly cause exploits if (value/124. < id->value_sell/75.) { //Clened up formula to prevent overflows. diff --git a/src/map/status.c b/src/map/status.c index ea78c57bf..ccb017c08 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -6039,9 +6039,12 @@ int status_change_end( struct block_list* bl , int type,int tid ) case SC_WEDDING: case SC_XMAS: if (!vd) return 0; - if (sd) //Load data from sd->status.* as the stored values could have changed. + if (sd) + { //Load data from sd->status.* as the stored values could have changed. + //Must remove OPTION to prevent class being rechanged. + sc->option &= type==SC_WEDDING?~OPTION_WEDDING:~OPTION_XMAS; status_set_viewdata(bl, sd->status.class_); - else { + } else { vd->class_ = sc->data[type].val1; vd->weapon = sc->data[type].val2; vd->shield = sc->data[type].val3; |