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

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

 

b27b2a4837.png

Тема посвящена моддингу на платформе Чистое Небо.

 

Правила темы:

  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть.
  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
  • Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться.
  • Лайк 4
  • Мастер! 3

c01570bf2e07524.png

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


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

Жмете на нужную и видите время.

где собственно это время? уже в трёх версиях сдк посмотрел, нигде не вижу

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


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

Mass есть вариант прикрутить target при действующем anim?

 


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

с вашим вариантом на чн случается вылет, чего ранее не было

https://drive.google.com/file/d/10zBoGtzCR5p7u-lmq4frkUBlsGF5iv2D/view?usp=sharing

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


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

2) Не работают анимации из таблицы anim, моб просто виснет

Скрипт был разработан для проигрывания уникальных анимаций мобом, а не для стандартных движковых.

Но я поправил это и допилил скрипт. Ниже смотрите.

mob_remark.script


Дополнено 9 минуты спустя
6 часов назад, imcrazyhoudini сказал:

есть вариант прикрутить target при действующем anim?

Вот представьте ситуацию - спит собака. Вы подходите к ней и она, продолжая спать, разворачивается в вашу сторону. Это как?

Одновременно и спать и поворачиваться в сторону ГГ не получится.

Поэтому сначала в схеме ремарк разверните моба в вашу сторону ( он встанет на лапы и повернётся ), затем переключитесь снова на ремарк и проиграйте анимацию.

[mob_remark@1]
 target = actor                                   
 anim_movement = false       
 combat_ignore_cond = true   
 combat_ignore_keep_when_attacked = true

on_signal           = action_end | mob_remark@2

[mob_remark@2]

anim = lie_idle_0, lie_idle_1, lie_idle_2 
 time = 2330, 7340, 7340 
 anim_movement = false 
 combat_ignore_cond = true 
 combat_ignore_keep_when_attacked = true

 

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

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

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


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

есть вариант прикрутить target при действующем anim

Ничто не мешает вызвать по on_info через xr_effects  в функции если прям очень надо без target = actor

action(self.object, look(look.point, db.actor:position()), cond(cond.time_end, 1000))

Так тоже не получиться иначе будет конфликт!

Тогда может быть лучше так?

--\\ Запускаем анимацию.
	if self.st.anim_movement == true then
--\\ Анимация с движением.
  		action( self.object, anim( self.anims[ self.count ], true ), sound( sound.idle ), self.cnd )
	else
--\\ Разворот в сторону ГГ, если задан параметр target.
		if self.st.target and self.st.target == "actor" then
			local target = db.actor:position()
			local look_pt = utils.vector_copy_by_val( target ):sub( self.object:position() )
			look_pt:normalize()
    		action(self.object, look(look.direction, look_pt), cond(cond.time_end, 1000))
			action( self.object, anim( self.anims[ self.count ] ), sound( sound.idle ), self.cnd )
		else
--\\ Анимация без движения и без разворота в сторону ГГ. Куда моб до анимации смотрел - туда и смотрит во время анимации.
			action( self.object, anim( self.anims[ self.count ] ), sound( sound.idle ), self.cnd )
		end
	end

То есть если надо смотреть на актора, тогда даем секунду на это и уже играем анимку, иначе сразу играем анимку

53 минуты назад, makdm сказал:

допилил скрипт. Ниже смотрите.

Но проблему по пунктам 1 и 3 это не решает!

7 часов назад, imcrazyhoudini сказал:

с вашим вариантом на чн случается вылет

Я бы для начала посмотрел и исправил что вызывает это

! [LUA][ERROR] ERROR: xr_logic: pstor_load_all: not registered type in single_player encountered

и 

! Invalid HOM triangle (-221.605316,5.137728,-190.486877)-(-222.920380,5.138325,-188.826935)-(-222.508392,5.138325,-189.346985)

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

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


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

При переключении логики с mob_walker монстр уходит в алайф

У меня нет такой проблемы.

 

В 03.07.2023 в 21:08, Mass сказал:

При дебаге движок ругается на Entity Action removed!!!

У меня в модах на что только не ругается. Как правило вся эта ругань не критичная. Собака лает - караван идет.


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

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


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

makdm вылетает при переходе во вторую секцию, а именно mob_remark

Спойлер

[logic]
active = mob_remark@1

[mob_remark@1]
target = actor                                   
anim_movement = false       
combat_ignore_cond = true   
combat_ignore_keep_when_attacked = true
state = vis
on_signal = action_end | mob_remark

[mob_remark]
combat_ignore_cond = true   
combat_ignore_keep_when_attacked = true
state = vis
anim = boloto_attack_prepare,boloto_attack_link_bone
time = 1000,2533
on_signal = action_end | mob_jump@go

[mob_jump@go]
path_jump = blood_look
ph_jump_factor = 0.6 ; прыгнет в небо аки Нео
offset = 0,0,0
on_signal = jumped | mob_walker@m2

[mob_walker@m2]
path_walk = blood_walk
path_look = blood_look
friendly = true
state = vis

Спойлер

xrEngine.exe caused an EXCEPTION_ACCESS_VIOLATION in module <UNKNOWN> at 0000000000000000
stack trace:
0x0000000000000000 xrEngine.exe
0x00000000EBC19A8E luabind.dll, luabind::detail::class_rep::constructor_dispatcher + 206 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\3rd party\luabind\src\class_rep.cpp, 499
0x00000000EB1E54D0 LuaJIT.dll, lj_BC_FUNCC + 66 byte(s)
0x00000000EB1EF24A LuaJIT.dll, lua_pcall + 170 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\3rd party\luajit\src\lj_api.c, 1144
0x00000000EBC1FB85 luabind.dll, luabind::detail::pcall + 101 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\3rd party\luabind\src\pcall.cpp, 40 + 17 byte(s)
0x00000000EAA59E1D xrGame.dll, CScriptBinderObjectWrapper::shedule_Update + 125 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\script_binder_object_wrapper.cpp, 85 + 106 byte(s)
0x00000000EA88D3EB xrGame.dll, CGameObject::shedule_Update + 123 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\GameObject.cpp, 842
0x00000000EA872E07 xrGame.dll, CEntity::shedule_Update + 23 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\Entity.cpp, 329
0x00000000EA875BF2 xrGame.dll, CEntityAlive::shedule_Update + 18 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\entity_alive.cpp, 218
0x00000000EA828684 xrGame.dll, CCustomMonster::shedule_Update + 356 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\CustomMonster.cpp, 339
0x00000000EA6F04C4 xrGame.dll, CBaseMonster::shedule_Update + 20 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\ai\Monsters\BaseMonster\base_monster.cpp, 237
0x00000000EA6FA36E xrGame.dll, CAI_Bloodsucker::shedule_Update + 14 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\ai\Monsters\Bloodsucker\bloodsucker.cpp, 600
0x000000003F187EAC xrEngine.exe, CSheduler::ProcessStep + 476 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\xrSheduler.cpp, 342
0x000000003F187C3F xrEngine.exe, CSheduler::Update + 367 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\xrSheduler.cpp, 434
0x00000000EA891837 xrGame.dll, CGamePersistent::OnFrame + 935 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\GamePersistent.cpp, 615
0x000000003F12C5C7 xrEngine.exe, CRegistrator<pureFrame>::Process + 87 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\pure.h, 115
0x000000003F159961 xrEngine.exe, CRenderDevice::FrameMove + 321 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\device.cpp, 522
0x000000003F159EFB xrEngine.exe, CRenderDevice::on_idle + 395 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\device.cpp, 313
0x000000003F159D4F xrEngine.exe, CRenderDevice::message_loop + 111 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\device.cpp, 427
0x000000003F159B70 xrEngine.exe, CRenderDevice::Run + 480 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\device.cpp, 471
0x000000003F19F958 xrEngine.exe, Startup + 344 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\x_ray.cpp, 277
0x000000003F19F0E6 xrEngine.exe, WinMain_impl + 1830 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\x_ray.cpp, 757
0x000000003F19E959 xrEngine.exe, WinMain + 9 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\x_ray.cpp, 808
0x000000003F15544E xrEngine.exe, __scrt_common_main_seh + 262 byte(s), D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, 288 + 33 byte(s)
0x000000007753651D kernel32.dll, BaseThreadInitThunk + 13 byte(s)
0x0000000077A1C201 ntdll.dll, RtlUserThreadStart + 33 byte(s)

 

 

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


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

imcrazyhoudini 1)Не думаю что все ошибки о ссылкой на xr_logic были исправлены. Это может быть важным!. Так как таких строк  у вас мильон! И могу с уверенностью сказать сохранения у вас нерабочие. Рано или поздно будут безлоговые вылеты!

2)При неизменном xr_logic, следует менять логику объектам которые еще не проспаунились, иначе в сейве могут остаться данные от схемы  где логика объекта еще не менялась. Вроде как схемы должны сбрасываться, но мало ли для монстров могут быть исключения

Сначала разберитесь с этими проблемами, а потом можно будет говорить о скрипте

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


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

Mass тот вылет возникал лишь при вашем варианте скрипта

я поставил последней от makdm и их не было

а логику я меняю у объекта который ещё не проспавнился

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


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

imcrazyhoudini тогда попробуйте заремить в скрипте строку look_pt:normalize()

12 минут назад, imcrazyhoudini сказал:

тот вылет возникал лишь при вашем варианте скрипта

Возможно в Чн в deactivate  нельзя юзать xr_logic.mob_capture(self.object, true)

Также попробуйте совсем убрать функцию deactivate в этом скрипте

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

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


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

Mass имеете ввиду использовать ваш скрипт?

а вы на чн оттестировать данную логику с вашим скриптом не можете?

а то я уже отчаялся... второй месяц уже с этой сценкой:/

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


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

imcrazyhoudini Очевидно мой скрипт не работает, раз портится сейв!

Отредактировать скрипт от товарища makdm для ЧН

Оттестить логику на ЧН? - это будет морока для меня, нужно будет подключать скрипты и прочие правки

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


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

Mass а что там редактировать? если не изменяет память во всех частях этот скрипт идентичен

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


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

imcrazyhoudini ну, мы же говорили о скрипте от камрада makdm. Попробуйте сделать так как я написал. Больше ничем не могу помочь

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 07.07.2023 в 17:17, imcrazyhoudini сказал:

а вы на чн оттестировать данную логику с вашим скриптом не можете?

а то я уже отчаялся... второй месяц уже с этой сценкой:

Вот только пять минут назад протестировал схему jump на ЗП с кровососом. Прыгает как миленький.

Выкладываю вам его логику. Вы можете переделать под ЧН и попробовать.

Путь blood_3_walk имеет такой вид

[esc_sim_8_blood_3_walk]
points = p0
p0:name = wp00|sig=path_1_end
p0:flags = 0x1
p0:position = 327.387054443359,16.0682029724121,-9.58210563659668
p0:game_vertex_id = 31
p0:level_vertex_id = 655572

esc_sim_8_logic.ltx

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

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

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


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

makdm да, так конечно проблем и у меня не возникает, но мне нужно чтобы он пред этим отыграл две анимации

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


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

но мне нужно чтобы он пред этим отыграл две анимации

Ну так отыгрывайте. Доработанный файл  mob_remark я вам сбросил. Скорее всего вы что-то не то в логике делаете.

Сбрасываю последнюю версию.

 

mob_remark.script


Дополнено 6 минуты спустя
В 02.07.2023 в 12:41, imcrazyhoudini сказал:

появляется кровосос, смотрит на гг, отыгрывает анимацию рычания со звуком, переходит в режим прыжка, подпрыгивает к гг, всё

Исправил файл mob_jump.script

Теперь, если в логике прописать: path_jump = actor

нпс будет прыгать точно в позицию ГГ.

Надеюсь теперь ваши двухмесячные мучения закончатся.

mob_jump.script

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

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

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


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

makdm Монстр при переключении схемы на ремарк по прежнему висит в алайфе какое-то время и сдвигается с места. Возможно причина в самой машине, так как на разных компьютерах разный апдейт.

Я доработал эту ситуацию
 

        if self.st.target then
            ...
        else
            action(self.object, look(look.cur_dir), cond(cond.time_end, 500)) -- без этого моб находится в алайфе
        end

И тогда


 

    elseif self.anims[ self.count ] then -- При вышеуказанной правке сюда будет приходить нил!
--\\ Анимация без движения и без разворота в сторону ГГ. Куда моб до анимации смотрел - туда и смотрит во время анимации.
        action( self.object, anim( self.anims[ self.count ] ), sound( sound.idle ), self.cnd )
    end

БАГРЕПОРТ! Также когда в секции указанны анимации из движка и мы переключаемся на обычную анимацию, то когда мы возвращаемся с помощью логики в секцию где анимация из таблицы anim монстр отыгрывает всё равно обычную анимацию, хотя секция переключилась и анимация  тоже должна была бы переключиться , но почему-то виснет

action( self.object, anim( xray_anim[ self.anims[ self.count ] ], 0 ), sound( sound.idle ), self.cnd )

на этой строке

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

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


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

у меня с новой версией валится

Спойлер

FATAL ERROR

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_pcall_failed

[error]File : D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrServerEntities\script_engine.cpp

[error]Line : 192

[error]Description : <no expression>

[error]Arguments : LUA error: ....a.l.k.e.r. clear sky\gamedata\scripts\mob_remark.script:188: attempt to perform arithmetic on local 'pos' (a nil value)

 

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


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

imcrazyhoudini нужно так по формату из ЗП

target = path | pri_a28_horror_look, 0

Для актора и других со стори ид в ЧН нужно поменять на число id

target_id = get_story_object_id(story_id)

Поменять на это

local sid = tonumber(story_id)
if sid == 0 then
    target_id = 0
else
    target_id = id_by_sid(sid)
end

тогда в логике можете написать

target = story | 0

 

 


Дополнено 41 минуты спустя
15 часов назад, Mass сказал:

БАГРЕПОРТ!

Это появилось после моей правки! Каюсь! Без этого анимации работают, однако при дебаге в лог в вашем скрипте и в моём также =)

Object zat_b18_dog_noah7093 has an empty script queue!

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

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

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


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

Mass уважаемый мастер, не возвращали ли вы спавн по инфопоршню монстров как это было в ТЧ?
по типу
[spawner]
cond = {+info}

мои попытки безуспешны

se_monster.script

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


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

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

Правки небольшие пока что, замени имя гг, поменял меню, его иконку и стартовый набор. Немного исправил сложности (теперь меньше времени неуязвимости на сложности новичок и сталкер)

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

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


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

imcrazyhoudini se_monster.script

Попробуйте этот скрипт! Я не проверял если что!

Но я бы изменил на ЗП вариант on_offline из логики мне кажется лучше подходит 

тыкни меня

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


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

из логики мне кажется лучше подходит 

а как его добавить то? если я дуб в этом

скрипт не сработал, вот с тч рабочий, может вам это даст что-то

se_monster.script

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


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

imcrazyhoudini Под обычной логикой или под смартом? Если 2-ое тогда еще надо изменять сам смартерейнскрипт

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

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


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

Mass без смарта, под обычной логикой

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


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

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

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

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

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

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

Войти

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

Войти

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

    Ни одного зарегистрированного пользователя не просматривает данную страницу