Случайная подборка модов
Холодная кровь
3.4
Dragon`s MOD
2.5
AtmosFear 3
4.1
Поиск (DIES IRAE)
4.1
День одиночки
1.6
Doomed to Eternal Torment
3.9
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Украина  AziatkaVictor
    Суббота, 22.02.2020, 15:06 | Сообщение # 6211
    Статус:
    Опытный:
    Сообщений: 1313
    Награды: 4
    Регистрация: 30.08.2018

    denis2000, Вот, простенькая логика на проигрывание звука, если ГГ в рестрикторе, при поднятии предмета логика переключается на пустую, дается квест и отправляется сообщение.
    Код
    [logic]
    active = sr_idle@wait

    [sr_idle@wait]
    on_info = {=actor_in_zone(cry_army)} %=play_sound(cry) =sg_ambient_none% sr_idle@play

    [sr_idle@play]
    on_info = {!actor_in_zone(cry_army)} %=stop_sound(cry) =sg_ambient_normal% sr_idle@wait
    on_info2 = {=actor_has_item(cry_note)} %=stop_sound(cry) =give_task(esc_family_gun) =sg_ambient_normal% sr_idle@tip
    on_info3 = %=sg_ambient_none%
    on_game_timer = 290 | sr_idle@play_again %=stop_sound(cry)%

    [sr_idle@play_again]
    on_info = %=play_sound(cry) =sg_ambient_none% sr_idle@play

    [sr_idle@tip]
    on_info = %=send_tip_new(st_actor_name:st_family_gun_start:mutant_hunter:10000)% sr_idle@stop

    [sr_idle@stop]
    Впринцыпе все нормально работает, но сообщение отправляется раз 8...
      Злобная реклама
    Суббота, 22.02.2020, 15:06
    Статус:
    Сообщений: 666
    Регистрация: 30.08.2018
    Российская Федерация  denis2000
    Суббота, 22.02.2020, 15:08 | Сообщение # 6212
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    Почему эта схема, наиболее корректная:
    Код
    [sr_idle@save]
    on_info = {-infoportion } sr_idle@after_save %+infoportion =scenario_autosave( string)%
    on_info2 = {+infoportion } sr_idle@after_save

    [sr_idle@after_save]

    Это стоит просто разобрать подробнее.
    Случай до сохранения:
    1. Логика переключилась на секцию sr_idle@save и проверяет условие выполнения в первой строке on_info.
    2. Условие выполнено, поскольку инфопорция еще не выдавалась, далее выполняем действия согласно списку.
    3. Выдали инфопорцию!
    4. Производим сохранение. В сохранение попала инфопорция и сохранилась текущая секция логики этого рестриктора sr_idle@save!
    5. Переключение на секцию sr_idle@after_save.

    Случай после сохранения:
    1. Логика на секции sr_idle@save и проверяет условие выполнения в первой строке on_info.
    2. Условие НЕ выполнено, поскольку инфопорция выдавалась и это отражено в сейве.
    3. Проверяется вторая строка on_info2, условие выполнено!
    4. Переключение на секцию sr_idle@after_save
    Сообщение отредактировал denis2000 - Суббота, 22.02.2020, 15:10
      Злобная реклама
    Суббота, 22.02.2020, 15:08
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  makdm
    Суббота, 22.02.2020, 15:23 | Сообщение # 6213
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    denis2000, потому что при старте игры с автосохранения если не выдать поршень, то снова сработает автосейв игры. При этом, как я думаю, не все объекты игры успевают инициализироваться и фрагментарный снимок игры получается "битым". Глубоко в эту тему не лез, так как найденное решение позволило обойти разрушение игры при автосейве из логики рестриктора.
    Кстати, разрабы Сталкера полностью со мной согласны.
    Посмотри файлы zat_a1_logic.ltx, jup_b217_cutscene_control.ltx
    Проверка поршня - выдача поршня - и только потом автосейв. И никакой повторной перезаписи автосейва.
      Злобная реклама
    Суббота, 22.02.2020, 15:23
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  Крим
    Суббота, 22.02.2020, 16:13 | Сообщение # 6214
    Статус:
    Новичок:
    Сообщений: 231
    Награды: 1
    Регистрация: 21.04.2019

    Здравствуйте. Возникла проблема: изменил локацию, скомпилировал её. При тесте в игре появились дикие лаги. Нет, на фоне ничего не было запущено. До проблемы мой древней пк, который наверное жил еще при динозаврах, тянул локацию на стабильные 30 фпс [На статике, естественно.] Помогите, пожалуйста. Что добавил?

    Добавлено (23.02.2020, 02:04)
    ---------------------------------------------
    Это Крим из будущего пересобрал локацию заново, результат тот же.

    Сообщение отредактировал Крим - Суббота, 22.02.2020, 16:14
      Злобная реклама
    Суббота, 22.02.2020, 16:13
    Статус:
    Сообщений: 666
    Регистрация: 21.04.2019
    Российская Федерация  denis2000
    Воскресенье, 23.02.2020, 11:34 | Сообщение # 6215
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    makdm, Дима, давай еще раз поясню свое мнение:
    1. Я в некоим случае не оспариваю единственно верное решение в схеме рестриктора при скриптовом сохранении.
    2. Я оспорил лишь заявление, что не попадание инфопорции в сейв и как следствие перезапись сейва - это причины однозначного краша сейва. Это факторы влияющие, но не причина.
    3. Причина, как ты сам заметил и как я понимаю (но видимо не мог донести свою мысль): к крашу приводят фоновые процессы во время сохранения, которые при скриптовом сохранении видимо не возможно со стороны движка корректно отразить в сейве. В отличии от сохранения игры из меню, во время которого игра находиться на паузе и таковые процессы невозможны.
    Сообщение отредактировал denis2000 - Воскресенье, 23.02.2020, 11:36
      Злобная реклама
    Воскресенье, 23.02.2020, 11:34
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  makdm
    Воскресенье, 23.02.2020, 11:42 | Сообщение # 6216
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    denis2000, Денис, согласен полностью.
    Инфопорция выступает в роли затычки, чтобы не допустить повторного сейва. А вот сама причина разрушения сохранения зарыта где-то в движке.
    Это ошибка разработчика движка, который просто не предусмотрел такую ситуацию или просто не захотел доработать движок.
    Ну а скриптеры Сталкера просто эту движковую "дыру" заткнули инфопорцией.
      Злобная реклама
    Воскресенье, 23.02.2020, 11:42
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  denis2000
    Воскресенье, 23.02.2020, 11:55 | Сообщение # 6217
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    AziatkaVictor, Пробуйте так:
      Злобная реклама
    Воскресенье, 23.02.2020, 11:55
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  SP4CEE
    Воскресенье, 23.02.2020, 17:36 | Сообщение # 6218
    Статус:
    Зевака:
    Сообщений: 15
    Награды: 0
    Регистрация: 19.01.2020

    Всех с праздником! Как можно сделать так, чтобы через логику настроить один сквад враждебно к другому, хотя они в game_relations прописаны как нейтралы?
      Злобная реклама
    Воскресенье, 23.02.2020, 17:36
    Статус:
    Сообщений: 666
    Регистрация: 19.01.2020
    Российская Федерация  denis2000
    Воскресенье, 23.02.2020, 17:53 | Сообщение # 6219
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    SP4CEE,
      Злобная реклама
    Воскресенье, 23.02.2020, 17:53
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Украина  AziatkaVictor
    Воскресенье, 23.02.2020, 17:54 | Сообщение # 6220
    Статус:
    Опытный:
    Сообщений: 1313
    Награды: 4
    Регистрация: 30.08.2018

    denis2000, спасибо, сечас проверю. А как сделать так, чтобы level_changer сначало не работал, а потом при получении инфопоршня начал работать?
      Злобная реклама
    Воскресенье, 23.02.2020, 17:54
    Статус:
    Сообщений: 666
    Регистрация: 30.08.2018
    Российская Федерация  RoboCat
    Воскресенье, 23.02.2020, 17:57 | Сообщение # 6221
    Статус:
    Новичок:
    Сообщений: 300
    Награды: 9
    Регистрация: 07.01.2017

    Цитата AziatkaVictor ()
    спасибо, сечас проверю. А как сделать так, чтобы level_changer сначало не работал, а потом при получении инфопоршня начал работать?

    Попробуй поискать инфу в ЧН, там есть команда =disable_level_changer, но я получал вылет при его активации....
    Сообщение отредактировал RoboCat - Воскресенье, 23.02.2020, 17:58
      Злобная реклама
    Воскресенье, 23.02.2020, 17:57
    Статус:
    Сообщений: 666
    Регистрация: 07.01.2017
    Российская Федерация  denis2000
    Воскресенье, 23.02.2020, 18:11 | Сообщение # 6222
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    AziatkaVictor, Ежели прямо реализовывать, как вы захотели, то только при помощи правок движка.
    Альтернатива - размещать на месте переходов рестрикторы, а левел-ченджеры в недоступных для ГГ местах, при этом из логики рестриктора управлять телепортировать ли актора в левел-ченджер для перехода на другую локацию или выпихать из рестриктора например с сообщение о недоступности перехода.
    Сообщение отредактировал denis2000 - Воскресенье, 23.02.2020, 18:16
      Злобная реклама
    Воскресенье, 23.02.2020, 18:11
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Украина  AziatkaVictor
    Воскресенье, 23.02.2020, 18:23 | Сообщение # 6223
    Статус:
    Опытный:
    Сообщений: 1313
    Награды: 4
    Регистрация: 30.08.2018

    denis2000, а есть какая-то функция для логики, чтобы перенести ГГ на локацию? Мне необязательно через level_changer.
      Злобная реклама
    Воскресенье, 23.02.2020, 18:23
    Статус:
    Сообщений: 666
    Регистрация: 30.08.2018
    Российская Федерация  denis2000
    Воскресенье, 23.02.2020, 18:26 | Сообщение # 6224
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    AziatkaVictor, Есть метод со спавном левел-ченджера из скрипта (с применением прямого редактирования нетпакета объекта) и удаление его после использования.
    Создание переходов между уровнями
    Сообщение отредактировал denis2000 - Воскресенье, 23.02.2020, 18:29
      Злобная реклама
    Воскресенье, 23.02.2020, 18:26
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  Krt0ki
    Воскресенье, 23.02.2020, 23:20 | Сообщение # 6225
    Статус:
    Опытный:
    Сообщений: 1258
    Награды: 7
    Регистрация: 19.04.2015

    Кст, еще раз возвращаюсь к старому вопросу:
    Цитата Policai ()
    Народ! Подскажите почему такой разбег на стволе..

    Для тех кто может править движок есть вот такое решение - https://www.gameru.net/forum....1663368

    В ином случае можно переделать UI так чтобы вертикальных слотов не было вообще.
    Сообщение отредактировал Krt0ki - Воскресенье, 23.02.2020, 23:20
      Злобная реклама
    Воскресенье, 23.02.2020, 23:20
    Статус:
    Сообщений: 666
    Регистрация: 19.04.2015
    Поиск: