Хочу сделать открывающиеся ворота при убийстве босса

HakerStone

Новичок
6 Мар 2024
5
0
Проект
Foreign Lands - Чужие Земли
В общем я сперва делал открытие ворот в самом редакторе (Hammer), через outputs, то есть я назначал на босса с именем (заранее присвоенным), что если ты умер, тогда найди ворота и point_simple_obstruction (непроходимую стену) и открой(disable, TurnOff), но потом понял, что у меня боссы бегают за героем через всю карту и прописал им спавн через метки (info_target). И теперь я не особо понимаю как сделать, чтобы при убийстве этого босса открылись эти самые ворота , подскажите кто знает, может я туплю и это можно как то сделать опять же в самом редакторе или все таки нужно прописывать функцию ? И как тогда ее писать ? Примерно я понимаю, что нужно написать :
if killedUnit:GetUnitName() == "troll_boss" then
.....но вот тут не понимаю как прописать им чтобы ворота открылись (
А вообще в идеале я хочу чтобы из боссов дропались шмотки (это я уже сделал):

function LandsMode:vahh(data)
local killed_unit = EntIndexToHScript(data.entindex_killed)
print(killed_unit:GetUnitName())

-- Выподение лотус орба из Босса из древнего леса
if killed_unit:GetUnitName() == 'npc_dota_neutral_zver_boss' then
CreateDrop("item_lotus_orb", killed_unit:GetAbsOrigin())
end

-- Выподение мидаса из Босса кобольта
if killed_unit:GetUnitName() == 'npc_dota_neutral_kobold_boss' then
CreateDrop("item_hand_of_midas", killed_unit:GetAbsOrigin())
end

-- Выподение Дагона из Босса шамана
if killed_unit:GetUnitName() == 'npc_dota_neutral_forest_troll_high_priest_boss' then
CreateDrop("item_dagon_3", killed_unit:GetAbsOrigin())
end

-- Выподение кирасы из Босса голема
if killed_unit:GetUnitName() == 'npc_dota_neutral_golem_boss' then
CreateDrop("item_assault", killed_unit:GetAbsOrigin())
end

-- Выподение шивы из Босса призрака
if killed_unit:GetUnitName() == 'npc_dota_neutral_fel_beast_boss' then
CreateDrop("item_shivas_guard", killed_unit:GetAbsOrigin())
end
end

и когда ты подходишь к воротам они проверяли, есть ли она у тебя , потом забирали ее и открывались
Помогите пожалуйста
 

Вложения

  • 2024-03-06_02-15-22.png
    2024-03-06_02-15-22.png
    833 KB · Просмотры: 8
1:20 показано как работают ворота + ключ
Я чего-то туплю и не могу найти сами ворота, не подскажешь, в каком именно месте ?
1709727456360.png
Тут точно не оно, там пути и библиотека таймеров:
1709727621268.png
Если я правильно понимаю в скрипте должно проверяться есть ли айтем item_key_enique и тогда происходит открытие, но я чего-то не нашел этого, может я не там копаюсь?

Карту загрузил , открыл, но я там не понял (
 
ты карту через hammer открыл ?
триггер увидел ?
Там есть связанный файл открой его и посмотри
 
  • Нравится
Реакции: HakerStone
ты карту через hammer открыл ?
триггер увидел ?
Там есть связанный файл открой его и посмотри
Да нашел trigger_gate, но я там не очень понимаю как работает.
Я сделал вот так, поскольку пока что не понимаю как с триггером сделать.

function OpenGatesAndRemoveObstruction(killedUnit)
local bossName = "troll_boss"

if killedUnit:GetUnitName() == bossName then
local gates = Entities:FindAllByName("vorota_1")
for _, gate in pairs(gates) do
gate:Open() -- не понимаю какой тут должен быть метод, то ли open, то ли TornOff или вообще remove
end

local obstructions = Entities:FindAllByName("gate_1")
for _, obstruction in pairs(obstructions) do
obstruction:RemoveSelf() -- удалить барьеры (опять же по методу не понятно)
end
end
end

Но так не работает (
Вот тут я еще понимаю, что идет проверка на то, есть ли предмет в инвентаре и потом удаляет его:
1709760914838.png
Но я не понимаю дальше код, мне его нужно как то в несколько триггеров сделать или вообще не так?
Тут где переменная _gate это триггер ?
1709761012241.png

А по поводу карты, я её загрузил, но там вместо ворот вот такое :

1709761186053.png
На них даже имени нет
1709761291564.png
Крч очень видимо жестко туплю и что-то не так делаю, мб я не так открыл её?
 
Ты сначала попробуй скопировать в свой проект без изменений, работает или нет. Потом уже меняй
Ты скопировал префаб, а не объект
Префабы как правило хранятся там же где и карты maps/prefabs
1709761837248.png
 
Последнее редактирование:
  • Нравится
Реакции: HakerStone
Ты сначала попробуй скопировать в свой проект без изменений, работает или нет. Потом уже меняй
Ты скопировал префаб, а не объект
Префабы как правило хранятся там же где и карты maps/prefabs
Посмотреть вложение 2107
Все, все понял. Спасибо за все и за терпение )
 
Реклама: