In battle.cpp, find this part and replace your old code.
- if(skill->formula !=0)
- {
- skillpower += Stats->Attack_Power;
- }
- unsigned int skill_hitvalue = (unsigned int)floor(Stats->Accury * 50 / Enemy->Stats->Dodge);
- if(skill_hitvalue>100) skill_hitvalue = 100;
- switch(skill->formula)//Magical Or Weapon Type Skill?
- {
- case 1: // Reliable Weapon Attack : Shield Stun, Spin Attack, Weapon Launcher, Seismic Impact, Achilles' Heel Strike, Slugger, Blood Attack,
- // Impact Wave, Heavy Bow Shot, Fierce Cudgeling, Staff Stun, Stun Arrow, Spiral Kick, Aimed Triple Arrow, Point Blank Arrow,
- // Screw Attack, Bloody Assault, Phoenix Slash, Flame Slash, Freezing Assault, Circle Break, Impact Arrow, Sucker Punch,
- // Master Twin Shot, Zulie Boltcher Smash, Zulie Stun, Mastered Triple Shot, Flame Stun Burst, Aimed Triple Shot and Poison Shot
- {
- skillpower+=skill->atkpower +(long int)floor(GetSen( )/2);
- skillpower+=skillpower*GetSen( )/10000;
- skillpower-=skillpower*Enemy->Stats->Defense / 10000;
- skillpower-=Enemy->Stats->Defense * 10 / 100;
- if(GServer->RandNumber( 0, 100 )>skill_hitvalue) skillpower /= 2; // Miss results in damage cut in half.
- }
- break;
- case 2: // Reliable Magic Attack : Soul Wreck, Space Attack, Combat Cry, Wind Storm, Tornado, Voltage Jolt, Icy Hailstorm, Fire Ring,
- // Meteorite Strike, Voltage Shock, Freezing Chill, Tempest, Glaciating Chill, Hurricane, Soul Shock, Soul Electric,
- // Permafrost Chill, Hellfire, Mana Burn, Elemental Bolt, Elemental Spike, Meteorite Flow, Mana Wave, Voltage Storm,
- // Flame Hawk, Phoenix Arrow, Mystic Knife, Plasma Falcon, Sniping, Zulie Storm and Hypno Shot
- {
- skillpower+=skill->atkpower +(long int)floor(GetInt( )/2);
- skillpower+=skillpower*GetInt( )/10000;
- skillpower-=skillpower*Enemy->Stats->Magic_Defense / 10000;
- skillpower-=Enemy->Stats->Magic_Defense * 10 / 100;
- if(GServer->RandNumber( 0, 100 )>skill_hitvalue) skillpower /= 2; // Miss results in damage cut in half.
- }
- break;
- case 3: // (Unreliable) Weapon Attack : Double Attack, Triple Attack, Fatal Thrust, Piercing Lunge, Voltage Crash, Heavy Attack, Leap Attack,
- // Lightning Crasher, Geon Archangel Crumpler, Longinus' Attack, Champion Hit, Taunt Shot, Slow Shot, Clamp Arrow, Double Arrow,
- // Shackle Arrow, Triple Arrow, Double Slash, Focused Impact, Triple Slash, Katar Upper, Dividing Cleave, Poison Arrow,
- // Entangling Arrow, Combo Slash, Crazy-style Slash, Quick-style Assault, Twin Shot, Demolition Expertise, Triple Shot,
- // Shrapnel Burst, Toxic Shot, Cannon Splash Burst and Kill (Anti-Crime)
- {
- skillpower+=skill->atkpower +(long int)floor(GetSen( )/2);
- skillpower+=skillpower*GetSen( )/10000;
- skillpower-=skillpower*Enemy->Stats->Defense / 10000;
- skillpower-=Enemy->Stats->Defense * 10 / 100;
- if(GServer->RandNumber( 0, 100 )>skill_hitvalue) skillpower = 0; // Complete Miss.
- }
- break;
- case 4: // (Unreliable) Magic Attack : Sword Force, Swords of Divinity, Ice Bolt, Frostbiter, Mana Bolt, Mana Spear, Mana Drop,
- // Poison Knife and Venom Knife
- {
- skillpower+=skill->atkpower +(long int)floor(GetInt( )/2);
- skillpower+=skillpower*GetInt( )/10000;
- skillpower-=skillpower*Enemy->Stats->Magic_Defense / 10000;
- skillpower-=Enemy->Stats->Magic_Defense * 10 / 100;
- if(GServer->RandNumber( 0, 100 )>skill_hitvalue) skillpower = 0; // Complete Miss.
- }
- break;
- case 6: // Dual Scratch
- {
- skillpower+=60;
- skillpower+=skillpower*GetSen( )/10000;
- skillpower-=skillpower*Enemy->Stats->Defense / 10000;
- skillpower-=Enemy->Stats->Defense * 10 / 100;
- if(GServer->RandNumber( 0, 100 )>skill_hitvalue) skillpower = 0; // Complete Miss.
- }
- break;
- default:
- {
- skillpower += 35;
- }
- break;
- }