Добро пожаловать на сайт "Game Creating CommUnity"
Здравствуйте, уважаемый пользователь!

Возможно, вы впервые на этом сайте и мы очень надеемся, что вам у нас понравится. Администрация сайта сделает всё возможное, чтобы ваше пребывание на сайте было максимально комфортным. Спасибо за внимание!

P.S. Данное окно вас больше не потревожит
Система опыта и левелинга - Форум Игроделов
Вс, 13 Июл 2025, 09:38 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Система опыта и левелинга
korveenДата: Вс, 18 Янв 2015, 17:12 | Сообщение # 1
Победитель конкурса GCC
 
Сообщений: 183
Награды: 2
Репутация: 45
Статус: Offline
Посоветуйте как сделать систему опыта и левелинга. (да-да, как в ММО)
При достижении определенных кол-вах опыта уровень растет, текущий опыт в 0, а опыт который нужен появляется. Вот что-то не могу придумать эту всю систему с PlayerPrefs конечно. И еще, хотелось бы хранить в массивах требуемое кол-во опыта для уровня. Подскажите с реализацией.

К примеру массив с требуемым кол-вом опыта:
[0] - 5 (до 1 ур. 5 опыта)
[1] - 10 (до 2 ур. 10 опыта)
[2] - 25
...


 
СообщениеПосоветуйте как сделать систему опыта и левелинга. (да-да, как в ММО)
При достижении определенных кол-вах опыта уровень растет, текущий опыт в 0, а опыт который нужен появляется. Вот что-то не могу придумать эту всю систему с PlayerPrefs конечно. И еще, хотелось бы хранить в массивах требуемое кол-во опыта для уровня. Подскажите с реализацией.

К примеру массив с требуемым кол-вом опыта:
[0] - 5 (до 1 ур. 5 опыта)
[1] - 10 (до 2 ур. 10 опыта)
[2] - 25
...

Автор - korveen
Дата добавления - 18 Янв 2015 в 17:12
NapalmRainДата: Вс, 18 Янв 2015, 21:15 | Сообщение # 2
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
korveen, если как в ММО, то не совсем так.
Создаётся интовый массив, в котором каждый элемент - это количество опыта для получения нового уровня.
Тут можно пойти двумя путями, обычно применяется первый:
интовый массив (правильнее всего хранить его в какой-нибудь статической переменной)
Код на абстрактном языке
Код
levels[1] = 100;
 levels
[2] = 300;
 levels
[3] = 700;
 
...

 levels
[n] = 100500;
 

Далее на конктретном персонаже висит компоненл с публичным методом addExp()
Код
public void addExp(int exp) {
   currentexp
+= xpp;
 
if (currentexp>=levels[currentlevel+1]) {
 currentlevel
++;
 
// аллелуя новый уровень
 
}
 
}

Второй, это то, как хотите вы, отличается тем, что при
Код
if (currentexp>=levels[currentlevel+1]) {
 currentlevel
++;
 currentexp
= 0;
 
// соответственно при этом и в массиве хранится не суммарное значение а просто сколько надо опыта набрать
 
}

Обычно же онуляется параметр % сколько осталось до следующего уровня, а опыт суммируется без обнуления


Сообщение отредактировал NapalmRain - Вс, 18 Янв 2015, 21:15
 
Сообщениеkorveen, если как в ММО, то не совсем так.
Создаётся интовый массив, в котором каждый элемент - это количество опыта для получения нового уровня.
Тут можно пойти двумя путями, обычно применяется первый:
интовый массив (правильнее всего хранить его в какой-нибудь статической переменной)
Код на абстрактном языке
Код
levels[1] = 100;
 levels
[2] = 300;
 levels
[3] = 700;
 
...

 levels
[n] = 100500;
 

Далее на конктретном персонаже висит компоненл с публичным методом addExp()
Код
public void addExp(int exp) {
   currentexp
+= xpp;
 
if (currentexp>=levels[currentlevel+1]) {
 currentlevel
++;
 
// аллелуя новый уровень
 
}
 
}

Второй, это то, как хотите вы, отличается тем, что при
Код
if (currentexp>=levels[currentlevel+1]) {
 currentlevel
++;
 currentexp
= 0;
 
// соответственно при этом и в массиве хранится не суммарное значение а просто сколько надо опыта набрать
 
}

Обычно же онуляется параметр % сколько осталось до следующего уровня, а опыт суммируется без обнуления

Автор - NapalmRain
Дата добавления - 18 Янв 2015 в 21:15
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025
Войти Зарегистрироваться