summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt6
-rw-r--r--conf-tmpl/login_athena.conf2
-rw-r--r--src/common/utils.c1
-rw-r--r--src/map/npc.c5
-rw-r--r--src/map/status.c7
5 files changed, 18 insertions, 3 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 7741dd557..a1335aea9 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -3,6 +3,12 @@ Date Added
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
+2006/12/15
+ * 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.
2006/12/14
* Removed "mobs being enemies of each other all the time" because, even
though mobs can hit each other as they should, they will refuse to use
diff --git a/conf-tmpl/login_athena.conf b/conf-tmpl/login_athena.conf
index 970bdd347..7a30fd9bf 100644
--- a/conf-tmpl/login_athena.conf
+++ b/conf-tmpl/login_athena.conf
@@ -27,7 +27,7 @@ login_port: 6900
//a file, the ansi sequences are printed out.
//If set to no the console is colorless and, if redirected, will skip the ansi
//sequences.
-//NOTE: this setting applyes for both stdout and stderr
+//NOTE: this setting applies for both stdout and stderr
stdout_with_ansisequence: yes
//Makes server output more silent by ommitting certain types of messages:
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;