Это популярное сообщение. Malandrinus 624 Опубликовано 22 Ноября 2010 Это популярное сообщение. Поделиться Опубликовано 22 Ноября 2010 Проект X-Ray extensions Скрытый текст Представляет собой набор добавлений, расширяющих возможности движка для скриптёров, а также, в ряде случаев, меняющих поведение игры. Изменения реализованы в виде бинарных патчей библиотек и исполняемых файлов. Адрес проекта на Google Code Адрес проекта на GitHub (новый репозиторий) Документация одним файлом в chm формате по состоянию на 15 августа 2013 г. (собрана, отформатирована и скомпилирована @Kontro-zzz). Версии игры, поддерживаемые на данный момент: ТЧ (патч 1.0006): xrGame.dll, XR_3DA.exe, xrRender_R1/2 ЧН (патч 10): xrGame.dll, xrRender_R1/2/3 ЗП (патч 1.6.02): xrGame.dll, xrRender_R1/2/3/4 Скрытый текст svn хранилище не содержит оригинальных файлов игры. Не забывайте делать резервные копии перед заменой файлов игры! 12 12 1 8 Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/
Labadal 68 Опубликовано 6 Августа 2021 Поделиться Опубликовано 6 Августа 2021 2 минуты назад, naxac сказал: @Labadal , local wnd = level.get_trade_wnd() if wnd and wnd:IsShown() then level.start_stop_menu(wnd, true) end local wnd = level.get_trade_wnd() if wnd and wnd:IsShown() then level.start_stop_menu(wnd, true) end Вызываю функцию из диалога, ничего не происходит, есть идеи? @naxac Попробовал так: function trade_init() local wnd = level.get_trade_wnd() if wnd and wnd:IsShown() then level.start_stop_menu(wnd, true) end end При вызове из диалога - ничего не происходит. Полагаю, что IsShown() - проверка открыто окно или нет. Если правильно полагаю, тогда понятно почему ничего не происходит, ведь в момент вызова торговля не открыта. Попробовал так: function trade_init() local wnd = level.get_talk_wnd() if wnd and wnd:IsShown() then level.start_stop_menu(level.get_trade_wnd(), true) end end То есть проверяю открыто ли в данный момент окно разговора, чтобы вызвать торговлю, и при вызове ловлю следующий вылет: Скрытый текст Expression : assertion failed Function : CUIWindow::SetParent File : E:\stalker\sources\trunk\xr_3da\xrGame\ui\UIWindow.cpp Line : 634 Description : !(m_pParentWnd && m_pParentWnd->IsChild(this)) На этом идеи кончились, в какую сторону думать? God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1392044
UriZzz 1 004 Опубликовано 6 Августа 2021 Поделиться Опубликовано 6 Августа 2021 @Labadal но ведь одно окно открыто - окно диалога. Думаю, его нужно закрыть, а потом открывать другое. Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1392049
Labadal 68 Опубликовано 6 Августа 2021 Поделиться Опубликовано 6 Августа 2021 @UriZzz Думаешь, перед открытием окна торговли из окна диалога мне необходимо закрыть окно диалога? God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1392050
UriZzz 1 004 Опубликовано 6 Августа 2021 Поделиться Опубликовано 6 Августа 2021 @Labadal подозреваю. Вряд-ли получится открыть второе, если открыто первое. Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1392051
Labadal 68 Опубликовано 6 Августа 2021 Поделиться Опубликовано 6 Августа 2021 @UriZzz не-а, в любом случае ловлю вылет Скрытый текст Expression : assertion failed Function : CUIWindow::SetParent File : E:\stalker\sources\trunk\xr_3da\xrGame\ui\UIWindow.cpp Line : 634 Description : !(m_pParentWnd && m_pParentWnd->IsChild(this)) В общем, играясь, до меня неожиданно дошло, что в чс можно назначить горячую клавишу на открытие окно торговли с помощью параметра accel. Скрытый текст В файлах talk.xml и talk_16.xml найти тег button и вписать в конце тега accel="Ваша клавиша". А затем, замечательной функцией, имеющейся в X-Ray extensions, имитирующей события нажатия кнопки send_event_key_press(int<DIK_keys>) можно открыть торговлю, вызвав функцию через диалог. level.send_event_key_press(DIK_keys.DIK_mouse4) И что самое замечательное, почему-то если назначить кнопку mouse4 (другие mouse кнопки не пробовал) - то при попытке отрыть торговлю, самому нажав клавишу mouse4 - торговля не откроется, но если открывать вышеуказанной функцией - то откроется. То есть, можно исключить открытие торговли актором у других нпс, которым ты не хочешь выдавать возможность торговли. God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1392052
Labadal 68 Опубликовано 13 Августа 2021 Поделиться Опубликовано 13 Августа 2021 Всем привет, у меня такой вопрос. Допустим, есть некая функция: function f_name() local target = level.get_target_obj() if target and IsStalker(target) then local name = target:chracter_name() end end То есть, в переменную target мы поместили игровой объект и если этот объект - Сталкер, мы получаем его имя. Если вызывать из апдейта биндсталкер, все работает прекрасно, но если вызывать из файл: xr_motivator.script функция: function motivator_binder:death_callback(victim, who) То сама функция level.get_target_obj() работает как-то через раз. То есть, вызывая свою функцию из xr_motivator.script я подразумеваю, что она будет воспроизводиться всякий раз, когда гг убьёт непися. Так вот, при каждом убийстве непися актором, мне нужно получать имя убитого нпс. Но level.get_target_obj() в этом случае работает через раз, один раз возвращает объект и его имя, а другой - ничего. что подскажете, господа? God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1392624
Zander_driver 10 359 Опубликовано 13 Августа 2021 Поделиться Опубликовано 13 Августа 2021 7 минут назад, Labadal сказал: Но level.get_target_obj() в этом случае работает через раз Эта функция возвращает объект, на который смотрит ГГ. С учетом того, что пули в сталкере летят с вполне ограниченной скоростью, на момент смерти НПСа, ГГ вполне может смотреть уже мимо, т.к. некая доля секунды с момента выстрела пройдет. Поэтому и "через раз". ГГ мог вообще гранату бросать за угол не глядя, что вам тогда вернет get_target_obj ? ничего, естественно. Только непонятно, зачем такие сложности с get_target_obj и чего ради. 10 минут назад, Labadal сказал: function motivator_binder:death_callback(victim, who) Почему бы не взять непися прямо отсюда? motivator_binder это как бы биндер нпс. И у него-то ссылка на забинденный объект, (self.object) всегда в наличии. 1 1 Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1392627
Labadal 68 Опубликовано 13 Августа 2021 Поделиться Опубликовано 13 Августа 2021 @Zander_driver 43 минуты назад, Zander_driver сказал: ГГ мог вообще гранату бросать за угол не глядя, что вам тогда вернет get_target_obj ? ничего, естественно. А существует возможность сделать проверку, что нпс умер именно от гранаты? God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1392628
dsh 3 825 Опубликовано 13 Августа 2021 Поделиться Опубликовано 13 Августа 2021 В xray extensions есть before_hit коллбек или как он там называется. Вот в нем сохраняй, чем был нанесен последний хит и используй это в death_callback. 2 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1392635
Labadal 68 Опубликовано 14 Августа 2021 Поделиться Опубликовано 14 Августа 2021 @dsh А как получить то, чем был нанес последний хит перед тем, как сохранить? God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1392730
dsh 3 825 Опубликовано 14 Августа 2021 Поделиться Опубликовано 14 Августа 2021 (изменено) @Labadal там структура имеется, в которой есть соответствующие id. Возможно даже клиентские объекты, я уже не помню подробностей. @Labadal вот пример, где получается секция патронов, которыми был нанесен хит неписю https://github.com/dsh2dsh/op2ogse/blob/c9346e998b0ae700b20fb56f697a7d6be04213a0/gamedata/scripts/ogse_hitfx.script#L66 когда я ещё XE использовал. Изменено 14 Августа 2021 пользователем dsh 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1392737
Labadal 68 Опубликовано 15 Августа 2021 Поделиться Опубликовано 15 Августа 2021 @dsh Слушай, а ведь в мультиплеере, при убийстве показывает кого и из чего убил, нельзя использовать это, для определения оружия (или хотя бы типа хита), которым был убит нпс? God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1392886
Labadal 68 Опубликовано 25 Августа 2021 Поделиться Опубликовано 25 Августа 2021 Если я изменил в движке xrgame.dll (забиндил некоторые кнопки), как мне потом объединить его с XRE? Upd: я хочу перейти на движок 1.0007 со своими некоторыми правками, можно ли на него накатить XRE? Вот конкретней, что мне нужен. God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1394187
macron 1 912 Опубликовано 25 Августа 2021 Поделиться Опубликовано 25 Августа 2021 2 часа назад, Labadal сказал: Если я изменил в движке xrgame.dll (забиндил некоторые кнопки), как мне потом объединить его с XRE? Если правки были незначительные, допустим, несколько байт где-то, то обычно можно объединять. 2 часа назад, Labadal сказал: Upd: я хочу перейти на движок 1.0007 со своими некоторыми правками, можно ли на него накатить XRE? Нельзя, все байты другие. Разбираясь в хексе и зная нужное место из 1.0006, иногда можно найти аналогичное место в 1.0007 и вручную заменить конкретный байт для конкретной правки, если сильно повезет. Но вообще, кто компилирует движки из исходников обычно находят правки на разных репозиториях исходников, уже поправленных кем-то или делают сами. 2 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1394194
Labadal 68 Опубликовано 26 Августа 2021 Поделиться Опубликовано 26 Августа 2021 @macron А причем тут хекс? XRE ведь на ассемблере? А, все, дошло) Может, есть какой-то другой способ забиндить 6 кнопок, чтобы их можно было изменять в меню и остаться на XRE? God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1394200
macron 1 912 Опубликовано 5 Сентября 2021 Поделиться Опубликовано 5 Сентября 2021 26.08.2021 в 09:19, Labadal сказал: Может, есть какой-то другой способ забиндить 6 кнопок, Если шаришь в скриптах, то на XRE как-то можно скриптово кнопки биндить. Так, например, в OLR 2.5 клаксон работает. 26.08.2021 в 09:19, Labadal сказал: чтобы их можно было изменять в меню Ну это вообще "жырнота". 1 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1395274
Labadal 68 Опубликовано 22 Октября 2021 Поделиться Опубликовано 22 Октября 2021 @macron у меня забиндены через кейлоггер, но их, увы, не поменяешь) God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1399417
Labadal 68 Опубликовано 25 Ноября 2021 Поделиться Опубликовано 25 Ноября 2021 Всем привет! Возникла проблема, следующего рода: Я подключил ogse.dll, в _g.script следующим образом ------------------------------------------------------------------------------- -- OGSE.DLL -- ------------------------------------------------------------------------------- local dir = "$fs_root$" local ext_path = "bin\\extensions" local path = getFS():update_path(dir, ext_path) package.cpath = package.cpath..";"..path.."\\?.dll" local function IsDll(fname) return fname:sub(-4) == ".dll" end if type(init_external_libs) == "function" then init_external_libs() end if not lfs then fail("check lfs namespace") end for file in lfs.dir(path) do log1("file: "..file) if file ~= "." and file ~= ".." then if IsDll(file) then local mod = file:sub(1, -5) log1("--try to load " .. file) log1("fname: "..mod) local rez, msg = pcall(require, mod) if (not(not rez)) then log1("~~ loaded") else log1("!! error, msg : " .. tostring(msg)) end end end end ------------------------------------------------------------------------------- -- OGSE.DLL -- ------------------------------------------------------------------------------- В самое начало добавил RvP() - уже и не помню что это, но без него не работает. Суть такая, что на статике данная фишка работает. И только, в случае запуска не на статике имею следующий вылет: Expression : assertion failed Function : File : Line : 0 Description : extensions\ogse.dll Только сейчас проблему заметил, намекните, лечится? God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1403655
naxac 2 605 Опубликовано 11 Декабря 2021 Поделиться Опубликовано 11 Декабря 2021 (изменено) @Labadal , пробовал подключать либу указанным тобой способом, и у меня на любом рендере игра валится с таким логом. А ещё при этом постоянно вылазило окошко старфорса. Краш происходит на вызове init_external_libs(). Может, надо включить какие-то дополнительные правки в correction_list.ltx? Или exe'шник нужен лицензионный? Или ещё что? ogse.dll брал из dsh-мода, там же она, думаю, ничем от огсе'шной не отличается? Кто этим когда-нибудь занимался, поделитесь опытом пожалуйста. Изменено 11 Декабря 2021 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1405330
Labadal 68 Опубликовано 16 Декабря 2021 Поделиться Опубликовано 16 Декабря 2021 @naxac Я ещё установил какой-то пакет RvP, и в самом начале _g скрипта прописал RvP() - не помню, что это, но оно нужно. да, ogse.dll я сам брал из dsh мода. Нужна была функция, я кое-как подключил, спасибо dsh за советы. Моя задумка сработала, но потом я перешел на динамику, кое что потестить, и поймал вылет)) God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/10538-x-ray-extensions/page/82/#findComment-1406123
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти