Skill Mod

Litro

New member
Messages
365
Points
0
Age
33
Location
Prontera
Github
Litro
Emulator
  1. How to make skill behave like hundred spear or Cross Impact that have separate damage, i have change it in the skill_db.txt the repeated hit and number of hits too, but the in the client view skill not behaved like HS/CI do
  2. How to make skill AB_CHEAL do percent heal i want to make it like skill_lv*10% that means in max level AB_CHEAL will heal 30% heal of each party member current hp

 
1 - Not sure what exactly you mean but if you want a skill to have multiple hits you need to set the number of hits too:

// 09 Number of hits (when positive, damage is increased by hits,

// negative values just show number of hits without increasing total damage)

2 - You would need to do that in the code. I guess one place you can put that is battle_calc_magic_attack in battle.c:

struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag)Add a "case" for AB_CHEAL and then set hp to a percent of maxhp of tstatus, like:
Code:
case AB_CHEAL:  ad.damage = (tstatus->max_hp * skill_lv) / 10;  break;
Make sure you set up the skill as magic skill or else it won't reach that function code. I couldn't find the skill AB_CHEAL in the code at all, so I just assumed you define it similar to AB_HIGHNESSHEAL and the likes.
PS: If you mean current HP instead of max HP just use tstatus->hp instead.

 
Last edited by a moderator:
1 - Not sure what exactly you mean but if you want a skill to have multiple hits you need to set the number of hits too:

// 09 Number of hits (when positive, damage is increased by hits,

// negative values just show number of hits without increasing total damage)

2 - You would need to do that in the code. I guess one place you can put that is battle_calc_magic_attack in battle.c:

struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag)Add a "case" for AB_CHEAL and then set hp to a percent of maxhp of tstatus, like:
Code:
case AB_CHEAL:  ad.damage = (tstatus->max_hp * skill_lv) / 10;  break;
Make sure you set up the skill as magic skill or else it won't reach that function code. I couldn't find the skill AB_CHEAL in the code at all, so I just assumed you define it similar to AB_HIGHNESSHEAL and the likes.
PS: If you mean current HP instead of max HP just use tstatus->hp instead.
as for number one i have found the answer already, yes by changing the hit number and repeated hit the skill work but skill animation like CI or HS not showing in the client, i have to change it on the skill.c too to make the animation appear

case SC_FEINTBOMB:- dmg.dmotion = clif->skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,1,skill_id,skill_lv,5);+ dmg.dmotion = clif->skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skill_id,skill_lv,type); break;
and for the number 2 i have tried to change it as my reference but not found it yet and now i stumbled to next problem it seem heal capped to 32K damage not sure yet how to break it, will it affect all party members and what is ad.damage ?

 
Not sure how to bypass 32k heal cap atm, but uhh, I think ad.damage stands for attack-data damage. It's used for like every skill, 1 int to rule them all. But don't worry, each skill sets it's own variation of it so other skills won't be affected.

 
Back
Top