Урок [Гайд] Урон от лавы

  • Автор темы Автор темы DDSuper
  • Дата начала Дата начала
  • Официальное уведомление администрации CustomGames.RU
    В связи с масштабным техническим сбоем в инфраструктуре прежнего хостинг-провайдера (Beget), работа форума CustomGames.RU была оперативно перенесена на новую серверную площадку и развёрнута из резервной копии базы данных.

    • Безопасность данных: учётные записи и данные пользователей находятся в полной безопасности. Все пароли и защищаемые параметры хранятся исключительно в криптографически зашифрованном (хэшированном) виде — никаких критических инцидентов для аккаунтов пользователей не произошло.
    • Временные технические ограничения: на этапе синхронизации файлового хранилища часть статических материалов (пользовательские аватары и архивные вложения) временно недоступна. По мере получения доступа к файловым архивам все материалы будут восстановлены в полном объёме.

DDSuper

Друзья CG
31 Май 2019
405
58
Привет, это небольшой гайд по удивительному сообществу Moddota(customgames.ru).

Сегодня мы будем делать лаву, когда герой наступит на лаву он будет получать урон в интервал 0.3.

Сначала создайте блок триггера:
bandicam 2020-04-13 16-47-21-880.gif

Теперь назовите его, lava и назовите в Entity Scripts: lavadamage.lua
bandicam 2020-04-13 17-17-35-825.gif

Далее мы идем в Outputs и нажимаем на её, добавляя следующее на картинке.
bandicam-2020-04-13-16-49-42-541.gif

Теперь откройте папку ваш_проект/scripts/vscripts в вашем проекте, создайте в ней файл lavadamage.lua и поместите этот скрипт в этот же файл.

Lua:
LinkLuaModifier("modifier_lava_damage","lavadamage.lua", LUA_MODIFIER_MOTION_NONE)
function StartTouchDamage( trigger )
    local ent = trigger.activator

    ent:AddNewModifier(ent, self, "modifier_lava_damage", {})
end

function EndTouch( trigger )
    local ent = trigger.activator
    ent:RemoveModifierByName("modifier_lava_damage")
end

-----------------------------------------------------------------------------------------

modifier_lava_damage = modifier_lava_damage or class({})

function modifier_lava_damage:IsHidden()
    return true
end

function modifier_lava_damage:IsPassive()
    return false
end

function modifier_lava_damage:IsPurgable()
    return false
end

function modifier_lava_damage:OnCreated()
    if not IsServer() then return end
    self:StartIntervalThink( 0.3 )
end

function modifier_lava_damage:OnIntervalThink()
    if IsServer() then
        local damage_table = {
            victim = self:GetParent(),
            attacker = self:GetParent(),
            ability = self,
            damage = 50,
            damage_type = DAMAGE_TYPE_PURE
        }
        ApplyDamage(damage_table)
    end
end

Вот и конечный результат!
dota2-2020-04-13-17-07-05-226 (1).gif

Перевод гайда: CrySidingWorld
Создатель гайда: DiNaSoR
Link: https://web.archive.org/web/2019051...om/forums/discussion/793/tutorial-lava-damage

Спасибо за внимание!
 

Вложения

  • bandicam-2020-04-13-16-49-42-541.gif
    bandicam-2020-04-13-16-49-42-541.gif
    836.8 KB · Просмотры: 92
Последнее редактирование:
  • Нравится
Реакции: Sannin и vulkantsk
Реклама: