Ельнур, я просто предложил. в LUA ты уже лучше меня понимаешь, тк на нем уже сидишь. Возможно есть какие то там способы
я нихера не понимаю я пишу как в джассе и стираю все ненужные endif endfunction и не обнуляю)) думаю первая карты выйдет кпц лаганным, и еще для каждой свистелки свои триггеры а не общий раньше для всех способностей один триггер)), а сейчас для каждой отдельный без кондишенов с ифами....
Ельнур, а зачем тебе вовсе все это надо, если даже жасс сложно, мб гуи, простенькие дамми касты и все такое. конфетные войны, замок скиби - годные карты сделанные на гуи. Будет пахать на всех версиях в придачу.
Ельнур, а зачем тебе вовсе все это надо, если даже жасс сложно, мб гуи, простенькие дамми касты и все такое. конфетные войны, замок скиби - годные карты сделанные на гуи. Будет пахать на всех версиях в придачу.
да джасс легок не пойму зачем они луа прикрепили
локалки так же работают например если ты поставишь do
function trigger
local
function timer
здесь local не рабоатет обьявленная в trigger хотя мне говорили обратное, но все равно радует то что обнулении нет и код быстрее будет
end
хеш прекрасно работает думаю только хеш буду чистить и код быстрее буде тписаться))
думаю сборщик мусоа не умеет чистить хеш таблицы хаха)
DataStorage = {} -- глобальная переменная с lua таблицей вместо хештаблицы
------
local t = CreateTimer()
local u1 = GetCaster() -- нет такой функции, тут должно быть получение кастера
local u2 = GetTarget() -- такой функции тоже нет, тут должно быть получение цели
local i = 42
local data = { caster = u1, target = u2, num = i}
DataStorage[GetHandleId(t)] = data
----
local t = GetExpiredTimer() -- не помню есть ли такая функция, тут должно быть получение таймера созданого в предыдущем блоке
local data = DataStorage[GetHandleId(t)]
local u3 = data.caster -- здесь окажется юнит из u1
local u4 = data.target -- здесь окажется юнит из u2
local x = data.num -- здесь окажется число из i
DataStorage = {} -- глобальная переменная с lua таблицей вместо хештаблицы
------
local t = CreateTimer()
local u1 = GetCaster() -- нет такой функции, тут должно быть получение кастера
local u2 = GetTarget() -- такой функции тоже нет, тут должно быть получение цели
local data = { caster = u1, target = u2}
DataStorage[GetHandleId(t)] = data
----
local t = GetExpiredTimer() -- не помню есть ли такая функция, тут должно быть получение таймера
local data = DataStorage[GetHandleId(t)]
local u1 = data.caster
local u2 = data.target
Кому нужен хеш, когда можно сделать так?
вместо caster и таргета писать GetSpellAbilityUnit(), GetSpellTargetUnit()?
Ельнур, ну, это три куска кода, первый показывает объявление луа таблицы, которая используется вместо хештаблицы. Второй блок показывает запись произвольных данных в эту таблицу по хендлу нового таймера, а третий блок показывает чтение этих данных и запись их в переменную. Какие именно данные, сколько их где они берутся не важно, поэтому я использовал несуществующие функции для упрощения.
Ельнур, да
local data = { caster = GetSpellAbilityUnit(), target = GetSpellTargetUnit()}
prog, а если надо 3 значения привязать это надо писать так (чем больше параметров, тем больше аргументов? а как типы данных здесь?):
local data = { caster = GetSpellAbilityUnit(), target = GetSpellTargetUnit(), A = 0} A - целое число
Ред. Ельнур
и ордер кастера чтобы прерывать
Ред. Ельнур
function trigger
local
function timer
здесь local не рабоатет обьявленная в trigger хотя мне говорили обратное, но все равно радует то что обнулении нет и код быстрее будет
end
Ред. prog
Ред. Ельнур
Ред. MpW
local data = { caster = GetSpellAbilityUnit(), target = GetSpellTargetUnit()}
local data = { caster = GetSpellAbilityUnit(), target = GetSpellTargetUnit(), A = 0} A - целое число
Ред. prog