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:
Vicious 2006-03-08 19:43:20 +00:00
parent 236ee6573a
commit ab4248e6b8
2 changed files with 30 additions and 2 deletions

View File

@ -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;

View File

@ -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);
@ -1333,6 +1340,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);