[CoP] Модострой: вопросница
|
|
|
Overfirst
Воскресенье, 31.12.2017, 13:17 | Сообщение # 1
Статус: |
|
Бывалый: |
|
Сообщений: |
1081 |
Награды: |
19 |
Регистрация: |
11.06.2015 |
|
[CoP] Модострой: вопросница
Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
|
|
Воскресенье, 31.12.2017, 13:17
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
11.06.2015 |
|
|
|
|
|
Статус: |
|
Опытный: |
|
Сообщений: |
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 |
|
|
|
|
|
Время Альянса
Статус: |
|
Ветеран: |
|
Сообщений: |
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 |
|
|
|
|
|
Время Альянса
Статус: |
|
Ветеран: |
|
Сообщений: |
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 |
|
|
|
|
|
Время Альянса
Статус: |
|
Ветеран: |
|
Сообщений: |
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 |
|
|
|
|
|
Время Альянса
Статус: |
|
Ветеран: |
|
Сообщений: |
4070 |
Награды: |
16 |
Регистрация: |
19.07.2013 |
|
|
|
Воскресенье, 23.02.2020, 17:53
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
19.07.2013 |
|
|
|
|
|
Статус: |
|
Опытный: |
|
Сообщений: |
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 |
|
|
|
|
|
Время Альянса
Статус: |
|
Ветеран: |
|
Сообщений: |
4070 |
Награды: |
16 |
Регистрация: |
19.07.2013 |
|
AziatkaVictor, Ежели прямо реализовывать, как вы захотели, то только при помощи правок движка. Альтернатива - размещать на месте переходов рестрикторы, а левел-ченджеры в недоступных для ГГ местах, при этом из логики рестриктора управлять телепортировать ли актора в левел-ченджер для перехода на другую локацию или выпихать из рестриктора например с сообщение о недоступности перехода.
Сообщение отредактировал denis2000 - Воскресенье, 23.02.2020, 18:16
|
|
Воскресенье, 23.02.2020, 18:11
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
19.07.2013 |
|
|
|
|
|
Статус: |
|
Опытный: |
|
Сообщений: |
1313 |
Награды: |
4 |
Регистрация: |
30.08.2018 |
|
denis2000, а есть какая-то функция для логики, чтобы перенести ГГ на локацию? Мне необязательно через level_changer.
|
|
Воскресенье, 23.02.2020, 18:23
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
30.08.2018 |
|
|
|
|
|
Время Альянса
Статус: |
|
Ветеран: |
|
Сообщений: |
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 |
|
|
|
|