battle.c
case MO_EXTREMITYFIST:
skillratio += 100*(7 + sstatus->sp/10);
skillratio = min(500000,skillratio); //We stop at roughly 50k SP for overflow protection
break;
change
skillratio += 100*(7 + sstatus->sp/10);
to
skillratio += 100*(7 + min(sstatus->sp,6000)/10);
ref: http://www.cplusplus.com/reference/algorithm/min/