Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
HellRatz 2 850 Опубликовано 9 Августа 2018 Поделиться Опубликовано 9 Августа 2018 10 минут назад, Змея сказал: ну как же нет. Ну и что? Это просто игнорирование боя. Почему когда игнор отключается, они начинают стрелять? Так не должно быть. До этого нет никаких функций, которые поссорили бы ГГ с этими НПСами. Даже если не ранить их до этого и никак не задевать, все равно начинают палить по игроку при переходе в эту секцию. GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Раритетные моды на моем облаке — на память о былом. Ссылка на комментарий
Змея 240 Опубликовано 9 Августа 2018 Поделиться Опубликовано 9 Августа 2018 (изменено) Ну подумалось - раз игнор прописан, значит неписи враждебные)) Цитата Так не должно быть Ну да...тут у меня как раз написаны зачатки логики приблизительно такого же плана. Игнор прописан, чтобы неписи игнорили мутантов при разговоре с ГГ. При переключении в другую секцию они естественно не проявляют агрессии к ГГ. Хотя вояки)) А нельзя как-нибудь через ХРЕ узнать, не получают ли неписи хит от ГГ или какого-либо предмета в инвентаре ГГ? Единственное - что на ум пришло... А убери для теста игнор...Так же будут вести себя? Изменено 9 Августа 2018 пользователем Змея Ссылка на комментарий
fastle 29 Опубликовано 9 Августа 2018 Поделиться Опубликовано 9 Августа 2018 Вот и меня назрел вопрос. Появилась нужда немного изменить готовый квест в НЛС. Суть такая: мы приходим к НПС, у которого я заранее прописал айтем (ПДА) в профиле, который выпадет с него, если его убить. Но если договориться с ним мирно, получить с него все награды, наводки на тайники и убить, ПДА у него в инвентаре останется при смерти. То есть он может дать наводку на тайник, где лежит этот же ПДА и у него в инвентаре будет этот ПДА, это не есть хорошо... Хотелось бы узнать, можно ли сделать как-нибудь удаление айтема при получении поршня мирного договора? Ссылка на комментарий
Overfirst 630 Опубликовано 9 Августа 2018 Поделиться Опубликовано 9 Августа 2018 (изменено) Для ЗП как-то такое делал, не знаю, прокатит ли с ТЧ, не проверял, поменял лишь название для функции получения непися по стори айди: function remove_npc_object(actor, npc, p) local npc = level_object_by_sid(tonumber(p[1])) local item = npc:object(p[2]) if npc and item then alife():release(alife():object(item:id()), true) end end Тести. Изменено 9 Августа 2018 пользователем Overfirst 1 Ранее был известен под ником BoBaH_671. Ссылка на комментарий
fastle 29 Опубликовано 9 Августа 2018 Поделиться Опубликовано 9 Августа 2018 10 минут назад, Overfirst сказал: Тести. Спасибочки Будем-с пробовать. Ссылка на комментарий
imcrazyhoudini 208 Опубликовано 10 Августа 2018 Поделиться Опубликовано 10 Августа 2018 В 08.08.2018 в 06:29, Змея сказал: конечно попробуй Результат тот же. Поршень "дружбы" не выдаётся почему-то(смотрел через расширенный _g.script). ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Змея 240 Опубликовано 11 Августа 2018 Поделиться Опубликовано 11 Августа 2018 @Houdini_one, а в моём варианте логике поршень дружбы и не выдавался...Он удалялся при обиде несмотря на то, был выдан или нет. Как и удалялся поршень обиды... А по поводу выдачи сам понимаешь - нужно таки писать нормальную функцию. Я конечно в скриптах не понимаю - но такое впечатление, что функция одноразовая...То есть - одел норм костюмчик - хорошо. Снял его - до свиданья... Ссылка на комментарий
imcrazyhoudini 208 Опубликовано 11 Августа 2018 Поделиться Опубликовано 11 Августа 2018 4 часа назад, Змея сказал: одноразовая На апдейте стоит же. ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Змея 240 Опубликовано 11 Августа 2018 Поделиться Опубликовано 11 Августа 2018 23 часа назад, Houdini_one сказал: Поршень "дружбы" не выдаётся почему-то Без комментариев... Ссылка на комментарий
imcrazyhoudini 208 Опубликовано 11 Августа 2018 Поделиться Опубликовано 11 Августа 2018 11 минут назад, Змея сказал: Без комментариев Смотри, поправил функцию: function check_outfit_last_day() local outfit = db.actor:item_in_slot(6) if outfit then if outfit:section() == "last_day_outfit" then db.actor:give_info_portion("swa_last_day_friend") db.actor:disable_info_portion("swa_last_day_enemy") else db.actor:give_info_portion("swa_last_day_enemy") db.actor:disable_info_portion("swa_last_day_friend") end return true end return false end Снимаю костюм, надеваю другой - стреляют, надеваю нужный - стреляют, выхожу из алайфа и захожу снова - не стреляют, всё ок. Но, косяк в том, что когда на мне нет костюма(в свитере я) они не стреляют. Начинают стрелять когда я в другом костюме. Как это поправить? ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
gam 117 Опубликовано 11 Августа 2018 Поделиться Опубликовано 11 Августа 2018 @Houdini_one, Попробуйте проверку таким образом (те добавить функцию апдейта к Вашему файлу скрипта): function update() if not exo_checked then db.actor:set_fastcall(check_outfit_last_day, db.actor) exo_checked = true end end function check_outfit_last_day() local outfit = db.actor:get_current_outfit() if outfit and outfit:section() == "last_day_outfit" then if has_alife_info("swa_last_day_enemy") then db.actor:disable_info_portion("swa_last_day_enemy") end db.actor:give_info_portion("swa_last_day_friend") else if has_alife_info("swa_last_day_friend") then db.actor:disable_info_portion("swa_last_day_friend") end db.actor:give_info_portion("swa_last_day_enemy") end end Нужно вписать вызов скриптовой функции в файле bind_stalker.script\function actor_binder:update(delta) таким образом - название_скрипта.update() Ссылка на комментарий
imcrazyhoudini 208 Опубликовано 12 Августа 2018 Поделиться Опубликовано 12 Августа 2018 7 часов назад, gam сказал: таким образом Спасибо, наконец-то всё работает как нужно! ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
fastle 29 Опубликовано 12 Августа 2018 Поделиться Опубликовано 12 Августа 2018 Всем привет ещё раз Стал интересен ещё один момент - как по поршню можно сделать какого-то определенного НПС (или даже целый гулаг) друзьями/врагами? Ссылка на комментарий
gam 117 Опубликовано 12 Августа 2018 Поделиться Опубликовано 12 Августа 2018 Салют Строителям!!! @fastle, Можно так к примеру: Становимся врагом: xr_gulag.setGulagEnemy("Имя смарта", db.actor) -- к примеру лагерь новичков "esc_lager" Становимся нейтралом: xr_gulag.setGulagNeutral("Имя смарта", db.actor) 1 2 Ссылка на комментарий
imcrazyhoudini 208 Опубликовано 12 Августа 2018 Поделиться Опубликовано 12 Августа 2018 Ещё вопрос такой: Можно как-то перенести из ЧН функцию которая отменяет задание? В ТЧ только его можно провалить и выполнить. И ещё можно как-то закрыть переходы до получения инфопоршня? Например в ЧН переход в подземелье НИИ через нору закрывался. Или это всё движок? ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Капрал Хикс 521 Опубликовано 12 Августа 2018 Поделиться Опубликовано 12 Августа 2018 1 час назад, Houdini_one сказал: Можно как-то перенести из ЧН функцию которая отменяет задание? Нет, т.к. в движке ТЧ нет необходимого состояния для задания. Т.е. нужно ковырять движок. 1 1 Ссылка на комментарий
Graff46 598 Опубликовано 12 Августа 2018 Поделиться Опубликовано 12 Августа 2018 (изменено) Начал ловить странный вылет. Стабильный, подозреваю, что связан с анимацией и моделями НПС или мутанта, но скорее всего НПС. В логе из буфера только переполнение стека. Движок 1.0006 + X-Ray Extansions. Выкладываю что есть: Скрытый текст * Loading animations for stalker with visual actors\hero\stalker_novice * Loading animations for stalker with visual actors\hero\stalker_novice * Loading animations for stalker with visual actors\hero\stalker_novice stack trace: 0023:00464E62 XR_3DA.exe, CKinematicsAnimated::LL_GetMotion() 0023:004689A1 XR_3DA.exe, CKinematicsAnimated::Bone_Calculate() Изменено 12 Августа 2018 пользователем Graff46 Ссылка на комментарий
imcrazyhoudini 208 Опубликовано 12 Августа 2018 Поделиться Опубликовано 12 Августа 2018 (изменено) Адаптирую blowout mod 1.0: Что правил(сначала оригинал, потом мои правки) ogsm_funcs.script: function __do_timer_action(select_string,params_string) -- Начало алгоритма выброса -- -- 1. Настало время выброса. if select_string=="bl1" then if ogsm_surge then if (level.name() ~= "l03u_agr_underground") and (level.name() ~= "l08u_brainlab") and (level.name() ~= "l10u_bunker") and (level.name() ~= "l04u_labx18") and (level.name() ~= "l12u_sarcofag") and (level.name() ~= "l12u_control_monolith") and (level.name() ~= "l12_stancia") and (level.name() ~= "l12_stancia_2") then if sleep_manager and sleep_manager.is_sleep_active() then sleep_manager.stopper() end start_timer("bl2",1) else g_start_timer("bl1",0,1,0) end else g_start_timer("bl1",0,10,0) end end function __do_timer_action(select_string,params_string) -- Начало алгоритма выброса -- -- 1. Настало время выброса. if select_string=="bl1" then if ogsm_surge then if (level.name() ~= "l01_dead_city") and (level.name() ~= "l02_yantar") and (level.name() ~= "l03_bar") and (level.name() ~= "l05_military") and (level.name() ~= "l06_milrad") and (level.name() ~= "l07_radar") and (level.name() ~= "l08_generators") then if sleep_manager and sleep_manager.is_sleep_active() then sleep_manager.stopper() end start_timer("bl2",1) else g_start_timer("bl1",0,1,0) end else g_start_timer("bl1",0,10,0) end end Как я понимаю, здесь указываются локации где выброс идти не будет. У меня пока что одна локация на которой будет идти, потом расширю. ogsm_hideout.script: function is_in_specific_zone(npc) if npc_in_zone(npc,"l01_escape",-256,-246,-137,-132,-25,-20) or -- Бункер Сидора npc_in_zone(npc,"l03_agroprom",-198.31,-195.66,85.4,96.54,2,5.3) or -- Вагон дезертира npc_in_zone(npc,"l04_darkvalley",30,50,-60,-25,-4,0) or -- Тюрьма в Темной долине npc_in_zone(npc,"l05_bar",123,140,18,30,-6,0) or -- Бар npc_in_zone(npc,"l05_bar",118,121,34,41,-4,1) or -- Охранник Бара npc_in_zone(npc,"l05_bar",149,158,67,74,0,4) or -- Приемная Арни npc_in_zone(npc,"l05_bar",136,168,73,134,-22,-10) or -- Арена npc_in_zone(npc,"l05_bar",208,234,120,139,-6,2) or -- База Долга npc_in_zone(npc,"l06_rostok",-90,-87,125,151,0,6) or -- Блокпост наемников npc_in_zone(npc,"l07_military",-27,-16,-33,-14,-9,0) or -- База Свободы npc_in_zone(npc,"l08_yantar",23,40,-282,-269,-16,0) or -- Бункер ученых npc_in_zone(npc,"l08_yantar",-265,-22,-218,-6,-20,-11) or -- Кишка npc_in_zone(npc,"l11_pripyat",-16,-2,188,204,-5,0) then -- Подвал ДК return true end return false end function is_in_hide(npc) if npc_in_zone(npc,"l01_escape",-211,-198,-132,-125,-23,-20) or -- Подвал 1 в лагере новичков npc_in_zone(npc,"l01_escape",-216,-209,-133,-120,-24,-20) or -- Подвал 2 в лагере новичков npc_in_zone(npc,"l02_garbage",-112,-57,-6,25,-9,90) or -- Ангар на Свалке npc_in_zone(npc,"l05_bar",206,213,50,68,0,4) or -- Магазин Петренко npc_in_zone(npc,"l06_rostok",-285,-235,78,112,-7,0) or -- Тоннель Фримена npc_in_zone(npc,"l10_radar",639,664,167,189,-45,-37) or -- Секретная база Монолита npc_in_zone(npc,"l10_radar",86.73,153,-27,-21.70,-10,-4.6) or -- Вход в бункер npc_in_zone(npc,"l11_pripyat",-18,-12,58,83,-6,-3) or -- Подземный переход npc_in_zone(npc,"l11_pripyat",167,173,58,83,-6,-3) or -- Подземный переход npc_in_zone(npc,"l11_pripyat",-24,55,116,122,-4,0) then -- Канализация return true else local hide = get_nearest_hide(npc) if hide then if utils.npc_in_zone(npc, hide.obj) then return true end end end return false end function is_in_specific_zone(npc) end function is_in_hide(npc) end Вот тут какие-то специфические зоны, не совсем понимаю + какие-то числа, тоже не совсем понимаю... Решил удалить всё. function first_run() ------------------ -- Escape Hides -- ------------------ -- Бункер Сидора spawn_restrictor("l01_escape", vector():set(-249.9,-24.8,-134.4), 10136, 7, "fake_", 3) -- Лагерь новичков spawn_restrictor("l01_escape", vector():set(-206.5,-22.53,-128.1), 46582, 58, "stalker", 3) spawn_restrictor("l01_escape", vector():set(-211.4,-23.17,-129.5), 41963, 59, "stalker", 3) -- Ферма spawn_restrictor("l01_escape", vector():set(-8.4,0.64,258.3), 268724, 183, "stalker", 4) -- Заброшенный дом рядом с Лисом spawn_restrictor("l01_escape", vector():set(133.0,0.22,339.5), 437657, 232, "stalker_bandit", 3) -- АТП spawn_restrictor("l01_escape", vector():set(109.9,-7.48,7.7), 411371, 118, "stalker_bandit", 5) -- Блокпост spawn_restrictor("l01_escape", vector():set(-119.7,-30.04,-386.4), 133789, 27, "military", 4) spawn_restrictor("l01_escape", vector():set(-140.7,-29.68,-361.2), 109717, 18, "military", 4) -- Мельница spawn_restrictor("l01_escape", vector():set(13.3,2.7,98.7), 290783, 92, "military", 3) ------------------- -- Garbage Hides -- ------------------- -- Ангар - восточная часть spawn_restrictor("l02_garbage", vector():set(-61.6,0.75,9.1), 135489, 330, "stalker", 6) -- Изгородь spawn_restrictor("l02_garbage", vector():set(66.5,0.6,144.9), 237602, 364, "bandit", 2) -- Ангар - западная часть spawn_restrictor("l02_garbage", vector():set(-102.9,0.44,11.9), 110339, 328, "bandit", 6) -------------------- -- Agroprom Hides -- -------------------- -- Строение в районе Крота spawn_restrictor("l03_agroprom", vector():set(16.8,0,14), 256750, 693, "stalker_bandit_military", 6) -- Убежище Крота spawn_restrictor("l03_agroprom", vector():set(39.9,2.5,-10.5), 278041, 693, "stalker", 6) -- Казармы у подземелья spawn_restrictor("l03_agroprom", vector():set(-158.2,1.1,-151.2), 79088, 693, "military", 5) -- Казармы у НИИ spawn_restrictor("l03_agroprom", vector():set(-153.3,1.1,-166.6), 84356, 693, "military", 5) -- Строение у НИИ spawn_restrictor("l03_agroprom", vector():set(-179.9,0,-187.6), 56704, 693, "military", 6) -- НИИ Агропром spawn_restrictor("l03_agroprom", vector():set(-145.6,0,-200.9), 92513, 693, "military", 6) ---------------------- -- Darkvalley Hides -- ---------------------- -- Строения над входом в Х18 spawn_restrictor("l04_darkvalley", vector():set(146.3,0.22,-263.2), 345170, 813, "bandit_military_dolg", 15) spawn_restrictor("l04_darkvalley", vector():set(128.1,0.14,-294), 325149, 813, "bandit_military_dolg", 7) -- Ферма spawn_restrictor("l04_darkvalley", vector():set(-135.1,0.97,-511), 22718, 813, "stalker", 8) -- Бензоколонка spawn_restrictor("l04_darkvalley", vector():set(101.5,0.7,-7.7), 297166, 813, "stalker_", 6) -- Подвал рядом с ямой spawn_restrictor("l04_darkvalley", vector():set(34.3,-2.93,-0.7), 216848, 813, "bandit_dolg", 4) -- Элеватор spawn_restrictor("l04_darkvalley", vector():set(-7,0.11,-57.4), 165893, 813, "bandit", 4) -- Комната Борова spawn_restrictor("l04_darkvalley", vector():set(39.2,4.54,-84), 223238, 813, "bandit", 5) -- Холл spawn_restrictor("l04_darkvalley", vector():set(37.1,0.375,-66.5), 220567, 813, "bandit", 5) -- Над тюрьмой spawn_restrictor("l04_darkvalley", vector():set(40.6,1.01,-31.5), 225406, 813, "bandit", 7) --------------- -- Bar Hides -- --------------- -- Бункер на заставе spawn_restrictor("l05_bar", vector():set(214.2,-1.57,-18.9), 52736, 1233, "stalker_dolg", 3) -- Иди своей дорогой, сталкер... spawn_restrictor("l05_bar", vector():set(178.5,0.09,49.0), 44766, 1233, "stalker_dolg", 6) -- Магазин Петренко spawn_restrictor("l05_bar", vector():set(210.0,0.42,61.6), 51205, 1233, "dolg", 5) -- База Долга spawn_restrictor("l05_bar", vector():set(224.0,-5.26,130.9), 56342, 1233, "fake_", 8) -- Предбанник Арены spawn_restrictor("l05_bar", vector():set(142.8,0.09,93.1), 38428, 1233, "stalker_dolg", 6) -- Строения у Бара spawn_restrictor("l05_bar", vector():set(112.7,0.097,68.6), 33337, 1233, "stalker_dolg", 6) spawn_restrictor("l05_bar", vector():set(144.9,-0.012,40.6), 38939, 1233, "stalker_dolg", 6) -- Бар spawn_restrictor("l05_bar", vector():set(131.6,-4.83,23.8), 36240, 1233, "fake_", 10) ------------------ -- Rostok Hides -- ------------------ -- Блокпост наемников spawn_restrictor("l06_rostok", vector():set(-88.9,0,137.2), 46715, 1311, "stalker_dolg_killer_ecolog", 2) spawn_restrictor("l06_rostok", vector():set(-82.6,1.95,156.8), 48150, 1311, "stalker_dolg_killer_ecolog", 3) -- Ангар с пси-зоной spawn_restrictor("l06_rostok", vector():set(-191.8,0,130.9), 28448, 1311, "stalker_dolg_killer_ecolog", 6) -- Тоннель Фримена spawn_restrictor("l06_rostok", vector():set(-280,-6,109.2), 1769, 1311, "ecolog", 3) -- Засады наемников spawn_restrictor("l06_rostok", vector():set(-242.9,0,140), 12634, 1311, "killer", 2) spawn_restrictor("l06_rostok", vector():set(-228.2,0.13,141.4), 19047, 1311, "killer", 2) spawn_restrictor("l06_rostok", vector():set(-250.6,1.43,14), 9490, 1311, "killer", 2) -------------------- -- Military Hides -- -------------------- -- База Долга spawn_restrictor("l07_military", vector():set(-191.8,-13,39.9), 133097, 1546, "dolg", 4) -- Деревня кровососов spawn_restrictor("l07_military", vector():set(-228.9,-21.78,196.7), 102257, 1546, "freedom", 4) -- Стоянка нейтралов spawn_restrictor("l07_military", vector():set(-71.4,-16.83,242.9), 240966, 1546, "stalker", 3) -- Барьер spawn_restrictor("l07_military", vector():set(84.7,-7,341.6), 382116, 1546, "freedom", 3) -- Хутор Павлика spawn_restrictor("l07_military", vector():set(-190.4,-16,371), 134714, 1546, "killer_freedom", 4) -- Штаб Свободы spawn_restrictor("l07_military", vector():set(-21.7,-4.12,-23.8), 285439, 1546, "fake_", 6) -- Казармы spawn_restrictor("l07_military", vector():set(9.1,-7.28,16.1), 316470, 1546, "freedom", 6) spawn_restrictor("l07_military", vector():set(57.4,-8.054,16.8), 356438, 1546, "freedom", 6) -- Кухня spawn_restrictor("l07_military", vector():set(-77,-11.34,30.1), 235657, 1546, "freedom", 6) ------------------ -- Yantar Hides -- ------------------ -- Бункер ученых spawn_restrictor("l08_yantar", vector():set(31.5,-11.68,-272.3), 54643, 1459, "fake_", 6) ----------------- -- Radar Hides -- ----------------- -- Секретная база Монолита spawn_restrictor("l10_radar", vector():set(650.955,-43.887,182.48), 226701, 1868, "dolg_freedom_stalker_military_monolith", 7) -- Вход в бункер spawn_restrictor("l10_radar", vector():set(147.35,-9.277,-24.21), 52689, 1868, "dolg_freedom_stalker_military_monolith", 4) -- Казармы на Радаре spawn_restrictor("l10_radar", vector():set(33.6,-3.38,-42), 21487, 1868, "dolg_freedom_stalker_military_monolith", 4) ------------------- -- Pripyat Hides -- ------------------- -- Подземная автостоянка spawn_restrictor("l11_pripyat", vector():set(85.4,-7.39,20.3), 196856, 2269, "stalker_military_freedom_dolg_killer", 15) -- Сберкасса spawn_restrictor("l11_pripyat", vector():set(60.2,-1.74,33.6), 172091, 2269, "stalker_military_freedom_dolg_killer", 4) -- Милиция spawn_restrictor("l11_pripyat", vector():set(-35.7,-1.68,34.3), 63044, 2269, "stalker_military_freedom_dolg_killer", 6) -- Сельхозуправление spawn_restrictor("l11_pripyat", vector():set(-51.1,0,140), 48522, 2269, "stalker_military_freedom_dolg_killer", 12) -- Подвал Дома культуры spawn_restrictor("l11_pripyat", vector():set(-5.6,-5.169,193.2), 95262, 2269, "fake_", 6) -- Подземные переходы spawn_restrictor("l11_pripyat", vector():set(-15.4,-5.55,69.3), 83833, 2269, "stalker_military_freedom_dolg_killer", 3) spawn_restrictor("l11_pripyat", vector():set(170.8,-5.55,69.3), 253270, 2269, "stalker_military_freedom_dolg_killer", 3) -- Канализация spawn_restrictor("l11_pripyat", vector():set(19.6,-3.634,121.1), 125990, 2269, "stalker_military_freedom_dolg_killer", 2) end function first_run() ------------------ -- Swamp Hides -- ------------------ -- Дом Доктора spawn_restrictor("l04_swamp", vector():set(192.7744140625,2.8159973621368,-39.758411407471), 370218, 198, "stalker", 5) end Вот тут вроде как устанавливаются укрытия для всех. Удалил все, оставил тестовый. function evaluator_blowout:evaluate() if not self.object:best_enemy() and db.Flag2==1 and db.Dead2==0 and not (level.name()=="l11_pripyat" and self.object:character_community() == "monolith") and not is_in_hide(self.object) and not is_in_specific_zone(self.object) then self.st.blowout = true else self.st.blowout = false end return self.st.blowout == true end function evaluator_blowout:evaluate() if not self.object:best_enemy() and db.Flag2==1 and db.Dead2==0 and not (level.name()=="l08_generators" and self.object:character_community() == "monolith") and not is_in_hide(self.object) and not is_in_specific_zone(self.object) then self.st.blowout = true else self.st.blowout = false end return self.st.blowout == true end Тут тоже не особо понимаю, просто сменил локацию. ogsm_surge.script: function hit_actor() local psy_hit = hit() psy_hit.direction = vector():set(0,0,0) psy_hit.impulse = 0 psy_hit.draftsman = db.actor if level.name() == "l01_escape" then psy_hit.power = 0.0005 psy_hit.type = hit.radiation db.actor:hit(psy_hit) end if level.name() == "l02_garbage" then psy_hit.power = 0.0008 psy_hit.type = hit.radiation db.actor:hit(psy_hit) end if level.name() == "l03_agroprom" then psy_hit.power = 0.001 psy_hit.type = hit.radiation db.actor:hit(psy_hit) end if level.name() == "l04_darkvalley" then psy_hit.power = 0.0012 psy_hit.type = hit.radiation db.actor:hit(psy_hit) end if level.name() == "l05_bar" then psy_hit.power = 0.0015 psy_hit.type = hit.radiation db.actor:hit(psy_hit) end if level.name() == "l06_rostok" then psy_hit.power = 0.002 psy_hit.type = hit.radiation db.actor:hit(psy_hit) end if level.name() == "l08_yantar" then psy_hit.power = 0.003 psy_hit.type = hit.radiation db.actor:hit(psy_hit) psy_hit.power = 0.0001 psy_hit.type = hit.shock db.actor:hit(psy_hit) end if level.name() == "l07_military" then psy_hit.power = 0.005 psy_hit.type = hit.radiation db.actor:hit(psy_hit) psy_hit.power = 0.0002 psy_hit.type = hit.shock db.actor:hit(psy_hit) end if level.name() == "l10_radar" then psy_hit.power = 0.008 psy_hit.type = hit.radiation db.actor:hit(psy_hit) psy_hit.power = 0.0004 psy_hit.type = hit.shock db.actor:hit(psy_hit) end if level.name() == "l11_pripyat" then psy_hit.power = 0.01 psy_hit.type = hit.radiation db.actor:hit(psy_hit) psy_hit.power = 0.0007 psy_hit.type = hit.shock db.actor:hit(psy_hit) end end function hit_actor() local psy_hit = hit() psy_hit.direction = vector():set(0,0,0) psy_hit.impulse = 0 psy_hit.draftsman = db.actor if level.name() == "l04_swamp" then psy_hit.power = 0.15 psy_hit.type = hit.radiation db.actor:hit(psy_hit) psy_hit.power = 0.15 psy_hit.type = hit.shock db.actor:hit(psy_hit) end end Ну тут понятно - наносится урон при выбросе вне укрытия. Убрал лишние, добавил своё. function proceed_art_spawn(section, count) local lv local level_vertexes={ l01_escape = {lvid=595580, gvid=44}, l02_garbage = {lvid=384039, gvid=265}, l03_agroprom = {lvid=438379, gvid=693}, l04_darkvalley = {lvid=392517, gvid=813}, l05_bar = {lvid=99538, gvid=1233}, l06_rostok = {lvid=69283, gvid=1311}, l07_military = {lvid=915663, gvid=1546}, l08_yantar = {lvid=141470, gvid=1438}, l10_radar = {lvid=796328, gvid=1868}, l11_pripyat = {lvid=295965, gvid=2269} } if level.name() == "l07_military" or level.name() == "l10_radar" then lv = 200000 + math.random(-100000,100000) else lv = math.random(level_vertexes[level.name()]["lvid"]) end local gv = level_vertexes[level.name()]["gvid"] for ind = 1, count do alife():create(section, level.vertex_position(lv), lv, gv) end end function spawn_arts() local level_name = level.name() if level_name == "l01_escape" then proceed_art_spawn("af_medusa", 1) proceed_art_spawn("af_vyvert", 1) proceed_art_spawn("af_blood", 1) proceed_art_spawn("af_electra_sparkler", 1) end if level_name == "l02_garbage" or level_name == "l03_agroprom" then proceed_art_spawn("af_cristall_flower", 1) proceed_art_spawn("af_gravi", 1) proceed_art_spawn("af_rusty_thorn", 1) proceed_art_spawn("af_mincer_meat", 1) end if level_name == "l04_darkvalley" then proceed_art_spawn("af_dummy_glassbeads", 1) proceed_art_spawn("af_electra_flash", 1) proceed_art_spawn("af_fuzz_kolobok", 1) proceed_art_spawn("af_fireball", 1) end if level_name == "l05_bar" or level_name == "l06_rostok" then proceed_art_spawn("af_dummy_pellicle", 1) proceed_art_spawn("af_ameba_slime", 1) proceed_art_spawn("af_soul", 1) proceed_art_spawn("af_rusty_kristall", 1) end if level_name == "l07_military" then proceed_art_spawn("af_dummy_battery", 1) proceed_art_spawn("af_rusty_sea-urchin", 1) proceed_art_spawn("af_electra_moonlight", 1) proceed_art_spawn("af_ameba_slug", 1) end if level_name == "l08_yantar" then proceed_art_spawn("af_dummy_battery", 1) proceed_art_spawn("af_dummy_dummy", 1) proceed_art_spawn("af_night_star", 1) proceed_art_spawn("af_gold_fish", 1) end if level_name == "l10_radar" then proceed_art_spawn("af_dummy_spring", 1) proceed_art_spawn("af_rusty_sea-urchin", 1) proceed_art_spawn("af_electra_moonlight", 1) proceed_art_spawn("af_ameba_mica", 1) end if level_name == "l11_pripyat" then proceed_art_spawn("af_dummy_spring", 1) proceed_art_spawn("af_night_star", 1) proceed_art_spawn("af_dummy_glassbeads", 1) proceed_art_spawn("af_fuzz_kolobok", 1) end end function proceed_art_spawn(section, count) local lv local level_vertexes={ l04_swamp = {lvid=370218, gvid=198} } if level.name() == "l01_dead_city" or level.name() == "l02_yantar" then lv = 200000 + math.random(-100000,100000) else lv = math.random(level_vertexes[level.name()]["lvid"]) end local gv = level_vertexes[level.name()]["gvid"] for ind = 1, count do alife():create(section, level.vertex_position(lv), lv, gv) end end -- Вызов спавна артефактов для каждого уровня function spawn_arts() local level_name = level.name() if level_name == "l04_swamp" then proceed_art_spawn("af_lil_sun", 1) end end Тут как понимаю, спавнятся артефакты. Удалил лишнее. В строке if level.name() == "l01_dead_city" or level.name() == "l02_yantar" then lv = 200000 + math.random(-100000,100000) поменял локации, но не понимаю что означает функция. function update_surge() local level_name = level.name() if (level_name ~= "l03u_agr_underground") and (level_name ~= "l08u_brainlab") and (level_name ~= "l10u_bunker") and (level_name ~= "l04u_labx18") and (level_name ~= "l12u_sarcofag") and (level_name ~= "l12u_control_monolith") and (level_name ~= "l12_stancia") and (level_name ~= "l12_stancia_2") then db.FlagEsc = 0 if level_name == "l01_escape" then if actor_in_zone(-211,-198,-132,-125,-23,-20) == 1 or -- Подвал 1 в лагере новичков actor_in_zone(-256,-246,-137,-132,-25,-20) == 1 or -- Бункер Сидора actor_in_zone(-216,-209,-133,-120,-24,-20) == 1 then -- Подвал 2 в лагере новичков db.FlagEsc = 1 end end if level_name == "l02_garbage" then if actor_in_zone(-112,-57,-6,25,-9,90) == 1 then -- Ангар на Свалке db.FlagEsc = 1 end end if level_name == "l03_agroprom" then if actor_in_zone(-198.31,-195.66,85.4,96.54,2,5.3) == 1 then -- Вагон дезертира db.FlagEsc = 1 end end if level_name == "l04_darkvalley" then if actor_in_zone(30,50,-60,-25,-4,0) == 1 then -- Тюрьма в Темной долине db.FlagEsc = 1 end end if level_name == "l05_bar" then if actor_in_zone(123,140,18,30,-6,0) == 1 or -- Бар actor_in_zone(206,213,50,68,0,4) == 1 or -- Магазин Петренко actor_in_zone(149,158,67,74,0,4) == 1 or -- Приемная Арни actor_in_zone(136,168,73,134,-22,-10) == 1 or -- Арена actor_in_zone(208,234,120,139,-6,2) == 1 then -- База Долга db.FlagEsc = 1 end end if level_name == "l06_rostok" then if actor_in_zone(-90,-87,125,151,0,6) == 1 or -- Блокпост наемников actor_in_zone(-285,-235,78,112,-7,0) == 1 then -- Тоннель Фримена db.FlagEsc = 1 end end if level_name == "l07_military" then if actor_in_zone(-27,-16,-33,-14,-9,0) == 1 then -- База Свободы db.FlagEsc = 1 end end if level_name == "l08_yantar" then if actor_in_zone(23,40,-282,-269,-16,0) == 1 or -- Бункер ученых actor_in_zone(-265,-22,-218,-6,-20,-11) == 1 then -- Кишка db.FlagEsc = 1 end end if level_name == "l10_radar" then if actor_in_zone(639,664,167,189,-45,-37) == 1 or -- Секретная база Монолита actor_in_zone(86.73,153,-27,-21.70,-10,-4.6) == 1 then -- Вход в бункер db.FlagEsc = 1 end end if level_name == "l11_pripyat" then if actor_in_zone(-18,-12,58,82,-6,-3) == 1 or -- Подземный переход actor_in_zone(167,173,58,83,-6,-3) == 1 or -- Подземный переход actor_in_zone(-16,-2,188,204,-5,0) == 1 or -- Подвал ДК actor_in_zone(-24,55,116,122,-4,0) == 1 then -- Канализация db.FlagEsc = 1 end end for k,v in pairs(ogsm_hideout.restrictor_list) do local obj = level.object_by_id(v.id) if obj and utils.npc_in_zone(db.actor, obj) then db.FlagEsc = 1 end end if db.Dead2 == 1 and db.FlagEsc == 0 then g_R_Vibros:Run() hit_actor() play_sounds() level.add_pp_effector("dead_zone.ppe", 1001, false) level.set_pp_effector_factor(1001, 0.2) end if db.FlagEsc == 1 then g_R_Vibros:Stop() end end end function update_surge() local level_name = level.name() if (level_name() ~= "l01_dead_city") and (level_name() ~= "l02_yantar") and (level_name() ~= "l03_bar") and (level_name() ~= "l05_military") and (level_name() ~= "l06_milrad") and (level_name() ~= "l07_radar") and (level_name() ~= "l08_generators") then db.FlagEsc = 0 --if level_name == "l01_escape" then -- if actor_in_zone(-211,-198,-132,-125,-23,-20) == 1 or -- Подвал 1 в лагере новичков -- actor_in_zone(-256,-246,-137,-132,-25,-20) == 1 or -- Бункер Сидора -- actor_in_zone(-216,-209,-133,-120,-24,-20) == 1 then -- Подвал 2 в лагере новичков -- db.FlagEsc = 1 -- end --end end for k,v in pairs(ogsm_hideout.restrictor_list) do local obj = level.object_by_id(v.id) if obj and utils.npc_in_zone(db.actor, obj) then db.FlagEsc = 1 end end if db.Dead2 == 1 and db.FlagEsc == 0 then g_R_Vibros:Run() hit_actor() play_sounds() level.add_pp_effector("dead_zone.ppe", 1001, false) level.set_pp_effector_factor(1001, 0.2) end if db.FlagEsc == 1 then g_R_Vibros:Stop() end end end Здесь... Наверное, зоны в которых выбросы не могут быть вызваны, тоже самое с локациями. Зоны - убрал, локации - поменял. Вот и всё. Надеюсь, вы дочитали) В игре вот такое(смотрите фото): Что не так сделал? Ссылка на файлы(оригинал и правки): https://yadi.sk/d/pWDJ8xF53aAHvJ Изменено 12 Августа 2018 пользователем Houdini_one ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
AndreySol 215 Опубликовано 13 Августа 2018 Поделиться Опубликовано 13 Августа 2018 В 12.08.2018 в 14:12, Houdini_one сказал: Можно как-то перенести из ЧН функцию которая отменяет задание? И ещё можно как-то закрыть переходы до получения инфопоршня? Как уже выше сказали, именно "отменить" нельзя, но если не принципиально - то просто провалить его, выдав\выполнив заранее прописанную в условиях задания инфо-порцию\ф-цию. "Закрыть" переход в общем не сложно - сложно сделать так, чтоб ГГ не мог пройти через отключенный переход. А то за ними обычно край локации\террейна, со всеми вытекающими... Ссылка на комментарий
Змея 240 Опубликовано 13 Августа 2018 Поделиться Опубликовано 13 Августа 2018 1 час назад, AndreySol сказал: сложно сделать так, чтоб ГГ не мог пройти через отключенный переход Телепорт в подземелье с мутантами - не? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти