Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Хемуль36рус 1 789 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 (изменено) @UnLoaded, логика [logic] active = walker@varan combat_ignore = combat_ignore on_hit = hit on_death = death [hit] on_info = {=hit_by_actor}%+lada_mertva% [death] on_info = %+varan_sdox% [walker@varan] path_walk = varan_walk path_look = varan_look combat_ignore_cond = {-lada_mertva} meet = meet on_actor_dist_le_nvis = 3 | {-varan_sound}remark@varan [remark@varan] target = actor snd = varan meet = no_meet combat_ignore_cond = always danger = danger_condition@varan on_signal = sound_end | walker@varan1 %+varan_sound% [walker@varan1] path_walk = varan_walk path_look = varan_look meet = meet combat_ignore_cond = {-lada_mertva} on_info = {+kachan_af_okean_start} walker@varan2 [walker@varan2] path_walk = varan_walk path_look = varan_look combat_ignore_cond = {-lada_mertva} meet = meet on_info = {+kachan_af_okean_have} walker@varan3 [walker@varan3] path_walk = varan_walk path_look = varan_look combat_ignore_cond = {-lada_mertva} meet = meet on_actor_dist_le_nvis = 3 | {-varan2_sound}remark@varan2 danger = danger_condition@varan [remark@varan2] target = actor snd = varan2 meet = no_meet combat_ignore_cond = always danger = danger_condition@varan on_signal = sound_end | walker@varan4 %+varan2_sound% [walker@varan4] path_walk = varan_walk path_look = varan_look combat_ignore_cond = {-lada_mertva} meet = meet [meet] meet_state = 10|guard@wait meet_state_wpn = 10|backoff@threat_weap victim = 10|actor victim_wpn = 10|actor use = true use_wpn = false syndata = backoff@threat_weap [combat_ignore] combat_ignore_cond = {-lada_mertva} [danger_condition@varan] ignore_distance = 0 ignore_distance_corpse = 0 Да что тут напутано, всё идет по порядку. Может....сам уже не знаю, что может. Изменено 5 Июля 2015 пользователем Хемуль36рус Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g. Ссылка на комментарий
Карлан 1 049 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 поумничать не удалось@скажу разбирайся сам Ссылка на комментарий
Хемуль36рус 1 789 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 Короче, я понял одно, логика работает нормально, если Гг рядом с нпс, как только уходишь от него, чтобы он остался в офлайне, все ломается. Я уже хотел схитрить, создал рестриктор, в котором будет выдан поршень для перехода нпс в определенную секцию, и что......Если тестирую рядом с нпс, всё работает как часы. Но как только я выполняю квест так как он должен по сюжеты выполнится, то даже заходя в рестриктор, ремарка не отыгрывается. У меня уже нервный смех появился. Неужели нет ни одного примера, чтобы нпс выдавал реплику после выполнения квеста. Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g. Ссылка на комментарий
UnLoaded 313 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 (изменено) Может....сам уже не знаю, что может... Неужели нет ни одного примера, чтобы нпс выдавал реплику после выполнения квеста. Ну, как вариант, добавить в xr_effects.script ф-ции типа: function logic_test() local text = "переходим в секцию [какая нужна]" news_manager.send_tip(db.actor, text, nil, nil, 30000) end Затем в условиях переключения секций добавить эту ф-цию как эффект %=logic_test%, и смотреть по сообщениям как происходит переключение секций. Когда наглядно будет видно их переключения, проще ошибку отловить. "...выдавал реплику после выполнения квеста" - процесс выполнения квеста(завершение подзаданий любого из активных заданий) не связан никак с логикой неписей. Только твоя работа по этому связыванию, правильной выдачей и-п, и обеспечит нужную синхронизацию. Изменено 5 Июля 2015 пользователем UnLoaded Ссылка на комментарий
Карлан 1 049 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 @Хемуль36рус, config\scripts\agr\agr_krot.ltx, смотрим, анализируем, делаем выводы. Логика у тебя вообще забавная, попробуй перепиши опираясь на нормальную человеческую логику, т.е. причина, следствие, причина, следствие и т.д. Ссылка на комментарий
makdm 37 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 Логика у тебя вообще забавная Это точно. @Хемуль36рус, вот такую логику попробуй ( минимум исправлений ): [logic] active = walker@varan combat_ignore = combat_ignore on_hit = hit on_death = death [hit] on_info = {=hit_by_actor}%+lada_mertva% [death] on_info = %+varan_sdox% [walker@varan] path_walk = varan_walk path_look = varan_look combat_ignore_cond = {-lada_mertva} meet = meet on_info = {=dist_to actor_le(4) -varan_sound} remark@varan on_info2 = {+varan_sound -varan2_sound} walker@varan2 on_info3 = {+varan_sound +varan2_sound} walker@varan4 [remark@varan] target = actor snd = varan meet = no_meet combat_ignore_cond = always danger = danger_condition@varan on_signal = sound_end | walker@varan2 %+varan_sound% [walker@varan2] path_walk = varan_walk path_look = varan_look combat_ignore_cond = {-lada_mertva} meet = meet on_info = {+kachan_af_okean_have} walker@varan3 [walker@varan3] path_walk = varan_walk path_look = varan_look combat_ignore_cond = {-lada_mertva} meet = meet on_info = {=dist_to actor_le(4)} remark@varan2 danger = danger_condition@varan [remark@varan2] target = actor snd = varan2 meet = no_meet combat_ignore_cond = always danger = danger_condition@varan on_signal = sound_end | walker@varan4 %+varan2_sound% [walker@varan4] path_walk = varan_walk path_look = varan_look combat_ignore_cond = {-lada_mertva} meet = meet [meet] meet_state = 10|guard@wait meet_state_wpn = 10|backoff@threat_weap victim = 10|actor victim_wpn = 10|actor use = true use_wpn = false syndata = backoff@threat_weap [combat_ignore] combat_ignore_cond = {-lada_mertva} [danger_condition@varan] ignore_distance = 0 ignore_distance_corpse = 0 Ссылка на комментарий
Хемуль36рус 1 789 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 (изменено) @makdm, попробую конечно, но а что забавного то, переходит из секции в секцию. А от Крота Гг не уходит так, чтобы тот остался в офлайне, все происходит рядом. Вот такой вылет с примером этой логикию ! Cannot find saved game ~~~ object 'varan': pick_section_from_condlist: function 'dist_toactor_le' is not defined in xr_conditions.script * Log file has been saved successfully! FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: f:\stalker4\gamedata\scripts\_g.script:1127: bad argument #2 to 'format' (string expected, got no value) stack trace: Почему-то не определяет функцию. Изменено 5 Июля 2015 пользователем Хемуль36рус Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g. Ссылка на комментарий
RafMadMan 85 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 Ребята, спавню значит уже нпц через all.spawn по уроку (http://stalkerin.gameru.net/wiki/index.php?title=All.spawn._Создание_NPC), и прописываю ему почти всё свое, включая координаты. С логикой так же. Нпц спавнится где надо, но потом бежит и прибегает к точке, где он спавнится по уроку. Как такое возможно? Логика: [walker_stay_at_position_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = -178.327,-19.932,-160.786 p0:game_vertex_id = 52 p0:level_vertex_id = 72102 [walker_stay_at_position_look] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = -181.047,-19.932,-158.252 p0:game_vertex_id = 52 p0:level_vertex_id = 72147 Секция: [914] ; cse_abstract properties section_name = stalker name = soldafon position = -178.327,-19.932,-160.786 direction = 0,0,0 ; cse_alife_trader_abstract properties money = 12724 character_profile = soldafon ; cse_alife_object properties game_vertex_id = 52 distance = 0 level_vertex_id = 72102 object_flags = 0xffffffbf custom_data = <<END [logic] active = walker@stay_at_position combat_ignore = combat_ignore danger = danger_condition [walker@stay_at_position] path_walk = walker_stay_at_position_walk path_look = walker_stay_at_position_look [combat_ignore] combat_ignore_cond = always [danger_condition] ignore_distance = 0 ignore_distance_corpse = 0 ; cse [smart_terrains] none = true END story_id = 10000 ; cse_visual properties visual_name = actors\soldier\soldier_spetsnaz ; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 2 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = -178.327,-19.932,-160.786 upd:o_model = 0 upd:o_torso = 0.0280130300670862,0,0.999607563018799 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 2 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_alife_human_abstract properties predicate5 = 1,2,2,1,2 predicate4 = 0,1,1,1 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties Ссылка на комментарий
makdm 37 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 Почему-то не определяет функцию Опечатка, пока набирал логику. Вместо dist_to actor_le нужно написать dist_to_actor_le 1 Ссылка на комментарий
Хемуль36рус 1 789 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 @makdm, Я тоже не заметил, переписал вот так [logic] active = walker@varan combat_ignore = combat_ignore on_hit = hit on_death = death [hit] on_info = {=hit_by_actor}%+lada_mertva% [death] on_info = %+varan_sdox% [walker@varan] path_walk = varan_walk path_look = varan_look combat_ignore_cond = {-lada_mertva} meet = meet on_actor_dist_le_nvis = 3 | {-varan_sound} remark@varan on_info = {+varan_sound -varan2_sound} walker@varan2 on_info2 = {+varan_sound +varan2_sound} walker@varan4 [remark@varan] target = actor snd = varan meet = no_meet combat_ignore_cond = always danger = danger_condition@varan on_signal = sound_end | walker@varan2 %+varan_sound% [walker@varan2] path_walk = varan_walk path_look = varan_look combat_ignore_cond = {-lada_mertva} meet = meet on_info = {+kachan_af_okean_have} walker@varan3 [walker@varan3] path_walk = varan_walk path_look = varan_look combat_ignore_cond = {-lada_mertva} meet = meet on_actor_dist_le_nvis = 3 | {-varan2_sound} remark@varan2 danger = danger_condition@varan [remark@varan2] target = actor snd = varan2 meet = no_meet combat_ignore_cond = always danger = danger_condition@varan on_signal = sound_end | walker@varan4 %+varan2_sound% [walker@varan4] path_walk = varan_walk path_look = varan_look combat_ignore_cond = {-lada_mertva} meet = meet [meet] meet_state = 10|guard@wait meet_state_wpn = 10|backoff@threat_weap victim = 10|actor victim_wpn = 10|actor use = true use_wpn = false syndata = backoff@threat_weap [combat_ignore] combat_ignore_cond = {-lada_mertva} [danger_condition@varan] ignore_distance = 0 ignore_distance_corpse = 0 тьфу, тьфу, сработало, первый раз за два дня, но проверю ещё разок. Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g. Ссылка на комментарий
makdm 37 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 но проверю ещё разок. Можешь не проверять. Будет работать на все 146%. Просто я знаю причину. Года так три или четыре назад, сам решал такую же проблему. Ссылка на комментарий
Хемуль36рус 1 789 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 @makdm, ну так расскажи для всех, что за причина. Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g. Ссылка на комментарий
makdm 37 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 у так расскажи для всех, что за причина. Причина в том, что каждый раз при переходе в он-лайн в логике запускается active секция. Ты первый раз подошёл к НПС. Условие on_actor_dist_le_nvis = 3 | {-varan_sound} remark@varan возвращает true. Переключение на секцию remark и выдаётся поршень varan_sound. Затем ты ушёл от НПС и НПС перешёл в офф-лайн. Ты вернулся и при переходе НПС в он-лайн снова запускается active секция. В этом случае условие on_actor_dist_le_nvis = 3 | {-varan_sound} remark@varan возвращает false ( поршень varan_sound уже был выдан ранее ). Вот НПС и тупит у тебя в active секции и не переключается на другие. Я добавил тебе в active секцию эти переключения. Всё очень просто. 1 Ссылка на комментарий
Карлан 1 049 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 @makdm, все равно простыня, у него пути одинаковые везде, следовательно всех волкеров нужноможно упихать в один, по крайней мере так бы сделал я. Ссылка на комментарий
makdm 37 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 (изменено) все равно простыня, у него пути одинаковые везде, Согласен. Поэтому и написал, что исправил только минимум ( затык в логике ), а уж править саму структуру логики я не стал. Изменено 5 Июля 2015 пользователем makdm Ссылка на комментарий
Хемуль36рус 1 789 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 Логика вещь муторная, делал так как видел в других модах. Да так и проще вроде. 1 Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g. Ссылка на комментарий
UnLoaded 313 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 (изменено) Причина в том, что каждый раз при переходе в он-лайн в логике запускается active секция. Не уверен. Может я и не прав, те кто лучше знают - поправят, но если непись работает в каком-то гулаге, то при переходах он\офф-лайн секция logic(т.е. перезапуск всей логики) активируется только при переключении работ, т.е. обычно это смена состояний гулага; А вот если непись отрабатывает собственную логику(т.е. единственную работу) - вот тут при переходах он\офф-лайн видимо происходит перезапуск всей логики. Это не утверждаю, т.к. не тестировал, в отличии от работ под гулагами. Кстати, Хемуль36рус, а этот непослушный непись у Вас под гулагом или собственная логика ? Изменено 5 Июля 2015 пользователем UnLoaded 1 Ссылка на комментарий
makdm 37 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 Может я и не прав, те кто лучше знают - поправят Абсолютно прав. В данном случае НПС не в гулаге. Поэтому и произошёл такой "затык" в логике. 1 Ссылка на комментарий
AndrewMor 527 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 Такая трабла возникла. Есть автомат АК-12 калибра 7.62. Хотелось бы его (модельку) под калибр 5,45 переделать, но вся беда в том, что сам я в этом полнейший дуб. Может, найдется кто-нибудь, кто сможет переделать модельку? Сталкер - наше всё! Ссылка на комментарий
UnLoaded 313 Опубликовано 5 Июля 2015 Поделиться Опубликовано 5 Июля 2015 Есть автомат АК-12 калибра 7.62. Хотелось бы его (модельку) под калибр 5,45 переделать Эмм, а чем они, по Вашему, должны отличаться ? В плане модельки ? 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти