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

[lua] Кастомные спавнеры крипов.

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

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Бывает что нужно заспавнить нейтралов, а точнее существ из npc_units_custom.txt, но они не умеют возвращаться на свое место(это если класс юнита npc_dota_creature, если класс npc_dota_neutral, такого не будет).
Если мы создаем npc_dota_neutral то "Creature" блок в datadriven будет недоступен :(
Что ж, для начала заспавним крипов.
Код
_G.Units = {} -- глобальная таблица существ. Почему глобальная? Потому что иногда мне необходимо из других скриптов обращаться к Units. Но сделать локальным будет лучше, если вам не нужно вызывать извне. Быстрее будет работать же.

function Spawn()
{
        local tpoint = Entities:FindByName( nil, "DIRE_SPAWNER"):GetAbsOrigin() -- в hammer editor сделать обязательно info_target с именем DIRE_SPAWNER
local current = CreateUnitByName("Demon_possessed", tpoint, true, nil, nil, DOTA_TEAM_NEUTRALS) -- создаем КАСТОМНОГО крипа.
print("Spawner: " .. current:GetUnitName()) -- просто тестовый вывод
InsertInUnitTable(current, tpoint)
}

function InsertInUnitTable(inserting_unit, inserting_point)
local inserting_data =
{
unit = inserting_unit,
point = inserting_point,
}
table.insert(Units, inserting_data)
end

Теперь мы должны сделать им возврат на их место если далеко ушли. Для этого делаем такой костыль с таймерами.
Код
function Ai_GetBack()
Timers:CreateTimer("get_back_units", {
          endTime = 5,
                callback = function()
            Ai_GetBack_Tick()
return 5
end })

end

function Ai_GetBack_Tick()
for _, un in pairs(Units) do
if un then
    if (un.point - un.unit:GetAbsOrigin()):Length2D() >= 900 then -- высчитываем расстояние от точки спавна до нахождения юнита, и если больше 900 то отдаем юниту насильный приказ вернутся на точку спавна.
un.unit:MoveToPosition(un.point)
end
end
end
end
И при запуске игры запускаем функцию Ai_GetBack().
Все. Теперь крип заспавненный и добавленный в таблицу с точкой спавна будет возвращаться насильно на свой спавн если далеко убежал.
Если вы знаете способ лучше, говорите.

Оффлайн Se7eN

  • Продвинутый
  • 298
  • Мощь: 11
  • King
Re: [lua] Кастомные спавнеры крипов.
« Ответ #1 : 22-07-2015, 23:11:24 »
я бы сделал их классом creature, а потом просто поменял им команду на нейтралов.

На место будут возвращаться да и тима будет нейтралов.

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Re: [lua] Кастомные спавнеры крипов.
« Ответ #2 : 23-07-2015, 08:36:00 »
я бы сделал их классом creature, а потом просто поменял им команду на нейтралов.

На место будут возвращаться да и тима будет нейтралов.
Через SetTeam? А это поможет о.О

Оффлайн fiCeVitka

  • Продвинутый
  • 48
  • Мощь: 0
Re: [lua] Кастомные спавнеры крипов.
« Ответ #3 : 23-07-2015, 12:30:51 »
Чтобы крипы возвращались на место достаточно в их описание добавить:
Код
"UseNeutralCreepBehavior"    "1"

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Re: [lua] Кастомные спавнеры крипов.
« Ответ #4 : 23-07-2015, 15:33:07 »
Чтобы крипы возвращались на место достаточно в их описание добавить:
Код
"UseNeutralCreepBehavior"    "1"
Значит тему можно удалять, бесполезна :)

Оффлайн fiCeVitka

  • Продвинутый
  • 48
  • Мощь: 0
Re: [lua] Кастомные спавнеры крипов.
« Ответ #5 : 23-07-2015, 19:49:23 »
CryDeS, да не, оставь, тут можно редактировать расстояние, и мб кто-нибудь еще что-нибудь прикрутит как условие

Оффлайн somsim

  • 22
  • Мощь: 0
  • Solar_Max_2
