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

X-Ray extensions


Malandrinus

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

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

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


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

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.

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

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


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

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

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

Float = 7.1234002113342
Position = 1444

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

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

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

 

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

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


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

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


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

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

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

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


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

[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

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


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

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

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

 

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

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


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

malandrinus,

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

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

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

 

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

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

 

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

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


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

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


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

malandrinus,

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

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

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

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


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

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

 

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

 

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

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


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

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

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

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

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


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

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


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

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


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

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

 

 

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

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

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


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

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

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


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

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

 

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

 

 

malandrinus,

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

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

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

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


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

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

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

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


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

7.9

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

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

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

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

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


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

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

А что мешает до или после патчинга бинарника правками из 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

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


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

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