Список скриптовых констант
Автор: zmpeter 01.07.2009 14:11
Этот список хранится в файле export.lgc.//----------------------------------
1)константы для функций, работающих с вводом-выводом
#define VK_CANCEL 0x03
#define VK_BACK 0x08//00
#define VK_TAB 0x09
#define VK_CLEAR 0x0C
#define VK_RETURN 0x0D
#define VK_ESCAPE 0x1B
#define VK_SPACE 0x20
#define VK_PRIOR 0x2100
#define VK_NEXT 0x2200
#define VK_END 0x2300
#define VK_HOME 0x2400
#define VK_LEFT 0x2500
#define VK_UP 0x2600
#define VK_RIGHT 0x2700
#define VK_DOWN 0x2800
#define VK_SELECT 0x2900
#define VK_PRINT 0x2A00
#define VK_EXECUTE 0x2B00
#define VK_SNAPSHOT 0x2C00
#define VK_INSERT 0x2D00
#define VK_DELETE 0x2E00
#define VK_HELP 0x2F00
#define VK_NUMPAD0 0x6000
#define VK_NUMPAD1 0x6100
#define VK_NUMPAD2 0x6200
#define VK_NUMPAD3 0x6300
#define VK_NUMPAD4 0x6400
#define VK_NUMPAD5 0x6500
#define VK_NUMPAD6 0x6600
#define VK_NUMPAD7 0x6700
#define VK_NUMPAD8 0x6800
#define VK_NUMPAD9 0x6900
#define VK_MULTIPLY 0x6A00
#define VK_ADD 0x6B00
#define VK_SEPARATOR 0x6C00
#define VK_SUBTRACT 0x6D00
#define VK_DECIMAL 0x6E00
#define VK_DIVIDE 0x6F00
#define VK_F1 0x7000
#define VK_F2 0x7100
#define VK_F3 0x7200
#define VK_F4 0x7300
#define VK_F5 0x7400
#define VK_F6 0x7500
#define VK_F7 0x7600
#define VK_F8 0x7700
#define VK_F9 0x7800
#define VK_F10 0x7900
#define VK_F11 0x7A00
#define VK_F12 0x7B00
#define VK_F13 0x7C00
#define VK_F14 0x7D00
#define VK_F15 0x7E00
#define VK_F16 0x7F00
#define VK_F17 0x8000
#define VK_F18 0x8100
#define VK_F19 0x8200
#define VK_F20 0x8300
#define VK_F21 0x8400
#define VK_F22 0x8500
#define VK_F23 0x8600
#define VK_F24 0x8700
#define VK_NUMLOCK 0x90
#define VK_SCROLL 0x91
//----------------------------------
2) для функции SetGraphDetail()
#define GRAPHDETAIL_LOW 3
#define GRAPHDETAIL_MEDIUM 5
#define GRAPHDETAIL_HIGHEST 9
//----------------------------------
3)для функции SetInputType()
#define INPUT_TYPE_KEYB_AND_MOUSE 0
#define INPUT_TYPE_KEYB_AND_GAMEPAD 1
//----------------------------------
4)Параметры для работы с отношениями армий GetRelation(),SetRelation()
#define RELATION_NEUTRAL 0
#define RELATION_ENEMY 1
#define RELATION_FRIEND 2
//----------------------------------
5)Параметры для GetStatistics(), CalcStatistics()
Эти константы остались от старых проектов и в Alien Shooter 2 не используются.
//----------------------------------
6)параметры для TrainProperty
Эти константы остались от старых проектов и в Alien Shooter 2 не используются.
//----------------------------------
7)для функции SetScrollType()
#define SCROLL_NONE 0 //не скроллируется
#define SCROLL_FROM_BORDER 1 //скроллируется при подходе курсора к границам экрана
#define SCROLL_WITH_MOUSE 2 //таскает экран нажатой правой кнопкой мыши
#define SCROLL_TO_FLAGMAN 4 //скроллируется к Flagman()
#define SCROLL_TO_FLAGMAN_WITH_DIRECTION 8 //скроллируется к Flagman() с учетом направления Flagman() и его Link()
#define SCROLL_FLAGMAN_IN_CENTER 16 //держит Flagman() всегда в центре экрана
#define SCROLL_WITH_ARROWS 32// скроллирует экран в сторону нажатых мышиных клавиш
//----------------------------------
8)для функции SetPlayerControl()
#define PLAYERCONTROL_NONE 0 // игрок не может управлять своим юнитом, (PLAYER::Control ничего не делает
#define PLAYERCONTROL_SIMPLE 1 // игрок использует упрощенное управление игроком
#define PLAYERCONTROL_NORMAL 2 // игрок управляет нормально, стрелки - движение, мышка - стрельба
#define PLAYERCONTROL_NO_MOVE 3 // игрок только стреляет, но не может передвигаться
#define PLAYERCONTROL_CAR 4 // игрок использует машинкоподобное управление (вправо, влево - повороты, вверх - начать движение)
//----------------------------------
9)для функций SetVidData, GetVidData
#define VID_EXIST 0 // данный VID существует
#define VID_PROPERTY 2
#define VID_BATTLERANGE 3 //радиус действия оружия
#define VID_MAXUNIT 5 //Ограничение максимального количества юнитов на карте
//
#define VID_NAME 7 //название объекта
#define VID_GAMMA 10 //10 - 17
#define VID_GAMMA0 10 //10 - 17
#define VID_KILLEDUNIT 29 //сколько раз данный объект убивали
#define VID_KILLEDUNIT0 30 //30 - 37 сколько раз данный объект армии 0 + i убивали
#define VID_KILLEDUNIT1 31 //сколько раз данный объект армии 1 убивали
#define VID_KILLEDUNIT2 32 //сколько раз данный объект армии 2 убивали
#define VID_KILLEDUNIT3 33 //сколько раз данный объект армии 3 убивали
#define VID_COUNT 49 //количество юнитов данного типа присутствующих на карте
#define VID_COUNT0 50 //50 - 57 количество юнитов данного типа армии 0 присутствующих на карте
#define VID_COUNT1 51 //количество юнитов данного типа армии 1 присутствующих на карте
#define VID_COUNT2 52 //количество юнитов данного типа армии 2 присутствующих на карте
#define VID_COUNT3 53 //количество юнитов данного типа армии 3 присутствующих на карте
#define VID_MAXHP 69
#define VID_MAXHP0 70 //70 - 77
#define VID_MAXHP1 71
#define VID_MAXHP2 72
#define VID_MAXHP3 73
#define VID_HP_COEFF0 90 //90 - 97 коэффициент для изменения maxHp (в процентах)
#define VID_HP_COEFF1 91 //коэффициент для изменения maxHp (в процентах)
#define VID_HP_COEFF2 92 //коэффициент для изменения maxHp (в процентах)
#define VID_HP_COEFF3 93 //коэффициент для изменения maxHp (в процентах)
#define VID_SPRITETYPE 110 //возвращает vid->spriteType см. #define U_
#define VID_CLASS 111 //возвращает vid->spriteClass см. #define B_
#define VID_SPEED 112 //скорость юнита
#define VID_LIFETIME 113 //время жизни юнита
#define VID_ZSPEED 114 //вертикальная скорость юнита
//
#define VID_EXCHANGEVID 116 //меняет местами Vid - ы
#define VID_NO_DIR 117 //возвращает число направлений
#define VID_MOVE_MASK 118 //меняет moveMask
#define VID_BUILDTIME 119 //время строительства юнита
#define VID_HIDE 120 //установить выводить или нет данный VID на экран
#define VID_NOT_CREATE_AS_CHILD 121 //данный VID не будет создаваться в качестве дочернего или линкованного
#define VID_FRAME_SPEED 122 //установить скорость проигрывания флика
#define VID_LINK 123 //номер VID для прилинкованного к данному
#define VID_DAMAGE_MIN 124 //количество поврежедений наносимых окружающим при смерти юнита
#define VID_DAMAGE_MAX 125 //количество поврежедений наносимых окружающим при смерти юнита
#define VID_AIM_RADIUS 126 //разброс пули на расстоянии 100 пикселей от стрелюющего
#define VID_DETECTRANGE 127 //радиус обнаружения врага (в пикселях)
#define VID_MAX_AMMO 128
#define VID_FIRE_IN_VOLLEY 129
#define VID_RELOAD_TIME 130
#define VID_RELOAD_TIME_IN_VOLLEY 131
#define VID_IMPORTANT_FOR_SYNC 132 // return propImportantForSync
#define VID_PRELOADGRAPH 133 // предварительная прогрузка данных для кэширования
//
#define VID_CHILD 160 //60 - 191
#define VID_NO_CHILD 192 //192 - 223
#define VID_RECOLORUNIT 229 //сколько раз данный объект перекрашивали
#define VID_RECOLORUNIT0 230 //230 - 237 сколько раз данный объект армии 0 + i перекрашивали
#define VID_COPY_VID 238 //копирует Vid - , либо возвращает последний скопированный7
#define VID_SIZE_X 239 // размер по X
#define VID_SIZE_Y 240 // размер по Y
#define VID_SIZE_Z 241 // размер по Z
//----------------------------------
10)Команды для спрайтов
#define COM_NONE 0 // спрайт не выполняет команду в данный момент
//команды нуждающиеся в установке goal, в качестве цели
#define COM_MOVE 1 // двигаться к цели
#define COM_MOVE3D 2 // двигаться к цели по всем 3 координатам
#define COM_ATTACK 3 // подъехать и атаковать до уничтожения goal
#define COM_ONEATTACK 4 // подъехать и однократно атаковать
#define COM_DISTATTACK 5 // атаковать в направлении цели, не подъезжая к ней
#define COM_NEARATTACK 6 // атаковать цель только если она в зоне досягаемости
#define COM_ROTATE 7 // юнит вращается до Goal()->Direction()
#define COM_FOLLOW 8 // следовать за Goal()
#define COM_TARAN 9 // таран другого юнита
#define COM_STAND_FIRM 10 // удерживать координаты (var1, var2, var3), всегда возвращаться в них при случайном смещении
//команды не нуждающиеся в установке goal
#define COM_BUILD 16 // для строительства юнитов заводами
#define COM_PASSIVE 17 // для пассивных юнитов
#define COM_PAUSE 18 // юнит стоит пока timer не обнулится
#define COM_OTHER 31
Константы вида COM_ENGINE_??? остались от старых проектов и в Alien Shooter 2 не используются.
//----------------------------------
11)для функций GetSprite(), GetSpriteScr(), FindNearestSprite()
#define GETSPRITE_VID_FLAG 0 //+nvid
#define GETSPRITE_CLASS_FLAG 0x20000000//+B_XXX
// добавляемые к другим типы
#define GETSPRITE_ARMY0 0x1000 // ищет спрайты с army == 0
#define GETSPRITE_ARMY1 0x2000 // ищет спрайты с army == 1
#define GETSPRITE_ARMY2 0x4000 // ищет спрайты с army == 2
#define GETSPRITE_ARMY3 0x8000 // ищет спрайты с army == 3
#define GETSPRITE_ARMY4 0x10000 // ищет спрайты с army == 4
#define GETSPRITE_ARMY5 0x20000 // ищет спрайты с army == 5
#define GETSPRITE_ARMY6 0x40000 // ищет спрайты с army == 6
#define GETSPRITE_ARMY7 0x80000 // ищет спрайты с army == 7
#define GETSPRITE_ANYARMY 0xff000 // ищет спрайты с любой армией
#define GETSPRITE_DUMMY 0x100000 // ищет спрайты с spriteType == U_DUMMY
#define GETSPRITE_TERRAIN 0x200000 // ищет спрайты с spriteType == U_TERRAIN
#define GETSPRITE_OBJECT 0x400000 // ищет спрайты с spriteType == U_OBJECT
#define GETSPRITE_UNIT 0x800000 // ищет спрайты с spriteType == U_UNIT
#define GETSPRITE_AVIA 0x1000000 // ищет спрайты с spriteType == U_AVIA
#define GETSPRITE_MENU 0x2000000 // ищет спрайты с spriteType == U_MENU
#define GETSPRITE_RAILWAY 0x4000000 // ищет спрайты с spriteType == U_RAILWAY
#define GETSPRITE_REGION 0x8000000 // ищет спрайты с spriteType == U_REGION
#define GETSPRITE_CANNON 0x20000000 // ищет спрайты с spriteType == U_CANNON
#define GETSPRITE_SPRITE 0x40000000 // ищет спрайты с spriteType == U_SPRITE
#define GETSPRITE_ENEMY 0x8000000 // ищет спрайты вражеских армий для указанной в GETSPRITE_ARMY
#define GETSPRITE_HASH 0x10000000 // ищет спрайты с P_Hash(P_Map)
#define GETSPRITE_FREE 0x80000000 // ищет спрайты с stateCommand == COM_NONE
Эти функции в предыдущих версиях движка Alien Shooter 2 были также константами:
GETSPRITE_VID (int nvid) { return nvid; }
GETSPRITE_CLASS(int B_) { return GETSPRITE_CLASS_FLAG + B_;}
GETSPRITE_ARMY (int army) { return GETSPRITE_ARMY0 << army; }
GETSPRITE_TYPE (int type) { return GETSPRITE_TERRAIN * type; }//ищет спрайты с spriteType & t
//----------------------------------
12)для NetProperty
#define NET_NO_PLAYERS 1 // возвращает количество игроков в сети
#define NET_GAME_LIST 2 // возвращает список имен игр найденных после NET_GAME_FIND_HOSTS (они разделены \r\n)
#define NET_GAME_EXIST 3 // проверяет есть ли данная игра на текущем хосте
#define NET_IS_LOBBY 4 // запущена ли игра из внешнего сетевого lobby сервиса
#define NET_IS_CONNECT 5 // игровая сессия установлена
#define NET_IS_HOST 6 // данная машина - хост
#define NET_NO_GAME 7 // возвращает количество игр найденных после NET_GAME_FIND_HOSTS
#define NET_N_LOCAL_PLAYER 8 // возвращает номер игрока на данной машине
#define NET_SET_PLAYER_NAME 9 // установить имя игрока на данной машине
#define NET_GAME_FIND_HOSTS 10 // начинает поиск имен игр открытых на данном хосте(поиcк идет синхронно поэтому NET_GAME_LIST , надо вызывать несколько секунд после этой команды)
#define NET_PLAYER_LIST_IN_HOST 11 // возвращает список игроков в игре под номером GAME_LIST переданным в качестве параметра
#define NET_PLAYER_NAME 20 // 20 - 29 имя игрока
#define NET_IS_PLAYER_EXIST 30 // существует ли игрок с данной армией
#define NET_SEND_CHAT 40 // переслать строку чата
#define NET_GET_CHAT 41 // вернуть последние N строк чата(N не больше 256)
#define NET_SET_CHAT_COLOR 50 // установить цвет в чате для игрока 0
#define NET_SET_CHAT_COLOR7 57 // установить цвет в чате для игрока 7
#define NET_GET_PINGLAG 60 // вернуть пинг с игроком 0
#define NET_GET_PINGLAG7 67 // вернуть пинг с игроком 7
//
#define NET_CREATE 130 // создать игру с таким именем
#define NET_JOIN 131 // присоединится к существующей игре в строке GAME_LIST под номером переданным в качестве параметра, return 0 если успешно
#define NET_JOIN_BY_NAME 132 // присоединится к существующей игре с таким именем, return 0 если успешно
#define NET_DISCONNECT 133 // отсоединится от игры
#define NET_GAME_START 134 // начать игру, return 0 если успешно
#define NET_GAME_END 135 // выйти из игры
#define NET_NETWORK_ON 136 // включить работу с сетью
#define NET_NETWORK_OFF 137 // выключить работу с сетью
#define NET_DESTROY_PLAYER 138 // удалить игрока под номером переданным в качестве параметра
//----------------------------------
13)для SetCursor
#define CURSOR_OFF -1 //выключить курсор
#define CURSOR_NORMAL 0
#define CURSOR_MOVE 2
#define CURSOR_CLASH 3 //для таранящего движения
#define CURSOR_ATTACK 5
#define CURSOR_FIGHT 5
#define CURSOR_FIGHT2 6
#define CURSOR_SELECT 7
#define CURSOR_NOTMOVE 8
#define CURSOR_CYCLE 9 //зацикливание движения
#define CURSOR_LINK 10 //сцепить вагоны
#define CURSOR_UNLINK 11 //расцепить вагоны
#define CURSOR_DELETE 15 //для удаления в MapEdit
#define CURSOR_HARDWARE 256//переключить курсор в харварный режим отображения
#define CURSOR_SOFTWARE 257//переключить курсор в спрайтовый режим отображения, будет использовааться объект 001
//----------------------------------
14)для функции Effect()
#define EFF_NONE 0 //убрать все проигрываемые в данный момент эффекты
#define EFF_NUKE 1 //вспышка цвета var1
#define EFF_SCROLL 2 //плавный сдвиг окна в координаты var1,var2
#define EFF_FADE 3 //плавное затенение экрана
#define EFF_OPEN_WINDOW 4 //развертка экрана из var1,var2 к нормальному размеру
#define EFF_ALPHAAPPEAR 5 //плавный переход через альфу от экрана, который был в
//момент подачи команды Effect, к текущему экрану
#define EFF_PIXELAPPEAR 6
#define EFF_LINESHIFT 7
#define EFF_SCALE_WINDOW 8 //масштабирование экрана из var1,var2 к нормальному размеру
#define EFF_FADE_IN 9 //плавное затенение экрана
#define EFF_FADE_OUT 10//плавное просветление экрана из темноты
#define EFF_SHIFT_GAMMA 11//плавное смещение текущей гаммы к var1-гамме, за время duration
#define EFF_SHIFT_SCALE 12//плавное смещение текущей screenScale гаммы к (var1, var2)/100 - scale, за время duration
//----------------------------------
15)для функции SetEnvironment()
Не все из этих эффектов реально работают в движке.
#define ENV_SHADOW 1
#define ENV_LONGSHADOW 2
#define ENV_EARTHQUAKE 4
#define ENV_FOG 32
#define ENV_GROUND_SNOW 64 //снег на земле
#define ENV_SQUALL 128 //временный порыв ветра
#define ENV_FOGINV 0x0100 //инвертированный туман
#define ENV_FOGAPPEAR 0x0200 //медленно рождающийся и исчезающий туман
#define ENV_STOP_RAIN 0x0400 //медленная остановка дождя
#define ENV_BORN_RAIN 0x0800 //медленное рождение дождя
#define ENV_RAIN 0x0C00 //идет дождь
#define ENV_MASK_RAIN 0x0C00 //маска для дождей
#define ENV_STOP_SNOW 0x4000 //медленная остановка снега
#define ENV_BORN_SNOW 0x8000 //медленное рождение снега
#define ENV_SNOW 0xC000 //идет снег
#define ENV_MASK_SNOW 0xC000 //маска для снега
#define ENV_STOP 0x80000000
#define ENV_STOPALL 0xFFFFFFFF
//----------------------------------
16)Для установки поведения юнитам (ACT_SET_BEHAVE, ACT_GET_BEHAVE)
#define BEH_AGGRESSIVE 1//когда враг находится в зоне действия оружия его атакуют
#define BEH_ACTIVE 2//когда объект атакуем или видит врага,
//но не может его атаковать он движется
#define BEH_CAREFUL 4//
#define BEH_HAUNT 8//когда объект видит врага, он все бросает и
//начинает его преследовать
#define BEH_BIGFIRE 16//возможность самостоятельной стрельбы из супер-оружия
#define BEH_COWARDLY 32 // объект отбегает от игрока и от трупа сородича
//для определения поведения текстов (через ACT_SET_BEHAVE, ACT_GET_BEHAVE)
#define BEH_LEFT 0 // выравнивание по левому краю
#define BEH_CENTER_X 1 // выравнивание по центру
#define BEH_RIGHT 2 // выравнивание по правому краю
#define BEH_TOP 0 // выравнивание по верху
#define BEH_BOTTOM 4 // выравнивание по низу
#define BEH_CENTER_Y 8 // выравнивание по центру
#define BEH_CENTER (BEH_CENTER_X+BEH_CENTER_Y)
#define BEH_LOAD_FROM (16+32+64) //маска для типа загрузки
#define BEH_NOT_LOAD (0*16) // не загружает текст просто выводит строку text
#define BEH_STRINGS_INI (1*16) // загрузка из Strings.ini с keyword==text
#define BEH_FILE (2*16) // загрузка из файла с именем text
#define BEH_SCRIPT_VARIABLE (3*16) // загрузка из переменной в скрипте с именем text
#define BEH_SCRIPT_FILE (4*16) // загрузка из переменной в скрипте с именем файла
#define BEH_SCRIPT_STRINGS (5*16) // загрузка из переменной в скрипте с keyword для strinfs.ini
#define BEH_SCRIPT_UPDATED (6*16) // загрузка из переменной в скрипте непрерывно а не при создании строки
#define BEH_CURSOR 256 // после текста выводится мигающий курсор
//----------------------------------
17)Типы спрайтов
#define U_DUMMY 1 // пустышки для рождения др. объектов, привязки скриптов
#define U_TERRAIN 2 //земля, элементы ландшафта
#define U_OBJECT 4
#define U_UNIT 8 //наземные юниты, монстры
#define U_AVIA 16 //летающие юниты
#define U_MENU 32 //различные элементы меню
#define U_RAILWAY 64 //рельсы, дорожки, трубы, ...
#define U_REGION 128 //прямоугольные регионы воды, тумана, ...
//следующие не выставляются в мапедите
#define U_CANNON 512 //снаряды, дымы, ...
#define U_SPRITE 1024 //в основном прилинкованные объекты
//----------------------------------
18)Классы спрайтов
#define B_TERRAIN 0
#define B_OBJECT 1
#define B_UNIT 2
#define B_BUILDING 3
#define B_AVIA 4
#define B_CANNON 5
#define B_PRIMITIVE 6 //максимально упрощенный, но самый быстро-обрабатываемый спрайт
#define B_SPRITE 9
#define B_FRAME 10
#define B_LINKER 12
#define B_TEXT 19
#define B_CIV_ROBOT 20
#define B_ENGINE 21
#define B_RAIL 22
#define B_REGION 23
#define B_DEPO 24
#define B_CREATURE 25
#define B_BALLOON 26
#define B_MISSILE 27