Hi, community!
Recently i installed a rAthena server (renewal) and started playing with a few of my friends.
We didn't notice any errors until "finger offensive" was used.
Regardless of the skill level and the active spheres amount only one sphere is thrown (and consumed) by monks (champs).
The only modification i remember was the fixed cast time i removed from all skills in db/re/skill.db (and removing RENEWAL_CAST ist src/config/renewal.hpp)
Did anyone face this problem? Where can i search for a solution?
Thank you in advice!
db/re/skill.db
- Id: 267
Name: MO_FINGEROFFENSIVE
Description: Throw Spirit Sphere
MaxLevel: 5
Type: Weapon
TargetType: Attack
Flags:
TargetTrap: true
Range: 9
Hit: Multi_Hit
HitCount:
- Level: 1
Count: 1
- Level: 2
Count: 2
- Level: 3
Count: 3
- Level: 4
Count: 4
- Level: 5
Count: 5
Element: Weapon
CopyFlags:
Skill:
Plagiarism: true
Reproduce: true
CastTime: 500
AfterCastActDelay: 500
AfterCastWalkDelay:
- Level: 2
Time: 200
- Level: 3
Time: 400
- Level: 4
Time: 600
- Level: 5
Time: 800
FixedCastTime: 0
Requires:
SpCost:
- Level: 1
Amount: 12
- Level: 2
Amount: 16
- Level: 3
Amount: 20
- Level: 4
Amount: 24
- Level: 5
Amount: 28
SpiritSphereCost: 1
src/map/skill.cpp
/*
...
*/
case MO_FINGEROFFENSIVE:
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
if (battle_config.finger_offensive_type && sd) {
for (int i = 1; i < sd->spiritball_old; i++)
skill_addtimerskill(src, tick + i * 200, bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, flag);
}
status_change_end(src, SC_BLADESTOP, INVALID_TIMER);
break;
/*
...
*/
case MO_FINGEROFFENSIVE:
case GS_FLING:
case SR_RIDEINLIGHTNING:
if( sd->spiritball > 0 && sd->spiritball < require.spiritball )
sd->spiritball_old = require.spiritball = sd->spiritball;
else
sd->spiritball_old = require.spiritball;
break;