Space.Marine 466 Опубликовано 25 Февраля 2016 не может найти диалог "dm_hello_dialog" Автор: Моддер Как лечить раненных НПС-враговСложность: оч. легкоСовместимость с модами: легко совместимоМногие люди в своих модификациях хотят добавить возможность лечить раненных врагов, как, например, в Солянке. Я тоже однажды заинтересовался этим вопросом и, не найдя на него ответа в интернете, занялся решением проблемы сам. В итоге мне это удалось и теперь выкладываю плоды своих стараний на просторы интернета .Скрыть ИнструкцииЗапрет диалога с раненными противниками находится в файле xr_wounded.script, и выглядит так (я снабдил его комментариями, если вы не сильно шарите в скриптах):if self.object:relation(db.actor) == game_object.enemy then --если отношение НПС к ГГ = отношению к врагумself.object:disable_talk() --блокировать диалогиelse --иначеself.object:enable_talk() --разрешить диалогend --конец условия (if)Дабы позволить ГГ говорить с врагами (только раненными) достаточно удалить лишнее и оставить всего одну строку:self.object:enable_talk()Но! Если ГГ попробует обратиться к раненным представителям бандитов, монолитовцев, наёмников, зомби (возможно), военных или противников на Арене - скорее всего произойдёт Фатал Еррор с логом на отсутствие подходящей фразы для диалога (в оригинальной игре с вероятностью 99%). Так вот, лично для себя я нашёл простое решение, которое подходило и по концепции моего мода - запретить диалог с данными группировками. Вот таким макаром:local comm = self.object:character_community() --переменной обозначил "понятие" группировки обьекта (НПС)if comm == "zombied" or --если НПС - зомби, илиcomm == "bandit" or --НПС - бандит, илиcomm == "monolith" or --НПС - монолитовец, илиcomm == "arena_enemy" or --НПС - боец арены, илиcomm == "killer" or --НПС - наёмник, илиcomm == "military" then --НПС - вояка, тогдаself.object:disable_talk() --запретить диалогelse -- иначеself.object:enable_talk() --разрешить диалогend -- The End!просто заменить изначальные строки этими и теперь ГГ сможет лечить врагов одиночек, долговцев, свободовцев и учёных.Но есть ещё один момент. При лечении врагов, если всё сделать как было написано будет ещё одна проблемка - они так и останутся врагами после лечения и будут дальше атаковать ГГ.Разумно было бы сделать НПС если не другом, то по крайней мере нейтралом. Для этого необходимо в файле dialogs.script кусок скриптаif second_speaker:relation(first_speaker) ~= game_object.enemy thensecond_speaker:set_relation(game_object.friend, first_speaker)endfirst_speaker:change_character_reputation(10);endзаменить наif second_speaker:relation(first_speaker) == game_object.enemy thensecond_speaker:set_relation(game_object.friend, first_speaker)first_speaker:set_relation(game_object.friend, second_speaker)endfirst_speaker:change_character_reputation(10);endВсё! Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 1 Марта 2016 Приветствую уважаемых специалистов. Сам ни разу не скриптёр\программер. Поэтому прошу помощи. Есть мод на ТЧ - "Ремкомплект" - там три скрипта: https://cloud.mail.ru/public/EzpC/A5f3UbsKV Хотел уменьшить количество деталей после "разборки" стволов, но не смог. Я так понял, что кол-во деталей зависит от кондиции ствола. Но не нашёл ту дельту которую нужно уменьшать. Буду очень признателен за помощь. Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 19 Июня 2016 отключить такую фишку - НПЦ перетаскивают трупы подальше от костров. "удаление каждой схемы производится удалением файла, указанного в скобках", то есть (модифицированный xr_kamp.script) 1 Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 18 Апреля 2017 Подскажите, пожалуйста что делает функция: function k_predicate_s(obj_info) return obj_info.profile_name == "esc_killer_specnaz" end и далее по скрипту: t = { section = "logic@esc_killer1_raid", idle = 0, prior = 8, state = {4}, online = true, predicate = k_predicate_s, in_rest = "", out_rest = "" Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 18 Апреля 2017 (изменено) Т.е. на эту работу Я так понимаю, будет заспавнен вояка спецназовец во время нападения наймов на деревню новичков ? P.S. Имеется мод (ТЧ Complete). Там, если вынести КПП около деревни новичков, происходит респаун вояк (появляется спецназ). Хотел перенести себе в мод. Сравнивал all.spawn - отличий (по неписям) не нашёл. Единственное в gulag_escape.script отличия по тем строчкам из прошлого поста. Подскажите как реализовать. Изменено 18 Апреля 2017 пользователем Space.Marine Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 5 Января 2018 Прошу помощи. Сам в скриптах не силён. Есть функция проигрывания звукового файла: Скрытый текст function CSurgeManager:play_siren_sound() local snd_obj=self.blowout_sounds["siren"] local snd_position if snd_obj ~= nil and snd_obj:playing() then snd_obj:stop() end if(level.name()=="zaton") then snd_position=vector():set(115,8,184) elseif(level.name()=="jupiter") then snd_position=vector():set(-50,16,198) else snd_position=vector():set(147,15,-187) end if snd_obj ~= nil then snd_obj:play_at_pos(db.actor, snd_position) snd_obj.volume = 1 --self.debugMessages[12]:SetText("playing: "..tostring(id)) end end Как вызвать остановку проигрывания этого звука из другого скрипта при определённом условии ? Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 19 Марта 2018 Нашёл такой код: Скрытый текст local explosive_weapons = { ["wpn_rg-6"] = true, ["wpn_rpg7"] = true, ["grenade"] = true } function npcondeath(victim, who) if IsStalker(who) then local active_item = who:active_item() local active_slot = who:active_slot() if (active_item and (active_slot == 1 or active_slot == 2)) or active_slot == 3 then local section = active_slot ~= 3 and active_item:section() or "grenade" if explosive_weapons[section] then particles_object("anomaly2\\body_tear_00"):play_at_pos(victim:bone_position("bip01_head")) end end end end Но, почему-то, партикл body_tear_00 отыгрывается даже при убийстве из любого дробовика, хотя их нет в списке. Прошу людей разбирающихся помочь. Сказали, что код из Simbion мода, но там такого не нашёл. И ещё, хотелось бы, чтобы труп после смерти исчезал. Хотя я понимаю, что тут нужна проверка на квестовость непися... Но может у кого нибудь уже есть готовое решение ? Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 21 Марта 2018 (изменено) 16 часов назад, Graff46 сказал: попробуйте этот: Ничего не поменялось. Партикл проигрывается, как и раньше при убийстве из любого мощного ствола (дробовик, СВД и пр.) Если что - платформа ЗП. Изменено 21 Марта 2018 пользователем Space.Marine Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 21 Марта 2018 (изменено) 4 часа назад, WinCap сказал: Попробуй Завтра проверю, но... Если в условии есть конкретно переменная explosive_weapons и для неё заданны конкретные параметры wpn_такое-то, то какого не работает ? Уточню, я в скриптах - максимум читатель без образования. Возможно ли такое поведения скрипта из-за того, что у меня значения k_ap и k_hit в конфигах некоторых боеприпасов больше единицы ? Изменено 21 Марта 2018 пользователем Space.Marine Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 21 Марта 2018 (изменено) 31 минуту назад, Dennis_Chikin сказал: А что, вообще Как я уже упоминал, я не специалист и, даже, не любитель. Я так понимаю, что условия такие, если некоторые заданные в explosive_weapons стволы а также гранаты, то - бабах ! Код из Simbion, как говорят. И, да, там есть фишка на эффект разрыва трупов для дум-дум боеприпаса (из описания мода). Как я припоминаю, это всё, тянется ещё из АМК мода для ТЧ. Я просто не понимаю, неужели это настолько проблематично (скорее просто на не нужно) решить спецам ? Изменено 21 Марта 2018 пользователем Space.Marine Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 28 Марта 2018 13 часов назад, BFG сказал: Мне б хоть мод с куском кода Atmosfear - surge_manager.script - там функция проигрывания звука по координатам... 1 1 Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 19 Апреля 2019 Добрый вечер, уважаемые ! Подскажите почему не выводятся на экран сообщения отсюда: if dik == DIK_keys.DIK_HOME then level.set_time_factor(300) news_manager.send_tip(db.actor, "Ускорение времени ВКЛ.", nil, nil, 5000) elseif dik == DIK_keys.DIK_END then level.set_time_factor(5) news_manager.send_tip(db.actor, "Ускорение времени ВЫКЛ.", nil, nil, 5000) end Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 19 Апреля 2019 30 минут назад, lordmuzer сказал: сей код находится ui_main_menu.script Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 19 Апреля 2019 10 минут назад, lordmuzer сказал: Попробуй без Ну а на кой оно мне без функции времени... В принципе, ничего важного в сообщении, просто хотелось... Видать чой-то из-за того, что я худ правил, уже не помню где... В любом случае, благодарю. Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 6 Июня 2019 4 часа назад, temass сказал: как заспавнить чего либо(бочки, мутни, нпс) вокруг ГГ Повелитель Зоны от Shoker-а. Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 2 Июля 2019 В 30.06.2019 в 14:24, _Sk8_AsTeR_ сказал: как можно заставить НПС уйти из лагеря и просто гулять по зоне? Гугли - SANEX A-LIFE MOD Скрытый текст Полный список изменений: I. Отключены гулаги на картах Кордон, Свалка, Агропром, Тёмная Долина, Бар, Дикая территория, Янтарь, Военные склады, Радар. 1. Отключены Гулаги на вышеперечисленных картах для всех животных за исключением кровососов на Военных складах. 2. На вышеперечисленных картах отключены гулаги для многих NPC (Не сюжетных!!) II. Отключены SMART-TERRAIN для: военных в подземелье Аграпрома, убраны SMART-TERAIN для всех бандитов на карте АГРАПРОМ, в лабе икс 18 для бандитов (а они там есть?), на Янтаре для Долга, на радаре для зомби. Также отключены SMART-TERRAIN для ВСЕХ монстров. III. Увеличен радиус действия А-ЛАЙФ со 150 метров до 300 метров. IV. Исправлены ошибки с собаками, нападающими на лиса, и кабанами, нападающими на блокпост долга.... Описание мода: Как вы все наверное знаете, разработчики игры обещали нам уникальную систему жизни. Существа зоны должны жить своей жизнью. На деле это оказалось немного не так: существа действительно живут своей жизнью, но только внутри определённой зоны. За эту зону они могут выйти при двух условиях: 1. Они за кем-то гонятся. 2. Они от кого-то убегают. Вот и получается, что, допустим на локации кардон, собачки недалеко от вагончика будут бродить там вечно, пока не наступит одно из вышеперечисленных условий. Я в своём моде убрал эти зоны для ВСЕХ животных, и для некоторых людей. Что получается? Например всё теже собачки у вагончика, теперь могут пойти, например, к раненому сталкеру и съесть его. Существа зоны теперь могут свободно передвигаться по всей карте. Это порождает очень большое колличество интересных ситуаций. Например огромная стая собак, штук 20, гналась за плотями. Собаки эти раньше сидели в своей зоне-гулаге, но когда я их отпустил, они пошли к плотям, и напали на них. Тоже самое с людьми. Например в лагере новичков. Раньше из этого лагеря никто не уходил, но теперь из лагеря переодически уходят 1-2 сталкера. В моём моде спокойно работают ВСЕ квесты, кроме некоторых. Мой мод получил очень хорошие отзывы на офф. форуме игры. Качаем мод, и видим тот a-life, который нам так долго рекламировали разработчики игры!!! Существуют разные версии мода на разные версии ТЧ и модификаций. Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 19 Сентября 2019 17 часов назад, _Sk8_AsTeR_ сказал: то у этого НПС отнималось определенное кол-во денег, за СМС. и тут ОПСОСы !!! 2 1 Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 24 Декабря 2019 11 часов назад, Капрал Хикс сказал: запретить артефакту перемещаться в слот для пистолета Там ещё засада была такая, что если слот пестика пустой, то поднятый с земли арт перемещается автоматически в слот пистолета. Бесит жутко. 1 Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 10 Марта 2020 Приветствую ! В ванильном ЗП в bind_stalker.script: -- Апдейт доступности для симуляции. simulation_objects.get_sim_obj_registry():update_avaliability(alife():actor()) if not self.loaded then get_console():execute("dump_infos") self.loaded = true end после чего в лог сыпется: ! Unknown command: dump_infos Я не скриптёр совсем. Поэтому вопрос - можно закоментить строку: get_console():execute("dump_infos") ? Поделиться этим сообщением Ссылка на сообщение
Space.Marine 466 Опубликовано 12 Марта 2020 4 часа назад, mole venomous сказал: и ту что ниже Точно ? Поделиться этим сообщением Ссылка на сообщение