Страница 2 из 2

Re: Как осуществить добавление значения к переменной ЕДИНОЖДЫ?

СообщениеДобавлено: 27 окт 2009, 15:47
foonk
Все попровил, теперь почти все работает :-bd кроме одного, у вас в примерах везде
Код: Выделить всё
if (Input.GetKeyDown("k"))
, соответственно и срабатывает единожды, а как сделать добавление уровня единожды, но при условии:
Код: Выделить всё
function Update () {
if (experience>=100) {
levelup = true;
}
if (levelup==true) {
level+=1;
levelup = false;
}

Так прибавляется по левелу кажды фрейм :)
Я бы сделал так:
Код: Выделить всё
function Update () {
if (experience==100) {
levelup = true;
experience++;
}

Но в таком слечае experience может так никогда и не стать ровно 100, скажем 90 а потом сразу 150, а значит level=1 так и не будет...
Как быть, подскажите.

Re: Как осуществить добавление значения к переменной ЕДИНОЖДЫ?

СообщениеДобавлено: 27 окт 2009, 16:03
Zaicheg
Внятно напиши, чего тебе надо. Лучше словами, а не набросками кода.

Re: Как осуществить добавление значения к переменной ЕДИНОЖДЫ?

СообщениеДобавлено: 27 окт 2009, 16:26
foonk
Окей ;) Я хочу, чтобы добавился 1 левел при условии, что опыта будет больше или равно 100.

Re: Как осуществить добавление значения к переменной ЕДИНОЖДЫ?

СообщениеДобавлено: 27 окт 2009, 17:01
Tolking
Там, где добавляешь опыт, проверяй условие и добавляй уровень.

Re: Как осуществить добавление значения к переменной ЕДИНОЖДЫ?

СообщениеДобавлено: 27 окт 2009, 17:06
foonk
Так не получится, потому что опыт я добавляю за пройденный квест, а уровень за КОЛЛИЧЕСТВО опыта. А колличество опыта зависит от многих параметров...

Re: Как осуществить добавление значения к переменной ЕДИНОЖДЫ?

СообщениеДобавлено: 27 окт 2009, 17:13
Zaicheg
foonk писал(а):Окей ;) Я хочу, чтобы добавился 1 левел при условии, что опыта будет больше или равно 100.

Вы мой скрипт смотрели? Там уровень добавляется именно при таком условии. Ну плюс пара вспомогательных ограничений.

Так не получится, потому что опыт я добавляю за пройденный квест, а уровень за КОЛЛИЧЕСТВО опыта. А колличество опыта зависит от многих параметров...

Аналогично. В выложенном скрипте опыт добавляется за пройденный квест, а уровень за количество опыта. Что не устраивает?
Зависит от многих параметров? Давайте свои параметры, будем разбираться с ними.

Re: Как осуществить добавление значения к переменной ЕДИНОЖДЫ?

СообщениеДобавлено: 28 окт 2009, 00:22
foonk
Все, супер :ymhug: , понял в чем фишка, не внимательно смотрел :) Остался лишь 1 маааленький вопросик: вот я задаю планку опыта для уровней
Код: Выделить всё
public var expLevel : int[]; // массив с планками опыта для каждого уровня
но при запуске все равно планки опыта в массиве становятся такие
Код: Выделить всё
for (i = 0; i < levelsCount; i++) {
expLevel[i] = i * 100; // прогрессивная система повышения планки опыта
}

Тоесть 100, 200, 300... а я хочу скажем 100, 500, 1500... Как подправить прогрессивную систему повышения планки опыта??

Re: Как осуществить добавление значения к переменной ЕДИНОЖДЫ?

СообщениеДобавлено: 28 окт 2009, 09:33
Tolking
Ну так и пишешь:
expLevel[1] = 100;
expLevel[2] = 500;
expLevel[3] = 1500;

А лучше перед public var expLevel : int[];
пишеш что-то вроде [Serialazible] и заполняешь массив в редакторе.

Re: Как осуществить добавление значения к переменной ЕДИНОЖДЫ?

СообщениеДобавлено: 28 окт 2009, 10:49
foonk
Спасибо! Все получилось :D :ymhug: