Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

Goldenland-2-Cold-Heaven

Наработки по реверс-инжинирингу игры Златогорье 2: Холодные небеса

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

Форматы файлов

типы данных

string

Все строковые значения представлены этим типом. В файлах могут встречаться строки нулевой длины. <table><tr><th>Имя поля<th>тип<th>описание <tr><td>Len<td>dword<td>Длина строки <tr><td>Text<td>byte<td>Текст в кодировке win-1251, если поле len равно 0, то поле text отсутствует </table>

time

В этом типе представлено время действия эффектов. Итоговое значение расчитывается по формуле hi*(hi<2?30:60)+lo. <table><tr><th>Имя поля<th>тип<th>описание <tr><td>Hi<td>byte<td>Старший байт <tr><td>Lo<td>byte<td>Младший байт </table>

PAK (package) Файлы с расширением pak - это игровые архивы <table><tr><th>Имя поля<th>тип<th>описание <tr><td>Magic<td>qword<td>Должно содержать текст "PAK " и 4 нулевых байта <tr><td>FileCount<td>dword<td>Количество файлов в архиве <tr><td>FAT<td>массив структур<td>Файловая таблица. Массив структур <table><tr><th>Имя поля<th>тип<th>описание <tr><td>Name<td>string<td>Имя файла <tr><td>Size<td>dword<td>Размер файла в архиве (сжатый размер) <tr><td>Offset<td>dword<td>Смещение от начала файла </table> </table> Поле offset указывает на такую структуру <table><tr><th>Имя поля<th>тип<th>описание <tr><td>compressed<td>dword<td>Если равно 0 то файл сжат при помощи zlib (следом за этим полем идёт размер несжатых данных и поток zlib) <tr><td>data<td>-<td>Сжатые либо несжатые данные </table>

CSX В файлах с расширением csx хранятся спрайты с палитрой. <table><tr><th>Имя поля<th>тип<th>описание <tr><td>ColorCount<td>dword<td>Количество цветов в палитре <tr><td>TransparentColor<td>dword<td>Прозрачный цвет в формате BGR <tr><td>Palette<td>dword<td>Плаитра в формате BGR (массив dword, длиной в ColorCount элементов). <tr><td>Width<td>dword<td>Ширина изображения <tr><td>Height<td>dword<td>Высота изображения <tr><td>Offsets<td>dword<td>Массив смещений строк в массиве CompressedData. В массиве содержится Height+1 элементов, последний элемент равен размеру массива CompressedData. <tr><td>CompressedData<td>-<td>Данные, сжатые по алгоритму RLE (подробности смотри здесь) </table>

SDB (string data base) В файлах с расширением sdb хранятся пары значений индекс-строка. Если первые 4 байта не содержат текст "SDB ", то файл зашифрован (к текстовым данным применено исключающее или со значением 0xAA). <table><tr><th>Имя поля<th>тип<th>описание <tr><td>Signature<td>dword<td>Должно содержать текст "SDB ", если это не так - поле отсутствует <tr><td>Data<td>массив структур<td>Содержит пары значений "идентификатор - строка" <table><tr><th>Имя поля<th>тип<th>описание <tr><td>Id<td>dword<td>Идентификатор строки <tr><td>Value<td>string<td>Непосредственно строка. Если поле signature отсутствует в файле, то поле text структуры string поксорено ключом 0XAA . </table></table>

ITM (item) В файлах с расширением itm хранится итформация о предмете инвентаря. Имя файла - это идентификатор предмета (itemId). <table><tr><th>Имя поля<th>тип<th>описание <tr><td>Magic<td>dword<td>Всегда равно 4 <tr><td>DescriptionID<td>dword<td>Идентификатор строки описания (хранится в файле "sdb\items\descriptions.sdb") <tr><td>ItemType<td>dword<td>Тип предмета, может содержать одно из значений<ol start=0> <li>меч <li>топор <li>копьё <li>лук <li>арбалет <li>винтовка <li>посох <li>дробящее оружие <li>патроны <li>болты <li>стрелы <li>шлем <li>кираса <li>щит <li>поножи <li>браслет <li>амулет <li>кольцо <li>деньги <li>зелье <li>еда <li>книга <li>свиток <li>кузнечный материал <li>алхимический ингридиент <li>квестовый предмет <li>рецепт <li>мусор <li>камень </ol> <tr><td>ItemFlags<td>dword<td>Флаги (число слева - это индекс бита)<ol start=0> <li>двуручный <li>не известно <li>установлен на всех экипируемых предметах кроме метательного оружия <li>неразрушимый <li>если установлен, то в файле присутствует поле Shell <li>уникальный <li>проклятый <li>не известно <li>кованый <li value=30>не известно <li value=31>не известно <tr><td>MaxStack<td>dword<td>Максимальное количество предметов в одной ячейке инвентаря <tr><td>PuppetName<td>string<td>Путь к bmp-файлу для отображения экипируемых предметов на персонаже (в окне инвентаря). Для неэкипируемых предметов это строка нулевой длины. <tr><td>IconName<td>string<td>Путь к bmp-файлу иконки инвентаря. В игре присутствуют предметы для NPC без иконок, в этом случае это строка нудевой длины. <tr><td>-<td>qword<td>Назначение поля не известно, может содержать 0 или 1 <tr><td>Price<td>dword<td>Базовая цена предмета <tr><td>Weight<td>dword<td>Вес предмета, умноженый на 10 <tr><td>-<td>dword<td>Назначение поля не известно. Значения кореллируют с типом материала. <tr><td>-<td rowspan=5>dword<td rowspan=5>Назначение этих полей не известно. <tr><td>- <tr><td>- <tr><td>- <tr><td>- <tr><td>Material<td>dword<td>Индекс строки с названием материала (хранится в файле "sdb\items\materials.sdb"). Если равно -1, то считается, что материал не задан. <tr><td>Shell<td>string<td>Идентификатор снаряда для отображения при стрельбе/метании соответствует имени mdf-файла в каталоге magic. Это поле присутствует только при установленном флаге в ItemFlags. <tr><td>Level<td>dword<td>Требование к уровню <tr><td>Strenght<td>dword<td>Требование к силе <tr><td>Wisdom<td>dword<td>Требование к мудрости <tr><td>Endurance<td>dword<td>Требование к выносливости <tr><td>Intelligence<td>dword<td>Требование к интеллекту <tr><td>Perception<td>dword<td>Требование к восприятию <tr><td>Agility<td>dword<td>Требование к ловкости <tr><td>Damage<td>структура<td>Это поле присутствует только для оружия или доспехов и содержит следующую структуру: <table><tr><th>Имя поля<th>тип<th>описание <tr><td>CrushMin<td>dword<td rowspan=2>Диапазон дробящего повреждения или защиты от дробящих повреждений <tr><td>CrushMax<td>dword <tr><td>HackMin<td>dword<td rowspan=2>Диапазон рубящего повреждения или защиты от рубящих повреждений <tr><td>HackMax<td>dword <tr><td>SlashMin<td>dword<td rowspan=2>Диапазон колющего повреждения или защиты от колющих повреждений <tr><td>SlashMax<td>dword </table> <tr><td>Spell<td>структура<td>Это поле присутствует только для посохов,книг или свитков и содержит следующую структуру: <table><tr><th>Имя поля<th>тип<th>описание <tr><td>SpellId<td>dword<td>Идентификатор заклинания (имя заклинания хранится в файле "sdb\magic\magiclitnames.sdb") <tr><td>-<td>dword<td>Всегда равно 0 </table> <tr><td>Charge<td>dword<td>Это поле присутствует только для посохов и содержит количество зарядов <tr><td>Healing<td>структура<td>Это поле присутствует только для еды или зелий и содержит следующую структуру: <table><tr><th>Имя поля<th>тип<th>описание <tr><td>Health<td>dword<td>Модификатор здоровья <tr><td>Mana<td>dword<td>Модификатор маны </table> <tr><td>Receipe<td>структура<td>Это поле присутствует только для рецептов и содержит следующую структуру (идетификатор предмета - это имя соответсвующего itm-файла): <table><tr><th>Имя поля<th>тип<th>описание <tr><td>ItemId1<td>dword<td>Идентификатор первого предмета для комбинации <tr><td>ItemId2<td>dword<td>Идентификатор второго предмета для комбинации <tr><td>ResultItemId<td>dword<td>Идентификатор предмета, который получится в результате </table> <tr><td>DamageType<td>dword<td>Это поле присутствует только для стрел, болтов или патронов и содержит набор флагов, определяющих тип повреждения (число слева - это индекс бита)<ol start=0> <li>Дробящее <li>Рубящее <li>Колющее <tr><td>EffectsCount<td>dword<td>Количество эффектов (длина последующего массива), если эффектов нет, то это поле равно 0. Экспериментально установлено, что игра не воспринимает больше 20 эффектов на одном предмете. <tr><td>Effects<td>массив структур<td>Эффекты, накладываемые предметом описываются такой структурой: <table><tr><th>Имя поля<th>тип<th>описание <tr><td>Type<td>dword<td>Тип эффекта (описание типов хранится в файле "scripts\item_class_specials\init.scr"). Может принимать одно из следующих значений:<ol start=0> <li>повреждение ядом <li>повреждение холодом <li>повреждение огнём <li>сопротивление яду <li>сопротивление холоду <li>сопротивление огню <li>сила <li>телосложение <li>внимание <li>ловкость <li>интелект <li>мудрость <li>удача <li>сопротивляемость магии богов <li>сопротивляемость магии стихий <li>сопротивляемость магии света <li>сопротивляемость магии тьмы <li>сопротивляемость магии теней <li>сопротивляемость магии природы <li>сопротивляемость рубящим повреждениям <li>сопротивляемость дробящим повреждениям <li>сопротивляемость колющим повреждениям <li>максимальное количество здоровья <li>максимальное количество энергии <li>инициатива <li>скорость восстановления здоровья <li>скорость восстановления энергии <li>очки действия <li>слава <li>класс брони <li>переносимый вес <li>воровство жизни <li>воровство энергии <li>рубящие повреждения <li>дробящие повреждения <li>колющие повреждения <li>повреждения магией богов <li>повреждения магией стихий <li>повреждения магией света <li>повреждения магией тьмы <li>повреждения магией теней <li>повреждения магией природы <li>иммунитет к магии богов <li>иммунитет к магии стихий <li>иммунитет к магии света <li>иммунитет к магии тьмы <li>иммунитет к магии теней <li>иммунитет к магии природы <li>здоровье <li>энергия <li>точность <li>Шанс на критический удар <li>Повреждения при критическом ударе <li>Шанс на критический промах <li>Разговорчивость <li>Осторожность <li>Меткость выстрела <li>Стрелковые повреждения <li>Призыв привидения <li>Один безопасный переход по карте <li>Призыв горного демона <li>Призыв крылатого демона <li>Снятие всех заклинаний, наложенных на цель <li>Невозможность использования заклинаний целью <li>Призыв виолии <tr><td>Amount<td>dword<td>Сила эффекта. В зависимости от установленных флагов может интерпретироваться как непосредственное значение либо как значение в процентах. <tr><td>Flags<td>dword<td>Флаги (число слева - это индекс бита)<ol start=0> <li>Эффект действует постоянно <li>Эффект действует только днём <li>Эффект действует только ночью <li value=4>Поле Duration содержит действительное значение <li>Поле Delay содержит действительное значение <li>Поле Amount содержит непосредственное значение <li>Поле Amount содержит значение в процентах <li>Предназначение не известно. Этот флаг встречается на эффектах в предметах для NPC <tr><td>Duration<td>time<td>Время действия эффекта в ходах (смотри описание типа time) <tr><td>Delay<td>time<td>Задержка действия эффекта в ходах (смотри описание типа time) </table></table>

Консольные команды

Для активации консоли нужно добавить в файл "ColdHeaven.ini" строчку "d_console 1" (к слову здесь можно прописать любую команду из списка). В игре консоль вызывается тильдой. В консоли работают сочетания клавиш Ctrl+C и Ctrl+V, нажатием клавиши Tab можно перебирать консольные команды.

префикс cс<table><ul> <tr><th>Команда<th>Параметры<th>Описание <tr><td>cc_default<td> <tr><td>cc_unique_or_quest<td> <tr><td>cc_magical<td> <tr><td>cc_common<td> <tr><td>cc_cursed<td> <tr><td>cc_not_enough<td> <tr><td>cc_pars_std<td> <tr><td>cc_pars_not_enough<td> <tr><td>cc_special<td> <tr><td>cc_description<td> </table></ul>

Читы (префикс ch - cheats)<ul><table> Для того, чтобы активировать команды из этого списка, нужно использовать команду "sv_cheats 1". <tr><th>Команда<th>Параметры<th>Описание <tr><td>ch_add_exp<td>количество опыта<td>Добавить указанное количество опыта главному герою. <tr><td>ch_all_skill<td>-<td>Установить значиние всех навыков в максимум, заданый командой ch_max_skill_value. <tr><td>ch_finish_game<td>-<td>Завершить игру. <tr><td>ch_give<td>&ltItemId&gt &ltколичество&gt<td>Добавить указаное количество предметов в инвентарь. ItemID можно посмотреть в списке предметов. <tr><td>ch_god<td>1 или 0<td>Включить или выключить бесммертие главного героя. <tr><td>ch_KrepkajaSpina<td>1 или 0<td>При активации вес предметов инвентаря не учитывается (главный герой не может быть перегружен). <tr><td>ch_max_skill_value<td>Макксимальное значение навыков<td>Задаёт предел развития навыков. <tr><td>ch_max_primary_value<td>Макксимальное значение характеристик<td>Задаёт предел развития характеристик. <tr><td>ch_money<td>-<td>Отображает текущее количество денег у главного героя. <tr><td>ch_skip_random_meet<td><td> <tr><td>ch_ZorkijGlaz<td><td> </table></ul>

Клиент (префикс cl - client)<ul><table> <tr><th>Команда<th>Параметры<th>Описание <tr><td>cl_bpd<td>1 или 0<td>Bytes per datagram <tr><td>cl_bpd_limit_to_show<td><td> <tr><td>cl_bpf<td>1 или 0<td>Bytes per frame <tr><td>cl_bpf_limit_to_show<td><td> <tr><td>cl_console_time<td><td> <tr><td>cl_GXFps<td><td> <tr><td>cl_mini_console_lines<td><td> <tr><td>cl_reconnecttime<td><td> <tr><td>cl_timeout<td><td> <tr><td>cl_traffic<td><td> <tr><td>cl_username<td>-<td>Отобразить имя главного героя. <tr><td>cl_skinname<td><td> <tr><td>cl_spawn<td><td> </table></ul>

Отладка (префикс d - debug)<ul><table> <tr><th>Команда<th>Параметры<th>Описание <tr><td>d_console<td>1 или 0<td>Включить или выключить консоль. <tr><td>d_up_window<td><td> <tr><td>d_log_person<td><td> <tr><td>d_location<td>-<td>Отобразить название текущей локации. <tr><td>d_test_magic<td><td> <tr><td>d_info_persons<td>1 или 0<td>Включить или выключить отображение технической информации о персонажах. <tr><td>d_info_role<td>1 или 0<td>Включить или выключить отображение характеристик персонажей. <tr><td>d_info_items<td>1 или 0<td>Включить или выключить отображение количества предметов на карте. <tr><td>d_info_world<td>1 или 0<td>Включить или выключить отображение названия карты и коодинат мыши. <tr><td>d_info_tbsynchr<td><td> <tr><td>d_info_global_map<td>1 или 0<td>Включить или выключить отображение информации на глобальной карте (id зон и персонажей, вероятность встречи, координаты). <tr><td>d_info_phrases<td>1 или 0<td>Включить или выключить отображение id фраз в диалогах. <tr><td>d_go_to_cast<td><td> <tr><td>d_test<td><td> <tr><td>d_color<td><td> <tr><td>d_spritex_holder<td><td> <tr><td>d_sound_shaders<td><td> <tr><td>d_user_function<td><td> <tr><td>d_persons_path<td><td> <tr><td>d_persons<td><td> <tr><td>d_triggers<td><td> <tr><td>d_magic<td><td> <tr><td>d_net<td><td> <tr><td>d_history_log<td><td> <tr><td>d_random_generate<td><td> <tr><td>d_area_load<td><td> <tr><td>d_create_dialogs_cache<td><td> <tr><td>d_minimize_idle<td><td> <tr><td>d_update_idle<td><td> <tr><td>d_hooks<td><td> </table></ul>

Глобальные переменные (префикс gv - global variables)<ul><table> <tr><th>Команда<th>Параметры<th>Описание <tr><td>gv_addon<td><td> <tr><td>gv_debug_dialog<td><td> <tr><td>gv_Title<td>-<td>Отобразить версию игры <tr><td>gv_double_click_speed<td><td> <tr><td>gv_mouse_speed<td><td> <tr><td>gv_MouseAutoRepeatFirstDelay<td><td> <tr><td>gv_MouseAutoRepeatNextDelay<td><td> <tr><td>gv_OnHintDelay<td><td> <tr><td>gv_OnFastHintDelay<td><td> <tr><td>gv_day_night<td>1 или 0<td>Установить время суток 0 - день, 1 - ночь. <tr><td>gv_weather<td><td> <tr><td>gv_Weather_min_delay<td><td> <tr><td>gv_Weather_max_delay<td><td> <tr><td>gv_blood<td><td> <tr><td>gv_cgc_sync<td><td> <tr><td>gv_item_transaction_timeout<td><td> <tr><td>gv_item_using_timeout<td><td> <tr><td>gv_scroll_speed<td><td> <tr><td>gv_minimap_scroll_speed<td><td> <tr><td>gv_change_location<td><td> <tr><td>gv_clip_path_calc<td><td> <tr><td>gv_loading_jpg<td><td> <tr><td>gv_in_game<td><td> <tr><td>gv_is_multiplayer<td><td> <tr><td>gv_tcpip_ok<td><td> <tr><td>gv_free_camera<td>1 или 0<td>Включить или выключить привязку камеры к главному герою. <tr><td>gv_dialog_hacker<td><td> <tr><td>gv_minimap_alpha<td>от 0.0 до 1.0<td>Установить значение прозрачности миникарты. <tr><td>gv_minimap_step_scale<td><td> <tr><td>gv_minimap_show<td>1 или 0<td>Включить или выключить отображение миникарты. <tr><td>gv_minimap_detail<td><td> <tr><td>gv_minimap_smooth_scroll<td><td> <tr><td>gv_seconds_per_turn<td><td> <tr><td>gv_relax_time_factor<td><td> <tr><td>gv_SkillPtsPerLevel<td><td> <tr><td>gv_HeroPtsPerLevel<td><td> <tr><td>gv_titles_speed<td><td> <tr><td>gv_disable_scroll<td><td> <tr><td>gv_gm_step_delay<td>Задержка в миллисекундах<td>Установить задержку между кадрами на глобальной карте. <tr><td>gv_location_start<td>LocationId<td>Задать стартовую локацию при начале новой игры. Id локации можно подсмотреть в каталоге "levels\single". Эта команда работает только из ini-файла. <tr><td>gv_items_regenerate_interval<td><td> <tr><td>gv_gm_scroll_delay<td><td> <tr><td>gv_random_location<td><td> <tr><td>gv_pause<td>1 или 0<td>Включить или выключить паузу. <tr><td>gv_pause_between_turn<td><td> <tr><td>gv_pause_start_round<td><td> <tr><td>gv_person_tips<td><td> <tr><td>gv_status_bar_show_time<td><td> <tr><td>gv_status_bar_history_depth<td><td> <tr><td>gv_status_bar_show_history<td><td> <tr><td>gv_sound_effect_vol<td><td> <tr><td>gv_sound_speak_vol<td><td> <tr><td>gv_sound_music_vol<td><td> <tr><td>gv_sound_eax<td><td> <tr><td>gv_sound_fading<td><td> <tr><td>gv_run_always<td>1 или 0<td>Включить или выключить постоянный бег для главного героя. <tr><td>gv_hints_show<td><td> <tr><td>gv_anim_speed<td>Положительное число<td>Позволяет замедлить анимацию (чем больше значение параметра тем медленнее анимация). <tr><td>gv_location_cache<td><td> <tr><td>gv_meet_offset<td><td> <tr><td>gv_monster_min_dist<td><td> <tr><td>gv_monster_max_dist<td><td> <tr><td>gv_exotic_items_transfer<td><td> <tr><td>gv_map_walker<td>1 или 0<td>Включить или выключить безопасное путешествие по карте. <tr><td>gv_skip_logo<td>1 или 0<td>Включить или выключить вступительный видеоролик. </table></ul>

Сеть (префикс net - network)<ul><table> <tr><th>Команда<th>Параметры<th>Описание <tr><td>net_hostport<td><td> <tr><td>net_ip<td><td> <tr><td>net_stress_delaylocal<td><td> <tr><td>net_stress<td><td> </table></ul>

Рендер (префикс r - render)<ul><table> <tr><th>Команда<th>Параметры<th>Описание <tr><td>r_resolution<td><td> <tr><td>r_windowed<td>1 или 0<td>Включить или выключить оконный режим (только из ini-файла). <tr><td>r_masks_show<td><td> <tr><td>r_masks_mode<td>1 или 0<td>Включить или выключить полупрозрачность объектов, закрывающих персонажа. <tr><td>r_baselines_show<td><td> <tr><td>r_masked_show<td><td> <tr><td>r_senses_show<td>1 или 0<td>Включить или выключить отображение "чувств" персонажей (видимость и слышимость). <tr><td>r_senses_limits_show<td>1 или 0<td>Включить или выключить отображение полей зрения и слуха персонажей. <tr><td>r_person_rect_show<td>1 или 0<td>Включить или выключить прозрачность дляя спрайтов персонажей. <tr><td>r_shadow_rect_show<td>1 или 0<td>Включить или выключить прозрачность дляя спрайтов теней. <tr><td>r_noway_show<td><td> <tr><td>r_noview_show<td><td> <tr><td>r_triggers_show<td><td> <tr><td>r_gamma<td><td> <tr><td>r_antialiasing<td><td> <tr><td>r_max_texture_width<td><td> <tr><td>r_fps_show<td>1 или 0<td>Включить или выключить отображение FPS. </table></ul>

Сервер (префикс sv - server)<ul><table> <tr><th>Команда<th>Параметры<th>Описание <tr><td>sv_hostname<td><td> <tr><td>sv_cheats<td>1 или 0<td>Включить или выключить команды с префиксом "ch_". <tr><td>sv_demo<td><td> <tr><td>sv_start_rec_demo<td><td> <tr><td>sv_game_speed<td><td> <tr><td>sv_fps<td>кадры в секунду<td>Установить FPS для анимаций. <tr><td>sv_localhost<td><td> <tr><td>sv_maxclients<td><td> <tr><td>sv_dedicated<td><td> <tr><td>sv_multiplayer<td><td> </table></ul>

Горячие клавиши (префикс vk - virtual key)<ul> Эти команды отображают код клавиши, назначеной какому-либо действию. Переназначить клавиши можно только из ini-файла при помощи команды bind. В качестве параметра принимаются константы с префиксом DIK Список констант<ul><table> <tr><th>Константа<th>Значение <tr><td>DIK_ESCAPE<td>1 <tr><td>DIK_1<td>2 <tr><td>DIK_2<td>3 <tr><td>DIK_3<td>4 <tr><td>DIK_4<td>5 <tr><td>DIK_5<td>6 <tr><td>DIK_6<td>7 <tr><td>DIK_7<td>8 <tr><td>DIK_8<td>9 <tr><td>DIK_9<td>0Ah <tr><td>DIK_0<td>0Bh <tr><td>DIK_MINUS<td>0Ch <tr><td>DIK_EQUALS<td>0Dh <tr><td>DIK_BACK<td>0Eh <tr><td>DIK_TAB<td>0Fh <tr><td>DIK_Q<td>10h <tr><td>DIK_W<td>11h <tr><td>DIK_E<td>12h <tr><td>DIK_R<td>13h <tr><td>DIK_T<td>14h <tr><td>DIK_Y<td>15h <tr><td>DIK_U<td>16h <tr><td>DIK_I<td>17h <tr><td>DIK_O<td>18h <tr><td>DIK_P<td>19h <tr><td>DIK_LBRACKET<td>1Ah <tr><td>DIK_RBRACKET<td>1Bh <tr><td>DIK_RETURN<td>1Ch <tr><td>DIK_LCONTROL<td>1Dh <tr><td>DIK_A<td>1Eh <tr><td>DIK_S<td>1Fh <tr><td>DIK_D<td>20h <tr><td>DIK_F<td>21h <tr><td>DIK_G<td>22h <tr><td>DIK_H<td>23h <tr><td>DIK_J<td>24h <tr><td>DIK_K<td>25h <tr><td>DIK_L<td>26h <tr><td>DIK_SEMICOLON<td>27h <tr><td>DIK_APOSTROPHE<td>28h <tr><td>DIK_GRAVE<td>29h <tr><td>DIK_LSHIFT<td>2Ah <tr><td>DIK_BACKSLASH<td>2Bh <tr><td>DIK_Z<td>2Ch <tr><td>DIK_X<td>2Dh <tr><td>DIK_C<td>2Eh <tr><td>DIK_V<td>2Fh <tr><td>DIK_B<td>30h <tr><td>DIK_N<td>31h <tr><td>DIK_M<td>32h <tr><td>DIK_COMMA<td>33h <tr><td>DIK_PERIOD<td>34h <tr><td>DIK_SLASH<td>35h <tr><td>DIK_RSHIFT<td>36h <tr><td>DIK_MULTIPLY<td>37h <tr><td>DIK_LMENU<td>38h <tr><td>DIK_SPACE<td>39h <tr><td>DIK_CAPITAL<td>3Ah <tr><td>DIK_F1<td>3Bh <tr><td>DIK_F2<td>3Ch <tr><td>DIK_F3<td>3Dh <tr><td>DIK_F4<td>3Eh <tr><td>DIK_F5<td>3Fh <tr><td>DIK_F6<td>40h <tr><td>DIK_F7<td>41h <tr><td>DIK_F8<td>42h <tr><td>DIK_F9<td>43h <tr><td>DIK_F10<td>44h <tr><td>DIK_SCROLL<td>46h <tr><td>DIK_NUMPAD7<td>47h <tr><td>DIK_NUMPAD8<td>48h <tr><td>DIK_NUMPAD9<td>49h <tr><td>DIK_SUBTRACT<td>4Ah <tr><td>DIK_NUMPAD4<td>4Bh <tr><td>DIK_NUMPAD5<td>4Ch <tr><td>DIK_NUMPAD6<td>4Dh <tr><td>DIK_ADD<td>4Eh <tr><td>DIK_NUMPAD1<td>4Fh <tr><td>DIK_NUMPAD2<td>50h <tr><td>DIK_NUMPAD3<td>51h <tr><td>DIK_NUMPAD0<td>52h <tr><td>DIK_DECIMAL<td>53h <tr><td>DIK_OEM_102<td>56h <tr><td>DIK_F11<td>57h <tr><td>DIK_F12<td>58h <tr><td>DIK_F13<td>64h <tr><td>DIK_F14<td>65h <tr><td>DIK_F15<td>66h <tr><td>DIK_KANA<td>70h <tr><td>DIK_ABNT_C1<td>73h <tr><td>DIK_CONVERT<td>79h <tr><td>DIK_NOCONVERT<td>7Bh <tr><td>DIK_YEN<td>7Dh <tr><td>DIK_ABNT_C2<td>7Eh <tr><td>DIK_NUMPADEQUALS<td>8Dh <tr><td>DIK_PREVTRACK<td>90h <tr><td>DIK_AT<td>91h <tr><td>DIK_COLON<td>92h <tr><td>DIK_UNDERLINE<td>93h <tr><td>DIK_KANJI<td>94h <tr><td>DIK_STOP<td>95h <tr><td>DIK_AX<td>96h <tr><td>DIK_UNLABELED<td>97h <tr><td>DIK_NEXTTRACK<td>99h <tr><td>DIK_NUMPADENTER<td>9Ch <tr><td>DIK_RCONTROL<td>9Dh <tr><td>DIK_MUTE<td>0A0h <tr><td>DIK_CALCULATOR<td>0A1h <tr><td>DIK_PLAYPAUSE<td>0A2h <tr><td>DIK_MEDIASTOP<td>0A4h <tr><td>DIK_VOLUMEDOWN<td>0AEh <tr><td>DIK_VOLUMEUP<td>0B0h <tr><td>DIK_WEBHOME<td>0B2h <tr><td>DIK_NUMPADCOMMA<td>0B3h <tr><td>DIK_DIVIDE<td>0B5h <tr><td>DIK_SYSRQ<td>0B7h <tr><td>DIK_RMENU<td>0B8h <tr><td>DIK_PAUSE<td>0C5h <tr><td>DIK_HOME<td>0C7h <tr><td>DIK_UP<td>0C8h <tr><td>DIK_PRIOR<td>0C9h <tr><td>DIK_SYSRQ<td>0B7h <tr><td>DIK_LEFT<td>0CBh <tr><td>DIK_RIGHT<td>0CDh <tr><td>DIK_END<td>0CFh <tr><td>DIK_DOWN<td>0D0h <tr><td>DIK_NEXT<td>0D1h <tr><td>DIK_INSERT<td>0D2h <tr><td>DIK_DELETE<td>0D3h <tr><td>DIK_LWIN<td>0DBh <tr><td>DIK_RWIN<td>0DCh <tr><td>DIK_APPS<td>0DDh <tr><td>DIK_POWER<td>0DEh <tr><td>DIK_SLEEP<td>0DFh <tr><td>DIK_WAKE<td>0E3h <tr><td>DIK_WEBSEARCH<td>0E5h <tr><td>DIK_WEBFAVORITES<td>0E6h <tr><td>DIK_WEBREFRESH<td>0E7h <tr><td>DIK_WEBSTOP<td>0E8h <tr><td>DIK_WEBFORWARD<td>0E9h <tr><td>DIK_WEBBACK<td>0EAh <tr><td>DIK_MYCOMPUTER<td>0EBh <tr><td>DIK_MAIL<td>0ECh <tr><td>DIK_MEDIASELECT<td>0EDh </table></ul><table> <tr><th>Команда<th>Описание <tr><td>vk_screenshot<td>Сделать снимок экрана <tr><td>vk_player_info<td>Отобразить статистику персонажа аля Counter-Strike <tr><td>vk_spawn_player<td> <tr><td>vk_magic_test<td>Отобразить окно отладки заклинаний <tr><td>vk_location_test<td> <tr><td>vk_minimap_increase<td>Увеличить видимый размер миникарты <tr><td>vk_minimap_decrease<td>Уменьшить видимый размер миникарты <tr><td>vk_minimap_show<td>Переключение видимости миникарты <tr><td>vk_free_camera<td>Привязка камеры к главному герою <tr><td>vk_menu_toggle<td>Отобразить меню <tr><td>vk_quick_save<td>Быстрое сохранение <tr><td>vk_quick_load<td>Быстрая загрузка <tr><td>vk_speed_up<td> <tr><td>vk_speed_down<td> <tr><td>vk_skip_turn<td>Пропустить ход <tr><td>vk_dlghot_1<td rowspan=10>Варианты ответов в диалогах/использование горячих слотов <tr><td>vk_dlghot_2 <tr><td>vk_dlghot_3 <tr><td>vk_dlghot_4 <tr><td>vk_dlghot_5 <tr><td>vk_dlghot_6 <tr><td>vk_dlghot_7 <tr><td>vk_dlghot_8 <tr><td>vk_dlghot_9 <tr><td>vk_dlghot_0 <tr><td>vk_left_arrow<td rowspan=4>Прокрутка (скролинг) <tr><td>vk_right_arrow <tr><td>vk_up_arrow <tr><td>vk_down_arrow <tr><td>vk_lshift<td> <tr><td>vk_rshift<td> <tr><td>vk_relaxation<td>Активировать режим отдыха <tr><td>vk_inventory_show<td>Открыть инвентарь <tr><td>vk_globalmap_show<td>Открыть глобальную карту <tr><td>vk_magicbook_show<td>Открыть книгу заклинаний <tr><td>vk_diary_show<td>Показать дневник <tr><td>vk_stealing<td>Кража <tr><td>vk_smith<td>Кузнечное дело <tr><td>vk_alchemy<td>Алхимия <tr><td>vk_repairing<td>Починка <tr><td>vk_staff_charging<td>Зарядка посоха <tr><td>vk_weapon_toggle<td>Смена текущего оружия <tr><td>vk_attacktype_toggle<td>Сменить режим атаки <tr><td>vk_reload_weapon<td>Перезарядить оружие <tr><td>vk_staff_current_spell<td>Текущее заклинание - посох <tr><td>vk_magicbook_current_spell<td>Текущее заклинание - из магической книги <tr><td>vk_activale_aimed_hits<td>Прицельная атака <tr><td>vk_panel_toggle<td>Отобразить или спрятать нижнюю панель интерфейса <tr><td>vk_flash_objects<td>Подсветка объектов <tr><td>vk_flash_objects_alt<td>Подсветка объектов </table></ul>

Разное (без префикса)<ul><table> <tr><th>Команда<th>Параметры<th>Описание <tr><td>add_ally<td>-<td> <tr><td>add_person<td>-<td> <tr><td>ai_see<td><td> <tr><td>ai_think<td><td> <tr><td>ap_set_route<td>-<td> <tr><td>attach_to_person<td>-<td> <tr><td>cache_all_dialogs<td>-<td> <tr><td>connect<td><td> <tr><td>del_person<td>PersonId<td>Удалить персонажа. PersonId можно узнать командой d_info_persons. <tr><td>disconnect<td><td> <tr><td>distance_attack<td>-<td> <tr><td>exit<td>-<td>Выход из игры <tr><td>fire_start<td>-<td> <tr><td>fire_stop<td>-<td> <tr><td>game_save<td>номер слота<td>Сохраняет игру в указаном слоте. <tr><td>kill_person<td>PersonId<td>Убить персонажа. PersonId можно узнать командой d_info_persons. <tr><td>restart<td><td> <tr><td>set_tb_mode<td>-<td>Включить пошаговый режим. <tr><td>set_speed<td>модификатор задержки<td>Устанавливает модификатор задержки между кадрами анимации (вещественное число). Значение -1 полностью убирает задержку (максимальная скорость анимации), -0.5 ускоряет анимацию в 2 раза, 1 замедляет анимацию в 2 раза и т.д. <tr><td>transition<td>LocationId<td>Переместить главного героя на указанную локацию. Id локации можно подсмотреть в каталоге "levels\single". <tr><td>use_all_magic<td>-<td>Добавить все заклинания в книгу заклинаний. <tr><td>zombie_time<td><td> </table></ul>

