Случайная подборка модов
Oblivion Lost Remake
4.1
MISERY 2.2
4.1
Пропавшая экспедиция
2.4
Old Story
4.1
На Болотах
3.7
Связной
4.2
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Поиск: