summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog.txt1
-rw-r--r--Dev/bugs.txt12
-rw-r--r--src/char_sql/char.c16
-rw-r--r--src/map/pc.c3
4 files changed, 20 insertions, 12 deletions
diff --git a/Changelog.txt b/Changelog.txt
index bc3e0efda..28ded90b3 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 c5aad53d9..68041985b 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 b390b2c82..f637e0683 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;i<MAX_SKILL;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;
- }
+ for(i=0;i<MAX_SKILL;i++) {
+ if ((p.skill[i].lv != 0) && (p.skill[i].id == 0))
+ p->skill[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 151ec47a3..aab6e406b 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;