2017-01-25 13 views
1

Хорошо, это может быть глупый вопрос, но я новичок в программировании, поэтому здесь он находится. Я написал функцию, которая, я надеюсь использовать в игре RPG стиля, чтобы сделать уровень игрока вверх на основе ехраОбновление глобальных переменных из функции в Lua

--sets the level based on exp 
function levelCheck(exp,level) 
    repeat 
     c=math.sqrt(exp)-(level*4) 
      if (c>=1) then 
       level=level+1 
       print("Congradulations level "..level) 
      end 
    until (c<1) 
    return level 
end 

Вещи я хочу, чтобы обновить varible уровня globaly Я не уверен, что я m говоря это правильно, но, пожалуйста, помогите.

+1

Почему вы хотите, чтобы это обновление функции, которые ценят во всем мире ? Предположительно, есть десятки вещей, которые должны произойти, когда уровень изменится, не так ли? Эти вещи должны происходить в тандеме с этими изменениями. Кроме того, вы можете задать вопрос: «Если я дам игроку X exp, они получат уровень?» Чтобы задать этот вопрос, вам нужно вызвать функцию повышения уровня, но вы * не хотите, чтобы он фактически вызывал выравнивание. Лучше держать отдельные функции * отдельно * –

ответ

1

Глобальные переменные в Lua обновляются из функции всякий раз, когда вы их решения по их мировым именем:

variable=1 
f=function(x) variable=x end 
f() 

Функция может изменить свой аргумент (на самом деле содержимое аргумента), если это таблица:

f=function(t) 
    t.variable=4 
end 

... который отвечает на заголовок, но не проблема. Как прокомментировал Никол Борас, вы должны переосмыслить свои способы, если ваш level больше, чем просто число.

0

Это истинный уровень не только номер, но план использовать уровень в качестве переменной в других уравнениях, таких как deff=level*tough+equipment, например ИДК, что это план