Это делается не через #def
----
Сейчас глянул один из старых проектов, и если я правильно помню, то нужно делать вот так:
Допустим тебе нужен массив с именем
g_zones1) В скрипте
handlers.gs, объявляешь пустой массив
Код:
tab g_zones;
! Объявлять нужно в самом начале файла
ВНЕ всех функций.
2) В том же скрипте в функции
HandlerGameInit() вставляешь такой код:
Код:
zones = tab(ZONES_MAX1);//Создаем временный инициализирующий массив нужного размера
for(i = 0;i < ZONES_MAX1;i++)
{
//В этом цикле можно проинициализировать глобальный массив нужными значениями
//Так же если нужен многомерный массив, то инициализировать его тоже можно здесь
//например так:
zones[i] = tab(ZONES_MAX2);
//получим двумерный массив размерностью [ZONES_MAX1][ZONES_MAX2]
//можно, кстати в каждом элементе держать массивы разного размера (получится, что-то вроде ArrayList в других языках
}
//Инициализацию не обязательно делать в цикле, можно как угодно. Можно ее вообще не делать если нужен пустой массив.
g_zones = zones;//Инициализируем глобальный массив с помощью локального
Здесь
ZONES_MAX1 и
ZONES_MAX2 константы которые можно задать в def.gs.
3) После этого массив g_zones будет доступен во всех остальных скриптах по своему имени, например:
Код:
g_zones[1][2]
------
Для примера можешь расковырять мою игру Dizzy's New Adventure, там в коде все это есть.
Саму игру можно скачать здесь:
https://verm-v.itch.io/dizzys-new-adventure-demoТема на форуме к сожалению была утеряна.
Там в описании написано, что используется модифицированный движок версиии 2.4, а в самой игре пишется, что версия движка 2.5beta. Я уже сейчас не помню точно, чем он отличается от v2.4 или v2.6.
Но точно могу сказать, что там исправлен баг с синхронизацией при скроллинге. Есть возможность переключения видеорежимов на лету и вроде бы поправлена одна из комманд обработки клавиатуры.