Dennis_Chikin 3 658 Опубликовано 3 Июня 2010 Прошу прощения за все возможные бояны, но может быть кто-то разбирался, и может ответить одним куском: Часть NPC и монстров постоянно болтается в онлайне: явно прописанный в схемах offline = false перекрывает настройки alife. То же самое заметил для всех(?) переодевшихся неписей. Кто-нибудь может сказать, зачем оно вообще так сделано ? При сохранении игры перевод всего и вся в оффлайн ведь не делается ? А если сделать, и заморозить обновления - к чему это может привести ? Или просто нереально ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 29 Июня 2010 (изменено) Кто нибудь сталкивался с такой ошибкой: [error]Expression : assertion failed [error]Function : CStepManager::reload [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\step_manager.cpp [error]Line : 46 [error]Description : param.cycles >= 1 ? Она связана с чем-то конкретным, или "ой, что-то где-то в скрипте/конфиге случайно не то сделали, где - не знаем, восстановим старую копию ?" malandrinus, ага, спасибо, действительно случайно. Дератизацией, вестимо. А вот теперь я совсем ничего не понимаю. Удаляю весь m_rat.ltx, и прописываю: [rat_weak]:m_tushkano_e [rat_normal]:m_tushkano_e [rat_strong]:m_tushkano_e непосредственно в monsters.ltx, запускаюсь, перехожу с локации, где спавнится 6 rat_strong, но я их почему-то не вижу (причем спавнятся не знаю через что, но не se_respawn.script), на соседнюю, и вижу - 6 крыс. Удаляю из monsters.ltx, что там прописал, и получаю при спавне законный: "Can't open section 'rat_strong'" Это КАК ??? Изменено 29 Июня 2010 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 1 Июля 2010 (изменено) А не порадует ли кто статьей про убиение всякого ? Для начала, конечно, монстров. Как это делать идеологически правильно, что необходимо и достаточно, есть ли различия по онлайну/оффлайну, текущей и прочим картам, что где при этом вызываетися, что изменится само, а что надо потом еще вызывать/править руками, какие подводные камни ? Код из amk_offline_alife у меня вроде работает, и делает именно то, что надо, но не вылезет ли сюрпризов потом ? Изменено 1 Июля 2010 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 14 Июля 2010 (изменено) Ну наверняка кто-нибудь знает место, где зверушка видит врагов. Подскажите, а ? Проверок-то везде раскидано много, но я не могу найти ту, которая отрабатывет первой. Индикатор заметности растет, дорастает до максимума, зверушка даже радостно пискнуть успевает, но переключений чего-либо между этим писком и вылетом без диагностики - я не вижу. Или все где-то внутри экзешника ? Хорошо, переформулирую вопрос: Что с точки зрения кода должна давать вот эта конструкция: function set_scheme(npc, ini, scheme, section, gulag_name) local storage = xr_logic.assign_storage_and_bind(npc, ini, scheme, section) ... storage.aggressive = ini:line_exist( section, "aggressive_home") end ? Ну не вижу я ни результатов, ни самого кода, где оно использовалось бы. Изменено 15 Июля 2010 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 17 Июля 2010 (изменено) А поясните, кому не лень, подробно смысл вот такой конструкции: if obj.m_game_vertex_id and game_graph():valid_vertex_id(obj.m_game_vertex_id) then local map=alife():level_name(game_graph():vertex(obj.m_game_vertex_id):level_id()) end Есть оъекты, для которых какое-либо условие не выполнятся ? И что с ними такими красивыми по-хорошему следует делать ? Ничего ? malandrinus, ну я же просил: подробно. А если не валидный ? Если пропустить проверку vertex(obj.m_game_vertex_id):level_id() нам чем грозит ? А level.object_by_id() ? Или для последнего мы просто не сможем найти соответствие ? Изменено 17 Июля 2010 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 29 Июля 2010 (изменено) А где можно почитать описания нетпакетов ? В частности, для оружия. Или это секретная информация, и все копают сами ? Upd: ага, на солько хватает беглого взгляда - в amk.script есть все нужное. Просто в предыдущие разы, когда смотрел - не увидел. Изменено 29 Июля 2010 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 29 Июля 2010 (изменено) Это не про ковыряние, но, кто-нибудь, снимите меня с ручника: if wpn_data[obj:section_name()][p_obj:community()] then get_console():execute("load ~DC~: add_item to: "..p_obj:name()..", "..p_obj:community()) local wpn_pri = wpn_data[obj:section_name()][p_obj:community()] get_console():execute("load ~DC~: wpn_pri1: "..tostring(wpn_pri or "nil value")) else get_console():execute("load ~DC~: add_item to: "..p_obj:name()..", common") local wpn_pri = wpn_data[obj:section_name()].common end get_console():execute("load ~DC~: wpn_pri2: "..tostring(wpn_pri or "nil value")) результат: ! Cannot find saved game ~dc~: add_item to: esc_soldier_respawn_10153, military ! Cannot find saved game ~dc~: wpn_pri1: 36 ! Cannot find saved game ~dc~: wpn_pri2: nil value P.S. То есть, понятно, что "end" в данном случае закрывает область видимости объявленных до него переменных, но с чего бы вдруг ? Я вижу в описаниях языка такое свойство "end" для циклов, но не вижу для ветвлений. Изменено 30 Июля 2010 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 26 Декабря 2010 (изменено) Нужен ликбез: Монстры/неписи визуально совершают какие-то движения - скажем, сидят, потом побежали, потом развернулись, еще что-то сделали... С началом/концом каждой фазы наверняка связан какой-то код. Прочитанное намекает, что это - state_mgr*.script. Но там внутри много всего, и все равно непонятно, как это соотносится с наблюдаемым визуально. Задача: узнать, из откуда-нибудь (хоть вывести в лог из того же стэйт-менеджера, лишь бы это было как можно проще): что сейчас происходит визуально. То есть, что начал делать данный непись, делает ли он это, или уже повис, и момент, когда он наконец закончил делать то, что начал, если вообще закончил. Ткните носом во что-нибудь ? Полтергейст, со стэком - я, кажется, нашел архитектурную проблему в более другом месте. Сейчас осмысливаю. Коротко, если вдруг есть возможность заменить у объектов методы can_switch_*() на переменную - должно ощутимо полегчать во многом разном. А вот с состояниями - в том-то и дело, что вылеты. Без логов. Со специфическим визуальным проявлением. Хочется докопаться до причин. Достаточно было бы в нужных местах вставить диагностику: кто последний - тот, очевидно, и виноват. P.S. smart_terrain проще, imho, закрасить, чем отскребать. Это - ад. Изменено 27 Декабря 2010 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 12 Марта 2011 Скажите, кто-нибудь: я правильно понимаю, что перезаряжание неписями оружия - это чисто движковое, и скриптом можно это сделать только чаще, но нет ни какой возможности запретить ? Разве что у непися патроны отобрать ? Ага, аддон Бака ковыряю. И обнаружил полное отсутствие соответствия того, что делается внутри, с внешними проявлениями. Также, внезапно обнаружилось, что по крайней мере в "Солянке" у неписей в момент смерти исчезают патроны, которые были в инвентаре. Кроме 9x18. Найти скрипт, ответственный за это - не удалось. 8( Удаление в death_manager отключено, естественно. Более того, когда в нем было удаление - в логе на v1.0006 была интенсивная ругань по поводу удаления несуществующего серверного объекта. То есть, где-то хранится список этих самых патронов, и идет попытка удаления по списку. Как аптечки, бинты, гранаты в аддонах xStream'а и Бака. Что это может быть ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 13 Марта 2011 Dennis_Chikin Гляньте в xr_death.script Нет, не то. 8( xr_death отрабатывает первым, затем - отрегистрация от смартов, затем в мотиваторе вызывается десменеджер, а после кто-то неизвестный ворует патроны. 8( Видимо тот же, кто и спавнит. Но, блин, кто ??? Сам движок ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 14 Марта 2011 Там только вот это: cse_alife_human_stalker.on_death(self, killer) Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 30 Апреля 2011 А отследить получение неписем предмета - вообще никак ? Только периодическим перебором инвентаря ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 25 Мая 2011 А вот кто подскажет нахаляву, как прямо вчера наиболее безболезненно можно решить следующую задачу: в момент X запустить для избраного непися последовательность действий: найти укрытие, перезарядить оружие, искать врага ? Момент X может быть абсолютно любым, просто мы знаем, что надо вот прямо сейчас. Не взирая на то, чем он занят. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 29 Мая 2011 Или лыжи не едут, или что... Задаем в цикле: db.actor:set_actor_position(db.actor:position()) - и актора потащило по всей локаци. Или против направления, куда двигался последний раз, или, если стоял на месте - куда-то на северо-восток. Причем резвенько так потащило... Ошибки плавучки ? Неизлечимо ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 1 Июня 2011 (изменено) Кто-нибудь разбирался с торговлей на предмет того, какие столы при каких условиях неписи выставляют на продажу ? Каким-то неписям даешь ствол лучше, чем есть, и он "исчезает", а взамен появляется тот, что был... Иногда - не появляется ничего, иногда - в продаже висит тот, который дал. Скажем, один нейтрал выставляет в продажу обрез, если дать абакан, другой не согласен меньше, чем на грозу, третий не расстанется с любимым обрезом, пока не пристрелишь. Аддон Бака в той части, которой он занимается отбиранием стволов, естественно, отключен. То есть, все полученные неписями стволы в инвентаре у них железно присутствуют. И еще, может кто подскажет "идеогически правильный", не тормозной способ отследить конец торговли с неписем и узнать: с кем именно мы только что торговали ? Изменено 1 Июня 2011 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 11 Октября 2011 Скажите кто-нибудь, непися вообще можно принудительно загнать в смарттеррэйн так, чтобы obj:smart_terrain_id() при этом возвращал корректное значение ? Предположим, что в олспавне для него ничего не прописано. Или, даже, просто выгнать непися-эксклюзива, и тут же запихнуть обратно - не дожидаясь, когда для него вызовется неведомо-что неведомо-где, и загонит куда надо ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 13 Октября 2011 m_army.ltx, m_bandit.ltx - эти файлы не используются. Это как ? Буквально месяц назад крутил им зрение. Первоначально оторвав от соли скрипт, который делал всему живому ровно 60 метров, зачем-то. Да и кровотечение у бандитов amk вроде как воспринимал... Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 22 Ноября 2011 (изменено) О, кстати, о конфигах. А не найдется ли здесь кого-нибудь, кто может провести ликбез по восприятию звуков неписями ? Вижу на уровне скриптов странное: выстрелил, скажем, ГГ в воздух, и все неписи в радиусе слышимости выстрела имеют дэнжер-объект типа attack_sound. И он все длится, и длится, и не кончается. А с enemy_sound - еще веселее. 300 метров, и тоже уже навечно. Причем best_danger - то-ли первый услышанный, то-ли еще каким образом, но тоже вечно один и тот же. Даже если уже и умер. P.S. На гугле меня не то, чтобы забанили, но полезного не нашлось. Добавлено через 20 мин.: Gaz24, патроны могут удалиться скриптом death_manager.script, либо остаться в стволе. Выпилил из десменеджера удаление патронов чуть более, чем полностью. Удаляются. Все, кроме простых 9x18. Причем удалются уже ПОСЛЕ отработки десменеджера. То есть, если бы удалялось в нем, что происходит с другими предметами - удаление было бы раньше. На 1.0006 хорошо видно по логу. Причем, если патроны удалены десменеджером, делается попытка удалить объект без проверки на его наличие. Аналогичная фигня происходит при удалении живого непися. Сначала удаление инвентаря вместе с неписем, потом попытка удаления патронов. Уже, кстати, писал про это. Изменено 22 Ноября 2011 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 24 Ноября 2011 Полтергейст Сработает коллбэк движка, который должен будет очистить игру от объекта патронов бывших в стволе удаленного оружия (приписанных ему). О. А вот на это похоже. Хотя идея с приписанными патронами странна. Но очень похоже. И тогда понятно с сообщениями об ошибке: уничтожение непися, уничтожение движком ствола, попытка уничтожения уже уничтоженных патронов от ствола. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 16 Марта 2012 (изменено) Есть непись. В олспавне ему запрещено браться под смарты. Олспавн трогать не хочется, но непися надо запихать в смарт. Можно переписать custom-data, но это как-то некрасиво. Можно (и, наверное, когда-то придется) переделать проверку условий для взятия под смарт. Но я вот вижу в ковыряемом файлики типа gamedata\config\scripts\sak\esc_fox.ltx содержимым вида: [smart_terrains] esc_stalker_camp = {-val_x18_door_open} sak_lager = {+val_x18_door_open} Сейчас такое впечатление, что они не работают. Но зачем-то ведь были ? И если бы их как-то задействовать - это было бы то, что доктор прописал. Как ? Изменено 16 Марта 2012 пользователем ColR_iT Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение