//*******************************************************************************************
// Функции преобразования - CAST
//*******************************************************************************************
// Преобразует адрес address указателя в instance
func instance Cast_PointerToInstance( var int address )
// Преобразует object в адрес
func int Cast_InstanceToPointer( var instance object )
// Преобразует адрес address указателя в npc
func C_NPC Cast_PointerToNpc( var int address )
// Преобразует адрес address указателя в item
func C_ITEM Cast_PointerToItem( var int address )
// Определяет является ли объект object персонажем
func int Cast_InstanceIsNpc( var instance object )
// Определяет является ли объект object предметом
func int Cast_InstanceIsItem( var instance object )
// Определяет является ли объект object мобом
func int Cast_InstanceIsMob( var instance object )
// Возвращает индекс инстанции объекта, иначе -1
func int Cast_GetInstanceIndex( var instance object )
// Возвращает идентификатор класса класса по его имени
func int Cast_GetClassID( var string className )
// Возвращает идентификатор класса zCObject воба
func int Cast_GetVobClassID( var instance object )
// Проверяет является ли класс classId родительским для объекта object
func int Cast_CheckVobClassID( var int classId, var instance object )
//*****************************************************************************************
// Функции вспомогательные - HLP
//*****************************************************************************************
// Определяет существует ли для нпс npc объект в фокусе
func int Hlp_HasFocusVob( var C_NPC npc )
// Возвращает объект в фокусе персонажа npc
func instance Hlp_GetFocusVob( var C_NPC npc )
// Возвращает имя воба в фокусе персонажа npc
func string Hlp_GetFocusVobName( var C_NPC npc )
// Возвращает длину строки str
func int Hlp_GetStringLength( var string str )
// Определяет является ли значение value неопределенностью
func int IsNAN( var float value )
// Определяет была ли только что нажата кнопка key
func int Hlp_KeyToggled( var int key )
// Определяет зажата ли кнопка key
func int Hlp_KeyPressed( var int key )
// Определяет была ли нажата логическая кнопка key
func int Hlp_LogicalKeyToggled( var int key )
// Определяет стоит ли игра на паузе
func int Hlp_GameOnPause()
// Выводит сообщение message на экран
func void Hlp_MessageBox( var string message )
// Выводит информацию message в консольное окно Union'а
func void Hlp_PrintConsole(var string message)
// Считывает целочисленное значение параметра из ini
// файла optName ("Gothic", "Mod", "SystemPack"), секции section,
// вхождения entry, где значением по умолчанию считыется default
func int Hlp_ReadOptionInt(var string optName, var string section, var string entry, var int default)
// Считывает вещественное значение параметра из ini
// файла optName ("Gothic", "Mod", "SystemPack"), секции section,
// вхождения entry, где значением по умолчанию считыется default
func float Hlp_ReadOptionFloat(var string optName, var string section, var string entry, var float default)
// Считывает строковое значение параметра из ini
// файла optName ("Gothic", "Mod", "SystemPack"), секции section,
// вхождения entry, где значением по умолчанию считыется default
func string Hlp_ReadOptionString(var string optName, var string section, var string entry, var string default)
// Определяет существует ли в ini
// файле optName ("Gothic", "Mod", "SystemPack") секция section
// (при entry = "") или вхождение entry (тогда entry != "")
func int Hlp_OptionIsExists(var string optName, var string section, var string entry)
// Записывает целочисленное значение value в ini
// файл optName ("Gothic", "Mod", "SystemPack")
// в секцию section, вхождение entry
func void Hlp_WriteOptionInt(var string optName, var string section, var string entry, var int value)
// Записывает вещественное значение value в ini
// файл optName ("Gothic", "Mod", "SystemPack")
// в секцию section, вхождение entry
func void Hlp_WriteOptionFloat(var string optName, var string section, var string entry, var float value)
// Записывает строковое значение value в ini
// файл optName ("Gothic", "Mod", "SystemPack")
// в секцию section, вхождение entry
func void Hlp_WriteOptionString(var string optName, var string section, var string entry, var string value)
// Возвращает имя текущего пользователя Steam (иначе пустую строку)
func string Hlp_GetSteamPersonalName()
//*****************************************************************************************
// Функции действий над миром - WLD
//*****************************************************************************************
// Меняет активный мир world и ставит hero на заданный waypoint
func void Wld_ChangeLevel( var string world , var string waypoint )
// Ищет воб по его имени vobname и возвращает адрес , иначе -1
func instance Wld_FindVob( var string vobname )
// Воспроизводит эффект effect для воба pvob, с уровнем эффекта level,
// силой урона damage, типом урона damage_type и скоростью damage_speed
func void Wld_PlayEffectVob(
var string effect ,
var instance pvob ,
var int level ,
var int damage ,
var int damage_type ,
var int damage_speed )
// Воспроизводит эффект effect в точке coord, с уровнем эффекта level,
// силой урона damage, типом урона damage_type и скоростью damage_speed
func void Wld_PlayEffectAt(
var string effect ,
var instance coord ,
var int level ,
var int damage ,
var int damage_type ,
var int damage_speed )
// Вызывает эффект дождя силой weight и продолжительностью time
func void Wld_ToggleRain( var float weight , var flaot time )
// Устанавливает тип осадков // дождь или снег. Работает только в G2 & G2A
func void Wld_SetWeatherType( var int type )
// Возвращает тип осадков, иначе -1. работает только в G2 & G2A
func int Wld_GetWeatherType()
//*****************************************************************************************
// Функции действий над моделью - MDL
//*****************************************************************************************
// Получает индекс анимации по имени ani_name, иначе -1
func int Mdl_GetAnimationIndex( var C_NPC npc , var string ani_name )
// Получает имя анимации по индексу ani_index, иначе пустая строка
func string Mdl_GetAnimationName( var C_NPC npc , var int ani_index )
// Определяет существует ли анимация по заданному индексу ani_index
func int Mdl_AnimationIsExists( var C_NPC npc , var int ani_index )
// Определяет активна ли у персонажа npc анимация ani_index
func int Mdl_AnimationIsActive( var C_NPC npc , var int ani_index )
// Изменяет скорость всех анимаций персонажа npc на fps
func float Mdl_SetAllAnimationsFPS( var C_NPC npc , var float fps )
// Сбрасывает скорость всех анимаций персонажа npc
func float Mdl_ResetAllAnimationsFPS( var C_NPC npc )
// Изменяет скорость заданной анимации idx персонажа npc на fps
func float Mdl_SetAnimationFPS( var C_NPC npc , var int idx , var float fps )
// Сбрасывает скорость заданной анимации ani_index персонажа npc
func float Mdl_ResetAnimationFPS( var C_NPC npc , var int ani_index )
// Отображает модель для npc, если isVisible истина, иначе скрывает
func void Mdl_SetVisible( var C_NPC npc , var int isVisible )
// Применяет или делает оверлей верхним в списке оверлеев
func void Mdl_ApplyOverlayMds_AtFirst( var string mdsName )
// Задает скорость анимаций multiplier для персонажа npc (1.0 нормальная скорость)
func void Mdl_SetNpcSpeedMultiplier( var C_Npc npc, var float multiplier )
// Сбрасывает скорость анимаций для персонажа npc
func void Mdl_ResetNpcSpeedMultiplier( var C_Npc npc )
//*****************************************************************************************
// Функции действий над персонажами - NPC
//*****************************************************************************************
// Изменяет главного героя на персонажа npc
func void Npc_SetAsHero( var C_NPC npc )
// Открывает основной инвентарь персонажа npc
func void Npc_OpenInventory( var C_NPC npc )
// Открывает инвентарь персонажа, который находится в фокусе npc
func void Npc_OpenInventorySteal( var C_NPC npc )
// Открывает основной интвентарь персонажа npc для торговли
func void Npc_OpenInventoryTrade( var C_NPC npc )
// Возвращает предмет, который находится в левой руке персонажа npc
func C_Item Npc_GetLeftHandItem( var C_Npc npc )
// Возвращает предмет, который находится в правой руке персонажа npc
func C_Item Npc_GetRightHandItem( var C_Npc npc )
// Возвращает предмет, который находится в слоте slotName персонажа npc
func C_Item Npc_GetSlotItem( var C_Npc npc )
// Помещает экземпляр класса oCVob (в тч item, npc) object в слот slotName персонажа npc.
// Параметр copyInInv определяет, должна ли копия предмета оставаться в инвентаре персонажа.
func void Npc_PutInSlot(var C_Npc npc, var string slotName, var instance object, var int copyInInv)
// Удаляет объект из слота slotName персонажа npc. Параметр dropIt в Gothic 2 определяет,
// должен ли объект выпасть из слота. В Gothic 1 параметр зарезервирован и должен быть 0.
func void Npc_RemoveFromSlot(var C_Npc npc, var string slotName, var int dropIt)
//*****************************************************************************************
// Функции действий над интерактивными объектами - MOB
//*****************************************************************************************
// Ломает объект object
func void Mob_Destroy( var instance object )
// Удаляет из контейнера моба object предмет item
func void Mob_RemoveItem( var instance object , var int item )
// Удаляет из контейнера моба object предметы item в количестве cnt
func void Mob_RemoveItems( var instance object , var int item , var int cnt )
// Добавляет в контейнер моба object предмет item
func void Mob_InsertItem( var instance object , var int item )
// Добавляет в контейнер моба object предметы item в количестве cnt
func void Mob_InsertItems( var instance object , var int item , var int cnt )
// Возвращает комбинацию взлома для моба object
func string Mob_GetLockCombination( var instance object )
// Устанавливает комбинацию взлома comb для моба object
func void Mob_SetLockCombination( var instance object , var string comb )
// Определяет заперт ли моб object
func int Mob_IsLocked( var instance object )
// Устанавливает значение locked будет ли моб object заперт
func void Mob_SetLocked( var instance object , var int locked )
// Возвращает инстанцию ключа для object, иначе null
func instance Mob_GetKeyInstance( var instance object )
// Устанавливает инстанцию ключа key для object, иначе -1
func void Mob_SetKeyInstance( var instance object , var int key )
//*****************************************************************************************
// Функции для работы с AI
//*****************************************************************************************
// Ставит вызов функции funcName в AI очередь
// и при ее вызове помещает значения slf & oth
// в глобальные self & other (соотвественно)
func void AI_CallScript(var string funcName, var C_Npc slf, var C_Npc oth)
// Создает циклический триггер, вызывающий функцию
// funcName каждые delay миллисекунд. В глобальную переменную
// SelfTrigger будет помещен триггер, вызывающий текущую функцию funcName
func C_Trigger AI_StartTriggerScript(var string funcName, var int delay)
// Таже функция, принимающая три дополнительных
// агрумента - slf, oth и vct, которые при вызове функции
// funcName будут помещены в глобальные self, other и victim (соответственно)
func C_Trigger AI_StartTriggerScriptEx(var string funcName, var int delay, var C_Npc slf, var C_Npc oth, var C_Npc vct)
// Рекомандуемые константы для функции AI_GetTriggerNPC
const int selfID = 0;
const int otherID = 1;
const int victimID = 2;
// Проверяет, является ли указатель pointer нулевым
func int Hlp_IsNULL(var instance pointer);
// Возвращает триггер из массива активных триггеров по индексу ID
func C_Trigger AI_GetTriggerByID(var int ID);
// Возвращает количество триггеров в массиве активных триггеров
func int AI_GetTriggersNum();
// Возвращает связанного с триггером NPC, соторый соответствует индексу 0 = self, 1 = other, 2 = victim
func C_Trigger AI_GetTriggerNPC(var int npcID);
// Возвращает связанную с триггером trigger функцию
func func AI_GetTriggerFunc(var C_Trigger trigger);
// Возвращает имя связанной с триггером trigger функции
func string AI_GetTriggerFuncName(var C_Trigger trigger);
// Возвращает следующий за startTrigger триггер, функция которого соответствует function
AI_GetNextTriggerByFunc(var C_Trigger startTrigger, var func function);
// Возвращает следующий за startTrigger триггер, имя функции которого соответствует functionName
AI_GetNextTriggerByFuncName(var C_Trigger startTrigger, var string functionName);
// Возвращает следующий за startTrigger триггер, Self-NPC которого соответствует self
AI_GetNextTriggerBySelf(var C_Trigger startTrigger, var C_Npc self);
// Возвращает следующий за startTrigger триггер, Other-NPC которого соответствует other
AI_GetNextTriggerByOther(var C_Trigger startTrigger, var C_Npc other);
// Возвращает следующий за startTrigger триггер, Victim-NPC которого соответствует victim
AI_GetNextTriggerByVictim(var C_Trigger startTrigger, var C_Npc victim);
// Возвращает следующий за startTrigger триггер, связанные NPC которого соответствуют self, other & victim соответственно
AI_GetNextTriggerByNPCs(var C_Trigger startTrigger, var C_Npc self, var C_Npc other, var C_Npc victim);
//*****************************************************************************************
// Функции для работы с парсерами - PAR
//*****************************************************************************************
// Возвращает ID парсера по его имени parName
// (см. теги и наименования парсеров/DAT файлов)
func int Par_GetParserID(var string parName);
// Возвращает ID символа symName из парсера parId
func int Par_GetSymbolID(var int parId, var string symName);
// Возвращает количество элементов символа symId парсера parId
// (если количество больше 1, то символ является массивом)
func int Par_GetSymbolLength(var int parId, var int symId);
// Возвращает int значение символа symId парсера parId
func int Par_GetSymbolValueInt(var int parId, var int symId);
// Возвращает float значение символа symId парсера parId
func float Par_GetSymbolValueFloat(var int parId, var int symId);
// Возвращает string значение символа symId парсера parId
func string Par_GetSymbolValueString(var int parId, var int symId);
// Возвращает instance значение символа symId парсера parId
func instance Par_GetSymbolValueInstance(var int parId, var int symId);
// Возвращает int значение символа symId по индексу arrayId парсера parId
func int Par_GetSymbolValueIntArray(var int parId, var int symId, var int arrayId);
// Возвращает float значение символа symId по индексу arrayId парсера parId
func float Par_GetSymbolValueFloatArray(var int parId, var int symId, var int arrayId);
// Возвращает string значение символа symId по индексу arrayId парсера parId
func string Par_GetSymbolValueStringArray(var int parId, var int symId, var int arrayId);
// Задает int значение value символу symId парсера parId
func void Par_SetSymbolValueInt(var int value, var int parId, var int symId, var int arrayId);
// Задает float значение value символу symId парсера parId
func void Par_SetSymbolValueFloat(var float value, var int parId, var int symId, var int arrayId);
// Задает string значение value символу symId парсера parId
func void Par_SetSymbolValueString(var string value, var int parId, var int symId, var int arrayId);
// Задает instance значение value символу symId парсера parId
func void Par_SetSymbolValueInstance(var instance value, var int parId, var int symId, var int arrayId);
// Задает int значение value символу symId по индексу arrayId парсера parId
func void Par_SetSymbolValueIntArray(var int value, var int parId, var int symId, var int arrayId);
// Задает float значение value символу symId по индексу arrayId парсера parId
func void Par_SetSymbolValueFloatArray(var float value, var int parId, var int symId, var int arrayId);
// Задает string значение value символу symId по индексу arrayId парсера parId
func void Par_SetSymbolValueStringArray(var string value, var int parId, var int symId, var int arrayId);
//*****************************************************************************************
// Функции для работы со строками - STR
//*****************************************************************************************
// Возвращает отформатированную строку format, в которую подставлены указанные в ней аргументы.
// Передача аргумента в строку format осуществляется литералом %, который может принимать значения:
// %s - подставляет строку
// %i - подставляет целое число
// %x - подставляет целое число в 16-ой системе
// %f - подставляет число с плавающей запятой
// %b - подставляет логическое выражение
// %p - подставляет адрес инстанции
// в других случаях подставляет следующий символ
func string Str_Format( var string format, ... )
// Возвращает строку, которая соответствует текущему языку, иначе английский вариант.
// Аргументы должны быть представлены в кодировке UTF-8! Результат будет преобразован в ANSI строку.
func string Str_GetLocalizedString( var string russian, var string english, var string german, var string polish )
// Возвращает строку, которая соответствует текущему языку, иначе английский вариант.
// Аргументы должны быть представлены в кодировке UTF-8! Результат будет преобразован в ANSI строку.
func string Str_GetLocalizedStringEx( var string russian, var string english, var string german, var string polish,
var string czech, var string romanian, var string italian, var string spanish );
// Преобразует строку utf8 в кодировке UTF-8 в строку ANSI с кодовой страницей codePade
func string Str_UTF8_to_ANSI( var string utf8, var int codePade )
// Возвращает кодовую страницу, которая соответствует текущему языку в системе Union
func int Str_GetCurrentCP()
// Возвращает длину строки str
func int Str_GetLength( var int str )
//*****************************************************************************************
// Функции работы с дневником - LOG
//*****************************************************************************************
// Возвращает статус записи в дневнике:
// Отсутствует - (-1)
// Free - 0
// Running - 1
// Success - 2
// Failure - 3
// Obsolete - 4
func int Log_GetTopicStatus(var string topic)
// Возвращает страницу на которой расположена запись в дневнике.
// Отсутствует - (-1)
// Missions - 0
// Notes - 1
// All - 2
func int Log_GetTopicSection(var string topic)
//*****************************************************************************************
// Функции работы с вобами (прокси-классы) - VOB
//*****************************************************************************************
// Возвращает текущую позицию объекта в мире
func C_Position Vob_GetVobPosition( var C_Vob vob )
// Задает текущую позицию объекта в мире
func void Vob_SetVobPosition( var C_Vob vob, var C_Position pos )
// Возвращает универсальные данные объекта zCVob
func C_Vob_Data Vob_GetVobData( var C_Vob vob )
// Задает универсальные данные объекта zCVob
func void Vob_SetVobData( var C_Vob vob, var C_Vob_Data data )
// Возвращает данные объекта zCVobLight
func C_Light_Data Vob_GetLightData( var C_Vob vobLight )
// Задает данные объекта zCVobLight
func void Vob_SetLightData( var C_Vob vobLight, var C_Light_Data data )
// Очищает список цветов анимации для источника света
func void Vob_ClearLightAniList( var C_Vob vobLight )
// Добавляет позицию в список цветов
func void Vob_AddLightAniColor( var C_Vob vobLight, var C_Color col )
// Добавляет позицию в список цветов
func void Vob_AddLightAniColorRGB( var C_Vob vobLight, var int r, var int g, var int b )
// Возвращает данные объекта oCMOB
func C_Mob_Data Vob_GetMobData( var C_Vob mob )
// Задает данные объекта oCMOB
func void Vob_SetMobData( var C_Vob mob, var C_Mob_Data data )
// Возвращает данные объекта oCMobInter
func C_MobInter_Data Vob_GetMobInterData( var C_Vob mobInter )
// Задает данные объекта oCMobInter
func void Vob_SetMobInterData( var C_Vob mobInter, var C_MobInter_Data data )
// Возвращает данные объекта oCMobLockable
func C_MobLockable_Data Vob_GetMobInterData( var C_Vob mobLock )
// Задает данные объекта oCMobLockable
func void Vob_SetMobInterData( var C_Vob mobLock, var C_MobLockable_Data data )
//*****************************************************************************************
// Остальные функции
//*****************************************************************************************
// Находит все объекты C_MenuItem по маске имени ptr и автоматически помещает в текущую инстанцию меню
func void Menu_SearchItems( var string ptr )
// Открывает ссылку в браузере по умолчанию или в Steam Overlay (если доступен)
func void Open_Link( var string url )