Simple Trigger that calls Lua:ru

From Valve Developer Community
Jump to: navigation, search
Dead End - Icon.png
This article has no links to other VDC articles. Please help improve this article by adding links that are relevant to the context within the existing text.
January 2024

В данном примере мы создадим триггер, который будет вызывать скрипт lua.

  • Шаг 1: Создайте box(коробку) с помощью инструмента block tool (Shift+B). Наложите на созданный объект материал "toolstrigger.vmat" для того, чтобы он стал триггером в игре. Таким образом он не будет взаимодействовать с другими объектами в игре, т.е. модель не будет иметь collision и блокировать других юнитов в игре.
  • Шаг 2: Выберете box(коробку), нажмите в меню "Tools > Tie To Entity" (Ctrl+T). Таким образом вы привяжете ваш box(коробку) к сущности или объекту, поведение которого уже можно настроить.
  • Шаг 3: Выберете созданный триггер и измените его класс на "trigger_hero". Этот триггер запустится когда герой войдет в регион триггера, который мы создали.
  • Шаг 4: Задайте имя триггера в поле Name, допустим это будет trigger_example.
  • Шаг 5: Задайте путь к файлу скрипта Lua в поле Entity Scripts. Обычно файл находится в папке .../dota_ugc/game/dota_addons/myaddon/scripts/vscripts. Путь к файлу в данном случае будет просто название скрипта example.lua.

Пример кода на Lua:

function OnStartTouch(trigger)

	print(trigger.activator)
	print(trigger.caller)
	
end

function OnEndTouch(trigger)

	print(trigger.activator)
	print(trigger.caller)
	
end
  • Шаг 6: Два раза щелкните на триггере или нажмите Alt+Enter, чтобы открыть свойства нашего объекта. Выберете вкладку Outputs.
  • Шаг 7: Добавьте событие output с именем "OnStartTouch". В поле "Target entities named" выберете, созданный нами триггер trigger_example. В поле "Via this input" выберет событие "CallScriptFunction". В поле "With a parameter override of" введите имя функции, которое будет вызываться, когда запустится наш триггер.
  • Шаг 8: Создайте еще одно событие с такими же параметрами как и в шаге 7. В поле "With a parameter override of" введите имя функции "OnEndTouch". После выполненных действий во вкладке Outputs вы должны получить следующее:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouch trigger_example CallScriptFunction OnStartTouch 0.00 No
Io11.png OnEndTouch trigger_example CallScriptFunction OnStartTouch 0.00 No

Готово, теперь запустите игру с помощью F9 и попробуйте зайти в ваш триггер героем. Откройте консоль VConsole и убедитесь, что выводятся сообщения.