1. Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, сыграть в увлекательные ФРПГ, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
    Скрыть объявление
  2. Форум аддона "Возвращение" 2.0:
    — Обсудить игру, почитать о прохождениях и/или разрешить свои вопросы по игре вы можете в одной из тем одноименного форума. Посетить...
    — Прочитать историю изменения и/или скачать последнюю версию аддона "Возвращение", вы можете на страницах наших ресурсов. Скачать...
    Скрыть объявление

AST Release build - Описание функций

Тема в разделе "Уpоки AST", создана пользователем Gratt, 11 сен 2016.

  1. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    791
    Благодарности:
    829
    Баллы:
    135
    Пол:
    Мужской
    ___ 001-002 _______________________________________________________________

    AST

    Скриптовые функции:

    Открыть спойлер
    // Покадровый цикл. Вызывается движком.
    void MainLoop();

    // ItArmor: Новый слот для экипировки предметов (изначально для фонарей)
    wear = WEAR_PELVIS;

    // Возвращает true в момент удерживания указанной кнопки
    int KeyPress(int);

    // Возвращает true в момент нажатия на указанную кнопку
    int KeyClick(int);

    // Возвращает предмет C_ITEM по ссылке int
    instance Hlp_GetItem(int);

    // Меняет локацию на string и перемещает npc на вейпоинт string
    string Wld_ChangeLevel(string,string);

    // Создает визуальный эффект string из сущности string в сущность string, слоем эффекта int, задает силу урона int, типом урона int, скоростью int
    void Wld_PlayEffectVob(string,string,string,int,int,int,int);

    // Устанавливает скорость анимации string для instance со значением float (default 25)
    float Mdl_SetAniFps(instance,string,float);

    // Изменяет скорость всех анимаций сущности instance на значение float
    float Mdl_SetAniFpsAll(instance,float);

    // Определяет, активна ли анимация string у сущности instance
    int Hlp_AnimationIsActive(instance,string);

    // Задает логическое значение int на отображение модели сущности instance
    void Mdl_ShowVisual(instance,int);

    // Экипирует сущность inctance предметом int
    void Npc_EquipItem(instance,int);

    // Выводит на экран окно сообщения с текстом string и заголовком string
    void Hlp_MessageBox(string,string);

    // Получает параметр расширенного массива AI переменных для instance с индексом int
    int Hlp_GetAIVar(instance,int);

    // Задает параметр AI переменной для instance по индексу int со значением int
    void Hlp_SetAIVar(instance,int,int);

    // Открывает используемую сумку
    void Hlp_OpenPocket();

    // Получает нпс в фокусе instance
    instance Hlp_GetFocusNpc(instance);

    // Получает воб в фокусе instance
    instance Hlp_GetFocusVob(instance);

    // Определяет, имеет ли персонаж instance в фокусе объект
    int Hlp_HasFocusVob(instance);

    // Получает имя объекта в фокусе instance

    string Hlp_GetFocusVobName(instance);

    // Устанавливает персонажа instance как hero
    void Npc_SetAsPlayer(instance);

    // Ломает контейнер с именем string
    void Mob_Destroy(string);

    // Удалить из сундука string предмет int в количестве int
    void Mob_RemoveItem(string,int,int);

    // Получает размер строки замка сундука с именем string
    int Mob_GetCombLength(string);

    // Устанавливает логическое значение int, будет ли сундук string заперт
    void Mob_SetLocked(string,int);

    // Присваивает сундуку string ключ string
    void Mob_SetKeyInstance(string,string);

    // Присваивает сундуку string код для вскрытия (LRRLR)
    void Mob_SetPickLockStr(string,string);

    // Открывает инвентарь персонажа в фокусе hero
    void Npc_OpenSteal();

    // Выводим на экран текст string в точку x int, y int, шрифтом string, на время float, цветом int
    int AI_PrintText(string,int,int,string,float,int);

    // Кастует заклинание int для персонажа instance
    int AI_CastSpell(instance,int);

    // Возвращает состояние квеста string в дневнике
    int Log_GetTopicStatus(string);

    // Возвращает строку режима ходьбы для персонажа instance
    string Hlp_GetWalkModeString(instance);

    // Добавляет новое соответствие ножнам от оружия с флагом int в слот string
    void AI_ScbAddDummy(int,string);

    // Удаляет соответствие ножен относительно флага int из слота string
    void AI_ScbRemoveDummy(int,string);

    // Очищает список соответствий для ножен
    void AI_ScbClearAllDummy();

    // Устанавливает слот string колчана для луков
    void AI_QvrSetBowSlot(string);

    // Устанавливает слот string колчана для арбалетов
    void AI_QvrSetCrossBowSlot(string)

    // Сделать скриншот
    void ScreenShot();



    SDK / C++ methods
    Открыть спойлер

    // Создание статусбара в одну строчку
    class BAR
    Открыть спойлер
    static BAR* CREATE(zSTRING sTexName, int nX, int nY, int nSizeW, int nSizeH) // Создает бар
    BAR* POS(int nX, int nY) // Изменяет положение бара
    BAR* SIZE(int nSizeW,int nSizeH) // Изменяет размер бара
    BAR* ALPHA(int nA) // Устанавливает прозрачность активного слоя
    BAR* BLEND(zTRnd_AlphaBlendFunc mB) // Задает метод смешивания цветов
    BAR* LAYER(zSTRING sTexName,int nMin,int nMax) // Добавляет новый слой

    // Контейнер таймеров
    class aCTimer
    Открыть спойлер
    void Attach() // Привязка контейнера к рабочему циклу (точка возврата)
    int Tick/operator()(int nId,int nDelay,int nType) // Отслеживать таймер nId
    aCTimer* New(int nId) // Создать новый экземпляр контейнера внутри таймера nId
    bool Exist(int nId) // Проверка существования таймера nId
    void Delete(int nId) // Принудительно удалить таймер nId
    int GetTPS() // Получает производительность цикла
    static int GetTime() // Получает системное время (в миллисекундах)
    force(aCTimer(nId)) // Цикл восстановления пропущенных итераций

    // График производительности
    class aCGFC
    Открыть спойлер
    static void Attach() // Привязывает график к циклу
    static void Register(int nDelay, int* nParm, zSTRING sName, zCOLOR mGphColor) // Отслеживать значение
    static int SwitchEnable() // Включает/отключает график
    static int SwitchVisible() // Включает/отключает отображение

    // Система определения силы освещения npc
    class aCLightVis
    Открыть спойлер
    static int GetIntensity(oCNpc* pNpc) // Получает интенсивность освещения npc от источников света

    // Колчаны
    class aCQuiver
    Открыть спойлер
    Колчаны активируются при условии, что имеются файлы стандартных моделей с именами:
    IT_DefBowQuiver.asc и IT_DefCBowQuiver.asc.

    Для корректной вставки стрел в колчан, модель должна иметь вспомогательные кости с ZS_Help00 по ZS_Help30 (не обязательно иметь все!)

    Для использования ПОЛЬЗОВАТЕЛЬСКИХ колчанов, в инстанциях оружий необходимо прописать соответствующие имена моделей в строку visual_change!!!

    static void InitAll() // Инициализирует колчаны всем npc
    static void Reload(oCNpc* pNpc) // Обновить содержимое колчана для npc
    static void Call(oCNpc* pNpc) // Событие вызывает метод экипировки для npc
    static void SetBowSlot(zSTRING sSlot) // Устанавливает слот колчана для луков
    static void SetCrossBowSlot(zSTRING sSlot) // Устанавливает слот колчана для арбалетов

    // Ножны
    class aCScabbard
    Открыть спойлер
    Для использования ПОЛЬЗОВАТЕЛЬСКИХ ножен, в инстанциях оружий необходимо прописать соответствующие имена моделей в строку visual_change!!!

    static void InitAll() // Инициализирует ножны всем npc
    static void Call(oCNpc* pNpc) // Вызывает событие экипировки ножен для npc
    static void AddDummy(int nFlag,zSTRING sSlot) // Добавляет шаблон слота экипировки для типа nFlag
    static void RemoveDummy(int nFlag,zSTRING sSlot) // Удаляет шаблон
    static void ClearAllDummy() // Удаляет все шаблоны

    очень важно!
    Метод AddDummy определяет удобную систему экипировки ножен для нескольких однотипных оружий.
    Например, если мы используем дуалы, то необходимо дважды проинициализировать один и тот же тип оружия:

    aCScabbard::AddDummy(zITEM_SWD,"ZS_SWD_SCB01"); // Определяем слот для первого меча
    aCScabbard::AddDummy(zITEM_SWD,"ZS_SWD_SCB02"); // А этот слот будет определять метод вставки для второго меча (дуала)
    аналогично делается со всеми остальными типами оружий..

    // Класс перехвата буфера изображений
    class aCScreenShot
    Открыть спойлер
    static void Create() // Сохраняет скриншот

    // Включает/отключает некоторые модули
    class aCModConfig
    Открыть спойлер

    static BOOL SystemData // Вывод системного времени и фпс
    static BOOL PostLoadScreen; // Плавное появление экрана после загрузки
    static BOOL DefScreenShootBind // Стандартный бинд скриншота
    static BOOL Scabbards // Ножны
    static BOOL Quivers // Колчаны
    static BOOL Diagrams // Графики

    // Указывает функции, которые должны вызываться при определенных событиях из списка
    class CCallBack
    Открыть спойлер
    static void Begin();// Старт инициализации хуков
    static void Attach(PVOID *pPoint, PVOID pDetour); // Перехватывает функцию pPoint и вызывает функцию pDetour
    static void End(); // Заканчивает прием хуков и регистрирует их
    static void FastAttach(PVOID *pPoint, PVOID pDetour); // Регистрирует функцию без нужны в Begin-End
    static void AddCallback(PVOID *pPoint, void* pDetour); // Если желаемая функция была зарегистрирована, данный метод позволяет добавить еще одну в вызываемый список
    static zCArray<void*(__fastcall*)(void*)> * GetCallbackList(int nAddr); // Возвращает список вызываемых функций для данной
    static void AttachWithoutHook(int nIdx, void* func); // Регистрирует функцию без ее перехвата и позволяет создавать относительно нее список вызываемых
    static bool IsExist(int addr); // Перехвачена ли данная функция

    // Инициализирует независимые циклические функции
    class aCTriggerFunc
    Открыть спойлер
    Замечание: инициализированная функция может принимать указатель на ее триггер-объект в классе ( void MyTriggerFunc(aCTriggerFunc* pThisTrigger); )
    void Destroy(); // Удаляет триггер-функцию
    static aCTriggerFunc* RegisterFunc(LPVOID,int = 100,T_MODE = T_LINEAR,T_CYCTYPE = T_CYCLINEAR); // Создает новую триггер-функцию по: Указатель, задержка, режим таймера (обычный, первичный, точный), режим цикла (обычный, восстановление итераций)
    static BOOL RemoveFunc(LPVOID); // Находит и удаляет один из методов, соответствующего данной функции

    // Вызывает месседж бокс с текстом и заголовком окна
    void MsgBox (zSTRING,zSTRING);









    ___ 003+ _______________________________________________________________


    SDK / C++ methods


    gray color indicates the methods that aren't recommended for use in the plugin.



    class _AST_CONFIGURATION_MANAGER, _CFG
    Открыть спойлер

    _BIT_ARRAY _AST_CONFIG; // 4 byte array
    void EnableParm (_TConfig_Parm); // Enable option
    void DisableParm (_TConfig_Parm); // Disable option
    BOOL HasParm (_TConfig_Parm); // Check option

    enum _TConfig_Parm:
    Открыть спойлер
    _CF_DRAW_SYSTEM_TIME
    _CF_DRAW_POSTLOAD_SCREEN
    _CF_SCREENSHOT_HOTKEY_F12
    _CF_SCABBARDS
    _CF_QUIVERS
    _CF_DIAGRAMS




    class CCallBack
    Открыть спойлер
    int GetLastMethod(int); // Finds the last method from the hook hierarchy
    BOOL IsHooked(int); // Determines whether the method is hooked
    zCArray<PFUNC> GetSortHierarchy(int); // Gets full list of hooks at address
    void OutFullHookList(); // Creates a window with all hooks
    CHookData& Attach(PFUNC, PFUNC, int) // Attach and return hook-data
    void Attach(CHookData&) // Attach from hook-data
    void Apply() // Apply all hooks



    template <class T>
    class CInvoke
    Открыть спойлер

    CInvoke(int, PFUNC, BOOL) // creates a pointer, reverse func, hookable
    operator T() // returns a valid pointer to func


    class CHookInfo
    Открыть спойлер
    FUNC Pointer // Detour pointer to func
    PFUNC Detour // Reverse func
    PFUNC Original // Original G2 pointer


    class CScreenShot
    Открыть спойлер
    static void Create() // Creates and saves the screenshot


    class CTimer
    Открыть спойлер
    CTimer()
    CTimer* New(int timer_id) // Creates a block of timers in the physical timer
    bool Exist(int timer_id) // Check existence of the timer
    void Delete(int timer_id) // Remove the physical timer by id
    void Attach() // Binds the head block of timers to cycle
    int Tick(int timer_id, int delay = 0, T_MODE startup = 0) // Creates and monitors the physical timer
    int operator()(int,int = 0, T_MODE = 0) // == Tick
    int GetTPS() // Gets cycle performance
    static int GetTime() // Gets the system time
    ~CTimer();

    T_MODE
    Открыть спойлер
    T_LINEAR
    T_PRIMARY
    T_EXACT




    class CQuiver

    class CScabbard

    class
    CDynamicBar

    class
    CLightDetector

    class
    CDiagram

    class
    CTriggerFunc

    class
    CApplication

    class
    CLoadScreen

    class
    CMEssage, Message, Say

    class
    CConsoleExtender

    class
    CSplash
    Открыть спойлер
    static void SetHandle(HPLUGIN = 0, IRESOURCE = 0) // Send module information and resource id.
    void CreateProc() // Creates the window for object of class
    void RemoveProc() // Destroy the window

     
    Последнее редактирование: 16 янв 2017

Поделиться этой страницей