summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-12-15 18:13:37 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-12-15 18:13:37 +0000
commita08c2d5709c644507cf034e319e60eeed0ad636a (patch)
treeb922bc1bf52ee40e89e101be2335c6b1408277f5 /src
parentebbe046a99ed1928e60506fe1a86edc8a396ee54 (diff)
downloadhercules-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.c1
-rw-r--r--src/map/npc.c5
-rw-r--r--src/map/status.c7
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;