Решено Триггер

  • Автор темы Автор темы Statham
  • Дата начала Дата начала

Statham

Пользователь
9 Ноя 2018
29
0
Проект
The story of one knight
В общем, есть у меня триггер, при касании которого, он должен спавнить одного скелета. И он работает, и все замечательно, кроме одного НО...
До того момента, как ты коснешься триггера, на карте уже имеется шесть заспавненных скелетов как раз-таки на той самой точке, где должен спавниться один скелет. Так вот, у меня возникает вопрос, как избавиться от тех скелетов, что спавнятся вне зависимости от касания триггера?
Вот, сам код триггера:
Код:
function Spawn( trigger )
        local hHero = trigger.activator
        local vPoint = Entities:FindByName( nil, "spawner_skeletons"):GetAbsOrigin() 
        local hUnit = CreateUnitByName("npc_dota_creature_custom_skeleton", vPoint, true, nil, nil, DOTA_TEAM_NEUTRALS)
        Say(nil,"Sample text", false)    
end
 
в хамере есть галочка в настройках триггера: "fire once only" влючи он сработает только 1 раз, вдруг тебе поможет....
 
в хамере есть галочка в настройках триггера: "fire once only" влючи он сработает только 1 раз, вдруг тебе поможет....
Да, галочка есть. Дело-то и не в ней вовсе, а в том, что мобы появляются ДО активации триггера. При том, что триггер может активировать только герой, либо подконтрольное ему существо.
 
Да, галочка есть. Дело-то и не в ней вовсе, а в том, что мобы появляются ДО активации триггера. При том, что триггер может активировать только герой, либо подконтрольное ему существо.
Либо у тебя они спавняться через код луа тобой, либо ты спрашиваешь триггер. На крайняк принтуй функцию которая июзается при затрагивает триггера.
 
Либо у тебя они спавняться через код луа тобой, либо ты спрашиваешь триггер. На крайняк принтуй функцию которая июзается при затрагивает триггера.
Они как раз и спавнятся через файл triggers.lua (Используемый код я оставлял в самом начале). Только эта функция до того "простая", что я никак не могу понять, почему их спавнится именно 6 и почему это происходит ДО затрагивания триггера. Хотя, на самом деле, все должно быть элементарно: персонаж вступает в зону триггера => срабатывает скрипт => спавнятся скелеты. У меня уже есть мысль, что тут как-то замешан info_target, который служит точкой, где они должны заспавнится, но это как-то слишком...глупо, поскольку в скрипте он и выполняет роль этой самой точки для спавна :rolleyes:
На всякий случай, для более отчетливого понимания проблемы:
Без213ымянный.png
 
Они как раз и спавнятся через файл triggers.lua (Используемый код я оставлял в самом начале). Только эта функция до того "простая", что я никак не могу понять, почему их спавнится именно 6 и почему это происходит ДО затрагивания триггера. Хотя, на самом деле, все должно быть элементарно: персонаж вступает в зону триггера => срабатывает скрипт => спавнятся скелеты. У меня уже есть мысль, что тут как-то замешан info_target, который служит точкой, где они должны заспавнится, но это как-то слишком...глупо, поскольку в скрипте он и выполняет роль этой самой точки для спавна :rolleyes:
На всякий случай, для более отчетливого понимания проблемы:
Посмотреть вложение 385
Тебе же сказали, напиши в функции print('spawn') и посмотри в консоли, сколько раз этот spawn туда выводится, а потом возвращайся сюда
 
Тебе же сказали, напиши в функции print('spawn') и посмотри в консоли, сколько раз этот spawn туда выводится, а потом возвращайся сюда
В общем, до того, как загружается аддон, скрипт сам по себе создает таймер и спавнит npc 6 раз (Ну и принтует, соответственно, столько же), после чего, благополучно, перестает это делать. А мне НЕ нужно, чтобы он ДО момента активации срабатывал, я об этом и спрашивал изначально.
 
В общем, до того, как загружается аддон, скрипт сам по себе создает таймер и спавнит npc 6 раз (Ну и принтует, соответственно, столько же), после чего, благополучно, перестает это делать. А мне НЕ нужно, чтобы он ДО момента активации срабатывал, я об этом и спрашивал изначально.
Попробуй функцию переименовать и посмотреть остальные ентити, мб какое ентити вызвает функцию в триггере
 
Попробуй функцию переименовать и посмотреть остальные ентити, мб какое ентити вызвает функцию в триггере
Да, оказалось, ты был прав. Стоило переименовать функцию и все заработало так, как нужно, поэтому вопрос исчерпан)
 
Реклама: