|
|
|
|
| Author: Wasteland Ghost 08.02.05 12:14:11 | Синтаксис оригинального компилятора: int metarule3(int meta3_switch, int meta3_par1, int meta3_par2, int meta3_par3) - ещё одна функция работы с множеством параметров игры, отличается от функции metarule количеством аргументов Аргументы: meta3_switch - переключатель meta3_par1, meta3_par2, meta3_par3 - параметры Возвращаемое значение: meta3_switch = METARULE3_CLR_FIXED_TIMED_EVENTS (100), meta3_par1 - указатель на объект, meta3_par2 - значение параметра FIXED_VAL, meta3_par3 = 0: удаляет для данного криттера событие по таймеру, определённое FIXED_VAL meta3_switch = METARULE3_MARK_SUBTILE (101), meta3_par1 - позиция по x, meta3_par2 - позиция по y, meta3_par3 - радиус: помечает тайлы в заданном радиусе на карте мира как посещённые meta3_switch = METARULE3_SET_WM_MUSIC (102), meta3_par1 - индекс карты (см. MAPS.H), meta3_par2 - имя asm файла, meta3_par3 = 0; установить фоновую музыку для указанной карты meta3_switch = METARULE3_GET_KILL_COUNT (103), meta3_par1 - тип криттера, meta3_par2 = 0, meta3_par3 = 0: вернуть число убитых игроком криттеров, определяемых параметром meta3_par1 meta3_switch = METARULE3_MARK_MAP_ENTRANCE (104), meta3_par1 - индекс карты (см. MAPS.H), meta3_par2 - состояние (OFFSTATE (0) или ONSTATE (1)), meta3_par3 - уровень (0...2 или -1 - все): задать состояние входа на карту (выкл/вкл) meta3_switch = METARULE3_WM_SUBTILE_STATE (105), meta3_par1 - позиция по x, meta3_par2 - позиция по y, meta3_par3 = 0: выдать состояние тайла с заданными координатами на карте мира: UNKNOWNTILETYPE (0) - неизвестен KNOWNTILETYPE (1) - известен VISITEDTILETYPE (2) - посещён meta3_switch = METARULE3_TILE_GET_NEXT_CRITTER (106), meta3_par1 - номер хекса, meta3_par2 - уровень (0...2), meta3_par3 - указатель на предыдущего криттера: возвращает указатель на следующего криттера meta3_switch = METARULE3_ART_SET_BASE_FID_NUM (107), meta3_par1 - указатель на криттера, meta3_par2 - FID, meta3_par = 0: изменить базовый номер FID (идентификатора фрейма) meta3_switch = METARULE3_TILE_SET_CENTER (108), meta3_par1 - номер тайла, meta3_par2 - уровень (0...2), meta3_par3 = 0: центрировать экран на указанную точку |
| Author: TryKos 29.04.03 6:02:20 | Многофункциональная команда, похожая на Misc, принимает 4 параметра. "BIS:" - название вызова в фирменной документации Black Isle Studios. Misc2(100, ObjectAddr, FixedValue, 0) BIS: rm_fixed_timer_event (WHO,FIXED_VAL); Удаляет все таймерные события (регистрации timed_p_proc) с фиксированным параметром FixedValue для скрипта объекта WHO. Misc2(101, XPos, YPos, Radius) BIS: mark_world_subtile_visited (XPOS,YPOS,RADIUS); Помечает сектора карты мира как "посещенные" в некотором радиусе от заданной точки. 102 - не используется (закомментирован). Misc2(103, CritterType, 0, 0) BIS: player_kill_count (TYPE); Возвращает количество убитых игроком существ типа Type (см. KILL_TYPE в описании Misc) Misc2(104, MapIdx, State, Elev) BIS: mark_map_entrance_elev_state (MAPIDX,ELEV,STATE); BIS: mark_map_entrance_state (MAPIDX,STATE); (здесь ELEV = -1) Переменная State может быть: #define OFFSTATE 0 #define ONSTATE 1 Значение этой команды неизвестно, но судя по BIS-исходникам - нигде не используется. Misc2(105, XPos, YPos, 0) BIS: wm_get_subtile_state (XPOS,YPOS); Возвращает текущее состояние сектора мировой карты: #define UNKNOWNTILETYPE 0 //неизвестный #define KNOWNTILETYPE 1 //известный #define VISITEDTILETYPE 2 //посещенный Misc2(106, Tile, Elevation, LastCritter) BIS: tile_get_next_critter (tile, elevation, lastCritter); Возвращает ObjectAddr криттера по некоторому алгоритму (в описании сказано, что эта команда really messy 8)). Используется всего в трех скриптах (CCDRILL, ZISLOTS, FSTNKRDR) для нахождения ближайшего к заданному тайлу криттера, последний параметр в данных скриптах равен 0. Например в ССDRILL (скрипт Сержанта в Наварро) команда используется для перебора часовых, которые бросают реплики "в спину" распекающему их сержанту. Misc2(107, Who, Num, 0) BIS: art_change_fid_num (WHO, NUM); Заменяет fid (идентификатор графики) криттера на другой (Num). Используется только в скрипте Гориса для замены его графики в начале и конце боя (когда он скидывает/надевает свой балахон). Misc2(108, TileNum, 0, 0) BIS: tile_set_center (tileNum); Вероятно, устанавливает центр экрана на заданный тайл карты. Используется только в одном скрипте ECBDYGRD (скрипт случайной встречи с Хорриганом, расстреливающим фермера и его семью). Misc2 с параметрами (110, 0, 0, 0) используется в скрипте ZSCARDRV версии 1.02, в исходниках и заголовках версии 1.0 отсутствует. |