Jump to content
  • 0

[Skills] Editing / Combining Skills


Question

9 answers to this question

Recommended Posts

Posted
In src/map/skill.c

 

Find

case SM_BASH:
if( sd && skill_lv > 5 && pc_checkskill(sd,SM_FATALBLOW)>0 ){
//BaseChance gets multiplied with BaseLevel/50.0; 500/50 simplifies to 10 [Playtester]
status_change_start(src,bl,SC_STUN,(skill_lv-5)*sd->status.base_level*10,
skill_lv,0,0,0,skill_get_time2(SM_FATALBLOW,skill_lv),0);
}
break;

 

 

Add before break;

 

For Pierce
skill_castend_damage_id(src, bl, KN_PIERCE, 10, tick, 1);

 

For Sonic blow

skill_castend_damage_id(src, bl, AS_SONICBLOW, 10, tick, 1);

 

Backup and recompile.

  • Upvote 1
Posted

Hi,

 

Just to extend to this, I want to learn to edit some of the parameters in the skill, how do we add damage with condition?

 

For example, I want to make Bash hits with 100% more damage if the target's HP is lower than 25%. 

 

I understand that I have to put an if-condition (tstatus-> hp > tstatus->max_hp*3/4) but not sure how to add damage.

 

Thanks,

Shade

Posted

 

In src/map/skill.c
 
Find
case SM_BASH:
if( sd && skill_lv > 5 && pc_checkskill(sd,SM_FATALBLOW)>0 ){
//BaseChance gets multiplied with BaseLevel/50.0; 500/50 simplifies to 10 [Playtester]
status_change_start(src,bl,SC_STUN,(skill_lv-5)*sd->status.base_level*10,
skill_lv,0,0,0,skill_get_time2(SM_FATALBLOW,skill_lv),0);
}
break;
 
 
Add before break;
 
For Pierce
skill_castend_damage_id(src, bl, KN_PIERCE, 10, tick, 1);
 
For Sonic blow
skill_castend_damage_id(src, bl, AS_SONICBLOW, 10, tick, 1);
 
Backup and recompile.

 

Hi sandbox how can i trigger let say the skill of RK the Sonic Wave when it reached and damages the target it will auto cast npc_earthquake on the target which damages the area not on the caster of sonic wave

Posted

put the call in skill_additional_effect()

That mean the skill have reached his target and done some dmg

Hi Lighta thanks how it is supposed to be done in src?

like this?

skill_additional_effec(src, bl, NPC_EARTHQUAKE?, 10, tick, 1);

Posted

na, the skill you wanted to have a something else after is RK_SONICWAVE right ?

so go in skill_additional_effect

then add :

case RK_SONICWAVE:
....
break;

You can put this after

case RL_QD_SHOT:
        status_change_end(bl,SC_C_MARKER,INVALID_TIMER);
        if (sc->data[SC_QD_SHOT_READY])
            status_change_end(bl,SC_QD_SHOT_READY,INVALID_TIMER);
        break;

for exemple.

 

now ... mean whatever code you want to be executed after RK_SONICWAVE is done and have dealt some dammage, in your case you want to autocast something so just put

skill_castend_damage_id(src, bl, NPC_EARTHQUAKE, skill_get_max(NPC_EARTHQUAKE), tick, 1);

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...