Opracowuję prostą bitwę tekstową i mam problemy z obliczeniem, ile XP należy zdobyć po bitwie, jest kilka czynników, które chcę wziąć pod uwagę:
1) Gracze powinni oczywiście zdobyć dobre XP, jeśli pokonają kogoś na tym samym poziomie
2) Gracze powinni zdobyć świetne XP, jeśli pokonają kogoś z wyższego poziomu
3) Gracze powinni zdobyć słabe XP, jeśli pokonają kogoś z niższego poziomu
4) Powyższe powinno ładnie się skalować, tzn. Jeśli gracz A ma poziom 10 i walczy z graczem B, który ma poziom 9 lub 11, różnica nie powinna być ogromna (oczywiście zdobyliby więcej PD za pokonanie postaci na poziomie 11, ale nie spodziewaj się, że to będzie ogromne), ale jeśli miałby walczyć na poziomie 5 lub 15, ta różnica powinna być ogromna.
Mam problem z obliczeniem czegoś, co działa dobrze we wszystkich scenariuszach, obecnie moja tabela XP wygląda następująco:
Current Level XP Needed Increase from Last Level
1 30 0
2 65 35
3 106 41
4 154 48
5 210 56
...
10 672 123
W PHP mój kod wygląda jak poniżej, aby obliczyć potrzebne XP:
$offset = 30;
$multiplier = 1.17;
$base = $prevXp * $multiplier;
$xp = $base + $offset;
Próbowałem kilku różnych rzeczy, ale nie byłem pod wrażeniem żadnej z nich, chciałbym pracować z obliczaniem różnicy w XP, a następnie z użyciem pewnego mnożnika, ale nie byłem pod wrażeniem wyników.
Każda pomoc / wkład będzie mile widziane.