ZenGin Программы Модификации Ассеты Черновик Анимации PFX/VFX Регистрация Вход
AI_AimAt() ? G G
Функция исскуственного интеллекта.
Атакующий Npc целится из оружия дальнего радиуса поражения в целевого Npc.
AI_AlignToFP() ? G G
Функция исскуственного интеллекта.
Npc выравнивается на Freepoint по направлению стрелки заданной в Spacer.
AI_AlignToWP() ? G G
Функция исскуственного интеллекта.
Npc выравнивается на Waypoint по направлению стрелки заданной в Spacer.
AI_Ask() ? G G
Функция исскуственного интеллекта.
Определяет функцию вызываемую при утвердительном и отрицательном ответах.
AI_AskText() ? G G
Функция исскуственного интеллекта.
Определяет как Npc будет отвечать на сказанную фразу.
AI_Attack() ? GG
Функция исскуственного интеллекта.
Npc начинает сражаться.
AI_CanSeeNpc() ? G G
Функция исскуственного интеллекта.
Npc может увидеть другого Npc.
AI_CombatReactToDamage() ? G G
Функция исскуственного интеллекта.
Реакция Npc на повреждение во время боя.
AI_ContinueRoutine() ? GG
Функция исскуственного интеллекта.
Npc продолжает выполнение распорядка дня.
AI_Defend() ? GG
Функция исскуственного интеллекта.
Npc парирует удар противника.
AI_Dodge() ? GG
Функция исскуственного интеллекта.
Npc отклоняется назад.
AI_DrawWeapon() ? GG
Функция исскуственного интеллекта.
Npc обнажает экипированное оружие.
AI_DropItem() ? GG
Функция исскуственного интеллекта.
Npc выбрасывает из рюкзака указанный предмет.
AI_DropMOB() ? GG
Функция исскуственного интеллекта.
Npc выбрасывает имеющийся MOB.
AI_EquipArmor() ? GG
Функция исскуственного интеллекта.
Npc экипирует указанные доспехи из инвентаря.
AI_EquipBestArmor() ? GG
Функция исскуственного интеллекта.
Npc одевает лучшие доспехи из имеющихся в инвентаре.
AI_EquipBestMeleeWeapon() ? GG
Функция исскуственного интеллекта.
Npc экипирует лучшее оружие ближнего боя.
AI_EquipBestRangedWeapon() ? GG
Функция исскуственного интеллекта.
Npc экипирует лучшее оружие дальнего боя.
AI_FinishingMove() ? GG
Функция исскуственного интеллекта.
Npc убивает другого Npc.
AI_Flee() ? GG
Функция исскуственного интеллекта.
Npc убегает от противника.
AI_GotoFP() ? GG
Функция исскуственного интеллекта.
Npc перемещается в указанный Freepoint.
AI_GotoItem() ? GG
Функция исскуственного интеллекта.
Npc перемещается к предмету инвентаря.
AI_GotoNextFP() ? GG
Функция исскуственного интеллекта.
Npc перемещается в следующий указанный Freepoint.
AI_GotoNpc() ? GG
Функция исскуственного интеллекта.
Npc перемещается к другому Npc.
AI_GotoSound() ? GG
Функция исскуственного интеллекта.
Npc перемещается к источнику звука.
AI_GotoWP() ? GG
Функция исскуственного интеллекта.
Npc перемещается в указанный Waypoint.
AI_LookAt() ? GG
Функция исскуственного интеллекта.
Npc смотрит на объект или точку.
AI_LookForItem() ? GG
Функция исскуственного интеллекта.
Поиск предметов в инвентаре.
AI_LookAtNpc() ? GG
Функция исскуственного интеллекта.
Npc смотрит на другого Npc.
AI_Output() ? GG
Функция исскуственного интеллекта.
Функция диалога.
AI_OutputSVM() ? GG
Функция исскуственного интеллекта.
Функция SVM диалога.
AI_OutputSVM_Overlay() ? GG
Функция исскуственного интеллекта.
Функция перекрывающего SVM диалога.
AI_PlayAni() ? GG
Функция исскуственного интеллекта.
Npc проигрывает анимацию.
AI_PlayAniBS() ? GG
Функция исскуственного интеллекта.
Npc проигрывает анимацию для определения состояния тела.
AI_PlayCutscene() ? GG
Функция исскуственного интеллекта.
Проигрывание игрового ролика для Npc.
AI_PlayFX() ? G
Функция исскуственного интеллекта.
Проигрывание PFX эффектов.
AI_PointAt() ? GG
Функция исскуственного интеллекта.
Npc указывает на объект или точку.
AI_PointAtNpc() ? GG
Функция исскуственного интеллекта.
Npc указывает на другого Npc.
AI_PrintScreen() ? G
Функция исскуственного интеллекта.
Вывод на экран текстовой строки.
AI_ProcessInfos() ? GG
Функция исскуственного интеллекта.
Запуск диалога с вариантами ответов.
AI_QuickLook() ? GG
Функция исскуственного интеллекта.
Npc бросает быстрый взгляд на другого Npc.
AI_ReadyMeleeWeapon() ? GG
Функция исскуственного интеллекта.
Npc подготавливает оружие ближнего боя.
AI_ReadyRangedWeapon() ? GG
Функция исскуственного интеллекта.
Npc подготавливает оружие дальнего боя.
AI_ReadySpell() ? GG
Функция исскуственного интеллекта.
Npc подготавливает заклинание.
AI_RemoveWeapon() ? GG
Функция исскуственного интеллекта.
Npc прячет оружие.
AI_SetNpcsToState() ? GG
Функция исскуственного интеллекта.
Переводит всех окружающих Npc в указанное состояние.
AI_SetWalkmode() ? GG
Функция исскуственного интеллекта.
Установка режима перемещения Npc.
AI_ShootAt() ? GG
Функция исскуственного интеллекта.
Npc стреляет из оружия дальнего боя в другого Npc.
AI_Snd_Play() ? G
Функция исскуственного интеллекта.
Воспроизведение звукового файла для Npc.
AI_Snd_Play3D() ? G
Функция исскуственного интеллекта.
Воспроизведение звукового файла в 3D для Npc.
AI_StandUp() ? GG
Функция исскуственного интеллекта.
Перевод Npc в рабочую стойку с анимацией.
AI_StandUpQuick() ? GG
Функция исскуственного интеллекта.
Перевод Npc в рабочую стойку без анимации.
AI_StartState() ? GG
Функция исскуственного интеллекта.
Перевод Npc в новое состояние.
AI_StopAim() ? GG
Функция исскуственного интеллекта.
Npc прекращает целится из оружия дальнего боя.
AI_StopFX() ? G
Функция исскуственного интеллекта.
Остановка проигрывания PFX эффектов.
AI_StopLookAt() ? GG
Функция исскуственного интеллекта.
Npc прекращает смотреть на другого Npc или объект.
AI_StopPointAt() ? GG
Функция исскуственного интеллекта.
Npc прекращает указывать на другого Npc или объект.
AI_StopProcessInfos() ? GG
Функция исскуственного интеллекта.
Завершение режима диалога.
AI_TakeItem() ? GG
Функция исскуственного интеллекта.
Npc берет предмет инвентаря.
AI_TakeMOB() ? GG
Функция исскуственного интеллекта.
Npc берет MOB.
AI_Teleport() ? GG
Функция исскуственного интеллекта.
Npc переносится на указанное место в локации.
AI_TurnAway() ? GG
Функция исскуственного интеллекта.
Npc поворачивается к другому Npc спиной.
AI_TurnToNpc() ? GG
Функция исскуственного интеллекта.
Npc поворачивается к другому Npc лицом.
AI_TurnToSound() ? GG
Функция исскуственного интеллекта.
Npc поворачивается лицом к источнику звука.
AI_UnequipArmor() ? GG
Функция исскуственного интеллекта.
Npc убирает экипированные доспехи в инвентарь.
AI_UnequipWeapons() ? GG
Функция исскуственного интеллекта.
Npc убирает экипированное оружие инвентарь.
AI_UnreadySpell() ? GG
Функция исскуственного интеллекта.
Npc убирает активное заклинание в инвентарь.
AI_UseItem() ? GG
Функция исскуственного интеллекта.
Npc использует предмет инвентаря.
AI_UseItemToState() ? GG
Функция исскуственного интеллекта.
Npc использует предмет инвентаря до указанного состояния анимации.
AI_UseMOB() ? GG
Функция исскуственного интеллекта.
Npc использует MOB до указанного состояния анимации.
AI_Wait() ? GG
Функция исскуственного интеллекта.
Npc переводится в режим ожидания на несколько секунд.
AI_WaitForQuestion() ? GG
Функция исскуственного интеллекта.
Npc переводится в режим ожидания ответа.
AI_WaitMs() ? GG
Функция исскуственного интеллекта.
Npc переводится в режим ожидания на несколько милисекунд.
AI_WaitTillEnd() ? GG
Функция исскуственного интеллекта.
Npc ждет ответа на свою фразу.
AI_WhirlAround() ? GG
Функция исскуственного интеллекта.
Npc быстро поворачивается к другому Npc лицом.
AI_WhirlAroundToSource() ? GG
Функция исскуственного интеллекта.
Npc быстро поворачивается лицом к источнику.
Apply_Options_Audio() ? GG
Функция игрового меню.
Применить аудио настройки.
Apply_Options_Controls() ? GG
Функция игрового меню.
Применить настройки клавиатуры.
Apply_Options_Game() ? GG
Функция игрового меню.
Применить настройки параметров игры.
Apply_Options_Performance() ? GG
Функция игрового меню.
Применить настройки производительности.
Apply_Options_Video() ? GG
Функция игрового меню.
Применить настройки видео.
ConcatStrings() ? GG
Функция преобразования типов.
Объединение двух строк.
CreateInvItem() ? GG
Функция инвентаря.
Создать в инвентаре Npc указанный предмет.
CreateInvItems() ? GG
Функция инвентаря.
Создать в инвентаре Npc указанные предметы.
Doc_Create() ? GG
Функция документа.
Создать новый документ.
Doc_CreateMap() ? GG
Функция документа.
Создать новую карту локации.
Doc_Font() ? GG
Функция документа.
Задать шрифт для документа.
Doc_MapCoordinates() ? GG
Функция документа.
Определение координат для карты локации.
Doc_Open() ? GG
Функция документа.
Отобразить фоновый рисунок документа на экране.
Doc_Print() ? GG
Функция документа.
Отобразить текст документа на экране.
Doc_PrintLine() ? GG
Функция документа.
Вывести строку текста на странице документа.
Doc_PrintLines() ? GG
Функция документа.
Вывести многострочный текст на странице документа.
Doc_SetFont() ? GG
Функция документа.
Задать шрифт для страницы.
Doc_SetLevel() ? GG
Функция документа.
Задать игровую локацию для карты.
Doc_SetLevelCoords() ? G
Функция документа.
Задать границы области отображаемой на карте.
Doc_SetMargins() ? GG
Функция документа.
Установить отступ страницы.
Doc_SetPage() ? GG
Функция документа.
Настроить параметры страницы.
Doc_SetPages() ? GG
Функция документа.
Задает количество страниц для документа.
Doc_Show() ? GG
Функция документа.
Показать созданный документ на экране.
EquipItem() ? GG
Функция инвентаря.
Экипировать Npc предметом инвентаря.
ExitGame() ? GG
Общая игровая функция.
Закончить сеанс игры.
ExitSession() ? G
Общая игровая функция.
Закончить сеанс игры.
FloatToInt() ? GG
Функция преобразования типов.
Преобразование числа с плавающей точкой в целое.
FloatToString() ? GG
Функция преобразования типов.
Преобразование числа с плавающей точкой в строку.
Game_InitEngintl() ? G
Общая игровая функция.
Инициализация игры основанной на Акелловской локализации.
Game_InitEnglish() ? G
Общая игровая функция.
Инициализация англоязычной версии игры.
Game_InitGerman() ? G
Общая игровая функция.
Инициализация немецкой версии игры.
Hlp_CutscenePlayed() ? GG
Вспомогательная функция.
Информирует, проигрывался ли игровой ролик.
Hlp_GetInstanceID() ? GG
Вспомогательная функция.
Получить идентификатор инстанции Npc или объекта инвентаря.
Hlp_GetNpc() ? GG
Вспомогательная функция.
Получить ссылку на Npc.
Hlp_IsItem() ? GG
Вспомогательная функция.
Проверяет принадлежность предмета инвентаря к соответствующему типу.
Hlp_IsValidItem() ? GG
Вспомогательная функция.
Проверка предмета инвентаря на существование.
Hlp_IsValidNpc() ? GG
Вспомогательная функция.
Проверка Npc на существование.
Hlp_Random() ? GG
Вспомогательная функция.
Генерирование случайного числа.
Hlp_StrCmp() ? GG
Вспомогательная функция.
Сравнение двух строк.
InfoManager_HasFinished() ? GG
Функции диалогов.
Проверяет завершен ли диалог.
Info_AddChoice() ? GG
Функции диалогов.
Добавляет в меню диалога новую строку.
Info_ClearChoices() ? GG
Функции диалогов.
Удалить строки в диалоге.
IntToFloat() ? GG
Функции преобразования типов.
Преобразование целого числа в число с плавающей точкой.
IntToString() ? GG
Функции преобразования типов.
Преобразование целого числа в строку.
IntroduceChapter() ? GG
Общие игровые функции.
Вывести на экран окно новой главы.
Log_AddEntry() ? GG
Функция журнала квестов.
Сделать в теме новую запись.
Log_CreateTopic() ? GG
Функция журнала квестов.
Создать в разделе новую тему.
Log_SetTopicStatus() ? GG
Функция журнала квестов.
Установить статус темы.
Mdl_ApplyOverlayMDS() ? GG
Функция анимации модели.
Применить новую анимацию к Npc.
Mdl_ApplyOverlayMDSTimed() ? GG
Функция анимации модели.
Временно применить новую анимацию к Npc.
Mdl_ApplyRandomAni() ? GG
Функция анимации модели.
Запустить случайные анимации.
Mdl_ApplyRandomAniFreq() ? GG
Функция анимации модели.
Изменить частоту смены случайных анимаций.
Mdl_ApplyRandomFaceAni() ? GG
Функция анимации модели.
Запустить случайную лицевую анимацию.
Mdl_RemoveOverlayMDS() ? GG
Функция анимации модели.
Отключить указанную анимацию у Npc.
Mdl_SetModelFatness() ? GG
Функция анимации модели.
Настройка толщины модели Npc.
Mdl_SetModelScale() ? GG
Функция анимации модели.
Настройка масштаба модели Npc.
Mdl_SetVisual() ? GG
Функция анимации модели.
Настройка MDS модели Npc.
Mdl_SetVisualBody() ? GG
Функция анимации модели.
Настройка визуализации модели Npc.
Mdl_StartFaceAni() ? GG
Функция анимации модели.
Запуск лицевой анимации.
Mis_AddMissionEntry() ? GG
Функция миссии.
Создать новую миссию.
Mis_GetStatus() ? GG
Функция миссии.
Получить текущий статус миссии.
Mis_OnTime() ? GG
Функция миссии.
Проверка срока выполнения миссии.
Mis_RemoveMission() ? GG
Функция миссии.
Удалить миссию.
Mis_SetStatus() ? GG
Функция миссии.
Установить статус миссии.
MOB_CreateItems() ? GG
Функция инвентаря.
Создать в контейнере предметы инвентаря.
MOB_HasItems() ? GG
Функция инвентаря.
Получить количество предметов инвентаря в контейнере.
Npc_AreWeStronger() ? GG
Функция Npc.
Определение более сильного Npc.
Npc_CanSeeItem() ? GG
Функция Npc.
Определяет может ли Npc видеть предмет инвентаря.
Npc_CanSeeNpc() ? GG
Функция Npc.
Определяет может ли Npc видеть другого Npc.
Npc_CanSeeNpcFreeLOS() ? GG
Функция Npc.
Определяет может ли Npc видеть другого Npc по прямой.
Npc_CanSeeSource() ? GG
Функция Npc.
Определяет может ли Npc видеть источник звука.
Npc_ChangeAttribute() ? GG
Функция Npc.
Изменение значения атрибута Npc.
Npc_CheckAvailableMission() ? GG
Функция Npc.
Проверка доступных миссии у Npc.
Npc_CheckInfo() ? GG
Функция Npc.
Определяет, есть ли у Npc важная для игрока информация.
Npc_CheckOfferMission() ? GG
Функция Npc.
Проверка миссии в которой Npc может что-либо предложить.
Npc_CheckRunningMission() ? GG
Функция Npc.
Проверка активных миссий.
Npc_ClearAIQueue() ? GG
Функция Npc.
Удаление всех AI команд из очереди.
Npc_ClearInventory() ? G
Функция Npc.
Очищает весь инвентарь Npc.
Npc_CreateSpell() ? GG
Функция Npc.
Npc активирует заклинание.
Npc_DeleteNews() ? GG
Функция Npc.
Удаляет новость для Npc.
Npc_ExchangeRoutine() ? GG
Функция Npc.
Смена распорядка дня Npc.
Npc_GetActiveSpell() ? GG
Функция Npc.
Возврат номера активного заклинания.
Npc_GetActiveSpellCat() ? GG
Функция Npc.
Возврат номера категории активного заклинания.
Npc_GetActiveSpellIsScroll() ? G
Функция Npc.
Проверяется, является ли активное заклинание свитком.
Npc_GetActiveSpellLevel() ? GG
Функция Npc.
Возвращает уровень активного заклинания Npc.
Npc_GetAttitude() ? GG
Функция Npc.
Получить текущее отношении Npc к другому Npc.
Npc_GetBodyState() ? GG
Функция Npc.
Возврат состояния в котором находится Npc.
Npc_GetComrades() ? GG
Функция Npc.
Проверка, есть ли у Npc друзья.
Npc_GetDetectedMob() ? GG
Функция Npc.
Возврат имени активного MOB объекта.
Npc_GetDistToItem() ? GG
Функция Npc.
Получить расстояние между Npc и предметом инвентаря.
Npc_GetDistToNpc() ? GG
Функция Npc.
Получить расстояние между двумя Npc.
Npc_GetDistToPlayer() ? GG
Функция Npc.
Получить расстояние между Npc и главным героем.
Npc_GetDistToWP() ? GG
Функция Npc.
Получить расстояние между Npc и Waypoint.
Npc_GetEquippedArmor() ? GG
Функция Npc.
Получить ссылку на экипированные доспехи Npc.
Npc_GetEquippedMeleeWeapon() ? GG
Функция Npc.
Получить ссылку на экипированное оружие ближнего боя у Npc.
Npc_GetEquippedRangedWeapon() ? GG
Функция Npc.
Получить ссылку на экипированное оружие дальнего боя у Npc.
Npc_GetGuildAttitude() ? GG
Функция Npc.
Получить отношение гильдий двух Npc.
Npc_GetHeightToItem() ? G
Функция Npc.
Получить высоту между Npc и предметом инвентаря.
Npc_GetHeightToNpc() ? G
Функция Npc.
Получить высоту между двумя Npc.
Npc_GetInvItem() ? GG
Функция Npc.
Получить ссылку на предмет инвентаря Npc.
Npc_GetInvItemBySlot() ? G
Функция Npc.
Получить количество указанных предметов в инвентаре Npc.
Npc_GetLastHitSpellCat() ? G
Функция Npc.
Получить категорию последнего примененного заклинания Npc.
Npc_GetLastHitSpellID() ? G
Функция Npc.
Получить номер последнего примененного заклинания Npc.
Npc_GetLookAtTarget() ? G
Функция Npc.
Получить ссылку на Npc на которого смотрит другой Npc.
Npc_GetNearestWP() ? GG
Функция Npc.
Получить название Waypoint в котором находится Npc.
Npc_GetNewsOffender() ? GG
Функция Npc.
Получить ссылку на приступника события.
Npc_GetNewsVictim() ? GG
Функция Npc.
Получить ссылку на жертву события.
Npc_GetNewsWitness() ? GG
Функция Npc.
Получить ссылку на свидетеля события.
Npc_GetNextTarget() ? GG
Функция Npc.
Выполнить активный поиск цели.
Npc_GetNextWP() ? GG
Функция Npc.
Получить имя соседнего Waypoint по отношению к Npc.
Npc_GetPermAttitude() ? GG
Функция Npc.
Получить постоянное отношение одного Npc к другому.
Npc_GetPortalGuild() ? G
Функция Npc.
Получить номер гильдии владельца помещения.
Npc_GetPortalOwner() ? G
Функция Npc.
Получить ссылку на Npc владельца помещения.
Npc_GetReadiedWeapon() ? GG
Функция Npc.
Получить ссылку на оружие, которое Npc держит в руке.
Npc_GetStateTime() ? GG
Функция Npc.
Получить сколько секунд Npc находится в текущем состоянии анимации.
Npc_GetTalentSkill() ? GG
Функция Npc.
Получить уровень навыка.
Npc_GetTalentValue() ? GG
Функция Npc.
Получить количество единиц навыка.
Npc_GetTarget() ? GG
Функция Npc.
Проверка существования у Npc цели для атаки.
Npc_GetTrueGuild() ? GG
Функция Npc.
Получить номер гильдии Npc.
Npc_GiveInfo() ? GG
Функция Npc.
Проверяет, есть ли у Npc информация для Npc.
Npc_GiveItem() ? GG
Функция Npc.
Npc получает предмет инвентаря от другого Npc.
Npc_HasBodyFlag() ? GG
Функция Npc.
Проверить, установлен ли у Npc указанный флаг состояния.
Npc_HasDetectedNpc() ? GG
Функция Npc.
Проверить поддержку чувств у Npc.
Npc_HasEquippedArmor() ? GG
Функция Npc.
Проверить наличие у Npc экипированных доспехов.
Npc_HasEquippedMeleeWeapon() ? GG
Функция Npc.
Проверить наличие у Npc экипированного оружия ближнего боя.
Npc_HasEquippedRangedWeapon() ? GG
Функция Npc.
Проверить наличие у Npc экипированного оружия дальнего боя.
Npc_HasEquippedWeapon() ? GG
Функция Npc.
Проверить наличие у Npc экипированного оружия.
Npc_HasItems() ? GG
Функция Npc.
Возвращает количество указанных предметов в инвентаре у Npc.
Npc_HasNews() ? GG
Функция Npc.
Проверить знает ли Npc указанную новость.
Npc_HasOffered() ? GG
Функция Npc.
Проверяет есть ли у одного Npc предмет для передачи другому.
Npc_HasRangedWeaponWithAmmo() ? GG
Функция Npc.
Проверяет есть ли у Npc в руках или в инвентаре оружие дальнего боя с боеприпасами.
Npc_HasReadiedMeleeWeapon() ? GG
Функция Npc.
Проверяет держит ли Npc в руках оружие ближнего боя.
Npc_HasReadiedRangedWeapon() ? GG
Функция Npc.
Проверяет держит ли Npc в руках оружие дальнего боя.
Npc_HasReadiedWeapon() ? GG
Функция Npc.
Проверяет держит ли Npc в руках оружие.
Npc_HasSpell() ? GG
Функция Npc.
Проверяет может ли Npc использовать заклинание.
Npc_HasTalent() ? GG
Функция Npc.
Проверяет владеет ли Npc указанным талантом.
Npc_IsAiming() ? GG
Функция Npc.
Проверяет целится ли Npc в другого Npc оружием дальнего боя или магией.
Npc_IsDead() ? GG
Функция Npc.
Проверяет мертв ли Npc.
Npc_IsDetectedMOBOwnerByGuild() ? GG
Функция Npc.
Проверяет какой гильдии принадлежит MOB, который использует Npc.
Npc_IsDetectedMobOwnerByNpc() ? GG
Функция Npc.
Проверяет какому владельцу принадлежит MOB, который использует Npc.
Npc_IsDrawingSpell() ? G
Функция Npc.
Возвращает номер заклинания, которое использует Npc.
Npc_IsDrawingWeapon() ? GG
Функция Npc.
Возвращает номер оружия, которое Npc держит в руках.
Npc_IsInCutscene() ? GG
Функция Npc.
Определяет, находится ли Npc в игровом ролике во время его проигрывания.
Npc_IsInFightMode() ? GG
Функция Npc.
Определяет, находится ли Npc в боевом режиме.
Npc_IsInPlayersRoom() ? G
Функция Npc.
Определяет, находится ли Npc в помещении, которое принадлежит главному герою.
Npc_IsInRoutine() ? GG
Функция Npc.
Проверяет выполняет ли Npc указанный распорядок дня.
Npc_IsInState() ? GG
Функция Npc.
Запрос на текущее состояние анимации фигуры Npc.
Npc_IsNear() ? GG
Функция Npc.
Определяет, что Npc находится на расстоянии не далее 3 метров.
Npc_IsNewsGossip() ? GG
Функция Npc.
Проверяет, является ли новость для Npc сплетней.
Npc_IsNextTargetAvailable() ? GG
Функция Npc.
Выполнить активный поиск цели для Npc без инициализации переменных.
Npc_IsOnFP() ? GG
Функция Npc.
Проверяет, находится ли Npc в Freepoint точке с указанным именем.
Npc_IsPlayer() ? GG
Функция Npc.
Проверяет, находится ли Npc главным героем.
Npc_IsPlayerInMyRoom() ? GG
Функция Npc.
Проверяет, находится ли главный герой в помещении другого Npc, или гильдии этого Npc.
Npc_IsVoiceActive() ? GG
Функция Npc.
Определяет, разговаривает ли Npc в данный момент.
Npc_IsWayBlocked() ? GG
Функция Npc.
Проверяет наличие припятствий на пути Npc.
Npc_KnowsInfo() ? GG
Функция Npc.
Проверяет знает ли Npc указанную информацию или нет.
Npc_KnowsPlayer() ? GG
Функция Npc.
Проверяет знаком ли Npc с главным героем.
Npc_LearnSpell() ? GG
Функция Npc.
Npc выучил заклинание и может его использовать.
Npc_MemoryEntry() ? GG
Функция Npc.
Функция записывания новостей для Npc.
Npc_MemoryEntryGuild() ? GG
Функция Npc.
Функция записывания новостей для всей гильдии.
Npc_OwnedByGuild() ? GG
Функция Npc.
Проверка на принадлежность предмета инвентаря указанной гильдии.
Npc_OwnedByNpc() ? GG
Функция Npc.
Проверка на принадлежность предмета инвентаря указанному Npc.
Npc_PercDisable() ? GG
Функция Npc.
Функция отключения восприятия у Npc.
Npc_PercEnable() ? GG
Функция Npc.
Функция включения восприятия у Npc.
Npc_PerceiveAll() ? GG
Функция Npc.
Функция разрешает Npc воспринимать все объекты в зоне действия восприятия.
Npc_PlayAni() ? GG
Функция Npc.
Воспроизвести анимацию для Npc.
Npc_RefuseTalk() ? GG
Функция Npc.
Функция проверяет истек ли у Npc счетчик отказа от диалога.
Npc_RemoveInvItem() ? GG
Функция Npc.
Удаление предмета из инвентаря Npc и из игры.
Npc_RemoveInvItems() ? GG
Функция Npc.
Удаление указанного количества предметов из инвентаря Npc и из игры.
Npc_SendPassivePerc() ? GG
Функция Npc.
Функция посылки пассивного восприятия от Npc.
Npc_SendSinglePerc() ? GG
Функция Npc.
Функция посылки восприятия от Npc.
Npc_SetActiveSpellInfo() ? GG
Функция Npc.
Задает любое значение для активного заклинания.
Npc_SetAttitude() ? GG
Функция Npc.
Установить постоянное отношение одного Npc ко всем остальным.
Npc_SetKnowsPlayer() ? GG
Функция Npc.
Установить, что Npc знаком с главным героем.
Npc_SetPercTime() ? GG
Функция Npc.
Установка времени реакции Npc для активного восприятия.
Npc_SetRefuseTalk() ? GG
Функция Npc.
Установка счетчика отказа от диалога для Npc.
Npc_SetStateTime() ? GG
Функция Npc.
Функция установки времени нахождения Npc в указанном состоянии.
Npc_SetTalentSkill() ? GG
Функция Npc.
Установить уровень навыка.
Npc_SetTalentValue() ? GG
Функция Npc.
Установить количество единиц владения навыком.
Npc_SetTarget() ? GG
Функция Npc.
Установить Npc внутреннюю цель для поражения.
Npc_SetTeleportPos() ? G
Функция Npc.
Запомнить последнее положение Npc при телепортации.
Npc_SetTempAttitude() ? GG
Функция Npc.
Установить временное отношение Npc к другим Npc.
Npc_SetToFightMode() ? GG
Функция Npc.
Перевод Npc в режим боя с выбранным оружием.
Npc_SetToFistMode() ? GG
Функция Npc.
Перевод Npc в боевой режим.
Npc_SetTrueGuild() ? GG
Функция Npc.
Установить принадлежность Npc к гильдии.
Npc_StartItemReactModules() ? GG
Функция Npc.
Проверка модулей ItemReact для реакции на предметы инвентаря.
Npc_StopAni() ? G
Функция Npc.
Остановить проигрывание анимации Npc.
Npc_WasInState() ? GG
Функция Npc.
Запрос на предыдущее состояние фигуры Npc.
Npc_WasPlayerInMyRoom() ? GG
Функция Npc.
Проверка главного героя на нахождение в помещении Npc или гильдии.
Perc_SetRange() ? GG
Общие игровые функции.
Установка дальности пассивного восприятия.
PlayVideo() ? GG
Функция видео.
Показать видео файл.
PlayVideoEx() ? G
Функция видео.
Показать видео файл с выходом из сессии игры.
Print() ? GG
Функция вывода текста.
Вывод на экран строки текста.
PrintDebug() ? GG
Функция вывода текста.
Вывод строки текста через zSpy.
PrintDebugCh() ? GG
Функция вывода текста.
Вывод строки текста через zSpy для канала.
PrintDebugInst() ? GG
Функция вывода текста.
Вывод строки текста через zSpy для инстанции.
PrintDebugInstCh() ? GG
Функция вывода текста.
Вывод строки текста через zSpy для инстанции и канала.
PrintDialog() ? GG
Функция вывода текста.
Вывод строки текста в окно диалога.
PrintMulti() ? GG
Функция вывода текста.
В случайном порядке выводит одну из пяти строк указанных в качестве аргументов.
PrintScreen() ? GG
Функция вывода текста.
Вывод на экран строки текста с настройкой шрифта, размера и др.
Rtn_Exchange() ? GG
Функция распорядка дня.
Функция смены распорядка дня.
SetPercentDone() ? GG
Общая игровая функция.
Установить процент отображения полосы в окне загрузки игры.
Snd_GetDistToSource() ? GG
Функция звука.
Получить расстояние до источника звука.
Snd_IsSourceItem() ? GG
Функция звука.
Проверить, является ли предмет у Npc источником звука.
Snd_IsSourceNpc() ? GG
Функция звука.
Проверить, является ли Npc источником звука.
Snd_Play() ? GG
Функция звука.
Воспроизвести звуковой эффект.
Snd_Play3D() ? GG
Функция звука.
Воспроизвести звуковой эффект для Npc.
TA() ? GG
Функция распорядка дня.
Задать функцию распорядка дня.
TA_BeginOverlay() ? GG
Функция распорядка дня.
Начать выполнять описанный распорядок дня.
TA_CS() ? GG
Функция распорядка дня.
Функция, выполняемая последней в списке функций распорядка дня.
TA_EndOverlay() ? GG
Функция распорядка дня.
Закончить выполнять описанный распорядок дня.
TA_Min() ? GG
Функция распорядка дня.
Задать функцию распорядка дня по времени.
TA_RemoveOverlay() ? GG
Функция распорядка дня.
Удалить заявленный распорядок дня.
Tal_Configure() ? GG
Общая игровая функция.
Переопредилить значение таланта.
Update_ChoiceBox() ? GG
Функция игрового меню.
Сохранить новые значения аудио или видео параметров.
Wld_AssignRoomToGuild() ? GG
Функция игрового мира.
Установить гильдию владельцем пространства.
Wld_AssignRoomToNpc() ? GG
Функция игрового мира.
Установить Npc владельцем пространства.
Wld_DetectItem() ? GG
Функция игрового мира.
Функция инициализирует глобальную переменную Item.
Wld_DetectNpc() ? GG
Функция игрового мира.
Функция инициализирует глобальную переменную Npc.
Wld_DetectNpcEx() ? GG
Функция игрового мира.
Функция инициализирует глобальную переменную Npc с исключением главного героя из поиска.
Wld_DetectNpcExAtt() ? G
Функция игрового мира.
Функция инициализирует глобальную переменную Npc с исключением главного героя из поиска и учетом отношения Npc к гильдии.
Wld_DetectPlayer() ? GG
Функция игрового мира.
Проверка существования главного героя.
Wld_ExchangeGuildAttitudes() ? GG
Функция игрового мира.
Установить взаимоотношения между гильдиями.
Wld_GetDay() ? GG
Функция игрового мира.
Получить текущий день.
Wld_GetFormerPlayerPortalGuild() ? GG
Функция игрового мира.
Получить номер гильдии которой принадлежит покинутое помещение.
Wld_GetFormerPlayerPortalOwner() ? GG
Функция игрового мира.
Получить ссылку на Npc которому принадлежит покинутое помещение.
Wld_GetGuildAttitude() ? GG
Функция игрового мира.
Получить отношение между гильдиями.
Wld_GetMOBState() ? GG
Функция игрового мира.
Получить состояние MOB.
Wld_GetPlayerPortalGuild() ? GG
Функция игрового мира.
Получить номер гильдии которой принадлежит помещение.
Wld_GetPlayerPortalOwner() ? GG
Функция игрового мира.
Получить сылку на Npc которому принадлежит помещение.
Wld_InsertItem() ? GG
Функция игрового мира.
Разместить в игровом мире предмет инвентаря.
Wld_InsertNpc() ? GG
Функция игрового мира.
Разместить в игровом мире Npc.
Wld_InsertNpcAndRespawn() ? GG
Функция игрового мира.
Разместить в игровом мире Npc с респауном.
Wld_InsertObject() ? GG
Функция игрового мира.
Разместить в игровом мире виртуальный объект.
Wld_IsFPAvailable() ? GG
Функция игрового мира.
Поиск Freepoint по имени в радиусе 20 метров.
Wld_IsMOBAvailable() ? GG
Функция игрового мира.
Поиск MOB по имени в радиусе 10 метров.
Wld_IsNextFPAvailable() ? GG
Функция игрового мира.
Поиск следующего Freepoint по имени в радиусе 20 метров.
Wld_IsRaining() ? G
Функция игрового мира.
Проверить идет ли дождь.
Wld_IsTime() ? GG
Функция игрового мира.
Функция определяет, входит ли текущее время в указанный диапазон.
Wld_PlayEffect() ? GG
Функция игрового мира.
Проиграть визуальный эффект.
Wld_RemoveItem() ? GG
Функция игрового мира.
Удалить из мира предмет инвентаря по ссылке.
Wld_RemoveNpc() ? GG
Функция игрового мира.
Удалить из мира Npc по ссылке.
Wld_SendTrigger() ? GG
Функция игрового мира.
Послать триггер объекту игрового мира.
Wld_SendUntrigger() ? GG
Функция игрового мира.
Послать антриггер объекту игрового мира.
Wld_SetGuildAttitude() ? GG
Функция игрового мира.
Установить отношение между гильдиями.
Wld_SetMOBRoutine() ? GG
Функция игрового мира.
Перевести MOB в определенное состояние анимации.
Wld_SetObjectRoutine() ? GG
Функция игрового мира.
Перевести объект в определенное состояние анимации.
Wld_SetTime() ? GG
Функция игрового мира.
Установить текущее время игрового мира.
Wld_SpawnNpcRange() ? GG
Функция игрового мира.
Создать группу Npc вокруг другого Npc.
Wld_StopEffect() ? G
Функция игрового мира.
Остановить проигрывание визуального эффекта.

Файл B_Functions.d

Содержание +

/************************************************************************************/ /* Файл: C_Functions.d */ /* -------------------------------------------------------------------------------- */ /* Описание: Вспомогательные B-функции для Npc */ /* Содержит небольшие универсальные функции для AI */ /* Функция B_GotoWPNextToNpc() */ /* Функция B_CantSeeTurn() */ /* Функция C_LookAtNpc() */ /* Функция C_StopLookAt() */ /* Функция B_SmartTurnToNpc() */ /* Функция B_Say() */ /* Функция B_SayOverlay() */ /* Функция B_StandUp() */ /* Функция B_CallComrades() */ /* Функция B_CallGuards() */ /* Функция B_IntruderAlert() */ /* Функция B_FullStop() */ /* Функция B_ResetTempAttitude() */ /* Функция B_WhirlAround() */ /* Функция B_DropWeapon() */ /* Функция B_RegainDroppedWeapon() */ /* Функция B_RegainDroppedArmor() */ /* Функция B_GotoFP() */ /* Функция B_StopGotoHero() */ /* Функция B_SetAttackReason() */ /* Функция B_KillNpc() */ /* Функция B_UseFakeScroll() */ /* Функция B_ChangeGuild() */ /* Функция B_ExchangeRoutine() */ /* Функция B_SetPermAttitude() */ /* Функция B_LogEntry() */ /* Функция B_ClearImmortal() */ /* Функция B_SetNpcType() */ /* Функция B_GiveInvItems() */ /* Функция B_CheckForImportantInfo() */ /* Функция B_InitGuildAttitudes() */ /* Функция B_PracticeCombat() */ /* Функция B_PrintGuildCondition() */ /* -------------------------------------------------------------------------------- */ /* Заметки: */ /* [NUS] - Не используется */ /* */ /************************************************************************************/ /* -------------------------------------------------------------------------------- */ /* B_GotoWPNextToNpc() [NUS] */ /* -------------------------------------------------------------------------------- */ /* Функция заставляет Npc 'slf' переместится к Npc 'oth'. */ /* -------------------------------------------------------------------------------- */ /* slf - Npc который должен переместиться */ /* oth - Целевой Npc */ /* -------------------------------------------------------------------------------- */ func void B_GotoWPNextToNpc (var C_Npc slf, var C_Npc oth) { // Вывести в zSpy строку "B_GotoWPNextToNpc" PrintDebugNpc (PD_ZS_DETAIL, "B_GotoWPNextToNpc" ); // Локальная переменная для сохранения имени WP var string waypoint; // Получаем имя близжайшего к Npc 'oth' - Waypoint waypoint = Npc_GetNextWP(oth); // Npc 'slf' перемещается в WP AI_GotoWP (slf, waypoint); }; /* -------------------------------------------------------------------------------- */ /* B_CantSeeTurn() [NUS] */ /* -------------------------------------------------------------------------------- */ /* Функция поворота Npc лицом к другому Npc, даже если он его не видит */ /* -------------------------------------------------------------------------------- */ /* self - Npc который поворачивается */ /* other - Npc к которому поворачиваются */ /* -------------------------------------------------------------------------------- */ func void B_CantSeeTurn () { // Вывести в zSpy строку "B_CantSeeTurn" PrintDebugNpc (PD_ZS_DETAIL, "B_CantSeeTurn" ); // Если Npc 'self' не сидит И Npc 'self' не видит 'other' if ((!C_BodyStateContains(self, BS_SIT)) && !Npc_CanSeeNpc (self,other)) { // Вывести в zSpy строку "B_CantSeeTurn If" PrintDebugNpc (PD_ZS_CHECK, "B_CantSeeTurn If"); // Npc 'self' поворачивается лицом к Npc 'other' AI_TurnToNpc (self, other); }; }; /* -------------------------------------------------------------------------------- */ /* C_LookAtNpc() */ /* -------------------------------------------------------------------------------- */ /* Функция заставляет одного Npc посмотреть на другого Npc */ /* -------------------------------------------------------------------------------- */ /* slf - Смотрящий Npc */ /* oth - Npc на которого смотрят */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc 'slf' посмотрел на Npc 'oth' */ /* -------------------------------------------------------------------------------- */ // Вызывается команда AI_LookAtNpc, если переменная AIV_ISLOOKING не установлена // 19.09.00: ВНИМАНИЕ: Я закомментировал AIV по двум причинам // a) Вызывал проблемы // b) После исправления ошибки необходимость в переменной отпала. Проверенно работает!!! func int C_LookAtNpc(var C_Npc slf, var C_Npc oth) { // Если Npc 'slf' не смотрел на Npc 'oth' // if ( ! slf.aivar[ AIV_ISLOOKING ] ) // { // Npc 'slf' смотрит на Npc 'oth' AI_LookAtNpc(slf, oth); // Вывести в zSpy строку "C_LookAtNpc" PrintDebugNpc(PD_ZS_DETAIL,"C_LookAtNpc"); // Установить, что Npc 'slf' смотрел на Npc 'oth' // slf.aivar[AIV_ISLOOKING] = 1; // Npc 'slf' посмотрел на Npc 'oth' return 1; // }; // Npc 'slf' уже смотрел на Npc 'oth' // return 0; }; /* -------------------------------------------------------------------------------- */ /* C_StopLookAt() */ /* -------------------------------------------------------------------------------- */ /* Функция заставляет Npc перестать смотреть на другого Npc или объект */ /* -------------------------------------------------------------------------------- */ /* slf - Смотрящий Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc 'slf' не смотрит на другого Npc */ /* -------------------------------------------------------------------------------- */ func int C_StopLookAt(var C_Npc slf) { // Если на Npc уже смотрели // if (slf.aivar[AIV_ISLOOKING]) // { // Npc прекращает смотреть на другого Npc AI_StopLookAt(slf); // Вывести в zSpy строку "C_StopLookAt" PrintDebugNpc(PD_ZS_DETAIL,"C_StopLookAt"); // На Npc не смотрели // slf.aivar[AIV_ISLOOKING] = 0; // Npc 'slf' не смотрит на другого Npc return 1; // }; // Npc 'slf' еще не смотрел на другого Npc // return 0; }; /* -------------------------------------------------------------------------------- */ /* B_SmartTurnToNpc() */ /* -------------------------------------------------------------------------------- */ /* Функция поворота к Npc с учетом положения собеседника спереди или сзади. */ /* -------------------------------------------------------------------------------- */ /* slf - Смотрящий Npc */ /* oth - Собеседник */ /* -------------------------------------------------------------------------------- */ func void B_SmartTurnToNpc (var C_Npc slf, var C_Npc oth) { // Вывести в zSpy строку "B_SmartTurnToNpc" PrintDebugNpc (PD_ZS_DETAIL, "B_SmartTurnToNpc"); // Если Npc 'slf' не сидит ИЛИ if (! (C_BodyStateContains(slf, BS_SIT) // не использует предмет инвентаря ИЛИ || C_BodyStateContains(slf, BS_ITEMINTERACT) // не использует MOB ИЛИ || C_BodyStateContains(slf, BS_MOBINTERACT) // прерывает использование MOB || C_BodyStateContains(slf, BS_MOBINTERACT_INTERRUPT))) { // Вывести в zSpy строку "не сидит и не использует MOBsi" PrintDebugNpc (PD_ZS_DETAIL, "...not sit and does not use MOBsi"); // Если Npc 'slf' не видит Npc 'oth' if (!Npc_CanSeeNpc (slf, oth)) { // Вывести в zSpy строку "Не может видеть цель" PrintDebugNpc (PD_ZS_DETAIL, "...can not see target!"); // Npc 'slf' поворачивается лицом к Npc 'oth' AI_TurnToNpc (slf, oth); } // Иначе else { // Npc 'slf' смотрит на Npc 'oth' C_LookAtNpc (slf, oth); }; }; }; /* -------------------------------------------------------------------------------- */ /* B_Say() */ /* -------------------------------------------------------------------------------- */ /* Npc произносит SVM фразу. */ /* -------------------------------------------------------------------------------- */ /* slf - Говорящий Npc */ /* oth - Слушающий Npc */ /* text - Имя переменной SVM класса, которая содержит произносимую фразу */ /* Должна начинаться с символа $ */ /* -------------------------------------------------------------------------------- */ func void B_Say(var C_Npc slf, var C_Npc oth, var string text) { // Локальная переменная для zSpy var string pipe; // Объединяем строки "B_Say: " и имя SVM переменной pipe = ConcatStrings("B_Say: ", text); // Вывести в zSpy полученную строку PrintDebugNpc (PD_ZS_FRAME, pipe); // В зависимости от положения собеседника Npc 'slf' либо оборачивается, либо смотрит B_SmartTurnToNpc (slf, oth); // Npc 'slf' произносит SVM фразу AI_OutputSVM (slf, oth , text); }; /* -------------------------------------------------------------------------------- */ /* B_SayOverlay() */ /* -------------------------------------------------------------------------------- */ /* Npc произносит SVM фразу не задерживая выполнение последующих AI команд */ /* -------------------------------------------------------------------------------- */ /* slf - Говорящий Npc */ /* oth - Слушающий Npc */ /* text - Имя переменной SVM класса, которая содержит произносимую фразу */ /* Должна начинаться с символа $ */ /* -------------------------------------------------------------------------------- */ func void B_SayOverlay(var C_Npc slf, var C_Npc oth, var string text) { // Локальная переменная для zSpy var string pipe; // Объединяем строки "B_Say: " и имя SVM переменной pipe = ConcatStrings("B_SayOverlay: ", text); // Вывести в zSpy полученную строку PrintDebugNpc (PD_ZS_FRAME, pipe ); // В зависимости от положения собеседника Npc 'slf' либо оборачивается, либо смотрит B_SmartTurnToNpc (slf, oth); // Npc 'slf' произносит SVM фразу не задерживая выполнение последующих AI команд AI_OutputSVM_Overlay (slf, oth, text); }; /* -------------------------------------------------------------------------------- */ /* B_StandUp() */ /* -------------------------------------------------------------------------------- */ /* Npc встает с любого места на котором сидит */ /* -------------------------------------------------------------------------------- */ /* slf - Npc который должен встать */ /* -------------------------------------------------------------------------------- */ func void B_StandUp (var C_Npc slf) { // Вывести в zSpy строку "B_StandUp" PrintDebugNpc (PD_ZS_DETAIL, "B_StandUp" ); // Если Npc сидит if C_BodyStateContains(slf,BS_SIT) { // Если Npc 'slf' сидит if (slf.aivar[AIV_HangAroundStatus] == 1) { // Npc встает AI_PlayAni (slf, "T_SIT_2_STAND"); // Npc нигде не сидит slf.aivar[AIV_HangAroundStatus] = 0; } // Иначе если Npc сидит на Троне else if (slf.aivar[AIV_HangAroundStatus] == 4) { // Встаем с трона AI_UseMob (slf,"SMALL THRONE",-1); // Npc нигде не сидит slf.aivar[AIV_HangAroundStatus] = 0; } // Иначе если Npc сидит на лавке else if (slf.aivar[AIV_HangAroundStatus] == 2) { // Встаем с лавки AI_UseMob (slf,"BENCH",-1); // Npc нигде не сидит slf.aivar[AIV_HangAroundStatus] = 0; } // Иначе если Npc сидит на кресле else if (slf.aivar[AIV_HangAroundStatus] == 3) { // Встаем с кресла AI_UseMob (slf,"CHAIR",-1); // Npc нигде не сидит slf.aivar[AIV_HangAroundStatus] = 0; }; }; }; /* -------------------------------------------------------------------------------- */ /* B_CallComrades() [NUS] */ /* -------------------------------------------------------------------------------- */ /* Npc зовет друзей на помощь */ /* -------------------------------------------------------------------------------- */ /* self - Npc который зовет на помощь */ /* other - Npc преступник */ /* -------------------------------------------------------------------------------- */ func void B_CallComrades() { // Вывести в zSpy строку "B_CallComrades" PrintDebugNpc (PD_ZS_DETAIL, "B_CallComrades"); // Произнести SVM фразу $COMRADESHELP (Нет такой фразы) B_SayOverlay (self, NULL, "$COMRADESHELP"); // Посылаем пассивное восприятие "Предупреждение" Npc_SendPassivePerc (self, PERC_ASSESSWARN, self, other); }; /* -------------------------------------------------------------------------------- */ /* B_CallGuards() */ /* -------------------------------------------------------------------------------- */ /* Npc зовет на помощь охрану */ /* -------------------------------------------------------------------------------- */ /* self - Npc который зовет охрану */ /* other - Npc преступник */ /* -------------------------------------------------------------------------------- */ func void B_CallGuards() { // Вывести в zSpy строку "B_CallGuards" PrintDebugNpc (PD_ZS_DETAIL, "B_CallGuards"); // Произнести SVM фразу с криками о помощи B_SayOverlay (self, NULL, "$HELP"); // Посылаем пассивное восприятие "Предупреждение" Npc_SendPassivePerc (self, PERC_ASSESSWARN, self, other); }; /* -------------------------------------------------------------------------------- */ /* B_IntruderAlert() */ /* -------------------------------------------------------------------------------- */ /* Npc slf поднимает тревогу при проникновении Npc oth в запретные места */ /* -------------------------------------------------------------------------------- */ /* slf - Npc который поднял тревогу */ /* oth - Npc преступник */ /* -------------------------------------------------------------------------------- */ func void B_IntruderAlert(var C_Npc slf, var C_Npc oth) { // Вывести в zSpy строку "B_IntruderAlert" PrintDebugNpc (PD_ZS_DETAIL, "B_IntruderAlert"); // Сказать SVM фразу "$IntruderAlert" B_SayOverlay (slf, NULL, "$IntruderAlert"); // Посылаем пассивное восприятие "Предупреждение" Npc_SendPassivePerc (slf, PERC_ASSESSWARN, slf, oth); }; /* -------------------------------------------------------------------------------- */ /* B_FullStop() */ /* -------------------------------------------------------------------------------- */ /* Npc slf прерывает любую анимацию. */ /* Ранее использовалась команда AI_StandUp(). */ /* Однако в некоторых ситуациях эта команда была слишком медленной. */ /* Поэтому команда была заменена на AI_StandUpQuick(). */ /* -------------------------------------------------------------------------------- */ /* npc - Npc чью анимацию необходимо остановить */ /* -------------------------------------------------------------------------------- */ func void B_FullStop(var C_Npc npc) { // Вывести в zSpy строку "B_FullStop" PrintDebugNpc (PD_ZS_DETAIL, "B_FullStop"); // Удаляем все AI команды из очереди Npc_ClearAIQueue (npc); // Перевести Npc в рабочую стойку без анимации AI_StandUpQuick (npc); }; /* -------------------------------------------------------------------------------- */ /* B_ResetTempAttitude() */ /* -------------------------------------------------------------------------------- */ /* Функция сброса временного отношения к Npc на постоянное */ /* -------------------------------------------------------------------------------- */ /* slf - Npc для которого сбрасывают отношение */ /* -------------------------------------------------------------------------------- */ func void B_ResetTempAttitude(var C_Npc slf) { // Выводим в zSpy строку "B_ResetTempAttitude" PrintDebugNpc (PD_ZS_DETAIL, "B_ResetTempAttitude"); // Устанавливаем временное отношение Npc равным постоянному отношению Npc_SetTempAttitude(slf, Npc_GetPermAttitude(slf,hero)); }; /* -------------------------------------------------------------------------------- */ /* B_WhirlAround() */ /* -------------------------------------------------------------------------------- */ /* Функция вращения Npc 'slf' если он не может найти Npc 'oth' */ /* -------------------------------------------------------------------------------- */ /* slf - Поворачивающийся Npc */ /* oth - Npc оппонент */ /* -------------------------------------------------------------------------------- */ func void B_WhirlAround(var C_Npc slf, var C_Npc oth) { // Вывести в zSpy строку "B_WhirlAround" PrintDebugNpc (PD_ZS_DETAIL, "B_WhirlAround"); // Если Npc 'slf' видит Npc 'oth' if (Npc_CanSeeNpc(slf,oth)) { // Вывести в zSpy строку "Может видеть цель" PrintDebugNpc (PD_ZS_DETAIL, "...can see target!"); // Поворачивается к Npc AI_TurnToNpc (slf, oth); } // Иначе else { // Вывести в zSpy строку "Не может увидеть цель" PrintDebugNpc (PD_ZS_DETAIL, "...can not see target!"); // Оборачивается к Npc 'oth' AI_WhirlAround (slf, oth); }; }; /* -------------------------------------------------------------------------------- */ /* B_DropWeapon() [NUS] */ /* -------------------------------------------------------------------------------- */ /* Функция выбрасывания оружия которое Npc slf держит в руках */ /* -------------------------------------------------------------------------------- */ /* slf - Npc который должен выбросить оружие */ /* itm - Выбрасываемое оружие */ /* -------------------------------------------------------------------------------- */ func void B_DropWeapon(var C_Npc slf) { // Вывести в zSpy строку "B_DropWeapon" PrintDebugNpc (PD_ZS_DETAIL, "B_DropWeapon"); // Локальная переменная для предмета инвентаря var C_Item itm; // Локальная переменная для сохранения ID предмета инвентаря var int itemid; // Получаем инстанцию оружия в руках Npc 'slf' itm = Npc_GetReadiedWeapon(slf); // Если у Npc было в руках оружие if (Hlp_IsValidItem(itm)) { // Получаем ID оружия itemid = Hlp_GetInstanceID(itm); // Вывести в zSpy имя предмета PrintDebugNpc (PD_ZS_DETAIL, itm.name); // Npc бросает оружие на землю AI_DropItem (slf, itemid); }; }; /* -------------------------------------------------------------------------------- */ /* B_RegainDroppedWeapon() */ /* -------------------------------------------------------------------------------- */ /* Функция заставляющая Npc подобрать брошенное оружие */ /* Примечание: Удаляется глобальная переменная item */ /* -------------------------------------------------------------------------------- */ /* slf - Npc который должен подобрать оружие */ /* -------------------------------------------------------------------------------- */ func void B_RegainDroppedWeapon(var C_Npc slf) { // Npc воспринимает все объекты в зоне действия восприятия Npc_PerceiveAll (slf); // Выполняем поиск оружия ближнего боя ИЛИ оружия дальнего боя if (Wld_DetectItem (slf, ITEM_KAT_NF) || Wld_DetectItem (slf, ITEM_KAT_FF)) { // Если Npc 'slf' не ГГ И Npc видит оружие if (!Npc_IsPlayer(slf) && Npc_CanSeeItem(slf,item)) { // Вывести в zSpy строку "Npc поднимает оружие снова" PrintDebugNpc (PD_ZS_CHECK, "...NPC picks up his weapon again!" ); // Npc подбирает оружие AI_TakeItem (slf, item); // Npc 'slf' экипирует лучшее оружие ближнего боя AI_EquipBestMeleeWeapon(slf); // Npc 'slf' экипирует лучшее оружие дальнего боя AI_EquipBestRangedWeapon(slf); }; }; }; /* -------------------------------------------------------------------------------- */ /* B_RegainDroppedArmor() */ /* -------------------------------------------------------------------------------- */ /* Функция заставляющая Npc подобрать брошенную броню */ /* Примечание: Удаляется глобальная переменная item */ /* -------------------------------------------------------------------------------- */ /* slf - Npc который должен подобрать броню */ /* -------------------------------------------------------------------------------- */ func void B_RegainDroppedArmor(var C_Npc slf) { //Npc воспринимает все объекты в зоне действия восприятия Npc_PerceiveAll (slf); // Выполняем поиск доспехов if (Wld_DetectItem(slf, ITEM_KAT_ARMOR)) { // Если Npc не ГГ if (!Npc_IsPlayer(slf)) { // Вывести в zSpy строку "...Npc picks up his armor again!" PrintDebugNpc(PD_ZS_CHECK, "...Npc picks up his armor again!" ); // Npc 'slf' подбирает доспехи AI_TakeItem (slf, item); // Npc 'slf' экипирует лучшие доспехи AI_EquipBestArmor(slf); }; }; }; /* -------------------------------------------------------------------------------- */ /* B_GotoFP() */ /* -------------------------------------------------------------------------------- */ /* Функция перехода Npc к следующему свободному Freepoint */ /* -------------------------------------------------------------------------------- */ /* slf - Npc который должен перейти к Freepoint */ /* fp - Имя Freepoint */ /* -------------------------------------------------------------------------------- */ func void B_GotoFP (var C_Npc slf, var string fp) { // Вывести в zSpy строку "B_GotoFP" PrintDebugNpc (PD_TA_LOOP, "B_GotoFP"); // Если Npc еще не находится на указанном Freepoint if !(Npc_IsOnFP(self,fp)) { // Вывести в zSpy строку "... не на указанном Freepoint" PrintDebugString (PD_TA_CHECK, "...not on the specified Freepoint", fp); // Если в радиусе 20 метров имеется доступный Freepoint с указанным именем if (Wld_IsNextFPAvailable(self,fp)) { // Вывести в zSpy строку "Перейти к Freepoint" PrintDebugString(PD_TA_CHECK, "Go to Freepoint ", fp); // Установить режим перемещения: Ходьба AI_SetWalkmode (self, NPC_WALK); // Npc перемещается в следующий указанный Freepoint AI_GotoNextFP (self, fp); }; }; }; /* -------------------------------------------------------------------------------- */ /* B_StopGotoHero() */ /* -------------------------------------------------------------------------------- */ /* Функция преждевременного прерывания перемещения Npc к ГГ */ /* Используется для восприятия PERC_MOVENPC и функции AI_GotoNpc(self, hero) */ /* Используйте только self и hero */ /* -------------------------------------------------------------------------------- */ /* self - Npc который должен перейти к ГГ */ /* other - ГГ */ /* -------------------------------------------------------------------------------- */ func void B_StopGotoHero () { // Вывести в zSpy строку "B_StopGotoHero" PrintDebugNpc(PD_ZS_FRAME, "B_StopGotoHero"); // Если Npc 'other' это ГГ if (Npc_IsPlayer(other)) { // Вывести в zSpy строку "Столкновение с игроком!" PrintDebugNpc (PD_ZS_DETAIL, "...Collision with player!"); // Отключаем у Npc восприятие перемещения Npc Npc_PercDisable (self, PERC_MOVENPC); // Останавливаем Npc 'self' B_FullStop (self); }; }; /* -------------------------------------------------------------------------------- */ /* B_SetAttackReason() */ /* -------------------------------------------------------------------------------- */ /* Функция позволяющая установить причину атаки Npc */ /* Константы можно найти в файле AI_CONSTANTS.D */ /* -------------------------------------------------------------------------------- */ /* slf - Npc для которого устанавливают причину нападения */ /* reason - Причина по которой Npc напал на другого Npc */ /* -------------------------------------------------------------------------------- */ func void B_SetAttackReason(var C_Npc slf, var int reason) { // Вывести в zSpy строку "B_SetAttackReason" PrintDebugNpc (PD_ZS_DETAIL, "B_SetAttackReason"); // Установить причину атаки Npc slf.aivar[AIV_ATTACKREASON] = reason; }; /* -------------------------------------------------------------------------------- */ /* B_KillNpc() */ /* -------------------------------------------------------------------------------- */ /* Установить очки здоровья указанного Npc равными 0. */ /* -------------------------------------------------------------------------------- */ /* slf - Npc для которого устанавливают причину нападения */ /* reason - Причина по которой Npc напал на другого Npc */ /* -------------------------------------------------------------------------------- */ func void B_KillNpc(var int npcInstance) { // Вывести в zSpy строку "B_KillNpc" PrintDebugNpc (PD_ZS_DETAIL, "B_KillNpc"); // Объявляем локальную переменную C_Npc var C_Npc npc; // Получаем инстанцию нашего Npc npc = Hlp_GetNpc(npcInstance); // Объявляем локальную переменную для сохранения оружия Npc var int itemInstance; // Сбрасываем все флаги Npc 'slf' npc.flags = 0; // Создаем в инвентаре вспомогательный предмет "Монета", чтобы Npc не удалился из игрового мира CreateInvItem (npc,ItMi_Stuff_OldCoin_02); // Обнуляем значение очков жизни у Npc 'slf' Npc_ChangeAttribute (npc, ATR_HITPOINTS, -npc.attribute[ATR_HITPOINTS_MAX]); // Если в первом слоте инвентаря есть оружие if (Npc_GetInvItemBySlot(npc,INV_WEAPON,1)) { // Вывести в zSpy строку "Оружие найдено в Слоте 1!" PrintDebugNpc (PD_ZS_DETAIL, "...Weapon fount in Slot 1!"); // Сохраняем ID оружия в локальную переменную itemInstance = Hlp_GetInstanceID(item); // Удаляем оружие из инвентаря Npc Npc_RemoveInvItem (npc, itemInstance); }; // Если во втором слоте инвентаря есть оружие if (Npc_GetInvItemBySlot(npc,INV_WEAPON,2)) { // Вывести в zSpy строку "Оружие найдено в Слоте 2!" PrintDebugNpc (PD_ZS_DETAIL, "...Weapon fount in Slot 2!"); // Сохраняем ID оружия в локальную переменную itemInstance = Hlp_GetInstanceID(item); // Удаляем оружие из инвентаря Npc Npc_RemoveInvItem (npc, itemInstance); }; }; /* -------------------------------------------------------------------------------- */ /* B_UseFakeScroll() */ /* -------------------------------------------------------------------------------- */ /* Функция визуализации чтения куска пергамента */ /* -------------------------------------------------------------------------------- */ /* self - Npc который читает пергамент */ /* hero - Главный герой */ /* -------------------------------------------------------------------------------- */ func void B_UseFakeScroll () { // Если Npc 'self' сидит if (C_BodystateContains(self, BS_SIT)) { // Npc встает AI_StandUp (self); // Npc поворачивается к ГГ AI_TurnToNpc (self, hero); }; // Создаем в инвентаре Npc объект "Письмо" CreateInvItem (self, Fakescroll); // Npc 'self' достает письмо и читает AI_UseItemToState (self, Fakescroll, 1); // Npc ожидает 3 секунды AI_Wait (self, 3); // Npc 'self' прячет письмо AI_UseItemToState (self, Fakescroll, -1); }; /* -------------------------------------------------------------------------------- */ /* B_ChangeGuild() */ /* -------------------------------------------------------------------------------- */ /* Функция смены гильдии Npc */ /* -------------------------------------------------------------------------------- */ /* npcInstance - Истанция Npc которому изменяют гильдию */ /* newGuild - Гильдия */ /* -------------------------------------------------------------------------------- */ func void B_ChangeGuild(var int npcInstance, var int newGuild) { // Вывести в zSpy строку "B_ChangeGuild" PrintDebugNpc (PD_ZS_DETAIL, "B_ChangeGuild"); // Создаем локальную переменную для Npc var C_Npc npc; // Получаем Npc npc = Hlp_GetNpc(npcInstance); // Устанавливаем гильдию для Npc в движке Npc_SetTrueGuild(npc,newGuild); // Устанавливаем гильдию для Npc в скриптах npc.guild = newGuild; }; /* -------------------------------------------------------------------------------- */ /* B_ExchangeRoutine() */ /* -------------------------------------------------------------------------------- */ /* Сменить распорядок дня Npc */ /* Не использовать в функции глобальную переменную "self", так как функция */ /* AI_ContinueRoutine() ее заблокирует */ /* -------------------------------------------------------------------------------- */ /* npcInstance - Истанция Npc которому изменяют гильдию */ /* newGuild - Гильдия */ /* -------------------------------------------------------------------------------- */ func void B_ExchangeRoutine(var int npcInstance, var string newRoutine) { // Вывести в zSpy строку "B_ExchangeRoutine" PrintDebugNpc (PD_ZS_DETAIL, "B_ExchangeRoutine"); // Создаем локальную переменную на C_Npc var C_Npc npc; // Получаем Npc npc = Hlp_GetNpc(npcInstance); // Меняем распорядок дня Npc Npc_ExchangeRoutine(npc, newRoutine); // Начинаем выполнение нового распорядка дня AI_ContinueRoutine (npc); }; /* -------------------------------------------------------------------------------- */ /* B_SetPermAttitude() */ /* -------------------------------------------------------------------------------- */ /* Функция смены постоянного отношения Npc к ГГ */ /* -------------------------------------------------------------------------------- */ /* npcInstance - Истанция Npc для которого изменяют постоянное отношение */ /* newAttitude - Отношение */ /* -------------------------------------------------------------------------------- */ func void B_SetPermAttitude(var int npcInstance, var int newAttitude) { // Вывести в zSpy строку "B_SetPermAttitude" PrintDebugNpc (PD_ZS_DETAIL, "B_SetPermAttitude"); // Создаем локальную переменную на C_Npc var C_Npc npc; // Получаем Npc npc = Hlp_GetNpc(npcInstance); // Устанавливаем постоянное отношение Npc_SetAttitude (npc, newAttitude); // Устанавливаем временное отношение Npc_SetTempAttitude (npc, newAttitude); }; /* -------------------------------------------------------------------------------- */ /* B_LogEntry() */ /* -------------------------------------------------------------------------------- */ /* Функция новой записи в журнале с выводом сообщения на экран */ /* -------------------------------------------------------------------------------- */ /* npcInstance - Истанция Npc для которого изменяют постоянное отношение */ /* newAttitude - Отношение */ /* -------------------------------------------------------------------------------- */ func void B_LogEntry(var string topic, var string entry) { // Вывести в zSpy строку "B_LogEntry" PrintDebugNpc (PD_ZS_DETAIL, "B_LogEntry"); // Сделать в теме "topic" новую запись "entry" Log_AddEntry (topic, entry); // Вывести на экран сообщение "Новая запись в дневнике" PrintScreen (NAME_NewLogEntry, -1,_YPOS_MESSAGE_LOGENTRY,"font_old_10_white.tga",_TIME_MESSAGE_LOGENTRY); // Проиграть музыку записи в дневнике Snd_Play ("LogEntry"); }; /* -------------------------------------------------------------------------------- */ /* B_ClearImmortal() */ /* -------------------------------------------------------------------------------- */ /* Функция снимает с Npc флаг бессмертия */ /* -------------------------------------------------------------------------------- */ /* npcInstance - Истанция Npc для которого изменяют постоянное отношение */ /* -------------------------------------------------------------------------------- */ func void B_ClearImmortal(var int npcInstance) { // Вывести в zSpy строку "B_ClearImmortal" PrintDebugNpc (PD_ZS_DETAIL, "B_ClearImmortal"); // Создаем локальную переменную C_Npc var C_Npc npc; // Получаем Npc npc = Hlp_GetNpc(npcInstance); // Снимаем все флаги npc.flags = 0; }; /* -------------------------------------------------------------------------------- */ /* B_SetNpcType() */ /* -------------------------------------------------------------------------------- */ /* Функция установки типа Npc */ /* -------------------------------------------------------------------------------- */ /* npcInstance - Инстанция Npc для которого меняют тип */ /* newNpctype - Тип Npc */ /* -------------------------------------------------------------------------------- */ func void B_SetNpcType(var int npcInstance, var int newNpctype) { // Вывести в zSpy строку "B_SetNpcType" PrintDebugNpc (PD_ZS_DETAIL, "B_SetNpcType"); // Создаем локальную переменную C_Npc var C_Npc npc; // Получаем Npc npc = Hlp_GetNpc(npcInstance); // Устанавливаем новый тип Npc npc.npctype = newNpctype; }; /* -------------------------------------------------------------------------------- */ /* B_GiveInvItems() */ /* -------------------------------------------------------------------------------- */ /* Функция передачи объекта от одного Npc другому */ /* -------------------------------------------------------------------------------- */ /* giver - Дающий Npc */ /* taker - Берущий Npc */ /* itemInstance - Передаваемый объект */ /* amount - Количество */ /* -------------------------------------------------------------------------------- */ func void B_GiveInvItems(var C_Npc giver, var C_Npc taker, var int itemInstance, var int amount) { // Вывести в zSpy строку "B_GiveInvItems" PrintDebugNpc (PD_ZS_DETAIL, "B_GiveInvItems"); // Удалить у дающего Npc предмет инвентаря Npc_RemoveInvItems (giver, itemInstance, amount); // Создать в инвентаре Npc предмет инвентаря CreateInvItems (taker, itemInstance, amount); // Создаем локальную переменную для сообщения var string msg; // Если Npc giver - ГГ if Npc_IsPlayer(giver) { // Если предмет - "Руда" if (itemInstance == ItMiNugget) { // Создаем строку с указанием количества отданной руды msg = ConcatStrings(IntToString(amount), _STR_MESSAGE_ORE_GIVEN); // Выводим строку на экран PrintScreen (msg, -1,_YPOS_MESSAGE_GIVEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_GIVEN); } // Иначе else { // Если передается 1 предмет и это не руда if amount == 1 { // Создаем строку "Отдан 1 предмет" msg = ConcatStrings(IntToString(amount), _STR_MESSAGE_ITEM_GIVEN); // Выводим строку на экран PrintScreen (msg, -1,_YPOS_MESSAGE_GIVEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_GIVEN); } // Иначе else { // Создаем строку "Отдано предметов: [Amount]" msg = ConcatStrings(IntToString(amount),_STR_MESSAGE_ITEMS_GIVEN); // Выводим строку на экран PrintScreen (msg, -1,_YPOS_MESSAGE_GIVEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_GIVEN); }; }; } // Иначе если Npc 'taker' - ГГ else if Npc_IsPlayer(taker) { // Если предмет - Руда if (itemInstance == ItMiNugget) { // Создаем строку с указанием количества полученной руды msg = ConcatStrings(IntToString(amount), _STR_MESSAGE_ORE_TAKEN); // Выводим строку на экран PrintScreen (msg, -1,_YPOS_MESSAGE_TAKEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_TAKEN); } // Иначе else { // Если получается 1 предмет и это не руда if amount == 1 { // Создаем строку "Получен 1 предмет" msg = ConcatStrings(IntToString(amount), _STR_MESSAGE_ITEM_TAKEN); // Выводим строку на экран PrintScreen (msg, -1,_YPOS_MESSAGE_TAKEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_TAKEN); } // Иначе else { // Создаем строку "Получено предметов: [Amount]" msg = ConcatStrings(IntToString(amount),_STR_MESSAGE_ITEMS_TAKEN); // Выводим строку на экран PrintScreen (msg, -1,_YPOS_MESSAGE_TAKEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_TAKEN); }; }; }; }; /* -------------------------------------------------------------------------------- */ /* B_CheckForImportantInfo() */ /* -------------------------------------------------------------------------------- */ /* Функция проверки Npc на готовность к диалогу */ /* - У Npc есть информация */ /* - ГГ не находится в неподходящем состоянии тела */ /* - ГГ является человеком */ /* - ГГ в данный момент не разговаривает */ /* -------------------------------------------------------------------------------- */ /* slf - Npc с диалогом */ /* oth - ГГ */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc готов к диалогу */ /* False - Npc не готов к диалогу */ /* -------------------------------------------------------------------------------- */ func int B_CheckForImportantInfo (var C_Npc slf, var C_Npc oth) { // Вывести в zSpy строку "B_CheckForImportantInfo" PrintDebugNpc (PD_ZS_FRAME, "B_CheckForImportantInfo"); // Если Npc в данный момент не разговаривает с другим Npc И Npc является человеком if ((oth.aivar[AIV_INVINCIBLE] == FALSE) && C_NpcIsHuman(oth)) { // ГГ не находится в состоянии разговора PrintDebugNpc (PD_ZS_CHECK, "...PC does not speak!"); // Создаем локальную переменную C_Npc для ГГ var C_Npc her; // Получаем ГГ her = Hlp_GetNpc(PC_Hero); // Создаем локальную переменную C_Npc для Рокфеллера var C_Npc rock; // Получаем Npc Рокфеллера rock = Hlp_GetNpc(PC_Rockefeller); // Если Npc 'her' не является ГГ И Npc 'rock' не является ГГ if ((Hlp_GetInstanceID(her)!=Hlp_GetInstanceID(Hero))&&(Hlp_GetInstanceID(rock)!=Hlp_GetInstanceID(Hero)) ) { // Npc не готов к диалогу return False; }; // Если у Npc есть информация if Npc_CheckInfo(slf,1) { // Выводим в zSpy строку "Выдать важную информацию" PrintDebugNpc (PD_ZS_CHECK, "...give important info!"); // Если ГГ НЕ находится в прыжке ИЛИ Npc находится в состоянии охраны прохода ИЛИ Npc находился в состоянии охраны прохода //if (!C_BodyStateContains(oth,BS_JUMP)) || Npc_IsInState(slf, ZS_GuardPassage) || Npc_WasInState(slf,ZS_GuardPassage) //{ // Вывести в zSpy сообщение "ГГ не прыгает или НПС охранник" PrintDebugNpc (PD_ZS_CHECK, "...PC does not jump or NPC is guard gear!"); // Если Npc 'oth' не находится в состоянии падения if (!C_BodyStateContains(oth,BS_FALL)) { // Вывести в zSpy сообщение "...не летает" PrintDebugNpc (PD_ZS_CHECK, "...don't fly!"); // Если Npc 'oth' не находится в состоянии "Плавания" if (!C_BodyStateContains(oth,BS_SWIM)) { // Вывести в zSpy сообщение "...не плавает" PrintDebugNpc (PD_ZS_CHECK, "...does not swim!"); // Если Npc 'oth' не находится в состоянии "Подводного плавания" if (!C_BodyStateContains(oth,BS_DIVE)) { // Вывести в zSpy сообщение "...не плавает под водой" PrintDebugNpc (PD_ZS_CHECK, "...does not dive!"); // Диалог выполняется на основе информации со свойством Important hero.aivar [AIV_IMPORTANT] = True; // Останавливаем движение Npc 'oth' B_FullStop (oth); // Если Npc 'slf' сидит ИЛИ не видит ГГ if (C_BodystateContains(slf, BS_SIT)) || (!Npc_CanSeeNpc(self, hero)) { // Очистить очередь AI команд Npc_ClearAIQueue(slf); // Npc 'slf' встает AI_StandUp(slf); } // Иначе else { // Прерываем всю проигрываемую анимацию Npc 'slf' B_FullStop (slf); }; // Переводим Npc 'slf' в состояние разговора AI_StartState (slf, ZS_Talk, 0, ""); // Отключаем восприятие "Восприятие в сражении" Npc_PercDisable (slf, PERC_ASSESSFIGHTER); // Npc готов к диалогу return True; }; }; }; //}; }; }; // Npc не готов к диалогу return False; }; /* -------------------------------------------------------------------------------- */ /* B_InitGuildAttitudes() */ /* -------------------------------------------------------------------------------- */ /* Функция смены или сброса таблицы отношений между гильдиями */ /* -------------------------------------------------------------------------------- */ func void B_InitGuildAttitudes () { // Вывести в zSpy строку "B_InitGuildAttitudes" PrintDebugNpc (PD_ZS_FRAME, "B_InitGuildAttitudes"); // Если глава меньше или равна 3 if (Kapitel <= 3) { // Установить стандартные отношения гильдий Wld_ExchangeGuildAttitudes ("GIL_ATTITUDES"); } // Иначе else { // Установить отношения между гильдиями для 4-ой главый Wld_ExchangeGuildAttitudes ("GIL_ATTITUDES_FMTAKEN"); }; }; /* -------------------------------------------------------------------------------- */ /* B_PracticeCombat() */ /* -------------------------------------------------------------------------------- */ /* Воспроизвести обучающую анимацию в указанной WP */ /* -------------------------------------------------------------------------------- */ /* hero - Обучающийся персонаж ГГ */ /* self - Npc учитель */ /* waypoint - Целевой Waypoint на котором проводится обучение */ /* -------------------------------------------------------------------------------- */ func void B_PracticeCombat (var string waypoint) { // Вывести в zSpy строку "B_PracticeCombat" PrintDebugNpc (PD_ZS_FRAME, "B_PracticeCombat"); // Игровая камера постоянно направленна на учитилея и теряет из поля зрения ГГ! Очень запутанно, так что лучше не использовать. /* // Если расстояние между Npc 'self' и Waypoint меньше 10 метров if (Npc_GetDistToWP(self, waypoint) < 1000) { // Переводим Npc hero в режим "Ходьба" AI_SetWalkmode (hero, NPC_WALK); // ГГ идет на указанный Waypoint AI_GotoWP (hero, waypoint); // Учитель поворачивается к ГГ AI_TurnToNpc (self, hero); // ГГ экипирует лучшее оружие AI_EquipBestMeleeWeapon (hero); // ГГ достает лучшее оружие AI_DrawWeapon (hero); // ГГ проигрывает анимацию "Тренировка с мечом" AI_PlayAni (hero, "T_1HSFREE"); // ГГ прячет оружие AI_RemoveWeapon (hero); // ГГ переходит в режим перемещения "Ходьба" AI_SetWalkmode (hero, NPC_WALK); // ГГ подходит к Учителю AI_GotoNpc (hero, self); // Учитель поворачивается к ГГ AI_TurnToNpc (self, hero); }; */ }; /* -------------------------------------------------------------------------------- */ /* B_PrintGuildCondition() */ /* -------------------------------------------------------------------------------- */ /* Функция вывода сообщения о том, какого уровня должен быть ГГ чтобы его приняли */ /* в какую-либо гильдию */ /* -------------------------------------------------------------------------------- */ /* level - Необходимый уровень для обучения */ /* -------------------------------------------------------------------------------- */ func void B_PrintGuildCondition (var int level) { // Вывести в zSpy строку "B_PrintGuildCondition" PrintDebugNpc (PD_ZS_FRAME, "B_PrintGuildCondition"); // Создаем локальную переменную для хранения сообщений var string msg; // Создаем сообщение "Условие принятия: [level] уровень" msg = ConcatStrings(_STR_MESSAGE_Joincamp, IntToString(level)); // Выводим сообщение на экран PrintScreen (msg, -1,_YPOS_MESSAGE_Joincamp,"font_old_10_white.tga",_TIME_MESSAGE_Joincamp); };


Теги: программирование, функции

Добавил: Neromont (21.04.2019)

Просмотров: 79

Автор: Piranha Bytes

Рейтинг: 0.0/0

Всего комментариев: 0
avatar
Информационное окноx