k01jan 812 Опубликовано 28 Марта 2014 , и как с ней бороться? Поделиться этим сообщением Ссылка на сообщение
k01jan 812 Опубликовано 22 Апреля 2014 (изменено) Столкнулся с проблемой: при удалении с помощью alife():release(corps,true) трупа - в логе: "- Critical: SMapLocation binded to non-existent object id=<ИД_NPC>" (в консоли строки зелёного цвета).Гугл пугает: "сеёфгейм повреждён", "игра уничтожила труп, но не очистила точку на карте, привязанную к нему".Озадачился, занёс удаляемые трупы в таблицу (по примеру уборщика NLC sak_off_corpses.script) и повесил проверку таблицы и удаление из неё на апдейт актора. С тем же эффектом. Всё удаляется, но ругается в лог. Подскажите, как корректно удалять трупаки? Зачем трогать биндер актора, если проблема в чем-то, привязанном к конкретному трупу ? Может быть просто оставить этот труп в покое ? dc Изменено 22 Апреля 2014 пользователем Dennis_Chikin Поделиться этим сообщением Ссылка на сообщение
k01jan 812 Опубликовано 22 Апреля 2014 Процесс удаление трупов NPC инициируется из motivator_binder:death_callback.@mumie, в каком смысле "оживление"? Перехватывать "смерть" неписей в дэт-калбэке мотиватора, добавлять им здоровья и удалять чуть-живых?Ерунда какая-то получается... Поделиться этим сообщением Ссылка на сообщение
k01jan 812 Опубликовано 22 Апреля 2014 (изменено) О-о.. Вот оно как обернулось... А я ж всего лишь помочь просил...Ну, что ж, ладно.. 1) dc - "не трогать", к сожалению, не получится. Труп не единичный, не квестовый - и вообще, любой. Проблема не привязана к конкретному трупу. При удалении поголовно всех трупов такая штука происходит. Биндер (надо же, меня понимают..) трогать пришлось, т.к мотиватор лишь ловит смерти неписей и вызывает скрипт, а он часто не успевает их обработать. Например, если гибнут массово (граната, яростная перестрелка и т.п.). Поэтому - таблица (=очередь на обработку), которая из биндера на апдэйте актора проверяется.2) @Dennis_Chikin, я Вас заочно (лишь по работам для НС, к моему глубочайшему сожалению) знаю и искренне уважаю.. Но палку-то зачем перегибать?"какой death_callback из из какого апдейта биндера атора" - ИМХО, не стоит Вам слишком много думать. Особенно - за других. Ведь это - всего лишь Ваши домыслы. Видимо, ввёл в заблуждение dc фразой "Зачем трогать биндер актора". Вот не знаю, к чему это он?Я писал недвусмысленно: "при удалении с помощью alife():release(corps,true) трупа - в логе: "- Critical: SMapLocation binded to non-existent object id=<ИД_NPC>""Стандартная для модов функция, удаление работает. Только вот лог этот... О том и спросил.Что именно Вам здесь непонятно?Раскину "на пальцах": скрипт успешно удаляет трупы NPC. При этом в логе: "- Critical: SMapLocation binded to non-existent object id=<удалённого_трупа>".Такая терминология Вам доступна?По версии - действительно, я косяк упорол - ТЧ6 (кстати, спасибо за косвенную подсказку - на 4 и ЗП не помню таких логов, или - просто не замечал. Проверю.)P.S.: Я бы мог Вам помочь читать. И не только шапку.3) Мои попытки всё исправить - организация очереди удаления в виде динамической таблицы с обработкой её из из bind_stalker.script из ф-и actor_binder:update(delta) результата не дали.Попробую предварительно увести усопших в оффлан.Зачем бан ? Я изложил общее впечатление от попытки прочитать за один раз всю страницу, не являсь автором этих сообщений. Получилось - то, что получилось. Самим авторам - разумеется, все понятно. По крайней мере в своих сообщениях. Иначе было бы уже совсем странно.И некоторые меры для облегчения прочтения действительно нобходимы:Версия, моды поверх, кого именно удаляли, как и когда удаляли, код, откуда вызывали.Ну или если не удаляли, а что другое делали - опять же, версия, код, что видим, где что пишет странного, если пишет.Теперь - по делу:В bind_stalker.script из ф-и actor_binder:update(delta) вызывается скрипт, удаляющий трупы, удовлетворяющие неким условиям. Схема работает, вот только в логе после каждого удалённого NPC появляется запись вида: "- Critical: SMapLocation binded to non-existent object id=номер_его_ID'а".Как бороть? Ну так код где ? По тому как действительно странно в высшей степени. То, что не стоит удалять живых неписей - это в общем-то неоднократно обсуждалось, в том числе и прямо здесь. По тому что очень много где хранятся game_object, и на внезапное удаление объекта серверного не проверяются. Для трупов - в принципе должно быть проще, но вот я же буквально пару страниц назад здесь жаловался на то, что и трупы в некоторых случаях тоже пытаются "жить активной жизнью". Так что - да, в оффлайн их сначала, и только когда попытка получить game_object безуспешна - удалять. А еще лучше - все удаления производить где-то из net_spawn() собственно актора, или раньше. Впрочем, и это все теория, к проблеме имеющая отношение едва-ли. SMapLocation binded to non-existent object - как бы намекает, что дело не в самом трупе. Ну, пока я кода не вижу. Ergo, действительно, попробовать удалить, пока в офлайне, а потом попробовать посетить актором место, где был оный труп, и глянуть: будет повторяться, али нет. p.s. А вообще, кстати, и предупреждение стоило бы выписать. По тому что поиском вот прям даже в теме причина замечательно находится. Изменено 23 Апреля 2014 пользователем Dennis_Chikin Поделиться этим сообщением Ссылка на сообщение
k01jan 812 Опубликовано 26 Мая 2014 (изменено) ! Cannot find saved game ~ z_mod: Инициализация z_uprising... ! Cannot find saved game ~ z_uprising: передали предустановки.! Cannot find saved game ~ z_mod:on_item_take: поимели detector_simple! Cannot find saved game ~ z_mod:on_item_take: поимели device_torch! Cannot find saved game ~ z_mod:on_item_take: поимели novice_outfit! Cannot find saved game ~ z_mod:on_item_take: поимели wpn_binoc! Cannot find saved game ~ z_mod:on_item_take: поимели device_pda! Cannot find saved game ~ z_uprising: ЛОГирование ВКЛючено.! Cannot find saved game ~ z_uprising: ОК!! Cannot find saved game ~ z_mod:on_info: инфопорш esc_kill_gunslinger! Cannot find saved game ~ z_mod:on_info: инфопорш storyline_actor_start! Cannot find saved game ~ z_mod:on_info: инфопорш global_dialogs! Cannot find saved game ~ z_mod:on_info: инфопорш level_changer_icons! Cannot find saved game ~ z_mod:on_item_take: поимели boltIntro start 8633* MEMORY USAGE: 311336 K! Cannot find saved game ~ z_mod:on_info: инфопорш esc_trader_hello_played! Cannot find saved game ~ z_mod:on_info: инфопорш ui_talk! Cannot find saved game ~ z_mod:on_info: инфопорш ui_trade_hide! Cannot find saved game ~ z_mod:on_info: инфопорш esc_trader_experienced! Cannot find saved game ~ z_mod:on_info: инфопорш esc_trader_tutorial_chosen! Cannot find saved game ~ z_mod:on_info: инфопорш esc_trader_can_leave! Cannot find saved game ~ z_mod:on_info: инфопорш tutorial_wounded_start! Cannot find saved game ~ z_mod:on_info: инфопорш ui_talk_hide! Cannot find saved game ~ z_mod:on_info: инфопорш ui_trade! Cannot find saved game ~ z_mod:on_info: инфопорш ui_talk! Cannot find saved game ~ z_mod:on_info: инфопорш ui_trade_hide! Cannot find saved game ~ z_mod:on_info: инфопорш ui_car_body! Cannot find saved game ~ z_mod:on_info: инфопорш ui_car_body_hide- Disconnect! Cannot find saved game ~ z_mod:on_item_drop: дропнули bolt! Cannot find saved game ~ z_mod:on_item_drop: дропнули device_pda! Cannot find saved game ~ z_mod:on_item_drop: дропнули wpn_binoc! Cannot find saved game ~ z_mod:on_item_drop: дропнули novice_outfit! Cannot find saved game ~ z_mod:on_item_drop: дропнули device_torch! Cannot find saved game ~ z_mod:on_item_drop: дропнули detector_simple- Destroying level + ! Cannot find saved game ~ z_mod:on_info: инфопорш ui_pda ! Cannot find saved game ~ z_mod:on_info: инфопорш ui_pda_events ! Cannot find saved game ~ z_mod:on_info: инфопорш ui_pda_contacts ! Cannot find saved game ~ z_mod:on_info: инфопорш ui_pda_ranking ! Cannot find saved game ~ z_mod:on_info: инфопорш ui_pda_actor_info ! Cannot find saved game ~ z_mod:on_info: инфопорш ui_pda_encyclopedia ! Cannot find saved game ~ z_mod:on_info: инфопорш ui_pda_hide @Капрал Хикс, кстати, да. Через раз появляются. ! Cannot find saved game ~ z_mod:on_info: инфопорш ui_pda_map_local ещё.Похоже, или только первый раз срабатывают. Или - по времени. Но явно - не получится нормально отслеживать и использовать. Изменено 26 Мая 2014 пользователем k01jan Поделиться этим сообщением Ссылка на сообщение
k01jan 812 Опубликовано 26 Мая 2014 (изменено) Может, попробовать отключать (disable_info, ну или как-то так) каждый раз? abramcumnerОпередил! Изменено 26 Мая 2014 пользователем k01jan Поделиться этим сообщением Ссылка на сообщение
k01jan 812 Опубликовано 3 Декабря 2014 @Zander_driver, почему "был"?Его lua_helper, lua_extension, m_netpk, m_timers, se_stor (соответственно, изменённый _g), ты не поверишь, давно и успешно использую. Каким боком m_events? Что это? Зачем это (=как использовать)? 2 Поделиться этим сообщением Ссылка на сообщение
k01jan 812 Опубликовано 28 Мая 2015 @Outfater, а <info_portion id="имя_инфо"> <action>скрипт.функция</action> </info_portion> чем не устраивает? Поделиться этим сообщением Ссылка на сообщение