diff options
author | shennetsind <ind@henn.et> | 2013-02-21 00:06:21 -0300 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-02-21 00:06:21 -0300 |
commit | b38c660172dacf14cca0e5bac6ebcfbf508727e1 (patch) | |
tree | c6bcfe6f0ee63787e61e533ffa9ca72a8e29bb6d /src/map | |
parent | 06883a7c4de8ca34e5fa7ce9d64e1c78838ff4ad (diff) | |
download | hercules-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')
-rw-r--r-- | src/map/pc.c | 15 |
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++ ) |