Это популярное сообщение. Malandrinus 615 Опубликовано 22 Ноября 2010 Это популярное сообщение. Поделиться Опубликовано 22 Ноября 2010 (изменено) Проект X-Ray extensions Представляет собой набор добавлений, расширяющих возможности движка для скриптёров, а также, в ряде случаев, меняющих поведение игры. Изменения реализованы в виде бинарных патчей библиотек и исполняемых файлов. Адрес проекта на Google CodeДокументация одним файлом в 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 хранилище не содержит оригинальных файлов игры. Не забывайте делать резервные копии перед заменой файлов игры! Ссылка на адрес нового репозитария: https://github.com/KD87/xray-extensions Изменено 23 Июня 2016 пользователем Malandrinus 12 12 1 8 Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Ghost-2142 245 Опубликовано 1 Ноября 2015 Поделиться Опубликовано 1 Ноября 2015 @RayTwitty, добавил в начало, как ты и сказал, ну думаю сейчас опять вылет злостный будет... А ведь нет же! Взорвался БТР, как миленький. Спасибо огромное. Изображение погибло, снес. Ссылка на канал остается пока в виде >>>ссылки<<<. HellRatz Ссылка на комментарий
RayTwitty 492 Опубликовано 1 Ноября 2015 Поделиться Опубликовано 1 Ноября 2015 Посмотрел - там в обоих аргументах будет nil всегда. По идее, если добавить в car_fix.asm в 15 строку вот это: call CGameObject__lua_game_object mov esi, eaxа два пуша заменить на: push esi push esiто в обоих аргументах будет объект машинки (тот же самый self.object, только костыль в скрипте не понадобится). Ссылка на комментарий
Ghost-2142 245 Опубликовано 1 Ноября 2015 Поделиться Опубликовано 1 Ноября 2015 а два пуша заменить на: В строку 15 вроде вставил... Но тут много "пушей", какие именно? Вот: Изображение погибло, снес. Ссылка на канал остается пока в виде >>>ссылки<<<. HellRatz Ссылка на комментарий
RayTwitty 492 Опубликовано 1 Ноября 2015 Поделиться Опубликовано 1 Ноября 2015 (изменено) @Ghost-2142, перед вызовом script_death_callback идут два пуша с ecx-регистром. Замени их на esi. Изменено 1 Ноября 2015 пользователем RayTwitty 1 Ссылка на комментарий
_Val_ 2 225 Опубликовано 1 Ноября 2015 Поделиться Опубликовано 1 Ноября 2015 (изменено) ; вызываем скриптовый колбек на смерть call CGameObject__lua_game_object mov esi, eax push 8h ; type = death mov ecx, edi ; ecx = this call CGameObject__callback ; eax = hit_callback xor ecx, ecx push esi push esi push eax ; callback так? Изменено 1 Ноября 2015 пользователем _Val_ Ссылка на комментарий
Ghost-2142 245 Опубликовано 1 Ноября 2015 Поделиться Опубликовано 1 Ноября 2015 @_Val_, да. По крайней мере у меня так... @RayTwitty, сделал, как ты сказал, убрал костыль, побежал к БТР, выстрелил с РПГ, взорвал его. Круто. Спасибо ещё раз. 1 Изображение погибло, снес. Ссылка на канал остается пока в виде >>>ссылки<<<. HellRatz Ссылка на комментарий
_Val_ 2 225 Опубликовано 1 Ноября 2015 Поделиться Опубликовано 1 Ноября 2015 По ходу ревизию надо новую делать)) 1 Ссылка на комментарий
Ghost-2142 245 Опубликовано 1 Ноября 2015 Поделиться Опубликовано 1 Ноября 2015 дождешься от них... Видишь, самим придётся делать)... Ещё то чудо получится... Изображение погибло, снес. Ссылка на канал остается пока в виде >>>ссылки<<<. HellRatz Ссылка на комментарий
RayTwitty 492 Опубликовано 1 Ноября 2015 Поделиться Опубликовано 1 Ноября 2015 По ходу ревизию надо новую делать))Залью как будет время. 1 Ссылка на комментарий
НаноБот 737 Опубликовано 1 Ноября 2015 Поделиться Опубликовано 1 Ноября 2015 (изменено) Интересный глюк, в моей правки добавлены так же не сколько методов из ТЧ. В точности: "set_obj_bone_visible" "get_obj_bone_visible" "set_hud_obj_bone_visible" "get_hud_obj_bone_visible" За работу двух последних не ручаюсь, но две первые работают как надо. obj:set_obj_bone_visible(имя_косточки, булева) булева = obj:get_obj_bone_visible(имя_косточки) булева: true - кость видима, false - кость невидима. Так вот, если задать кости "magazin" значение false объекту с классом CWeaponMagazined (просто оружие), то объект... взрывается(!) Без образования ударной волны и осколков, т.е. сам метод explode не запускается. Но есть партикл и звук. Вот такие чудеса Зоны (движка). С другими объектами этот метод работает без особых глюков, правда с не которыми моделями сталкеров наблюдаются артефакты (искажения моделей). И ещё, если применить к живому сталкеру этот метод, то наблюдается сильное падения FPS (1-0.5). Изменено 1 Ноября 2015 пользователем НаноБот 1 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Ссылка на комментарий
dsh 3 824 Опубликовано 6 Ноября 2015 Поделиться Опубликовано 6 Ноября 2015 (изменено) Подскажите пожалуйста, добавлялся в x-ray extensions какой-нибудь способ обездвижить главного героя? Я пока только остановился на установке walk_accel в 0. Не двигается, но может прыгать на месте. Что-то мне кажется, будто я встречал другой способ. На мой взгляд вполне себе нормальный способ. Можно ещё и прыжки отключить, если jump_speed = 0. Malandrinus Изменено 7 Ноября 2015 пользователем Malandrinus dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
SkyLoader 53 Опубликовано 8 Ноября 2015 Поделиться Опубликовано 8 Ноября 2015 правда с не которыми моделями сталкеров наблюдаются артефакты (искажения моделей) Искажения из-за мягкой привязки. Если будет жесткая привязка кости, то кость полностью пропадет из вида. 1 Ссылка на комментарий
RayTwitty 492 Опубликовано 9 Ноября 2015 Поделиться Опубликовано 9 Ноября 2015 (изменено) способ обездвижить главного героя?Разбиндить кнопки передвижения?.. Изменено 9 Ноября 2015 пользователем RayTwitty Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 9 Ноября 2015 Поделиться Опубликовано 9 Ноября 2015 А как пользоваться walk_accel, jump_speed в скриптах? Я знаю только о walk_accel, что в конфиге actor.ltx Ссылка на комментарий
dsh 3 824 Опубликовано 9 Ноября 2015 Поделиться Опубликовано 9 Ноября 2015 @TIGER_VLAD, скопирую сюда ответ тебе же:Вот эта функция устанавливает walk_accel в нужное тебе значение: function set_walk_accel(v) db.actor:set_actor_float(nil, v, 1440) end А про jump_speed забудь. Не меняется он с помощью x-ray extensions. Точнее, поменять не сложно, но это изменение никакого эффекта не оказывает. На вот тебе, до кучи, еще (почти все взято из OGSE, еще раз спасибо им за это): -- получение некоторых значений с плавающей запятой -- параметры бега function get_walk_accel() return db.actor:get_actor_float(1440) end function get_jump_speed() return db.actor:get_actor_float(1444) end function get_run_factor() return db.actor:get_actor_float(1448) end function get_run_back_factor() return db.actor:get_actor_float(1452) end function get_walk_back_factor() return db.actor:get_actor_float(1456) end function get_crouch_factor() return db.actor:get_actor_float(1460) end function get_climb_factor() return db.actor:get_actor_float(1464) end function get_sprint_factor() return db.actor:get_actor_float(1468) end function get_walk_strafe_factor() return db.actor:get_actor_float(1472) end function get_run_strafe_factor() return db.actor:get_actor_float(1476) end -- параметры стрельбы function get_disp_base() return db.actor:get_actor_float(1484) end -- в радианах function get_disp_aim() return db.actor:get_actor_float(1488) end -- в радианах function get_disp_vel_factor() return db.actor:get_actor_float(1492) end function get_disp_accel_factor() return db.actor:get_actor_float(1496) end function get_disp_crouch_factor() return db.actor:get_actor_float(1500) end function get_disp_crouch_no_accel_factor() return db.actor:get_actor_float(1504) end -- получение некоторых целых и логических значений -- режим прицеливания function zoom_mode() return bit_and(db.actor:get_actor_int(nil, 1480), 1) end -- возвращает 0/1 -- установка некоторых значений -- параметры бега function set_sprint_factor(v) db.actor:set_actor_float(nil, v, 1468) end function set_jump_speed(v) db.actor:set_actor_float(nil, v, 1444) end function set_walk_accel(v) db.actor:set_actor_float(nil, v, 1440) end function set_run_factor(v) db.actor:set_actor_float(nil, v, 1448) end function set_run_back_factor(v) db.actor:set_actor_float(nil, v, 1452) end function set_walk_back_factor(v) db.actor:set_actor_float(nil, v, 1456) end function set_crouch_factor(v) db.actor:set_actor_float(nil, v, 1460) end function set_climb_factor(v) db.actor:set_actor_float(nil, v, 1464) end function set_walk_strafe_factor(v) db.actor:set_actor_float(nil, v, 1472) end function set_run_strafe_factor(v) db.actor:set_actor_float(nil, v, 1476) end -- параметры стрельбы function set_disp_base(v) db.actor:set_actor_float(nil, v, 1484) end -- в радианах function set_jump_power( v ) db.actor:set_actor_condition_float( nil, v, 276 ) end function set_walk_power( v ) db.actor:set_actor_condition_float( nil, v, 284 ) end 2 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
SkyLoader 53 Опубликовано 9 Ноября 2015 Поделиться Опубликовано 9 Ноября 2015 (изменено) Разбиндить кнопки передвижения?.. ИМХО, лучше хотя бы этим воспользоваться методом, раз управления стейтами не вынесли в проект. Скорость то уменьшите в ноль, но камера все-равно будет дрыгаться при ходьбе, как при обычном движении. Изменено 9 Ноября 2015 пользователем SkyLoader 1 Ссылка на комментарий
Malandrinus 615 Опубликовано 10 Ноября 2015 Автор Поделиться Опубликовано 10 Ноября 2015 А про jump_speed забудь. Не меняется он с помощью x-ray extensions. Точнее, поменять не сложно, но это изменение никакого эффекта не оказывает. Не совсем так. Если поставить jump_speed в 0, то прыгать всё-таки не будет, т.е. позволяет решить проблему обездвиживания. С другой стороны действительно факт, что любое значение, отличное от нуля, в итоге приводит к тому, что скорость прыжка просто остаётся постоянной из конфига. Если глянуть исходники, то там скорость прыжка при загрузке копируется куда-то в менеджер физики актора и видимо там уже используется. Поэтому и эффекта от перезаписи нет. При этом и то первое поле в самом объекте актора тоже в одном месте читается и используется, видимо поэтому нулевое значение всё-таки влияет. Короче, разработчики пыс тут в своём репертуаре, запутали и накосячили. камера все-равно будет дрыгаться при ходьбе, как при обычном движении Не будет, я проверил. Эффект покачиваения (боббинг) походу начинается с какого-то порога скорости. 1 1 Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
SkyLoader 53 Опубликовано 10 Ноября 2015 Поделиться Опубликовано 10 Ноября 2015 (изменено) Эффект покачиваения (боббинг) походу начинается с какого-то порога скорости Наверное, я чего-то не заметил, видимо в мувинге где-то запрещается стейт ходьбы, но я не увидел где. В боббинге все нормально, проверяется на dwMState&ACTOR_DEFS::mcAnyMove, проверок на скорость нет. Если глянуть исходники, то там скорость прыжка при загрузке копируется куда-то в менеджер физики актора и видимо там уже используется. Ну скорее всего чтобы коллизийный бокс актора знал, как действовать при прыжке А переменная в классе актора осталась видимо потому, чтобы каждый раз не обращаться к коллизийному боксу и узнавать у него скорость прыжка. Кто занимается проектом, помимо перезаписи jump_speed в классе актора сделайте вызов: character_physics_support()->movement()->SetJumpUpVelocity(new_speed); Изменено 10 Ноября 2015 пользователем SkyLoader Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 10 Ноября 2015 Поделиться Опубликовано 10 Ноября 2015 Кто-нибудь пробовал эти функции: function get_disp_base() return db.actor:get_actor_float(1484) end , function set_disp_base(v) db.actor:set_actor_float(nil, v, 1484) end ? Ссылка на комментарий
dsh 3 824 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 Кто-нибудь использовал функции семейства set_manual_grouping_on() set_trade_filtration_on() set_manual_highlight_on() и иже с ними? Что-то я при их использовании, пытаясь установить запрет торговли и свою подсветку, никакого эффекта не вижу. Может там какая-нибудь хитрость есть? dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти