Простые вопросы #2

Статус
В этой теме нельзя размещать новые ответы.
а есть где то примеры зачем это надо в кастомках? чё ваще такое полиморфизм
ну наследование и полиморфизм помогают тебе писать меньше кода и структурировать его
а тут про полиморфизм
 
ну наследование и полиморфизм помогают тебе писать меньше кода и структурировать его
а тут про полиморфизм
Мне кажется, вопрос скорее был о том, что из себя представляет полиморфизм в рамках луа.
 
1579396562283.png

Либо вопрос некорректен(слишком легко), либо он гораздо глубже....
 
Мне кажется, вопрос скорее был о том, что из себя представляет полиморфизм в рамках луа.
то же самое что и везде, просто луа фактически не заточен под ооп из коробки, но в любом функциональном языке можно реализовать абстракцию ооп.
 
  • Нравится
Реакции: Sannin и SniperX

Либо вопрос некорректен(слишком легко), либо он гораздо глубже....
Странно, у меня нет такого окна, если бы было, то не было бы вопроса. Буду искать, как его включить. Я и раньше предполагал, что оно должно быть, но не нашел, хотя я там нажал вообще все кнопки, которые есть.
 
Через дд вызвал скрипт, который записал местоположение кастера, при получении модифаера
Затем при движении вызвал скрипт, который должен взять это местоположение из прошлой функции
Вопрос: как взять значение с прошлой функции?
Lua:
function getorigin( keys )
    local casterold = keys.caster:GetOrigin()
end
function mathorigin( keys )
    local casternew = keys.caster:GetOrigin()
    local moveddistance = casterold - casternew
    print(moveddistance)
end
Возможно ли найти пройденное расстояние через дд абилку? (Самое главное BaseClass = дд)
 
Сохранить это значение в таблицу caster?
 
keys.caster.casterold = keys.caster:GetOrigin()
local moveddistance = keys.caster.casterold - casternew
Lua:
function mathorigin( keys )
    local casternew = keys.caster:GetOrigin()
    local keys.caster.casterold = keys.caster:GetOrigin()
    local moveddistance = keys.caster.casterold - casternew
    print(moveddistance)
end
Вы про эту бессмыслицу? отнимать текущую позицию от текущей?
 
Lua:
function mathorigin( keys )
    local casternew = keys.caster:GetOrigin()
    local keys.caster.casterold = keys.caster:GetOrigin()
    local moveddistance = keys.caster.casterold - casternew
    print(moveddistance)
end
Вы про эту бессмыслицу? отнимать текущую позицию от текущей?
Ты неправильно написал.
Код:
function getorigin( keys )
   keys.caster.oldOrigin = keys.caster:GetOrigin()
end

function mathorigin( keys )
    local casternew = keys.caster:GetOrigin()
    local moveddistance = casternew - keys.caster.oldOrigin
    print(moveddistance)
end
 
  • Нравится
Реакции: SniperX
Ты неправильно написал.
Код:
function getorigin( keys )
   keys.caster.oldOrigin = keys.caster:GetOrigin()
end

function mathorigin( keys )
    local casternew = keys.caster:GetOrigin()
    local moveddistance = casternew - keys.caster.oldOrigin
    print(moveddistance)
end
Вот теперь надо посчитать: сколько же он прошёл, но он не хочет выводить в консоль сколько прошёл, он выводит по типу этого:
312.PNG
 
Вот теперь надо посчитать: сколько же он прошёл, но он не хочет выводить в консоль сколько прошёл, он выводит по типу этого:
Посмотреть вложение 864
а мне лайк ненадо да?
и что ты вообще хочешь сделать, зачем тебе разница двух векторов?
всё правильно он выводит: пройденное расстояние по x y z
 
а мне лайк ненадо да?
и что ты вообще хочешь сделать, зачем тебе разница двух векторов?
всё правильно он выводит: пройденное расстояние по x y z
я хочу чтобы при преодолении N-ного (500) расстояния происходило что-то
 
  • Нравится
Реакции: Wizardll
я хочу чтобы при преодолении N-ного (500) расстояния происходило что-то
 
Нашёл замечательный скрипт бэктрека войда на SpellLibraly. Но он срабатывает только при OnTakeDamage, а мне надо чтобы он работал при OnAttacked. Как его можно подкорректировать?
Lua:
function BacktrackHealth( keys )
    local caster = keys.caster
    local ability = keys.ability

    ability.caster_hp_old = ability.caster_hp_old or caster:GetMaxHealth()
    ability.caster_hp = ability.caster_hp or caster:GetMaxHealth()

    ability.caster_hp_old = ability.caster_hp
    ability.caster_hp = caster:GetHealth()
end

--[[Author: Pizzalol
    Date: 14.02.2016.
    Negates incoming damage]]
function BacktrackHeal( keys )
    local caster = keys.caster
    local ability = keys.ability

    caster:SetHealth(ability.caster_hp_old)
end
 
Нашёл замечательный скрипт бэктрека войда на SpellLibraly. Но он срабатывает только при OnTakeDamage, а мне надо чтобы он работал при OnAttacked. Как его можно подкорректировать?
Lua:
function BacktrackHealth( keys )
    local caster = keys.caster
    local ability = keys.ability

    ability.caster_hp_old = ability.caster_hp_old or caster:GetMaxHealth()
    ability.caster_hp = ability.caster_hp or caster:GetMaxHealth()

    ability.caster_hp_old = ability.caster_hp
    ability.caster_hp = caster:GetHealth()
end

--[[Author: Pizzalol
    Date: 14.02.2016.
    Negates incoming damage]]
function BacktrackHeal( keys )
    local caster = keys.caster
    local ability = keys.ability

    caster:SetHealth(ability.caster_hp_old)
end
так вызывай его по другому событию
 
Статус
В этой теме нельзя размещать новые ответы.
Реклама: