Модификация игры на С

Тема в разделе "WASM.COMMERCE", создана пользователем Navlib_lib, 26 апр 2020.

  1. Navlib_lib

    Navlib_lib New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2020
    Сообщения:
    2
    Есть одна древняя убер-игра, написанная на С, -

    Я делаю для неё карты, моддинг, в общем. Все NPC, которые есть в одиночной игре перемещаются по карте по определённым навигационным меткам.

    Такая метка называется "node".

    Если ты их по карте не расставишь, боты не смогут ориентироваться в пространстве и будут жёстко тупить. Поэтому лучше покрыть ими всю поверхность, по которой можешь ходить сам.

    Делается это через консольные команды. Просто вводишь и бегаешь, а игра делит пространство на определённые клетки, где 4 клетки = 1 node. Ты бегаешь, создаётся файл .nav в корне игры и всё - после этого NPC тебя достанут, где хочешь.

    Инструкцию, как их расставлять, я нашёл здесь - https://www.kingpin.info/?p=setting-...ion-in-kingpin

    Проблема в том, что разработчики сделали для nodes лимит - 695, не больше. Мне нужно расширить это число, ибо карта у меня большая, а резать её абсолютно не вариант. Расширить, например, до 10000, исключая при этом дальнейшие вылеты, баги, тормоза и т.д., что может сказаться по факту влезания в игровой код. Так сказать, заставить игру работать так же чётко и ровно, как она это делает в своей изначальной сборке разработчиками, но с таким вот расширением.

    Что имеем:
    SDK в виде .c и .h файлов, где эти 695 есть, но их изменение ни на что не
    влияет. Там, кстати, строка "#define max_nodes 700", а не 695 почему-то, но да ладно.

    Navlib.lib - статическая(как я понимаю) библиотека в самом SDK, которая используется при его компиляции. Скорее всего, в нём тоже есть какая-то константа, которая и ставит ограничения на количество nodes, но исходников от неё нет.

    Всю папку исходников прикрепляю к этому сообщению.

    Я уже пробовал открывать его через Hex Editor и мудрить с константами, удавалось число меток можно увеличить до 730, но игра постоянно вылетает тогда. Также открывал через IDA, там в коде есть конкретная строчка с "> 694" и ниже printf с сообщением о "max_nodes reached", если достигаются те 695. Была идея всё декомпилировать\реверсировать, исправить 695 на нечто большее не через Hex, где непонятно, то ли это вообще место в коде правится, а через сам код и компилировать обратно, проверив, получится ли расширить число nodes без каких-либо проблем.

    Возможно, никакой реверс и не нужен, а всё решается гораздо проще. Поэтому, если кому-то это интересно, можем договориться о цене и наконец добить эту игрушку. На самом деле, вещей, которые, я бы в ней исправил, хватает, но этот момент - основной, поэтому в перспективе можно работать с игрой долгое время. Моя почта - fpfhtyrj@mail.ru
     

    Вложения:

  2. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    600
    Ковыряешь игру по типу XRayExtensions? Ну тут надо разбираться с кодом игры, там могут быть ещё константы связанные с этой 695.
    Например, в XRay есть ограничение на скорость полёта физ. тела 150 м/с, и мне это мало, но исправить это число для XRay 1.0(который Тень Чернобыля) не просто, т.к много сопутствующих констант. Хотя есть исходники этой игры, но за версии 1.0007, а ковыряю 1.0006.
     
  3. Navlib_lib

    Navlib_lib New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2020
    Сообщения:
    2
    Понятие не имею, что такое "XRayExtensions". Я не знаю, что там за константы и с чем их есть. Нужно разбираться с кодом игры- хорошо. Надо реверсировать - хорошо. Надо что-то (диз)ассемблить - хорошо. Пусть, профессионал посмотрит на игру, скажет, что конкретно нужно для решения моей задачи и обсудим цену. Не договоримся - уйду копить, договоримся - будет всем счастье.

    Вы попытаетесь?
     
  4. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    600
    Расширение движка XRay который используется для игры S.T.A.L.K.E.R. т.е. трилогии.
    Ковырять какой то движок, у меня сейчас совсем нет желание, да я и от сталкера устал, может вернусь к нему через месяц или два. Но что то другое ковырять совсем нет желание, это же вникать надо, как там, да что, это же не спроста ограничение 695, возможно придётся сильно код переделывать, добавлять сопли и т.д.