Skip to content

Commit

Permalink
Fixed some skill checks considering Super Novices the same as Novices
Browse files Browse the repository at this point in the history
- This fixes Super Novices being able to use Trick Dead while they shouldn't.
- Follow-up to 21b13ae
- Special thanks to Mordekaiser, Ind.

Signed-off-by: Haru <haru@dotalux.com>
  • Loading branch information
MishimaHaruna committed Jul 14, 2014
1 parent 8a149e5 commit 92a249f
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/map/pc.c
Expand Up @@ -1391,7 +1391,7 @@ int pc_calc_skilltree(struct map_session_data *sd)
if( sd->status.skill[i].flag == SKILL_FLAG_PERMANENT ) {
switch( skill->db[i].nameid ) {
case NV_TRICKDEAD:
if( (sd->class_&MAPID_BASEMASK) != MAPID_NOVICE ) {
if( (sd->class_&(MAPID_BASEMASK|JOBL_2)) != MAPID_NOVICE ) {
sd->status.skill[i].id = 0;
sd->status.skill[i].lv = 0;
sd->status.skill[i].flag = 0;
Expand Down Expand Up @@ -6656,14 +6656,14 @@ int pc_resetskill(struct map_session_data* sd, int flag)
skill_id = skill->db[i].nameid;

// Don't reset trick dead if not a novice/baby
if( skill_id == NV_TRICKDEAD && (sd->class_&MAPID_BASEMASK) != MAPID_NOVICE ) {
if( skill_id == NV_TRICKDEAD && (sd->class_&(MAPID_BASEMASK|JOBL_2)) != MAPID_NOVICE ) {
sd->status.skill[i].lv = 0;
sd->status.skill[i].flag = 0;
continue;
}

// do not reset basic skill
if( skill_id == NV_BASIC && (sd->class_&MAPID_BASEMASK) != MAPID_NOVICE )
if( skill_id == NV_BASIC && (sd->class_&(MAPID_BASEMASK|JOBL_2)) != MAPID_NOVICE )
continue;

if( sd->status.skill[i].flag == SKILL_FLAG_PERM_GRANTED )
Expand Down Expand Up @@ -10009,7 +10009,7 @@ void pc_read_skill_tree(void) {
if( a == MAX_SKILL_TREE ) {
ShowWarning("pc_read_skill_tree: '%s' can't inherit '%s', skill tree is full!\n", name,iname);
break;
} else if ( pc->skill_tree[idx][a].id || ( pc->skill_tree[idx][a].id == NV_TRICKDEAD && ((pc->jobid2mapid(jnames[k].id)&MAPID_BASEMASK)!=MAPID_NOVICE) ) ) /* we skip trickdead for non-novices */
} else if ( pc->skill_tree[idx][a].id || ( pc->skill_tree[idx][a].id == NV_TRICKDEAD && ((pc->jobid2mapid(jnames[k].id)&(MAPID_BASEMASK|JOBL_2))!=MAPID_NOVICE) ) ) /* we skip trickdead for non-novices */
continue;/* skip */

memcpy(&pc->skill_tree[idx][a],&pc->skill_tree[fidx][f],sizeof(pc->skill_tree[fidx][f]));
Expand Down

0 comments on commit 92a249f

Please sign in to comment.