Jump to content
  • 0

soul linked LK and Sniper help.


true221

Question


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  20
  • Reputation:   0
  • Joined:  10/11/12
  • Last Seen:  

1.) I like to make Soul link for knights able to parry even when using one hand sword but has a lower block chance and all skill delay will be reduced by 90%.

*Block chance of 3*SkillLV% for one-hand sword parry.

2.) how to make snipers, who are soul linked, able to autocast falcon assault depending on the level learned while attacking?

3.) also, i want to make edp level 4-5 of assassin decrease the atkspd when base atckspd is 197. For example, if I use level 5 edp when my atkspd is 197, it will become 195(196 if edp 4). but when i will use edp level 5 if my atkspd is 196, it will be 197. Thanks!

whoops, wrong section. Just realized when I checked the header. sorry. I'll just post it on source requests. :)

Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 1

  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  134
  • Reputation:   35
  • Joined:  02/27/12
  • Last Seen:  

You can change the value in status.c

It gives 20 * 5 = +100% on lv 5.(200%)

 case SC_MAXOVERTHRUST:
  val2 = 20*val1; //Power increase
  break;

To something like:

 case SC_MAXOVERTHRUST:
  if(sc->data[sC_SPIRIT] && sc->data[sC_SPIRIT]->val2 == SL_BLACKSMITH)
   val2 = 100 + 20 * val1; // 300% on lv 5
  else
   val2 = 20*val1; //Power increase
  break;

  • Upvote 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  39
  • Reputation:   2
  • Joined:  01/17/18
  • Last Seen:  

@MarkZD 

The parry with One Hand it's working fine but when switch items like helm,armor etc the skill goes away

Link to comment
Share on other sites

  • -2

  • Group:  Members
  • Topic Count:  45
  • Topics Per Day:  0.02
  • Content Count:  291
  • Reputation:   26
  • Joined:  12/16/17
  • Last Seen:  

Is this still working on Latest? Thank you! ❤️ 

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  134
  • Reputation:   35
  • Joined:  02/27/12
  • Last Seen:  

1) First add my modification to enable One Hand Parrying when Soul Linked with knight spirit:

http://rathena.org/b...l-modification/

2) Aswer: editing the source.

What would be the chance?

3) See if it's what you want in 3:

If a guy has 197 aspd and use EDP level 5 or 4 it'll reduce.

If he has 196 it'll increase to 197 ONLY when level 5 used?

Just 196 and 197 aspd will be changed?

I don't know if I'll do it anyway.

Edited by MarkZD
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  20
  • Reputation:   0
  • Joined:  10/11/12
  • Last Seen:  

Thanks for the reply sir!

1) so if I want for all skills of LK, I need to add that to all the skills?

(Still failed) But won't this make it still fail even if you are linked??

if( require.weapon && !(pc_check_weapontype(sd,require.weapon)) || (skill == LK_PARRYING && sc->data[sC_SPIRIT] && sc->data[sC_SPIRIT]->val2 == SL_KNIGHT && pc_check_weapontype(sd,W_1HSWORD)) ) {
 clif_skill_fail(sd,skill,USESKILL_FAIL_THIS_WEAPON,0);
 return 0;

edit to this, when I tried to use parry with two hand, the whole server disconnects and the mapserver closes.

2)Chance is 0.3*LUK chance of FA per hit. (independently from blitz beat sir)

3)sorry about the confusing statement for edp. How about this mod?

EDP at level 5 will result in -2 ASPD reduction if base aspd of player is 197

EDP at level 4 will result in -1 ASPD reduction. if (same as above)

EDP at level 3 and below will result in no ASPD reduction.

but if on EDP level 5 and 4, if ASPD is not 197 but 196, aspd will be 197 when you use EDP

Edited by true221
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  134
  • Reputation:   35
  • Joined:  02/27/12
  • Last Seen:  

Thanks for the reply sir!

1) so if I want for all skills of LK, I need to add that to all the skills?

You want reduction for all skills or do you want all skills from LK to work with 1 Hand Sword.

Independent from the case, there's no need to do it with each one, if you want it to work with all, we just have to remove the skill check.

(Still failed) But won't this make it still fail even if you are linked??

if( require.weapon && !(pc_check_weapontype(sd,require.weapon)) || (skill == LK_PARRYING && sc->data[sC_SPIRIT] && sc->data[sC_SPIRIT]->val2 == SL_KNIGHT && pc_check_weapontype(sd,W_1HSWORD)) ) {
 clif_skill_fail(sd,skill,USESKILL_FAIL_THIS_WEAPON,0);
 return 0;

edit to this, when I tried to use parry with two hand, the whole server disconnects and the mapserver closes.

Fixed the other request, tested and working:

http://rathena.org/b...l-modification/

2)Chance is 0.3*LUK chance of FA per hit. (independently from blitz beat sir)

Ok.

3)sorry about the confusing statement for edp. How about this mod?

EDP at level 5 will result in -2 ASPD reduction if base aspd of player is 197

EDP at level 4 will result in -1 ASPD reduction. if (same as above)

EDP at level 3 and below will result in no ASPD reduction.

but if on EDP level 5 and 4, if ASPD is not 197 but 196, aspd will be 197 when you use EDP

Understood.

2) Open src/map/skill.c

Find:

  // Automatic trigger of Blitz Beat
  if (pc_isfalcon(sd) && sd->status.weapon == W_BOW && (skill=pc_checkskill(sd,HT_BLITZBEAT))>0 &&
rnd()%1000 <= sstatus->luk*10/3+1 ) {
rate=(sd->status.job_level+9)/10;
skill_castend_damage_id(src,bl,HT_BLITZBEAT,(skill<rate)?skill:rate,tick,SD_LEVEL);
  }

After Add:

  // Automatic trigger of Falcon Assault, customized source. [MarkZD]
  if (sc && sc->data[sC_SPIRIT] && sc->data[sC_SPIRIT]->val2 == SL_HUNTER && pc_isfalcon(sd) && sd->status.weapon == W_BOW &&
  (skill=pc_checkskill(sd,SN_FALCONASSAULT))>0 &&
   rnd()%1000 <= sstatus->luk*10/3+1 ) {
   skill_castend_damage_id(src,bl,SN_FALCONASSAULT,skill,tick,SD_LEVEL);
  }

Done.

Edited by MarkZD
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  20
  • Reputation:   0
  • Joined:  10/11/12
  • Last Seen:  

about the delay part sir, regardless of weapon on hand. My fault, I should have stated it clearly.

I like to make Soul link for knights to

-also reduce all skill delay by 90%

-able to parry even when using one hand sword but has a lower block chance: *Block chance of 3*SkillLV% for one-hand sword parry.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  134
  • Reputation:   35
  • Joined:  02/27/12
  • Last Seen:  

1)

Open src/map/skill.c

One Hand Parrying

Find:

