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

Ошибка с Projectile

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

Оффлайн fiCeVitka

  • Продвинутый
  • 48
  • Мощь: 0
Ошибка с Projectile
« : 11-07-2015, 14:39:03 »
У меня есть скилл, в котором выбирается союзный юнит и в него летит Projectile. Потом нужно отловить этого юнита в Lua, вроде просто, но почему-то выдает ошибку, что переменная пуста.
Код
 "OnSpellStart"
        {
        "TrackingProjectile"
        {
        "Target"            "TARGET"
        "EffectName" "particles/units/heroes/hero_treant/treant_leech_seed_projectile.vpcf"
        "Dodgeable" "0"
        "ProvidesVision" "1"
        "VisionRadius" "200"
        "MoveSpeed"        "400"
        "SourceAttachment" "DOTA_PROJECTILE_ATTACHMENT_ATTACK_1"
        }       
        }
        "OnProjectileHitUnit"
        {
        "DeleteOnHit" "1"
        "RunScript"
        {
        "ScriptFile" "abilities/treant.lua"
        "Function" "Seed"
        "Target"        "TARGET"
        "Heal"          "%heal"
        "Radius"        "%radius"
        }
        }

Lua
Код
function Seed( keys )
local caster = keys.CASTER
local target = keys.Target
local heal = keys.Heal
local radius = keys.Radius
Print(caster.. ','.. target..','..heal..','..radius )
end

Ошибка
Код
Script Runtime Error: ...dota_addons\moomoo\scripts\vscripts\abilities\treant.lua:8: attempt to concatenate local 'target' (a nil value)

Оффлайн MeowHellYeah

  • 66
  • Мощь: 0
  • Жук
Re: Ошибка с Projectile
« Ответ #1 : 11-07-2015, 14:58:25 »
fiCeVitka, ошибка в 8 строке файла treant.lua. Какая из них восьмая?

Оффлайн fiCeVitka

  • Продвинутый
  • 48
  • Мощь: 0
Re: Ошибка с Projectile
« Ответ #2 : 11-07-2015, 15:17:05 »
MeowHellYeah, с Print

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Ошибка с Projectile
« Ответ #3 : 11-07-2015, 15:21:58 »
local caster = keys.caster
local target = keys.target
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн Se7eN

  • Продвинутый
  • 298
  • Мощь: 11
  • King
Re: Ошибка с Projectile
« Ответ #4 : 11-07-2015, 15:28:49 »
Что надо сделать этим спеллом?

Ты скажи, я тебе напишу скрипт. У тебя там фигня полная

Оффлайн fiCeVitka

  • Продвинутый
  • 48
  • Мощь: 0
Re: Ошибка с Projectile
« Ответ #5 : 11-07-2015, 15:29:16 »
MeowHellYeah, все, решил, там ошибка в другом была, я перед функцией глобальной переменной присваивал значение

Оффлайн fiCeVitka

  • Продвинутый
  • 48
  • Мощь: 0
Re: Ошибка с Projectile
« Ответ #6 : 11-07-2015, 15:29:39 »
Se7eN, я умею кодить :)

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Ошибка с Projectile
« Ответ #7 : 11-07-2015, 15:35:13 »
Цитата: fiCeVitka
Runtime Error: ...dota_addons\moomoo
Палево
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн fiCeVitka

  • Продвинутый
  • 48
  • Мощь: 0
Re: Ошибка с Projectile
« Ответ #8 : 11-07-2015, 15:51:09 »
Slavko, иллюзия скорее)

Оффлайн Se7eN

  • Продвинутый
  • 298
  • Мощь: 11
  • King
Re: Ошибка с Projectile
« Ответ #9 : 11-07-2015, 16:45:35 »
moomoo generation возрождаем?

Оффлайн fiCeVitka

  • Продвинутый
  • 48
  • Мощь: 0
Re: Ошибка с Projectile
« Ответ #10 : 11-07-2015, 16:50:15 »
Se7eN, нет.
Еще такой вопрос. В противников вокруг тоже должен полететь эффект. Но не получается нормально указать вектор противника.
Код
local enemies = FindUnitsInRadius( DOTA_TEAM_GOODGUYS, target:GetOrigin(), target, radius, DOTA_UNIT_TARGET_TEAM_ENEMY, DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC, 0, 0, false )
        for _,unit in pairs(enemies) do
            local info =
          {
             Target = unit,
             Source = target,
             Ability = caster:GetAbilityByIndex(0),   
             EffectName = "particles/units/heroes/hero_treant/treant_leech_seed_projectile.vpcf",
             vSpawnOrigin = target:GetAbsOrigin(),
             fDistance = 600,
             fStartRadius = 64,
             fEndRadius = 64,
             bHasFrontalCone = false,
             bReplaceExisting = false,
             iUnitTargetTeam = DOTA_UNIT_TARGET_TEAM_ENEMY,
             iUnitTargetFlags = DOTA_UNIT_TARGET_FLAG_NONE,
             iUnitTargetType = DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC,
             fExpireTime = GameRules:GetGameTime() + 10.0,
             bDeleteOnHit = true,
             vVelocity = unit:GetBaseVelocity() * 400,
             bProvidesVision = true,
             iVisionRadius = 200,
             iVisionTeamNumber = target:GetTeamNumber()
          }
          projectile = ProjectileManager:CreateLinearProjectile(info)
        end   
Вся проблема в том, что урон наносится противникам сзади героя, все это из-за вектора
Код
 vVelocity = unit:GetBaseVelocity() * 400
« Последнее редактирование: 11-07-2015, 17:05:03 от fiCeVitka »

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Ошибка с Projectile
« Ответ #11 : 11-07-2015, 18:35:20 »
fiCeVitka, почему ты не используешь GetAbsOrigin() ?
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн fiCeVitka

  • Продвинутый
  • 48
  • Мощь: 0
Re: Ошибка с Projectile
« Ответ #12 : 12-07-2015, 13:31:03 »
Slavko, использовал, не работает

Оффлайн Se7eN

  • Продвинутый
  • 298
  • Мощь: 11
  • King
Re: Ошибка с Projectile
« Ответ #13 : 12-07-2015, 13:56:28 »
так ты не ошибайся когда используешь)) и всё будет хорошо) уверяю)

Оффлайн fiCeVitka

  • Продвинутый
  • 48
  • Мощь: 0
Re: Ошибка с Projectile
« Ответ #14 : 12-07-2015, 13:59:24 »
Se7eN,
Код
[ W General              ]: ERROR: CreateLinearProjectile() called with non-zero vertical velocity! Projectile velocity must be two-dimensional.
Ошибка, с вектором все-таки проблемы
Может я чего-нибудь не понимаю? Можешь код написать?
« Последнее редактирование: 12-07-2015, 14:18:17 от fiCeVitka »