Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 (изменено) Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском.Возможно, ответ на Ваш вопрос уже есть.Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. Изменено 23 Февраля 2016 пользователем warwer 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
imcrazyhoudini 195 Опубликовано 16 Января 2019 Поделиться Опубликовано 16 Января 2019 (изменено) Такой вопрос. Стоят у меня 2 мини-мода - отметки НПС в ПДА (подобие ЧН) и отметки важных персонажей из ЗП. Суть в том, что отметки НПС в ПДА висят всегда. Если поставить отметку важных персонажей, то эти 2 метки накладываются один на другого. Как это можно поправить? Скрипт меток НПС в ПДА (код): local step_time = 1500 local nps_spots = {} function update() local time = time_global() if time > step_time then step_time = time + 1500 for id,val in pairs(db.storage) do local obj = level.object_by_id(id) if obj and (IsStalker(obj) or obj:section() == "m_trader") and id~=0 then show_spot(obj,id) end end end end function show_spot(npc,id) local commun = npc:character_community() local spot = "naxac_"..commun if npc:best_enemy() then if nps_spots[id] then nps_spots[id] = nil level.map_remove_object_spot(id,spot) end return elseif npc.health > 0 and not nps_spots[id] then nps_spots[id] = true local hint = game.translate_string(commun) level.map_add_object_spot(id,spot,hint) elseif npc.health <= 0 and nps_spots[id] then nps_spots[id] = nil level.map_remove_object_spot(id,spot) end end Скрипт меток важных НПС (код): -- Вызывается на переключении на новую секцию. Производит вычитывание настроек из текущей секции. function reset_show_spot(npc, scheme, st, section) local spot_section if scheme == nil or scheme == "nil" then spot_section = utils.cfg_get_string(st.ini, st.section_logic, "show_spot", npc, false, "") else spot_section = utils.cfg_get_string(st.ini, section, "show_spot", npc, false, "") end local map_spot = utils.cfg_get_string(st.ini, st.section_logic, "npc_map_spot", npc, false, "") if map_spot == nil then map_spot = utils.cfg_get_string(st.ini, section, "npc_map_spot", npc, false, "") end if map_spot ~= nil then map_spot = xr_logic.parse_condlist(npc, section, "npc_map_spot", map_spot) map_spot = xr_logic.pick_section_from_condlist(db.actor, npc, map_spot) end --' printf("STALKER SPOT SECTION [%s]", utils.to_str(spot_section)) if spot_section == nil then spot_section = "true" end local spot = "false" -- if character_community(npc) ~= "zombied" then local spot_condlist = xr_logic.parse_condlist(npc, section, "show_spot", spot_section) spot = xr_logic.pick_section_from_condlist(db.actor, npc, spot_condlist) -- end local sim = alife() if not sim then return end local obj = sim:object(npc:id()) if obj and obj.online then local npc_id = npc:id() if spot == "false" then -- прячем obj:visible_for_map(false) else -- ставим obj:visible_for_map(true) end if map_spot ~= nil then local map_location = "" local hint = "" if map_spot == "trader" then map_location = "trader_npc_location" hint = "st_ui_pda_trader" elseif map_spot == "mechanic" then map_location = "mechanic_npc_location" hint = "st_ui_pda_mechanic" elseif map_spot == "guider" then map_location = "guider_npc_location" hint = "st_ui_pda_guider" elseif map_spot == "quest_npc" then map_location = "quest_npc_location" hint = "st_ui_pda_quest_npc" elseif map_spot == "medic" then map_location = "medic_location" hint = "st_ui_pda_legend_medic" end if level.map_has_object_spot(npc_id, map_location) ~= 0 then level.map_remove_object_spot(npc_id, map_location) end if db.actor and npc and npc:general_goodwill(db.actor) > -1000 then level.map_add_object_spot(npc_id, map_location, hint) end else if level.map_has_object_spot(npc_id, "trader_npc_location") ~= 0 then level.map_remove_object_spot(npc_id, "trader_npc_location") elseif level.map_has_object_spot(npc_id, "mechanic_npc_location") ~= 0 then level.map_remove_object_spot(npc_id, "mechanic_npc_location") elseif level.map_has_object_spot(npc_id, "guider_npc_location") ~= 0 then level.map_remove_object_spot(npc_id, "guider_npc_location") elseif level.map_has_object_spot(npc_id, "quest_npc_location") ~= 0 then level.map_remove_object_spot(npc_id, "quest_npc_location") elseif level.map_has_object_spot(npc_id, "trader_npc_location") ~= 0 then level.map_remove_object_spot(npc_id, "trader_npc_location") end end end end function remove_level_spot(npc, st) local map_spot = utils.cfg_get_string(st.ini, st.section_logic, "npc_map_spot", npc, false, "") if map_spot == nil then map_spot = utils.cfg_get_string(st.ini, st.active_section, "npc_map_spot", npc, false, "") end if map_spot ~= nil then map_spot = xr_logic.parse_condlist(npc, st.active_section, "npc_map_spot", map_spot) map_spot = xr_logic.pick_section_from_condlist(db.actor, npc, map_spot) end local sim = alife() if not sim then return end local obj = sim:object(npc:id()) if obj then local npc_id = npc:id() if map_spot ~= "" and map_spot ~= nil then local map_location = "" if map_spot == "trader" then map_location = "ui_pda2_trader_location" elseif map_spot == "mechanic" then map_location = "ui_pda2_mechanic_location" elseif map_spot == "guider" then map_location = "ui_pda2_scout_location" elseif map_spot == "quest_npc" then map_location = "ui_pda2_quest_npc_location" elseif map_spot == "medic" then map_location = "ui_pda2_medic_location" end if level.map_has_object_spot(npc_id, map_location) ~= 0 then level.map_remove_object_spot(npc_id, map_location) end end end end Скриншот, как это дело выглядит: http://images.vfl.ru/ii/1547625449/a6a75958/24973159.jpg Изменено 16 Января 2019 пользователем Houdini_one ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
F.Constantine 0 Опубликовано 16 Января 2019 Поделиться Опубликовано 16 Января 2019 Доброго времени суток всем! Просто праздник какой-то: найти живой форум по "Сталкеру" ! А то десять лет спустя пробило на ностальгию - решил перепройти игру - и сразу вспомнил, что меня в ней бесило десять лет тому . Ребята, если тут есть кто-то из мододелов, помогите, плз. Задача - повысить выживаемость НПС-сталкеров-"одиночек" в жестоком мире Зоны. Проще - сделать так, чтоб они не дохли, как мухи, под каждым кустом. Казалось бы - простая задача. Открываем m_stalker.ltx и правим, что хотим. Не тут-то было . Увеличивать Health оказалось бесполезным. Сталкер-новичок с Health = 1000 точно так же умирает от двух пуль глав-героя в корпус, как и с исходным Health = 100. Ну, и "в мире" они мрут одинаково. Почему - не понимаю. Кстати, если кто разъяснит, что такое Health, а что такое MaxHealthValue - отдельный респект. Редактирование stalker_immunities тоже не помогло: коэффициенты довел до 0.0 - сталкеры точно так же убиваются. Опять же, непонятно - почему. Единственные параметры, которые реально влияют, - в блоке stalker_condition. В частности, health_hit_part ("процент хита, уходящий на отнимание здоровья") при установке в 0 делает НПС практически неуязвимым. Но тут начинается самое интересное. Неуязвимыми при health_hit_part = 0.0 стали и солдаты, и бандиты, и т.д. В общем, все люди-НПС. Ну, опять же - залез в соответствующие m_*****.ltx - там везде прописаны отсылки к immunities и condition сталкеров: immunities_sect = stalker_immunities condition_sect = stalker_condition Я нашел в m_person.ltx соответствующие блоки для торговцев: trader_immunities (там все по 0.0) и trader_condition (в нем прописал health_hit_part = 0.0 ). В m_stalker.ltx прописал: immunities_sect = trader_immunities condition_sect = trader_condition Результат - все то же самое: неуязвимы и "одиночки", и солдаты, и бандиты, и т.д. Зашел с другой стороны. В "армейском" файлике m_army.ltx создал блоки army_immunities и army_condition со стандартными значениями. Прописал в этом файле везде: immunities_sect = army_immunities condition_sect = army_condition а в m_stalker.ltx поставил health_hit_part = 0.0. И опять получил все то же самое: неуязвимы и сталкеры, и военные. Кто может объяснить, что я не так делаю, или, что скорее, что еще нужно сделать, ПЛИЗ ХЕЛП. Пятый день ковыряюсь в этих файлах - мозг кипит, результата ноль. Проверял по три раза, игру начинал с начала - все без толку. У меня "Тени Чернобыля" версии 1.0006, со "Steam-а". Стоит мод STALKER Complete 2009 (v.1.4.4). Мод в основном косметический, плюс - правящий некоторые косяки типа умирания в кострах и добавляющий всякие мелкие приятности, сюжет и геймплей он не затрагивает. Я сравнивал файлы m_*****.ltx с оригинальными - в моде в них менялись только некоторые числовые значения, касающиеся обзора/обнаружения НПС, больше ничего. Хотя с "чистой" игрой я тоже экспериментировал - с тем же результатом Ссылка на комментарий
Капрал Хикс 497 Опубликовано 16 Января 2019 Поделиться Опубликовано 16 Января 2019 1 час назад, F.Constantine сказал: Ребята, если тут есть кто-то из мододелов, помогите, плз. Найди тему тут на форуме "Расчёт повреждений при стрельбе по НПС" https://www.amk-team.ru/forum/topic/4188-soc-raschet-povrezhdeniy-pri-strelbe-po-nepisyam/ Всё подробно, что к чему. 1 1 Ссылка на комментарий
F.Constantine 0 Опубликовано 16 Января 2019 Поделиться Опубликовано 16 Января 2019 20 минут назад, Капрал Хикс сказал: Найди тему тут на форуме "Расчёт повреждений при стрельбе по НПС" https://www.amk-team.ru/forum/topic/4188-soc-raschet-povrezhdeniy-pri-strelbe-po-nepisyam/ Всё подробно, что к чему. Привет. Спасибо, что отозвался. Прочитал. Только не совсем понял: ты имеешь ввиду, что урон, получаемый НПС, можно править через bip-пы в блоке stalker_damage? Это я уже сам допер. Не в том суть проблемы. Меня пока вполне устраивает изменение одного-единственного параметра, health_hit_part, оно дает нужный мне эффект. НО - эффект этот распространяется на ВСЕ фракции НПС в игре: и на сталкеров-одиночек, и на военных, и на бандитов! А мне нужно изменять его только для одной определенной фракции, одиночек, например. И я не догоняю, как это сделать. Или ты имел ввиду кусок: Цитата Зачем так мучаться? Можно просто при создании НПС в файле spawn_sections.ltx сделать следующее: [Имя вашего НПС]:stalker_sakharov $spawn = "respawn\Имя вашего НПС" character_profile = Имя вашего НПС spec_rank = regular community = stalker И все. Ваш НПС бессмертный. Т.е. нужно создать новый "вид" НПС с нужными мне параметрами (ну, или добавить в профиль Сахарова еще condition с нужными величинами и использовать его) и в файле spawn_sections.ltx заменить для ВСЕХ нужных НПС прописанное там stalker на новый профиль, типа как stalker_sakharov в примере? Как-то вроде этого: ;--------Escape-------------- ;--------neutrals------------ [esc_stalker_respawn_1]:stalker_sakharov $spawn = "respawn\esc_stalker_respawn_1" character_profile = sim_stalker_novice spec_rank = novice community = stalker [esc_stalker_respawn_2]:stalker_sakharov $spawn = "respawn\esc_stalker_respawn_2" character_profile = sim_stalker_general spec_rank = regular community = stalker и т.д.? Ссылка на комментарий
Капрал Хикс 497 Опубликовано 16 Января 2019 Поделиться Опубликовано 16 Января 2019 Ну, в принципе, можно попробовать и так. Учти, что иммунитеты ещё и зашиты у большинства НПС в модели (прямо либо в виде .ltx инклуда), если их там нет, значения берутся из m_stalker. Ну и так далее... 1 1 1 Ссылка на комментарий
AndrewMor 525 Опубликовано 17 Января 2019 Поделиться Опубликовано 17 Января 2019 В 16.01.2019 в 09:36, Houdini_one сказал: да там всё скриптово - и удар прикладом, и разговоры через ПДА Я к тому, что может в X-Ray Extensions сие поправлено, а там уже в дело скрипты вступают. Вопрос изначально был в том, чтобы биографию восстановить скриптово без использования X-Ray Extensions, на стандартном движке. Сталкер - наше всё! Ссылка на комментарий
imcrazyhoudini 195 Опубликовано 17 Января 2019 Поделиться Опубликовано 17 Января 2019 @AndrewMor, а, ну да. Скриптово без этого проекта ты уж вряд ли сделаешь... ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
F.Constantine 0 Опубликовано 17 Января 2019 Поделиться Опубликовано 17 Января 2019 @Капрал Хикс Ок, я поковыряюсь еще вечером. Метод, конечно, странный (когда есть готовые файлы для каждой фракции), и он если и будет работать, то только для спавнящихся НПС, а как быть с уникальными, типа Волка, Крота, Серого и т.п.? Ну, даже по spawn_sections.ltx видно, что разработчики сделали это через большую "Ж": сами создали под каждую фракцию отдельный профиль, а потом запутали все в какую-то безумную паутину перекрестных ссылок и #include-сов и свели все к одному. Что касается моделей, то там иммунитеты и сопротивления, как я понимаю, напрямую завязаны с внешним видом, т.е. костюмом на персонаже. Т.е., если я начну наращивать защиту сталкерского комбеза - я точно так же сделаю суперменом бандита в таком комбезе (в игре есть подобные персонажи), а это не то, что мне нужно … Я прав? Ссылка на комментарий
F.Constantine 0 Опубликовано 17 Января 2019 Поделиться Опубликовано 17 Января 2019 @Капрал Хикс P.S. Ну, собственно, я угадал. Метод с созданием "неуязвимого" профиля типа stalker_sakharov и прописывание его сталкерам в spawn_sections.ltx работает на половину: отспавнившиеся после начала игры сталкеры действительно стали неуязвимыми, а вот присутствовавшие на локациях изначально - остались прежними. Например, в ангаре на Свалке Серый и два его друга убиваются, как и прежде, а пришедшие к ним позже сталкеры - "бессмерны". Попробовал новую игру начать - точно так же все новички и Волк в лагере Кордона убиваются. Не годится . Есть мысль попробовать реализовать задумку через скрипт. Типа "если НПС принадлежит к фракции "одиночки", то установить ему health_hit_part равным 0.0". Должно вроде быть не сложно - если б я умел их, скрипты эти, писать... Добавлено Опричник, 17 Января 2019 Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/ Ссылка на комментарий
Капрал Хикс 497 Опубликовано 17 Января 2019 Поделиться Опубликовано 17 Января 2019 (изменено) 6 часов назад, F.Constantine сказал: Ну, собственно, я угадал. Методом угадываний и "с наскоку" тут плохо и долго дело будет решаться. Нужно вникать в деталях, что и как работает в модели повреждений. Я для своей сборки заморочился и перелопатил вообще ВСЕ модели NPC, прописав каждому .ltx инклуд в соответствии со своей системой повреждений по костюмам. Времени заняло порядочно, но оно того стоило. По поводу био сталкеров - ЕМНИП, их отображение в КПК восстанавливается без возни с движком, правкой одной xml-ки. Проблема в том, что там жёстко задан движком размер окна для текста и нет выравнивания. Давно уже рыл, не помню, на форуме стоит поискать. Изменено 17 Января 2019 пользователем Капрал Хикс 1 1 1 Ссылка на комментарий
F.Constantine 0 Опубликовано 17 Января 2019 Поделиться Опубликовано 17 Января 2019 @Капрал Хикс, Да я понимаю . Просто задача казалась тривиальной, а превратилась в геморрой. Если не жалко - можешь как-то доходчиво пояснить (если можно - на примере из файла какого-то), что именно ты делал с моделями? Я что-то не могу въехать в принципе, куда ты там инклуды прописывал. Я на твои авторские права не посягаю, честное пионерское . Я исключительно для себя пытаюсь маленькую сборочку слепить. 1 Ссылка на комментарий
Капрал Хикс 497 Опубликовано 18 Января 2019 Поделиться Опубликовано 18 Января 2019 Инклуды в моделях правятся через SDK. Перечитай всю тему по повреждениям, чтобы полностью понять, как и что у GSC в immunities работает. Там и готовые рецепты есть того, как усилить защиту NPC и как сделать полностью неубиваемого ничем и никогда NPC - тоже. 2 1 Ссылка на комментарий
AndrewMor 525 Опубликовано 19 Января 2019 Поделиться Опубликовано 19 Января 2019 В 17.01.2019 в 21:28, Капрал Хикс сказал: По поводу био сталкеров - ЕМНИП, их отображение в КПК восстанавливается без возни с движком, правкой одной xml-ки. А в какой конкретно? Сталкер - наше всё! Ссылка на комментарий
DarkSnowder 897 Опубликовано 19 Января 2019 Поделиться Опубликовано 19 Января 2019 (изменено) Народ, нужна помощь в активации "уборщика трупов и бесхозного оружия от Сяка" Скрытый текст В общем мне позарез нужен это уборщик, ибо обильное кол-во разного хлама на уровнях со временем просто вымораживает. Скачал отсюда:(http://kish.ucoz.org/load/uborshhik_trupov_iz_nlc_5/1-1-0-24) и там сказано, мол Цитирую "Данный скриптовый файл прописывается в бинд_сталкер.скрипт Вот сюда: local corspoff = true function actor_binder:update(delta) if corspoff then sak_off_corpses.off_corpses() corspoff = false end" Но я смотрю - ведь тут явно ошибка(да и не совсем понятно - куда сюда? Может кто знает (или кто подключал его уже) - как правильно вписать уборщик в bind_stalker, чтобы он нормально работал? Буду дико благодарен прост:) Если что - вот мой bind_stalker:https://yadi.sk/d/ydMgJx565sfkRA Изменено 19 Января 2019 пользователем Han Sola Лучше сделать мод с 0, чем пытаться залатать багованный. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 19 Января 2019 Поделиться Опубликовано 19 Января 2019 (изменено) Ну, ошибка здесь собственно в том, что каждые 20ms зачем-то вызывается проверка того, что требуется один раз при загрузке. С другой стороны, если на каждый чих игрока спавнить в одном месте по 1000 зомбей - без удаления дохлых слайдшоу гарантировано. Возможно, предполагается еще наличие функции, которая вызывается через некоторое время после зомбоспавна, и снова делает corspoff = true (а заодно вызывает мегалаг, пока тот сякоуборщик перебирает все объекты в игре, чтоб было нелегко и нерадостно). Некоторые еще используют подобный вызов для удаления квестовых предметов, чтоб игрок не успел их подобрать, и должен был переигрывать. Изменено 19 Января 2019 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
DarkSnowder 897 Опубликовано 19 Января 2019 Поделиться Опубликовано 19 Января 2019 @Dennis_Chikin, Ну кое что конечно становиться ясным - вот ток как правильно вписать эту функцию в bind_stalker я так и не понял. function actor_binder:update(delta) все таки постоянная и одна из главных и она не должна находиться посередине подфункций, как было показано в примере. Или я что-то не понимаю? Лучше сделать мод с 0, чем пытаться залатать багованный. Ссылка на комментарий
Змея 240 Опубликовано 19 Января 2019 Поделиться Опубликовано 19 Января 2019 Да попроси родной скрипт от НЛЦ к примеру, и посмотри там)) Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 19 Января 2019 Поделиться Опубликовано 19 Января 2019 Где там кто "посередине подфункций"? Хотя, конечно, если в игре нет табунов в 1000 зомбей, я бы вставил куда-нибудь в net_spawn() Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
imcrazyhoudini 195 Опубликовано 19 Января 2019 Поделиться Опубликовано 19 Января 2019 Ребят, а как можно полностью отключить смарт террейн? ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 19 Января 2019 Поделиться Опубликовано 19 Января 2019 Если руки шаловливые не поковырялись - remove_gulag( true ), и добавить сохранение/загрузку флага. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти