Some more skill fix.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5522 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
236ee6573a
commit
ab4248e6b8
@ -1223,7 +1223,19 @@ static struct Damage battle_calc_weapon_attack(
|
||||
wd.flag=(wd.flag&~BF_SKILLMASK)|BF_NORMAL;
|
||||
break;
|
||||
|
||||
|
||||
//Until they're at right position - gs_arrow- [Vicious]
|
||||
case GS_BULLSEYE:
|
||||
case GS_CRACKER:
|
||||
case GS_TRACKING:
|
||||
case GS_PIERCINGSHOT:
|
||||
case GS_RAPIDSHOWER:
|
||||
case GS_DUST:
|
||||
case GS_SPREADATTACK:
|
||||
case NJ_SYURIKEN:
|
||||
case NJ_KUNAI:
|
||||
case NJ_HUUMA:
|
||||
flag.arrow = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1296,7 +1308,7 @@ static struct Damage battle_calc_weapon_attack(
|
||||
//Check for critical
|
||||
if(!flag.cri &&
|
||||
(sd || battle_config.enemy_critical_rate) &&
|
||||
(!skill_num || skill_num == KN_AUTOCOUNTER || skill_num == SN_SHARPSHOOTING))
|
||||
(!skill_num || skill_num == KN_AUTOCOUNTER || skill_num == SN_SHARPSHOOTING || skill_num == NJ_KIRIKAGE))
|
||||
{
|
||||
short cri = status_get_critical(src);
|
||||
if (sd)
|
||||
@ -1330,6 +1342,9 @@ static struct Damage battle_calc_weapon_attack(
|
||||
case SN_SHARPSHOOTING:
|
||||
cri += 200;
|
||||
break;
|
||||
case NJ_KIRIKAGE:
|
||||
cri += 250 + 50*skill_lv;
|
||||
break;
|
||||
}
|
||||
if(tsd && tsd->critical_def)
|
||||
cri = cri*(100-tsd->critical_def)/100;
|
||||
|
@ -1159,6 +1159,13 @@ int status_calc_pc(struct map_session_data* sd,int first)
|
||||
if(sd->status.weapon == 11)
|
||||
sd->attackrange += skill;
|
||||
}
|
||||
if((skill=pc_checkskill(sd,GS_SINGLEACTION))>0 && (sd->status.weapon == 11)){ //temp until we get gun id
|
||||
sd->hit += 2*skill;
|
||||
}
|
||||
if((skill=pc_checkskill(sd,GS_SNAKEEYE))>0 && (sd->status.weapon == 11)){ //temp until we get gun id
|
||||
sd->hit += skill;
|
||||
sd->attackrange += skill;
|
||||
}
|
||||
|
||||
// Absolute, then relative modifiers from status changes (shared between PC and NPC)
|
||||
sd->hit = status_calc_hit(&sd->bl,sd->hit);
|
||||
@ -1332,6 +1339,10 @@ int status_calc_pc(struct map_session_data* sd,int first)
|
||||
|
||||
if(pc_isriding(sd))
|
||||
sd->aspd_rate += 50-10*pc_checkskill(sd,KN_CAVALIERMASTERY);
|
||||
|
||||
if((skill=pc_checkskill(sd,GS_SINGLEACTION))>0 && (sd->status.weapon == 11)){ //temp until we get gun id
|
||||
sd->aspd_rate -= (int)(skill / 2);
|
||||
}
|
||||
|
||||
// Relative modifiers from status changes (shared between PC and NPC)
|
||||
sd->aspd_rate = status_calc_aspd_rate(&sd->bl,sd->aspd_rate);
|
||||
@ -1466,6 +1477,8 @@ int status_calc_pc(struct map_session_data* sd,int first)
|
||||
// Skill-related SP recovery
|
||||
if((skill=pc_checkskill(sd,MG_SRECOVERY)) > 0)
|
||||
sd->nshealsp = skill*3 + (sd->status.max_sp*skill/500);
|
||||
if((skill=pc_checkskill(sd,NJ_NINPOU)) > 0)
|
||||
sd->nshealsp = skill*3 + (sd->status.max_sp*skill/500);
|
||||
// Skill-related SP recovery (only when sit)
|
||||
if((skill = pc_checkskill(sd,MO_SPIRITSRECOVERY)) > 0)
|
||||
sd->nsshealsp = skill*2 + (sd->status.max_sp*skill/500);
|
||||
|
Loading…
x
Reference in New Issue
Block a user