Re: [lua] Кастомные спавнеры крипов.
« Ответ #6 : 26-03-2017, 09:29:09 »
Т.к единственная тема со спавном. Не выходит! Да безусловно скорее всего у меня нет _G.Units и что делать тогда (делал через этот)... Как их связывать?
Жизнь без запятых чудесна.
И вабще. Люди должны понимать с полу-слова.

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Re: [lua] Кастомные спавнеры крипов.
« Ответ #7 : 26-03-2017, 09:45:07 »
Т.к единственная тема со спавном. Не выходит! Да безусловно скорее всего у меня нет _G.Units и что делать тогда (делал через этот)... Как их связывать?
Для начала, гайд устарел.
Проверьт так же существует ли твой юнит(заспавнь через читы -createhero <unit_name>), если все ок то проблема с кодом.
Спавнить можно след. кодом из кода сверху(остальное мусор):
Код
local vPoint = Entities:FindByName( nil, "spawner_name"):GetAbsOrigin() -- в hammer editor сделать обязательно info_target с именем spawner_name
local hUnit = CreateUnitByName("unit_name", vPoint, true, nil, nil, DOTA_TEAM_NEUTRALS) -- создаем КАСТОМНОГО крипа.

Оффлайн somsim

  • 22
  • Мощь: 0
  • Solar_Max_2
Re: [lua] Кастомные спавнеры крипов.
« Ответ #8 : 26-04-2017, 05:36:56 »
Для начала
Можешь расписать? Код целиком. Идея в Хаммере с инфо_таргет мне понравилась. Но у меня мыслей с самоубийством было меньше чем неудачных попыток заспавнить крипа.
Я уже не могу... На этом сайте я разве что все 21 страницу с "скрипт" раздела не пролистал. (крип спавнится и с его параметрами я полностью разобрался(осталсялуа))
Жизнь без запятых чудесна.
И вабще. Люди должны понимать с полу-слова.

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Re: [lua] Кастомные спавнеры крипов.
« Ответ #9 : 26-04-2017, 11:52:00 »
Тут и так все расписано, за тебя делать никто не будет. Вон функция Spawn, вызывай ее когда тебе надо и будет тебе профит.

Оффлайн somsim

  • 22
  • Мощь: 0
  • Solar_Max_2
Re: [lua] Кастомные спавнеры крипов.
« Ответ #10 : 26-04-2017, 15:46:00 »
профит.
:| буквально вчера не работал - заработал 0_0. Раз уж отписываюсь не подскажешь где модели крипов хранятся?(Сейчас на вики поищу)
Жизнь без запятых чудесна.
И вабще. Люди должны понимать с полу-слова.

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Re: [lua] Кастомные спавнеры крипов.
« Ответ #11 : 26-04-2017, 16:08:39 »
:| буквально вчера не работал - заработал 0_0. Раз уж отписываюсь не подскажешь где модели крипов хранятся?(Сейчас на вики поищу)
В папке models? Сложна.

Оффлайн somsim

  • 22
  • Мощь: 0
  • Solar_Max_2
Re: [lua] Кастомные спавнеры крипов.
« Ответ #12 : 26-04-2017, 16:30:55 »
Сложна.
В том то и проблема: что там не все:) штук 7 неболее
Жизнь без запятых чудесна.
И вабще. Люди должны понимать с полу-слова.

Оффлайн KEKMAN

  • 168
  • Мощь: 2
  • Dota forever <3
Re: [lua] Кастомные спавнеры крипов.
« Ответ #13 : 26-04-2017, 16:55:26 »
В том то и проблема: что там не все:) штук 7 неболее
В хаммере можно посмотреть модельки и пути к ним через свойства
« Последнее редактирование: 26-04-2017, 16:58:40 от mrlikelot »

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Re: [lua] Кастомные спавнеры крипов.
« Ответ #14 : 26-04-2017, 17:10:42 »
В том то и проблема: что там не все:) штук 7 неболее
По голове тебе за невнимательность.