h0N0r 387 Опубликовано 18 Декабря 2014 ! cannot find special danger animations for object with visual Такое же инф.сообщение, как и о том, что некий звук не настроен в сдк (missing ogg-comment) и вылетов по этому поводу не случалось. А чтобы не засоряло лог, достаточно удалить/закомментировать строку special_danger_move в state_lib.script, она там только у состояния raid (ещё есть в state_mgr, но в виде условия). Место, где можно проверить изменение - сценка после захода в комнату, где антенна монолита (в Припяти, задание "зачистить магазин Книги"), постоянный вывод данного сообщения, и именно на модель Соколова. С появлением исходников, можно разобраться - что, зачем и на кой оно надо. Хотя выше метод работает, к багам не приводит. stalker_animation_torso.cpp (это только место, где сделан вывод сообщения), MotionID CStalkerAnimationManager::aim_animation (const u32 &slot, const xr_vector &animation, const u32 &index) const { if (!m_special_danger_move) return (animation[6].A[index]); if (slot != 2) return (animation[6].A[index]); #if 1//def DEBUG if (animation[6].A.size() < 7) { Msg ( "! cannot find special danger animations for object with visual %s", object().cNameVisual().c_str() ); return (animation[6].A[index]); } #endif // DEBUG switch (index) { case 0 : return (animation[6].A[4]); case 2 : return (animation[6].A[5]); case 3 : return (animation[6].A[6]); default : NODEFAULT; } #ifdef DEBUG return (MotionID()); #endif // DEBUG } 2 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 18 Декабря 2014 Честно, не помню - делал ли так и пока нет возможности проверить. 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 17 Июля 2015 Чтобы не группировались - ...\gamedata\config\ui\inventory_new(_16).xml (ТЧ) или actor_menu(_16).xml (аддоны), все теги group_similar="1" в 0. 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 13 Августа 2015 Чтобы было как в ТЧ, нужно оригинальную / распакованную геймдату с помощью map_compressor (в составе сдк ЗП, архивы с помощью X-Ray game asset converter не читаются) запаковать в архивы (name.db0 и т.д, тоже самое для мод-геймдаты), полученное поместить в корень игры / папку mods, а затем изменить fsgame.ltx ;abbreviation = recurs| notif| root| add| ext| description $app_data_root$ = true| false| $fs_root$| profile\ $arch_dir$ = false| false| $fs_root$| $game_arch_mp$ = false| false| $fs_root$| mp\ $arch_dir_mods$ = false| true| $fs_root$| mods\ $game_data$ = false| true| $fs_root$| gamedata\ $game_ai$ = true| false| $game_data$| ai\ $game_spawn$ = true| false| $game_data$| spawns\ $game_levels$ = true| false| $game_data$| levels\ $game_meshes$ = true| true| $game_data$| meshes\| *.ogf;*.omf| Game Object files $game_anims$ = true| true| $game_data$| anims\| *.anm;*.anms| Animation files $game_dm$ = true| true| $game_data$| meshes\| *.dm| Detail Model files $game_shaders$ = true| true| $game_data$| shaders\ $game_sounds$ = true| true| $game_data$| sounds\ $game_textures$ = true| true| $game_data$| textures\ $game_config$ = true| false| $game_data$| configs\ $game_weathers$ = true| false| $game_config$| environment\weathers $game_weather_effects$ = true| false| $game_config$| environment\weather_effects $textures$ = true| true| $game_data$| textures\ $level$ = false| false| $game_levels$ $game_scripts$ = true| false| $game_data$| scripts\| *.script| Game script files $logs$ = true| false| $app_data_root$| logs\ $screenshots$ = true| false| $app_data_root$| screenshots\ $game_saves$ = true| false| $app_data_root$| savedgames\ $downloads$ = false| false| $app_data_root$| downloads\ Будет выглядеть так: http://funkyimg.com/i/214DX.jpg Содержимое build_map.ltx, [options]exclude_exts = *.log,*.old ; файлы с расширением, которые не надо включать в архив[include_folders] ; папки, которые добавляются в архив.\ = true ; всё что в gamedata / архивируемой папке; или configs = true, configs\misc = true[exclude_folders] ; папки, которые не надо включать в архивtextures\andy = truetextures\car = truetextures\effects = truetextures\fonts = truetextures\hud = truetextures\icon = truetextures\jeffry = truetextures\level = truetextures\sleep = truetextures\temp = true Приоритет чтения данных (возможно не так), по порядку (в fsgame.ltx - с 1 строки и далее). 1a) $arch_dir$ = false| false| $fs_root$| - для def-архивов в корневой папке игры 1b) $arch_dir$ = false| false| $fs_root$ - для чтения def-архивов из папки в следующей строке 1b) $arch_dir_resources$ = false| false| $fs_root$| new_arh_folder\ - для def-архивов в другой папке 2) $game_arch_mp$ = false| false| $fs_root$| new_mp_folder\ - карты для сетевой 3) $arch_dir_resources$ = false| false| $fs_root$| new_pth_folder\ - для каких-нибудь патчей к def-архивам / mp 4) $arch_dir_resources$ = false| false| $fs_root$| new_arh_folder\ - для модов, перекрывая предыдущие (сингл / сетевая с модом) 5) $game_data$ = false| true| $fs_root$| gamedata\ - рабочая / временная (до архивации) папка, перекрывает предыдущие (находится после всех папок, где будут располагаться архивы игры). Из л.о. при игре с мод-архивами, трудноустранимый (ибо он - не о том) вылет:Expression : fatal errorFunction : out_of_memory_handlerFile : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cppLine : 336Description : Arguments : Out of memory. Memory request: ... KПричиной которого было несколько .omf для оружия (из мода gosuke weapon mod, анимации спринта для пкм/свд/сву), а игра стартовала, только если их переместить в папку gamedata, также с ними вылетал и X-Ray game asset converter. 1 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 20 Декабря 2015 Возрождённый, нужно делать так:custom_data = <<END [camp] cfg = scripts\camp.ltx END Нужно внимательно проверять созданное (смотреть как сделано в оригинале), или часто будешь ловить вылеты. https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 27 Января 2016 Sikorskyi, Давным-давно вернул, чтобы зомбированные орали (мачииии!) при виде врага. Выделенная строка в script_sound.ltx, может помочь в твоём случае: ...zombied_fight_attack[zombied_fight_attack]type = npcnpc_prefix = truepath = fight\enemy\enemy_ is_combat_sound = truexr_combat_zombied.script (взято из тч)...function action_zombie_shoot:initialize()...xr_sound.set_sound_play(self.object:id(), "fight_enemy")xr_sound.set_sound_play(self.object:id(), "zombied_fight_attack")... 2 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 29 Октября 2016 Rozben,Дабы не плодить лишних файлов для нпс-статистов: \jup_a6.ltx [exclusive] ... jup_a6_jurnalist = jupiter\jup_a6_logic.ltx --- \jup_a6_logic.ltx (на основе ковера Коряги) ... [logic@jup_a6_jurnalist] active = animpoint@jup_a6_jurnalist suitable = {=check_npc_name(jup_a6_jurnalist) =npc_in_zone(jup_a6_sr_noweap)} true prior = 200 [animpoint@jup_a6_jurnalist]:animpoint@jup_a6_animp_gen_reach cover_name = jup_a6_animp_jurnalist on_info = {=npc_in_zone(jup_surge_hide_a6)} animpoint@jup_a6_jurnalist_reached [animpoint@jup_a6_jurnalist_reached]:animpoint@jup_a6_animp_gen cover_name = jup_a6_animp_jurnalist --- avail_animations = animpoint_sit_normal ; это нужно для использования другой анимки (кат-сцены), например ковер сидячий (loopholes: sit), а в игре будет лежать (avail_animations = zat_b106_wounded_idle, спец анимки из state_mgr_scenario.script) Сам ковер должен находиться на аи-сетке и иметь точные lv/gv-вертексы (во избежании при переходе оффлайн/онлайн, перемещения нпс в начало lv/gv для текущей карты, для Юпитера это район плавней) В составе зп-сдк, есть папка help (куча инфы), там есть справка по логике (Gamedesigner_education.pdf). https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 15 Августа 2017 15 минут назад, Дизель сказал: Как можно в логике [smartcover] приказать нпс спрятать оружие? Я всё перебрал, но вспомнить не могу, что конкретно отвечает за это. Не было случая проверить, но из xr_smartcover.script,281 weapon_type = none ;strapped ;unstrapped https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 15 Декабря 2017 7 минут назад, Helgi сказал: Странно. Но почему же у меня звуки выстрела приглушаются чуть-ли не в два раза, уж на всю звук прибавлять приходится, так другие звуки громкими становятся, особенно стрельба неписей. Попробуй поменять здесь: \configs\system.ltx, [hud_sound] hud_sound_vol_k = 0.38 ; себе поставил 1.0 и 0.85 (в ЧН, hud_sound_vol_k = 0.85f) hud_step_sound_vol_k = 0.21 2 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 4 Февраля 2018 @Кое-Кто 11 , труп полтера удаляется в bind_monster.script (death_callback): local obj_clsid = self.object:clsid() if obj_clsid == clsid.poltergeist_s then printf("releasing object ["..self.object:name().."]") if alife():object(self.object:id()) ~= nil then alife():release(alife():object(self.object:id()), true) end end Попробуй стереть / закомментировать данный блок. 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 20 Апреля 2018 6 часов назад, Metro_Rus сказал: Где нужно еще прописывать гитару, кроме файлов? Нужно ещё добавить в attachable_items (m_stalker.ltx). 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 17 Июня 2018 В 15.06.2018 в 22:26, RussoBandito сказал: Всем привет. Кто-нибудь знает, как убрать анимацию камеры при перезарядке оружия? Без правок исх.кода отключить не получится, но при наличии сдк можно сделать свою анимацию (http://funkyimg.com/view/2HAxP - задать параметры как скрине, экспорт) или скачать https://yadi.sk/d/hsrRDfhE3Y2U2o, уже готовый анм-файл. Из распакованной ориг.геймдаты копируешь в свою, папку \anims\camera_effects\weapon, ну и заменяешь пустышкой нужную аниму. https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 11 Мая 2019 5 часов назад, FrindGR сказал: Поставил нпс на локацию, скомпилировал, всё норм. В зп иначе с симуляцией аи (сквады, которыми управляет sim_board.script и ещё куча всего), поэтому их надо спавнить не через сдк, а через simulation.ltx (при новой игре), а после - через настройки смартов и прочие функции в логике различных объектов. И да, смарты (его позиция будет точкой home для монстров) и коверы должны находится на аи-сетке. Лучше открыть исходник зп-локи, и посмотреть на примере смарта с доп.логикой ([exclusive]), в каких файлах игры встречается ид смарта и т.д. https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 11 Мая 2019 31 минуту назад, FrindGR сказал: [start_position_close_combat] cb_merc_squad_repair = cb1_smart_terrain Спавн есть, теперь нужно сквад привязать к смарту. В настройках сквада cb_merc_squad_repair должно быть так: [cb_merc_squad_repair]:online_offline_group faction = killer npc = секция из spawn_sections_cb_или_где_он_у_тебя.ltx (типа: cb_merc_repair, с профилем cb_merc_repair, чтобы назначить свои диалоги, визуал и т.д) target_smart = cb1_smart_terrain story_id = cb_merc_squad_repair always_arrived = true relationship = neutral ; enemy ;friend а в конфиге cb1_smart_terrain.ltx (configs\scripts\cb\smart\, [smart_terrain] ; cb1_smart_terrain max_population = 1 [exclusive]cb_repair_merc = cb\cb_repair_merc_logic.ltx ; (где будет логика нпс) https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 11 Мая 2019 (изменено) 41 минуту назад, FrindGR сказал: @h0N0r, всё работает, но есть одно но. У него короче нет снизу кнопки, что починить или моднуть оружие В профиль своего нпс добавь: <mechanic_mode>1</mechanic_mode> (пример есть в \character_desc_zaton.xml, zat_a2_stalker_mechanic) и trade_enable = true сделай в его логике, хотя при "false" окно ремонта можно вызвать клавишей бега. Изменено 11 Мая 2019 пользователем h0N0r https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 11 Сентября 2019 @WizziGun, в xr_effects.script функции turn_off / turn_on. В логике: on_info = {+info} %=turn_off(стори_ид_лампы)% 1 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 22 Декабря 2019 @Алексей Новиков, в \configs\misc\surge_manager.ltx, [settings] condlist = false ; отключит выброс, но и респ артов, ибо он происходит после завершения первого survive = true ; гг не будет умирать https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 11 Января 2020 В 08.01.2020 в 21:30, WizziGun сказал: Товарищи, у меня тут вопрос возник по поводу space_restr. Вообщем, что надо : Актёр заходит в рестриктор №1, тем временем логика (on_actor_inside) даёт сигнал для одноразового проигрывания заданного партикла в рестриктор №2. Раньше нигде такого не встречал. Может кто видел что то подобное в модах? Есть у кого идеи как такое сделать можно? Скрытый текст Только для партиклов не имеющих явное направление, типа сферы и т.п. Логика для 1-го рестриктора (допустим c именем cat_sr_particle1), второй можно удалить: [logic] active = sr_idle@start [sr_idle@start] on_info = {=actor_in_zone(cat_sr_particle1)} sr_particle@play [sr_particle@play] name = anomaly2\anomaly_spatial_bubble_rupture path = way_point ; точка пути на месте 2-го рестриктора mode = 2 looped = false ; 10 sec on_game_timer = 100 | sr_idle@end [sr_idle@end] Если партикл имеет направление, типа пара из труб, то нужно такую логику: [sr_particle@play] name = industrial_particles\effects\exhaust_workshop_1_small path = cam_name.anm ; камэффект на месте 2-го рестриктора mode = 1 looped = false ; 10 sec on_game_timer = 100 | sr_idle@end и создать камэффект - в сдк поставить камеру и настроить дирекцию (вот так https://funkyimg.com/i/31fn3.jpg), включить motionable, затем autokey, после нажать на +К, и вписать в поле current frame: 0.1, и наконец сделать экспорт. 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 6 Марта 2020 В 04.03.2020 в 00:33, Владислав Сущих сказал: Есть вопрос по поводу аномальной рощи. Судя по конфигам она должна генерировать артефакты, по умолчанию в ней даже прописан спавн пузыря, но в финальной версии игры этого почему то не происходит. Кто нибудь знает в чём проблема, почему аномальная зона не работает и как её починить? Она будет работать, но после квеста с растением. Чтобы изначально работала (только если ещё не были на юпитере или при новой игре): \configs\scripts\jupiter\jup_b206_quest_line.ltx удалить %=anomaly_turn_off(jup_b206_anomal_zone)% и %=anomaly_turn_on(jup_b206_anomal_zone)% 16 часов назад, puma_sibirsky сказал: Словил кряк при попытке зайти в опции игры (Зов Припяти), кто что посоветует? Description : XML node not found Argument 0 : video_adv:cap_r4_tessellation Argument 1 : ui\ui_mm_opt_16.xml Походу используешь какой-то мод / сборку, ибо в чистом зп такого вылета нет, из которого следует, что cap_r4_tessellation не найден в файле \configs\ui\ui_mm_opt_16.xml. Проверяй / сравнивай с оригиналом. 1 час назад, DMT сказал: Предположим, я добавил в ЗП новую группировку "Ренегаты". Что и где нужно прописать, чтобы они говорили бандитскими голосами ? Будешь делать для них профили (character_desc_), там будет <snd_config>characters_voice\...</snd_config>, где пропишешь пути к озвучке бандитов. Подробности: http://stalkerin.gameru.net/wiki/index.php?title=CoP._Персонажи_(официальное_руководство) 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 387 Опубликовано 18 Марта 2020 Недавно обнаружил, что сталкеры в зп не стреляют по игроку, если тот дальше 30м. Проверял в чистом зп, на ботах, что идут в смарт, где игрок появляется при новой игре. Если бой нпс с нпс, то тут нормально, их ограничивает eye_range в m_stalker.ltx, также пока искал причину, нашёл в исходниках некоторые параметры, которые не добавили в [fire_queue_params] (что в в m_stalker.ltx) pstl_queue_fire_dist_med = 15 pstl_queue_fire_dist_far = 30 shtg_queue_fire_dist_med = 15 shtg_queue_fire_dist_far = 30 snp_queue_fire_dist_med = 15 snp_queue_fire_dist_far = 30 mchg_queue_fire_dist_med = 15 mchg_queue_fire_dist_far = 30 auto_queue_fire_dist_med = 15 auto_queue_fire_dist_far = 30 Скрытый текст \T-6638\xrGame\stalker_combat_action_base.cpp ... // pistols case 5 : { if (distance > object().pstl_queue_fire_dist_far()) { min_queue_size = object().pstl_min_queue_size_far(); max_queue_size = object().pstl_max_queue_size_far(); min_queue_interval = object().pstl_min_queue_interval_far(); max_queue_interval = object().pstl_max_queue_interval_far(); } else if (distance > object().pstl_queue_fire_dist_med()) { min_queue_size = object().pstl_min_queue_size_medium(); max_queue_size = object().pstl_max_queue_size_medium(); min_queue_interval = object().pstl_min_queue_interval_medium(); max_queue_interval = object().pstl_max_queue_interval_medium(); } else { min_queue_size = object().pstl_min_queue_size_close(); max_queue_size = object().pstl_max_queue_size_close(); min_queue_interval = object().pstl_min_queue_interval_close(); max_queue_interval = object().pstl_max_queue_interval_close(); } Это деф.значения, но меняя их проблему выше не решило. Искал по значению 30, тоже самое - в общем забил на это дело. Но недавно снова попробовал найти причину, предположил что 30 можно в скриптах/коде (и том и в другом разбираюсь крайне плохо) представить по другому. После долгих поисков ждал приз: xr_combat_ignore.script, (action_process_enemy:enemy_callback) ... if se_obj and se_enemy then local sim_obj_registry = simulation_objects.get_sim_obj_registry() if se_obj.group_id ~= 65535 and sim_obj_registry.objects[se_obj.group_id] ~= nil and se_enemy.group_id ~= 65535 and sim_obj_registry.objects[se_enemy.group_id] == nil and se_obj.position:distance_to_sqr(se_enemy.position) > 900 then return false end end se_obj.position:distance_to_sqr(se_enemy.position) > 900 then - именно это соответствует 30м в квадрате. Поставил 14400 (120м) и сталкеры перестали тупить. Непонятно, почему это блок кода применяется только к игроку и вообще зачем такое ограничение - прошу, знающих, пояснить. И да, такой байды нет в чн / тч. 1 1 4 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение