Список параметров функции Action

Функция Action - одна из самых частоиспользуемых в скриптах. Она позволяет получать и устанавливать свойства спрайтов, а также совершать некоторые другие действия.
После списка констант для функции Action также приведен список анимаций движка Alien Shooter 2.
Также некоторые пояснения по этой функции можно найти в этой теме на форуме: http://as2mods.ru/forum/viewtopic.php?t=29

;----------------------------------------------------
1)Список констант для функции Action
//команды для юнита
#define ACT_ATTACK 32 //атака (SPRITE*)var1
#define ACT_MOVE 33 //var1-x,var2-y,var3-z
#define ACT_MOVE_TO 34 //var1-(SPRITE*)goal
#define ACT_BUILD_UNIT 35 //var1-nvid for building unit (если 0 то один из items), var2,var3 -координаты где родится юнит, если 0 то родится в координатах родителя, если <0 то родится с случайным смещением от родителя
#define ACT_PATROL 36 //var1-x,var2-y патрулировать до точки x,y и обратно
#define ACT_COOR_ATTACK 37 //одиночный выстрел по координатам var1,var2
#define ACT_RANDOM 38 //выполнить либо лэзи, либо просто повернуть голову, либо ничего не сделать
#define ACT_STOP 39 //прекратить движение и выполнение любой команды, если var1 не равно 0, то немедленно затормозить
#define ACT_PAUSE 40 //ничего не делать var1 + Random(var2) ms
#define ACT_ROTATE 41 //повернуться в направлении var1
#define ACT_CLEAR_COMMAND 42 //прекратить выполнение текущей команды
#define ACT_FLAGMAN_TRIGGER 43 //не продолжать выполнять команды стека пока Flagman(0)->NearestDistance(var1,var2) > var3
#define ACT_MOVE_ACCURATELY 44 // прибыть абсолютно точно в точку назначения
#define ACT_FOLLOW 45 // преследовать спрайт var1, если var1==0 то следовать за Flagman(0)
#define ACT_STAND_FIRM 46 // удерживать координаты (var1, var2, var3), всегда возвращаться в них при случайном смещении
//работа со списком vid-ов items
#define ACT_NO_ITEMS 53 // возвращает количество вещей в списке items
#define ACT_ADD_ITEM 54 //var1==nvid
#define ACT_DELETE_ITEM 55 //удаляет var1==nvid, возвращает 0 если нет такого элемента
#define ACT_HAVE_ITEM 56 //имеется вещь var1==nvid
#define ACT_DELETE_ALL_ITEM 57 //очищает список items
#define ACT_GET_ITEM 58 //возвращает вещь в слоте номер var1
#define ACT_GET_ITEM_TYPE 59 //возвращает номер вида с (spriteType & var1), выбранный случайно из items, если var1==0 то с любым spriteType
//
#define ACT_CHANGE_DIRECTION 60 //var1=new direction
#define ACT_CHANGE_ANIMATION 61 //var1=new animation
#define ACT_CHANGE_VID 62 //изменить текущий vid для спрайта, var1- new vid, var2 - new animation, if var2==-1 animation not changed
#define ACT_CHANGE_COOR 63 //var1-x,var2-y,var3-z
//работа со стеком команд actionStack
#define ACT_BACKUP_COMMAND 70 //поместить выполняемую в данный момент команду в actionStack
#define ACT_GOTO_STACK 71 //переход в стэке комманд, var1-номер команды к которой нужно перейти
#define ACT_CLEAR_STACK 72 //очистить actionStack
#define ACT_STOP_STACK 73 //данная команда останавливает выполнение дальнейших команд в стэке (нужно для building)
#define ACT_RESTORE_COMMAND 74 //(act>>8)-command, var1-Goal(), for B_ENGINE: var2-goal(patrol2),var3-patrol1
#define ACT_COPY_STACK_TO 75 //копирует стэк команд другому спрайту (SPRITE*)var1, до ACT_STOP_STACK
#define ACT_NO_STACK 76 //возвращает количество команд в стеке
#define ACT_WHILE_NOT_QUEST 77 // не идет дальше пока состояние квеста var1 подквеста var2 не станет var3: 0 - неактивен, 1 - в процессе, 2 - выполнен, 3 - провален
#define ACT_SET_QUEST 78 // меняет состояние квеста var1 подквеста var2 в var3: 0 - неактивен, 1 - в процессе, 2 - выполнен, 3 - провален
//для Save(), Load()
#define ACT_SAVE 80 //записать информацию относящуюся к данному спрайту в var1(STREAM*)
#define ACT_RESTORE 81 //восстановить информацию относящуюся к данному спрайту из var1(STREAM*)

#define ACT_GET_BIRTH_TIME 84 // возвращает время в которое родился спрайт
//работа с hp
#define ACT_DAMAGE 85 //var1-damage,var2-unit вызвавший damage,if return 1 then ремонт не нужен
#define ACT_REPAIR 86 //полностью восстановить hp и снесенную башню
#define ACT_GET_HP 87 //возвращает hp юнита
#define ACT_SET_HP 88 //var1 - новое количество hp, var2 - количество hp в процентах от максимума(если var1==0)
#define ACT_GET_PERCENT_HP 89 //возвращает hp юнита в процентах
//Get и Set команды
#define ACT_GET_GOAL 90 //возвращается цель для движения, атаки
#define ACT_SET_GOAL_COOR 91 //создается новая goal с x=var1, y=var2, z=var3
#define ACT_GET_AMMO 92 // вернуть количество снарядов
#define ACT_ADD_AMMO 93 // var1-число добавляемых снарядов,return количество получившихся
#define ACT_GET_BEHAVE 94 // return behave
#define ACT_SET_BEHAVE 95 // var1 -new behave
#define ACT_GET_ARMY 96 // return-narmy
#define ACT_SET_ARMY 97 // var1-narmy
#define ACT_SET_INVISIBLE 98 // var1 - 1-invisible, 0-visible
#define ACT_SET_HASH 99 // изменяет состояние хэширования у спрайта (P_HASH,P_MAP в objects.ini), он не сможет находиться, повреждаться от взрывов, мешаться движению
#define ACT_GET_BATTLE_RANGE 100// Возвращает Battlerange юнита (с учетом наличия link)
#define ACT_GET_LINK 101// Возвращает спрайт прилинкованный к данному
#define ACT_SET_LINK 102// Прилинковывает var1 к данному
#define ACT_GET_UPLINK 103// Возвращает спрайт, к которому прилинкован к данный
#define ACT_SET_UPLINK 104// Отлинковывает данный спрайт от родителя
#define ACT_GET_TIMER 105// вернуть значение счетчика времени
#define ACT_SET_TIMER 106// установить значение счетчика времени
#define ACT_GET_ZSPEED 107 //return-zSpeed
#define ACT_SET_ZSPEED 108 //var1-new zSpeed
#define ACT_GET_SPEED 109 //return-speed
#define ACT_SET_SPEED 110 //var1-new speed
#define ACT_SET_IMPULSE_SPEED 137 // var1, var2, var3 -new impulseSpeed компоненты для смещения спрайта
#define ACT_SET_MAX_SPEED 138 // var1-new max speed
#define ACT_GET_COMMAND 111 //возвращает выполняемую в данный момент COM_XXX
#define ACT_SET_COMMAND 112 //устанавливает новую команду var1-COM_XXX, var2-ссылка на goal
#define ACT_SET_DEATH_TIMER 113 //устанавливает время через которое спрайт умрет, если 999999, то выключить таймер
#define ACT_GET_DIALOG 114 // возвращает номер проигрываемогов данный момент диалога, если 0 то не диалог проигрывается
#define ACT_SET_DIALOG 115 // устанавливает для данного спрайта режим проигрыания диалога номер var1
#define ACT_SET_FLAGMAN_DIALOG 116 // устанавливает для управляемого спрайта режим проигрыания диалога номер var1
#define ACT_GET_KILLER_ARMY 117 // return - номер армии юнита убившего данный
#define ACT_SET_GAMMA 118 // var1 новая гамма данного спрайта, как кодировать см. GammaEncodeToDword / GAMMA::EncodeToDword
#define ACT_SET_OBJECT_ID 119 // var1-object ID
//Get и Set команды для класса STEXT
#define ACT_SET_TEXT 120//var1-STRING *
#define ACT_GET_TEXT_DESC 121//return-STRING * описание откуда грузится строка
#define ACT_SET_TEXT_COUNT 122//var1=число выводимых в данный момент символов, если -1 то вернуть 1 когда закончится посимвольный вывод строки
#define ACT_SET_FILE 123//var1-(STRING *)filename
#define ACT_GET_TEXT 124 // return-STRING *
#define ACT_SET_TEXT_ROW 125 // var1=номер первой выводимой строки (считая с 0), var2 - номер последней выводимой строки считая с 0
#define ACT_GET_GAMMA 126 // возвращает гамму спрайта, var1 - 0 ввиде DWORD, 1 - red, 2 - green, 3 - blue, 4 - alpha
#define ACT_SET_TEXTURE_VID 127 // var1 - номер VID для текстуры окрашивающей, поверхность данного спрайта
#define ACT_GET_SCALE 128 // var1 - 0:вернет x, 1:вернет y, 2:вернет z, возвращает (x, y, z) коэффициент масштабирование спрайта умноженный на 1000
#define ACT_SET_SCALE 129 // (var1, var2, var3) - (x, y, z) коэффициент масштабирование спрайта умноженный на 1000
//прочие
#define ACT_NEXT_COMMAND 130//вызывается каждый раз при окончании проигрывания анимации у спрайтов
#define ACT_SCRIPT_VAR 131 // устанавливает в скриптах переменную Action#var1 в значение var2, если var3 = 1, то var2 прибавляется к предыдущему значению Action#var1
#define ACT_UNDO_REMOVE 132//нужны для реализации Undo в MapEdit, они устанавливают
#define ACT_UNDO_INSERT 133//либо удаляют юнит на экран не удаляя его реально
#define ACT_DESTROY_UNIT 134//var1-nvid уничтожаемого объекта, var2,var3 -координаты где уничтожить
#define ACT_PLAY_SFX 135//var1 - номер играемого sfx
#define ACT_SCRIPT_EVENT 136 // вызывает скриптовую функцию с параметрами ScriptEvent#var1(this, var2, var3)
#define ACT_SET_IMPULSE_SPEED 137 // var1, var2, var3 -new impulseSpeed компоненты для смещения спрайта
#define ACT_SET_MAX_SPEED 138 // var1-new max speed
#define ACT_GET_ACCELERATION 139 // return текущее ускорение объекта, если > 0 то он ускоряется, < 0 замедляется

