Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 (изменено) Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском.Возможно, ответ на Ваш вопрос уже есть.Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. Изменено 23 Февраля 2016 пользователем warwer 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Это популярное сообщение. naxac 2 404 Опубликовано 5 Октября 2023 Это популярное сообщение. Поделиться Опубликовано 5 Октября 2023 7 часов назад, Hind сказал: какие параметры отвечают за "падение" сталкера в состояние тяжелого ранения За это отвечает логика, а конкретно - xr_wounded.script. 7 часов назад, Hind сказал: Как отслеживать "убитых главным героем" неписей? Смотри xr_statistic.script. 1 4 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
shahvkit 3 469 Опубликовано 5 Октября 2023 Поделиться Опубликовано 5 Октября 2023 (изменено) 11 часов назад, Hind сказал: Как сделать так, чтобы он стрелял в случае когда мы ему хоть чуть чуть показываемся? Можно подкорректировать другими параметрами. always_visible_distance = 0.1 - коэффициент зрения, при котором NPC видит при любых условиях, независимо от освещённости и прочих параметров. В данном случае значение составляет 0.1, что говорит о том, что NPC имеет абсолютное зрение в радиусе одного метра. Поставь к примеру 10.0 и в радиусе 100 метров НПС будут стрелять по тебе так, что мало не покажется. velocity_factor - фактор ускорения. Чем выше значение, тем быстрее нас обнаружит NPC при нашем движении. При высоком значении достаточно чуть шелохнуться, что бы быть обнаруженным, соответственно при наименьшем значении, мы останемся незамеченными даже если будем бегать. Ссылка на пояснения - https://modfaq.ru/Изменение_зрения_NPC Там только пару параметров выставили неправильно. luminocity_factor и transparency_threshold должны быть меньше единицы. Поставь 0.75, это оптимальное значение. p.s. Менять параметры нужно: По отношению к игроку (главному герою) в actor.ltx По отношению НПС друг к другу в m_stalker.ltx и так далее. Изменено 5 Октября 2023 пользователем shahvkit 1 3 Ссылка на комментарий
Modz 61 Опубликовано 5 Октября 2023 Поделиться Опубликовано 5 Октября 2023 (изменено) @Hind дальность видимости и угол обзора в конфиге нпс: 160 / 110 Нпс будут стрелять всегда и везде и даже через стены Изменено 5 Октября 2023 пользователем Modz Скрытый текст OGSMX ТЧ Final 1.0006 (yandex) OGSMX ТЧ Final 1.0006 (mail) Тема OGSM 2.4.3 с новым балансом Ссылка на комментарий
DarkSnowder 897 Опубликовано 5 Октября 2023 Поделиться Опубликовано 5 Октября 2023 @Капрал Хикс тут только в 3DMax-се нужно делать правку - ибо кривая развёртка текстуры. 1 Лучше сделать мод с 0, чем пытаться залатать багованный. Ссылка на комментарий
Hind 29 Опубликовано 5 Октября 2023 Поделиться Опубликовано 5 Октября 2023 Народ, подскажите пожалуйста по такой теме... Помните, в билдах были "сейфзоны"? Есть у меня такое желание, чтобы сохраняться можно было только в них... Подскажите, какие файлы отвечают за то, чтобы отслеживалось нахождение игрока в этой сейфзоне, и выведение на ХУД иконки домика Ещё вопросы: Какое обозначение имеет "сытость" главного героя в скриптах? Какое обозначение имеет вес главного героя в скриптах? Как можно отследить "открытие" пда? И как его "закрывать" через скрипт? Hind Upgrade Mod Ссылка на комментарий
mole venomous 3 242 Опубликовано 5 Октября 2023 Поделиться Опубликовано 5 Октября 2023 (изменено) 1 час назад, Hind сказал: Какое обозначение имеет вес главного героя в скриптах? В ТЧ никак. Это в ОГСР (возвращает суммарный вес инвентарных предметов) db.actor:get_inventory_weight() 1 час назад, Hind сказал: "сытость" главного героя в скриптах db.actor.satiety 1 час назад, Hind сказал: в билдах были "сейфзоны" Я, видимо, о них ничего не знаю. Но знаю о рестрикторах (видимо, там именно они). При входе ГГ в него, либо при выходе, может что то происходит (а также разрешаться/запрещаться). Если говорить о сохранениях, тут нужно резать возможности сохраняться штатными способами. Это лучше в движок. Но можно и на скриптах, блокируя кнопку "Сохранить игру" в главном меню. Квиксейв также анбиндится, а обратный бинд квиксейва и сейв через консоль блокируются в скриптах (блок опять же средствами ОГСР). ГГ вошёл в зону, кнопка "Сохранить игру" доступна, сохранились, идём дальше. Это, вроде как, простой вариант. Но если нет базовых навыков, просто не будет. Ну и спавн этих самых рестрикторов, конечно. Изменено 5 Октября 2023 пользователем mole venomous 1 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Hind 29 Опубликовано 5 Октября 2023 Поделиться Опубликовано 5 Октября 2023 Подскажите, что не так с кодом, вылетает: Скрытый текст function overdose() news_manager.send_tip(db.actor, "%c[0,255,0,0]Передозировка медикаментом!", nil, nil, 30000) level.add_cam_effector("camera_effects\\earthquake.anm", 999, false, "") level.add_pp_effector("total_recall.ppe", 2008, false) end function medkit_use(tip) local checker = 1 amk.load_variable(medkit_uses, 0) if tip = medkit and has_alife_info("medkit_use") and db.actor.health < 1.0 then if checker <= 10 then db.actor.health = 0.004 use_medkit_timer() amk.save_variable(medkit_uses, +1) elseif checker >= 11 then db.actor.health = 0.002 use_medkit_timer() amk.save_variable(medkit_uses, +2) elseif checker >= 21 then use_medkit_timer() db.actor.health = 0.001 amk.save_variable(medkit_uses, +3) end elseif type = medkit and has_alife_info("medkit_use") and db.actor.health = 1.0 then overdose() end end function medkit_infoportion() db.actor:disable_info_portion("medkit_use") end function use_medkit_timer() local iTimer = time_global() + 7000 local function check_timer() return time_global() > iTimer end level.add_call(check_timer, medkit_infoportion) end Помимо этого, подскажите, как называется в скриптах параметр, который отвечает за "затягивание ран" (устранения кровотечения) ? Hind Upgrade Mod Ссылка на комментарий
Купер 2 677 Опубликовано 5 Октября 2023 Поделиться Опубликовано 5 Октября 2023 1 час назад, mole venomous сказал: db.actor:get_inventory_weight() "Старичок" X-ray Ext. 1 час назад, mole venomous сказал: db.actor.satiety Он же. Откуда и позаимствовано. 2 часа назад, Hind сказал: Есть у меня такое желание, чтобы сохраняться можно было только в них В принципе, здесь всё верно озвучено. Только, естественно, никаких "специфических средств OGSR" при этом не требуется. Достаточно наглядно и несложно реализовано, например, здесь. Правда, платформа другая и потребуется осмысленная адаптация. По коду: откуда позаимствовано ? Поставь какой-нибудь lua-чекер для проверки синтаксиса скриптов. Например, от @Charsi (есть в профиле). Очень сильно поможет, особенно, на первых порах. 1 1 1 Ссылка на комментарий
mole venomous 3 242 Опубликовано 5 Октября 2023 Поделиться Опубликовано 5 Октября 2023 4 минуты назад, Купер сказал: "Старичок" X-ray Ext Если принципиально важно указывать, откуда портировано или важна хронология, то несомненно именно так. Если причины иные, не думаю, что этим стоит забивать юзеру голову. 2 Здесь могла быть ваша реклама. Ссылка на комментарий
Капрал Хикс 497 Опубликовано 5 Октября 2023 Поделиться Опубликовано 5 Октября 2023 6 часов назад, DarkSnowder сказал: ибо кривая развёртка текстуры. Что ж, тогда прошу у неравнодушных снять точные координаты этого окошка, чтобы занавесить его чем-то вроде картины. Ссылка на комментарий
Hind 29 Опубликовано 5 Октября 2023 Поделиться Опубликовано 5 Октября 2023 @Купер Сам писал) Ну я разобрался с причиной вылетов, оказалось, неверно обьявлял db.actor.health, спасибо) Hind Upgrade Mod Ссылка на комментарий
Modz 61 Опубликовано 5 Октября 2023 Поделиться Опубликовано 5 Октября 2023 (изменено) Если игра виснет намертво без вылета (в диспетчере "Не отвечает"), но вылета при этом нет, как найти в чем проблема? Происходит в одном и том же участке локации, если приблизится ближе чем на 50 метров До определенного момента игры эта часть локации отлично работает, но позже происходит зависание Изменено 5 Октября 2023 пользователем Modz Скрытый текст OGSMX ТЧ Final 1.0006 (yandex) OGSMX ТЧ Final 1.0006 (mail) Тема OGSM 2.4.3 с новым балансом Ссылка на комментарий
CiberZold 141 Опубликовано 6 Октября 2023 Поделиться Опубликовано 6 Октября 2023 17 часов назад, Modz сказал: Нпс будут стрелять всегда и везде и даже через стены задача то была не сделать ботов-читеров, а сделать быстрее скорость реакции и чтоб попадали по быстро бегущему игроку, а для этого только править движок или использовать движок ЗП) Добавлено Купер, 6 Октября 2023 Опять "замечательный" движок ЗП в теме про ТЧ? Заканчиваем флуд. Здесь описаны параметры, с помощью которых это делается. И они вполне себе адекватно настраиваются. Ссылка на комментарий
Hind 29 Опубликовано 6 Октября 2023 Поделиться Опубликовано 6 Октября 2023 (изменено) Скрытый текст function health_values() if has_alife_info("medkit_use") then if amk.load_variable("medkit_uses",0) < 10 then -- первые 10 использований db.actor.health = 0.0005 elseif amk.load_variable("medkit_uses",0) > 10 then -- с 10 использования эффективность теряется db.actor.health = 0.0003 elseif amk.load_variable("medkit_uses",0) > 20 then -- с 20 и выше использования эффективность минимальная db.actor.health = 0.0001 end end if has_alife_info("medkit_army_use") then if amk.load_variable("medkit_uses",0) < 10 then -- первые 10 использований db.actor.health = 0.0006 elseif amk.load_variable("medkit_uses",0) > 10 then -- с 10 использования эффективность теряется db.actor.health = 0.0005 elseif amk.load_variable("medkit_uses",0) > 20 then -- с 20 и выше использования эффективность минимальная db.actor.health = 0.0002 end end if has_alife_info("medkit_science_use") then if amk.load_variable("medkit_uses",0) < 10 then -- первые 10 использований db.actor.health = 0.0009 db.actor.radiation = - 0.00004 elseif amk.load_variable("medkit_uses",0) > 10 then -- с 10 использования эффективность теряется db.actor.health = 0.0007 db.actor.radiation = - 0.00002 elseif amk.load_variable("medkit_uses",0) > 20 then -- с 20 и выше использования эффективность минимальная db.actor.health = 0.0004 db.actor.radiation = - 0.0001 end end end function overdose() news_manager.send_tip(db.actor, "%c[255,255,128,128]Передозировка медикаментом!", nil, nil, 30000) level.add_cam_effector("camera_effects\\earthquake.anm", 999, false, "") level.add_pp_effector("total_recall.ppe", 2008, false) end function medkit_use(tip) if tip == medkit and db.actor.health < 1.0 then use_medkit_timer() db.actor:give_info_portion("medkit_use") amk.save_variable("medkit_uses", amk.load_variable("medkit_uses",0)+3) end if tip == medkit_army and db.actor.health < 1.0 then use_medkit_timer() db.actor:give_info_portion("medkit_army_use") amk.save_variable("medkit_uses", amk.load_variable("medkit_uses",0)+2) end if tip == medkit_science and db.actor.health < 1.0 then use_medkit_timer() db.actor:give_info_portion("medkit_science_use") amk.save_variable("medkit_uses", amk.load_variable("medkit_uses",0)+1) end if db.actor.health >= 1.0 then overdose() end end function medkit_infoportion() if has_alife_info("medkit_use") then db.actor:disable_info_portion("medkit_use") elseif has_alife_info("medkit_army_use") then db.actor:disable_info_portion("medkit_army_use") elseif has_alife_info("medkit_science_use") then db.actor:disable_info_portion("medkit_science_use") end end function use_medkit_timer() local iTimer = time_global() + 3000 local function check_timer() return time_global() > iTimer end level.add_call(check_timer, medkit_infoportion) end function infection_visual_effect() local hud = get_hud() if has_alife_info("infection") then hud:AddCustomStatic("morphin_need", true) elseif db.actor:dont_has_info("infection") then hud:RemoveCustomStatic("morphin_need", true) end end -- amk.load_variable("medkit_uses",0) function infection_start() amk.save_variable("infection", amk.load_variable("infection",0)+0.00001) news_manager.send_tip(db.actor, "%c[255,255,128,128]Заражение инфекцией!", nil, nil, 30000) -- soundtrack.infection() db.actor:give_info_portion("infection") end function infection_update() if has_alife_info("infection") then amk.save_variable("infection", amk.load_variable("infection",0)+0.00002) infection_visual_effect() end if amk.load_variable("infection",0) < 1 then news_manager.send_tip(db.actor, "%c[255,255,128,128]Заражение инфекцией!", nil, nil, 30000) -- soundtrack.infection() end if amk.load_variable("infection",0) > 1 then -- soundtrack.infection() news_manager.send_tip(db.actor, "%c[255,255,128,128]Заражение инфекцией!", nil, nil, 30000) end if amk.load_variable("infection",0) > 10 then news_manager.send_tip(db.actor, "%c[255,255,128,128]Заражение инфекцией!", nil, nil, 30000) -- soundtrack.infection() end if amk.load_variable("infection",0) > 20 then news_manager.send_tip(db.actor, "%c[255,255,128,128]Заражение инфекцией!", nil, nil, 30000) -- soundtrack.infection() end end Подскажите, что здесь может вызывать вылет? Ума не приложу... Чекер говорит что всё ок Скрипт починил (дело оказалось вообще в bind_Stalker, 2 буковки местами перепутал, а столько гемора ) Теперь ещё вопрос: в немодифицированном движке как нибудь можно оформить "ограничение" здоровья ГГ через скрипт? Разобрался, пошёл таким путём: if db.actor.health > 0.5 then db.actor.health = - 0.1 end Расшифруйте, мне, пожалуйста эту строчку кода: function actor_binder:hit_callback(obj, amount, local_direction, who, bone_index) (Что есть obj, и who - больше всего интересует). Хочу сделать так, чтобы при хите от монстра (то есть hit.wound) в организм ГГ заносилась инфекция... Сам скрипт с инфекцией и её влиянием сделан - теперь осталось доделать "доставщик" инфекции до гг Изменено 6 Октября 2023 пользователем Hind Устранение проблемы Hind Upgrade Mod Ссылка на комментарий
Norman Eisenherz 276 Опубликовано 6 Октября 2023 Поделиться Опубликовано 6 Октября 2023 Аргументы: пострадавший, значение урона, направление (вектор), нападающий, номер задетой кости на модели. Тип внешнего урона определить невозможно, но для описанного случай достаточно проверки if IsMonster(who) then (инфекция) – по крайней мере, при базовых значениях clsid мутантов. Проблема в том, что в оригинале событие hit для ГГ не обсчитывается. Можно через callback.sound + snd_type == monster_injure в [bind_monster.script], но там придется как-то разбирать, кто слышит свою атаку по ГГ, а кто просто мимокрокодил. 1 2 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Hind 29 Опубликовано 6 Октября 2023 Поделиться Опубликовано 6 Октября 2023 Решил я значит, сделать такую систему, что через каждую минуту, при наличии инфопоршня "infection" (т.е. при наличии заразы у гг), будет происходить какое то действие. Пока в файлах я оставил плейсхолдер: каждую минуту гг кашляет и экран раздваивается. по итогу: ничего не происходит, вообще ничего, и так ждал, и эдак, пихал этот таймер в использование аптечки, всё равно никак.. Помогите!) Затронутые файлы: HUM_realsim.script, amk.script Скрытый текст function infection_update() infection_visual_effect() if has_alife_info("infection") then amk.save_variable("infection", amk.load_variable("infection",0)+0.6) if db.actor:dont_has_info("infection_cycle_started") then db.actor:give_info_portion("infection_cycle_started") amk.start_timer(infection_timer,60,inf) end if amk.load_variable("infection",0) >= 100 and amk.load_variable("infection",0) < 100000 then if db.actor.health > 0.8 then db.actor.health = - 0.1 elseif db.actor.power > 0.8 then db.actor.power = - 0.1 end end if amk.load_variable("infection",0) >= 100000 and amk.load_variable("infection",0) < 200000 then if db.actor.health > 0.5 then db.actor.health = - 0.1 elseif db.actor.power > 0.5 then db.actor.power = - 0.1 end end if amk.load_variable("infection",0) >= 200000 then level.add_pp_effector("snd_shock.ppe", 100, false) if db.actor.health > 0.3 then db.actor.health = - 0.1 elseif db.actor.power > 0.3 then db.actor.power = - 0.1 end end elseif db.actor:dont_has_info("infection") then db.actor:disable_info_portion("infection_cycle_started") end end -- Ниже зацикленный таймер кашля function cycle_cough() if has_alife_info("infection") soundtrack.infection() level.add_pp_effector("total_recall.ppe", 2008, false) amk.start_timer(infection_timer,60,inf) end end Скрытый текст function __do_timer_action(select_string,params_string) local a if select_string=="slp" then sleep_manager.test_for_need_sleep() end if select_string=="inf" then HUM_realism.cycle_cough() end if select_string=="nrg" then sleep_manager.test_for_need_sleep_nrg(params_string) end if select_string=="mtr" then sleep_manager.test_for_need_sleep_matras(params_string) end if select_string=="men" then del_variable("smn") end if select_string=="rfx" then ogsm_debug.radar_fix() end if select_string=="otf" then a = level.object_by_id(tonumber(params_string)) if a ~= nil then a:set_condition((math.random(25)+40)/100) end end if select_string=="rsp" then local spawn_period ogsm_respawn.level_spawn() if ogsm_options.t_spawn < 2 then spawn_period = 2 else spawn_period = ogsm_options.t_spawn end g_start_timer("rsp", 0, spawn_period + math.random(-1,1), 0) end ====== Хотел сделать противогаз, но технически он будет артефактом (для секции с защитными свойствами арта). Код следующий: Скрытый текст [gp5]:af_base class = ARTEFACT $prefetch = 64 $spawn = "artifacts\gp5" artefact_activation_seq = af_activation_gravi bleeding_restore_speed = 0 cform = skeleton cost = 30000 description = enc_zone_artifact_gp5 GroupControlSection = spawn_group health_restore_speed = 0.0 hit_absorbation_sect = gp5_absorbation inv_grid_x = 13 inv_grid_y = 27 inv_name = gp5 inv_name_short = gp5 inv_weight = 0.5 jump_height = .0 lights_enabled = false power_restore_speed = 0.0 radiation_restore_speed = 0.0 satiety_restore_speed = 0.0 visual = equipments\item_gasmask1.ogf [gp5_absorbation] burn_immunity = 1.0 strike_immunity = 1.0 shock_immunity = 1.0 wound_immunity = 1.0 radiation_immunity = 0.7 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 1.0 fire_wound_immunity = 1.0 Написал спавн при начале новой игры - и игра вылетает. Лог: Скрытый текст [error]Expression : no_assert [error]Function : CXML_IdToIndex<class CInfoPortion>::GetById [error]File : e:\stalker\sources\trunk\xr_3da\xrgame\xml_str_id_loader.h [error]Line : 112 [error]Description : item not found, id [error]Arguments : gp5_info При чем хоть убейте - я весь конфиг перерыл, но не нашел ни одного упоминания что игра требует эту инфу. Помогите! Hind Upgrade Mod Ссылка на комментарий
Hind 29 Опубликовано 7 Октября 2023 Поделиться Опубликовано 7 Октября 2023 Разробрался, просто сделав инфопоршн... И добавив артикль на описание Подскажите, из-за чего может быть сломан ход времени? То есть, рр-р-раз, и по щучьему велению - время остановилось, и больше не пойдет. Hind Upgrade Mod Ссылка на комментарий
BillGoldberg 25 Опубликовано 9 Октября 2023 Поделиться Опубликовано 9 Октября 2023 Ни как не могу найти ответ на вылеты ERROR:_try_switch_to_another_section():_error_in_implementation_of_scheme_'mob_trader':_actor_is_nil ***__%s_--_State:_%d_--_Total_population:_%d/%d_--_Non_exclusive_population:_%d/%d Объединённый пак 2.2 + сборка Злобного читера 8.0 Ссылка на комментарий
Colder 12 Опубликовано 10 Октября 2023 Поделиться Опубликовано 10 Октября 2023 Всем ку. Подскажите можно ли в таск добавлять еду, медикаменты? Пробывал добавить волку квест на поиски бинта задания нет. Как только поменял бинт на пм, задание появилось. Есть ли какие правки и где можно посмотреть? Ссылка на комментарий
imcrazyhoudini 188 Опубликовано 10 Октября 2023 Поделиться Опубликовано 10 Октября 2023 @Colder имеется ввиду циклический квест? ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти