Сталкер Лом 356 Опубликовано 31 Октября 2012 Подключил я несколько локаций (Болота ЧН, Свалка ЧН, Росток ТЧ и Кордон ТЧ), давно уже над ними колдую, но при переходе Кордон\Свалка\другая локация происходит следующий вылет: FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ... - Зов Припяти\gamedata\scripts\smart_terrain.script:353: attempt to index field 'job_link' (a nil value) stack trace: 001B:69737365 nvd3dum.dll В следствии чего появляется сей вылет? Заранее спасибо! P.S. Так и не нашёл как спойлеры делать... Если кто сообщит в ЛС, буду благодарен. Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 1 Ноября 2012 (изменено) Закомментировал 353-ю строку, (self.npc_info[obj.id].job_link.npc_id = nil), вроде всё шло как надо. Но через некоторое время ловлю вылет: FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ... - Зов Припяти\gamedata\scripts\smart_terrain.script:381: attempt to index field 'job_link' (a nil value) stack trace: 001B:69737365 nvd3dum.dll Жалоба была связана с тем, чтобы "Убрать убитого\\ Установить таймер смерти на работе", закомментировал и эту строчку, но через некоторое время снова ловлю вылет: FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ... - Зов Припяти\gamedata\scripts\smart_terrain.script:83: attempt to index local 'obj' (a boolean value) stack trace: 001B:69737365 nvd3dum.dll Исходя из этих вылетов, надо к каждой строчке, которая будет давать "челобитную" приставить дополнительную проверку? P.S. Благодарю за пояснение со скриптами и спойлером. Изменено 1 Ноября 2012 пользователем Сталкер Лом Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 2 Ноября 2012 Такой вылет у меня случался если использовать класс крысы (AI-rat), попробуй в конфиге карлика поставить класс Бюрера ( class = SM_BURER), должно помочь. Если будут другие вылеты, то попробуй сделать [karlik_normal]:burer_normal visual =" путь до визуала карлика" corpse_visual = "аналогично предыдущей секции" spec_rank = normal Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 5 Ноября 2012 (изменено) Sektor1986, у меня такой вылет бывал, когда я с крысами "боролся". Как я над этим вылетом победу одержал точно не помню, но попробуй скопировать анимации в секцию meshes/actors и meshes/monsters , возможно, анимации исходят не из того места. P.S. Из за какой ошибки\недочёта может происходить безлоговый вылет в ЗП при добавлении на смарт новой локации секции [exclusive]? В секции путь для логики указан верно, логика проста как полено: [logic@esc_dog_leader] active = walker@esc_dog_leader suitable = {=check_npc_name(zat_b42_mayron)} true prior = 100 [walker@esc_dog_leader] path_walk = esc_podval_lager_wolf_walk ;esc_dog_leader_walk path_look = esc_podval_lager_wolf_look ;esc_dog_leader_look on_info = {=surge_started} walker@surge [walker@surge] path_walk = esc_sim_13_surge_1_walk path_look = esc_sim_13_surge_1_look on_info = {=surge_complete} walker@esc_dog_leader Изменено 5 Ноября 2012 пользователем Сталкер Лом Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 8 Ноября 2012 Пытался "воскресить" Сидоровича: FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ... - Зов Припяти\gamedata\scripts\smart_terrain.script:513: attempt to index field 'alife_task' (a nil value) stack trace: 001B:69737365 nvd3dum.dll На что игра жалуется? Заранее спасибо! Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 10 Ноября 2012 Доброго дня (или ночи). Кто-нибудь знает, где находятся приоритеты работ в смарт-тирейне (walker, guard, sleeper и т.д.)? Заранее спасибо. Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 21 Ноября 2012 Здравствуйте, мужики. Не первую неделю забиваю себе голову вопросом: секция [stalker_terrain] в конфиге сталкера (да и во всех конфигах монстров) за что отвечает? За доступные для посещения граф-поинты в offline? Если так, то для чего у каждого смарта (в оригинале) прописывается код тиррейна (255,255,255,135), или NPC в offline в ЗП бродят так же по смартам, либо исключительно по ним? P.S. Голову этим забиваю по причине того, что после того, как посплю (часов 5) на новой локации на смарте появляются собаки\кабаны\коты\крысы\бандосы, хотя в симуляции они не прописаны... Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 3 Декабря 2012 Здравствуйте. Появилась нужда добавить военных на Кордон из ТЧ, подключенного к ЗП, поставил смарт-тирейн, сделал работы для него: 12 анимпоинтов, 2 часовых, 2 патрульных, 2 снайпера, итого 18 работ. Поковырявшись в файлах, не увидел отряды вояк для симуляции, создал их, зарегистрировал в simulation_object_props.ltx. В отряде от 6 до 9 человек, включая бойцов с оптикой. При спавне их на смарте двое идут на места часовых, двое - на патруль, редко, несколько человек идут на анимпоинты, а остальные уходят до Деревни Новичков, выносят всех от туда и устремляются вглубь Зоны . Собственно вопрос: "Почему они не занимают работы, ведь в настройках смарта указанно максимум_популяции = 1?" Заранее благодарю. P.S. Ещё ставлю туда эксклюзивного NPC с логикой анимпоинта, но он тоже уходит с остальными. Неужели они идут искать погибшие вертолёты операции "Фарватер"? Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 3 Декабря 2012 (изменено) Не помогло, как уходили, так и уходят. Добавлено: Заменил толпу Вояк на толпу Сталкеров, они тоже уходят. Может такое быть, если точки работ не совпадают с АИ-сеткой, либо этим точкам не соответствуют level_vertex? Изменено 3 Декабря 2012 пользователем Сталкер Лом Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 5 Декабря 2012 Clayman, локация зарегистрирована и всё "колдовство" над ней произнесено, я не мог понять, почему у меня NPC, принимая определённую работу уходил со смарта, несмотря на то, что у его сквада был прописан target_smart. А решение я нашёл: Удалил все работы на смарте, кроме тех, которые были точно рабочими и начал создавать их попарно, заново. Так NPC со смарта уходили, если их работа была вне АИ-сетки (моё личное наблюдение, как на самом деле, не знаю, возможно, что так и есть), так таких "нехороших" мест на Кордоне ТЧ (на новом блокпосте) довольно много, АИ-сетки нет в половине казармы, она ограничена в конторе, а ещё её нет на мелких вышках. Решил проблему заменой мест (а другого выбора и нет, разве что СДК и флаг в руки). Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 6 Декабря 2012 (изменено) Здравствуйте. Ещё давно, когда только заселял Кордон, делал укрытия от выброса для ГГ и NPC, сейчас решил проверить. NPC начинают "копошиться" на месте и никак не могут уйти в укрытие, консоль полна таким текстом: * Game Игорь - выброс.scop is successfully saved to file 'c:\users\public\docume~1\stalke~1.-\savedgames\Игорь - выброс.scop' DEFAULT OUT RESTRICTIONS : DEFAULT IN RESTRICTIONS : esc_surge_hide_sim_13 OUT RESTRICTIONS : IN RESTRICTIONS : esc_surge_hide_sim_13 DEFAULT OUT RESTRICTIONS : DEFAULT IN RESTRICTIONS : esc_surge_hide_sim_13 OUT RESTRICTIONS : IN RESTRICTIONS : esc_surge_hide_sim_13 DEFAULT OUT RESTRICTIONS : DEFAULT IN RESTRICTIONS : esc_surge_hide_sim_13 OUT RESTRICTIONS : IN RESTRICTIONS : esc_surge_hide_sim_13 DEFAULT OUT RESTRICTIONS : DEFAULT IN RESTRICTIONS : esc_surge_hide_sim_13 OUT RESTRICTIONS : IN RESTRICTIONS : esc_surge_hide_sim_13 Но есть один NPC, который от укрытия буквально в двух шагах, вот он доходит до границы укрытия и останавливается (только он и выживает после Выброса). В чём может быть дело, ведь точки для NPC присутствуют и что значит сей текст в консоле? Заранее благодарю. Изменено 6 Декабря 2012 пользователем Сталкер Лом Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 12 Декабря 2012 Здравствуйте. Подскажите пожалуйста, что нужно сделать, что бы NPC на новой локации при Выбросе уходили со своего смарта (на котором укрытий нет) в другой (где есть укрытия)? Заранее благодарю. Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 17 Декабря 2012 Снова здравствуйте. Делал смарт на новой локации, но при начале новой игры получал вылет: * [prefetch] time: 6277 ms * [prefetch] memory: 78166Kb ! Player name in registry is empty! (InstallUserName) * phase time: 6412 ms * phase cmem: 201971 K * phase time: 9 ms * phase cmem: 201971 K * Creating new game... * Loading spawn registry... FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:941: bad argument #1 to 'gfind' (string expected, got nil) stack trace: Долго мучился в чём дело, не понял, плюнул на него, начал делать другой, тот получился, работает. Взялся делать другой, но так же ловлю этот же вылет. Собственно вопрос: Что сей лог значит? Заранее благодарю. Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 23 Декабря 2012 Здравствуйте. Даже и не знаю из за чего этот вылет бывает, но появляется он только когда брожу у смарта: FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ...e.r. - Зов Припяти\gamedata\scripts\state_mgr.script:502: attempt to index field '?' (a nil value) stack trace: В скрипте указанна проверка "special_danger_move", данное значения имеет только библиотека raid (state_lib.script), может, ошибка происходит при атаке на смарт? Что лог мне хочет сказать я так понять и не могу. Помогите, за ответ буду благодарен. Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 24 Декабря 2012 Скрипты брал от скрипты от комрада nuclia, привожу их правки: стр. 565; animpoint_sit_ass = smart_covers_animpoint_sit_ass.get_smart_cover(), стр. 566; animpoint_sit_knee = smart_covers_animpoint_sit_knee.get_smart_cover(), стр. 409: sleep_noweap = { weapon = "none", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "nil", animation = "sleeping" }, sleep_sit = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "sleep_sit" }, eat_bread = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_knee", animation = "eat_bread" }, eat_vodka = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "eat_vodka" }, eat_energy = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "eat_energy" }, eat_kolbasa = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "eat_kolbasa" }, sleep_noweap = { weapon = "none", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "nil", animation = "sleeping" }, sleep_sit = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "sleep_sit" }, eat_bread = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_knee", animation = "eat_bread" }, eat_vodka = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "eat_vodka" }, eat_energy = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "eat_energy" }, eat_kolbasa = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "eat_kolbasa" }, стр. 57: animpoint_sit_ass = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_knee", animation = "animpoint_sit_knee", direction = CSightParams.eSightTypeAnimationDirection }, стр. 164: animpoint_sit_ass_eat_bread = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_eat_bread", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_ass_eat_kolbasa = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_eat_kolbasa", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee_eat_bread = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_eat_bread", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee_eat_kolbasa = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_eat_kolbasa", direction = CSightParams.eSightTypeAnimationDirection }, стр.287: animpoint_sit_ass_drink_vodka = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_drink_vodka", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_ass_drink_energy = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_drink_energy", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee_drink_vodka = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_drink_vodka", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee_drink_energy = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_drink_energy", direction = CSightParams.eSightTypeAnimationDirection }, стр. 370: animpoint_sit_ass_guitar = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_guitar", --- animation = "play_guitar", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee_guitar = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_guitar", --- animation = "play_guitar", direction = CSightParams.eSightTypeAnimationDirection }, стр. 439: animpoint_sit_ass_harmonica = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_harmonica", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee_harmonica = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_harmonica", direction = CSightParams.eSightTypeAnimationDirection }, стр.327: sleep_sit = { prop = { maxidle = 10, sumidle = 20, rnd = 100 }, into = { [0] = {"sit_2_to_sleep_2"}}, out = { [0] = {"sleep_2_to_sit_2"}}, idle = { [0] = "sleep_idle_2" }, rnd = { [0] = {"sleep_idle_3" }}}, стр. 327: eat_bread = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_2_draw_0", {a="bread"}, "item_2_draw_1"} }, out = { [0] = {"item_2_holster_0", {d="bread"}, "item_2_holster_1"} }, idle = { [0] = "item_2_aim_0" }, rnd = { [0] = { "item_2_prepare_0", "item_2_attack_0" } }}, eat_vodka = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_4_draw_0", {a="vodka"}, "item_4_draw_1"} }, out = { [0] = {"item_4_holster_0", {d="vodka"}, "item_4_holster_1"} }, idle = { [0] = "item_4_aim_0" }, rnd = { [0] = { "item_4_prepare_0", "item_4_attack_0" } }}, eat_energy = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_5_draw_0", {a="energy_drink"}, "item_5_draw_1"} }, out = { [0] = {"item_5_holster_0", {d="energy_drink"}, "item_5_holster_1"} }, idle = { [0] = "item_5_aim_0" }, rnd = { [0] = { "item_5_prepare_0", "item_5_attack_0" } }}, eat_kolbasa = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_1_draw_0", {a="kolbasa"}, "item_1_draw_1"}}, out = { [0] = {"item_1_holster_0", {d="kolbasa"}, "item_1_holster_1"} }, idle = { [0] = "item_1_idle_1" }, rnd = { [0] = { "item_1_attack_0", "item_1_idle_0" } }}, стр. 64: animpoint_sit_ass = { prop = { maxidle = 5, sumidle = 3, rnd = 80, moving = true }, into = nil, out = nil, idle = { [0] = "sit_2_idle_0", [1] = "sit_2_idle_0" }, rnd = { [0] = { "sit_2_idle_1", "sit_2_idle_2", "sit_2_idle_3" }, [1] = { "sit_2_idle_1", "sit_2_idle_2", "sit_2_idle_3" } }}, animpoint_sit_knee = { prop = { maxidle = 5, sumidle = 3, rnd = 80, moving = true }, into = nil, out = nil, idle = { [0] = "sit_1_idle_0", [1] = "sit_1_idle_0" }, rnd = { [0] = { "sit_1_idle_1", "sit_1_idle_2", "sit_1_idle_3" }, [1] = { "sit_1_idle_1", "sit_1_idle_2", "sit_1_idle_3" } }}, стр. 219. animpoint_sit_ass_eat_bread = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_2_draw_0", {a="bread"}, "item_2_draw_1"}, [1] = {"item_2_draw_0", {a="bread"}, "item_2_draw_1"} }, out = { [0] = {"item_2_holster_0", {d="bread"}, "item_2_holster_1"}, [1] = {"item_2_holster_0", {d="bread"}, "item_2_holster_1"} }, idle = { [0] = "item_2_aim_0", [1] = "item_2_aim_0" }, rnd = { [0] = { "item_2_prepare_0", "item_2_attack_0" }, [1] = { "item_2_prepare_0", "item_2_attack_0" } }}, animpoint_sit_ass_eat_kolbasa = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_1_draw_0", {a="kolbasa"}, "item_1_draw_1"}, [1] = {"item_1_draw_0", {a="kolbasa"}, "item_1_draw_1"} }, out = { [0] = {"item_1_holster_0", {d="kolbasa"}, "item_1_holster_1"}, [1] = {"item_1_holster_0", {d="kolbasa"}, "item_1_holster_1"} }, idle = { [0] = "item_1_idle_1", [1] = "item_1_idle_1" }, rnd = { [0] = { "item_1_attack_0", "item_1_idle_0" }, [1] = { "item_1_attack_0", "item_1_idle_0" } }}, стр. 376: animpoint_sit_ass_drink_vodka = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_4_draw_0", {a="vodka"}, "item_4_draw_1"}, [1] = {"item_4_draw_0", {a="vodka"}, "item_4_draw_1"} }, out = { [0] = {"item_4_holster_0", {d="vodka"}, "item_4_holster_1"}, [1] = {"item_4_holster_0", {d="vodka"}, "item_4_holster_1"} }, idle = { [0] = "item_4_aim_0", [1] = "item_4_aim_0" }, rnd = { [0] = { "item_4_prepare_0", "item_4_attack_0" }, [1] = { "item_4_prepare_0", "item_4_attack_0" } }}, animpoint_sit_ass_drink_energy = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_5_draw_0", {a="energy_drink"}, "item_5_draw_1"}, [1] = {"item_5_draw_0", {a="energy_drink"}, "item_5_draw_1"} }, out = { [0] = {"item_5_holster_0", {d="energy_drink"}, "item_5_holster_1"}, [1] = {"item_5_holster_0", {d="energy_drink"}, "item_5_holster_1"} }, idle = { [0] = "item_5_aim_0", [1] = "item_5_aim_0" }, rnd = { [0] = { "item_5_prepare_0", "item_5_attack_0" }, [1] = { "item_5_prepare_0", "item_5_attack_0" } }}, стр. 456: animpoint_sit_ass_guitar = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"sit_1_guitar_0_0", {a="guitar_a"}, {f=sr_camp.start_guitar}, "sit_1_guitar_0_1"}, [1] = {"sit_1_guitar_0_0", {a="guitar_a"}, {f=sr_camp.start_guitar}, "sit_1_guitar_0_1"} }, out = { [0] = {"guitar_0_sit_1_0", {d="guitar_a"}, "guitar_0_sit_1_1"}, [1] = {"guitar_0_sit_1_0", {d="guitar_a"}, "guitar_0_sit_1_1"} }, idle = { [0] = "guitar_0", [1] = "guitar_0" }, rnd = nil }, стр. 536: rnd = nil }, (отличается наличием запятой) animpoint_sit_ass_harmonica = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"sit_2_harmonica_1_0", {a="harmonica_a"}, {f=sr_camp.start_harmonica}, "sit_2_harmonica_1_1"}, [1] = {"sit_2_harmonica_1_0", {a="harmonica_a"}, {f=sr_camp.start_harmonica}, "sit_2_harmonica_1_1"} }, out = { [0] = {"harmonica_1_sit_2_0", {d="harmonica_a"}, "harmonica_1_sit_2_1"}, [1] = {"harmonica_1_sit_2_0", {d="harmonica_a"}, "harmonica_1_sit_2_1"} }, idle = { [0] = "harmonica_0", [1] = "harmonica_0" }, rnd = nil } стр. 70: animpoint_sit_ass = { prop = { maxidle = 5, sumidle = 3, rnd = 80, moving = true }, into = { [0] = { "idle_0_to_sit_2" }, [1] = { "idle_0_to_sit_2" }}, out = { [0] = { "sit_2_to_idle_0" }, [1] = { "sit_2_to_idle_0" }}, idle = { [0] = "sit_2_idle_0", [1] = "sit_2_idle_0" }, rnd = nil}, animpoint_sit_knee = { prop = { maxidle = 5, sumidle = 3, rnd = 80, moving = true }, into = { [0] = { "idle_0_to_sit_1" }, [1] = { "idle_0_to_sit_1" }}, out = { [0] = { "sit_1_to_idle_0" }, [1] = { "sit_1_to_idle_0" }}, idle = { [0] = "sit_1_idle_0", [1] = "sit_1_idle_0" }, rnd = nil}, Здесь автор зачем то заменил строчки вида "["actors\\stalker_hero\\stalker_hero_1"] = true," на "stalker_hero_1 = true," А ещё: стр. 252: animpoint_sit_ass = { {name = "animpoint_sit_ass", predicate = xr_animpoint_predicates.const_predicate_true}, {name = "animpoint_sit_ass_eat_bread", predicate = xr_animpoint_predicates.animpoint_predicate_bread}, {name = "animpoint_sit_ass_eat_kolbasa", predicate = xr_animpoint_predicates.animpoint_predicate_kolbasa}, {name = "animpoint_sit_ass_drink_vodka", predicate = xr_animpoint_predicates.animpoint_predicate_vodka}, {name = "animpoint_sit_ass_drink_energy", predicate = xr_animpoint_predicates.animpoint_predicate_energy}, {name = "animpoint_sit_ass_guitar", predicate = xr_animpoint_predicates.animpoint_predicate_guitar}, {name = "animpoint_sit_ass_harmonica", predicate = xr_animpoint_predicates.animpoint_predicate_harmonica}, }, animpoint_sit_knee = { {name = "animpoint_sit_knee", predicate = xr_animpoint_predicates.const_predicate_true}, {name = "animpoint_sit_knee_eat_bread", predicate = xr_animpoint_predicates.animpoint_predicate_bread}, {name = "animpoint_sit_knee_eat_kolbasa", predicate = xr_animpoint_predicates.animpoint_predicate_kolbasa}, {name = "animpoint_sit_knee_drink_vodka", predicate = xr_animpoint_predicates.animpoint_predicate_vodka}, {name = "animpoint_sit_knee_drink_energy", predicate = xr_animpoint_predicates.animpoint_predicate_energy}, {name = "animpoint_sit_knee_guitar", predicate = xr_animpoint_predicates.animpoint_predicate_guitar}, {name = "animpoint_sit_knee_harmonica", predicate = xr_animpoint_predicates.animpoint_predicate_harmonica}, }, Фух, всё... Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 25 Декабря 2012 http://rghost.ru/42495051 - Ссылка на state_mgr.script и state_lib.script Artos, про то, как включать "отображение в логе технологических строк для вывода в лог-файл" я не знаю (если не трудно, дайте указания\ссылку как это делать), но знаю способ как выводить полную причину ЛОГа: раскомментировать в функции abort(fmt, ...), что в _g.script строку -- error_log(reason), так вот, я её раскомментировал, сел у костра и начал ждать... Ждал долго, картошка разогрелась, покрылась золотистой корочкой, начала скворчать, источать аромат... В общем, я пошёл поедать моё блюдо и к концу трапезы перед моим лицом всплыл рабочий стол, а вместе с ним и ЛОГ, подобным которому я ещё не видел: ! [LUA][ERROR] ERROR: ILLEGAL SET STATE CALLED!!! binicular fo sim_default_duty_111542 FATAL ERROR [error]Expression : 0 [error]Function : ErrorLog [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp [error]Line : 49 [error]Description : ERROR: ILLEGAL SET STATE CALLED!!! binicular fo sim_default_duty_111542 stack trace: Что то говорит о "наборе состояний, связанным с биноклем", может такое быть из за использования анимации "binocular" для работ типа "patrool"? Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 25 Декабря 2012 Отвечаю сам себе на один из вопросов: Почаще необходимо проверять грамматику: анимация для работы "patrool" прописана неверно (binicular вместо binocular), к тому же переход с последней точки был не на начальную, а на несуществующую (но, к счастью, это не смертельно, в отличие от грамматики). P.S. Просьба объединить данный пост с предыдущим, срок редактирования истёк. Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 9 Января 2013 (изменено) Здравствуйте. Вопрос мучает: "Возможно ли реализовать двери-слайдеры (аля В ЧН в Депо, или в ТЧ на блокпосте ДОЛГа на Свалке)?" Из ЧН в ЗП переношу, а двигатель мне вылет даёт, мол, в вашей двери нет векторов открытия двери (макс. и мин. градус открытия двери). Посмотрел на логику двери на ВНЗ "Круг", (ph_button@...), сделал подобную, но их открыть невозможно, не вышибать же мне их каждый раз на Запорожце? За ответ заранее благодарю. Логику то пакажешь или мы сами придумаем, что ты сделал? ColR_iT [logic] active = ph_button@closed [ph_button@closed] anim_blend = true anim = idle_close snd_open_start = airtight_gates_start snd_open_stop = airtight_gates_idle snd_close_start = airtight_gates_start snd_close_stop = airtight_gates_stop [ph_button@opening] anim_blend = true anim = open snd_open_start = airtight_gates_start snd_open_stop = airtight_gates_idle snd_close_start = airtight_gates_start snd_close_stop = airtight_gates_stop on_game_timer = 10 | ph_button@opened [ph_button@opened] anim_blend = true anim = idle_open on_use = ph_button@closed snd_open_start = airtight_gates_start snd_open_stop = airtight_gates_idle snd_close_start = airtight_gates_start snd_close_stop = airtight_gates_stop Изменено 9 Января 2013 пользователем Сталкер Лом Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 14 Января 2013 Здравствуйте. Восстановив аномалию "Ржавые волосы" был несколько огорчён, что у аномалии только один визуал, а хотелось бы больше (как у того же "Жгучего Винни-пуха"), однако, я не нашёл файлов анимаций к этим типам аномалий, собственно вопрос: "Где хранятся анимации к аномалиям, имеющим визуалы, в самом двигателе или в визуале?". За ответ благодарю. Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение
Сталкер Лом 356 Опубликовано 28 Января 2013 (изменено) Здравствуйте. Вопросы такого плана: Даю NPC логику: [logic@gar_prapor] suitable = {=check_npc_name(zat_b53_artefact_hunter_2)} true prior = 70 active = animpoint@base [animpoint@base] cover_name = garbage_dolg_zastava_animpoint_prapor avail_animations = fold_arms on_info = {+gar_prapor_start_hunt} walker@hunt use_camp = true [walker@hunt] path_walk = prapor_1_walk path_look = prapor_1_look ;def_state_standing = threa meet = meet@prapor_hunt on_info = {+gar_prapor_hunt_finish} animpoint@base ;on_info2 = {+gar_prapor_dog_dead} animpoint@base gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false [meet@prapor_hunt] close_snd_hello = nil close_snd_bye = nil meet_dialog = gar_prapor_after_hunt_dialog close_anim = nil far_anim = nil close_victim = actor trade_enable = false allow_break = false use = {=actor_enemy} false, true NPC логику принимает: сначала стоит в анимпоинте, после получения инфопоршня идёт на работу walker, однако, после получения инфопоршня gar_prapor_hunt_finish идёт обратно, но постоянно крутится(осматривается по сторонам как охранник, только за одну секунду поворачивается раза три), также как и его "напарник" (Логика аналогична, только указанны свои пути и свой анимпоинт). До анимпоинта так и не доходят - останавливаются в нескольких метрах от работы. Из за чего такое может быть? И второй вопрос: есть строка on_info и строка on_info2 on_info = {+собачек_съели_корейцы} animpoint@base on_info2 = {+собачки_убежали_от_корейцев} animpoint@base Переключение логики в animpoint@base будет при выполнении одного on_info или обоих? Изменено 28 Января 2013 пользователем Сталкер Лом Работы на Artstation - https://www.artstation.com/artist/stalker_lom Поделиться этим сообщением Ссылка на сообщение