А можно немного всё расшифровать, пожалуйста? Прям вот по полочками и кажду частичку, если не трудно.
Это общий подход для любого языка программирования - если вы используете какую-нибудь сложную конструкцию несколько раз (а MessageBox явно на карте будет не один), то можно всю повторяющуюся рутину вынести в отдельную функцию, а писать только то, что изменяется от раза к разу. На примере вашего
MessageBox ("/Maps/SingleMission/Scenario 1/quest1.txt");
Каждый раз в подобном случае вы будете повторять:
MessageBox - достаточно короткое название функции, но можно придумать и гораздо короче.
"/Maps/SingleMission/Scenario 1/" - путь у всех текстовых файлов вероятно будет один.
".txt" - расширение файла тоже не изменяется.
В результате всё, что будет повторятся, описывается один раз в новой функции, с удобным для вас и желательно коротким названием. В функцию передается только изменяющаяся часть - название файла. С помощью оператора ".." строчки склеиваются в одну. Второй параметр функции cb - аналогичен такому же второму параметру оригинального MessageBox (не буду объяснять его смысл, для этого есть документация). Второй параметр необязательный, можно его не указывать.
-- функция-обёртка вокруг MessageBox. Помещается где-нибудь в начале файла:
function MsgBox(text, cb)
MessageBox(GetMapDataPath()..text..'.txt', cb);
end
-- пример вызова сообщения, вместо MessageBox ("/Maps/SingleMission/Scenario 1/quest1.txt"); достаточно написать:
MsgBox('quest1');
Если вы критически осмотрите свой код, уверен найдете кучу похожих мест, где можно оптимизировать громоздкие конструкции.
P.S. Конечно, если планируется написать для карты 100 строк кода и всё, то можно на подобные советы не заморачиваться.