#define ACT_NONE 255 //невыполняемая, пустая команда

;----------------------------------------------------
2) Список анимаций спрайтов.
Для установки анимаций также используется функция Action, поэтому они приведены здесь.
#define ANI_STAND 0 //нормальное состояние объекта
#define ANI_STOP_MOVE 1 //процесс остановки движения
#define ANI_BUILD 1 //процесс строительства дочернего юнита
#define ANI_GO 2 //анимация движения юнита
#define ANI_START_MOVE 3 //процесс начала движения юнита
#define ANI_L_ROTATE 4
#define ANI_R_ROTATE 5
#define ANI_OPEN 6
#define ANI_CLOSE 7
#define ANI_HIT 7 //объект поврежден(ударен)
#define ANI_FIGHT 8 //юнит атакует кого либо
#define ANI_SALUT 9 //игрок кликнул на юнита
#define ANI_STAND_OPEN 10
#define ANI_LOAD 11
#define ANI_CLASH_VERT 11 //столкновение с вертикальной стенкой
#define ANI_LINK 11
#define ANI_UNLOAD 12
#define ANI_LAZY 12
#define ANI_CLASH 12
#define ANI_WOUND 13 //с юнита снята половина Hp
#define ANI_BIRTH 14
#define ANI_DEATH 15 //смерть юнита
#define ANI_DEATH2 16 //смерть от повреждений больших половины maxHp за раз
#define ANI_MENUSTAND 0
#define ANI_MENUSTANDDOWN 0 //action for menu button
#define ANI_MENUSTANDUP 1
#define ANI_MENUSELECTDOWN 2
#define ANI_MENUSELECTUP 3
#define ANI_MENUPRESSDOWN 4
#define ANI_MENUPRESSUP 5
#define ANI_MENUDISABLE 6 //кнопка не работает
#define ANI_MENUDISABLEDOWN 6 //кнопка не работает
#define ANI_MENUDISABLEUP 7 //кнопка не работает
#define ANI_FONT_NORMAL 0
#define ANI_FONT_NEXT_CHAR 1 //вывод следующего символа
#define ANI_FONT_NEXT_LINE 2 //переход к выводу следующей строки