Случайная подборка модов
Dream Reader-TFZ 1.1
3.7
Ветер времени
4.5
ReBorn 2.50 «Артефакты смерти»
3.5
Альтернатива 1.2
3.0
История Борова
3.5
Oblivion Lost Remake 2.0
4.1
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Российская Федерация  makdm
    Суббота, 14.03.2020, 01:02 | Сообщение # 6316
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата sumrak6835 ()
    Такие вопросы задают мастерам, чтоб не тратить лишнего времени, как правило.

    Пургу гоните.
    Тема создана для тех, кто пытается что-то сделать в модинге и у него не получается. Вот тогда "Мастера" подскажут правильное решение.
    Вы же хотите сразу получить готовое решение не напрягая извилины.

    Цитата sumrak6835 ()
    А при незнании ответа на вопрос, лучшим вариантом будет промолчать.

    Я знаю ответ.
    Просто не считаю нужным отвечать тому, кто сам ничего для решения вопроса не сделал, а ждет готового решения.
      Злобная реклама
    Суббота, 14.03.2020, 01:02
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  Hozar_2002
    Суббота, 14.03.2020, 07:24 | Сообщение # 6317
    Статус:
    Новичок:
    Сообщений: 347
    Награды: 7
    Регистрация: 22.04.2017

    Цитата makdm ()
    И вот зачем такой мертвяк?
    Локация планируется проходной, но с большим заселением. И в качестве оптимизации или типа того (например) все что можно чистить. Лампочки и лестницы думаю удалять не нужно, не на столько все необходимо.
    Сообщение отредактировал Hozar_2002 - Суббота, 14.03.2020, 07:25
      Злобная реклама
    Суббота, 14.03.2020, 07:24
    Статус:
    Сообщений: 666
    Регистрация: 22.04.2017
    Российская Федерация  Lektorrr
    Суббота, 14.03.2020, 10:17 | Сообщение # 6318
    Статус:
    Новичок:
    Сообщений: 266
    Награды: 5
    Регистрация: 09.01.2013

    Цитата makdm ()
    Я знаю ответ.
    Просто не считаю нужным отвечать тому, кто сам ничего для решения вопроса не сделал, а ждет готового решения.

    Насколько я знаю, в ЗП неписи, в частности симуляционные незаскриптованные, вообще между локациями не перемещаются и нигде эта фича в аддоне не используется.

    Я искал искал ответ на свой вопрос в Гугле и на форумах, но так и не нашел решения. Если в ЗП переход НПС не вырезан и просто не задействуется - значит я признаю, что виноват и не попробовал перевести вручную НПС через граф.

    Однако, я все еще не понимаю: а как же заставить симуляционные отряды самостоятельно ходить между уровнями?
    Сообщение отредактировал Lektorrr - Суббота, 14.03.2020, 10:27
      Злобная реклама
    Суббота, 14.03.2020, 10:17
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2013
    Российская Федерация  Neptun
    Суббота, 14.03.2020, 11:22 | Сообщение # 6319
    Связной
    Статус:
    Бывалый:
    Сообщений: 672
    Награды: 9
    Регистрация: 25.03.2012

    Цитата Lektorrr ()
    Однако, я все еще не понимаю: а как же заставить симуляционные отряды самостоятельно ходить между уровнями?

    К чему такая принципиальность? Как вообще можно узнать, что какой-то отряд перешёл на другую локацию? Если вы имеете в виду каких-нибудь сюжетных неписей, которых вам нужно сопроводить по локациям, то в оригинале это сделано так: удаляем сквад на Затоне, спавним новый сквад на Юпитере. Только так. А для создания симуляции жизни в ЗП достаточно инструментов.
    Сообщение отредактировал Neptun - Воскресенье, 15.03.2020, 13:48
      Злобная реклама
    Суббота, 14.03.2020, 11:22
    Статус:
    Сообщений: 666
    Регистрация: 25.03.2012
    Российская Федерация  Lektorrr
    Суббота, 14.03.2020, 12:51 | Сообщение # 6320
    Статус:
    Новичок:
    Сообщений: 266
    Награды: 5
    Регистрация: 09.01.2013

    Цитата Neptun ()
    для создания симуляции жизни в ЗП достаточно инструментов.

    Интересует именно путешествие рандомных НПС по игровому миру, а не только в рамках одной локации. Например, однажды встретив сталкера на кордоне, мы могли бы увидеть его уже на свалке.
    Сообщение отредактировал Lektorrr - Суббота, 14.03.2020, 12:51
      Злобная реклама
    Суббота, 14.03.2020, 12:51
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2013
    Сомали  WolfHeart
    Суббота, 14.03.2020, 13:03 | Сообщение # 6321
    Статус:
    Опытный:
    Сообщений: 3154
    Награды: 18
    Регистрация: 06.06.2017

    Цитата Lektorrr ()
    Интересует именно путешествие рандомных НПС по игровому миру, а не только в рамках одной локации.

    Посмотри как это реализованно в СоС.
      Злобная реклама
    Суббота, 14.03.2020, 13:03
    Статус:
    Сообщений: 666
    Регистрация: 06.06.2017
    Российская Федерация  Lektorrr
    Суббота, 14.03.2020, 13:50 | Сообщение # 6322
    Статус:
    Новичок:
    Сообщений: 266
    Награды: 5
    Регистрация: 09.01.2013

    Цитата WolfHeart ()
    Посмотри как это реализованно в СоС.

    В СоС тотально перелопачены практически все скрипты и симуляция в целом. Достать что-то оттуда отдельно довольно проблематично.

    Кстати, похожая фича есть и в моде "Ветер Времени", но там вроде как нет исходников движка.
      Злобная реклама
    Суббота, 14.03.2020, 13:50
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2013
    Польша  BL00Der
    Воскресенье, 15.03.2020, 14:41 | Сообщение # 6323
    Статус:
    Гость:
    Сообщений: 33
    Награды: 0
    Регистрация: 26.11.2017

    Я создал мутанта на основе тушкана. Мутант, однако, не борется со мной и убегает. Какие параметры в его конфиге должны быть изменены, чтобы он не убежал от боя?
      Злобная реклама
    Воскресенье, 15.03.2020, 14:41
    Статус:
    Сообщений: 666
    Регистрация: 26.11.2017
    Российская Федерация  Dalavier
    Воскресенье, 15.03.2020, 16:00 | Сообщение # 6324
    Статус:
    Зевака:
    Сообщений: 8
    Награды: 0
    Регистрация: 27.02.2018

    Здравствуйте, подскажите простой скрипт на закрытие окна КПК во время выброса (не на CoP, а на CoC, но разницы нет). Что-то я по всякому пробую, не получается. Платформа СоС 1.4.22, если начался выброс, а в это время открыт КПК (карта) нужно ее просто автоматически закрыть.

    Зачем нужно: есть такой скрипт pda_off, который во время выброса вместо КПК показывает картинку. Так вот если открыть КПК ДО начала выброса, а потом его закрыть игра вылетит, потому что hud = nil,

    Вот кусок кода:


    Нужно или в Surge_manager добавить проверку на открытый ПДА и принудительно его закрыть или в этом коде дописать эту проверку. Подскажите решение пожалйуста.
      Злобная реклама
    Воскресенье, 15.03.2020, 16:00
    Статус:
    Сообщений: 666
    Регистрация: 27.02.2018
    Украина  molodoy_chelovek
    Воскресенье, 15.03.2020, 17:06 | Сообщение # 6325
    Статус:
    Новичок:
    Сообщений: 316
    Награды: 2
    Регистрация: 14.07.2019

    Цитата Dalavier ()
    открыт КПК (карта) нужно ее просто автоматически закрыть.

    карта открывается/закрывается консольной командой "map"(user.ltx). Вызвать консольную команду можно функцией get_console():execute("команда"). А по поводу hud = nil думаю можно сделать проверку перед вызовом hud функций:
    Цитата
    if hud ~= nil then
    вызов hud функции
    else
    повторяем действия с переменными hud и window из вашего куска кода (после первых проверок)
    .
    Сообщение отредактировал molodoy_chelovek - Воскресенье, 15.03.2020, 17:13
      Злобная реклама
    Воскресенье, 15.03.2020, 17:06
    Статус:
    Сообщений: 666
    Регистрация: 14.07.2019
    Российская Федерация  Dalavier
    Воскресенье, 15.03.2020, 17:29 | Сообщение # 6326
    Статус:
    Зевака:
    Сообщений: 8
    Награды: 0
    Регистрация: 27.02.2018

    Что-то ничего не получается, пробовал в surge_manager в список
    Код
        if (self.started == true) then
      xr_statistic.inc_counter("surges")
      self:kill_all_unhided()
      self:respawn_artefacts_and_replace_anomaly_zone()
      self:toggle_level_artefact_respawns()

    добавить команду закрытия ПДА - не работает, не закрывается, если на старте выброса он открыт

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

    Нарисовал вот такое:
    Код
    if (pdaoff_blowpsi) then
        if actor then
      if info_id == "ui_pda" and (surge_manager.is_started() or psi_storm_manager.is_started()) then
       if hud ~= nil then
        get_hud():RemoveDialogToRender(hud)
        HUD = nil
        elseif info_id == "ui_pda" and (surge_manager.is_started() or psi_storm_manager.is_started()) then
        hud = get_hud()
       window = PdaNoiseWnd()
       hud:AddDialogToRender(window)
        elseif info_id == "ui_pda_hide" and (surge_manager.is_started() or psi_storm_manager.is_started()) then
       hud:RemoveDialogToRender(window)
       window = nil
       hud = nil
       end
      end
        end
    end

    Теперь вылета нет, открытый ПДА закрывается во время выброса, открывается окно window, но теперь ПДА не закрывается, окно висит все время, а повторное нажание на кнопку вызова ПДА открывает обычный ПДА поверх window. Что-то я намудрил
    Сообщение отредактировал Dalavier - Воскресенье, 15.03.2020, 18:31
      Злобная реклама
    Воскресенье, 15.03.2020, 17:29
    Статус:
    Сообщений: 666
    Регистрация: 27.02.2018
    Украина  molodoy_chelovek
    Воскресенье, 15.03.2020, 19:50 | Сообщение # 6327
    Статус:
    Новичок:
    Сообщений: 316
    Награды: 2
    Регистрация: 14.07.2019

    Цитата Dalavier ()
    get_hud():RemoveDialogToRender(hud)

    Я думаю эта строка должна выглядеть так
    Цитата Dalavier ()
    hud:RemoveDialogToRender(window)
      Злобная реклама
    Воскресенье, 15.03.2020, 19:50
    Статус:
    Сообщений: 666
    Регистрация: 14.07.2019
    Российская Федерация  Dalavier
    Воскресенье, 15.03.2020, 19:57 | Сообщение # 6328
    Статус:
    Зевака:
    Сообщений: 8
    Награды: 0
    Регистрация: 27.02.2018

    Цитата molodoy_chelovek ()
    Я думаю эта строка должна выглядеть так

    Так окно подмены window появляется единожды, закрываешь ПДА, и при следующих открытиях ПДА (во время выброса) уже открывается обычный.

    Уже много перепробовал разных вариантов, почти получилось, но все равно какие-то затыки есть. Может быть все-таки лучший вариант это принудительное закрытие ПДА при начале выброса, но опять-таки в surge_manager.script в том списке, где перечислены
    Код
    xr_statistic.inc_counter("surges")
      self:kill_all_unhided()
      self:respawn_artefacts_and_replace_anomaly_zone()
      self:toggle_level_artefact_respawns()

    как добавить это условие принудительного закрытия ПДА. Мне кажется это решило бы проблему на корню.
    Сообщение отредактировал Dalavier - Воскресенье, 15.03.2020, 20:40
      Злобная реклама
    Воскресенье, 15.03.2020, 19:57
    Статус:
    Сообщений: 666
    Регистрация: 27.02.2018
    Украина  molodoy_chelovek
    Воскресенье, 15.03.2020, 20:58 | Сообщение # 6329
    Статус:
    Новичок:
    Сообщений: 316
    Награды: 2
    Регистрация: 14.07.2019

    Цитата Dalavier ()
      if info_id == "ui_pda"

    это как я понимаю проверка на активное окно ПДА. Проверяется оно (опять же как я понял)апдейтом. В прошлом апдейте вы вывели на экран window, переменная худ не равна nil. Следующий апдейт проходит проверку hud ~= nil в связи с чем и удаляет с экрана window. И таким образом получается цикл - окно создаётся и мгновенно удаляется.

    Добавлено (15.03.2020, 21:02)
    ---------------------------------------------
    и вообще, почему вы ВНУТРИ этой проверки
    Цитата Dalavier ()
    if info_id == "ui_pda"
    проверяете еще и это?...
    Цитата Dalavier ()
    elseif info_id == "ui_pda_hide"
    Если по логике это должно быть отдельной проверкой
    Сообщение отредактировал molodoy_chelovek - Воскресенье, 15.03.2020, 21:03
      Злобная реклама
    Воскресенье, 15.03.2020, 20:58
    Статус:
    Сообщений: 666
    Регистрация: 14.07.2019
    Российская Федерация  Dalavier
    Воскресенье, 15.03.2020, 21:50 | Сообщение # 6330
    Статус:
    Зевака:
    Сообщений: 8
    Награды: 0
    Регистрация: 27.02.2018

    В общем, единственное до чего тупая бащка додумалась, это вот такая конструкция, хотя бы не вылетает, но и работает неправильно:
    Код
    if (pdaoff_blowpsi) then
        if actor then
      if info_id == "ui_pda" and (surge_manager.is_started() or psi_storm_manager.is_started()) then
       if hud ~= nil then
        hud = get_hud()
        hud:RemoveDialogToRender(hud)
        hud:RemoveDialogToRender(window)
        window = nil
        hud = nil
         elseif info_id == "ui_pda_hide" and (surge_manager.is_started() or psi_storm_manager.is_started()) then
          hud:RemoveDialogToRender(window)
          hud:RemoveDialogToRender(hud)
          window = nil
          hud = nil
       else
        if info_id == "ui_pda" and (surge_manager.is_started() or psi_storm_manager.is_started()) then
         hud = get_hud()
         window = PdaNoiseWnd()
         hud:AddDialogToRender(window)
          elseif info_id == "ui_pda_hide" and (surge_manager.is_started() or psi_storm_manager.is_started()) then
           hud:RemoveDialogToRender(window)
           hud:RemoveDialogToRender(hud)
           window = nil
           hud = nil
        end
       end
      end
        end
    end

    При начале выброса не вылетет, но каждое повторное нажатие кнопки вызова ПДА, сначала вылазит окно-заглушка, потом под ним появляется худ, потом открывается обычный ПДА с картой, а потом закрывается все. И так по циклу. Хрень какая-то.
      Злобная реклама
    Воскресенье, 15.03.2020, 21:50
    Статус:
    Сообщений: 666
    Регистрация: 27.02.2018
    Поиск: