С if, по-моему, самый правильный и логичный вариант. Но можно еще поставить триггер на вызов первой функции и, уже в ней, переназначить на вторую.
А как это правильно в lua написать? Можно небольшой пример.
И вот еще что. Почему карта с диалоговой сценой первый раз работает нормально, а при последующих запусках карты при начале проигрывания диалога игра вылетает. Удаляешь скрипт запуска диалога все нормально. Что делать не знаю.