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

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

 

b27b2a4837.png

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

 

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

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

c01570bf2e07524.png

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


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

imcrazyhoudini braindead = true, нужен, если хотите чтобы монстр заагрился после хита по нему

combat_ignore_cond = always? Не работает? Хм... А попробуйте 

combat_ignore_cond = true

Остается вариант со схемой ремарк с анимацией jump. Может быть вариант и с mob_walker

 

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


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

combat_ignore_cond = always? Не работает? Хм... А попробуйте 

combat_ignore_cond = true

это схемы для НПС

2 часа назад, Mass сказал:

braindead = true, нужен, если хотите чтобы монстр заагрился после хита по нему

и снова промах - braindead как раз является тем параметром, после которого монстр игнорит даже после хита по нём

2 часа назад, Mass сказал:

Остается вариант со схемой ремарк с анимацией jump.

если бы анимацию удлинить как-то...

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


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

это схемы для НПС

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

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

и снова промах - braindead

Ах, да! Пересмотрел скрипт. В зп его нет! Я перепутал с другим параметром. 

А что за анимацию используете?

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

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


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

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

оверрайды монстров оверрайды нпс

и я как раз проверял это в игре, оверрайды нпс никаким образом не влияют на монстров

38 минут назад, Mass сказал:

А что за анимацию используете?

для прыжка?
ну, там их три:
boloto_jump_prepare, boloto_jump_fly, boloto_jump_end
подготовка-прыжок-завершение

и вот вторую бы удлинить

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


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

Здесь настройки для ТЧ! В ЧН разрабы добавили xr_combat_ignore с кондлистом для мобов( см xr_logic). Уже в ЧН надобность только для монстров оверрайдов отпала, поэтому в ЗП это порезали! 

1 час назад, imcrazyhoudini сказал:

и вот вторую бы удлинить

может быть вот так? Не проверял

action(self.object, anim("boloto_jump_fly"), look(look.point, db.actor:position()), cond(cond.time_end, 5500)) --'cond.anim_end

Я посмотрел снова скрипт mob_remark. Возможно стоит играться с настройкой time в логике задать при анимке хоть 10000 и посмотреть на результат. Самому интересно что выйдет.

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

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


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

Mass нашёл баг - braindead не работает в mob_remark судя по всему

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


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

braindead не работает

Настроек по аналогии alife_mode нет в mob_remark! Есть лишь в mob_walker

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


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

Mass блин, хреново, как же заставить монстра быть безобидным


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

Mass не понимаю, почему не работает (не отыгрывает анимацию даже первую):
 

Спойлер

[logic]
active = mob_walker

[mob_walker]
path_walk = blood_walk
path_look = blood_look
braindead = true
state = vis
on_info = {+test_jump} mob_remark

[mob_remark]
target = blood_look,0
anim = boloto_jump_prepare
braindead = true
combat_ignore_cond = true
on_signal = anim_end | mob_remark@2

[mob_remark@2]
target = blood_look,0
anim = boloto_jump_fly
braindead = true
time = 5000
combat_ignore_cond = true
on_signal = anim_end | mob_remark@3

[mob_remark@3]
target = blood_look,0
anim = boloto_jump_end
braindead = true
combat_ignore_cond = true
on_signal = anim_end | mob_walker

 

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


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

Потому что не стоит всему доверять из ВИКИ! Смотрите сам скрипт! Параметра target нет вовсе! Также вметсо сигнала anim_end нужно использовать action_end

Хотите чтобы braindead работал. Так сделайте его сами.

в set_scheme пропишите 

st.alife_mode      = mob_alife_mgr.cfg_get_mode(ini, section, npc)

и в метод update добавьте проверку в самый вверх

    if mob_alife_mgr.alife_control(self.object, db.actor, self.st.alife_mode) then
        return
    end

 

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

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


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

Mass 

Спойлер

[logic]
active = mob_walker

[mob_walker]
path_walk = blood_walk
path_look = blood_look
braindead = true
state = vis
on_info = {+test_jump} mob_remark

[mob_remark]
anim = boloto_jump_prepare
on_signal = action_end | mob_remark@2

[mob_remark@2]
anim = boloto_jump_fly
time = 5000
on_signal = action_end | mob_remark@3

[mob_remark@3]
anim = boloto_jump_end
on_signal = action_end | mob_walker

не работает анимка

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


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

не работает анимка

Попробуйте добавить в логику 

anim_movement = true

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


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

Разве прыжок не в схеме чот-там-jumper или как-то так должен задаваться?

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


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

Ferveks только снорки умеют этой схемой пользоваться


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

Mass не, не пашет

чёрт знает в чём прикол...

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


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

чёрт знает в чём прикол

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

 

Еще можно попробовать повозиться с mob_walker, и когда кровосос делает прыжок, в путях прописать t=100000. Как проверка подойдет

 

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

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


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

Mass знать бы почему anim не считывается... даже другие анимки не отыгрывает
хотя по консоли - точно переходит в mob_remark

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


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

знать бы почему anim не считывается.

У меня заработало! Чтобы заюзать анимку boloto_jump_prepare нужно не использовать anim, а создать новую настройку anims в схеме и в ресет заюзать этот метод

action(self.object, anim(self.st.anims), sound(sound.idle), cnd)

Потому что тогда скрипт пытался проиграть анимацию при помощи пространство имен anim,  та мэтой анимации не находилось вот и монстр тупил

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


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

Mass можно пожалуйста полный пример того что вы сделали?
а то я в этом дуб-дубом

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


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

mob_remark.script

imcrazyhoudini Это черновая работа

Юзать только anims = "ваша анимка"

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


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

Mass а переход в следующую секцию по окончании anims есть, или как?
on_signal = anims_end? или как?

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


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

imcrazyhoudini Можно через on_info, on_timer...

  • Лайк 1

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


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

Mass взял ваш скрипт, вылет

потом впихнул в ваш скрипт это, в function mob_remark:reset_scheme()

56 минут назад, Mass сказал:

action(self.object, anim(self.st.anims), sound(sound.idle), cnd)

просто эту строку, без ничего, пред end, вылет, безлоговый

думаю что-то может я не так впихнул?

логика такая у меня
 

Спойлер

[mob_remark]
anims = boloto_jump_prepare
braindead = true
state = vis
on_game_timer = 10 | mob_remark@2

 

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


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

потом впихнул в ваш скрипт это, в function mob_remark:reset_scheme()

Ничего не надо было делать

Лучше конечно через сигнал 

on_signal = action_end | mob_remark@2

Тогда монстр точно отыграет свой экшен и перейдет в другую секцию


Дополнено 2 минуты спустя
4 минуты назад, imcrazyhoudini сказал:

braindead

А вот это можете впихнуть как я писал выше

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

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


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

Mass ваш скрипт + логика которая указана сверху:
 

Спойлер

* loading script mob_remark.script
 
FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrServerEntities\script_engine.cpp
[error]Line          : 180
[error]Description   : <no expression>
[error]Arguments     : LUA error: C++ exception
 

stack trace:
0x00000000EA302506 xrCore.dll, _Init_thread_footer + 86 byte(s), D:\a\_work\1\s\src\vctools\crt\vcstartup\src\misc\thread_safe_statics.cpp, 247
0x00000000EA3203CF xrCore.dll, xrDebug::backend + 191 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrCore\xrDebugNew.cpp, 178
0x00000000EA3209CF xrCore.dll, xrDebug::fatal + 143 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrCore\xrDebugNew.cpp, 308
0x00000000E8BCAF53 xrGame.dll, CScriptEngine::lua_error + 163 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrServerEntities\script_engine.cpp, 184
0x00000000E9068C11 xrGame.dll, CScriptBinderObjectWrapper::shedule_Update + 145 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\script_binder_object_wrapper.cpp, 85 + 126 byte(s)
0x00000000E8E9C5BB xrGame.dll, CGameObject::shedule_Update + 123 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\GameObject.cpp, 842
0x00000000E8E81FD7 xrGame.dll, CEntity::shedule_Update + 23 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\Entity.cpp, 329
0x00000000E8E84DC2 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
0x00000000E8E37854 xrGame.dll, CCustomMonster::shedule_Update + 356 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\CustomMonster.cpp, 339
0x00000000E8CFFE24 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
0x00000000E8D09BCE 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, 459
0x000000003F367EAC xrEngine.exe, CSheduler::ProcessStep + 476 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\xrSheduler.cpp, 342
0x000000003F367C3F xrEngine.exe, CSheduler::Update + 367 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\xrSheduler.cpp, 434
0x00000000E8EA0A07 xrGame.dll, CGamePersistent::OnFrame + 935 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrGame\GamePersistent.cpp, 615
0x000000003F30C5C7 xrEngine.exe, CRegistrator<pureFrame>::Process + 87 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\pure.h, 115
0x000000003F339961 xrEngine.exe, CRenderDevice::FrameMove + 321 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\device.cpp, 522
0x000000003F339EFB xrEngine.exe, CRenderDevice::on_idle + 395 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\device.cpp, 313
0x000000003F339D4F xrEngine.exe, CRenderDevice::message_loop + 111 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\device.cpp, 427
0x000000003F339B70 xrEngine.exe, CRenderDevice::Run + 480 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\device.cpp, 471
0x000000003F37F958 xrEngine.exe, Startup + 344 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\x_ray.cpp, 277
0x000000003F37F0E6 xrEngine.exe, WinMain_impl + 1830 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\x_ray.cpp, 757
0x000000003F37E959 xrEngine.exe, WinMain + 9 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrEngine\x_ray.cpp, 808
0x000000003F33544E 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)
0x0000000076F0651D kernel32.dll, BaseThreadInitThunk + 13 byte(s)
0x000000007749C201 ntdll.dll, RtlUserThreadStart + 33 byte(s)
 
xrEngine.exe caused an EXCEPTION_BREAKPOINT in module xrCore.dll at 00000000EA32046A, xrDebug::backend()+0346 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrCore\xrDebugNew.cpp, line 0230

 

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


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

imcrazyhoudini Хм... в Зп всё работает. Надо будет проверить на чём спотыкается...

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


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

в Зп всё работает.

я почему-то так и подумал, что вы на зп шаманите:)

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


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

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

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

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

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

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

Войти

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

Войти

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