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

Кирасим

Пользователь
28 Авг 2014
11
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
 
Последнее редактирование модератором:
Функции луа модификаторов вызываются на клиенте, а твоя переменная на сервере. Тебе нужно передать её на клиент с помощью netTable например.
 
Что-то всё что я нашёл по таблицам - это использование значения из кастомных таблиц. Наверное я неправильно выразился, у меня массив (по какой-то причине я его называю таблицей), вот такой:
Код:
_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, то в таком случае прошу просветить меня=)
 
Последнее редактирование модератором:
ZLOY, Ладно, спасибо в любом случае. Я сейчас поэкспериментировал, не вижу ничего плохого и трудного в том что бы перебросить массив в таблицу, так что ты мне помог=)
 
[quote author=Кирасим link=topic=1094.msg6269#msg6269 date=1473845268]
ZLOY, Ладно, спасибо в любом случае. Я сейчас поэкспериментировал, не вижу ничего плохого и трудного в том что бы перебросить массив в таблицу, так что ты мне помог=)
[/quote]
Тебе говорили вот об этом.
https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Custom_Nettables
 
В луа нет массивов, только таблицы
 
Реклама: