summaryrefslogtreecommitdiff
path: root/src/map/pc.c
diff options
context:
space:
mode:
authorshennetsind <ind@henn.et>2013-02-21 00:06:21 -0300
committershennetsind <ind@henn.et>2013-02-21 00:06:21 -0300
commitb38c660172dacf14cca0e5bac6ebcfbf508727e1 (patch)
treec6bcfe6f0ee63787e61e533ffa9ca72a8e29bb6d /src/map/pc.c
parent06883a7c4de8ca34e5fa7ce9d64e1c78838ff4ad (diff)
downloadhercules-b38c660172dacf14cca0e5bac6ebcfbf508727e1.tar.gz
hercules-b38c660172dacf14cca0e5bac6ebcfbf508727e1.tar.bz2
hercules-b38c660172dacf14cca0e5bac6ebcfbf508727e1.tar.xz
hercules-b38c660172dacf14cca0e5bac6ebcfbf508727e1.zip
Fixed Trick Dead not being removed on job change
Special Thanks to jTynne for reporting & elaborating. Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src/map/pc.c')
-rw-r--r--src/map/pc.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index f601d851b..6078283e7 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -1288,10 +1288,21 @@ int pc_calc_skilltree(struct map_session_data *sd)
}
c = pc_class2idx(c);
- for( i = 0; i < MAX_SKILL; i++ )
- {
+ for( i = 0; i < MAX_SKILL; i++ ) {
if( sd->status.skill[i].flag != SKILL_FLAG_PLAGIARIZED && sd->status.skill[i].flag != SKILL_FLAG_PERM_GRANTED ) //Don't touch these
sd->status.skill[i].id = 0; //First clear skills.
+ /* permanent skills that must be re-checked */
+ if( sd->status.skill[i].flag == SKILL_FLAG_PERM_GRANTED ) {
+ switch( i ) {
+ case NV_TRICKDEAD:
+ if( (sd->class_&MAPID_UPPERMASK) != MAPID_NOVICE ) {
+ sd->status.skill[i].id = 0;
+ sd->status.skill[i].lv = 0;
+ sd->status.skill[i].flag = 0;
+ }
+ break;
+ }
+ }
}
for( i = 0; i < MAX_SKILL; i++ )