Перейти к содержанию

Рекомендуемые сообщения

 
 
8 часов назад, BadTrip сказал:

по какому признаку в него вписывается данный id?

BadTrip Абсолютно любой, разницы нет, но для удобства лучше использовать такой же как и в оригинале, просто изменив цифры.

Также его нужно прописать в npc_profile

  • Мастер! 1

Просто создаю свой мод...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Народ, подскажите, как решить проблему? SGM 2.2. Квест "Бездна" - найти 3 документа в тёмной долине, в Х18. Так вот, проблема такая, иногда 1 из трёх документов проваливается в текстуры. Как его вытащить? Фича там в том, что лаборатория проходится с первого раза - без перезагрузки. Дело в том, что там скрипт, который "запоминает" сколько ты нашёл документов в текущем прохождении (к примеру 2 дока из 3-ёх) и при загрузке раннего сейва, до входа в лабораторию, этих двух документов, которые ты нашёл до перезагрузки, там уже не будет. И приходится переигрывать либо полностью этот квест, либо полностью всю локацию. А без закрытия этого квеста недоступны Военные склады.

Изменено пользователем bsanek628

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

bsanek628 Спавн квестовых предметов в этом моде рандомный, выбор одной из заданных точек происходит в момент первого посещения локации. Ищите. Лень искать - гуглите места спавна, лень гуглить - читерите...

Изменено пользователем denis2000

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

bsanek628 Есть вариант решения, он немного запарный, просто нужно уточнить, ты точно уверен, что предмет проваливается в текстуры? Ты использовал Демо рекорд чтобы найти его?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 часа назад, denis2000 сказал:

bsanek628 Спавн квестовых предметов в этом моде рандомный, выбор одной из заданных точек происходит в момент первого посещения локации. Ищите. Лень искать - гуглите места спавна, лень гуглить - читерите...

Прохожу не первый раз. Знаю, что там рандом. Но периодически у меня вот эти проваливались под пол.

 

image.png.ca6ba1033f79cbb8c0fdebf93de40af8.png

Изменено пользователем bsanek628

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

bsanek628 Значит поместите предмет в инвентарь вот этим способом: [ Спавн предмета в рюкзак ГГ ]
Секция документов x18_secret_docks_1, x18_secret_docks_2, x18_secret_docks_3

Изменено пользователем denis2000

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

denis2000 denis2000 denis2000, не соответствует требованию. Нужна новая игра. Спавнить нужно через уимайнменю.скрипт, что бы хабар спавнился перед гг по нажатию клавиши в меню. Или как то так.


Дополнено 21 минуты спустя

Там кстати есть и через меню. Я с телефона туплю.


Дополнено 27 минуты спустя

Сига с телефона жопно работает. Реклама в пол экрана.

Изменено пользователем Diesel

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Переделывал билдовскую свалку, перетекстурил террейн и обекты.

сделал квадраты по краям террейна, размер получился примерно 1500x1500

И дошло дело до снимка карты, и вот такое вот получается.

Слишком темная и видно туман, как можно исправить? я так понял это из за размеров?

Другие карты скринил на других локациях всё нормально.

2010327021_.thumb.jpg.77b52b4e4a537964668ee87af982658d.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Исправляю баги в моде. Есть три проблемы которые не знаю как решить:

1. В пда на глобальной карте не показывает отметки на локации, как буд-то уровень не подключён к игре, хотя прописывал её в game_levels и game_maps_single. Плюс сама текстура карты какая-то сплющенная. Если что карта из чн.

2. Изменил худ на вариант из Legend Returns и обрамление мини-карты теперь квадратное, а сама текстура террейна круглая. Пробовал по урокам в интернете копировать zone_map из чн, тогда мини-карта вообще пропадает. А если копировать этот файл из legend returns, то баг не решается.

3. У нпс дающего квест на поиск предмета сразу есть диалог игрока, что он нашёл предмет. Как сделать так, чтобы когда игрок возьмёт предмет который нужен, будет выдаваться инфопоршень, который можно будет прописать в has_info для диалога? Тогда диалог будет доступен только при поднятии предмета.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, Skala сказал:

3. У нпс дающего квест на поиск предмета сразу есть диалог игрока, что он нашёл предмет. Как сделать так, чтобы когда игрок возьмёт предмет который нужен, будет выдаваться инфопоршень, который можно будет прописать в has_info для диалога? Тогда диалог будет доступен только при поднятии предмета.

