07-01-2011, 12:52 AM
Такой вопрос, в формулах есть код
Вопрос такой. Я бы хотел что бы при стате в 30, модификатор был 0, а далее вверх или вниз шёл по 3.33(3)%.
Я пытался изменить на
Неполучилось. Пытался
Неполучилось. Думаю надо добавить значения в
Но где то то уже должно быть это прописано. Кто знает где дайте наводочку ^^
Код:
private static final double[] STRCompute = new double[]{1, 30}; //{1.016, 28.515}; for C1
private static final double[] INTCompute = new double[]{1, 30}; //{1.020, 31.375}; for C1
private static final double[] DEXCompute = new double[]{1, 30}; //{1.009, 19.360}; for C1
private static final double[] WITCompute = new double[]{1, 30}; //{1.050, 20.000}; for C1
private static final double[] CONCompute = new double[]{1, 30}; //{1.015, 12.488}; for C1
private static final double[] MENCompute = new double[]{1, 30}; //{1.010, -0.060}; for C1
protected static final double[] WITbonus = new double[MAX_STAT_VALUE];
protected static final double[] MENbonus = new double[MAX_STAT_VALUE];
protected static final double[] INTbonus = new double[MAX_STAT_VALUE];
protected static final double[] STRbonus = new double[MAX_STAT_VALUE];
protected static final double[] DEXbonus = new double[MAX_STAT_VALUE];
protected static final double[] CONbonus = new double[MAX_STAT_VALUE];
// These values are 100% matching retail tables, no need to change and no need add
// calculation into the stat bonus when accessing (not efficient),
// better to have everything precalculated and use values directly (saves CPU)
static
{
for (int i = 0; i < STRbonus.length; i++)
STRbonus[i] = i/STRCompute[1];
for (int i = 0; i < INTbonus.length; i++)
INTbonus[i] = i/INTCompute[1];
for (int i = 0; i < DEXbonus.length; i++)
DEXbonus[i] = i/DEXCompute[1];
for (int i = 0; i < WITbonus.length; i++)
WITbonus[i] = i/WITCompute[1];
for (int i = 0; i < CONbonus.length; i++)
CONbonus[i] = i/CONCompute[1];
for (int i = 0; i < MENbonus.length; i++)
MENbonus[i] = i/MENCompute[1];
}
Код:
static class FuncPAtkMod extends Func
{
static final FuncPAtkMod _fpa_instance = new FuncPAtkMod();
static Func getInstance()
{
return _fpa_instance;
}
private FuncPAtkMod()
{
super(Stats.POWER_ATTACK, 0x30, null);
}
@Override
public void calc(Env env)
{
env.value *= STRbonus[env.player.getSTR()] * env.player.getLevelMod();
}
}
Я пытался изменить на
Код:
public void calc(Env env)
{
env.value *= (int)(env.player.getSTR()/30) * env.player.getLevelMod();
}
Код:
for (int i = 0; i < STRbonus.length; i++)
STRbonus[i] = i/30;
Код:
private static final double[] STRCompute = new double[]{1, 30}; //{1.016, 28.515}; for C1