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

LAPKI

Активный
26 Окт 2018
127
29
а есть где то примеры зачем это надо в кастомках? чё ваще такое полиморфизм
ну наследование и полиморфизм помогают тебе писать меньше кода и структурировать его
а тут про полиморфизм
 
20 Дек 2016
824
133
ну наследование и полиморфизм помогают тебе писать меньше кода и структурировать его
а тут про полиморфизм
Мне кажется, вопрос скорее был о том, что из себя представляет полиморфизм в рамках луа.
 

kain

Пользователь
2 Окт 2015
54
17
steamcommunity.com
Проект
GreenCircleTD

Либо вопрос некорректен(слишком легко), либо он гораздо глубже....
 

LAPKI

Активный
26 Окт 2018
127
29
Мне кажется, вопрос скорее был о том, что из себя представляет полиморфизм в рамках луа.
то же самое что и везде, просто луа фактически не заточен под ооп из коробки, но в любом функциональном языке можно реализовать абстракцию ооп.
 

LAPKI

Активный
26 Окт 2018
127
29
  • Нравится
Реакции: SniperX
20 Дек 2016
824
133

Либо вопрос некорректен(слишком легко), либо он гораздо глубже....
Странно, у меня нет такого окна, если бы было, то не было бы вопроса. Буду искать, как его включить. Я и раньше предполагал, что оно должно быть, но не нашел, хотя я там нажал вообще все кнопки, которые есть.
 

SniperX

Друзья CG
26 Фев 2018
358
40
steamcommunity.com
Проект
Белоозерская Потасовка - Updated
Через дд вызвал скрипт, который записал местоположение кастера, при получении модифаера
Затем при движении вызвал скрипт, который должен взять это местоположение из прошлой функции
Вопрос: как взять значение с прошлой функции?
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 = дд)
 

ZLOY

Администратор
Команда форума
27 Июн 2016
699
85
Сохранить это значение в таблицу caster?
 

SniperX

Друзья CG
26 Фев 2018
358
40
steamcommunity.com
Проект
Белоозерская Потасовка - Updated
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
Вы про эту бессмыслицу? отнимать текущую позицию от текущей?
 

muRLoc

Пользователь
25 Ноя 2018
43
12
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

SniperX

Друзья CG
26 Фев 2018
358
40
steamcommunity.com
Проект
Белоозерская Потасовка - Updated
Ты неправильно написал.
Код:
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
 

Дикий Пёс

Продвинутый
28 Июн 2017
207
43
Проект
Petri Reborn
Вот теперь надо посчитать: сколько же он прошёл, но он не хочет выводить в консоль сколько прошёл, он выводит по типу этого:
Посмотреть вложение 864
а мне лайк ненадо да?
и что ты вообще хочешь сделать, зачем тебе разница двух векторов?
всё правильно он выводит: пройденное расстояние по x y z
 

SniperX

Друзья CG
26 Фев 2018
358
40
steamcommunity.com
Проект
Белоозерская Потасовка - Updated
а мне лайк ненадо да?
и что ты вообще хочешь сделать, зачем тебе разница двух векторов?
всё правильно он выводит: пройденное расстояние по x y z
я хочу чтобы при преодолении N-ного (500) расстояния происходило что-то
 
  • Нравится
Реакции: Wizardll

LAPKI

Активный
26 Окт 2018
127
29
я хочу чтобы при преодолении N-ного (500) расстояния происходило что-то
 

Pancer

Активный
30 Мар 2017
127
4
steamcommunity.com
Проект
MARVEL Heroes
Нашёл замечательный скрипт бэктрека войда на 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
 

xDes

Продвинутый
8 Ноя 2018
160
22
Проект
Boss Survival Adventure
Нашёл замечательный скрипт бэктрека войда на 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
так вызывай его по другому событию
 
Реклама: