Shredder 49 Опубликовано 21 Марта 2013 Поделиться Опубликовано 21 Марта 2013 (изменено) FaLLoN function give_prov_mess() if db.actor:has_info("give_mess") and db.actor:dont_has_info("test_1") then db.actor:give_game_news("Неизвестно", "Грач это Проводник! Нужно встретится в подвале Гастронома","ui_iconsTotal_lost_thing", 3000, 30000) db.actor:give_info_portion("test_1")--выдача инфопоршня end end ColR_iT, да, ты прав. Вот тут было бы хорошо иметь возможность отредактировать пост Изменено 21 Марта 2013 пользователем Shredder Ссылка на комментарий
FeLLoN 0 Опубликовано 22 Марта 2013 Поделиться Опубликовано 22 Марта 2013 Происходит вылет, при подходе к одному месту! там есть смарт и спейсрестриктор начала ( выдача квеста ) и рестриктор для квеста ( айди ), так-же это рестриктор вызывает выброс и прочее... Вот вылет лога: * Saving spawns... * Saving objects... * 556 objects are successfully saved * Game Никита - quicksave.scop is successfully saved to file 'c:\users\public\docume~1\stalke~1.-\savedgames\Никита - quicksave.scop' stack trace: 0023:0884E8B3 xrGame.dll, CDialogHolder::CDialogHolder() 0023:0884FB45 xrGame.dll, CDialogHolder::CDialogHolder() 0023:0570A5B4 lua.JIT.1.1.4.dll, lua_getinfo() 0023:0570A898 lua.JIT.1.1.4.dll, lua_getinfo() 0023:057020A5 lua.JIT.1.1.4.dll, lua_call() 0023:0570AAE8 lua.JIT.1.1.4.dll, lua_yield() 0023:030C9DC6 luabind.beta7-devel.rc4.dll, luabind::detail::pcall() [error][ 183] : Невозможно создать файл, так как он уже существует. Это вылет текущего билда... прогрузил старый! ( вчерашний.. ). Там тоже есть этот вылет! но лог немного другой. Вот он: intro_start intro_game intro_delete ::update_game_intro compiling shader particle_alphaonly compiling shader model_distort_1 compiling shader model_distort_2 * [win32]: free[2709660 K], reserved[183260 K], committed[1301320 K] * [ D3D ]: textures[374111 K] * [x-ray]: crt heap[331506 K], process heap[13922 K], game lua[10540 K], render[2876 K] * [x-ray]: economy: strings[9883 K], smem[10215 K] * Saving spawns... * Saving objects... * 614 objects are successfully saved * Game Никита - выброс.scop is successfully saved to file 'c:\users\public\docume~1\stalke~1.-\savedgames\Никита - выброс.scop' stack trace: 0023:085AE8B3 xrGame.dll, CDialogHolder::CDialogHolder() 0023:085AFB45 xrGame.dll, CDialogHolder::CDialogHolder() 0023:056CA5B4 lua.JIT.1.1.4.dll, lua_getinfo() 0023:056CA898 lua.JIT.1.1.4.dll, lua_getinfo() 0023:056C20A5 lua.JIT.1.1.4.dll, lua_call() 0023:056CAAE8 lua.JIT.1.1.4.dll, lua_yield() 0023:02F79DC6 luabind.beta7-devel.rc4.dll, luabind::detail::pcall() [error][ 8] : Недостаточно памяти для обработки команды. Из-за чего они происходят?? Мне хотяб приблизительно знать... фишка в том, что вылет происходит только в том месте! Ссылка на комментарий
Shredder 49 Опубликовано 22 Марта 2013 Поделиться Опубликовано 22 Марта 2013 Покажи чтоли логику спейс рестриктора Ссылка на комментарий
FeLLoN 0 Опубликовано 22 Марта 2013 Поделиться Опубликовано 22 Марта 2013 (изменено) Добавлю: После выброса выдается инфопоршень, вот все, что написано в логике этого поршня: Код [logic] active = sr_idle@dolg_go [sr_idle@dolg_go] on_info = {=actor_in_zone(pripyat_sr_vibros)} %+dolg_go_fmg2% sr_idle@wait_info [sr_idle@wait_info] on_info = {+dialog_prov_vse} %=start_surge% sr_idle@wait_end_surge [sr_idle@wait_end_surge] on_info = {!surge_started} %+vibros_proshel -dialog_prov_vse% sr_idle@kill_otrad [sr_idle@kill_otrad] on_info = {+vibros_proshel} %=remove_npc(pri_fmg_prov) =remove_squad(dolg_nachalo_squad)% sr_idle@nil [sr_idle@nil] Если вбежать в эту зону во время выброса ( там есть укрытие ), то вылета нет! после выброса, вылета тоже нет! но если убежать из этой зоны, а затем вернуться... вылет! и скорее всего из-за смарта... У смарта есть ексклюзивная логика 3 НПС. Суть такова, после в хода в Этот спей рестриктор ( его код выше ) выдается поршень +dolg_go_fmg2. И отряд идет на 2 смарт. После выброса этот отряд удаляется! логика НПС 3 ниже: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;Логика Главоря Долга;;;;;;;;;;;; [logic@fellon] active = walker@vstrecha suitable = {=check_npc_name(fellon)} true [walker@vstrecha] meet = meet@fellon_nach path_walk = fellon_1_walk path_look = fellon_1_look on_info = {+dolg_dialog_done} animpoint@fellon [animpoint@fellon] cover_name = pripyat_fmg1_fellon_animpoint meet = no_meet use_camp = false on_info = {+vibros_proshel} nil [meet@fellon_nach] use = self meet_state = nil mmet_state_wpn = nil victim = 8|actor victim_wpn = 8|actor ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;Логика Долга 1;;;;;;;;;;;; [logic@jora] active = walker@vstrecha2 suitable = {=check_npc_name(jora)} true [walker@vstrecha2] meet = meet@jora path_walk = jora_1_walk path_look = jora_1_look on_info = {+dolg_dialog_done} animpoint@jora [animpoint@jora] cover_name = pripyat_fmg1_jora_animpoint meet = no_meet use_camp = true on_info = {+vibros_proshel} nil [meet@jora] use = false victim = 8|actor victim_wpn = 8|actor ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;Логика Долга 2;;;;;;;;;;;; [logic@maik] active = walker@vstrecha1 suitable = {=check_npc_name(maik)} true [walker@vstrecha1] meet = meet@maik path_walk = maik_1_walk path_look = maik_1_look on_info = {+dolg_dialog_done} animpoint@maik [animpoint@maik] cover_name = pripyat_fmg1_maik_animpoint meet = no_meet use_camp = true on_info = {+vibros_proshel} nil [meet@maik] use = false victim = 8|actor victim_wpn = 8|actor Мб это из-за этого? мол смарт ищет отряд, а их нет? on_info = {+vibros_proshel} nil без этого то-же происходит вылет... Максимум подробно расписал... Заранее СПС! Это все относится к билду! то-есть ко 2 логу! или ошибки у них разные? теперь вылет в билде, такой же как и в 1 логе... вот на всякий случай лог вылета: * RM_Dump: vs : 81 * RM_Dump: ps : 83 * RM_Dump: dcl : 20 * RM_Dump: states : 78 * RM_Dump: tex_list : 1807 * RM_Dump: matrices : 0 * RM_Dump: lst_constants: 0 * RM_Dump: v_passes : 2355 * RM_Dump: v_elements: 2356 * RM_Dump: v_shaders : 1292 * GPU shading: vs(fffe0300/3.0/30), ps(ffff0300/3.0/30) * GPU vertex cache: unrecognized, 16 * NVidia MGPU: Logical(1), Physical(1) * Starting rendering as 2-GPU. *** RESET [106 ms] * MEMORY USAGE: 331713 K * End of synchronization A[1] R[1] * [win32]: free[2756080 K], reserved[178664 K], committed[1259496 K] * [ D3D ]: textures[373086 K] * [x-ray]: crt heap[331754 K], process heap[13410 K], game lua[12692 K], render[3605 K] * [x-ray]: economy: strings[9837 K], smem[10212 K] * Saving spawns... * Saving objects... * 606 objects are successfully saved * Game Никита - quicksave.scop is successfully saved to file 'c:\users\public\docume~1\stalke~1.-\savedgames\Никита - quicksave.scop' stack trace: 0023:0869E8B3 xrGame.dll, CDialogHolder::CDialogHolder() 0023:0869FB45 xrGame.dll, CDialogHolder::CDialogHolder() 0023:0679A5B4 lua.JIT.1.1.4.dll, lua_getinfo() 0023:0679A898 lua.JIT.1.1.4.dll, lua_getinfo() 0023:067920A5 lua.JIT.1.1.4.dll, lua_call() 0023:0679AAE8 lua.JIT.1.1.4.dll, lua_yield() 0023:031C9DC6 luabind.beta7-devel.rc4.dll, luabind::detail::pcall() [error][ 183] : Невозможно создать файл, так как он уже существует. Изменено 22 Марта 2013 пользователем FeLLoN Ссылка на комментарий
Priboj37 324 Опубликовано 22 Марта 2013 Поделиться Опубликовано 22 Марта 2013 Двa aвтосeйвa? Ссылка на комментарий
Shredder 49 Опубликовано 22 Марта 2013 Поделиться Опубликовано 22 Марта 2013 FeLLoN, когда происходит вылет, отряд ещё жив? Ссылка на комментарий
FeLLoN 0 Опубликовано 22 Марта 2013 Поделиться Опубликовано 22 Марта 2013 (изменено) FeLLoN, когда происходит вылет, отряд ещё жив? они удаляются! =remove_squad(их айди) в логике Спейс Рестриктора!Без ремув Сквада вылет из 2 лога первого сообщения, после ремов сквад вылет из 1 лога 1сообщения Не нужно цитировать предыдущие сообщения целиком! ColR_iT Изменено 22 Марта 2013 пользователем ColR_iT Ссылка на комментарий
Старлей 88 Опубликовано 22 Марта 2013 Поделиться Опубликовано 22 Марта 2013 Не встречал таких вылетов, но попробуй начать с простого - то есть в логике рестриктора или НПС сначала один элемент, потом два, и так далее, лично мне помогает отслеживать вылеты, благо новую игру начинать не надо. Ray Of Hope - кооператив сталкера OldStory Ссылка на комментарий
FeLLoN 0 Опубликовано 22 Марта 2013 Поделиться Опубликовано 22 Марта 2013 (изменено) Вопрос по вылету закрыт! Причина была следующая ( скорее всего так, но вылета нет! ) Рядом был смарт, там было 2 отряда ( симуляционныйх ). У них не было таргет смарт, там были нпс_рандом. Ну короч сим отряд. У того смарта где они были, не-было укрытия от выброса. У всех смартах Откл была симуляция, кроме 1! Там симуляция разрешалась, после окончания выброса. Так-вот после выброса, когда я шел на смарт где были эти отряды, там было пусто! выброс их убил.. или не знаю что! и видимо, эти сим отряды должны были идти на тот смарт ( возле которого был вылет), а их то не-было.. ну короч вылет пропал, после удаления этих отрядов из simulations.ltx Изменено 22 Марта 2013 пользователем FeLLoN Ссылка на комментарий
Shredder 49 Опубликовано 23 Марта 2013 Поделиться Опубликовано 23 Марта 2013 ... эти сим отряды должны были идти на тот смарт (возле которого был вылет), а их то не-было...Спасибо, поржал. Когда сквад погибает, он уже не участвует в симуляции и не должен никуда идти. Скорее всего причина вылета не в этом, и ты ещё с ней столкнешься... 1 Ссылка на комментарий
Сталкер Лом 356 Опубликовано 23 Марта 2013 Поделиться Опубликовано 23 Марта 2013 Здравствуйте. Я вот тут полазил по скриптам и увидел интересные строки в файле se_zones.script : class "se_zone_anom" (cse_anomalous_zone)function se_zone_anom:__init (section) super (section)self.m_registred = falseendfunction se_zone_anom:on_register()cse_anomalous_zone.on_register(self)-- Проверяем кастомдату обьекта на наличие стори айди.story_objects.check_spawn_ini_for_story_id(self)self.m_registred = trueself.artefact_spawn_idle = 60*60*1000*utils.cfg_get_number(system_ini(), self:section_name(), "artefact_spawn_idle", self, false, 24) --Собственно меня заинтересовали вот эти строки (эта и ниже)self.artefact_spawn_rnd = utils.cfg_get_number(system_ini(), self:section_name(), "artefact_spawn_rnd", self, false, 100)if not level_anomaly.second_run and level_anomaly.check_on_off_mode(self) == false and not string.find(self:name(),"mine_field") thentmp_anomalies[table.getn(tmp_anomalies)+1] = self.idendend Как я понял, здесь высчитывается вероятность заспавнить артефакт, но используются ли эти строки игрой? В биндерах stalker и anomaly_zone упоминаний этой функции я не видел, но может они как по-иному используются, вроде как скрипты по работе с игровыми классами... А то не могу понять, респавнятся ли артефакты в аномалиях в ТЧ и ЧН и, если да, то по какому принципу: двигателем или скриптами. За ответ заранее спасибо. Работы на Artstation - https://www.artstation.com/artist/stalker_lom Ссылка на комментарий
Shredder 49 Опубликовано 23 Марта 2013 Поделиться Опубликовано 23 Марта 2013 Возможно, когда-то этот код использовался, может быть даже в ТЧ или ЧН, но в ЗП это рудимент, т.к. у se_zone_anom метод update не вызывается. Ссылка на комментарий
Shredder 49 Опубликовано 24 Марта 2013 Поделиться Опубликовано 24 Марта 2013 Возможно ли как-то зафиксировать онлайновый объект (конкретно артефакт), чтобы его невозможно было сдвинуть с места. Проблема в чём: сделал для ЗП динамические аномалии (на базе АМК), пытаюсь сделать детекторы аномалий. Для этого в каждую такую аномалию спавню артефакт, в настройках детектора ставлю af_vis_radius = 0. Всё клёво, но есть один момент. Проблема с аномалией "воронка". При срабатывании она выбрасывает этот артефакт. Как то можно решить эту проблему? Порыскав в теме "Справочник по функциям и классам" нашёл, что мне нужно. function af_anomaly_binder:update(delta) local ph_object = self.object:get_physics_shell():get_element_by_order(0) if not ph_object:is_fixed() then ph_object:fix() end end Всё прекрасно работает, воронка артефакт не выбрасывает Ссылка на комментарий
karonbaron 1 Опубликовано 25 Марта 2013 Поделиться Опубликовано 25 Марта 2013 (изменено) При заселении локации столкнулся с такой проблемой. Есть база группировки, открытая (не такая, как Скадовск или Янов). Если ГГ начинает с ней (базой) войну, то нужно, чтобы прилетел вертолет и высадил (условно) сквад поддержки. В ЧН скриптах есть хорошая функция для логики is_smart_in_combat. В ЗП я ее не нашел. Вот ее function is_smart_in_combat (actor, npc, p) if p == nil then abort("Wrong parameter!!!") endlocal sim_board = sim_board.get_sim_board()for k,v in pairs (p) dolocal smart = sim_board:get_smart_by_name(v)local squads = sim_board.smarts[smart.id].squadsfor kk,vv in pairs (squads) dolocal squad_stage = smart.combat_manager:get_squad_stage(vv)if squad_stage == "combat" or squad_stage == "defence" thenreturn trueendendendreturn falseend Я бы хотел с дополнениями вызывать эту функцию для смарта базы из логики спейс-рестриктора. Проблема в том, что для ее регистрации нужно вносить правки в множество файлов. Саму функцию в xr_conditions, а вспомогательные элементы (например, главный get_squad_stage зарегистрирован в sim_combat, которого в ЗП тоже нет) в другие, _g.script и т.п.. Попробовать можно все это прописать, но я боюсь, что будут конфликты с другими функциями и классами. Посоветуйте, пожалуйста, что делать? Изменено 25 Марта 2013 пользователем karonbaron Ссылка на комментарий
Старлей 88 Опубликовано 25 Марта 2013 Поделиться Опубликовано 25 Марта 2013 karonbaron Немного поправлю: чтобы сделать как ты хочешь, неплохо бы это добавить: on_info = {=gulag_enemy_actor(имя_смарта) =is_smart_in_combat(имя_смарта)} схема Так больше шансов, что вертолет прилетит когда надо, а не когда на базу нападет стая собак А насчет твоей проблемы подсказать вряд ли смогу, т.к. сам на ЗП не работаю. И сейчас у меня возник вопрос а есть ли вообще в ЗП такое состояние у сквада, как "defence", по-моему его просто урезали, как и много еще чего. P.S. И насчет "combat" тоже непонятно у сквада предположим есть такое состояние, а вот у смарта? Вот и получается вопросов больше чем ответов... Ray Of Hope - кооператив сталкера OldStory Ссылка на комментарий
Etwas Anderer 0 Опубликовано 25 Марта 2013 Поделиться Опубликовано 25 Марта 2013 Приветствую, сталкеры. Подскажите пожалуйста, возможно ли как-нибудь встроить отображение "hud_crosshair_dist"(дистанция до цели) в оптику? Ссылка на комментарий
karonbaron 1 Опубликовано 26 Марта 2013 Поделиться Опубликовано 26 Марта 2013 Старлей, благодарю, что откликнулся. Не стал я связываться со скриптами, тем более что в этом случае они сильно переплетаются. Проблему решил по-другому: завел счетчик на смерть неписей, прописал его в работе, т.е. если гасим определенное количество, прилетает вертоль и высаживает десант. Вроде как база несет потери, нужна подмога... Сработало. Ссылка на комментарий
Earth2Space 305 Опубликовано 28 Марта 2013 Поделиться Опубликовано 28 Марта 2013 (изменено) Как рассчитывается заражение токсинами в SGM 2.2? Параметр eat_toxicity, допусти, равен 0.05. В игре прибавляется 3% А если 0.1, то 5%... Как так? Есть какие-то еще факторы, влияющие на это?Параметр sprint_k отвечает, как я понял, за скорость изменения выносливости при спринте с перегрузом, так? Тогда почему, когда я ставлю, например, 20 (дефолт 80) - результата нет, а если 1 - ГГ не устает.С первым вопросом к авторам мода.ColR_iT Изменено 28 Марта 2013 пользователем ColR_iT Ссылка на комментарий
Старлей 88 Опубликовано 28 Марта 2013 Поделиться Опубликовано 28 Марта 2013 Earth2Space Процитирую кусок actor.ltx sprint_k = 75;150;185;180;200; ;коэффициент на "sprint" бег (умножается walk_power, walk_weight_power) По-моему все ясно. Ну а уж если нет, вот выдержка из actor.ltx с комментариями от разработчиков игры: ;;;;;;;; ;actor_condition only jump_power = 0.01 ;умешьшение силы с прыжком без учета веса ноши jump_weight_power = 0.05 ;0.045 ;умешьшение силы с прыжком с учетом веса ноши, для максимального допустимого веса overweight_jump_k = 5;10 ;10 ;коэффициент влияние перегрузки прыжок с весом (умножается на jump_weight_power) stand_power = -0.005 walk_power = 0.00001 ;умешьшение силы за секнду во время ходьбы без учета веса ноши walk_weight_power = 0.00005; ;умешьшение силы за секнду во время ходьбы с учетом веса ноши, для максимального допустимого веса overweight_walk_k = 5;9 ;10 ;коэффициент влияние перегрузки ноши (умножается на walk_weight_power) accel_k = 3;5 ;коэффициент на бег (умножается walk_power, walk_weight_power) sprint_k = 75;150;185;180;200; ;коэффициент на "sprint" бег (умножается walk_power, walk_weight_power) Ray Of Hope - кооператив сталкера OldStory Ссылка на комментарий
pAnTeL 3 Опубликовано 28 Марта 2013 Поделиться Опубликовано 28 Марта 2013 (изменено) Всем привет. Расскажу свою проблемку вкратце. Установлена ЗП+ Misery mod. Так вот: после каждой перезагрузки сейва, ассортимент товара у торговцев полностью обновляется. Как-то это не хардкорно, не так-ли? Можно ли сделать так, чтобы ассортимент обновлялся не после перезагрузки сейва, а, к примеру, через определённый промежуток времени в игре? Изменено 28 Марта 2013 пользователем pAnTeL Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти