Перейти к содержанию
#3393
Господа товарищи

Прошу поделиться мыслями.
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

Статистика

Приветствуем новейшего участника: leyu