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
Функция игрового мира.
Остановить проигрывание визуального эффекта.

Файл C_Functions.d

Содержание +

/************************************************************************************/ /* Файл: C_Functions.d */ /* -------------------------------------------------------------------------------- */ /* Описание: Вспомогательные C-функции для людей */ /* Содержит набор функций для проверки AI */ /* Функция C_AmIStronger() */ /* Функция C_AmIWeaker() */ /* Функция C_NpcIsInFightMode() */ /* Функция C_NpcIsInNeutralSpellMode() */ /* Функция C_NpcIsDown() */ /* Функция C_NpcIsHuman() */ /* Функция C_NpcIsMonster() */ /* Функция C_NpcIsDangerousMonster() */ /* Функция C_NpcIsOrc() */ /* Функция C_NpcIsMonsterMage() */ /* Функция Npc_SetPermAttitude() */ /* Функция Npc_GetTempAttitude() */ /* Функция C_BodyStateContains() */ /* Функция C_NpcTypeIsFriend() */ /* Функция C_NpcIsGuard() */ /* Функция C_NpcIsGuardArcher() */ /* Функция C_NpcIsBoss() */ /* Функция C_NpcIsWorker() */ /* Функция C_NpcIsMage() */ /* Функция C_NpcBelongsToOldCamp() */ /* Функция C_NpcBelongsToNewCamp() */ /* Функция C_NpcBelongsToPsiCamp() */ /* Функция C_ChargeWasAttacked() */ /* Функция C_NpcHasSpell() */ /* Функция C_NpcHasAmmo() */ /* Функция C_NpcHasWeapon() */ /* Функция C_GetAttackReason() */ /* Функция C_OtherIsToleratedEnemy() */ /* Функция B_TolerateEnemy() */ /* -------------------------------------------------------------------------------- */ /* Заметки: */ /* [NUS] - Не используется */ /* */ /************************************************************************************/ /* -------------------------------------------------------------------------------- */ /* C_AmIStronger() */ /* -------------------------------------------------------------------------------- */ /* Функция позволяет определить, сильнее ли Npc (slf) чем Npc (oth) */ /* Функция является полной противоположностью функции C_AmIWeaker() */ /* -------------------------------------------------------------------------------- */ /* slf - Npc которого сравнивают */ /* oth - Npc с которым сравнивают */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc 'slf' сильнее Npc 'oth' */ /* False - Npc 'slf' слабее Npc 'oth' */ /* -------------------------------------------------------------------------------- */ func int C_AmIStronger (var C_Npc slf, var C_Npc oth) { // Вывести в zSpy надпись "C_AmIStronger" PrintDebugNpc (PD_ZS_DETAIL, "C_AmIStronger" ); // Если удвоенный уровень Npc 'slf' больше уровня Npc 'oth' if ((2*slf.level) > oth.level) { // Вывести в zSpy надпись "...yes" PrintDebugNpc (PD_ZS_DETAIL, "...yes" ); // Npc 'slf' сильнее return True; }; // Вывести в zSpy надпись "...no" PrintDebugNpc (PD_ZS_DETAIL, "...no" ); // Npc 'slf' слабее return False; }; /* -------------------------------------------------------------------------------- */ /* C_AmIWeaker() */ /* -------------------------------------------------------------------------------- */ /* Функция позволяет определить, слабее ли Npc (slf) чем Npc (oth) */ /* Функция является полной противоположностью функции C_AmIStronger() */ /* -------------------------------------------------------------------------------- */ /* slf - Npc которого сравнивают */ /* oth - Npc с которым сравнивают */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc 'slf' слабее Npc 'oth' */ /* False - Npc 'slf' сильнее Npc 'oth' */ /* -------------------------------------------------------------------------------- */ func int C_AmIWeaker (var C_Npc slf, var C_Npc oth) { // Вывести в zSpy надпись "C_AmIWeaker" PrintDebugNpc (PD_ZS_DETAIL, "C_AmIWeaker"); // Если удвоенный уровень Npc 'slf' меньше или равен уровню Npc 'oth' if ((2*slf.level) <= oth.level) { // Вывести в zSpy надпись "...yes" PrintDebugNpc (PD_ZS_DETAIL, "...yes"); // Npc 'slf' слабее return True; }; // Вывести в zSpy надпись "...no" PrintDebugNpc (PD_ZS_DETAIL, "...no"); // Npc 'slf' сильнее return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsInFightMode() */ /* -------------------------------------------------------------------------------- */ /* Функция позволяет определить, находится ли ГГ/Npc в боевом режиме, а также */ /* использует ли он поражающие заклинания. */ /* Плохими заклинаниями также считаются CHARME и SLEEP при использовании их против */ /* стражи. */ /* -------------------------------------------------------------------------------- */ /* oth - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc находится в боевом режиме */ /* False - Npc находится в обычном режиме */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsInFightMode (var C_Npc oth) { // Вывести в zSpy надпись "C_NpcIsInFightMode" PrintDebugNpc (PD_ZS_CHECK, "C_NpcIsInFightMode"); // Если Npc находится в режиме дальнего боя ИЛИ Nps находится в режиме ближнего боя ИЛИ находится в режиме кулачного боя if (Npc_IsInFightMode (oth,FMODE_FAR ) || Npc_IsInFightMode (oth,FMODE_MELEE ) || Npc_IsInFightMode (oth,FMODE_FIST )) { // Вывести в zSpy надпись "true" PrintDebugNpc(PD_ZS_CHECK, "...true" ); // Npc находится в боевом режиме return True; } // Иначе, если Npc находится в режиме использования магии else if Npc_IsInFightMode (oth, FMODE_MAGIC) { // И Npc использует "Плохое" заклинание if (Npc_GetActiveSpellCat(oth) == SPELL_BAD) { // Вывести в zSpy надпись "true" PrintDebugNpc( PD_ZS_CHECK,"...true" ); // Npc находится в боевом режиме return True; } // Иначе, если другой Npc 'self' находится в состоянии стражником ИЛИ Npc 'self' находился в состоянии стражника else if (Npc_IsInState(self, ZS_GuardPassage) || Npc_WasInState(self, ZS_GuardPassage)) // И проверяемый Npc 'oth' использует заклинание "Сон" или "Чары" && ((Npc_GetActiveSpell(oth) == SPL_SLEEP) || (Npc_GetActiveSpell(oth) == SPL_CHARM)) { // Вывести в zSpy надпись "true" PrintDebugNpc( PD_ZS_CHECK,"...true" ); // Npc находится в боевом режиме return True; }; }; // Вывести в zSpy надпись "false" PrintDebugNpc( PD_ZS_CHECK,"...false" ); // Npc находится в обычном режиме return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsInNeutralSpellMode() [NUS] */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет использует ли Npc нейтральное или хорошее заклинание */ /* -------------------------------------------------------------------------------- */ /* oth - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc использует нейтральное или хорошее заклинание */ /* False - Npc НЕ использует нейтральное или хорошее заклинание */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsInNeutralSpellMode (var C_Npc oth) { // Вывести в zSpy строку "C_NpcIsInNeutralSpellMode" PrintDebugNpc (PD_ZS_CHECK,"C_NpcIsInNeutralSpellMode"); // Если Npc находится в режиме использования магии И использует "Хорошее" ИЛИ "Нейтральное" заклинание if ( Npc_IsInFightMode (oth, FMODE_MAGIC) && (Npc_GetActiveSpellCat (oth) == SPELL_GOOD || Npc_GetActiveSpellCat (oth) == SPELL_NEUTRAL )) { // Вывести в zSpy строку "...true" PrintDebugNpc (PD_ZS_CHECK,"...true"); // Npc использует нейтральное или хорошее заклинание return True; }; // Вывести в zSpy строку "...false" PrintDebugNpc( PD_ZS_CHECK,"...false" ); // Npc НЕ использует нейтральное или хорошее заклинание return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsDown() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет находится ли Npc в бессознательном состоянии */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc находится в бессознательном состоянии */ /* False - Npc НЕ находится в бессознательном состоянии */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsDown(var C_Npc slf) { // Вывести в zSpy строку "C_NpcIsDown" PrintDebugNpc(PD_ZS_DETAIL,"C_NpcIsDown"); // Если Npc без сознания ИЛИ в магическом сне ИЛИ убит if (Npc_IsInState (slf, ZS_Unconscious) || Npc_IsInState (slf, ZS_MagicSleep) || Npc_IsDead (slf)) { // Вывести в zSpy строку "...true" PrintDebugNpc (PD_ZS_DETAIL,"...true"); // Npc находится в бессознательном состоянии return True; }; // Вывести в zSpy строку "...false" PrintDebugNpc (PD_ZS_DETAIL,"...false"); // Npc НЕ находится в бессознательном состоянии return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsHuman() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет является ли Npc человеком */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc является человеком */ /* False - Npc НЕ является человеком */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsHuman(var C_Npc slf) { // Вывести строку в zSpy "C_NpcIsHuman" PrintDebugNpc (PD_ZS_DETAIL,"C_NpcIsHuman"); // Вывести имя проверяемого Npc в zSpy PrintDebugString (PD_ZS_DETAIL,"...name: ", slf.name); // Если гильдия Npc является человеческой if (slf.guild < GIL_SEPERATOR_HUM) { // Вывести в zSpy строку "...true" PrintDebugNpc (PD_ZS_DETAIL,"...true"); // Npc является человеком return True; }; // Вывести в zSpy строку "...false" PrintDebugNpc (PD_ZS_DETAIL,"...false"); // Npc НЕ является человеком return FALSE; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsMonster() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет является ли Npc монстром */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc является монстром */ /* False - Npc НЕ является монстром */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsMonster(var C_Npc slf) { // Вывести в zSpy строку "C_NpcIsMonster" PrintDebugNpc (PD_ZS_DETAIL,"C_NpcIsMonster"); // Вывести в zSpy имя проверяемого Npc PrintDebugString (PD_ZS_DETAIL,"...name: ", slf.name); // Если ID гильдии больше человеческой И меньше орочьей if ((slf.guild > GIL_SEPERATOR_HUM) && (slf.guild < GIL_SEPERATOR_ORC)) { // Вывести в zSpy строку "...true" PrintDebugNpc (PD_ZS_DETAIL,"...true"); // Npc является монстром return True; }; // Вывести в zSpy строку "...false" PrintDebugNpc (PD_ZS_DETAIL,"...false"); // Npc НЕ является монстром return FALSE; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsDangerousMonster() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет является ли Npc опасным монстром */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* oth - Npc относительно которого проверяют */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc является опасным монстром */ /* False - Npc НЕ является монстром */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsDangerousMonster(var C_Npc slf, var C_Npc oth) { // Вывести в zSpy строку "C_NpcIsDangerousMonster" PrintDebugNpc (PD_ZS_DETAIL,"C_NpcIsDangerousMonster"); // Если Npc является монстром И если гильдии 'slf' и 'oth' враждебны И монстр НЕ является его напарником И Npb 'oth' НЕ находится в бессознательном состоянии if (C_NpcIsMonster(oth)) && (Wld_GetGuildAttitude(oth.guild,slf.guild) == ATT_HOSTILE) && (!oth.aivar[AIV_MM_PARTYMEMBER]) && !C_NpcIsDown(oth) { // Вывести в zSpy строку "...true" PrintDebugNpc (PD_ZS_DETAIL,"...true"); // Npc является опасным монстром return True; }; // Вывести в zSpy строку "...false" PrintDebugNpc (PD_ZS_DETAIL,"...false"); // Npc НЕ является опасным монстром return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsOrc() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет является ли Npc орком */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc является орком */ /* False - Npc НЕ является орком */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsOrc(var C_Npc slf) { // Вывести в zSpy строку "C_NpcIsOrc" PrintDebugNpc (PD_ZS_DETAIL,"C_NpcIsOrc"); // Если гильдия Npc это Орки if (slf.guild > GIL_SEPERATOR_ORC) { // Вывести в zSpy строку "...true" PrintDebugNpc (PD_ZS_DETAIL,"...true"); // Npc является орком return True; }; // Вывести в zSpy строку "...false" PrintDebugNpc (PD_ZS_DETAIL,"...false"); // Npc НЕ является орком return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsMonsterMage() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет является ли Npc - магом монстром */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc является магом монстром */ /* False - Npc НЕ является магом монстром */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsMonsterMage(var C_Npc slf) { // Вывести в zSpy строку "C_NpcIsMonsterMage" PrintDebugNpc (PD_ZS_DETAIL, "C_NpcIsMonsterMage"); // Если Npc использует тактику сражения мага И относится к гильдии демонов ИЛИ орков шаманов ИЛИ орков жрецов ИЛИ ледяному голему if ((slf.fight_tactic==FAI_HUMAN_MAGE) && ((slf.guild==GIL_DEMON) || (slf.guild==GIL_ORCSHAMAN) || (slf.guild==GIL_UNDEADORC) || (slf.guild==GIL_GOLEM))) { // Вывести в zSpy строку "...true" PrintDebugNpc (PD_ZS_DETAIL,"...true"); // Npc является магом монстром return True; }; // Вывести в zSpy строку "...false" PrintDebugNpc (PD_ZS_DETAIL,"...false"); // Npc НЕ является магом монстром return False; }; /* -------------------------------------------------------------------------------- */ /* Npc_SetPermAttitude() */ /* -------------------------------------------------------------------------------- */ /* Функция установки постоянного отношения Npc к другому Npc */ /* -------------------------------------------------------------------------------- */ /* slf - Npc для которого устанавливают отношение */ /* -------------------------------------------------------------------------------- */ func void Npc_SetPermAttitude (var C_Npc slf, var int att) { // Вывести в zSpy строку "Npc_SetPermAttitude()" PrintDebugNpc (PD_ZS_DETAIL, "Npc_SetPermAttitude()"); // Установить постоянное отношение Npc 'slf' к другому Npc Npc_SetAttitude (slf, att); // Установить временное отношение Npc 'slf' к другому Npc Npc_SetTempAttitude (slf, att); }; /* -------------------------------------------------------------------------------- */ /* Npc_GetTempAttitude() */ /* -------------------------------------------------------------------------------- */ /* Функция для получения временного отношения между двумя Npc */ /* -------------------------------------------------------------------------------- */ /* slf - Первый Npc */ /* oth - Второй Npc */ /* -------------------------------------------------------------------------------- */ func int Npc_GetTempAttitude (var C_Npc slf, var C_Npc oth) { // Вывести в zSpy строку "Npc_GetTempAttitude()" PrintDebugNpc (PD_ZS_DETAIL, "Npc_GetTempAttitude()"); // Вернуть текущее отношение одного Npc к другому return Npc_GetAttitude (slf,oth); }; /* -------------------------------------------------------------------------------- */ /* C_BodyStateContains() */ /* -------------------------------------------------------------------------------- */ /* Функция безопасного запроса на состояние тела. */ /* Не используйте внутреннюю функцию 'Npc_GetBodyState' напрямую, потому что */ /* сравнения вроде (Npc_GetBodyState(self) == BS_SIT) вернут 'false', если */ /* установлены дополнительные флаги, например "BS_SIT | BS_MOD_BURNING", то есть */ /* Npc сидит и горит. Запросы на состояние тела выполняйте через данную функцию */ /* следующим образом: if (C_BodyStateContains(self,BS_SIT)) */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* bodystate - Константа состояния тела Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc находится в указанном состоянии */ /* False - Npc НЕ находится в указанном состоянии */ /* -------------------------------------------------------------------------------- */ func int C_BodyStateContains (var C_Npc slf, var int bodystate) { // Вывести в zSpy строку "C_BodyStateContains()" PrintDebugNpc (PD_ZS_DETAIL, "C_BodyStateContains()"); // Вывести в zSpy идентификатор флага состояния тела PrintDebugInt (PD_ZS_DETAIL, "bodystate: ", bodystate); // Выводим в zSpy проверку запрошенного состояния тела без дополнительных флагов PrintDebugInt (PD_ZS_DETAIL, "bodystate&(BS_MAX|BS_FLAG_INTERRUPTABLE|BS_FLAG_FREEHANDS): ", bodystate&(BS_MAX|BS_FLAG_INTERRUPTABLE|BS_FLAG_FREEHANDS)); // Выводим в zSpy проверку фактического состояния тела без дополнительных флагов PrintDebugInt (PD_ZS_DETAIL, "Npc_GetBodyState(slf): ", Npc_GetBodyState(slf)); // Выводим в zSpy результат сравнения фактического состояния тела и запрошенного PrintDebugString (PD_ZS_DETAIL, "Npc_GetBodyState(slf)&(BS_MAX|BS_FLAG_INTERRUPTABLE|BS_FLAG_FREEHANDS): ", IntToString(Npc_GetBodyState(slf)&(BS_MAX|BS_FLAG_INTERRUPTABLE|BS_FLAG_FREEHANDS))); // если фактическое состояние тела НПС без учета допфлагов равно запрошенному состоянию без учета допфлагов if ((Npc_GetBodyState(slf)&(BS_MAX|BS_FLAG_INTERRUPTABLE|BS_FLAG_FREEHANDS)) == (bodystate&(BS_MAX|BS_FLAG_INTERRUPTABLE|BS_FLAG_FREEHANDS))) { // Вывести в zSpy строку "...true" PrintDebugNpc( PD_ZS_DETAIL, "...true" ); // Npc находится в указанном состоянии return True; }; // Вывести в zSpy строку "...false" PrintDebugNpc( PD_ZS_DETAIL, "...false" ); // Npc НЕ находится в указанном состоянии return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcTypeIsFriend() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет является ли Npc и ГГ друзьями */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* oth - ГГ или другой Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc и ГГ друзья */ /* False - Npc и ГГ НЕ друзья */ /* -------------------------------------------------------------------------------- */ func int C_NpcTypeIsFriend(var C_Npc slf, var C_Npc oth) { // Вывести в zSpy строку "C_NpcTypeIsFriend()" PrintDebugNpc (PD_ZS_DETAIL, "C_NpcTypeIsFriend()"); // Если Npc 'oth' является ГГ И Npc 'slf' является другом ГГ if (Npc_IsPlayer(oth) && slf.npctype==NPCTYPE_FRIEND) { // Вывести в zSpy строку "...true" PrintDebugNpc( PD_ZS_DETAIL, "...true" ); // Npc и ГГ друзья return True; }; // Вывести в zSpy строку "...false" PrintDebugNpc( PD_ZS_DETAIL, "...false" ); // Npc и ГГ НЕ друзья return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsGuard() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет является ли Npc стражником */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc стражник */ /* False - Npc НЕ стражник */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsGuard(var C_Npc slf) { // Вывести в zSpy строку "C_NpcIsGuard" PrintDebugNpc (PD_ZS_DETAIL, "C_NpcIsGuard"); // Если Npc является стражником в лагере ИЛИ стражником в открытом мире ИЛИ стражником в шахте ИЛИ ... if ((slf.npctype==NPCTYPE_GUARD) || (slf.npctype==NPCTYPE_OW_GUARD) || (slf.npctype==NPCTYPE_MINE_GUARD) || // ... Npc является главным персонажем или другом И принадлежит гильдии Стражник ИЛИ Наемник ИЛИ Страж (((slf.npctype==NPCTYPE_MAIN)||(slf.npctype==NPCTYPE_FRIEND)) && ((slf.guild==GIL_GRD)||(slf.guild==GIL_SLD)||(slf.guild==GIL_TPL)))) { // Если Npc не стрелок if (slf.fight_tactic != FAI_HUMAN_RANGED) { // Вывести в zSpy строку "true" PrintDebugNpc( PD_ZS_DETAIL, "...true!" ); // Npc стражник return True; }; }; // Вывести в zSpy строку "false" PrintDebugNpc( PD_ZS_DETAIL, "...false!" ); // Npc НЕ стражник return false; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsGuardArcher() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет является ли Npc стражником стрелком */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc стражник-стрелок */ /* False - Npc НЕ стражник-стрелок */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsGuardArcher(var C_Npc slf) { // Вывести в zSpy строку "C_NpcIsGuardArcher" PrintDebugNpc (PD_ZS_DETAIL, "C_NpcIsGuardArcher"); // Если Npc является стражником в лагере ИЛИ стражником в открытом мире ИЛИ стражником в шахте ИЛИ ... if ((slf.npctype==NPCTYPE_GUARD) || (slf.npctype==NPCTYPE_OW_GUARD) || (slf.npctype==NPCTYPE_MINE_GUARD) || // ... Npc является главным персонажем или другом И принадлежит гильдии Стражник ИЛИ Наемник ИЛИ Страж (((slf.npctype==NPCTYPE_MAIN)||(slf.npctype==NPCTYPE_FRIEND)) && ((slf.guild==GIL_GRD)||(slf.guild==GIL_SLD)||(slf.guild==GIL_TPL)))) { // Если Npc не стрелок if (slf.fight_tactic == FAI_HUMAN_RANGED) { // Вывести в zSpy строку "true" PrintDebugNpc( PD_ZS_DETAIL, "...true!" ); // Npc стражник-стрелок return True; }; }; // Вывести в zSpy строку "false" PrintDebugNpc( PD_ZS_DETAIL, "...false!" ); // Npc НЕ стражник-стрелок return FALSE; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsBoss() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет принадлежит ли Npc к одной из гильдий "Босов" */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc принадлежит к гильдии "Босов" */ /* False - Npc НЕ принадлежит к гильдии "Босов" */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsBoss(var C_Npc slf) { // Вывести в zSpy строку "C_NpcIsBoss" PrintDebugNpc( PD_ZS_DETAIL, "C_NpcIsBoss" ); // Если Npc принадлежит к гильдии "Рудных баронов" ИЛИ "Магов огня" ИЛИ "Магов воды" ИЛИ "Гуру" if ((slf.guild == GIL_EBR) || (slf.guild == GIL_KDF) || (slf.guild == GIL_KDW) || (slf.guild == GIL_GUR)) { // Вывести в zSpy строку "...true" PrintDebugNpc( PD_ZS_DETAIL, "...true"); // Npc принадлежит к гильдии "Босов" return True; }; // Вывести в zSpy строку "...false" PrintDebugNpc( PD_ZS_DETAIL, "...false"); // Npc НЕ принадлежит к гильдии "Босов" return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsWorker() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет принадлежит ли Npc к одной из рабочих гильдий */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc принадлежит к рабочей гильдий */ /* False - Npc НЕ принадлежит к рабочей гильдий */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsWorker(var C_Npc slf) { // Вывести в zSpy строку "C_NpcIsWorker" PrintDebugNpc( PD_ZS_DETAIL, "C_NpcIsWorker" ); // Если Npc принадлежит к гильдии "Рудокопы" ИЛИ "Призраки" ИЛИ "Крестьянин" ИЛИ "Скребки" ИЛИ "Воры" ИЛИ "Послушники" if ((slf.guild == GIL_VLK) || (slf.guild == GIL_STT) || (slf.guild == GIL_BAU) || (slf.guild == GIL_SFB) || (slf.guild == GIL_ORG) || (slf.guild == GIL_NOV)) { // Вывести в zSpy строку "...true" PrintDebugNpc( PD_ZS_DETAIL, "...true"); // Npc принадлежит к рабочей гильдий return True; }; // Вывести в zSpy строку "...false" PrintDebugNpc( PD_ZS_DETAIL, "...false"); // Npc НЕ принадлежит к рабочей гильдий return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcIsMage() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет владеет ли Npc магией */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc владеет магией */ /* False - Npc НЕ владеет магией */ /* -------------------------------------------------------------------------------- */ func int C_NpcIsMage(var C_Npc slf) { // Вывести в zSpy строку "C_NpcIsMage" PrintDebugNpc (PD_ZS_DETAIL, "C_NpcIsMage" ); // Если у Npc 'slf' значение максимальной маны больше нуля if (slf.attribute[ATR_MANA_MAX ] >0 ) { // Вывести в zSpy строку "...true" PrintDebugNpc( PD_ZS_DETAIL, "...true"); // Npc владеет магией return True; }; // Вывести в zSpy строку "...false" PrintDebugNpc( PD_ZS_DETAIL, "...false"); // Npc НЕ владеет магией return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcBelongsToOldCamp() */ /* -------------------------------------------------------------------------------- */ /* Функция определяет принадлежит ли Npc к "Старому лагерю" */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc принадлежит к "Старому лагерю" */ /* False - Npc НЕ принадлежит к "Старому лагерю" */ /* -------------------------------------------------------------------------------- */ func int C_NpcBelongsToOldCamp (var C_Npc slf) { // Вывести в zSpy строку "C_NpcBelongsToOldCamp" PrintDebugNpc (PD_ZS_DETAIL, "C_NpcBelongsToOldCamp"); // Если Npc принадлежит к гильдии "Рудокопы" ИЛИ "Призраки" ИЛИ "Стражник" ИЛИ "Маги огня" ИЛИ "Рудные бароны" if ((slf.guild==GIL_VLK) || (slf.guild==GIL_STT) || (slf.guild==GIL_GRD) || (slf.guild==GIL_KDF) || (slf.guild==GIL_EBR)) { // Вывести в zSpy строку "...TRUE" PrintDebugNpc (PD_ZS_DETAIL, "...TRUE"); // Npc принадлежит к "Старому лагерю" return True; }; // Вывести в zSpy строку "...FALSE" PrintDebugNpc (PD_ZS_DETAIL, "...FALSE"); // Npc НЕ принадлежит к "Старому лагерю" return FALSE; }; /* -------------------------------------------------------------------------------- */ /* C_NpcBelongsToNewCamp() */ /* -------------------------------------------------------------------------------- */ /* Функция определяет принадлежит ли Npc к "Новому лагерю" */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc принадлежит к "Новому лагерю" */ /* False - Npc НЕ принадлежит к "Новому лагерю" */ /* -------------------------------------------------------------------------------- */ func int C_NpcBelongsToNewCamp (var C_Npc slf) { // Вывести в zSpy строку "C_NpcBelongsToNewCamp" PrintDebugNpc (PD_ZS_DETAIL, "C_NpcBelongsToNewCamp"); // Если Npc принадлежит к гильдии "Крестьянин" ИЛИ "Скребок" ИЛИ "Вор" ИЛИ "Наемники" ИЛИ "Маги воды" if ((slf.guild==GIL_BAU) || (slf.guild==GIL_SFB) || (slf.guild==GIL_ORG) || (slf.guild==GIL_SLD) || (slf.guild==GIL_KDW)) { // Вывести в zSpy строку "...TRUE" PrintDebugNpc (PD_ZS_DETAIL, "...TRUE"); // Npc принадлежит к "Новому лагерю" return True; }; // Вывести в zSpy строку "...FALSE" PrintDebugNpc (PD_ZS_DETAIL, "...FALSE"); // Npc НЕ принадлежит к "Новому лагерю" return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcBelongsToPsiCamp() */ /* -------------------------------------------------------------------------------- */ /* Функция определяет принадлежит ли Npc к лагерю "Сектантов" */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Npc принадлежит к лагерю "Сектантов" */ /* False - Npc НЕ принадлежит к лагерю "Сектантов" */ /* -------------------------------------------------------------------------------- */ func int C_NpcBelongsToPsiCamp (var C_Npc slf) { // Вывести в zSpy строку "C_NpcBelongsToPsiCamp" PrintDebugNpc (PD_ZS_DETAIL, "C_NpcBelongsToPsiCamp"); // Если Npc принадлежит к гильдии "Послушники" ИЛИ "Стражи" ИЛИ "Гуру" if ((slf.guild==GIL_NOV) || (slf.guild==GIL_TPL) || (slf.guild==GIL_GUR)) { // Вывести в zSpy строку "...TRUE" PrintDebugNpc (PD_ZS_DETAIL, "...TRUE"); // Npc принадлежит к лагерю "Сектантов" return True; }; // Вывести в zSpy строку "...FALSE" PrintDebugNpc (PD_ZS_DETAIL, "...FALSE"); // Npc НЕ принадлежит к лагерю "Сектантов" return False; }; /* -------------------------------------------------------------------------------- */ /* C_ChargeWasAttacked() */ /* -------------------------------------------------------------------------------- */ /* Функция определяет было ли нападение на охраника и стрелка */ /* -------------------------------------------------------------------------------- */ /* guard - Охранник */ /* charge - Стрелок */ /* attacker - Агрессор */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* True - Нападение было */ /* False - Нападения НЕ было */ /* -------------------------------------------------------------------------------- */ func int C_ChargeWasAttacked(var C_Npc guard, var C_Npc charge, var C_Npc attacker) { // Вывести в zSpy строку "C_ChargeWasAttacked" PrintDebugNpc (PD_ZS_DETAIL, "C_ChargeWasAttacked" ); // Если Npc 'guard' является стражником ИЛИ стражником стрелком ИЛИ относится к стражникам ИЛИ стажникам шахты if C_NpcIsGuard(guard) || C_NpcIsGuardArcher(guard) || (guard.npctype == NPCTYPE_GUARD) || (guard.npctype == NPCTYPE_MINE_GUARD) { // Вывести в zSpy строку "Npc охранник или FK охранник" PrintDebugNpc (PD_ZS_DETAIL, "...Npc is Guard or FK-Guard!" ); // Если Npc 'guard' и Npc 'charge' друзья И Npc 'guard' и Npc 'attacker' НЕ друзья if (Npc_GetAttitude(guard, charge) == ATT_FRIENDLY) && (Npc_GetAttitude(guard, attacker) != ATT_FRIENDLY) { // Вывести в zSpy строку "...true" PrintDebugNpc(PD_ZS_DETAIL, "...true"); // Нападение было return True; }; }; // Вывести в zSpy строку "...false" PrintDebugNpc (PD_ZS_DETAIL, "...false"); // Нападения НЕ было return False; }; /* -------------------------------------------------------------------------------- */ /* C_NpcHasSpell() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет, есть ли у Npc в инвентаре указанное заклинание */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* spell - ID константы заклинания */ /* -------------------------------------------------------------------------------- */ /* Возвращаемые значения: */ /* 0 - Npc НЕ имеет заклинание в инвентаре */ /* 1 - Npc имеет заклинание в инвентаре */ /* -------------------------------------------------------------------------------- */ func int C_NpcHasSpell(var C_Npc slf, var int spell) { // Возвращает 1, если Npc slf имеет заклинание spell, иначе – 0. return Npc_HasSpell(slf, spell); }; /* -------------------------------------------------------------------------------- */ /* C_NpcHasAmmo() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет, есть ли у Npc в инвентаре боеприпасы */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* category - Категория инвентаря */ /* -------------------------------------------------------------------------------- */ /* Возвращаемое значения: */ /* Количество найденных у Npc боеприпасов */ /* -------------------------------------------------------------------------------- */ func int C_NpcHasAmmo(var C_Npc slf, var int category) { // Вывести в zSpy строку "C_NpcHasAmmo" PrintDebugNpc (PD_ZS_DETAIL, "C_NpcHasAmmo"); // Локальная переменная для сохранения количества боеприпасов var int count; // Если не указана категория "Стрела" И "Болт" if (category!= ITAMARROW && category!=ITAMBOLT) { // Вывести в zSpy строку с надписью "Неверная категория" PrintDebugNpc (PD_ZS_DETAIL, "...Invalid category !!!"); // Вернуть 0 return 0; }; // Получаем количество предметов из первого слота count = Npc_GetInvItemBySlot(slf, INV_WEAPON, 1); // Если найденный предмет существует И имеет флаг "Боеприпасы" if (Hlp_IsValidItem(item) && (item.mainflag==ITEM_KAT_MUN)) { // Вывести в zSpy количество найденных предметов PrintDebugInt (PD_ZS_DETAIL, "...Found count: ",count); // Если идентификатор предмета соответствует категории if (Hlp_GetInstanceID(item) == category) { // Вывести в zSpy строку название типа боеприпасов PrintDebugString(PD_ZS_DETAIL, "...Amunition Type: ",item.name); // Вернуть количество боеприпасов return count; }; }; // Получаем количество предметов из второго слота count = Npc_GetInvItemBySlot(slf, INV_WEAPON, 2); // Если найденный предмет существует И имеет флаг "Боеприпасы" if (Hlp_IsValidItem (item) && (item.mainflag==ITEM_KAT_MUN)) { // Вывести в zSpy количество найденных предметов PrintDebugInt (PD_ZS_DETAIL, "...Found count: ",count); // Если идентификатор предмета соответствует категории if (Hlp_GetInstanceID(item) == category) { // Вывести в zSpy строку название типа боеприпасов PrintDebugString(PD_ZS_DETAIL, "...Amunition Type: ",item.name); // Вернуть количество боеприпасов return count; }; }; // Получаем количество предметов из третьего слота count = Npc_GetInvItemBySlot(slf, INV_WEAPON, 3); // Если найденный предмет существует И имеет флаг "Боеприпасы" if (Hlp_IsValidItem (item) && (item.mainflag==ITEM_KAT_MUN)) { // Вывести в zSpy количество найденных предметов PrintDebugInt (PD_ZS_DETAIL, "...Found count: ",count); // Если идентификатор предмета соответствует категории if (Hlp_GetInstanceID(item) == category) { // Вывести в zSpy строку название типа боеприпасов PrintDebugString(PD_ZS_DETAIL, "...Amunition Type: ",item.name); // Вернуть количество боеприпасов return count; }; }; // Получаем количество предметов из четвертого слота count = Npc_GetInvItemBySlot(slf, INV_WEAPON, 4); // Если найденный предмет существует И имеет флаг "Боеприпасы" if (Hlp_IsValidItem (item) && (item.mainflag==ITEM_KAT_MUN)) { // Вывести в zSpy количество найденных предметов PrintDebugInt (PD_ZS_DETAIL, "...Found count: ",count); // Если идентификатор предмета соответствует категории if (Hlp_GetInstanceID(item) == category) { // Вывести в zSpy строку название типа боеприпасов PrintDebugString(PD_ZS_DETAIL, "...Amunition Type: ",item.name); // Вернуть количество боеприпасов return count; }; }; // Получаем количество предметов из пятого слота count = Npc_GetInvItemBySlot(slf, INV_WEAPON, 5); // Если найденный предмет существует И имеет флаг "Боеприпасы" if (Hlp_IsValidItem (item) && (item.mainflag==ITEM_KAT_MUN)) { // Вывести в zSpy количество найденных предметов PrintDebugInt (PD_ZS_DETAIL, "...Found count: ",count); // Если идентификатор предмета соответствует категории if (Hlp_GetInstanceID(item) == category) { // Вывести в zSpy строку название типа боеприпасов PrintDebugString(PD_ZS_DETAIL, "...Amunition Type: ",item.name); // Вернуть количество боеприпасов return count; }; }; // Получаем количество предметов из шестого слота count = Npc_GetInvItemBySlot(slf, INV_WEAPON, 6); // Если найденный предмет существует И имеет флаг "Боеприпасы" if (Hlp_IsValidItem (item) && (item.mainflag==ITEM_KAT_MUN)) { // Вывести в zSpy количество найденных предметов PrintDebugInt (PD_ZS_DETAIL, "...Found count: ",count); // Если идентификатор предмета соответствует категории if (Hlp_GetInstanceID(item) == category) { // Вывести в zSpy строку название типа боеприпасов PrintDebugString(PD_ZS_DETAIL, "...Amunition Type: ",item.name); // Вернуть количество боеприпасов return count; }; }; // Боеприпасы не найдены return 0; }; /* -------------------------------------------------------------------------------- */ /* C_NpcHasWeapon() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет, есть ли у Npc оружие в инвентаре указанной категории */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* category - Категория инвентаря */ /* -------------------------------------------------------------------------------- */ /* Возвращаемое значения: */ /* True - Оружие есть */ /* False - Оружия нет */ /* -------------------------------------------------------------------------------- */ func int C_NpcHasWeapon(var C_Npc slf, var int category) { // Вывести в zSpy строку "C_NpcHasWeapon" PrintDebugNpc (PD_ZS_FRAME, "C_NpcHasWeapon"); // Если не указана категория "Оружие ближнего боя" И "Оружие дальнего боя" if (category!= ITEM_KAT_NF && category!=ITEM_KAT_FF) { // Вывести в zSpy строку с надписью "Неверная категория" PrintDebugNpc (PD_ZS_CHECK, "...Invalid category !!!"); // Оружия нет return False; }; // Получаем предмет из первого слота Npc_GetInvItemBySlot(slf, INV_WEAPON, 1); // Если найденный предмет существует И имеет флаг указанный в поле 'category' if (Hlp_IsValidItem (item) && (item.mainflag==category)) { // Вывести в zSpy строку "Оружие в слоте 1!!!" PrintDebugNpc (PD_ZS_CHECK, "...Weapon in Slot 1 !!!"); // Если текущая категория - Оружие ближнего боя if (category==ITEM_KAT_NF) { // Вывести в zSpy строку "Найдено оружие ближнего боя" PrintDebugNpc(PD_ZS_CHECK, "...Found melee weapon!"); // Оружие есть return True; } // Иначе else { // Если у Npc есть боеприпасы if (C_NpcHasAmmo(slf, item.munition)) { // Вывести в zSpy строку "Найдено оружие дальнего боя с достаточным количеством боеприпасов" PrintDebugNpc(PD_ZS_CHECK, "...Found ranged weapon with enough ammunition!"); // Оружие есть return True; }; }; }; // Получаем предмет из второго слота Npc_GetInvItemBySlot(slf, INV_WEAPON, 2); // Если найденный предмет существует И имеет флаг указанный в поле 'category' if (Hlp_IsValidItem (item) && (item.mainflag==category)) { // Вывести в zSpy строку "Оружие в слоте 2!!!" PrintDebugNpc (PD_ZS_CHECK, "...Weapon in Slot 2 !!!"); // Если текущая категория - Оружие ближнего боя if (category==ITEM_KAT_NF) { // Вывести в zSpy строку "Найдено оружие ближнего боя" PrintDebugNpc(PD_ZS_CHECK, "...Found melee weapon!"); // Оружие есть return True; } else { // Если у Npc есть боеприпасы if (C_NpcHasAmmo(slf, item.munition)) { // Вывести в zSpy строку "Найдено оружие дальнего боя с достаточным количеством боеприпасов" PrintDebugNpc(PD_ZS_CHECK, "...Found ranged weapon with enough ammunition!"); // Оружие есть return True; }; }; }; // Получаем предмет из третьего слота Npc_GetInvItemBySlot(slf, INV_WEAPON, 3); // Если найденный предмет существует И имеет флаг указанный в поле 'category' if (Hlp_IsValidItem (item) && (item.mainflag==category)) { // Вывести в zSpy строку "Оружие в слоте 3!!!" PrintDebugNpc (PD_ZS_CHECK, "...Weapon in Slot 3 !!!"); // Если текущая категория - Оружие ближнего боя if (category==ITEM_KAT_NF) { // Вывести в zSpy строку "Найдено оружие ближнего боя" PrintDebugNpc(PD_ZS_CHECK, "...Found melee weapon!"); // Оружие есть return True; } else { // Если у Npc есть боеприпасы if (C_NpcHasAmmo(slf, item.munition)) { // Вывести в zSpy строку "Найдено оружие дальнего боя с достаточным количеством боеприпасов" PrintDebugNpc(PD_ZS_CHECK, "...Found ranged weapon with enough ammunition!"); // Оружие есть return True; }; }; }; // Получаем предмет из четвертого слота Npc_GetInvItemBySlot(slf, INV_WEAPON, 4); // Если найденный предмет существует И имеет флаг указанный в поле 'category' if (Hlp_IsValidItem (item) && (item.mainflag==category)) { // Вывести в zSpy строку "Оружие в слоте 4!!!" PrintDebugNpc (PD_ZS_CHECK, "...Weapon in Slot 4 !!!"); // Если текущая категория - Оружие ближнего боя if (category==ITEM_KAT_NF) { // Вывести в zSpy строку "Найдено оружие ближнего боя" PrintDebugNpc(PD_ZS_CHECK, "...Found melee weapon!"); // Оружие есть return True; } else { // Если у Npc есть боеприпасы if (C_NpcHasAmmo(slf, item.munition)) { // Вывести в zSpy строку "Найдено оружие дальнего боя с достаточным количеством боеприпасов" PrintDebugNpc(PD_ZS_CHECK, "...Found ranged weapon with enough ammunition!"); // Оружие есть return True; }; }; }; // Получаем предмет из пятого слота Npc_GetInvItemBySlot(slf, INV_WEAPON, 5); // Если найденный предмет существует И имеет флаг указанный в поле 'category' if (Hlp_IsValidItem (item) && (item.mainflag==category)) { // Вывести в zSpy строку "Оружие в слоте 5!!!" PrintDebugNpc (PD_ZS_CHECK, "...Weapon in Slot 5 !!!"); // Если текущая категория - Оружие ближнего боя if (category==ITEM_KAT_NF) { // Вывести в zSpy строку "Найдено оружие ближнего боя" PrintDebugNpc(PD_ZS_CHECK, "...Found melee weapon!"); // Оружие есть return True; } else { // Если у Npc есть боеприпасы if (C_NpcHasAmmo(slf, item.munition)) { // Вывести в zSpy строку "Найдено оружие дальнего боя с достаточным количеством боеприпасов" PrintDebugNpc(PD_ZS_CHECK, "...Found ranged weapon with enough ammunition!"); // Оружие есть return True; }; }; }; // Получаем предмет из шестого слота Npc_GetInvItemBySlot(slf, INV_WEAPON, 6); // Если найденный предмет существует И имеет флаг указанный в поле 'category' if (Hlp_IsValidItem (item) && (item.mainflag==category)) { // Вывести в zSpy строку "Оружие в слоте 6!!!" PrintDebugNpc (PD_ZS_CHECK, "...Weapon in Slot 6 !!!"); // Если текущая категория - Оружие ближнего боя if (category==ITEM_KAT_NF) { // Вывести в zSpy строку "Найдено оружие ближнего боя" PrintDebugNpc(PD_ZS_CHECK, "...Found melee weapon!"); // Оружие есть return True; } else { // Если у Npc есть боеприпасы if (C_NpcHasAmmo(slf, item.munition)) { // Вывести в zSpy строку "Найдено оружие дальнего боя с достаточным количеством боеприпасов" PrintDebugNpc(PD_ZS_CHECK, "...Found ranged weapon with enough ammunition!"); // Оружие есть return True; }; }; }; // Оружия нет return False; }; /* -------------------------------------------------------------------------------- */ /* C_GetAttackReason() */ /* -------------------------------------------------------------------------------- */ /* Функция позволяет получить причину атаки Npc */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемое значения: */ /* Причина нападения - AIV_ATTACKREASON */ /* -------------------------------------------------------------------------------- */ func int C_GetAttackReason(var C_Npc slf) { // Вывести в zSpy строку "C_GetAttackReason" PrintDebugNpc (PD_ZS_DETAIL, "C_GetAttackReason"); // Получить причину атаки Npc return slf.aivar[AIV_ATTACKREASON]; }; /* -------------------------------------------------------------------------------- */ /* C_OtherIsToleratedEnemy() */ /* -------------------------------------------------------------------------------- */ /* Функция проверяет, есть ли у орков причина не нападать на ГГ */ /* -------------------------------------------------------------------------------- */ /* slf - Проверяемый Npc */ /* oth - Другой Npc */ /* -------------------------------------------------------------------------------- */ /* Возвращаемое значения: */ /* True - Есть причина не нападать */ /* False - Нет причины не нападать */ /* -------------------------------------------------------------------------------- */ func int C_OtherIsToleratedEnemy(var C_Npc slf, var C_Npc oth) { // Вывести в zSpy строку "C_OtherIsToleratedEnemy" PrintDebugNpc (PD_ZS_DETAIL, "C_OtherIsToleratedEnemy"); // Если Npc 'slf' - орк if (C_NpcIsOrc(slf)) { // Вывести в zSpy строку "self это Орк" PrintDebugNpc (PD_ZS_DETAIL, "...'self' ist Ork!"); // Есть ли в руках Улу-Мулу // Локальная переменная для предмета инвентаря var C_Item weapon; // Локальная переменная для сохранения ID инстанции предмета инвентаря var int weaponInstance; // Сохраняем инстанцию оружия в руках у Npc 'oth' weapon = Npc_GetReadiedWeapon(oth); // Если предмет в руках имеется if (Hlp_IsValidItem(weapon)) { // Получаем ID оружия weaponInstance = Hlp_GetInstanceID(weapon); // Выводим в zSpy наименование оружия PrintDebugString(PD_ZS_DETAIL, "...Get weapon from 'other': ", weapon.name); // Если полученное оружие это Улу-Мулу if (weaponInstance == UluMulu) { // Вывести в zSpy строку "...true!" PrintDebugNpc(PD_ZS_DETAIL, "...true!"); // Есть причина не нападать return True; }; }; // Есть ли экипированная Улу-Мулу // Сохраняем инстанцию экипированного оружия 'oth' weapon = Npc_GetEquippedMeleeWeapon(oth); // Если экипированный предмет имеется if (Hlp_IsValidItem(weapon)) { // Получаем ID оружия weaponInstance = Hlp_GetInstanceID(weapon); // Выводим в zSpy наименование экипированного оружия PrintDebugString(PD_ZS_DETAIL, "...Equipped weapon from 'other': ", weapon.name); // Если полученное оружие это Улу-Мулу if (weaponInstance == UluMulu) { // Вывести в zSpy строку "...true!" PrintDebugNpc(PD_ZS_DETAIL, "...true!"); // Есть причина не нападать return True; }; }; }; // Вывести в zSpy строку "...false!" PrintDebugNpc (PD_ZS_DETAIL, "...false!"); // Нет причины не нападать return False; }; /* -------------------------------------------------------------------------------- */ /* B_TolerateEnemy() */ /* -------------------------------------------------------------------------------- */ /* Функция задает поведение орков при обнаружении Npc с Улу-Мулу */ /* -------------------------------------------------------------------------------- */ /* slf - Npc к которому применяется поведение */ /* oth - Враг */ /* -------------------------------------------------------------------------------- */ func void B_TolerateEnemy(var C_Npc slf, var C_Npc oth) { // Вывести в zSpy строки "B_TolerateEnemy" PrintDebugNpc (PD_ZS_DETAIL, "B_TolerateEnemy"); //-------- Преследование орков -------- // Если Npc 'slf' - орк И дистанция между slf и oth больше 10 метров if (C_NpcIsOrc(slf)) && (Npc_GetDistToNpc(slf,oth) > HAI_DIST_ASSESSTOLERATEDENEMY) { // Вывести в zSpy строку "'self' это орк и находится очень близко" PrintDebugNpc (PD_ZS_DETAIL, "...'self' its Orc and close enough!"); // Локальная переменная для сохранения ID Npc var int npcInstance; // Сохраняем ID инстанции орка npcInstance = Hlp_GetInstanceID(slf); //-------- Ругаются -------- // Если Npc это "Охотник орков" ИЛИ "Воин орков 1" ИЛИ "Воин орков 2" if (npcInstance == OrcScout) || (npcInstance == OrcWarrior1) || (npcInstance == OrcWarrior2) { // Вывести в zSpy строку "self это другой орк" PrintDebugNpc (PD_ZS_DETAIL, "...'self' is another orc!"); // Если орк не находится в состоянии "Расстроенный" if !Npc_IsInState(slf, ZS_Upset) { // Вывестив zSpy строку "'self' еще не в состоянии ZS_FollowPC PrintDebugNpc (PD_ZS_DETAIL, "...'self' is not yet in ZS_FollowPC"); // Удаляем все AI команды из очереди Npc_ClearAIQueue (slf); // Перевод орка в рабочую стойку AI_StandUp (slf); // Перевод орка в состояние "Расстроенный" AI_StartState (slf, ZS_Upset, 1, ""); }; } //-------- Преследует -------- // Если Npc это "Клановый боец орков" else if (npcInstance == OrcWarrior3) { // Вывести в zSpy строку PrintDebugNpc (PD_ZS_DETAIL, "...'self' is orc Temple Warrior!"); // Если орк не находится в состоянии "Преследование ГГ" if !Npc_IsInState(slf, ZS_FollowPC) { // Вывести в zSpy строку "'self' еще не в состоянии ZS_FollowPC" PrintDebugNpc (PD_ZS_DETAIL, "...'self' is not yet in ZS_FollowPC"); // Удаляем все AI команды из очереди Npc_ClearAIQueue(slf); // Перевод орка в рабочую стойку AI_StandUp (slf); // Перевод орка в состояние "Преследование ГГ" AI_StartState (slf, ZS_FollowPC, 1, ""); }; }; }; };


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

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

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

Комментарии: 1

Автор: Piranha Bytes

Рейтинг: 0.0/0

Всего комментариев: 1

1. Neromont • 20:52, 19.04.2019
0

avatar У меня большие сомнения по функциям "C_ChargeWasAttacked()" & "B_TolerateEnemy()".

Если кто-нибудь сможет более точно прокомментировать эти функции, не оставайтесь пожалуйста в стороне.

Ответить
avatar
Информационное окноx