summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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;