CustomGames.ru - Dota 2 пользовательские игры

Не работает модифаер на Lua

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Кирасим

  • 8
  • Мощь: 0
У меня есть таблица, с уровнем всех модифаеров, но некоторые модифаеры (например броня), не получают текущее значение переменных, они получают только изначальное (что я указал в скрипте). И так вообще со всеми переменными в функции, она их либо не видит (выдает nil), либо получает неправильно.

Код
	
modifier_block_skill_Vitality = class({})

function modifier_block_skill_Vitality:DeclareFunctions()
local funcs = {
MODIFIER_PROPERTY_HEALTH_BONUS, MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS, MODIFIER_PROPERTY_HEALTH_REGEN_CONSTANT,
}
return funcs
end

function modifier_block_skill_Vitality:GetModifierHealthBonus( ) // Работает нормально
if MB[10]["Level"] == 1 then return 25 end
if MB[10]["Level"] == 2 then return 40 end
end
function modifier_block_skill_Vitality:GetModifierPhysicalArmorBonus( ) // Функция которая не получает переменные
if MB[10]["Level"] == 1 then return 0.5 end
if MB[10]["Level"] == 2 then return 1.5 end
end
function modifier_block_skill_Vitality:GetModifierConstantHealthRegen( ) // Работает нормально
if MB[10]["Level"] == 1 then return 0.5 end
if MB[10]["Level"] == 2 then return 1.5 end
end

function modifier_block_skill_Vitality:IsHidden()
return true
end
« Последнее редактирование: 14-09-2016, 01:36:32 от Кирасим »

Оффлайн ZLOY

  • Супермодератор
  • 452
  • Мощь: 6
Re: Не работает модифаер на Lua
« Ответ #1 : 14-09-2016, 05:46:24 »
Функции луа модификаторов вызываются на клиенте, а твоя переменная на сервере. Тебе нужно передать её на клиент с помощью netTable например.

Оффлайн Кирасим

  • 8
  • Мощь: 0
Re: Не работает модифаер на Lua
« Ответ #2 : 14-09-2016, 06:32:10 »
Что-то всё что я нашёл по таблицам - это использование значения из кастомных таблиц. Наверное я неправильно выразился, у меня массив (по какой-то причине я его называю таблицей), вот такой:
Код
_G.Modifier_Block = {
  [1] =
  {["Name"] = "Eating", ["Level"] = 1, ["DNA"] = 0, ["Or"] = false,  ["Req"] = "null null null null null", ["Max"] = 1, ["Skill"] = true},
  [2] =
  {["Name"] = "ManyCell", ["Level"] = 0, ["DNA"] = 10, ["Or"] = false,  ["Req"] = "null null null null null", ["Max"] = 1, ["Skill"] = true},
  [3] =
  {["Name"] = "Essence", ["Level"] = -1, ["DNA"] = 10, ["Or"] = false,  ["Req"] = "null null null null null", ["Max"] = 1, ["Skill"] = true},
  [4] =
  {["Name"] = "DemonicCell", ["Level"] = -1, ["DNA"] = 10, ["Or"] = false,  ["Req"] = "null null null null null", ["Max"] = 1, ["Skill"] = true},
  [5] =
  {["Name"] = "Hloroplast", ["Level"] = -1, ["DNA"] = 10, ["Or"] = false,  ["Req"] = "null null null null null", ["Max"] = 1, ["Skill"] = true},
  [6] =
  {["Name"] = "Virus", ["Level"] = -1, ["DNA"] = 10, ["Or"] = false,  ["Req"] = "null null null null null", ["Max"] = 1, ["Skill"] = true},
  [7] =
  {["Name"] = "BaseAttack", ["Level"] = 0, ["DNA"] = 15, ["Or"] = false,  ["Req"] = "null null null null null", ["Max"] = 2, ["Skill"] = true},
  [8] =
  {["Name"] = "ProtoClaw", ["Level"] = -1, ["DNA"] = 5, ["Or"] = false,  ["Req"] = "BaseAttack null null null null", ["Max"] = 3, ["Skill"] = false},
  [9] =
  {["Name"] = "Adaptation", ["Level"] = -1, ["DNA"] = 15, ["Or"] = false,  ["Req"] = "Vitality null null null null", ["Max"] = 2, ["Skill"] = false},
  [10] =
  {["Name"] = "Vitality", ["Level"] = -1, ["DNA"] = 7, ["Or"] = false,  ["Req"] = "BaseAttack null null null null", ["Max"] = 2, ["Skill"] = false},
  [11] =
  {["Name"] = "Reaction", ["Level"] = -1, ["DNA"] = 20, ["Or"] = false,  ["Req"] = "ProtoClaw null null null null", ["Max"] = 2, ["Skill"] = false},
  [12] =
  {["Name"] = "Worm", ["Level"] = -1, ["DNA"] = 35, ["Or"] = false,  ["Req"] = "Adaptation null null null null", ["Max"] = 1, ["Skill"] = true},
  [13] =
  {["Name"] = "Leech", ["Level"] = -1, ["DNA"] = 35, ["Or"] = false,  ["Req"] = "Reaction null null null null", ["Max"] = 1, ["Skill"] = true},
  [14] =
  {["Name"] = "Leave_posterity", ["Level"] = 1, ["DNA"] = 0, ["Or"] = false,  ["Req"] = "null null null null null", ["Max"] = 1, ["Skill"] = true},
}

И из неё я не могу получить текущее значение. Если это тоже можно сделать с помощью GetTableValue, то в таком случае прошу просветить меня=)

Оффлайн Кирасим

  • 8
  • Мощь: 0
Re: Не работает модифаер на Lua
« Ответ #3 : 14-09-2016, 09:27:48 »
ZLOY, Ладно, спасибо в любом случае. Я сейчас поэкспериментировал, не вижу ничего плохого и трудного в том что бы перебросить массив в таблицу, так что ты мне помог=)

Оффлайн CryDeS

  • Друзья CG
  • 1212
  • Мощь: 12
Re: Не работает модифаер на Lua
« Ответ #4 : 14-09-2016, 09:48:07 »
ZLOY, Ладно, спасибо в любом случае. Я сейчас поэкспериментировал, не вижу ничего плохого и трудного в том что бы перебросить массив в таблицу, так что ты мне помог=)
Тебе говорили вот об этом.
developer.valvesoftware.com/...ettables

Оффлайн Кирасим

  • 8
  • Мощь: 0
Re: Не работает модифаер на Lua
« Ответ #5 : 14-09-2016, 09:54:51 »
Тебе говорили вот об этом.
Да я уже понял=)

Оффлайн ZLOY

  • Супермодератор
  • 452
  • Мощь: 6
Re: Не работает модифаер на Lua
« Ответ #6 : 15-09-2016, 07:56:37 »
В луа нет массивов, только таблицы