Fixes Death Bound to be an auto target skill (triggered on hit) - bugreport:6731

Extremity Fist SP Cap raised to work better with renewal stats - bugreport:7455
Expanded Super Novice receives +10 stat bonuses for a 0 death counter - bugreport:7394
Renewal Assassin Cross of Sunset now includes AGI into the formula - bugreport:6604
Berserk job level check works as intended - bugreport:6960

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17262 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
akinari1087 2013-04-16 03:23:38 +00:00
parent 175f28864c
commit 9b04ad2616
5 changed files with 18 additions and 20 deletions

View File

@ -692,7 +692,7 @@
//****
2001,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0, RK_ENCHANTBLADE,Enchant Blade
2002,7:8:9:10:11,6,1,-1,0,0,5,1,no,0,0,0,weapon,0, RK_SONICWAVE,Sonic Wave
2003,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0, RK_DEATHBOUND,Death Bound
2003,0,6,4,0,0x1,0,10,1,no,0,0x200,0,weapon,0, RK_DEATHBOUND,Death Bound
2004,5,8,1,-1,0,0,10,-5,no,0,0,0,weapon,0, RK_HUNDREDSPEAR,Hundred Spear
2005,1,6,2,4,0x2,2,5,1,no,0,0,0,weapon,3, RK_WINDCUTTER,Wind Cutter
2006,0,6,4,-1,0x2,5,5,1,no,0,0,0,weapon,0, RK_IGNITIONBREAK,Ignition Break

View File

@ -2353,15 +2353,13 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo
break;
case NPC_DARKCROSS:
case CR_HOLYCROSS:
{
int ratio = 35*skill_lv;
#ifdef RENEWAL
if(sd && sd->status.weapon == W_2HSPEAR)
ratio *= 2;
skillratio += 2*(35*skill_lv);
else
#endif
skillratio += ratio;
skillratio += 35*skill_lv;
break;
}
case AM_DEMONSTRATION:
skillratio += 20*skill_lv;
break;
@ -2376,12 +2374,8 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo
flag.pdef = flag.pdef2 = 2;
break;
case MO_EXTREMITYFIST:
{ //Overflow check. [Skotlex]
unsigned int ratio = skillratio + 100*(8 + sstatus->sp/10);
//You'd need something like 6K SP to reach this max, so should be fine for most purposes.
if (ratio > 60000) ratio = 60000; //We leave some room here in case skillratio gets further increased.
skillratio = (unsigned short)ratio;
}
skillratio += 100*(8 + sstatus->sp/10) - 100;
skillratio = min(500000,skillratio); //We stop at roughly 50k SP for overflow protection
break;
case MO_TRIPLEATTACK:
skillratio += 20*skill_lv;

View File

@ -1392,9 +1392,13 @@ int pc_calc_skilltree(struct map_session_data *sd)
}
}
}
if( sd->status.job_level < skill_tree[c][i].joblv )
if( sd->status.job_level < skill_tree[c][i].joblv ) { //We need to get the actual class in this case
int class = pc_mapid2jobid(sd->class_, sd->status.sex);
class = pc_class2idx(class);
if (class == c || (class != c && sd->status.job_level < skill_tree[class][i].joblv))
f = 0; // job level requirement wasn't satisfied
}
}
if( f ) {
int inf2;

View File

@ -10912,9 +10912,9 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill
}
break;
case BA_ASSASSINCROSS:
val1 = 100+(10*skill_lv)+(status->agi/10); // ASPD increase
val1 = 100+(10*skill_lv)+status->agi; // ASPD increase
if(sd)
val1 += 5*pc_checkskill(sd,BA_MUSICALLESSON);
val1 += 10*((pc_checkskill(sd,BA_MUSICALLESSON)+1)/2); //aspd +1% per 2lvl
break;
case DC_FORTUNEKISS:
val1 = 10+skill_lv+(status->luk/10); // Critical increase

View File

@ -2704,7 +2704,7 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
}
// If a Super Novice has never died and is at least joblv 70, he gets all stats +10
if((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->die_counter == 0 && sd->status.job_level >= 70){
if(((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && (sd->status.job_level >= 70 || sd->class_&JOBL_THIRD)) && sd->die_counter == 0){
status->str += 10;
status->agi += 10;
status->vit += 10;
@ -5342,10 +5342,10 @@ static short status_calc_aspd(struct block_list *bl, struct status_change *sc, s
skills1 = 5;
if(sc->data[SC_ASSNCROS] &&
skills1 < 5+1*sc->data[SC_ASSNCROS]->val1) // needs more info
skills1 < sc->data[SC_ASSNCROS]->val2/10)
{
if (bl->type!=BL_PC)
skills1 = 4+1*sc->data[SC_ASSNCROS]->val1;
skills1 = sc->data[SC_ASSNCROS]->val2/10;
else
switch(((TBL_PC*)bl)->status.weapon)
{
@ -5357,7 +5357,7 @@ static short status_calc_aspd(struct block_list *bl, struct status_change *sc, s
case W_GRENADE:
break;
default:
skills1 = 5+1*sc->data[SC_ASSNCROS]->val1;
skills1 = sc->data[SC_ASSNCROS]->val2/10;
}
}
}