В ЗП есть готовая проверка в логике на наличие предмета

{=actor_has_item(item_section)} ;проверка, что предмет есть
{!actor_has_item(item_section)} ;проверка, что предмета нет

Если нужно несколько предметов одного типа, то надо писать кастомный скрипт, могу подсказать, как, если надо.

Если критично что-то делать именно на факт поднятия предмета с земли, то (если не ошибаюсь) тогда нужно дописать нужные проверки в bind_stalker.script в функцию actor_binder:on_item_take (она активируется каждый раз, когда что-то поднимается).


Дополнено 9 минуты спустя

Skala на этих проверках логики можно выдавать инфу или забирать ее. Но если нужно проверку именно на диалог, то можно прописать свою функцию в dialogs.script по типу (дайте ей уникальное название и укажите нужный item_section)

function actor_has_my_item(first_speaker, second_speaker)
    return db.actor:object("item_section") ~= nil
end

И потом в диалоге добавляете проверку

<precondition>dialogs.actor_has_my_item</precondition>

Только с названием своей функции.

Изменено пользователем Mawrak
  • Мастер! 1
  • Жму руку 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Кто-то сталкивался с проблемой, что озвучка НПС не всегда срабатывает?

Ситуация: реализую катсцену с гопстопом, и для неё вытащил звук из ЧН (просто распаковал и перенёс как есть). Когда игрок заходит в нужный рестриктор, я выдаю поршень, который сменяет секцию логики НПС на другую и вызывает функцию проигрывания звука у НПС. И в этой логике работает всё как задумано, за исключением проигрывания звука. Секция переключается, но звук работает через раз: можно подправить немного какой-то скрипт (например, добавить лишний принт в лог) и звук заработает, а потом убрать, и снова сломается, а потом поменять логику, и способ перестанет работать.

Спойлер

Секции точно переключаются т.к. анимации у НПС меняются на те, что прописаны в секции + другие действия происходят. Перед переключением со второй секции дальше гарантировано проходит более 15 секунд.

[walker@start]
path_walk = gopnik_start_walk
path_look = gopnik_start_look
combat_ignore_cond = {=is_enemy_actor -esc_hungry_deputat_attack} true, false
combat_ignore_keep_when_attacked = false
def_state_standing = hide
on_info = {+esc_hungry_deputat_gopstop_process} walker@gopstop %=play_sound(esc_gopstop) =reset_npc()% ;переключение происходит, но звук иногда не проигрывается
meet = no_meet

[walker@gopstop]
team = esc_smart_terrain_5_2_gopniks
path_walk = gopnik_start_walk
path_look = gopnik_start_look
combat_ignore_cond = {=is_enemy_actor -esc_hungry_deputat_attack} true, false
combat_ignore_keep_when_attacked = false
def_state_moving = assault
def_state_standing = threat_na
on_info = {+esc_hungry_deputat_start_dialog +esc_hungry_deputat_pass} sleeper@end
meet = no_meet

Спойлер

Функция для сброса анимаций НПС:


local function reset_animation(npc)
    local state_mgr = db.storage[npc:id()].state_mgr
    if state_mgr == nil then
        return
    end
    local planner = npc:motivation_action_manager()

    state_mgr.animation:set_state(nil, true)
    state_mgr.animation:set_control()
    state_mgr.animstate:set_state(nil, true)
    state_mgr.animstate:set_control()

    state_mgr:set_state("idle", nil, nil, nil, state_mgr.fast_set_true)

--    planner:update()
--    planner:update()
--    planner:update()

    state_mgr:update()
    state_mgr:update()
    state_mgr:update()
    state_mgr:update()
    state_mgr:update()
    state_mgr:update()
    state_mgr:update()

    npc:set_body_state(move.standing)
    npc:set_mental_state(anim.free)

end

function reset_npc( actor, npc )
    reset_animation( npc )
end

Спойлер

[esc_gopstop]
type                                     = npc
npc_prefix                               = false
path                                     = scenario\escape\esc_robbery_scene_stop
shuffle                                  = rnd
idle                                     = 1,1,100

Предупрежу заранее: используется СоС с кастомными правками движка, поэтому понимаю, что тут только пальцем в небо тыкать можно, ища причину. Интересует, встречал ли кто-нибудь подобный баг вообще (чистый ЗП или модифицированный движок - без разницы, только хорошо бы указать это), и если встречали, то как чинили?


Мод в разработке - X-7: Эпицентр

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

опять я не вовремя...


Дополнено 8 минуты спустя
3 часа назад, Prostomod сказал:

встречал ли кто-нибудь подобный баг

Это не баг.  

Последнее время часто встречаю делки алсофта в движках x64, у которых не работает апдата. Эти делки отключают звук при малейшем перепаде напряжения в сети (шутка), при подвисании компа. Точно отключается бэграундная музыка и еще некоторые зацикленные звуки (например звук в меню).

Затестируй x64, моего разлива пиво : https://disk.yandex.ru/d/Pd0RR_2Cc-UFWQ

Знаю что не поможет. Это как реклама вовремя подоспевшая.

Изменено пользователем Diesel
  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как установить диалог с раненным врагом?
В логике поставил схему раненного с возможностью установить диалог, при этом самой возможности открыть диалог нету (как я понял чисто из-за того, что непись враждебный к игроку):
 

Спойлер

[walker]
path_walk = ranen_walk
path_look = ranen_look
combat_ignore_cond = true
wounded = wounded
meet = meet

[wounded]
hp_state = 101|wounded_heavy
hp_state_see = 101|wounded_heavy
hp_victim = 101|actor
hp_cover = 101|false
hp_fight = 101|false
autoheal = false
help_start_dialog = npc_dialog

[meet]
use = true

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
26 минут назад, NewValveCom сказал:

как я понял чисто из-за того, что непись враждебный к игроку

Попробуй в wound дописать ещё это:
enable_talk = true


Дополнено 3 минуты спустя
3 часа назад, Prostomod сказал:

что озвучка НПС не всегда срабатывает?

НПС может быть занят дефолтной репликой, попробуй так, при переключении пиши:
on_info = {+esc_hungry_deputat_gopstop_process} walker@gopstop %=stop_sound =reset_npc()%
А уже в следующей секции проигрывай звук сразу:
on_info = %=play_sound(esc_gopstop)%

  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
13 часов назад, Novik сказал:

И дошло дело до снимка карты

Выставить погоду map, её конфиг взять из ЧН, там дальность видимости выше. Скринить на статике, на остальных рендерах нужно временно отключить солнце (r2_sun 0), для увеличения освещённости повышать значения команд: r2_sun_lumscale (_amb / _hemi).

 

9 часов назад, Skala сказал:

1.

В секции уровня, параметром global_rect настраивается его положение на глобальной карте. Это можно сделать в фотошопе, открыв ui_global_map.dds и map_escape.dds, к примеру:

image.thumb.png.e3e5d7d19bf5eafe230cd005a5596f53.png

10 часов назад, Skala сказал:

2.

Круглое в квадратное - только через правку движка.

  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
11 часов назад, Neptun сказал:

Попробуй в wound дописать ещё это:
enable_talk = true

Не сработало(
Та же ситуация.

Спойлер

[walker]
path_walk = ranen_walk
path_look = ranen_look
combat_ignore_cond = true
wounded = wounded
meet = meet

[wounded]
hp_state = 101|wounded_heavy
hp_state_see = 101|wounded_heavy
hp_victim = 101|actor
hp_cover = 101|false
hp_fight = 101|false
enable_talk = true
autoheal = false
help_start_dialog = npc_dialog

 

Изменено пользователем NewValveCom

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

NewValveCom Если у вас есть секция meet и там заданы параметры разговора НПС, то параметр help_start_dialog не нужен.

Спойлер

[remark@wound]
wounded = wounded@duel
meet = meet@wounded

[wounded@duel]
hp_state = 101|wounded_heavy@help_heavy
hp_state_see = 101|wounded_heavy@help_heavy
hp_victim = 101|nil 
hp_cover = 101|false
hp_fight = 101|false
autoheal = false
not_for_help = true
enable_talk = true

[meet@wounded]
use = true
meet_dialog = esc_quest_dangerous_business_shmiga_last_dialog
abuse = false
allow_break = false
trade_enable = false
close_anim = nil
close_victim = nil
close_distance = 0
far_distance = 0

 

 

  • Спасибо 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Приветствую! Как изменить направление дождя и скорость того как он идёт? Партиклы? Или всё таки как-то через конфиги?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
7 часов назад, denis2000 сказал:

NewValveCom Если у вас есть секция meet и там заданы параметры разговора НПС, то параметр help_start_dialog не нужен.

  Пример (Показать контент)


[remark@wound]
wounded = wounded@duel
meet = meet@wounded

[wounded@duel]
hp_state = 101|wounded_heavy@help_heavy
hp_state_see = 101|wounded_heavy@help_heavy
hp_victim = 101|nil 
hp_cover = 101|false
hp_fight = 101|false
autoheal = false
not_for_help = true
enable_talk = true

[meet@wounded]
use = true
meet_dialog = esc_quest_dangerous_business_shmiga_last_dialog
abuse = false
allow_break = false
trade_enable = false
close_anim = nil
close_victim = nil
close_distance = 0
far_distance = 0

 

 

Также безрезультатно...
 

Спойлер

[logic@stalker_second_artemiy]
suitable = {=check_npc_name(stalker_second_artemiy)}
active = walker@leader
prior = 200

[walker@leader]
path_walk = ranen_walk
path_look = ranen_look
combat_ignore_cond = true
on_info = {+bulat_ansleep_dialog_end} remark@wound

[remark@wound]
wounded = wounded@artem
on_info = {+artemiy_first_dialog_end} %=remove_npc%
meet = meet@wounded

[wounded@artem]
hp_state = 101|wounded_heavy@help_heavy
hp_state_see = 101|wounded_heavy@help_heavy
hp_victim = 101|nil
hp_cover = 101|false
hp_fight = 101|false
autoheal = false
not_for_help = true
enable_talk = true

[meet@wounded]
use = true
meet_dialog = artemiy_first_dialog
abuse = false
allow_break = false
trade_enable = false
close_anim = nil
close_victim = nil
close_distance = 0
far_distance = 0

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

NewValveCom А у Вас в самом файле character_desc_локация у нпс этот диалог прописан?


Группа мода в VK
Мод делался и тестировался на железе
i5-11400, 32Гб ОЗУ, Radeon RX580  Разрешение 2560 х 1440.  ВСЕ на максималке

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 минуту назад, Policai сказал:

NewValveCom А у Вас в самом файле character_desc_локация у нпс этот диалог прописан?

Да.
Когда ставлю неписю %=actor_neutral% (т.к. он враг) -- диалог есть и тот который должен.
Проблема просто в том, что даже нет возможности вызвать окно диалога (нажмите F чтобы поговорить). С самим диалогом всё ок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, NewValveCom сказал:

Когда ставлю неписю %=actor_neutral% (т.к. он враг) -- диалог есть и тот который должен.

Добавь с логику.

use = {=actor_enemy} true


Группа мода в VK
Мод делался и тестировался на железе
i5-11400, 32Гб ОЗУ, Radeon RX580  Разрешение 2560 х 1440.  ВСЕ на максималке

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
10 часов назад, Policai сказал:

use = {=actor_enemy} true

Пробовал, не выходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
5 часов назад, NewValveCom сказал:

Пробовал, не выходит.

NewValveCom , за разговор с раненым отвечает функция process_npc_usability(npc) в файле xr_meet.script

Сама функция вызывается на апдейте сталкеров в файле xr_motivator.script

Если вы хотите, чтобы раненый, неважно друг он вам или враг, разговаривал с ГГ, то нужно в файле xr_meet.script функцию process_npc_usability(npc) поменять на такую:

Спойлер

 

function process_npc_usability(npc)

    local wounded = db.storage[npc:id()].wounded
    if xr_wounded.is_wounded(npc) then
            if wounded.enable_talk then
                npc:enable_talk()
            else
                npc:disable_talk()
            end
        return
    end

    local meet = db.storage[npc:id()].meet

    local use = meet.meet_manager.use

    if use == "true" then
        if xr_corpse_detection.is_under_corpse_detection(npc) or xr_help_wounded.is_under_help_wounded(npc) then
            npc:disable_talk()
        else
            npc:enable_talk()
        end
    elseif use == "false" then
        npc:disable_talk()
        if npc:is_talking() then
            npc:stop_talk()
        end
    end

end

 

Тогда,  если в секции wounded прописать enable_talk = true, то и раненые враги будут с вами вести разговор.

З.Ы. Но я всегда делал по другому. Если  ГГ подходит к раненому нпс врагу, НПС первым начинал разговор. В этом случае ничего в скриптах менять не нужно.

 

Изменено пользователем makdm

Терпение... И все получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Domovoi Гуглите настройки погоды. На счет направления не знаю, а за интенсивность точно есть параметр rain_density. 

Изменено пользователем denis2000

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   1 пользователь онлайн