summaryrefslogtreecommitdiff
path: root/src/map/charsave.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/charsave.c')
-rw-r--r--src/map/charsave.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/map/charsave.c b/src/map/charsave.c
index 0c55164cb..1be249e5a 100644
--- a/src/map/charsave.c
+++ b/src/map/charsave.c
@@ -24,6 +24,7 @@ struct mmo_charstatus *charsave_loadchar(int charid){
int i,j, friends;
struct mmo_charstatus *c;
char *str_p;
+ double exp;
friends = 0;
c = (struct mmo_charstatus *)aCalloc(1,sizeof(struct mmo_charstatus));
@@ -62,8 +63,10 @@ struct mmo_charstatus *charsave_loadchar(int charid){
c->class_ = atoi(charsql_row[4]);
c->base_level = atoi(charsql_row[5]);
c->job_level = atoi(charsql_row[6]);
- c->base_exp = atoi(charsql_row[7]);
- c->job_exp = atoi(charsql_row[8]);
+ exp = atof(charsql_row[7]);
+ c->base_exp = (unsigned int)cap_value(exp,0,UINT_MAX);
+ exp = atof(charsql_row[8]);
+ c->job_exp = (unsigned int)cap_value(exp,0,UINT_MAX);
c->zeny = atoi(charsql_row[9]);
c->str = atoi(charsql_row[10]);
c->agi = atoi(charsql_row[11]);
@@ -276,7 +279,7 @@ int charsave_savechar(int charid, struct mmo_charstatus *c){
// char tmp_str2[512];
//First save the 'char'
sprintf(tmp_sql ,"UPDATE `char` SET `class`='%d', `base_level`='%d', `job_level`='%d',"
- "`base_exp`='%d', `job_exp`='%d', `zeny`='%d',"
+ "`base_exp`='%u', `job_exp`='%u', `zeny`='%d',"
"`max_hp`='%d',`hp`='%d',`max_sp`='%d',`sp`='%d',`status_point`='%d',`skill_point`='%d',"
"`str`='%d',`agi`='%d',`vit`='%d',`int`='%d',`dex`='%d',`luk`='%d',"
"`option`='%d',`karma`='%d',`manner`='%d',`party_id`='%d',`guild_id`='%d',`pet_id`='%d',"