int skill_check_condition_castend(struct map_session_data* sd, short skill, short lv)
{
struct skill_condition require;
struct status_data *status;
int i;
int index[MAX_SKILL_ITEM_REQUIRE];

After ADD:

struct status_change *sc = &sd->sc;

Find and Replace the two places like that:

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

By this:

if(require.weapon && !(pc_check_weapontype(sd,require.weapon) || (skill == LK_PARRYING && sc && sc->data[sC_SPIRIT] && sc->data[sC_SPIRIT]->val2 == SL_KNIGHT && sd->status.weapon == W_1HSWORD)) ){

Delay reduction

Within function int skill_delayfix (struct block_list *bl, int skill_id, int skill_lv)

Find:

if ( sc && sc->data[sC_SPIRIT] )
{
 switch (skill_id) {
  case CR_SHIELDBOOMERANG:
if (sc->data[sC_SPIRIT]->val2 == SL_CRUSADER)
 time /= 2;
break;
  case AS_SONICBLOW:
if (!map_flag_gvg(bl->m) && !map[bl->m].flag.battleground && sc->data[sC_SPIRIT]->val2 == SL_ASSASIN)
 time /= 2;
break;
 }
}

Replace with:

if ( sc && sc->data[sC_SPIRIT] )
{
 if(sc->data[sC_SPIRIT]->val2 == SL_KNIGHT)
  time /= 10;
 switch (skill_id) {
  case CR_SHIELDBOOMERANG:
if (sc->data[sC_SPIRIT]->val2 == SL_CRUSADER)
 time /= 2;
break;
  case AS_SONICBLOW:
if (!map_flag_gvg(bl->m) && !map[bl->m].flag.battleground && sc->data[sC_SPIRIT]->val2 == SL_ASSASIN)
 time /= 2;
break;
 }
}

Open src/map/status.c

Block chance change:

Find:

 case SC_PARRYING:
  val2 = 20 + val1*3; //Block Chance
  break;

Replace with:

 case SC_PARRYING:
 if(sd && sd->status.weapon == W_1HSWORD)
  val2 = val1 * 3;
 else
  val2 = 20 + val1*3; //Block Chance
  break;

Edited by MarkZD
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  20
  • Reputation:   0
  • Joined:  10/11/12
  • Last Seen:  

cool. I'll try it now and let you know the results then. thanks :D

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  134
  • Reputation:   35
  • Joined:  02/27/12
  • Last Seen:  

Block chance will be edited at status.c, I forgot to add it there, edited the post with the fix.

The edit to Sniper is already some posts above, just to let you know.

Edited by MarkZD
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  20
  • Reputation:   0
  • Joined:  10/11/12
  • Last Seen:  

auto falcon assault and one hand parry is working like a gem. :D

yep. I saw it. thanks again. oh and yeah, if I want the parry effect to greed skill of ws(no need to be soul linked), I'll just copy the code of the parry to the greed skil right?

Edited by true221
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  134
  • Reputation:   35
  • Joined:  02/27/12
  • Last Seen:  

auto falcon assault and one hand parry is working like a gem. :D

yep. I saw it. thanks again. oh and yeah, if I want the parry effect to greed skill of ws(no need to be soul linked), I'll just copy the code of the parry to the greed skil right?

Basicaly so, you just have to take care about the custom edit.

What are you supposed to do with Greed?

If you just want it to work with another weapon, just edit the skill_require_db.txt in your pre/re path, the one you use.

It's the 8º column, you can add more than one weapon using : to separate.

The values for weapons can be found at: doc/item_db.txt

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  20
  • Reputation:   0
  • Joined:  10/11/12
  • Last Seen:  

Well, I want greed to be like parry with block chance of 20%(weapon disregarded, so even if you use mace/axe/sword, you can cast the greed)

Btw sir, is the mod for the edp of sinx possible?,

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  134
  • Reputation:   35
  • Joined:  02/27/12
  • Last Seen:  

Well, I want greed to be like parry with block chance of 20%(weapon disregarded, so even if you use mace/axe/sword, you can cast the greed)

Btw sir, is the mod for the edp of sinx possible?,

The only greed skill I know is this one: http://irowiki.org/wiki/Greed

And it doesn't have anything to do with block chance.

Anything is possible, or almost.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  20
  • Reputation:   0
  • Joined:  10/11/12
  • Last Seen:  

yup, I know about the greed, I just want to modify it, since greed is not really that useful on servers with @autoloot

I know maybe how the logic goes right? Is it on status.c or skill.c? cause that is my problem, starting.

After which, I'll get the base aspd of the user and make an if statement that if edp level is 4 or 5, and aspd is 197, there will be a deduction right? then if aspd is 196, edp level 5 will grant the user aspd 197

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  134
  • Reputation:   35
  • Joined:  02/27/12
  • Last Seen:  

3) EDP changes ASPD

Open src/map/status.c

Find:

set_sc( ASC_EDP			  , SC_EDP			 , SI_EDP			 , SCB_NONE );

Replace with:

set_sc( ASC_EDP			  , SC_EDP			 , SI_EDP			 , SCB_NONE|SCB_ASPD );

Find:

  //@TODO move FIGHTINGSPIRIT in fix_aspd
  if( sc && sc->data[sC_FIGHTINGSPIRIT] && sc->data[sC_FIGHTINGSPIRIT]->val2 )
amotion -= (sd?pc_checkskill(sd, RK_RUNEMASTERY):10) / 10 * 40;
  amotion = status_calc_fix_aspd(bl, sc, amotion);
  status->amotion = cap_value(amotion,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000);

Replace with:

  //@TODO move FIGHTINGSPIRIT in fix_aspd
  if( sc && sc->data[sC_FIGHTINGSPIRIT] && sc->data[sC_FIGHTINGSPIRIT]->val2 )
amotion -= (sd?pc_checkskill(sd, RK_RUNEMASTERY):10) / 10 * 40;
  amotion = status_calc_fix_aspd(bl, sc, amotion);
  if(sc && sc->data[sC_EDP] && sc->data[sC_EDP]->val1 > 3)
  {
   if(status->amotion < 31)//197 aspd
 status->amotion += (sc->data[sC_EDP]->val1 - 3) * 10;
   else if(status->amotion < 41)//196 aspd
 status->amotion = 30;
  }
  status->amotion = cap_value(amotion,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000);

Edited by MarkZD
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  20
  • Reputation:   0
  • Joined:  10/11/12
  • Last Seen:  

I'll try it out later, btw, where do I put this code?

Is it correct?

case WS_OVERTHRUSTMAX: //maximum overthrust
if(sc && sc->data[sC_SPIRIT] &&
sc->data[sC_SPIRIT]->val2 == SL_BLACKSMITH)
ATK_ADDRATE(100);
break;

It's supposed to buff maximum overthrust when soul linked

EDP and overthrust code is working. thanks! /no1

Edited by true221
Link to comment
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.   Paste as plain text instead

  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.

×
×
  • Create New...