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

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

 
 

Объясните мне непонятное для меня! Имеется скрипт rx_kill_wounded от bak'a

В нём этот код:

    if self.type ~= 0 then
        if not post_combat_idle.weapon_locked(npc) then
            npc:set_item(object.fire1,npc:active_item(),math.random() < 0.2 and math.random(2,12) or 1,650)
        end
        return
    end

Здесь получается что если мы выбрали рандомно оружие. И далее самое интересное.... Проверятся логическое значение из функции weapon_locked, но если у нас нет активного оружия и лучшего оружие в данный момент, то как мы тогда можем стрелять? Тут наверное лучше использовать object.idle что-ли? Я не понял этот код! Но вообще ,чтобы не было ошибок, object.fire1 без кучи проверок лучше не юзать, а использовать спец анимацию из state_lib при стрельбе по цели через set_state

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


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

Изменение коэфицентов в weather_dynamic_graphs не помогло

gamedata\configs\environment\dynamic_weather_graphs.ltx


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

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


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

Объясните мне непонятное для меня! Имеется скрипт rx_kill_wounded от bak'a

В нём этот код:


    if self.type ~= 0 then
        if not post_combat_idle.weapon_locked(npc) then
            npc:set_item(object.fire1,npc:active_item(),math.random() < 0.2 and math.random(2,12) or 1,650)
        end
        return
    end

Здесь получается что если мы выбрали рандомно оружие. И далее самое интересное.... Проверятся логическое значение из функции weapon_locked, но если у нас нет активного оружия и лучшего оружие в данный момент, то как мы тогда можем стрелять? Тут наверное лучше использовать object.idle что-ли? Я не понял этот код! Но вообще ,чтобы не было ошибок, object.fire1 без кучи проверок лучше не юзать, а использовать спец анимацию из state_lib при стрельбе по цели через set_state

npc:set_item(object.fire1, weapon_object, params, ...) включает физическую стрельбу, то есть заставляет пули вылетать из оружия, в определённом количестве, с определённым интервалом.

npc:set_object(object.idle, weapon or nil) отменяет стрельбу (переводит оружие в режим unstrapped) или прячет его, если не указано сам объект оружия.

К анимациям непися эти команды отношения не имеют и могут применяться в любой анимации или без анимации вообще. Что касается первой части вопроса, то, вероятно, true от вызова not post_combat.weapon_locked(npc) гарантирует (в теории) как раз наличие какого-либо активного/бэст оружия в руках, не стреляющего в данный момент.

  • Жму руку 1

Я логи в баню удалил, а вот за за рейдеры – не помню!

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


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

post_combat.weapon_locked(npc) Как раз возвращает false если активное оружие не существует! Про анимации сказал, потому что этот код вызывает ошибку при дебаге! Лучше всего юзать state_mgr если нужно стрелять в позицию!

 

Спойлер

motivator:upd: name='sim_default_duty_413172' scheme <nil> act_weap <obj>:wpn_groza13187 best_weap <obj>:wpn_protecta14766 

Затем когда этот код выполнился, получилось что активное оружие потерялось

Спойлер

 

motivator:upd: name='sim_default_duty_413172' scheme <nil> act_weap <nil> best_weap <obj>:wpn_protecta14766 

current_state 5
next_state 5
item_sect wpn_groza
H_Parent sim_default_duty_4

 

И только потом на следуещем апдейте активное оружие вернулось!

 

Изменено пользователем Mass
  • Хабар 1

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


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

Mass Вы правы по всем пунктам. Действительно, не хватает ассертации наличия оружия в руках, так как функция weapon_locked никак это не подтверждает.

Далее, действительно, можно было там автору воспользоваться надстройкой state_mgr.set_state(npc, "threat_fire") или типа того. Но сам state_mgr через несколько уровней ассертаций/эвалуторов/акций, внезапно, пользуется ровно той же базисной командой npc:set_item(objectt.fire1, ...) Видимо, так автору показалось удобнее/быстрее/проще.

P.S. Я не автор.

P.P.S. У меня свой скриптовый движок с 100% своим state_mgr и прочими прокси к анимациям (100% свой движок/язык) и другим бихейворальным свойствам. Оттого чуть-чуть шарю в теме.

  • Мастер! 1

Я логи в баню удалил, а вот за за рейдеры – не помню!

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


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

Как на сталкер зов припяти отключить выброс?

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


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

ojopjipkipojoppkijoi 

29 минут назад, ojopjipkipojoppkijoi сказал:

Как на сталкер зов припяти отключить выброс?

А ты темой не ошибся?


AMD Ryzen 5 5600X;Gigabyte B550 AORUS Pro;G.Skill Ripjaws V 32GB DDR4 3600 CL16;Fractal Design Celsius S24;Samsung SSD 970 Pro M.2 512GB+Intel SSD 545 Series 256Gb+WD Caviar Red 3Tb+Samsung SSD 980 M.2 1Tb;Seasonic Focus PX 750W;MSI GeForce RTX 3060 Ti GAMING Z Trio 8Gb;OC Win11 Pro x64 24H2

 

2.gif

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


Ссылка на сообщение
Поделиться на другие сайты
 
FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_pcall_failed
[error]File          : C:\xray\stcop_engine\src\xrServerEntities\script_engine.cpp
[error]Line          : 213
[error]Description   : <no expression>
[error]Arguments     : LUA error: ...ker call of pripyat\gamedata\scripts\xr_motivator.script:161: attempt to index local 'smart_task' (a nil value)

Я так понимаю он ругается на работу, которые присутствуют в смарт террейне или с чем это может быть связано?

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


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

kozzinaki Проверь правильно ли ты всё написал в сдк

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


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

Belka_mod Именно в логике смарт террейны или ты про то как я вейпоинты создавал? Потому что этот ошибка происходит после добавления экслюзива в террейн. Логика следующая:

[logic@bar_b38_bas_stalker_leader]
suitable = {=check_npc_name(bar_b38_bas_stalker_leader)}
active = walker@stand_base
prior = 200

[walker@stand_base]
meet = meet@stand_base
def_state_standing = wait_na
path_walk = stalker_leader_pumpkin_walk
path_look = stalker_leader_pumpkin_look

[meet@stand_base]
no_move = true
close_distance = 5
abuse = false
use = true
allow_break = false
trade_enable = true

Хочу подметить что вылет происходит когда вхожу в зону действия смарта. Быть может он ругается на название walker логики, не знаю. Но если я логику удаляю, то вылета нет.

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


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

kozzinaki Значит дело в логике. Сам экслюзивных нпс ещё не создавал поэтому что именно в логике не так сказать не могу

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


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

kozzinaki После "logic@..." идёт что? Название сквада? Имя точки пути? Или что-то другое? Если там стоит не название сквада, то попробуйте поставить его

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

𝐒𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫𝐬𝐞𝐥𝐟, 𝐬𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫…𝐬𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫𝐬𝐞𝐥𝐟

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


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

ojopjipkipojoppkijoi На совсем и кардинально в файле surge_manager.ltx в секции settings в параметре condlist вписать false.

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

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

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


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

FalkineIsaku Имя персонажа ну точнее его профиль. Даже когда пишу просто logic тоже вылет

Это никак не может быть связано с кем как я наименовал waypoint в сдк или он ругается на то как я логику для него прописал? Я вот не знаю

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

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


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

kozzinaki Попробуйте поставить название сквада


𝐒𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫𝐬𝐞𝐥𝐟, 𝐬𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫…𝐬𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫𝐬𝐞𝐥𝐟

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


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

внезапно, пользуется ровно той же базисной командой npc:set_item(objectt.fire1, ...)

Это понятно что быстрее! Я пытался найти потерянное оружие скриптом, делая проверку сравнения айди активного оружия и лучшего оружия, но ничего не вышло! Движок каким-то образом заставляет нпс убирать активное оружие! Еще стоит учесть что непись может быть ранен 2 раза при анимации в библиотеке drop! И может возникнуть ситуация что оружие у него украли, и пистолет, и главное оружие. Поэтому на всякий случай добавил проверку в эвалуатор! Во поэтому связка скриптов state_mgr_***  имеет защиту. По крайней мере, ошибок больше не было. Кстати rx_combat имеет ту же самую проблему! 

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


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

Я не знаю что случилось с этой игрой, но она ни с того, ни с сего начала вылетать из-за того что не может найти путь к эмбиенту

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


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

Я не знаю что случилось

Начиная с железа компутера( например:разгон неудачный) до банальной невнимательности! Увы, какой вопрос-таков ответ!

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


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

Mass У меня был установлен  мод  Open x-ray (модифицированный движок), я с моим коллегой решил добавить в наш мод Absolute Nature. Так как Absolute Nature не работает с Open x-ray'ем я Open x-ray удалил и после этого начался этот вылет:

[error]Expression    : wave&&wave->length()
[error]Function      : CSoundRender_Source::LoadWave
[error]File          : D:\prog_repository\sources\trunk\xrSound\SoundRender_Source_loader.cpp
[error]Line          : 65
[error]Description   : Can't open wave file:
[error]Arguments     : d:\games\gemes 2\s.t.a.l.k.e.r. - Зов Припяти\gamedata\sounds\music\amb01.ogg

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

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


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

Belka_mod Так в чем проблема убрать/вернуть оригинальный файл настроек эмбиента ссылающийся на эти звуки?


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

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


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

denis2000 А как он называется?

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


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

Belka_mod Поиск файлов по содержимому в помощь. Возможно это game_levels_music.ltx

  • Мастер! 1

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

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


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

Belka_mod у тебя этот файл вообще открывается?

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


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

Друзья, подскажите пожалуйста, в чем может быть причина стабильного безлогового вылета при загрузке локации на R3 (DX10) и R4 (DX11)? Вылеты только на этой конкретной локации (локация Zorin из основного билда Смерти Вопреки 3), и с остальными рендерами она нормально грузится и играется. Движок 64 бит так что на вылет по памяти не похоже.

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


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

в чем проблема убрать/вернуть оригинальный файл

Плохое решение проблемы. Я уверен одной ошибкой дело не ограничится! Если что-то другого не будет хватать, то это пустая трата времени!

19 часов назад, Belka_mod сказал:

после этого начался этот вылет:

Нужно Вам заново всё переустановить! Так зато без рисков сможете насладиться и дальше игрой!

  • Жму руку 1
  • Смех 1

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


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

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

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

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

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

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

Войти

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

Войти

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