НаноБот 762 Опубликовано 23 Марта 2017 @UriZzz, нет я эту тему не ковырял, так что надо вникать, а на это надо время. ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 16 Апреля 2017 Интересно, кто является автором утилит bspatch.exe, patcher.exe, bsdiff.exe. И у кого есть исходники patcher.exe. ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 16 Апреля 2017 (изменено) У меня есть мысль дальше развивать проект, так же есть мысль попробовать использовать подходящие компиляторы высокого уровня с высокой степенью поддержки ассемблера, например С-- сфинкс. СиМинусМинус, если кто не понял. У меня почти получилось создать утилиту которая заменит все эти три, так же не нужен файл *.def, но пока есть проблемы. Хорошо бы возможности с таблицей релокаций переделать, сделать возможность убирать перемещаемые адреса в основной секцией(IDA отображаются как ds:adr, offset adr), так же сделать возможность добавлять перемещаемые адреса в основной секцией (в текущей утилите это не работает). Что позволит переделывать код в основной секцией более основательно. Ещё бы хорошо сделать поддержку дополнительной секцией с данными, т.е. .MyCode это наш дополнительный код, .MyData тут находятся секция инициализированных данных. ЗЫ Зачем? Сейчас я могу работать с любым билдом, у которого нет защиты, я могу добавлять новые объекты, расширять существующие и так далее. А если получится подключить компилятор высокого уровня то можно будет делать достаточно сложные вещи. И ещё, можно не только для XRay мучить, но почти любую игру без защиты. Изменено 16 Апреля 2017 пользователем НаноБот 1 2 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 7 Мая 2017 (изменено) https://yadi.sk/d/81ARuLvH3Hpfcd Программа заменяет bspatch.exe, которой не нужен *.diff. Это приложение создаёт файл дубликат с добавленной секцией. Использовать так. Кидаем программку в папку tools, SVN_portable проекта. В батнике находим строку: ..\tools\bspatch.exe xrGame_orig.dll xrGame.dll xrGame.diff И заменяем на эту: ..\tools\add_section.exe xrGame_orig.dll xrGame.dll 40000h Как видим, размер секции можно задавать прямо в строке, можно задавать в десятичном виде и в шестнадцатеричном виде, приложение понимает стиль С, паскаля и ассемблера, т.е. так 0xFFFF, $FFFF, FFFFh. Так же приложение само выравнивает размер секции. ЗЫ Приложение add_code пока в разработке, оно полностью заменит bspatch.exe, patcher.exe и bsdiff.exe, так же в corrections_list.txt можно будет задавать адреса в стиле ассемблера, легче копипастой вставлять из xrgame_stubs.asm. Так же, возможно будут другие преимущества реализованы. ЗЫЫ На чем написано? На MASMе. В релиз чуть не пошла версия которая на семёрке не работает, так что add_code я буду отлаживать бдительней. Изменено 7 Мая 2017 пользователем НаноБот 4 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 8 Мая 2017 (изменено) О да, я скачал этот PE Tools, не знаю, может версия такая, но это полная хрень, при попытке заполнить нулями новую секцию выскакивает авост, так же уродовалась сама PE часть. Решил что легче написать простое приложение, чем мучатся со всякой ерундой, тут хорошо именно тем, кто захочет сделать правки для 1.0004, то это ему будет сделать легче. А то слишком много манипуляций при создании нового проекта, надо сделать новый *.diff, а для этого надо файл заготовка с добавленной секцией, который делаешь или вручную, или РАБОЧЕЙ версией PE Tools, и батник для bsdiff.exe. Сейчас если кому надо править 1.0004, то PE Tools не нужен, достаточно hex-редактор, что бы подсмотреть нужные параметры, я потом сделаю исследовательский режим, вводим в батник только имя файла источника, и он выдаст нужные параметры для файла addr.inc. Изменено 8 Мая 2017 пользователем НаноБот ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 25 Мая 2017 (изменено) Доработал add_section.exe, теперь можно файл addr.inc создавать автоматически, для новых проектов PETools не нужен. Пример нового батника. @echo on if exist mydll.obj del mydll.obj if exist mydll.dll del mydll.dll if exist mydll.exp del mydll.exp if exist mydll.lib del mydll.lib if exist xrGame.dll del xrGame.dll if exist addr.inc goto mmm1 ..\tools\add_section.exe xrGame_orig.dll addr.inc :mmm1 ..\tools\ml /c /coff /Fo mydll.obj mydll.asm ..\tools\link.exe /SUBSYSTEM:WINDOWS /DLL /OUT:mydll.dll /DEF:mydll.def mydll.obj del mydll.obj del mydll.exp del mydll.lib ..\tools\add_section.exe xrGame_orig.dll xrGame.dll 40000h ..\tools\patcher.exe xrGame.dll mydll.dll corrections_list.txt if exist mydll.dll del mydll.dll @echo. @echo GOTOVO @echo. pause Утилита add_code в принципе готова, но я решил её переделать. Так что потом... ЗЫ Ссылка не изменилась. Изменено 25 Мая 2017 пользователем НаноБот 2 1 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 28 Мая 2017 Ради интереса попробовал свои файлы про сканировать разными антивирусами, с помощью: https://www.virustotal.com http://www.virscan.org/ В общем, вышло что некоторые редкие антивири таки реагируют, вот. https://www.virustotal.com/ru/file/1c9f5de7c6a9843567bd54988b182ee78c503f39eb8ec25dc6c4e89aa2fc448c/analysis/ http://r.virscan.org/report/ac5e645db4b3036b34682505ae465c7d Endgame и fprot, возможно их смущает ассемблер, или просто что есть функции записи в файл, это скорей всего. Короче, такие антивирусы не устанавливайте, если антивирус реагирует на файл, где точно нет вируса, и этот файл "прозрачен", то это значит, что антивир использует очень примитивный алгоритм работы. Вот, как так. ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 29 Мая 2017 Антивири редкие, так что это проблема самих антивирей, а мне лень что то им посылать. Если у них тупые алгоритмы работы, то не стоит их и устанавливать. ЗЫ Я проверил, на файлы созданные делфи (с тем же алгоритмом), всё равно эти антивири ругаются, я же говорю, просто видит что есть функции записи в файл, и на этом основании считает, что вероятно, тип приложения: вредоносный. Короче, не чего устанавливать совсем тупые антивири, вот у меня ESET NOD32 вроде не плохой, да и тот ловит лишь некоторые, комп всё равно глючит. 1 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 16 Сентября 2017 (изменено) В принципе я работаю по проекту, потом выложу некоторые правки. Например, сейчас хочу сделать возможность помещать сталкеров в вертолёт, как например в движке CRYENGINE. Ещё, баллистический калькулятор, бросок тестовой гранаты, скриптом переключаем режим ПГ и другие правки. И ещё, я выложил правку где можно настраивать разные модели для сталкеров, с ограниченном набором анимаций. Эту правку можно, например, использовать в ОЛР2.5, хенов оживить. Изменено 16 Сентября 2017 пользователем НаноБот 4 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 19 Сентября 2017 При собачить холдер не проблема, важно решить проблему полёта самого вертолёта, у меня пока не получилось портировать код из билда 756, вертолёт кувыркался, и дергался. А так это решаемо, даже XRayExt, не говоря и про исходники. У меня даже получилось в билде 1098 полетать, только дергается, артефакты появляются. А в билде 1114 верт уже вырезан. 1 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 3 Ноября 2017 Переделавать проект надо по-любому, утомил быдло-код, не правильно названые имена прототипов и другое. Но работы много, ладно, с С++ не хочется работать, медленно слишком. Ну а так, сейчас делаю объект CLevelExplosive взрывной объект в пространстве левел. 3 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 22 Ноября 2017 (изменено) Новые ревизии! rev230.11_nanobot.rar https://yadi.sk/d/DM-UFYS53Pw47Z rev230.12_nanobot.rar https://yadi.sk/d/KJ0rV5OF3Pw4Ck Скрытый текст ---------------------------------------------------------------- rev230.11 Для ТЧ ;---------------------- Исправление формулы расчёта статистики убийств в КПК. Окончательное!!! Всё работает! Больше не трогать!!! Добавлены скриптовые методы для этой правки в пространстве actor_stats: set_type_statistic(int) -- задать тип подсчёта: 0 - подсчёт по штукам, 1 - подсчёт по очкам. get_type_statistic() -- возвращает тип подсчёта. ;---------------------- Добавил новый класс CBulletExplosive, взрывчатка в классе CBulletManager Добавлены скриптовые методы для этой правки в пространстве level: create_explosive(name_section, id_weapon) -- создать взрывчатку, вернёт id_explosive, или -1 если не получилось. explode(id_explosive, pos, id_initiator) -- взорвать, вернёт 1 если успешно, или 0 если нет, например объекта такого нет. delete_explosive(id_explosive) -- удалить, вернёт 1 если успешно, или 0 если нет, например объекта такого нет. name_section -- имя секции взрывчатки id_weapon -- ID оружия из которого произошёл выстрел(как правило это ID танка) id_explosive -- ID взрывчатки pos -- позиция взрыва id_initiator -- ID инициатора, т.е. кто выстрелил взрывную пулю (актор, сталкер, или танк и вертолёт под логикой) ;---------------------- Добавлены колбеки на старт и стоп пули. Включаются в конфиге патрона: callback_on = true Приходят в биндер оружия. ;---------------------- Добавлены взрывные пули, при выстреле создаётся CBulletExplosive, и при попадании в геометрию или объект взрывается. Если пуля улетела за уровень, то удаляется. Для включения взрывных пуль надо в конфиге патрона указать: sect_explosive = секция_взрывчатки Если такой секции нет, то пуля считается обычной. ;---------------------- Рефакторинг колбеков нажатия клавиш, добавил колбеки в биндер активных объектов. Оружия которое актор держит в руках, холдер в котором сидим (машины, турели, вертолёты?) set_flag_callback_key(flags) -- задать флаги включения колбеков нажатий клавиш и колбек выстрел get_flag_callback_key() -- получить флаги -->>-- ;---------------------- Добавлен новый псевдокласс CTurrel, турель, для работы требует скриптовой обвязки. Добавлены скриптовые методы для этого объекта: car_weapon_rotation(dir_h, dir_p) -- развернуть башню по углам dir_h - азимут, dir_p - склонение от горизонта car_weapon_dir_h() -- получить угол dir_h car_weapon_dir_p() -- -->>-- dir_p ;---------------------- Добавлены скриптовые методы в game_object is_exploding() -- взорван ли взрывной объект get_type_camera() -- тип текущей камеры, работает для актора и машины. car_show_crosshair(bool) -- включения прицела в машине. ;---------------------- Удалил weapon_stat_mgun_fix.asm т.к. всё равно не работает. ;---------------------- Рефакторинг level_ns_reg_macros.asm, теперь добавлять новые прототипы очень просто. ;---------------------- Добавлена блокировка цифр(0..9) на основной клавиатуре. Методы в пространстве имён level. enable_input_numbase() -- разблокировать disable_input_numbase() -- заблокировать ;---------------------- (с) НаноБот 20.11.2017 ---------------------------------------------------------------- rev230.12 Для ТЧ Дополнительное описание к ревизии rev230.11 Возможность в машине прикреплять актора к указанной в конфиге кости, это может быть кость башни, тогда актор вращается в месте с башней. Возможность в машине с оружием стрелять из некоторого количества стволов, сделано для ЗСУ-23-4 Шилка При стрельбе из машины(БТР) назначается вредитель - владелец, если это актор, то хиты записываются от актора. При вылезании из машины, смотрим туда, куда смотрели. ;--------------------------------------------------------------- Оптимизация правки "спрятать оружие на лестнице и в машине". Удалён no_weapon_fix.asm за ненадобностью. ;---------------------- Фикс ошибки выделения памяти для CCarWeapon ;---------------------- Возможность назначать лучшие оружие скриптом. set_script_best_weapon(best_wpn, bool) -- назначить лучшие оружие, булева - игнорировать наличие патронов get_script_best_weapon() -- вернёт лучшие скриптовое оружие. ;---------------------- Добавлены структуры: CWeapon и сопутствующие CWeaponMagazined ;---------------------- (с) НаноБот 22.11.2017 ---------------------------------------------------------------- Взрывные пули включаются наличием параметра sect_explosive, указанная секция должна быть. Турель требует скриптовой обвязки, пока для релиза не подготовил, так что залью чуть позже. ЗЫ Установка: залить с заменой к предыдущим правкам. ЗЫЫ Т.к. предыдущие правки ушли в архив, то залью весь проект. https://yadi.sk/d/_jhEE5px3Pw6Fp Это ревизия 230.12 полностью, напомню, проект основан на версии макрона: "XRay_Extensions_portable" Изменено 22 Ноября 2017 пользователем НаноБот Дополнил 2 4 1 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 22 Ноября 2017 Честно говоря я уже сам не помню, на какой ревизии основался 230 или 232, на счёт 239 читай 230.09, просто я понял порочность нумерации 230 + №моей ревизии лишь некоторое время назад. ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 22 Ноября 2017 8 минут назад, TIGER_VLAD сказал: Еще бы добавить блокировку любой клавиши. Ну это для командного меню я делал, реализовал чисто скриптом. 8 минут назад, _Val_ сказал: А мне будет не хватать вот этого. Это переделал как надо, сами колбеки никуда не делись, более того доработаны, приходят не только в биндер актора, но в биндер активного оружия и холдера т.е машины. Мне так гораздо сподручней, помню как я мучился со скриптом турели(на классе вертолёта), из-за дурацкой реализацией колбеков на нажатия, специальным скриптовым классом. 3 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 22 Ноября 2017 @UriZzz Дак я и так потихоньку привожу в порядок, этому проекту лет 7, сложно от рефакторить весь хлам который за это время создали. Конечно, исходники, С++, дают больше возможности, но мне больше нравиться в проекте очень быстрая компиляция, проекта малый вес, ну и конечно лучшие знания ассемблера, если бы я хорошо знал С++ то кодил на нём, а так, как отвратило 31 декабря 2016 года от С++, так и больше не хочется кодить на С++. Хотя я активно использую декомпилированные исходники. И ещё, наработал код на С++ до того как отвратило,, потом выложу, там много чего интересного. 1 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 25 Ноября 2017 (изменено) 2 часа назад, Капрал Хикс сказал: Сюда б ещё последние правки НаноБота накатить сверху, с турелью и взрывными пулями... Не получится, возможно лишь добавление правок в мою ревизию, я там много чего переделал, могут быть проблемы при компиляции. Да там походу разница правок минимальна. Мне проще просто проанализировать правки и перенести в свой проект. Короче эти проекты на прямую совсем не совместимы, разные способы компиляции проектов, я тут ещё собираюсь поменять утилиты для сборки проекта. ЗЫ Ещё тут добавил турель для ОЛР. https://www.gameru.net/forum/index.php?s=&showtopic=54066&view=findpost&p=1627545 Чисто для теста. Изменено 25 Ноября 2017 пользователем НаноБот 1 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 27 Ноября 2017 Оказывается у кара не работают гильзы, они есть, но не доделаны, так что пришлось чинить. ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 9 Декабря 2017 В новой ревизии вырезал некоторые методы, всё равно они чисто тестовые. Я так понял что некоторые game_object методы не работают, причем я так непонял что эти методы делают, CHangingLamp, далее член light_render, а потом полный бред. Ладно сейчас почти доделал метод для смены визуала сталкерам и мутантам. 1 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 9 Декабря 2017 Для мутантов метод работает, так что сейчас можно менять визуал монстрам на лету, можно сделать монстра который становится невидим, и это вовсе не сосыч, а любой монстр родитель которого CBaseMonster. 3 2 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение
НаноБот 762 Опубликовано 11 Декабря 2017 (изменено) Потом попробую кое что перенести из ЗП, но если это слишком сложно то уйдет много времени. Ладно, сейчас пытаюсь сделать смену визуала сталкерам, вроде получается, но есть ошибки, и ещё для вертолетов надо делать. Реально сложная правка. Изменено 11 Декабря 2017 пользователем НаноБот О 1 2 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Поделиться этим сообщением Ссылка на сообщение