CustomGames.ru - Dota 2 пользовательские игры

Проблема со способностью

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн fiCeVitka

  • Продвинутый
  • 48
  • Мощь: 0
Проблема со способностью
« : 23-07-2015, 13:16:50 »
Делаю скилл, как 3 способность у ск, только урон наносится в зависимости от силы героя.
Часть кода
Код
       "Modifiers"
{   
"modifier_pudge_skill4_buff"
{
"IsHidden" "1"
"Passive" "1"

"OnAttack"
{
"ApplyModifier"
{
"ModifierName" "modifier_pudge_skill4"
"Target" "TARGET"
"Duration" "%duration"
}
}
            }


"modifier_pudge_skill4"
{
"IsHidden" "0"
"IsDebuff" "1"

"OnDeath"
{
"ActOnTargets"
{
"Target"
{
"Center"  "UNIT"
"Radius" "%radius"
"Teams" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"Types" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"
}

"Action"   
{
"RunScript"
{
"ScriptFile" "abilities/butcher.lua"
"Function" "Ult"
"Percent"       "%percent"
"Damage"        "%damage"
}
}
}
}
            }
Lua
Код
function Ult( keys )
local caster = keys.Caster
local target = keys.TARGET
local perc = keys.Percent
local dmg = keys.Damage
ApplyDamage({victim = target, attacker = caster, damage = dmg+caster:GetStrength()*perc*0.01, damage_type = DAMAGE_TYPE_MAGICAL})
end

Ошибка в том, что игра не видит кастера.
Код
[ W VScript              ]: Script Runtime Error: ...ota_addons\moomoo\scripts\vscripts\abilities\butcher.lua:6: attempt to index local 'caster' (a nil value)

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Проблема со способностью
« Ответ #1 : 23-07-2015, 13:37:41 »
Даже если бы OnDeath выдавало убийцу - дамаг юнитам вокруг наносился бы от того, кто юнита убил, и это не обязательно должен быть пудж
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Проблема со способностью
« Ответ #2 : 23-07-2015, 13:42:49 »
Как вариант - в луа скрипте кастера заносить как  Entities:FindByName("npc_dota_hero_pudge").  Но в таком случае может ыть конфликт, если на карте 2 пуджа будет
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Проблема со способностью
« Ответ #3 : 23-07-2015, 13:48:27 »
Или вот еще:
Когда модификатор присваиваешь - запускай там же скрипт. В функции делай таймер с 0.03 ретурном. В нем делай if not target:IsAlive() then.. и там дамаг наносишь и ретурнишь таймеру nil. Надеюсь на мысль натолкнул.
P.S. Короче блок OnDeath в модификаторе убираешь и делаешь OnCreated, и оттуда запускаешь функцию с таймером. Плюс не забудь сделать проверку перед дамагом - есть ли модификатор у юнита еще или пропал уже.
« Последнее редактирование: 23-07-2015, 13:50:44 от Slavko »
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн Se7eN

  • Продвинутый
  • 298
  • Мощь: 11
  • King
Re: Проблема со способностью
« Ответ #4 : 23-07-2015, 15:24:58 »
Отдебажь таблицу keys на OnDeath

надеюсь найдешь и мертвеца и убиватора

Оффлайн doter.ua

  • Друзья CG
  • 272
  • Мощь: 1
Re: Проблема со способностью
« Ответ #5 : 24-07-2015, 06:56:11 »
fiCeVitka, Не уверен что трабл в этом, но укажи таргет "Кастер" в ранскрипте.
гайды
сурпрайз mthfckr :D

[свернуть]

Оффлайн fiCeVitka

  • Продвинутый
  • 48
  • Мощь: 0
Re: Проблема со способностью
« Ответ #6 : 24-07-2015, 13:14:04 »
doter.ua, пробовал, не помогает, ладно, пока оставлю этот костыль, но потом надо будет что-нибудь придумать
Цитата: Slavko
Как вариант - в луа скрипте кастера заносить как  Entities:FindByName("npc_dota_hero_pudge").  Но в таком случае может ыть конфликт, если на карте 2 пуджа будет

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Проблема со способностью
« Ответ #7 : 24-07-2015, 15:15:04 »
fiCeVitka, попробуй с таймером. Должно работать как часы, в общем-то
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн doter.ua

  • Друзья CG
  • 272
  • Мощь: 1
Re: Проблема со способностью
« Ответ #8 : 24-07-2015, 17:57:32 »
fiCeVitka,  бихевер  таргет
гайды
сурпрайз mthfckr :D

[свернуть]