Случайная подборка модов
Autumn Aurora 2
4.1
Закон Дегтярева
3.5
Old Episodes. Epilogue
3.2
Время Перемен 2.5
4.0
Clear Sky - Remake
3.8
Ночь Перед Рождеством 3
4.4
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Российская Федерация  Kelvin
    Пятница, 22.05.2020, 23:13 | Сообщение # 7051
    Статус:
    Зевака:
    Сообщений: 19
    Награды: 0
    Регистрация: 17.05.2019

    Всем добра написал проверку для логики которая проверяет что выброс закончился, но с задержкой.
    Цитата
    function surge_complete_delay(p)
    local time_delay = time_global() + p[1] * 1000
    return surge_manager.is_finished() or fallout_manager.is_finished() or psi_storm_manager.is_finished() and time_global() > time_delay
    end

    Но я словил вылет
    Код
    Expression    : !m_error_code
    Function      : raii_guard::~raii_guard
    File          : ..\xrServerEntities\script_storage.cpp
    Line          : 748
    Description   : ...all of pripyat\gamedata\scripts\xr_conditions.script:1756: attempt to perform arithmetic on field '?' (a nil value)

    Я так понял это из-за того что я помножил на p[1]. Если это так то можно это как то обойти?
    P.S И да у меня еще подключена атмосфера поэтому там ещё проверки на другие явления зоны.
      Злобная реклама
    Пятница, 22.05.2020, 23:13
    Статус:
    Сообщений: 666
    Регистрация: 17.05.2019
    Российская Федерация  Overfirst
    Пятница, 22.05.2020, 23:15 | Сообщение # 7052
    Статус:
    Бывалый:
    Сообщений: 1081
    Награды: 19
    Регистрация: 11.06.2015

    Код
    function surge_complete_delay(p)

    Это неправильно. Параметр p передаётся третьим. Первые два - объект актора и объект того, откуда вызывается функция. Вот так верно:
    Код
    function surge_complete_delay(actor, npc, p)

    Вылета не будет, но реализация функции выглядит очень сомнительно... smile
    Оно не будет работать так, как вы хотите.
    Выполнение происходит практически мгновенно и последнее выражение time_global() > time_delay никогда не успеет вернуть true.
      Злобная реклама
    Пятница, 22.05.2020, 23:15
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Российская Федерация  Kelvin
    Пятница, 22.05.2020, 23:28 | Сообщение # 7053
    Статус:
    Зевака:
    Сообщений: 19
    Награды: 0
    Регистрация: 17.05.2019

    Цитата Overfirst ()
    Параметр p передаётся третьим
    Теперь буду знать спасибо.

    Цитата Overfirst ()
    никогда не успеет вернуть true.
    А если так?
    Код
    function surge_complete_delay(actor, npc, p)
        local time_delay = time_global() + p[1] * 1000
        if time_global() > time_delay then
        return surge_manager.is_finished() or fallout_manager.is_finished() or psi_storm_manager.is_finished()
    end
    end
    Сообщение отредактировал Kelvin - Пятница, 22.05.2020, 23:28
      Злобная реклама
    Пятница, 22.05.2020, 23:28
    Статус:
    Сообщений: 666
    Регистрация: 17.05.2019
    Испания  Ayer
    Пятница, 22.05.2020, 23:29 | Сообщение # 7054
    Статус:
    Зевака:
    Сообщений: 3
    Награды: 0
    Регистрация: 22.05.2020

    Доброго времени суток, сделал метательный нож на классе болта (реализацию взял в Упавшей Звезде). Если метнуть нож в НПС который в данный момент выполняет работу на смарт кавере - хит нпс не наносится - hit_callback вообще не срабатывает. Для дефолтных работ на смарт каверах (типа stay_table, stay_wall - без указания Available_animations в логике) хит не срабатывает всегда, если указать другую анимку, то с некоторым хит срабатывает (например с ward), с некоторыми (jup_b41_novikov_stand) нет. В чем может быть причина?
    Конфиг ножа:
    Сообщение отредактировал Ayer - Пятница, 22.05.2020, 23:29
      Злобная реклама
    Пятница, 22.05.2020, 23:29
    Статус:
    Сообщений: 666
    Регистрация: 22.05.2020
    Российская Федерация  Overfirst
    Пятница, 22.05.2020, 23:30 | Сообщение # 7055
    Статус:
    Бывалый:
    Сообщений: 1081
    Награды: 19
    Регистрация: 11.06.2015

    Цитата Kelvin ()
    А если так?

    Неа. smile
    Можно подробнее о том, что требуется сделать?
    Тут level.add_call сможет помочь, я думаю.
      Злобная реклама
    Пятница, 22.05.2020, 23:30
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Российская Федерация  Kelvin
    Пятница, 22.05.2020, 23:36 | Сообщение # 7056
    Статус:
    Зевака:
    Сообщений: 19
    Награды: 0
    Регистрация: 17.05.2019

    Цитата Overfirst ()
    Можно подробнее о том, что требуется сделать?

    Есть место куда ГГ заходить нельзя чтобы люлей не получить, но если происходит выброс, то тогда можно туда заходить. И тут проблема сразу появляется. Если выброс закачивается глав герой сразу пулю получит потому что потому что по логике то время когда он может в данной зоне находится прошло. Вот хотел это при помощи скрипта сделать
      Злобная реклама
    Пятница, 22.05.2020, 23:36
    Статус:
    Сообщений: 666
    Регистрация: 17.05.2019
    Украина  molodoy_chelovek
    Суббота, 23.05.2020, 00:00 | Сообщение # 7057
    Статус:
    Новичок:
    Сообщений: 316
    Награды: 2
    Регистрация: 14.07.2019

    Kelvin, а on_timer чем не подходит? После Выброса запускаем таймер, и по истечению времени переходим на схему в которой игрок погибнет, находясь этой зоне. Как пример.
    Сообщение отредактировал molodoy_chelovek - Суббота, 23.05.2020, 00:01
      Злобная реклама
    Суббота, 23.05.2020, 00:00
    Статус:
    Сообщений: 666
    Регистрация: 14.07.2019
    Украина  AziatkaVictor
    Суббота, 23.05.2020, 00:01 | Сообщение # 7058
    Статус:
    Опытный:
    Сообщений: 1313
    Награды: 4
    Регистрация: 30.08.2018

    makdm, не совсем, у меня добавлен лут у мутантов. Когда ты наводишь на мертвого мутанта то появляется надпись, мол "Собрать лут (F)". Вообщем мод "Мясника".
    Я хотел сделать проверку, что для разделки нужен нож. Я это сделал, все работает как надо, но я хотел изменить надпись, мол "Достаньте нож чтобы разделать", если в руках его нет. Но так получилось, что надпись определяется при смерти мутанта, то есть, когда умирает мутант, то ему присваивается надпись, в зависимости от того, был ли в тот момент в руках нож или нет. Например, убил ножом надпись с лутом, убил с ТОЗа - надпись "Достаньте нож", и она уже никак не измениться. А мне надо чтобы проверка была как бы динамичной и проверяла наличие в руках ножа каждую секунду.
      Злобная реклама
    Суббота, 23.05.2020, 00:01
    Статус:
    Сообщений: 666
    Регистрация: 30.08.2018
    Российская Федерация  Kelvin
    Суббота, 23.05.2020, 00:11 | Сообщение # 7059
    Статус:
    Зевака:
    Сообщений: 19
    Награды: 0
    Регистрация: 17.05.2019

    molodoy_chelovek, Таки да, мне это тоже в голову пришло. Только я не помню можно ли его вызывать из под walker-ра?
      Злобная реклама
    Суббота, 23.05.2020, 00:11
    Статус:
    Сообщений: 666
    Регистрация: 17.05.2019
    Российская Федерация  Overfirst
    Суббота, 23.05.2020, 00:33 | Сообщение # 7060
    Статус:
    Бывалый:
    Сообщений: 1081
    Награды: 19
    Регистрация: 11.06.2015

    Kelvin, вот такой шаблон может помочь:
    Код
    [logic]
    active = sr_idle

    [sr_idle]
    on_actor_inside = {=surge_started} sr_idle@2, sr_idle@nil %+info_actor_enemy%

    [sr_idle@2]
    on_info = {!surge_started} sr_idle@3
    on_actor_outside = sr_idle

    [sr_idle@3]
    on_info = {=surge_started} sr_idle@2
    on_actor_outside = sr_idle
    on_timer = 10000 | sr_idle@nil %+info_actor_enemy%

    [sr_idle@nil]

    Цитата Kelvin ()
    Только я не помню можно ли его вызывать из под walker-ра?

    В схеме walker таймеры работают тоже, но советую такие вещи вешать на рестрикторы.
      Злобная реклама
    Суббота, 23.05.2020, 00:33
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Украина  molodoy_chelovek
    Суббота, 23.05.2020, 01:34 | Сообщение # 7061
    Статус:
    Новичок:
    Сообщений: 316
    Награды: 2
    Регистрация: 14.07.2019

    AziatkaVictor,



    Это будет работать, но метод довольно костыльный (желательно оптимизировать вызов в апдейте, но я не придумал как).

    UPD: Если что, это делалось на версии мода "Мясник" 1.0
    Сообщение отредактировал molodoy_chelovek - Суббота, 23.05.2020, 01:44
      Злобная реклама
    Суббота, 23.05.2020, 01:34
    Статус:
    Сообщений: 666
    Регистрация: 14.07.2019
    Российская Федерация  denis2000
    Суббота, 23.05.2020, 09:08 | Сообщение # 7062
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    AziatkaVictor, Так ведь нет проблемы устанавливать надпись в апдейте мутанта, а не на колбеке смерти:
    Код
    if not object_alive then
      if not self.used then
      if db.actor:active_slot() == 1 then
        self.object:set_tip_text("Вскрыть")
      else
        self.object:set_tip_text("Достаньте нож")
      end
    end
    return
    end

    А после успешного вскрытия очистить эту строку и отменить проверку:
    Код
    self.object:set_tip_text("")
    self.used = true



    Цитата Ayer ()
    В чем может быть причина?

    Точно не в конфиге.
    Сообщение отредактировал denis2000 - Суббота, 23.05.2020, 09:17
      Злобная реклама
    Суббота, 23.05.2020, 09:08
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Испания  Ayer
    Суббота, 23.05.2020, 10:11 | Сообщение # 7063
    Статус:
    Зевака:
    Сообщений: 3
    Награды: 0
    Регистрация: 22.05.2020

    denis2000, догадываюсь что это скрипты, а возможно и движок. Но ни там ни там ничего касающегося логики работы smart_cover не менял. Конфиг выложил, так как не знаю что еще можно показать. Какая информация поможет установить причину?
      Злобная реклама
    Суббота, 23.05.2020, 10:11
    Статус:
    Сообщений: 666
    Регистрация: 22.05.2020
    Российская Федерация  OP_artovod
    Суббота, 23.05.2020, 11:12 | Сообщение # 7064
    Статус:
    Отмычка:
    Сообщений: 125
    Награды: 0
    Регистрация: 28.03.2020

    denis2000, А можно похожую проверку сделать под разные ножи?
    Сообщение отредактировал OP_artovod - Суббота, 23.05.2020, 11:13
      Злобная реклама
    Суббота, 23.05.2020, 11:12
    Статус:
    Сообщений: 666
    Регистрация: 28.03.2020
    Российская Федерация  monk
    Суббота, 23.05.2020, 11:17 | Сообщение # 7065
    «OGSM CS 1.8 + Fixes»
    Статус:
    Опытный:
    Сообщений: 2559
    Награды: 12
    Регистрация: 24.11.2012

    Всем привет.
    Все мы наблюдали данную ситуацию в ЗП - идёт пара-тройка сталкеров и возглавляет её не самый высокий по рангу НПС, чаще новис.
    Собственно, вопрос: есть ли правка такой ситуации, чтобы новис не возглавлял матёрых сталкеров?
    Спасибо.
      Злобная реклама
    Суббота, 23.05.2020, 11:17
    Статус:
    Сообщений: 666
    Регистрация: 24.11.2012
    Поиск: