diff --git a/Changelog.txt b/Changelog.txt index bc3e0efda0..28ded90b39 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,6 @@ Date Added 12/23 + * Fixed skills still being available after a job change [MouseJstr] * Changed pc_alive_timer to use map_id2sd - should be more accurate [celest] * Added jA 1084's fix to mob.c - check whether the player is still alive when calculating exp [celest] diff --git a/Dev/bugs.txt b/Dev/bugs.txt index c5aad53d90..68041985b4 100644 --- a/Dev/bugs.txt +++ b/Dev/bugs.txt @@ -134,11 +134,15 @@ Progress: - Notes: It works differently now, you have to use it once to *allow* it to activate, and once again to stop it from activating. ^^; [Celest] -Problem: When you change JOB, you don't lose skills in DB. It means if you were Merchant once +Problem: When you change JOB, you don't lose skills in DB. It + means if you were Merchant once you can buy/sell with discount being Mage, etc. - Those skills aren't being shown in the skilltree, but they do work. -Assigned: N/A -Progress: 0% + Those skills aren't being shown in the skilltree, but + they do work. + (fixed) + +Assigned: MouseJstr +Progress: 100% Problem: Due to the Guilds CACHE we see some went-offline members as online ones. It is very confusing. You don't know who's really on. Assigned: N/A diff --git a/src/char_sql/char.c b/src/char_sql/char.c index b390b2c828..f637e06839 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -543,12 +543,16 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus *p){ } diff = 0; - for(i=0;iskill[i].id != cp->skill[i].id) || (p->skill[i].lv != cp->skill[i].lv) || - (p->skill[i].flag != cp->skill[i].flag)) { - diff = 1; - break; - } + for(i=0;iskill[i].id = i; + + if((p->skill[i].id != cp->skill[i].id) || (p->skill[i].lv != cp->skill[i].lv) || + (p->skill[i].flag != cp->skill[i].flag)) { + diff = 1; + break; + } + } if (diff) { //printf("- Save skill data to MySQL!\n"); diff --git a/src/map/pc.c b/src/map/pc.c index 151ec47a3c..aab6e406b8 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -416,8 +416,7 @@ int pc_makesavestatus(struct map_session_data *sd) sd->status.skill[i].id=0; sd->status.skill[i].lv=0; sd->status.skill[i].flag=0; - } else if ((sd->status.skill[i].lv != 0) && (sd->status.skill[i].id == 0)) - sd->status.skill[i].id = i; + } } return 0;