Metro_Rus 75 Опубликовано 7 Января 2018 Всем привет, у меня вопрос: возможно ли с некоторым редактированием скриптов, НО без редактирования движка восстановить в ЗП тайники из ТЧ/ЧН? Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 7 Января 2018 Перенес из ЧН "treasure_manager.script", отредактировал следующие скрипты: bind_stalker se_item se_zones xr_effects xr_motivator Из каких то удалил ссылки на несуществующие в новом-старом "treasure_manager.script" функции, в какие то добавил ссылки на функции из "treasure_manager.script"(из ЧН), на своей локации добавил "invertory_box" с названием "esc_treasure_1"... Из ЧН взял следующие файлы, удалив кое-что лишнее: treasure_manager.ltx treasure_escape.ltx В логику одного из спейс рестрикторов вписал следующее: [logic] active = sr_idle@start [sr_idle@start] on_actor_inside = sr_idle@nil %=give_treasure(esc_treasure_1)% [sr_idle@nil] Итак, игра запускается нормально, но при попытке сейва ловлю вылет Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...\gamedata\scripts\treasure_manager.script:185: bad argument #1 to 'pairs' (table expected, got nil) При попытке обыскать труп Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...\gamedata\scripts\treasure_manager.script:111: bad argument #1 to 'pairs' (table expected, got nil) И при входе в рестриктор Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...\gamedata\scripts\treasure_manager.script:205: attempt to index global 'treasures' (a nil value) Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 7 Января 2018 Как понимаю - что-то не правильно или чего то не хватает Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 7 Января 2018 Цитата В ЗП вырезано получение объекта по имени, приходится добавлять боксам стори айди и получать объект через него. Инвертори боксу нужно прописать стори айди - я правильно понимаю? 1 Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 7 Января 2018 хах, у меня есть с этим делом успехи - отредактировал _g.script в функцию "start_game_callback" добавил отсылку: treasure_manager.load_treasures() Вылеты при сейвах прекратились И новая проблема: в СДК своему инвертори боксу прописал стори айди, при входе в рестриктор вылет - самый обычный stacke trace с которым НЕ понятно в чем дело и что делать? Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 8 Января 2018 8 часов назад, Rietmon сказал: Обычно, такие вылеты бывают при сбои скриптов отредактировал news_manager.script Заменил функцию send_treasure на ЧНовский вариант было function send_treasure(param) local news_caption = "" if(param==0) then news_caption = game.translate_string("st_found_new_treasure") elseif(param==1) then news_caption = game.translate_string("st_got_treasure") elseif(param==2) then news_caption = game.translate_string("st_found_old_treasure") end if db.actor:is_talking() then db.actor:give_talk_message2(news_caption, "", "ui_inGame2_Polucheni_koordinaty_taynika", "iconed_answer_item") else db.actor:give_game_news(news_caption, "", "ui_inGame2_Polucheni_koordinaty_taynika", 0, 3000) end end стало function send_treasure(name) local news_caption = game.translate_string("st_found_new_treasure") local news_text = game.translate_string(name) db.actor:give_game_news(news_caption, news_text, "ui_iconsTotal_found_thing", 0, 3000) end Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 8 Января 2018 Но все же осталась проблема - тайник не выдается Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 9 Января 2018 BoBaH_671, Цитата или же напрочь удалять ЗП варианты во всех местах Я так и делал - к чертям удалял ЗП варианты функций или заменял их ЧНовскими вариантами Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 25 Января 2018 (изменено) Создал новый предмет в configs\misc\quests_items.ltx [pre_pda_marauder]:device_pda $spawn = "quest_items\pre_pda_marauder" inv_weight = 0.05 description = pre_pda_marauder_desc inv_name = pre_pda_marauder inv_name_short = pre_pda_marauder cost = 0 quest_item = true И прописал его НПС в character_desk <specific_character id="pre_marauder_corpse" team_default="1"> <name>GENERATE_NAME_stalker</name> <icon>ui_inGame2_No_data</icon> <map_icon x="1" y="0"> </map_icon> <bio>ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует.</bio> <class>pre_marauder_corpse</class> <community>marauder</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_02\stalker\</snd_config> <rank>60</rank> <reputation>0</reputation> <money min="2217" max="5000" infinitive="1" /> <visual>actors\marauder\marauder_1_1</visual> <supplies> [spawn] \n pre_pda_marauder = 1 \n #include "gameplay\character_criticals_4.xml" #include "gameplay\character_drugs.xml" </supplies> С этим же принципом создал еще несколько предметов и роздал их неписям, но вот проблема: Новые предметы почему-то не появляются у этих НПС, почему? Платформа: ЗП Изменено 25 Января 2018 пользователем Metro_Rus Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 11 Апреля 2018 @WinCap, так и должно быть... В офлайне НПС не проигрывают анимаций и не юзают моделей и двигаются только по graph_point'ам @WinCap точно не знаю, но по-моему ему можно прописать какую-то функцию в логику - чтобы всегда был онлайн... Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 17 Апреля 2018 Создаю новые анимации для smart_cover, прописал их в следующих файлах: smart_covers.script state_lib_animpoint.script state_mgr_animation_list_animpoint.script xr_animpoint_predicates.script добавил файлы: smart_covers_animpoint_sit_ass.script smart_covers_loophole_animpoint_sit_ass.script Поставил smart_caver с новыми анимациями в СДК и получил такую ошибку visual [actors\stalker_neutral\stalker_neutral_1] has no animation [loophole_animpoint_sit_ass_visual] В игре вылет: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...ÒÊÀ ÌÎÄÀ\gamedata\scripts\state_mgr_animation.script:248: attempt to index local 'state' (a nil value) Надеюсь здесь есть знающие люди ))) Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 18 Апреля 2018 @warwer, Цитата для smart_cover Я использую старые анимации, которые уже имеются в stalker_animation.omf/stalker_script_animation.omf Просто задействую их для smart_cover ))) Цитата прописал их в следующих файлах: smart_covers.script state_lib_animpoint.script state_mgr_animation_list_animpoint.script xr_animpoint_predicates.script добавил файлы: smart_covers_animpoint_sit_ass.script smart_covers_loophole_animpoint_sit_ass.script Я просто хочу знать - нужно еще где-то прописывать? Если нет, то скорее всего я накосячил в каком-то(каких-то) из этих файлов )) Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 19 Апреля 2018 @warwer, Спасибо ))) Я уже решил проблему, нужно было smart_cover прописать в еще одном файле: state_mgr_animstate_list_animpoint.script Вылет в игре решен ))) Хотя в СДК остается проблема, но это не так важно Цитата visual [actors\stalker_neutral\stalker_neutral_1] has no animation [loophole_animpoint_sit_ass_visual] Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 19 Апреля 2018 (изменено) @Overfirst, да, последствий нет... Новая проблема: задействовал анимации "сидения у костра а-ля ТЧ/ЧН" в smart_cover'е, чтобы НПС могли могли есть\пить\рассказывать анекдоты\играть на муз.инструментах... Проблемы с реализацией(посты выше) я решил... Осталась проблема с игрой на гитаре: По дефолту: НПС играет на гитаре как на гуслях(подобное наблюдается в моде Call of Chernobyl) ;Секция гитары [guitar_a]:identity_immunities GroupControlSection = spawn_group discovery_dependency = $spawn = "food and drugs\guitar_a" cform = skeleton class = II_ATTCH visual = dynamics\devices\dev_guitar\dev_guitar.ogf cost = 35 inv_name = st_guitar_name inv_name_short = st_guitar_name description = st_guitar_descr inv_weight = 1.5 inv_grid_width = 4 inv_grid_height = 2 inv_grid_x = 10 inv_grid_y = 19 attach_angle_offset = -0.415, -1.262, 0.808 ;одно из причинных мест - расположение предмета attach_position_offset = -0.014, 0.010, 0.020 ;одно из причинных мест - расположение предмета attach_bone_name = bip01_l_hand auto_attach = false заменил значения этих строк на вариант из ТЧ: attach_angle_offset = -1.651084, -1.341824, 1.200789 attach_position_offset = 0.077492, -0.030020, 0.090059 Теперь все нормально: За то теперь "как на гулях" играют оригинальные smart_cover'ы (( для новых smart_cover'ов создал новую гитару("guitar" - такую же, но со значениями из ТЧ) и прописал ее в всех найденных по аналогии со старой("guitar_a"), в том числе и в спаун НПС Теперь еще круче - НПС играет "с воздухом" ))) возможно просто у НПС нет гитары... Нет, есть, проверил на 100 раз, просто с какого-то фига она у него не появляется в руках... Может кто-нибудь сталкивался с этим? Изменено 19 Апреля 2018 пользователем Metro_Rus кое-что недописал)) Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 19 Апреля 2018 Где нужно еще прописывать гитару, кроме файлов: configs\misc\items.ltx(сама гитара - guitar) configs\misc\trade\trade_generic.ltx(чтобы НПС не могли продать guitar) configs\gameplay\character_items_...(спаун guitar к НПС) scripts\death_manager.script (возможно, чтобы guitar не спаунился в рюкзаках после гибели НПС) Может быть работа "guitar_a" для smart_cover'ов прописана в движке(или прилагающихся к нему файлах .dll)? Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 20 Июня 2018 (изменено) Думается мне - какая может произойти проблема в Сталкере в 2k18 году? Да вот какая: Игра вообще не запускается по непонятным причинам, просто окно загрузки движка и пустой лог без ошибок Шо делать? Допоможiть мне, ради всего святого, пожалуйста) Изменено 20 Июня 2018 пользователем Metro_Rus Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 12 Августа 2018 @Regular Stalker, Как и любой другой, но только в "Диск":\X-Ray SDK\editors\rawdata\levels\"декомпилированный уровень"\ удаляй файлы: light.part - если уровень из билдов 2ххх до финалки, то можно не удалять spawn.part - можно не удалять. Если будут вылеты при загрузке локации, то стоит удалить Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 13 Августа 2018 @WizziGun, [walker@go] !не walk_path, а path_walk и где path_look(точка куда должен смотреть НПС)? path_walk = jup_a6_yar_go - вырежи имя смарта, не jup_a6_yar_go, а просто yar_go 1 Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 13 Августа 2018 (изменено) @WizziGun, [walker@go] path_walk = yar_go_walk path_look = yar_go_look use_camp = false meet = meet combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = true gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false wounded = wounded PS сюда еще можно добавить анимации, к примеру def_state_standing = "название анимации" - "стоячая" анимация def_state_moving = "название анимации" - анимация ходьбы Нет, любой walker должен иметь path_look Секция wounded здесь не делает же его раненым? ps Просто чтобы ты знал: если какой либо НПС привязан к смарту, то в спавне имя его пути должно выглядеть примерно так ("имя смарта".."имя пути+walk\look"). В логике, в path_walk\look имя смарта писать не нужно. Просто ("имя пути+walk\look"). А вот если НПС заспавнен не через смарт, тогда с названиями путей можно не заморачиваться - если имя пути значится в спавне как gar_dolg_post_commander_walk, то и в логике нужно писать полностью gar_dolg_post_commander_walk Изменено 13 Августа 2018 пользователем Metro_Rus Поделиться этим сообщением Ссылка на сообщение
Metro_Rus 75 Опубликовано 13 Августа 2018 (изменено) @WizziGun, Скрытый текст [yar_go] points = p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23 p0:name = wp00 p0:flags = 0x1 p0:position = -47.135345458984,3.4870493412018,207.82391357422 p0:game_vertex_id = 332 p0:level_vertex_id = 639090 p0:links = p1(1) p1:name = wp01 p1:flags = 0x1 p1:position = -50.213188171387,3.4880442619324,205.15490722656 p1:game_vertex_id = 332 p1:level_vertex_id = 633251 p1:links = p2(1) p2:name = wp02 p2:flags = 0x1 p2:position = -50.223976135254,3.4883139133453,198.25973510742 p2:game_vertex_id = 332 p2:level_vertex_id = 633234 p2:links = p3(1) ... [yar_go_look] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = 467.41107177734,-5.3287630081177,-16.178440093994 p0:game_vertex_id = 529 p0:level_vertex_id = 1450702 Уатта фак! Я не удивлен что у тебя происходит вылет. Ты спавнишь через редактирование all.spawn? Я раньше думал, что этот способ спавна остался в 2008 Настоятельно рекомендую работать в X-Ray SDK LE - это скорее всего решит проблему [yar_go] points = p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23 Насколько я вижу - yar_go это путь, поэтому здесь особо не нужен look, либо он должен соответствовать пути walk Изменено 13 Августа 2018 пользователем Metro_Rus Поделиться этим сообщением Ссылка на сообщение