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

attempt to call method 'IsMechanical' (a nil value)

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

Оффлайн Primo

  • 43
  • Мощь: 0
Собственно, проблема понятна из названия. Битый час ломаю голову.
Взял ауру вампиризма с github.com/Pizzalol/SpellLibrary.

lua
Код
function VampiricAuraApply(event)
-- Variables
local attacker = event.attacker
local target = event.target
local ability = event.ability

if not target:IsMechanical() and not target:IsWard() then
ability:ApplyDataDrivenModifier(attacker, attacker, "modifier_vampiric_aura_lifesteal", {duration = 0.03})
end
end
[свернуть]

ability
Цитировать
   "skeleton_king_vampiric_aura_datadriven"
   {
      // General
      //-------------------------------------------------------------------------------------------------------------
      "BaseClass"            "ability_datadriven"
      "AbilityBehavior"            "DOTA_ABILITY_BEHAVIOR_PASSIVE | DOTA_ABILITY_BEHAVIOR_AURA"
      "AbilityUnitTargetTeam"         "DOTA_UNIT_TARGET_TEAM_FRIENDLY"
      "AbilityTextureName"         "skeleton_king_vampiric_aura"
      
      "AbilitySpecial"
      {
         "01"
         {
            "var_type"            "FIELD_INTEGER"
            "vampiric_aura_radius"   "900"
         }
         "02"
         {
            "var_type"            "FIELD_INTEGER"
            "vampiric_aura"         "15 20 25 30"
         }
      }
   
      "precache"
      {
         // Not really used in the Lifesteal action
         "particle"   "particles/units/heroes/hero_skeletonking/wraith_king_vampiric_aura_lifesteal.vpcf"
      }
   
      "Modifiers"
      {
         "modifier_vampiric_aura"
         {
            "Passive"          "1"
            "IsHidden"          "1"
            "IsBuff"         "1"
   
            "Aura"             "modifier_vampiric_aura_buff"
            "Aura_Radius"       "%vampiric_aura_radius"
            "Aura_Teams"       "DOTA_UNIT_TARGET_TEAM_FRIENDLY"
            "Aura_Types"       "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC | DOTA_UNIT_TARGET_CREEP"
         }
   
         "modifier_vampiric_aura_buff"
            {   
               "OnAttackLanded"       
               {
                  "RunScript"
               {
                  "ScriptFile"   "heroes/hero_skeleton_k/vampiric_aura.lua"
                  "Function"      "VampiricAuraApply"
               }
            }
          }
   
          "modifier_vampiric_aura_lifesteal"
          {
             "IsHidden"      "1"
             "OnDealDamage"
            {
               "Lifesteal"
               {
                  "Target"             "ATTACKER"
                  "LifestealPercent"      "%vampiric_aura"
               }
            }
         }
      }
   }
[свернуть]
« Последнее редактирование: 04-09-2016, 13:24:17 от Primo »

Оффлайн Илья

  • Супермодератор
  • 2041
  • Мощь: 19
Re: attempt to call method 'IsMechanical' (a nil value)
« Ответ #1 : 04-09-2016, 15:56:57 »
Во первых: хоть и проблема якобы "понятна", скидывай всегда лог консоли со своей ошибкой.

Во вторых:  проблема же "понятна"? Тебе пишут, что нет такого метода у того объекта (твоего таргета), у которого ты пытаешься его вызвать.

Тема с похожей проблемой.

Оффлайн ZLOY

  • Супермодератор
  • 396
  • Мощь: 5
Re: attempt to call method 'IsMechanical' (a nil value)
« Ответ #2 : 04-09-2016, 16:50:27 »
Метод IsMechanical() и все связанное с этим типом юнитов, был убран из доты некоторое время назад.

Оффлайн Primo

  • 43
  • Мощь: 0
Re: attempt to call method 'IsMechanical' (a nil value)
« Ответ #3 : 05-09-2016, 11:51:12 »
Метод IsMechanical() и все связанное с этим типом юнитов, был убран из доты некоторое время назад.

Спасибо.