Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3329
Старый 04.04.2021, 03:29
  #3329
^
the023
📖
Регистрация: 07.05.2016
Сообщения: 8
Регистрация: 07.05.2016
Сообщения: 8
Восклицание
Re: Скрипты

Господа товарищи

Прошу поделиться мыслями.

function BindTriggerToObject(object, handler)
Trigger(OBJECT_TOUCH_TRIGGER, object, handler)
end

RPGEngine.Init = function()
for i, player in players do
for j, object in player.RPG.BUILDINGS do
local handler = 'EnterBuilding('..player.key..", "..'"'..object.key..'")'
BindTriggerToObject(object.name, handler)
end
end
end

 

player - это таблица, которую надо параметром передать в хэндлер. Хэндлер object_touch триггера передается сейчас строкой (как в примере).

То есть.
Для неких глобальных таблиц добавляется поле со строкой куда помещается дословно имя таблицы и уже оно подставляется в хэндлер (т.е. для таблицы player1 = {key='player1'}) 

Но таблиц поменьше довольно много и для каждой писать ключ довольно геморно. Оборачивание хэндлера в анонимную функцию лишено смысла - замыкания не поддерживаются тут, локальная функция не имеет доступа к внешнему окружению.

Если кто-то шарит за это, отпишитесь.
__________________
eugnazaroff

создание скриптов к HOMM V
eugnazaroff

создание скриптов к HOMM V
the023 вне форума
Ответить с цитированием