AKKK1 6 Опубликовано 19 Февраля 2011 Поделиться Опубликовано 19 Февраля 2011 Что значит [use] on_info = %+budu_v_ bunkere_spat% Для on_info = нужна функция условие on_info = {=имя_функции} если возврашает труе то только потом эфект %+budu_v_ bunkere_spat% Ссылка на комментарий
@"StreloK" 2 Опубликовано 19 Февраля 2011 Поделиться Опубликовано 19 Февраля 2011 (изменено) Может кто подсказать в чём ошибка? Создал точку респавна [40000] ; cse_abstract properties section_name = respawn name = cit_gulag_1_restavn position = -21.257427,7.384156,103.735580 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 2840 distance = 7 level_vertex_id = 333765 object_flags = 0xffffff3e custom_data = <<END [respawn] respawn_section = cit_freedom_nauchniy, 4, cit_freedom_general2, 10, esc_ohr_menala_2, 5 max_spawn = 5 idle_spawn = medium END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 1 ; cse_alife_space_restrictor properties restrictor_type = 0 ; se_respawn properties и зону его активации- [40001] ; cse_abstract properties section_name = space_restrictor name = cit_gulag_1_restavn_aktiv position = -21.257427,7.384156,103.735580 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 2840 distance = 0 level_vertex_id = 333765 object_flags = 0xffffff3e custom_data = <<END [logic] active = sr_idle@in [sr_idle@in] on_actor_inside = %=cit_gulag_1_restavn% sr_idle@out [sr_idle@out] on_actor_outside = sr_idle@in END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 10 ; cse_alife_space_restrictor properties restrictor_type = 3 И получил вот такой лог- ! Missing ogg-comment, file: e:\games\stalker\gamedata\sounds\meet_phrases\no_meet.ogg [16-9] get_xml_name for[game_tutorials.xml] returns [game_tutorials.xml] [16-9] get_xml_name for[ui_credits.xml] returns [ui_credits.xml] [16-9] get_xml_name for[ui_movies.xml] returns [ui_movies.xml] Intro start 4408 * MEMORY USAGE: 286828 K ! Cannot find saved game ~~~ object 'gar_tuman_1': pick_section_from_condlist: function 'cit_gulag_1_restavn' is not defined in xr_effects.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: e:\games\stalker\gamedata\scripts\_g.script:1121: bad argument #2 to 'format' (string expected, got no value) stack trace: Я так понял он не идентифицируется в xr_effects.script, в чём как её исправить? Изменено 19 Февраля 2011 пользователем @"StreloK" Prefiero morir de pie, que vivir siempre arrodillado. Ссылка на комментарий
AKKK1 6 Опубликовано 19 Февраля 2011 Поделиться Опубликовано 19 Февраля 2011 on_actor_inside = %=cit_gulag_1_restavn% sr_idle@out Должна сработать функция с именем %=cit_gulag_1_restavn% прописаная в xr_effects.script. Она есть? Ссылка на комментарий
_Призрак_ 11 Опубликовано 19 Февраля 2011 Поделиться Опубликовано 19 Февраля 2011 Не обязательно. Если написать on_info = %+budu_v_bunkere_spat% то как только активируется схема, то выдается поршень Freedom Ссылка на комментарий
@"StreloK" 2 Опубликовано 20 Февраля 2011 Поделиться Опубликовано 20 Февраля 2011 (изменено) AKKK1 нет. А как она должна выглядеть? Делал по статье, но там ничего про функцию вызова вообще не написано. Изменено 20 Февраля 2011 пользователем @"StreloK" Prefiero morir de pie, que vivir siempre arrodillado. Ссылка на комментарий
Disord 1 Опубликовано 20 Февраля 2011 Поделиться Опубликовано 20 Февраля 2011 (изменено) @"StreloK", ты хочешь, чтобы при входе в рестриктор производился респавн? Может лучше при входе в рестриктор выдать инфопрошень, а уже в секции респавна поставить: conditions = {+my_infopotrion} 100, 0 З.Ы. Просто предположение, я пока ещё респавном не занимался А это: on_actor_inside = %=cit_gulag_1_restavn% sr_idle@out Вызовет не твой респавн, а функцию в xr_effects. Изменено 20 Февраля 2011 пользователем Disord Ссылка на комментарий
AKKK1 6 Опубликовано 20 Февраля 2011 Поделиться Опубликовано 20 Февраля 2011 Disord Eсли тебе надо чтоб гг при юзе обьекта доустим диван, матрас, ящик (у меня балон ) засыпал то рестрикторы и поршни не нужны все проше [logic] active = ph_idle [ph_idle] tips = spi_spoki on_use = %=budu_v_bunkere_spat% добавляеш в string_table_ui.xml строку типа <string id="spi_spoki"> <text>ПОСПАТЬ ($$ACTION_USE$$)</text> </string> В xr_effects function budu_v_bunkere_spat() sleep_manager.sleep_three_hours() Старт функции сна из файла sleep_manager.script end При подходе к обьекту выскочит Поспать нажмите F Жмем F и ГГ засыпает . Ссылка на комментарий
Хантер 0 Опубликовано 20 Февраля 2011 Поделиться Опубликовано 20 Февраля 2011 Подскажите, пожалуйста, из-за чего может быть вылет? FATAL ERROR [error]Expression : vertex || show_restrictions(m_object) [error]Function : CPatrolPathManager::select_point [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\patrol_path_manager.cpp [error]Line : 155 [error]Description : any vertex in patrol path [esc_lager_guard_walk4] in inaccessible for object [esc_lager3] Ссылка на комментарий
Disord 1 Опубликовано 20 Февраля 2011 Поделиться Опубликовано 20 Февраля 2011 AKKK1, вызов функции мне не нужен, у меня функция своя, из АМК изменённая. Ну да ладно, попробую. Хотя, вроде, так уже пробовал. Ссылка на комментарий
Viнt@rь 50 Опубликовано 20 Февраля 2011 Поделиться Опубликовано 20 Февраля 2011 (изменено) Disord а зачем тебе инфопоршень? AKKK1 правильно написал, но если у тебя своя функция, то просто вставь ее примерно так: function budu_v_bunkere_spat() amk.start_timer("sleep_matras",0.1,matras) end Строгое предупреждение от модератора Куфзук 2.3. Красным цветом имеют право писать только модераторы и авторы в шапке темы. Изменено 20 Февраля 2011 пользователем Куфзук GUI для конвертера от бардака(всего и вся в форматы сдк) Полезный утиль-"Utilits pack(mod)" Ссылка на комментарий
AKKK1 6 Опубликовано 20 Февраля 2011 Поделиться Опубликовано 20 Февраля 2011 (изменено) Хантер Eсть много вариантов толкованния вылета данного типа Вот лично мое мнение Он происходит 1. при попытке отправить обьект в твоем случае object [esc_lager3] за пределы ограничивающего рестриктора в загрузке работ гулага esc_lager --' Лагерь новичков на Escape if type == "esc_lager" then -- охранники t = { section = "logic@esc_lager_zoneguard1", idle = 0, prior = 9, state = {0, 1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone",} Мне кажется что ты попытался отправить обитателя лагеря за его пределы или я ошибаюсь? если да, то просто удали у всех работ гулага esc_lager - esc_lager_guard_kill_zone, должно быть так, для всех работ : --' Лагерь новичков на Escape if type == "esc_lager" then -- охранники t = { section = "logic@esc_lager_zoneguard1", idle = 0, prior = 9, state = {0, 1}, [b] in_rest = "", out_rest = "",} Изменено 20 Февраля 2011 пользователем Куфзук Ссылка на комментарий
Хантер 0 Опубликовано 20 Февраля 2011 Поделиться Опубликовано 20 Февраля 2011 (изменено) AKKK1, а в каком файле это всё делать? Изменено 20 Февраля 2011 пользователем Хантер Ссылка на комментарий
AKKK1 6 Опубликовано 20 Февраля 2011 Поделиться Опубликовано 20 Февраля 2011 Хантер gulag_escape.script --' Лагерь новичков на Escape if type == "esc_lager" then -- охранники t = { section = "logic@esc_lager_zoneguard1", idle = 0, prior = 9, state = {0, 1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", } table.insert(sj, t) t = { section = "logic@esc_lager_zoneguard2", idle = 0, prior = 9, state = {0, 1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", } table.insert(sj, t) t = { section = "logic@esc_lager_walker3", idle = 0, prior = 8, state = {0, 1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_walker4", idle = 0, prior = 8, state = {0, 1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) -- у костра днём t = { section = "logic@esc_lager_kamp1", idle = 0, prior = 6, state = {0}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_kamp1", idle = 0, prior = 6, state = {0}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_kamp1", idle = 0, prior = 6, state = {0}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) -- Волк, собственной персоной. t = { section = "logic@esc_lager_volk", idle = 0, prior = 16, state = {0,1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", predicate = function(obj_info) return obj_info.profile_name == "esc_wolf" end } table.insert(sj, t) -- Шустрый t = { section = "logic@esc_lager_shustryi", idle = 0, prior = 16, state = {0,1}, online = true, in_rest = "", out_rest = "", predicate = function(obj_info) return obj_info.profile_name == "esc_shustryi" end } table.insert(sj, t) t = { section = "logic@esc_lager_kamp1", idle = 0, prior = 16, state = {2}, online = true, in_rest = "", out_rest = "", predicate = function(obj_info) return obj_info.profile_name == "esc_shustryi" end } table.insert(sj, t) -- Фанат t = { section = "logic@esc_lager_fanat", idle = 0, prior = 16, state = {0,1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", predicate = function(obj_info) return obj_info.profile_name == "esc_fanat" end } table.insert(sj, t) -- спящие ночью t = { section = "logic@esc_lager_sleeper1", idle = 0, prior = 3, state = {1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_sleeper2", idle = 0, prior = 3, state = {1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_kamp1", idle = 0, prior = 3, state = {1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) -- спящие ночью и днёи t = { section = "logic@esc_lager_sleeper5", idle = 0, prior = 5, state = {0,1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_kamp1", idle = 0, prior = 0, state = {0,1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_sleeper7", idle = 0, prior = 0, state = {0,1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_defend1", idle = 0, prior = 15, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_defend2", idle = 0, prior = 14, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_defend3", idle = 0, prior = 13, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_defend4", idle = 0, prior = 12, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_defend5", idle = 0, prior = 11, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_defend6", idle = 0, prior = 10, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_defend7", idle = 0, prior = 9, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_defend8", idle = 0, prior = 8, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_defend9", idle = 0, prior = 16, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", predicate = function(obj_info) return obj_info.name == "esc_novice_attacker1" end } table.insert(sj, t) t = { section = "logic@esc_lager_defend10", idle = 0, prior = 16, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", predicate = function(obj_info) return obj_info.name == "esc_vagon_wounded" end } table.insert(sj, t) t = { section = "logic@esc_lager_defend11", idle = 0, prior = 5, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" } table.insert(sj, t) t = { section = "logic@esc_lager_defend12", idle = 0, prior = 20, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", predicate = function(obj_info) return obj_info.profile_name == "esc_fanat" end } table.insert(sj, t) t = { section = "logic@esc_lager_defend13", idle = 0, prior = 20, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone", predicate = function(obj_info) return obj_info.profile_name == "esc_wolf" and not (has_alife_info("agroprom_military_case_have") and has_alife_info("esc_fanat_spawn")) end } table.insert(sj, t) end Добавлено через 36 мин.: 2 конфликт с схемой обхода аномалий (аномалия в принципе тот же рестриктор) если точка пути обьекта попадет в аномалию (зону рестриктора) вылет . Ссылка на комментарий
@"StreloK" 2 Опубликовано 20 Февраля 2011 Поделиться Опубликовано 20 Февраля 2011 Люди может кто подсказать пример логики для мутанта (зомби-гражданский) чтобы днём он находился под mob_fake_death, а ночью переходил в mob_home? Prefiero morir de pie, que vivir siempre arrodillado. Ссылка на комментарий
faniloko 0 Опубликовано 20 Февраля 2011 Поделиться Опубликовано 20 Февраля 2011 (изменено) У меня вопрос. Создал гулаг в СДК на 10 человек. Прописал им всем в custom_date... все сделал правильно, но тут возникла проблема. Они воспринимают логику только если будет написано [logic], если же я пишу [logic@bla_bla_bla] то НПЦ этого не понимают. Для меня это очень важно т.к получается что гулаги я не смогу создавать, может это из-за винды? у меня win7 стоит если что. Изменено 20 Февраля 2011 пользователем faniloko Ссылка на комментарий
=VENOM= 50 Опубликовано 23 Февраля 2011 Поделиться Опубликовано 23 Февраля 2011 @"StreloK", вот полностью рабочая логика для гражданского зомбаря: [smart_terrains] none = true [logic] active = mob_fake_death [mob_fake_death] ;on_info = {!is_day} mob_home on_info = {=is_day =dist_to_enemy_le(8)} mob_home, {!is_day} mob_home [mob_home] path_home = sleep_zombie_home home_min_radius = 20 home_max_radius = 25 ;on_info = {=is_day} mob_fake_death on_info = {=is_day =dist_to_enemy_ge(8)} mob_fake_death on_signal = sig_attacked | mob_combat [mob_combat] on_timer = 10000 | mob_home Здесь днём зомби будет загорать в травке на солнышке, пока к нему не приблизится враг (игрок) на расстояние, менее 8 метров. В этом случае он подскочит, и очень сильно постарается замочить того, кто мешает ему отдыхать. Но если отойти от потревоженного зомби более, чем на 8 метров, он снова мирно уляжется баю-бай ... Ночью зомби будет активен (по умолчанию в xr_conditions.script - от 21 вечера до 6 часов утра). Если нужно, чтобы зомби валялся днём, ни на кого не реагируя, просто зарэмь "длинные схемы" и раскомментируй "короткие". Ссылка на комментарий
@"StreloK" 2 Опубликовано 24 Февраля 2011 Поделиться Опубликовано 24 Февраля 2011 =VENOM= спасибо, правда я уже сам разобрался, но у тебя она по другому немного, надо попробовать. Добавлено через 45 мин.: У меня зомби перед сном на своё место возвращаются, в квартиры, ото раньше спать ложились где попало как бомжи какие то =) (дело происходит в мёртвом городе). Prefiero morir de pie, que vivir siempre arrodillado. Ссылка на комментарий
Ulman 5 Опубликовано 24 Февраля 2011 Поделиться Опубликовано 24 Февраля 2011 Скажите пожалуйсто, как заспавнить огонь в керосиновой лампе. Ссылка на комментарий
=VENOM= 50 Опубликовано 24 Февраля 2011 Поделиться Опубликовано 24 Февраля 2011 Видимо, у тебя на схеме mob_walker или на mob_camp логика построена, а меня на mob_home. Mob_home тем и выгоден, что неписи автоматически подыскивают для себя каверы, а не ходят тупо по путям, определённым разработчиками. Конечно, не всегда это удобно - в частности, не подходит для скриптовых сцен. А вот для симуляции "free alife" самое то ... Кстати, правильнее будет ещё ввести задержку по времени, чтобы зомбарь не падал, как подкошенный, как только отойти от него на условленное расстояние. Тогда мертвяк ещё немного побродит, поругается, а потом свалится отдыхать ... Ссылка на комментарий
@"StreloK" 2 Опубликовано 24 Февраля 2011 Поделиться Опубликовано 24 Февраля 2011 (изменено) =VENOM= я вот так сделал - custom_data = <<END [logic] active = mob_home@zite1 [mob_home@zite1] path_home = kv_21 home_min_radius = 10 home_max_radius = 30 on_info = {=is_day}mob_walker@ttyyda [mob_walker@ttyyda] path_walk = kv_21 path_look = kv_21_luk on_signal = kapez | mob_fake_death [mob_fake_death@zitel] on_actor_dist_le = 5 | nil on_info = {!is_day}mob_home@zite1 END и [kv_21] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = -125.097282409668,2.88700437545776,129.930755615234 p0:game_vertex_id = 2819 p0:level_vertex_id = 213940 [kv_21_luk] points = p0 p0:name = wp00|sig=kapez p0:flags = 0x1 p0:position = 31.2718868255615,15.6263113021851,30.4473152160645 p0:game_vertex_id = 2854 p0:level_vertex_id = 390089 Так что и симуляция "free alife" и на места свои возвращяются. ПС-не подскажиш как задержку по времени, чтобы зомбарь не падал, как подкошенный сделать? =VENOM= о спасибо за совет надо поправить, правда этих зомбаков - 40 штук =( . Изменено 24 Февраля 2011 пользователем Cyclone Prefiero morir de pie, que vivir siempre arrodillado. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти