Случайная подборка модов
Dream Reader - Dangerous Area
4.1
Old Episodes. Episode 2. War of Zone.
3.1
Путь человека: Шаг в неизвестность
3.8
История Борова
3.5
STCS Weapon Pack 2.6
4.3
Тайный путь
3.6
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Поиск: