Система опыта и уровней

Печать / RSS
13


Пацак
0
День добрый!
Не могу продумать формулу для начисления уровней игроку.
Вообщем ситуевина такая.
Игрок, убивает монстров, получает опыт за их убийство.
Нужно что бы начало было плавное (то есть частый лвлап уровня до 15) потом сложнее, сложнее и так до 100 уровней.
Гуглил на эту тему, находил формулы типа уровень*опыт(слишком большой шаг между уровнями получается), уровень*X (Х = некой константе и если число маленькое, то прокачка слишком быстрая, а если число большое то старт новому игроку будет слишком сложный), попадались сложные формулы, но я их так и не понял.
Есть у кого какие идеи?
Изменил: Алексей (17.02.2015 / 09:30)

Чатланин
0
Попробуй переменные константы.
до 15 утровня одна (что-бы новичку было нормально), от 15 до 30 другая, похардовее, ну и так по нарастающей

Оранжевые штаны
0
1. XwiruS, ни разу не писал игры, но думаю можно использовать уровень как делитель\множитель очков опыта. К примеру акк имеет 1лвл, убил животину получил 150 опыта, его уровень 1 дальше математика, чел 1 уровня, ему набрать еще 99, эти 99 можно использовать как процент от получаемого опыта. Будет 34 уровень, чел получит 66% от 150 очков опыта. Как то так

Чатланин
0
Можно попробовать что-то типа...
умножение на 1.3
т.е.
1 уровень - 0 опыта
2 - 100 (1 шаг)
3 - 230 (+130)
4 - 399 (+169)
5 - 619 (+220)
6 - 905 (+286)
и т.д. кол-во опыта для перехода на 2 уровень и множитель можно варьировать. т.е. каждый раз будет на 30% сложнее перейти на новый уровень. Но в эти 30% заложишь например повышение мощности оружия, так чтоб реальное повышение сложности было в районе 5-10%
Изменил: shilo (17.02.2015 / 12:08)
М

Малиновые штаны
0
напиши таблицу руками, 100 уровней это всего 100 раз нажать ctrl+c, ctrl+v. А дальше расставь как угодно опыт

Чатланин
0
И пасхалочку, 101 уровень - автоматически бан smile

2000 лет д.н.э.
0
x = level
e = exp
x[e] = x-1[e*1.5] = от прошлого уровня нынешний
x+1[e*1.5] = от текущего следующий
Изменил: ramzes (17.02.2015 / 13:47)

Пацак
0
Благодарю всех!
Рамзес, а можно поподробнее.
Допустим игрок 0 уровня и 0 експы (только зарегистрировался)
И еще игрок 1 ур. 5 експы.
Я подобные формулы нагугливал, но не понимаю их.
умножение\деление на 0 всегда дает ноль и у меня не сходится.

Пацак
0
7. ramzes, если я правильно понял, то выходит следующее:
0->1 - 20 (для старта думаю 4 убитых крипа/моба нормально)
1->2 - 60 (1+1(20*1.5))
2->3 - 270 (2+1(60*1.5))
3->4 - 1620 (3+1(270*1.5))

Оранжевые штаны
0
9. XwiruS, я делаю вот так вообще
<?
function experianse($level,$num){
$mmb = array(1=>1,2=>1.1,3=>1.3,4=>1.4,5=>1.5,6=>1.6,7=>1.7,8=>1.8,9=>1.9,10=>2);
$new_exp = round($num / $mmb[$level]);
return $new_exp;
}
Для выполнения действия необходимо авторизоваться!
Стикеры / Теги / Правила / Топ тем / Топ тем / Поиск