Случайная подборка модов
Зимний путь
3.4
Dead City Breakthrough
3.7
Погоня за Праздником
3.8
Prosectors Project
4.0
Народная Солянка 2010
4.0
L.U.R.K.
4.0
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Поиск: