diff options
-rw-r--r-- | Changelog.txt | 1 | ||||
-rw-r--r-- | src/char_sql/char.c | 6 | ||||
-rw-r--r-- | src/map/storage.c | 3 |
3 files changed, 9 insertions, 1 deletions
diff --git a/Changelog.txt b/Changelog.txt index cfac00c19..34c0c4019 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,6 +1,7 @@ Date Added 12/20 + * Fixed a crash in char.c with new chars [MouseJstr] * Updated npcs_list.txt [Ajarn] * If last_pos.x or .y == 0, set to start point [MouseJstr] * Fixed map loading. If a map was not found, it would remove the next map in the list [Ajarn] diff --git a/src/char_sql/char.c b/src/char_sql/char.c index 6b14b9192..47dba6f85 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -329,6 +329,12 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus *p){ cp = numdb_search(char_db_,char_id); + if (cp == NULL) { + cp = (struct mmo_charstatus *) malloc(sizeof(struct mmo_charstatus)); + memset(cp, 0, sizeof(struct mmo_charstatus)); + numdb_insert(char_db_, char_id,cp); + } + save_flag = p->char_id; printf("(\033[1;32m%d\033[0m) %s \trequest save char data - ",char_id,char_dat[0].name); diff --git a/src/map/storage.c b/src/map/storage.c index 9c960f6d1..abc0a56e9 100644 --- a/src/map/storage.c +++ b/src/map/storage.c @@ -134,6 +134,8 @@ int storage_additem(struct map_session_data *sd,struct storage *stor,struct item nullpo_retr(1, stor); nullpo_retr(1, item_data); + stor->dirty = 1; + if(item_data->nameid <= 0 || amount <= 0) return 1; nullpo_retr(1, data = itemdb_search(item_data->nameid)); @@ -172,7 +174,6 @@ int storage_additem(struct map_session_data *sd,struct storage *stor,struct item return 1; } - stor->dirty = 1; return 0; } /*========================================== |