Скрипты

<ul><table> <tr><th>Команда<th>Параметры<th>Описание <tr><td>D_Say <tr><td>D_CloseDialog <tr><td>D_Answer <tr><td>D_PlaySound <tr><td>Exit <tr><td>Signal <tr><td>Console <tr><td>Cmd <tr><td>LE_CastEffect <tr><td>LE_DelEffect <tr><td>LE_CastMagic <tr><td>WD_LoadArea <tr><td>WD_TitlesAndLoadArea <tr><td>C_TitlesAndFINISHED <tr><td>WD_SetCellsGroupFlag <tr><td>RS_SetTribesRelation <tr><td>RS_GetTribesRelation <tr><td>RS_StartDialog <tr><td>WD_SetVisible <tr><td>C_FINISHED <tr><td>RS_TestPersonHasItem <tr><td>RS_PersonTransferItemI <tr><td>RS_GetItemCountI <tr><td>RS_PersonTransferAllItemsI <tr><td>RS_GetMoney <tr><td>RS_PersonAddItemToTrade <tr><td>RS_PersonRemoveItemToTrade <tr><td>RS_PersonAddItem <tr><td>RS_PersonRemoveItem <tr><td>RS_GetPersonParameterI <tr><td>RS_SetPersonParameterI <tr><td>RS_GetPersonSkillI <tr><td>RS_AddPerson_1 <tr><td>RS_AddPerson_2 <tr><td>RS_AddExp <tr><td>RS_IsPersonExistsI <tr><td>RS_DelPerson <tr><td>RS_AddToHeroPartyName <tr><td>RS_RemoveFromHeroPartyName <tr><td>RS_TestHeroHasPartyName <tr><td>RS_AllyCmd <tr><td>RS_ShowMessage <tr><td>RS_QuestComplete <tr><td>RS_StageEnable <tr><td>RS_QuestEnable <tr><td>RS_StorylineQuestEnable <tr><td>RS_StageComplete <tr><td>RS_GetDayOrNight <tr><td>RS_EnableTrigger <tr><td>RS_GetRandMinMaxI <tr><td>RS_GetCurrentTimeOfDayI <tr><td>RS_GetDaysFromBeginningI <tr><td>RS_SetEvent <tr><td>RS_GetEvent <tr><td>RS_ClearEvent <tr><td>RS_AddTime <tr><td>RS_GetDialogEnabled <tr><td>RS_SetWeather <tr><td>RS_SetSpecialPerk <tr><td>RS_PassToTradePanel <tr><td>RS_SetUndeadState <tr><td>RS_SetLocationAccess <tr><td>RS_GlobalMap <tr><td>RS_SetInjured <tr><td>RS_SetDoorState </table></ul>

Разное

<ul> <li>Инструменты от -=CHE@TER=- - скачать <li>Движок вначале пытается подгрузить распакованные файлы из каталога игры, затем ищёт файлы в архивах. Создателям модификаций будет удобно распаковать архивы в каталог с игрой (не в Data).