Это популярное сообщение. 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 Ссылка на комментарий
*Shoker* 322 Опубликовано 23 Мая 2011 Поделиться Опубликовано 23 Мая 2011 (изменено) break Я лучше открою для себя удобный и понятный для навигации интерфейс, а не запрятанные в дебрях раздела ссылки. Большинство смотрит в Downloads, а в разделе Source при открытии ничего не видно, и не каждый догадается там в Changes перейти. (да его и не видно было сперва) За линк спасибо. _Призрак_ Как я понял, dll-ку надо собирать самому. http://code.google.com/p/xray-extensions/s...2F3795_cs_10010 Качать нужные файлы и из них патчить или есть готовые dll-ки? Кто нибудь допишите\обновите в шапку где смотреть новые версии. ******************* Так-с, кто подскажет как теперь скачать эти правки. ******************* Разобрался. SVN клиент нужен. Какой же там на сайте неудобный доступ к информации + не отображает русские символы в коде. Ну ладно... Изменено 23 Мая 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
ziStam 1 Опубликовано 23 Мая 2011 Поделиться Опубликовано 23 Мая 2011 *Shoker*, дай пожалуйста более внятную инструкцию для непонятливых Legend of Stalker Ссылка на комментарий
*Shoker* 322 Опубликовано 23 Мая 2011 Поделиться Опубликовано 23 Мая 2011 (изменено) Качаешь TortoiseSVN http://tortoisesvn.net/downloads.html Дальше как тут: http://microsin.ru/content/view/1239/1/ SVN Checkout - Обзор хранилища Только вводишь этот путь: http://xray-extensions.googlecode.com/svn/trunk/ Ну или попробуй напрямую через браузер по файлу сохранять. Дальше пока не разобрался, качаю. *************************** Кстати, с крякнутой версией игры парвки работать будут или нет, я не понмю NoDVD длл-ки затрагивал или нет. Изменено 23 Мая 2011 пользователем *Shoker* 1 Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
ziStam 1 Опубликовано 23 Мая 2011 Поделиться Опубликовано 23 Мая 2011 *Shoker*, нет, тлько xrEngine.exe Legend of Stalker Ссылка на комментарий
*Shoker* 322 Опубликовано 23 Мая 2011 Поделиться Опубликовано 23 Мая 2011 Так-с, вообще дальше качаешь всю папку trunk и всё. Дальше как и раньше. Для нужной игры кидаешь длл-ку в папку (в папку от нужной игры кажись) и пускаешь батник на сборку. Только вот как я понял описания изменений там нету, и надо читать .asm файлы чтобы разобраться. Добавлено через 6 мин.: _Призрак_ Откуда номера callback-ов ты взял? Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
ziStam 1 Опубликовано 23 Мая 2011 Поделиться Опубликовано 23 Мая 2011 (изменено) *Shoker*, Notepad++ тебе в пощь! Добавлено через 2 мин.: Если не трудно, кинь дллку готовую на 1.6.02 в лс. Спасибо заранее. Чет это все слишком сложно... Изменено 23 Мая 2011 пользователем ziStam Legend of Stalker Ссылка на комментарий
*Shoker* 322 Опубликовано 23 Мая 2011 Поделиться Опубликовано 23 Мая 2011 (изменено) Составил список откопанных функций для ЧН. Тут не все но вроде большинство, и есть вопросы: Callbacks: self.object:set_callback(123, self.on_key, self) -- нажатие клавиши self.object:set_callback(124, self.on_key_free, self) -- отпускание клавиши self.object:set_callback(125, self.on_key_hold, self) -- удержание клавиши self.object:set_callback(126, self.on_wheel_rotation, self) -- вращение колесика мыши self.object:set_callback(127, self.on_mouse_move, self) -- движение мыши self.object:set_callback(130, self.item_to_belt, self) -- перемещение предмета на пояс self.object:set_callback(131, self.item_to_backpack, self) -- перемещение предмета в рюкзак self.object:set_callback(132, self.item_to_slot, self) -- перемещение предмета в слот self.object:set_callback(callback.hit, self.actor_hit_callback, self) Но как определить, какие параметры они передают? Game object: ( exmpl obj:get_fuel(), db.actor:GetMousePos() ) * GetMousePos - по идее возвращает координаты мыши, но в каком формате? (vector2() ?) * belt_object_count - кол-во навешанных объектов на поясе? * get_fuel - топлиов * get_fuel_consumption - потребление * get_fuel_tank - объём бака * set_fuel - ставим уровень * set_fuel_consumption * set_character_name - Установка имени персонажа * item_on_belt (?) - получаем предмет с пояса, а передавать что, порядковый номер или слот? Global ( exmpl log2("test") ) * регистрация функции "bind_to_dik" - отлов нажатия клавишь? Как использовать? * set_extensions_flags - ? * get_extensions_flags - ? * log1() - Что она даёт. * flush1() - наличие функции мне не понятно, flush работает и в оригинале (хотя нет, я путаю его с консольным, а что даёт этот тогда) * log2() - test (?) Level: * level.get_target_dist() -- получаем расстояние от ГГ до точки, куда смотрит прицел * level.get_target_obj() -- аналогично, но уже объект куда сомтрит прицел * set_ph_time_factor\get_ph_time_factor - установка ph_timefactor ( exmpl level.set_ph_time_factor(20) ) * set_fov\get_fov - установка угла обзора (exmpl level.set_fov()) Остальное: ; скрывание миникарты - какая функция? ; Затычка на game_rank (вернёт 0) Что то ещё забыл. Изменено 23 Мая 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Real Wolf 34 Опубликовано 24 Мая 2011 Поделиться Опубликовано 24 Мая 2011 Никто не разбирался с функциями: get_wpn_bone_id set_wpn_bone_visible get_wpn_bone_visible В частности, что необходимо передавать(string и integer понятно), но что именно? Ссылка на комментарий
_Призрак_ 11 Опубликовано 25 Мая 2011 Поделиться Опубликовано 25 Мая 2011 (изменено) Вот мой help: self.object:set_callback(123, self.on_key, self) -- нажатие клавиши. Принимает числовое значение self.object:set_callback(124, self.on_key_free, self) -- отпускание клавиши. Принимает числовое значение self.object:set_callback(125, self.on_key_hold, self) -- удержание клавиши. Принимает числовое значение self.object:set_callback(126, self.on_wheel_rotation, self) -- вращение колесика мыши. Принимает числовое значение, на которое было прокрученно колесико мыши self.object:set_callback(127, self.on_mouse_move, self) -- движение мыши. Принимает какие то число. self.object:set_callback(130, self.item_to_belt, self) -- перемещение предмета на пояс. Принимает объект self.object:set_callback(131, self.item_to_backpack, self) -- перемещение предмета в рюкзак. Принимает объект self.object:set_callback(132, self.item_to_slot, self) -- перемещение предмета в слот. Принимает объект self.object:set_callback(callback.hit, self.actor_hit_callback, self) --Стрельба по актору. Принимает: (obj, amount, local_direction, who, bone_index). Вообщем все то что и для сталкеров alife():teleport_object("", pos, lvid, gvid, npc_id) --Телепортируем объект. 1 параметр - затычка. db.actor:item_on_belt(1) --Получаем объект по его номеру на поясе db.actor:item_on_ruck(2) --Получает объект по его номеру в рюкзаке db.actor:move_to_ruck(db.actor:item_in_slot(1)) --Перемещаем объект в рюкзак db.actor:move_to_belt(db.actor:item_in_slot(1)) --Перемещаем объект на пояс db.actor:move_to_slot(db.actor:object("test")) --Перемещаем объект в слот db.actor:move_to_slot_and_activate(db.actor:object("test")) --Перемещаем объект в слот и активируем db.actor:can_move_to_ruck(db.actor:item_in_slot(1)) --Перемещаем объект в рюкзак db.actor:can_move_to_belt(db.actor:item_in_slot(1)) --Перемещаем объект на пояс db.actor:can_move_to_slot(db.actor:object("test")) --Перемещаем объект в слот db.actor:get_actor_float(1440) --Получение некоторых значений с плавающей запятой db.actor:get_actor_int(nil, 1480) --Получение некоторых целых и логических значений. В данном случае режим прицеливания db.actor:set_actor_float(nil, 1.1, 1440) --Установка некоторых значений db.actor:item_in_slot(1):get_wpn_int(nil, 1408) --Получение некоторых целых и логических значений db.actor:item_in_slot(1):set_wpn_int(1408, v) --Установка некоторых значений db.actor:is_on_belt(db.actor:object("test")) --Находится ли предмет на поясе db.actor:is_in_ruck(db.actor:object("test")) --Находится ли предмет в рюкзаке db.actor:is_in_slot(db.actor:object("test")) --Находится ли предмет в слоту car --game_object car:get_fuel() --Возвращает дробное число литров в баке car:set_fuel(20.0) --Выставляет дробное число литров в баке car:get_fuel_consumption() --Возвращает дробное число потребления бензина car:set_fuel_consumption(20.0) --Выставляет дробное число потребления бензина car:get_fuel_tank() --Возвращает дробное число объем бака car:set_fuel_tank(20.0) --Выставляет дробное число объем бака db.actor:belt_count() --Возвращает количество предметов на поясе db.actor:ruck_count() --Возвращает количество предметов в рюкзаке db.actor:slot_number() --Возвращает количество слотов db.actor:get_inventory_weight() --Возвращает вес рюкзака db.actor:set_sprint_factor(5.0) --Выставляем коэффициент скрипта db.actor:get_sprint_factor() --Возвращаем коэффициент скрипта db.actor:actor_body_state() --Возвращает число, характеризующие положение тела актора item --game object item:is_inventory_item() --Проверка на тип "инвентарный предмет" item:is_weapon_gl() --Проверка на тип оружие с возможностью установки подствольника item:is_weapon() --Проверка на тип оружие item:is_actor() --Проверка на тип актор db.actor:get_camera_fov() --Возвращает число FOV db.actor:set_camera_fov(90.0) --Выставляет число FOV db.actor:set_actor_visual("actors\\monolit\\stalker_mo_mask") --Выставляет визуал актора log1("MY TEST LOG") --Замена функции log get_wpn_gl_int get_wpn_bone_id --Получает некоторое строку и число, возвращает число set_wpn_bone_visible --Получает некоторое строку и число, возвращает число get_wpn_bone_visible --Получает некоторое строку и число, возвращаетчисло get_wpn_float --Получает некоторое число, возвращает число set_wpn_float --Получает nil дробное число и целое число get_custom_monster_float --Получает целое число, возврашает дробное число get_custom_monster_int --Получает строку и целое число, возвращает целое число set_actor_shared_str --Получает строку и целое число, возвращает целое число get_actor_shared_str --Возвращает строку bind_to_dik --Непонятная функция set_extensions_flags --Непонятная функция get_extensions_flags --Непонятная функция set_game_time --Получает два дробных значения, ничего не возвращает А, да, там где в функции передается nil - это тупо затычка, так и должно быть Изменено 25 Мая 2011 пользователем _Призрак_ Freedom Ссылка на комментарий
break 40 Опубликовано 25 Мая 2011 Поделиться Опубликовано 25 Мая 2011 Вот это дело по-хорошему полагается писать на вики самого проекта, желательно на двух языках - русский/английский. Ссылка на комментарий
_Призрак_ 11 Опубликовано 25 Мая 2011 Поделиться Опубликовано 25 Мая 2011 Английский я не так хорошо знаю как хотелось, но со временем я переведу хелп на английский и закину его на вики. Но только когда узнаю по точней все параметры Freedom Ссылка на комментарий
break 40 Опубликовано 25 Мая 2011 Поделиться Опубликовано 25 Мая 2011 Сейчас хотя бы для своих на русском все расписать, а на забугорных камрадов пока что класть с прикладом. Ссылка на комментарий
Real Wolf 34 Опубликовано 25 Мая 2011 Поделиться Опубликовано 25 Мая 2011 oWpn:get_wpn_int(nil,iPos) oWpn:set_wpn_int(iPos,iValue) oWpn - онлайн-объект, который является оружие. iPos - позиция в памяти iValue - значение, на которое меняем Далее пример с описаниями: local oWpn = db.actor:object("wpn_ak74") -- получаем как объект АК, который есть в инвентаре local iMagSize = oWpn:get_wpn_int(nil, 1408) -- позиция 1408 для оружия отвечает за объем магазина, получаем текущий объем log1(iMagSize) -- выводим его в лог oWpn:set_wpn_int(1408,38) -- устанавливаем объем магазина 38 патронов(при загрузке собьётся) Ссылка на комментарий
*Shoker* 322 Опубликовано 25 Мая 2011 Поделиться Опубликовано 25 Мая 2011 (изменено) Real Wolf Спасибо за такой подробный разбор Но откуда такая информация, и главное откуда взята цифра 1408 и где можно узнать другие? Или делать перебором через get, хотя это немного громоздко будет, да и врятле в оружии учитывается так много параметров. Изменено 25 Мая 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Real Wolf 34 Опубликовано 26 Мая 2011 Поделиться Опубликовано 26 Мая 2011 iPos - это позиция в памяти. Я делал цикл с перебором и проверял, какие значения изменялись. Ссылка на комментарий
break 40 Опубликовано 26 Мая 2011 Поделиться Опубликовано 26 Мая 2011 А куда Колмогор делся? Ссылка на комментарий
Real Wolf 34 Опубликовано 26 Мая 2011 Поделиться Опубликовано 26 Мая 2011 Не знаю. Позиции для чтения\записи параметров оружия, которые я разобрал: 1408 - Максимальный объем магазина 160 - Цена автомата Параметры записываются сразу же, но при загрузке сбиваются. Ссылка на комментарий
Real Wolf 34 Опубликовано 30 Мая 2011 Поделиться Опубликовано 30 Мая 2011 Позиции в памяти для оружия: 160 - cost 940 - scope_status 944 - silencer_status 948 - grenade_launcher_status 1408 - ammo_mag_size 748 - hit_power 764 - hit_impulse 768 - bullet_speed 772 - fire_distance 1328 - cam_dispertion_frac 1340 - fire_dispersion_condition_factor 1348 - misfire_condition_k 1880 - dispersion_start Ссылка на комментарий
7.9 174 Опубликовано 4 Июня 2011 Поделиться Опубликовано 4 Июня 2011 "dll" для SHOC 1006 версии. Правки версии "r15", плюс добавлены "get_target_dist()" и "get_target_obj()". Работает, но пока мало тестированная. Собирал не я. Кого интересуют эти функции - пожалуйста. Есть просьба: погонять другие правки, и если что не так - отписаться. r15plus_xrGame.zip Добавлено через 154 мин.: Плюс к предидущему - исходники: _http://rghost.ru/9370871 всё легко Ссылка на комментарий
KOKC 0 Опубликовано 17 Июня 2011 Поделиться Опубликовано 17 Июня 2011 Чота не выходит "собрать" патчик... Кликаю в папке 3312_shoc_10006 файл make_src_dll.cmd, как указано в readme., но толку 0... Системе не удаётся найти указанный путь ...\3312_shoc_10006\mydll.obj ...\3312_shoc_10006\mydll.exp ...\3312_shoc_10006\mydll.lib Я что-то не так делаю? Жизнью в России довольны две категории людей: те, кто не в курсе и те, кто в доле. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти