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

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


У меня такие дилетантские вопросы. Как сохраняются объекты в ОП-2.1 при перемещении в самопальный тайник? Сохраняются ли они вообще как объекты (т.к. по описанию эти тайники почти не "нагружают" систему)? Насколько сложно воссоздать подобную схему (или что-то вроде пересоздания объекта с переносом нет-пакета) или проще обратиться в другую тему с поиском нужных исходных файлов? 

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

Здесь могла быть ваша реклама.

Ссылка на комментарий

@mole venomous, думаю, там сохраняются только основные данные о объектах. Например, секция, состояние, количество патронов и наличие навесов для оружия, и т.д... 

14 минут назад, mole venomous сказал:

проще обратиться в другую тему с поиском нужных исходных файлов?

Проще самому посмотреть, что и как, в файлах мода.

  • Согласен 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий

Здрасьте.

 

Задача: вывести шкалу с последовательным заполнением делений: https://drive.google.com/open?id=1EBywWOQW3TvpG3rpP9Ula394q4LA4yzy

Вроде бы простое решение: SEQ-файл с набором кадров.

Проблема: анимация проигрывается со 2-го кадра, потом с 3-го, потом с 5-го, потом правильно, потом еще с какого-нибудь левого кадра – такое впечатление, что каждый второй-третий раз начальный кадр выбирается случайным образом, потом один-два раза сдвигается на +1, потом опять выбирается случайно.

Как с таким поведением бороться?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
5 часов назад, Norman Eisenherz сказал:

последовательным заполнением делений

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

Здесь могла быть ваша реклама.

Ссылка на комментарий

@mole venomous Это уже сложное решение – вдвое больше кода (хотя все равно не больше 60 строк). У меня вопрос в другом: как заставить SEQ-анимацию проигрываться всегда с 1-го кадра?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

@Norman Eisenherz, а CUIProgressBar для твоих целей не подойдёт? Там при задании значения (SetProgressPos) длина шкалы изменяется плавно.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий

@naxac

1. Нет, мне как раз нужна шкала с дискретным заполнением, по одной ячейке в секунду.

2. Можно картинку с примером применения CUIProgressBar? В имеющихся у меня файлах (ТЧ, OGSE, солянка 2010) только описание в lua_help.

3. Первым кадром анимации, описанной в SEQ-файле, все-таки можно управлять, или он всегда выбирается случайно?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

Подскажите, существует ли скриптовый метод запретить автоматическую перезарядку оружия? Или на крайний случай, отловить момент начала перезарядки?

Здесь могла быть ваша реклама.

Ссылка на комментарий
5 минут назад, mole venomous сказал:

существует ли скриптовый метод

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

И если задавать вопрос "существует ли" - то уточнять, о каком движке речь.

  • Согласен 2

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

@mole venomous, если в чистом ТЧ, то нет, есть в x-ray ext последней ревизии, но там задаются в оружейных конфигах - запретить или нет авто-перезарядку. Есть в OGSR, но там, по моему, в самом движке железно отключена авто-перезарядка, если с того времени когда я тыкал тот двиг, не чего не изменилось.

  • Спасибо 1

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий

@Norman Eisenherz

2. https://github.com/naxac/CP2_AddOn/commit/f34310407a98f13d24c5b36d3c1008b058b96f65

Можно через нужные промежутки времени прибавлять значение, передаваемое в SetProgressPos.

3. Всегда думал, что *.seq проигрывается с самой первой (верхней) текстуры. Интересно... Управлять первым кадром точно нельзя.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий

gam,

Вроде как с частотой кадров, т.е. точной частоты нет.

  • Полезно 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Здрасьте.

 

Начал ковырять нетпакеты… По файлу [weap_data.script] из старого мода "Ночные прицелы" восстановил порядок и тип переменных, потом прочитал по одной с начала и с конца со сдвигом (lvid и condition) – результат сходится с тем, что выдают обычные функции.

https://drive.google.com/open?id=1LvustUkaKFNZWCMUUsZ0V-7Rms8RwfoF

 

Насколько я могу судить по записям на форуме, полученная таблица подходит только для типа предметов "огнестрельное оружие без гранатомета". Где можно найти аналогичную информацию (порядок и тип переменных) для нетпакетов NPC, брони, оружия с гранатометом и других типов игровых объектов? Можно ли эту информацию как-то получить из самого нетпакета, или в нем хранятся только значения, которые невозможно прочитать без знания их типов?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
1 час назад, Norman Eisenherz сказал:

Где можно найти аналогичную информацию

В модулях Артоса, вроде как, параметры с названиями а не просто набором байт. Уж 10 лет как.

Или нужно нечто другое? Тогда я не понял, что именно.

  • Согласен 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий
6 hours ago, Norman Eisenherz said:

хранятся только значения, которые невозможно прочитать без знания их типов?

Именно так.

 

Уже все изобретено до вас. Найди m_netpk  и не изобретай велосипедов.

 

Вообще совет и не только тебе. Прочитайте эту и соседнии темы с самого начала.

  • Согласен 1
Ссылка на комментарий
2 часа назад, dsh сказал:

Прочитайте эту и соседнии темы с самого начала.

Ох и добрый ты :)

 

Я бы другой совет дал бы. Не засиживаться на ванильном ТЧ, каким бы новичком и вообще не-программистом вы ни были. Устарел он, для 2020 года. И соотв-но, не тратить слишком уж время на прочтение того, что только для него актуально.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

@Zander_driver 

1. В OGSE есть обработчик [m_net_utils.script] – это те самые "модули Артоса"?

2. Я ни в коем случае не пытаюсь освоить современное программирование ковырянием игры 2007 года – я пытаюсь уменьшить количество "кочек" в игре, в которой приятно убивать время, для чего перебираю существующие моды и пытаюсь их повторить в той мере, в которой это подходит для моих целей. Готовые решения уровня "электросамокат с гироскопом, GPS и подсветкой дороги" не годятся, если мне нужна просто табуретка. Опять же, даже чужие функции надо изучить, чтобы понять причину ошибок и вылетов.

@dsh

1. Ссылка на [m_netpk.script] на GitHub у меня есть, но так как из этих черных ящиков под названием "нетпакеты" я пока докопался до начинки только одного, 3,5к строк кода я буду изучать долго.

2. Как вскрывали нет-пакеты на момент выхода игры? Вслепую перебирали тип данных для каждого параметра, потом так же вслепую сравнивали полученные значения с данными в игре, чтобы определить переменную? Должен же быть какой-то более продуктивный метод.

 

Теперь практика: проверка состояния фонарика и ПНВ

Spoiler

function net_cse_alife_item_torch:__init(obj,mode)

self.st_props = {}
self.up_props = {
        { name = 'torch_flags',   type = 'u8',  default = -1 },


    _G.torch_flags = { --/ torch
        Active            = 1,
        NightVisionActive = 2,
        Attached          = 4

 

Вывод: переменная состояния фонарика имеет тип u8 и находится в начале раздела UPDATE.

 

Spoiler

    local item = db.actor:item_in_slot(9)
    if item then
        local sobj = alife():object(item:id())
        local pk = net_packet()
        sobj:UPDATE_Write(pk)
        pk:r_seek(0)
        local v = pk:r_u8()
        news_manager.send_tip(db.actor, v)
    end

 

Результат: 0 в любом состоянии.

 

Эксперимент: читаю аналогичное значение от конца раздела UPDATE через сдвиг pk:r_seek(pk:w_tell() -1). Результат: все выключено – 4, фонарик – 5, ПНВ – 6, все вместе – 7. Я не знаю, что именно я прочитал, но это точно переменная размером 1 байт, которая меняется при переключении режима фонарика и остается на указанном значении до следующего переключения. Ну и как сие понимать?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
8 минут назад, Norman Eisenherz сказал:

Ну и как сие понимать?

Прекратить заниматься ерундой и использовать таки m_netpk.script :)

 

Вывод: переменная состояния фонарика имеет тип

u8 и находится в начале раздела UPDATE.

Вывод неверный. Перед блоком переменных фонарика идут блоки переменных классов родителей.

  • Согласен 1
  • Полезно 1
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   1 пользователь

×
×
  • Создать...