Все посты %s в %S - AMK Team
Перейти к контенту

[CoP] Ковыряемся в файлах


Halford

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

Подключил я несколько локаций (Болота ЧН, Свалка ЧН, Росток ТЧ и Кордон ТЧ), давно уже над ними колдую, но при переходе Кордон\Свалка\другая локация происходит следующий вылет:

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. Так и не нашёл как спойлеры делать... Если кто сообщит в ЛС, буду благодарен.

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Закомментировал 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. Благодарю за пояснение со скриптами и спойлером.

Изменено пользователем Сталкер Лом

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Такой вылет у меня случался если использовать класс крысы (AI-rat), попробуй в конфиге карлика поставить класс Бюрера ( class = SM_BURER), должно помочь. Если будут другие вылеты, то попробуй сделать

[karlik_normal]:burer_normal

visual =" путь до визуала карлика"

corpse_visual = "аналогично предыдущей секции"

spec_rank = normal

 

 

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

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

 

Изменено пользователем Сталкер Лом

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Пытался "воскресить" Сидоровича:

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

 

На что игра жалуется? Заранее спасибо!

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Доброго дня (или ночи).

Кто-нибудь знает, где находятся приоритеты работ в смарт-тирейне (walker, guard, sleeper и т.д.)?

Заранее спасибо.

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Здравствуйте, мужики.

Не первую неделю забиваю себе голову вопросом: секция [stalker_terrain] в конфиге сталкера (да и во всех конфигах монстров) за что отвечает? За доступные для посещения граф-поинты в offline? Если так, то для чего у каждого смарта (в оригинале) прописывается код тиррейна (255,255,255,135), или NPC в offline в ЗП бродят так же по смартам, либо исключительно по ним?

P.S. Голову этим забиваю по причине того, что после того, как посплю (часов 5) на новой локации на смарте появляются собаки\кабаны\коты\крысы\бандосы, хотя в симуляции они не прописаны...

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Здравствуйте.

Появилась нужда добавить военных на Кордон из ТЧ, подключенного к ЗП, поставил смарт-тирейн, сделал работы для него: 12 анимпоинтов, 2 часовых, 2 патрульных, 2 снайпера, итого 18 работ. Поковырявшись в файлах, не увидел отряды вояк для симуляции, создал их, зарегистрировал в simulation_object_props.ltx. В отряде от 6 до 9 человек, включая бойцов с оптикой. При спавне их на смарте двое идут на места часовых, двое - на патруль, редко, несколько человек идут на анимпоинты, а остальные уходят до Деревни Новичков, выносят всех от туда и устремляются вглубь Зоны :) . Собственно вопрос: "Почему они не занимают работы, ведь в настройках смарта указанно максимум_популяции = 1?" Заранее благодарю.

P.S. Ещё ставлю туда эксклюзивного NPC с логикой анимпоинта, но он тоже уходит с остальными. Неужели они идут искать погибшие вертолёты операции "Фарватер"? :lol3::russian_ru:

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Не помогло, как уходили, так и уходят.

Добавлено:

Заменил толпу Вояк на толпу Сталкеров, они тоже уходят. Может такое быть, если точки работ не совпадают с АИ-сеткой, либо этим точкам не соответствуют level_vertex?

Изменено пользователем Сталкер Лом

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Clayman, локация зарегистрирована и всё "колдовство" над ней произнесено, я не мог понять, почему у меня NPC, принимая определённую работу уходил со смарта, несмотря на то, что у его сквада был прописан target_smart. А решение я нашёл: Удалил все работы на смарте, кроме тех, которые были точно рабочими и начал создавать их попарно, заново. Так NPC со смарта уходили, если их работа была вне АИ-сетки (моё личное наблюдение, как на самом деле, не знаю, возможно, что так и есть), так таких "нехороших" мест на Кордоне ТЧ (на новом блокпосте) довольно много, АИ-сетки нет в половине казармы, она ограничена в конторе, а ещё её нет на мелких вышках. Решил проблему заменой мест (а другого выбора и нет, разве что СДК и флаг в руки).

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Здравствуйте.

Ещё давно, когда только заселял Кордон, делал укрытия от выброса для ГГ и 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 присутствуют и что значит сей текст в консоле? Заранее благодарю.

Изменено пользователем Сталкер Лом

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Здравствуйте.

Подскажите пожалуйста, что нужно сделать, что бы NPC на новой локации при Выбросе уходили со своего смарта (на котором укрытий нет) в другой (где есть укрытия)?

Заранее благодарю.

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Снова здравствуйте.

Делал смарт на новой локации, но при начале новой игры получал вылет:

 

* [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:

 

Долго мучился в чём дело, не понял, плюнул на него, начал делать другой, тот получился, работает. Взялся делать другой, но так же ловлю этот же вылет. Собственно вопрос: Что сей лог значит?

Заранее благодарю.

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Здравствуйте.

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

 

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), может, ошибка происходит при атаке на смарт? Что лог мне хочет сказать я так понять и не могу. Помогите, за ответ буду благодарен.

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Скрипты брал от скрипты от комрада 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},

},

 

 

Фух, всё...

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

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"?

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Отвечаю сам себе на один из вопросов:

Почаще необходимо проверять грамматику: анимация для работы "patrool" прописана неверно (binicular вместо binocular), к тому же переход с последней точки был не на начальную, а на несуществующую (но, к счастью, это не смертельно, в отличие от грамматики).

P.S. Просьба объединить данный пост с предыдущим, срок редактирования истёк.

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Здравствуйте. Вопрос мучает: "Возможно ли реализовать двери-слайдеры (аля В ЧН в Депо, или в ТЧ на блокпосте ДОЛГа на Свалке)?" Из ЧН в ЗП переношу, а двигатель мне вылет даёт, мол, в вашей двери нет векторов открытия двери (макс. и мин. градус открытия двери). Посмотрел на логику двери на ВНЗ "Круг", (ph_button@...), сделал подобную, но их открыть невозможно, не вышибать же мне их каждый раз на Запорожце? :russian_ru:

За ответ заранее благодарю.

 

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

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

 

Изменено пользователем Сталкер Лом

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Здравствуйте. Восстановив аномалию "Ржавые волосы" был несколько огорчён, что у аномалии только один визуал, а хотелось бы больше (как у того же "Жгучего Винни-пуха"), однако, я не нашёл файлов анимаций к этим типам аномалий, собственно вопрос: "Где хранятся анимации к аномалиям, имеющим визуалы, в самом двигателе или в визуале?". За ответ благодарю.

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение

Здравствуйте. Вопросы такого плана: Даю 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 или обоих?

Изменено пользователем Сталкер Лом

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...