Это популярное сообщение. Malandrinus 615 Опубликовано 8 Июля 2009 Это популярное сообщение. Поделиться Опубликовано 8 Июля 2009 (изменено) В данной теме собраны сведения по скриптовой модели сталкера: функции и классы, методы и свойства, взаимосвязь классов и последовательность работы с ними, связь работы классов и файлов конфигураций. К наполнению темы приглашаются все желающие. В наполнении темы непосредственно участвовали и существенно мне помогли: @Monnoroch, @Kolmogor, @Unnamed Black Wolf, @меченый(стрелок), @IQDDD, @Kirag, @Taroz, @dan, @7.9, @Garry_Galler, @AKKK1, @Bak и много других людей. Скрытый текст Скрытый текст класс alife_simulator. Базовые операции с серверными объектами. Пространства имён. Глобальные функции для большого числа задач. "Создание своего класса" и "Наследование от экспортированных классов". Базовые сведения об объектно-ориентированном программировании для сталкера. Необходимо прочитать, для понимания темы про биндер и некоторых других. В одном посте: Общие слова об архитектуре и скриптовой модели сталкера "Класс object_binder" расширение онлайновых объектов, колбеки, сохранение состояния. "Класс net_packet" Регистрация скриптовых классов с помощью object_factory Серверные классы. Часть 1 Иерархия серверных классов, описание не закончено. Серверные классы. Часть 2 Картинка структуры наследования и несколько заключительных слов Клиентские классы Скрытый текст Класс game_object Интерфейс ко всем онлайновым (клиентским объектам) Класс hit для нанесения урона скриптом и другая информация (IQDDD) Некоторая информация по управлению путями патрулирования здесь (Kirag) и здесь (Taroz) Неполная информация по управлению памятью неписей с примером здесь (Bak) Физическая оболочка объектов (Garry_Galler) Пост о выборе (подборе) оружия НПС и стрельбы (*Shoker*) Скрытый текст Управление заданиями Класс CGameTask и другие вспомогательные классы и функции. Управление инфопорциями Функции, колбеки, форматы файлов Список специальных системных инфопорций (Unnamed Black Wolf) Система профилей и алгоритм генерации имён. Форматы файлов, функции Дополнительная информация по параметрам профилей terrain_sect (Kolmogor) Диалоги. Часть 1 Форматы файлов, базовые сведения Диалоги. Часть 2 Скриптовые диалоги Диалоги. Часть 3 Тематическая подборка функций управления диалогами Скрытый текст Функции времени Тематическая подборка функций, связанных с управлением игровым временем. Класс CTime Вспомогательный класс для управления игровым временем Полезная скриптовая функция с использованием CTime (Garry_Galler) Скрытый текст class ini_file (меченый(стрелок)) Класс FS и CSavedGameWrapper Бинарный доступ к файлам, в том числе в игровых архивах, управление сохранёнными играми. Скрипт уровня. Забытая фишка с колбеком на заход на уровень Класс vector Некоторая полезная информация о разных вещах (меченый(стрелок)) "Класс render_device" Направление и положение камеры, характеристики экрана, программная пауза игры и др. Некоторая информация о различиях между ТЧ и ЗП в системе оконных классов и колбеков. (lekzd) Неплохо бы развить эту тему! Некоторая полезная информация о скриптовых функциях из модуля _g.script. (lekzd) Также требует развития! Полезные функции для работы с графом игры (Garry_Galler) В одном посте: Класс profile_timer Отладочные измерения скорости работы фрагментов программы Класс client_spawn_manager Колбек на выход в онлайн без использования биндера. Работа с консолью. Класс CConsole Анимации цвета. Класс color_animator Всякие моргающие элементы в окнах и пр. Управление постэффектами. Скриптовые постэффекты. Класс effector Класс sound_object. Проигрывание звуков в игре в произвольном месте, от произвольного объекта, в голове актора. Скрытый текст Оконные классы Некоторая общая информация о создании окон Список методов, XML-тегов и событий для оконных классов (ТЧ/ЧН/ЗП) (Norman Eisenherz) Представление материала в моих статьях оптимизировано для онлайнового просмотра. Если кому не хочется лазить по спойлерам, а нужно просмотреть текст какого-либо поста "потоком", то могу рекомендовать просмотр в режиме "текстовая версия". В этом же режиме удобно сохранять содержимое темы на диск. (прим. Malandrinus) Изменено 17 Февраля пользователем Опричник 5 5 16 Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/
Malandrinus 615 Опубликовано 11 Декабря 2011 Автор Поделиться Опубликовано 11 Декабря 2011 AndreySol, класс Frect - 6 переменных, ф-ция set инициализирует только 4. Какие из них ? Зачем две остальных. Как это использовать ? инициализируются соответственно x1,x2,y1,y2 lt - это left top, координаты левой верхней вершины rb - right bottom, координаты правой нижней вершины это объекты класса vector2, который экспортирован только начиная с ЧН. Поэтому в ТЧ попытка получить эти свойства приведёт к вылету. В их использовании особой необходимости по-любому нет. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-652384
SkyLoader 53 Опубликовано 11 Декабря 2011 Поделиться Опубликовано 11 Декабря 2011 (изменено) malandrinus, пост #102: function TestPP:finilize() end исправил ЗЫ: надо же, кто-то даже это читает Изменено 11 Декабря 2011 пользователем malandrinus Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-652443
Zander_driver 10 348 Опубликовано 12 Декабря 2011 Поделиться Опубликовано 12 Декабря 2011 Читают очень-очень многое... А вот то о чем я писал тут, так и не исправили. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-652663
Malandrinus 615 Опубликовано 12 Декабря 2011 Автор Поделиться Опубликовано 12 Декабря 2011 Да там давно надо весь пост про game_object переписывать. У меня накопилось много исправлений и дополнений, но всё руки не доходят это дело оформить. В первую очередь надо оформить пост с истинной иерархией классов, как серверных так и клиентских. Затем полную таблицу сетов (зарегистрированных в движке пар), затем только новый пост про game_object, где все функции рассортированы по этим классам. Найти бы время для всего этого. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-652693
KD87 720 Опубликовано 12 Декабря 2011 Поделиться Опубликовано 12 Декабря 2011 malandrinus, по game_object я подобное начал делать. Пока рассортировал методы по классам, около трети методов описал и проверил в игре. Могу выслать в качестве затравки, чтобы с нуля не пришлось начинать. Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-652805
Malandrinus 615 Опубликовано 13 Декабря 2011 Автор Поделиться Опубликовано 13 Декабря 2011 KD87, по game_object я подобное начал делать. Пока рассортировал методы по классам, около трети методов описал и проверил в игре. Могу выслать в качестве затравки, чтобы с нуля не пришлось начинать. Буду весьма признателен за любую помощь. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-652951
AndreySol 215 Опубликовано 16 Декабря 2011 Поделиться Опубликовано 16 Декабря 2011 Вопрос по содержимому нет-пакетов для различных игровых объектов: оружия, брони, пачек патронов, аномалий, неписей, аптечек, хлеба и др. и др. - параметры нет-пакетов разнятся для всех этих объектов ? Есть-ли где-то список этих параметров ? Я вот нашел на stalkerin.gameru.net ф-цию перепаковки неполных пачек патронов, в ней главный момент: function get_ammo_size(obj) local se_obj = alife():object(obj:id()) local packet = net_packet() cse_alife_item_ammo.STATE_Write(se_obj, packet) packet:r_seek(packet:w_tell() - 2) return packet:r_u16() end понятно, что по смещению packet:w_tell() - 2 находится кол-во патронов в пачке, значит есть описание этих параметров нет-пакетов ? Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-654071
KD87 720 Опубликовано 16 Декабря 2011 Поделиться Опубликовано 16 Декабря 2011 AndreySol, например - в acdc. В нем каждый package соответствует серверному классу. Логику чтения нет-пакета (порядок и формат параметров) смотри в методах state_read/update_read. Еще вариант - функции перепаковки нет-пакета из АМК мода, но там ограниченный набор классов. Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-654096
AndreySol 215 Опубликовано 17 Декабря 2011 Поделиться Опубликовано 17 Декабря 2011 В описании класса CUIStatic: void SetColor(DWORD color); // фон DWORD GetColor() const; эти методы класса рабочие ? такой код не дает эффекта: local color = GetARGB(255,255,255,255) st_item:SetColor(color) Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-654526
Malandrinus 615 Опубликовано 17 Декабря 2011 Автор Поделиться Опубликовано 17 Декабря 2011 AndreySol, такой код не дает эффекта: local color = GetARGB(255,255,255,255) st_item:SetColor(color) прозрачность 100% задал, конечно не работает Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-654553
AndreySol 215 Опубликовано 17 Декабря 2011 Поделиться Опубликовано 17 Декабря 2011 local color = GetARGB(0,255,255,255) st_item:SetColor(color) так то-же нет толку. Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-654554
Полтергейст 38 Опубликовано 23 Декабря 2011 Поделиться Опубликовано 23 Декабря 2011 По поводу коллбеков: 1. Коллбеки типа callback.sound перехватывают звуки только от сталкеров, монстров, игрока и детекторов. 2. Есть кое-какие предположения насчет коллбеков action_animation, action_movement, action_object, action_particle, action_sound и action_watch. Если посмотреть в lua_help на описание функций set_action() из класса entity_action, то становится понятно, что они нужны для отслеживания действий монстров. Для остальных объектов они, скорее всего, работать не будут. Вот только нет примеров использования. Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-656254
Полтергейст 38 Опубликовано 27 Декабря 2011 Поделиться Опубликовано 27 Декабря 2011 Есть одна очень хорошая новость. Судя по тому, что я накопал, в lua_help добавлены не все экспортируемые функции и классы. Например, функция CALifeMonsterBrain.can_choose_alife_tasks(bool) экспортирована в скрипты не только в ЧН и ЗП, но и в ТЧ. Только что проверил - никаких вылетов при вызове этой функции нет. Вполне возможно, что есть и другие функции, которые можно использовать, но они не описаны в lua_help. Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-657253
Andrey07071977 18 Опубликовано 28 Декабря 2011 Поделиться Опубликовано 28 Декабря 2011 (изменено) Полтергейст, интересная находка, выкладывай что накопаешь. Если можно несколько примеров - как тестировал, использовал. Изменено 28 Декабря 2011 пользователем Andrey07071977 Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-657314
*Shoker* 322 Опубликовано 30 Декабря 2011 Поделиться Опубликовано 30 Декабря 2011 (изменено) > Судя по тому, что я накопал, в lua_help добавлены не все экспортируемые функции и классы А существует ли возможность определить, глядя на dll, какая функция была импортирована? Мне вообще казалось lua_help генерируется автоматом, а не вручную забивается. Изменено 1 Января 2012 пользователем ColR_iT Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-657913
Полтергейст 38 Опубликовано 30 Декабря 2011 Поделиться Опубликовано 30 Декабря 2011 А существует ли возможность определить, глядя на dll, какая функция была импортирована? Обычно функции, которые выведены в скрипты, перечисляются в dll-ке открытым текстом примерно через одинаковое расстояние (по символам). Примерно так эта функция и была обнаружена - в dll её имя прописано рядом с именами других функций этого класса. Также имена некоторых функций и классов (в т.ч. и неэкспортированных) можно найти в сообщениях, предназначенных для вывода в лог при ошибке. Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-657978
Dennis_Chikin 3 665 Опубликовано 7 Января 2012 Поделиться Опубликовано 7 Января 2012 Наверное сюда вопрос: правильно ли я понимаю, что npc:critically_wounded() возращает не false/nil примерно на время, когда проигрывается анимация ранения ? Что она вообще такое на самом деле ? а npc:wounded() - это когда хиты непися ушли за некое пороговое значение (и кстати вот здесь примерно он должен лечь совсем ?) Как оно связано с конфигами ? 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-661009
abramcumner 1 229 Опубликовано 7 Января 2012 Поделиться Опубликовано 7 Января 2012 правильно ли я понимаю, что npc:critically_wounded() возращает не false/nil примерно на время, когда проигрывается анимация ранения ? Что она вообще такое на самом деле ? Да, true выдается во время проигрывания анимации ранения, остальное время false Зависит от значений конфига critical_wound_threshold и critical_wound_decrease_quant. Если critical_wound_threshold меньше 0, анимации не проигрываются. Для определения момента начала проигрыша анимации заводится счетчик. Он увеличивается при каждом хите на итоговый power хита, и каждую секунду уменьшается на critical_wound_decrease_quant. Когда значение счетчика больше или равно critical_wound_threshold, стартует анимация. Анимация проигрывается в зависимости от кости, в которую попали последний раз. а npc:wounded() - это когда хиты непися ушли за некое пороговое значение (и кстати вот здесь примерно он должен лечь совсем ?) Как оно связано с конфигами ? С конфигами никак не связано. Устанавливается исключительно из скриптов, в движке никак не задается, но используется. Пороговые значения задаются в xr_wounded.script 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-661098
Viнt@rь 50 Опубликовано 8 Января 2012 Поделиться Опубликовано 8 Января 2012 (изменено) всем известно, что в ТЧ была функция level.main_input_receiver(), а уже в ЧН/ЗП ее нет, где то видел писали, что AddToRender() выполняет такие же(ну или почти такие же) действия, что и level.main_input_receiver(), хотелось бы узнать правда ли это и как ее использовать? Изменено 8 Января 2012 пользователем Viнt@rь GUI для конвертера от бардака(всего и вся в форматы сдк) Полезный утиль-"Utilits pack(mod)" Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-661228
_Призрак_ 11 Опубликовано 8 Января 2012 Поделиться Опубликовано 8 Января 2012 Не те же, на сколько я знаю. При помощи AddToRender() можно присобачить элемент на экран, но есть 2 но 1. Элемент будет всегда под худом/инвентарем/пда 2. Элемент не может взаимодействовать с ГГ (кнопки/табы/списки таким образом сразу исключаются) Получается что все что возможно - это статик приаттачить к экрану Freedom Ссылка на комментарий https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/page/18/#findComment-661296
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти