Все посты %s в %S - AMK Team
Перейти к контенту

X-Ray extensions


Malandrinus

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

В 18 релизе db.actor:set_actor_float() походу не работает... Нашел позицию в памяти параметра прыжка - 1444, установил значение в 20, вот так: db.actor:set_actor_float(nil, 20, 1444), но в игре никаких изменений. Кто-нибудь пробовал юзать этот метод?

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

malandrinus, пардон, немного поспешил.

log1(db.actor:get_actor_float(1444))
db.actor:set_actor_float(nil, 20.5, 1444)
log1(db.actor:get_actor_float(1444))

Выдает:

6
20.5

Всё вроде правильно, значение в памяти меняется, но почему-то в игре по прежнему ГГ прыгает на высоту 6.

Не знаешь, может еще что-то надо сделать для того чтобы новые параметры вступили в силу? Может колбеки какие включить (как в случае с клавишами)?

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

malandrinus, специально для теста сделал значение параметра прыжка jump_speed = 7.1234 и прокрутил цикл 100000 раз.

Из этих всех позиций, только у:

Float = 7.1234002113342
Position = 1444

такое адекватное значение. Больше никакие не подходят.

Также спросил у знакомого, у него прыжок тоже на позиции 1444. Странно почему не хочет меняться.

А с переносимым весом вообще темный лес. Пробовал цикл до миллиона, ничего не нашло, даже похожего.

 

P.S. в паке на ТЧ оказывается нет flush1()... А так бы пригодилась.

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение
malandrinus, возможно ли сделать метод изменения максимально-переносимого веса ГГ? Через метод get_actor_float\int найти ничего не удалось, сканировал около 1000000 позиций в памяти, веса не нашел. Хотелось бы увидеть нормальный метод.

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

malandrinus, я нашел один баг с топливом, баг скорее всего еще от пыс - после сейв\лоада количество топлива пополняется полностью. Т.е. сколько бы не проехали, засейвились, после лоада у нас снова полный бак. Я скриптами частично вылечил, но в определенных случаях топливо всё равно пополнится.

Поправь в следующем релизе, если сможешь.

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

[error]Expression    : assertion failed
[error]Function      : CALifeSimulator__release
[error]File          : deep deep in space
[error]Line          : 666
[error]Description   : Object to release is a zero pointer

Доставило :D

Вообщем, не шутите с удалением объектов...

 

P.S. Кстати консольная команда hud_adjust_mode только у меня не работает?

Изменено пользователем Shadows
  • Полезно 1

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

Чтобы регулировать угол наклона дождя, в ТЧ например нужно увеличивать wind_velocity на 1000. Тогда изменения будут заметны. В билдах домножение было не нужно, хватало и единицы.

Но это в ТЧ, про ЗП ничего не могу сказать.

 

malandrinus, возможно ли появление в проекте таких методов, как скрытие\показ курсора мыши (в различных меню) и свободный аттач предметов на ГГ (на НПС можно вешать неограниченное количество)? Сейчас на ГГ можно вешать лишь один предмет на классе фонарика, и то если он в слоте...

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

malandrinus,

А зачем может понадобиться скрывать курсор?

Ну например если запустить туториал в каком-нибудь меню, то курсор не исчезнет... Вообще, при наличии хорошей фантазии применение найдется :)

Имхо, методу самое место в пространстве level.

 

Это для вида от третьего лица? Признаться, никогда этот режим не любил. В сталкере же он особенно кривой и неинтересный.

С правкой от SkyLoader, режим вполне играбельный становится.

 

AK-103, на НПС удалось несколько предметов навешать (причем класс фонарика необязателен). Там видимо, такого ограничения как у ГГ нет.

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение
malandrinus, в версии проекта на ЗП увидел, что были сделаны попытки по возвращению консольной команды hud_fov - расстояние худа оружия до камеры (полезная вещь из билдов). Однако код закоменчен. Можно ли ждать доработку кода и реализацию его на ТЧ?

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

malandrinus,

Для fov под ТЧ есть функции вместо консольной команды.

Да я знаю про них, но это не то. Это установка угла обзора камеры. А hud_fov - это установка расстояния от камеры до худа оружия от первого лица. Т.е. это совсем разные вещи.

Такая консольная команда была и в билдах, см. билд 2205 например (а также в более старых).

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

Rolan, неправильно выдается инфо при открытии вкладки Карта в КПК; не всегда почему-то корректно срабатывают проверки obj:is_...() (но это еще надо уточнить, конкретно под подозрением is_weapon() и is_outfit()); частенько у меня глючил метод перемещения предмета с пояса в инвентарь (перемещал в цикле сразу несколько предметов, фактически "снимал пояс" в рюкзак). Вроде больше ничего не заметил.

 

Еще бы хотелось метод на проверку того, что объект серверный. А также забыли добавить метод проверки вертушки is_helicopter() :)

 

malandrinus, возможно ли как-то получать значения из другого бинарника? Например в экзешнике зашиты некоторые команды, например hud_fov оружия. Возможно ли получать значение этой команды и устанавливать его с помощью консольной команды в xrGame?

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

malandrinus, хотелось бы узнать, что делают методы get_car_shift(), get_id(), test_str(), cast_inventory_box() и is_inventory_box1()? По второму - вроде же итак была стандартная функция obj:id()...

Также heal_wounds() на ГГ не действует... Только для НПС менять скорость кровотечения можно?

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

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение
malandrinus, можно ли как-то из другого бинарника получить значение переменной? В частности нужно импортировать значение hud_fov из экзешника... Сам адрес известен.

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение
malandrinus, возможно ли в следующих ревизиях увидеть функцию с регистрацией консольных команд со значением 1/0, on/off? Самому мне пока не получилось сделать.

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

В 33 ревизии не хватает довольно большого количества функций, при сборке жалуется на это. Можно конечно лишнее отрубить, но хотелось бы полный комплект :)

 

 

UPD2: смотрю развитие проекта идет в основном на ТЧ, а что с ЗП?

Ну там же по коду можно посмотреть, какие изменения вносились в ту или иную версию. Но в основном да - проект для ТЧ.

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

malandrinus, попробовал добавить отсутствующий метод определения объекта как вертолет (obj:is_helicopter()):

xrgame_stubs

org 105558A0h - shift
off_105558A0 dd ?

В движке:

.data:105558A0 off_105558A0	dd offset off_10459240 ; DATA XREF: 00000000101DFD4Eo
.data:105558A0										; 000000001027B0BEo ...
.data:105558A4				 align 8
.data:105558A8 a_?avcse_alifeh db '.?AVCSE_ALifeHelicopter@@',0
.data:105558C2				 align 4
.data:105558C4 off_105558C4	dd offset off_10459240 ; DATA XREF: .rdata:104F3534o
.data:105558C4										; .rdata:off_104F3554o

 

game_object_castings

MAKE_CASTING2 CScriptGameObject__CHelicopter, off_105558A0

и

MAKE_CHECK_FUN CScriptGameObject__IsHelicopter		 , CScriptGameObject__CHelicopter

 

game_object_fix

PERFORM_EXPORT_BOOL__VOID CScriptGameObject__IsHelicopter,		 "is_helicopter"

В игре метод появился, но работать не хочет.

Может место врезки не то выбрал?

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

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

Сталкер Лом, по поводу трамплина - в ТЧ это можно реализовать без правок движка. Достаточно лишь увеличить импульс у аномалии в 10 раз. Только аномалия будет реагировать на объекты под физикой. Живого ГГ швырять не будет. Подробнее смотри например в "Shadows Addon".

 

А на счет дверей машин - интересный вопрос. Неплохо было бы увидеть на ТЧ,

 

 

malandrinus,

здесь ты не место врезки выбираешь, а вид макроса и значение его аргумента.

Хм. Я другого не нашел. Смотрел по аналогии как определялась машина, ссылка была примерно в том же месте.

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

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

level_input_fix.asm никто не подскажет, что делает данная правка?(ЗП)

Актору добавлен колбек на нажатие клавиши.

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

7.9

Категорически не согласен. Всю жизнь юзаю колесо для смены слота, очень редко на кнопках.

Колбек от этого не бесполезен - например я у себя его использую для смены угла обзора у БТР,

Кстати, переключение на болт еще бы сделать.

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

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение

а ты этим не можешь заняться?

А что мешает до или после патчинга бинарника правками из xray-extentions, пропатчить его другими модами по правкам движка? В частности коллизия никак не пересекается, да и другие правки тоже.

 


Для тех, кто может быть до сих пор не разобрался, как искать нужные значения различных параметров у объектов по смещению в памяти, вот функция-пример для актора:

function get_actor_values(type, cycle_length)
    if cycle_length then
        if type == "float" then
            get_console():execute("clear_log")
            for i = 1, cycle_length do
                local value = db.actor:get_actor_float(i)
                if value and value ~= 0 then log1("Float = "..value.." Position = "..i) end
            end
            get_console():execute("flush")
        elseif type == "int" then
            get_console():execute("clear_log")
            for i = 1, cycle_length do
                local value = db.actor:get_actor_int(nil, i)
                if value and value ~= 0 then log1("Int = "..value.." Position = "..i) end
            end
            get_console():execute("flush")
        end
    end
end

Сканирует смещения в диапазоне от 1 до заданной длины цикла cycle_length. Можно задать тип числа int или float. Данные о позиции и значении выводятся в лог и сохраняются. Перед этим лог очищается. Позиции, у которых значение равно нулю не выводятся.

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

Telegram-канал RayTwitty Space

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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