Случайная подборка модов
Время перемен v1.0
3.8
Голос: Эпизод 1
4.1
Dream Reader-TFZ 1.1
3.7
Вектор Отчуждения
4.2
Хроники Кайдана
3.6
Обречённый город
4.2
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
[CoP] Модострой: вопросница
Российская Федерация  Overfirst
Воскресенье, 31.12.2017, 13:17 | Сообщение # 1
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

[CoP] Модострой: вопросница

Тема посвящена моддингу на платформе Зов Припяти.

Соседние темы: Тень Чернобыля / Чистое небо.


  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.

  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.

  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).

  • Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
  •   Злобная реклама
    Воскресенье, 31.12.2017, 13:17
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Российская Федерация  denis2000
    Среда, 17.06.2020, 21:04 | Сообщение # 7486
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    sergej5500, Поштучно удалить патроны, просто так нельзя, можно только пачку. Конечно можно перед удалением пачки считать через нетпакет сколько там патронов, а потом добавлять разницу или удалять еще одну пачку если не хватило этой. Точно нужен такой гемор?


    Сообщение отредактировал denis2000 - Четверг, 18.06.2020, 09:29
      Злобная реклама
    Среда, 17.06.2020, 21:04
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  sergej5500
    Среда, 17.06.2020, 21:30 | Сообщение # 7487
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    Цитата denis2000 ()
    Точно нужен такой гемор?


    Да не особо. Идея была такая.

    В Зове Припяти игрок осуществляет переходы между локациями с Лоцманом. Или внутрилокационные переходы со случайными сквадами сталкеров.

    Задумали при каждом таком переходе рандомно изнашивать оружие и броню в активных слотах. Как будто при переходе бывают разные случайности. И снаряга изнашивается.

    Функцию для рандомного износа снаряги написать несложно.

    Как приложение к этой функции была задумка удалить из инвентаря некоторое кол-во патронов. Будто бы их расстреляли. Но для этого патроны желательно удалять поштучно.

    Ну нет такой функции - так нет. И без неё обойдемся.

    Добавлено (17.06.2020, 23:01)
    ---------------------------------------------
    Добрый вечер.

    Можно ли прописать бустеру - аптечке - ухудшение здоровья ГГ и заражение ГГ радиацией.

    Прописал в конфиг отрицательные числа

    boost_health_restore = -0.5
    boost_radiation_restore = -0.9

    Результат нулевой. Это вообще сработает?

      Злобная реклама
    Среда, 17.06.2020, 21:30
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Российская Федерация  denis2000
    Четверг, 18.06.2020, 09:27 | Сообщение # 7488
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    Цитата sergej5500 ()
    Ну нет такой функции - так нет.

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

    Цитата sergej5500 ()
    Это вообще сработает?

    Нет конечно, вы же это сами проверили! Судя по всему движек не ожидает там отрицательных параметров, вот и не реагирует. Значит придется делать это через скрипты, отрабатывая колбек на использования предметов-бустеров.
      Злобная реклама
    Четверг, 18.06.2020, 09:27
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  OP_artovod
    Четверг, 18.06.2020, 09:53 | Сообщение # 7489
    Статус:
    Отмычка:
    Сообщений: 125
    Награды: 0
    Регистрация: 28.03.2020

    Expression : !m_error_code
    Function : raii_guard::~raii_guard
    File : ..\xrServerEntities\script_storage.cpp
    Line : 748
    Description : ...call of pripyat\gamedata\scripts\bind_stalker.script:507: attempt to concatenate field '?' (a nil value)

    что за вылет? при любой загрузке сейва, при любом переходе он.
      Злобная реклама
    Четверг, 18.06.2020, 09:53
    Статус:
    Сообщений: 666
    Регистрация: 28.03.2020
    Российская Федерация  sergej5500
    Четверг, 18.06.2020, 11:29 | Сообщение # 7490
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    Цитата denis2000 ()
    Судя по всему движек не ожидает там отрицательных параметров, вот и не реагирует. Значит придется делать это через скрипты, отрабатывая колбек на использования предметов-бустеров.


    Спасибо. Я примерно так и подумал. Просто хотел еще раз уточнить, прежде чем лезть в скрипты.

    Цитата OP_artovod ()
    Description : ...call of pripyat\gamedata\scripts\bind_stalker.script:507: attempt to concatenate field '?' (a nil value)


    Хотелось бы посмотреть на 507 строку из вашего bind_stalker. Какой то параметр не определен.
      Злобная реклама
    Четверг, 18.06.2020, 11:29
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Российская Федерация  Winsor
    Четверг, 18.06.2020, 11:48 | Сообщение # 7491
    Статус:
    Отмычка:
    Сообщений: 163
    Награды: 0
    Регистрация: 22.04.2020

    Два вопроса всё ещё остаются без ответа.
    Вопрос 1: Жми
    Вопрос 2: Жми (Ссылка не найдена/истёк срок скачивания.)
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------
    OP_artovod, Если правил bind_stalker то пиши сразу, какая строка, а то гадать придётся.
    В оригинальном файле 507 строчка:
    for i = 1,count do
    в функции function spawn_achivement_items
    Сообщение отредактировал Winsor - Четверг, 18.06.2020, 11:49
      Злобная реклама
    Четверг, 18.06.2020, 11:48
    Статус:
    Сообщений: 666
    Регистрация: 22.04.2020
    Российская Федерация  OP_artovod
    Четверг, 18.06.2020, 13:29 | Сообщение # 7492
    Статус:
    Отмычка:
    Сообщений: 125
    Награды: 0
    Регистрация: 28.03.2020

    function actor_binder:load(reader)
    set_save_marker(reader, "load", false, "actor_binder")
    object_binder.load(self, reader)
    --' Загружаем уровень сложности
    local game_difficulty = reader:r_u8()
    printf("load game_difficulty %s", tostring(game_difficulty))
    вот это 507 строка get_console():execute("g_game_difficulty "..game_difficulty_by_num[game_difficulty])
    local stored_input_time = reader:r_u8()
    if stored_input_time == true then
    self.st.disable_input_time = utils.r_CTime(reader)
    end
    xr_logic.pstor_load_all(self.object, reader)
    self.weather_manager:load(reader)
    release_body_manager.get_release_body_manager():load(reader)
    -- self.surge_manager:initialize()
    -- AtmosFear
    self.atmosfear:load(reader)
    self.psi_storm_manager:load(reader)
    self.fallout_manager:load(reader)
    self.f_psi_storm_manager_loaded = true
    -- End AtmosFear
    self.surge_manager:load(reader)
    self.f_surge_manager_loaded = true
    sr_psy_antenna.load(reader)
    sim_board.get_sim_board().simulation_started = reader:r_bool()

    xr_sound.actor_load(reader)
    local n = reader:r_stringZ()
    if(n~="nil") then
    self.last_level_name = n
    end
    xr_statistic.load(reader)
    treasure_manager.get_treasure_manager():load(reader)
    n = reader:r_u8()
    for i = 1,n do
    db.script_ids[reader:r_u16()] = reader:r_stringZ()
    end

    task_manager.get_task_manager():load(reader)

    -- self.actor_weapon_on_start = reader:r_bool()

    self.loaded_active_slot = reader:r_u8()

    self.loaded_slot_applied = false

    local b = reader:r_bool()
    if(b) then
    self.deimos_intensity = reader:r_float()
    end

    local stored_achievement_time = reader:r_bool()
    if stored_achievement_time == true then
    self.last_detective_achievement_spawn_time = utils.r_CTime(reader)
    end
    stored_achievement_time = reader:r_bool()
    if stored_achievement_time == true then
    self.last_mutant_hunter_achievement_spawn_time = utils.r_CTime(reader)
    end
    set_save_marker(reader, "load", true, "actor_binder")
    end
      Злобная реклама
    Четверг, 18.06.2020, 13:29
    Статус:
    Сообщений: 666
    Регистрация: 28.03.2020
    Российская Федерация  denis2000
    Четверг, 18.06.2020, 13:47 | Сообщение # 7493
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    OP_artovod, Типичная проблема битых сейвов! В строке local game_difficulty = reader:r_u8() из нетпакета актора считывается значение переменной от 0 до 3 (в цифровом виде значение уровня сложности игры) но считанное значение не попало в указанный диапазон, в результате вылет. Нужно искать причину краша сохранений, а это не тривиальная и очень увлекательная задача.


    Winsor, Вопрос 2: Мод Медицина
    Сообщение отредактировал denis2000 - Четверг, 18.06.2020, 15:37
      Злобная реклама
    Четверг, 18.06.2020, 13:47
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  Winsor
    Четверг, 18.06.2020, 17:01 | Сообщение # 7494
    Статус:
    Отмычка:
    Сообщений: 163
    Награды: 0
    Регистрация: 22.04.2020

    Как разрешить НПС кидать дымовые гранаты и по возможности не дать видеть им сквозь дым?
      Злобная реклама
    Четверг, 18.06.2020, 17:01
    Статус:
    Сообщений: 666
    Регистрация: 22.04.2020
    Российская Федерация  sergej5500
    Четверг, 18.06.2020, 18:09 | Сообщение # 7495
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    Цитата Winsor ()
    Как разрешить НПС кидать дымовые гранаты


    Добавить их им в инвентарь. Будут кидать как обычные гранаты.

    Цитата Winsor ()
    не дать видеть им сквозь дым?


    Вероятно, без редактирования движка не обойтись.

    Есть, впрочем, одна идея. При взрыве дымовой гранаты спавнить в точке взрыва объект подходящего класса. С визуалом дымового облака и непрозрачным. Объект должен быть проницаемым. Инвентори бокс, например. Или что-то другое. Через несколько секунд удалять. Не уверен, правда, что такой объект (визуал) в игре можно найти.
      Злобная реклама
    Четверг, 18.06.2020, 18:09
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Российская Федерация  Winsor
    Четверг, 18.06.2020, 18:30 | Сообщение # 7496
    Статус:
    Отмычка:
    Сообщений: 163
    Награды: 0
    Регистрация: 22.04.2020

    sergej5500, А я думал нужно редактировать скрипты.
    Цитата sergej5500 ()
    Не уверен, правда, что такой объект (визуал) в игре можно найти.
    Но можно его создать.
      Злобная реклама
    Четверг, 18.06.2020, 18:30
    Статус:
    Сообщений: 666
    Регистрация: 22.04.2020
    Российская Федерация  sergej5500
    Четверг, 18.06.2020, 18:47 | Сообщение # 7497
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    Winsor,

    Можно еще попробовать такое направление. Получится кривовато, но что есть.

    1. В точке взрыва гранаты спавним объект со стори-ид. Без визуала.

    2. В скрипт xr_motivator - или дочерние от него прописываем измерение дистанции до объекта со стори-ид.

    3. Если дистанция меньше заданной - примерный радиус дымового облака или чуть больше, то понижаем радиус поля зрения сталкера. До 1 метра, например. Будто он попал в облако дыма.

    4. Через некоторое время объект удаляем. Радиус зрения сталкера восстанавливаем.

    По такой схеме срабатывали мины в СГМ разных версий. Скрипты можно взять оттуда и подправить.
      Злобная реклама
    Четверг, 18.06.2020, 18:47
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Украина  AziatkaVictor
    Четверг, 18.06.2020, 18:52 | Сообщение # 7498
    Статус:
    Опытный:
    Сообщений: 1313
    Награды: 4
    Регистрация: 30.08.2018

    sergej5500, а как же зрение НПС сквозь дым? Если он не будут внутри, то они будут все прекрасно видеть. Это понятно, что непросто сделать, но лучше тогда уже не добавлять дым. гранаты, так как это дизбаланс в сторону НПС.
      Злобная реклама
    Четверг, 18.06.2020, 18:52
    Статус:
    Сообщений: 666
    Регистрация: 30.08.2018
    Российская Федерация  sergej5500
    Четверг, 18.06.2020, 19:01 | Сообщение # 7499
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    Цитата AziatkaVictor ()
    Если он не будут внутри, то они будут все прекрасно видеть.


    Я и написал, что будет криво. Или увеличивать радиус невидимости.
      Злобная реклама
    Четверг, 18.06.2020, 19:01
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Украина  AziatkaVictor
    Четверг, 18.06.2020, 19:09 | Сообщение # 7500
    Статус:
    Опытный:
    Сообщений: 1313
    Награды: 4
    Регистрация: 30.08.2018

    sergej5500, тогда, если их заденет, то они не будут видеть в сторону, противоположную от дыма. Вообщем, трудно будет это реализовать, может, поэтому их и нету в сингл игре...
      Злобная реклама
    Четверг, 18.06.2020, 19:09
    Статус:
    Сообщений: 666
    Регистрация: 30.08.2018
    Поиск: