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

Статус
В этой теме нельзя размещать новые ответы.

LAPKI

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

kain

Активный
2 Окт 2015
125
63
steamcommunity.com
Проект
GreenCircleTD
1579396562283.png

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

LAPKI

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

LAPKI

Продвинутый
26 Окт 2018
271
61
  • Нравится
Реакции: Sannin и SniperX
20 Дек 2016
892
170

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

SniperX

Друзья CG
26 Фев 2018
539
100
Проект
Dota 2x4
Через дд вызвал скрипт, который записал местоположение кастера, при получении модифаера
Затем при движении вызвал скрипт, который должен взять это местоположение из прошлой функции
Вопрос: как взять значение с прошлой функции?
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
953
182
Сохранить это значение в таблицу caster?
 

SniperX

Друзья CG
26 Фев 2018
539
100
Проект
Dota 2x4
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
83
23
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
539
100
Проект
Dota 2x4
Ты неправильно написал.
Код:
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
 

Дикий Пёс

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

SniperX

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

LAPKI

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

Pancer

Активный
30 Мар 2017
127
5
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
232
34
Проект
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
так вызывай его по другому событию
 
Статус
В этой теме нельзя размещать новые ответы.
Реклама: