- Сообщений: 38
- Спасибо получено: 1
Полоса опыта.
11 года 7 мес. назад #74478
от Frog434
Frog434 создал тему: Полоса опыта.
Итак у меня есть скрипт :
И он работает , вот сама полоска :
Но вся проблема заключается в изменении длины полоски при добавлении опыта , т.е. :
Вот я и хотел спросить , как это пофиксить ?
ВНИМАНИЕ: Спойлер!
def draw_actor_level(actor, x, y , width=130)
draw_gauge(x, y, width, actor.exp , xp_gauge_color, xp_gauge_color1)
change_color(xp_gauge_text_color)
draw_text(x, y, 32, line_height, Vocab::level_a)
change_color(normal_color)
draw_text(x + 32, y, 24, line_height, actor.level, 2)
end
draw_gauge(x, y, width, actor.exp , xp_gauge_color, xp_gauge_color1)
change_color(xp_gauge_text_color)
draw_text(x, y, 32, line_height, Vocab::level_a)
change_color(normal_color)
draw_text(x + 32, y, 24, line_height, actor.level, 2)
end
И он работает , вот сама полоска :
Но вся проблема заключается в изменении длины полоски при добавлении опыта , т.е. :
Вот я и хотел спросить , как это пофиксить ?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 7 мес. назад - 11 года 7 мес. назад #74480
от Amphilohiy
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Amphilohiy ответил в теме Полоса опыта.
Я так подозреваю, что в данном случае за 1 считается 100% заполненности шкалы. Так что тебе опыт надо поделить на опыт до следующего уровня. Опять же, все не так просто.
Залез в класс актора, нашел методы current_level_exp и next_level_exp. По сути получается, что тебе нужно из имеющейся экспы вычесть экспу на текущий уровен и поделить на разность экспы до следующего уровня, на эксп до текущего.
В общем, попробуй:
Залез в класс актора, нашел методы current_level_exp и next_level_exp. По сути получается, что тебе нужно из имеющейся экспы вычесть экспу на текущий уровен и поделить на разность экспы до следующего уровня, на эксп до текущего.
В общем, попробуй:
Code:
(actor.exp-actor.current_level_exp).to_f/(actor.next_level_exp-actor.current_level_exp)
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Последнее редактирование: 11 года 7 мес. назад пользователем Amphilohiy.
Спасибо сказали: Frog434
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 7 мес. назад #74485
от Frog434
Frog434 ответил в теме Полоса опыта.
Ок все работает , но у меня вопрос , можно ли в мейкере (не скриптово) ограничить получение опыта , при взятии максимального уровня(допустим 3-го)?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 7 мес. назад #74487
от Amphilohiy
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Amphilohiy ответил в теме Полоса опыта.
Для акторов в БД настраиваются максимальные уровни, для классов можно настроить кривую опыта, да и есть Sp-Parameter EXR, который определяет приходящий опыт.
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Спасибо сказали: Frog434
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 7 мес. назад #74488
от Frog434
Frog434 ответил в теме Полоса опыта.
Ну я настроил макс. уровень и поставил кривую опыта , но у меня появляется в том , что при достижении максимального уровня(3-го) , по идее должно быть 100/100 опыта и полная полоса , но у меня эта полоса расширяется и пишется 120/100 и т.д. Вот я и спрашиваю можно ли это как-то ограничить.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 7 мес. назад #74491
от Amphilohiy
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Amphilohiy ответил в теме Полоса опыта.
Понял. Без изменения скрипта не уверен, но с изменением можно.
Пихаем в массив и находим минимум между фактическим значением и максимально возможным.
Code:
[(actor.exp-actor.current_level_exp).to_f/(actor.next_level_exp-actor.current_level_exp), 1].min
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Спасибо сказали: Frog434
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
11 года 7 мес. назад #74492
от Frog434
Frog434 ответил в теме Полоса опыта.
Спасибо большое.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.105 секунд
