Перейти к контенту

Справочник по функциям и классам


Рекомендуемые сообщения

AndreySol,

класс Frect - 6 переменных, ф-ция set инициализирует только 4. Какие из них ? Зачем две остальных. Как это использовать ?

инициализируются соответственно x1,x2,y1,y2

lt - это left top, координаты левой верхней вершины

rb - right bottom, координаты правой нижней вершины

это объекты класса vector2, который экспортирован только начиная с ЧН. Поэтому в ТЧ попытка получить эти свойства приведёт к вылету. В их использовании особой необходимости по-любому нет.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

malandrinus, пост #102:

function TestPP:finilize()

end

 

исправил

ЗЫ: надо же, кто-то даже это читает

Изменено пользователем malandrinus
Ссылка на комментарий

Читают очень-очень многое...

А вот то о чем я писал тут, так и не исправили.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Ссылка на комментарий

Да там давно надо весь пост про game_object переписывать. У меня накопилось много исправлений и дополнений, но всё руки не доходят это дело оформить. В первую очередь надо оформить пост с истинной иерархией классов, как серверных так и клиентских. Затем полную таблицу сетов (зарегистрированных в движке пар), затем только новый пост про game_object, где все функции рассортированы по этим классам. Найти бы время для всего этого.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий
malandrinus, по game_object я подобное начал делать. Пока рассортировал методы по классам, около трети методов описал и проверил в игре. Могу выслать в качестве затравки, чтобы с нуля не пришлось начинать.
Ссылка на комментарий

KD87,

по game_object я подобное начал делать. Пока рассортировал методы по классам, около трети методов описал и проверил в игре. Могу выслать в качестве затравки, чтобы с нуля не пришлось начинать.

Буду весьма признателен за любую помощь.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Вопрос по содержимому нет-пакетов для различных игровых объектов: оружия, брони, пачек патронов, аномалий, неписей, аптечек, хлеба и др. и др. - параметры нет-пакетов разнятся для всех этих объектов ? Есть-ли где-то список этих параметров ?

Я вот нашел на 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 находится кол-во патронов в пачке, значит есть описание этих параметров нет-пакетов ?

Ссылка на комментарий
AndreySol, например - в acdc. В нем каждый package соответствует серверному классу. Логику чтения нет-пакета (порядок и формат параметров) смотри в методах state_read/update_read. Еще вариант - функции перепаковки нет-пакета из АМК мода, но там ограниченный набор классов.
Ссылка на комментарий

В описании класса CUIStatic:

void SetColor(DWORD color); // фон

DWORD GetColor() const;

эти методы класса рабочие ?

такой код не дает эффекта:

local color = GetARGB(255,255,255,255)
st_item:SetColor(color)

Ссылка на комментарий

AndreySol,

такой код не дает эффекта:

local color = GetARGB(255,255,255,255)
st_item:SetColor(color)

прозрачность 100% задал, конечно не работает

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

По поводу коллбеков:

1. Коллбеки типа callback.sound перехватывают звуки только от сталкеров, монстров, игрока и детекторов.

2. Есть кое-какие предположения насчет коллбеков action_animation, action_movement, action_object, action_particle, action_sound и action_watch. Если посмотреть в lua_help на описание функций set_action() из класса entity_action, то становится понятно, что они нужны для отслеживания действий монстров. Для остальных объектов они, скорее всего, работать не будут. Вот только нет примеров использования.

Ссылка на комментарий

Есть одна очень хорошая новость. Судя по тому, что я накопал, в lua_help добавлены не все экспортируемые функции и классы. Например, функция CALifeMonsterBrain.can_choose_alife_tasks(bool) экспортирована в скрипты не только в ЧН и ЗП, но и в ТЧ. Только что проверил - никаких вылетов при вызове этой функции нет. Вполне возможно, что есть и другие функции, которые можно использовать, но они не описаны в lua_help.

Ссылка на комментарий
Полтергейст, интересная находка, выкладывай что накопаешь. Если можно несколько примеров - как тестировал, использовал. Изменено пользователем Andrey07071977
Ссылка на комментарий

> Судя по тому, что я накопал, в lua_help добавлены не все экспортируемые функции и классы

 

А существует ли возможность определить, глядя на dll, какая функция была импортирована?

Мне вообще казалось lua_help генерируется автоматом, а не вручную забивается.

Изменено пользователем ColR_iT

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий
А существует ли возможность определить, глядя на dll, какая функция была импортирована?

Обычно функции, которые выведены в скрипты, перечисляются в dll-ке открытым текстом примерно через одинаковое расстояние (по символам). Примерно так эта функция и была обнаружена - в dll её имя прописано рядом с именами других функций этого класса. Также имена некоторых функций и классов (в т.ч. и неэкспортированных) можно найти в сообщениях, предназначенных для вывода в лог при ошибке.

Ссылка на комментарий

Наверное сюда вопрос:

правильно ли я понимаю, что npc:critically_wounded() возращает не false/nil примерно на время, когда проигрывается анимация ранения ? Что она вообще такое на самом деле ?

 

а npc:wounded() - это когда хиты непися ушли за некое пороговое значение (и кстати вот здесь примерно он должен лечь совсем ?)

 

Как оно связано с конфигами ?

 

 

  • Нравится 1
Ссылка на комментарий
правильно ли я понимаю, что 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
Ссылка на комментарий

всем известно, что в ТЧ была функция level.main_input_receiver(), а уже в ЧН/ЗП ее нет, где то видел писали, что AddToRender() выполняет такие же(ну или почти такие же) действия, что и level.main_input_receiver(), хотелось бы узнать правда ли это и как ее использовать?

Изменено пользователем Viнt@rь
Ссылка на комментарий

Не те же, на сколько я знаю. При помощи AddToRender() можно присобачить элемент на экран, но есть 2 но

1. Элемент будет всегда под худом/инвентарем/пда

2. Элемент не может взаимодействовать с ГГ (кнопки/табы/списки таким образом сразу исключаются)

Получается что все что возможно - это статик приаттачить к экрану

Freedom

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
  • Куратор(ы) темы:

×
×
  • Создать...