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:
parent
175f28864c
commit
9b04ad2616
@ -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
|
||||
|
@ -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;
|
||||
|
@ -1392,8 +1392,12 @@ int pc_calc_skilltree(struct map_session_data *sd)
|
||||
}
|
||||
}
|
||||
}
|
||||
if( sd->status.job_level < skill_tree[c][i].joblv )
|
||||
f = 0; // job level requirement wasn't satisfied
|
||||
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 ) {
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user