Jump to content
  • 0
Sign in to follow this  
Pandaaa

Lord Knight [SL Modification]

Question

A soul link modification for parrying skill of Lord Knight

 

heres the line

 

SKILL.C(Original)

if( require.weapon && !pc_check_weapontype(sd,require.weapon) ) {        
clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);
        return 0;
    }
 

 to

SKILL.C(Mod for Parrying)

if( require.weapon && !pc_check_weapontype(sd,require.weapon) && skill_id == LK_PARRYING && !sd->sc.data[SC_SOULLINK] && !pc_check_weapontype(sd,2)) {
        clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);
        return 0;
    }
 
 

after compiling this parrying with one hand sword (soul linked) is working but the other jobs skills are freely used without any weapon requirements (like Sonic Blow that need katar to use but i can use without any weapon).... revierting to the original skill.c backs to normal that requires weapons on specific skills

 

HELP ANYONE?  :(

 

Share this post


Link to post
Share on other sites

10 answers to this question

Recommended Posts

  • 0

well yeah, you forced it to only work when the skill is == parrying. you have to isolate the parry condition from the rest

 

if( require.weapon && !pc_check_weapontype(sd,require.weapon)) {

if( skill_id == LK_PARRYING && sd->sc.data[SC_SOULLINK]) {
        return 0;

    }

else {

clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);

        return 0;

}

}

Share this post


Link to post
Share on other sites
  • 0

 

well yeah, you forced it to only work when the skill is == parrying. you have to isolate the parry condition from the rest

 

if( require.weapon && !pc_check_weapontype(sd,require.weapon)) {

if( skill_id == LK_PARRYING && sd->sc.data[SC_SOULLINK]) {

        return 0;

    }

else {

clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);

        return 0;

}

}

Tried this thing it works but Parrying Skill doesn't respond when pressing/clicking with soul link.

Share this post


Link to post
Share on other sites
  • 0

oh right. that one made it so the case we needed to pass was gatekeepered

 

 

if( skill_id != LK_PARRYING && require.weapon && !pc_check_weapontype(sd,require.weapon)) {

clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);

        return 0;

}

if( skill_id == LK_PARRYING && !sd->sc.data[SC_SOULLINK] && require.weapon && !pc_check_weapontype(sd,require.weapon)) {

clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);

        return 0;

}

ifskill_id == LK_PARRYING && sd->sc.data[SC_SOULLINK]) {

        return 0;

    }

Edited by Blinzer

Share this post


Link to post
Share on other sites
  • 0

oh right. that one made it so the case we needed to pass was gatekeepered

 

 

if( skill_id != LK_PARRYING && require.weapon && !pc_check_weapontype(sd,require.weapon)) {

clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);

        return 0;

}

if( skill_id == LK_PARRYING && !sd->sc.data[SC_SOULLINK] && require.weapon && !pc_check_weapontype(sd,require.weapon)) {

clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);

        return 0;

}

ifskill_id == LK_PARRYING && sd->sc.data[SC_SOULLINK]) {

        return 0;

    }

same  :(

Share this post


Link to post
Share on other sites
  • 0

Find in skill.c

int skill_check_condition_castend(struct map_session_data* sd, uint16 skill_id, uint16 skill_lv)

insert after

int index[MAX_SKILL_ITEM_REQUIRE];

this

struct status_change *sc = &sd->sc;

find in skill.c

if( require.weapon && !pc_check_weapontype(sd,require.weapon) ) {
		clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);
		return 0;
	}

change to

if( require.weapon && !(pc_check_weapontype(sd,require.weapon) ||
		(skill_id == LK_PARRYING && sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_KNIGHT && sd->weapontype == W_1HSWORD))) {
 		clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);
 		return 0;
 	}

Find again in skill.c

if( require.weapon && !pc_check_weapontype(sd,require.weapon) ) {
		clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);
		return 0;
	}

change to

if( require.weapon && !(pc_check_weapontype(sd,require.weapon) ||
		(skill_id == LK_PARRYING && sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_KNIGHT && sd->weapontype == W_1HSWORD))) {
 		clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);
 		return 0;
 	}

recompile.

Edited by Rebel
forgot to add sc

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.