Перейти к контенту

Dennis_Chikin

Жители
  • Число публикаций

    6 272
  • Регистрация

  • Последнее посещение

  • Дней в топе

    33
  • AMKoin

    513 [Подарить AMKoin]

Весь контент пользователя Dennis_Chikin

  1. А где можно почитать описания нетпакетов ? В частности, для оружия. Или это секретная информация, и все копают сами ? Upd: ага, на солько хватает беглого взгляда - в amk.script есть все нужное. Просто в предыдущие разы, когда смотрел - не увидел.
  2. Ха... Возможно, я невнимателен, но ни где этого не видел. А между тем, выполняя в цикле local result, key, value = ini:r_line("my_section",i,"","") - мы получаем содержимое конфига, отсортированное по key. Это к вопросу о размере и формате конфигов. Ну и, пытаясь работать не по ключу, а по номеру строки - можно получить весьма неожиданный реультат. P.S. И, да, не помню, кто писал про сохранность переменных внутри функции при повторном вызове: это была плохая идея. Господа присяжные заседатели ! В рамках лозунга: "Очистим солянку от ... тормозов" - гляньте, кому не лень, товарища aem_arny29193 (или какой там у него номер в ваших сэйвах) на предмет story_id и инвентаря. Тупо перебором 1,65534 и проверкой parent_id. У меня он почему-то коммонер, и по совместительству - бинтовый магнат - владелец половины, если не больше, всех бинтов Зоны. Возможно, глюк в моем коде - в сборе статистики, а возможно - и не в моем. И неплохо бы сделать ревизию человеков-оркестров.
  3. Скриптерское, ПЫСам посвящается: Остров невезения в Украине есть, Весь покрытый зеленью - абсолютно весь... ... НПЦ и монстры пропадают зря: ведь у них в оффлайне нет инвентаря ! Предлагаю общественности заполнить пропущенное.
  4. Dennis_Chikin

    Разговоры о модах

    Где место есть - туда и ползут. Кратчайшим путем. Для интересующихся - типа отладочный лог (ахтунг - 12 мегабайт внутри): http://gettyfile.ru/573485/ Кто-то сдох - сработал респавн - поползли на свободное место. Доползли - сидят, пока не сдохнут. А зачем им что-то еще, если они в радиусе 100 метров все-все видят, и дотягиваются туда своими тентаклями не сходя с места ? 8/ Ну, типа да, я таки собрался с этим что-нибудь сделать. Типа сбора хабара и последующего его сливания в точках с торговцами. Тут уж или ишак помрет, или султан. По времени - в общем-то оно и сейчас так - периоды оффлайновой бойни задаются непосредственно в начале всем известного скрипта (там же - радиус обзора, один для всего и для всех; и вообще его смысл в целом достаточно прозрачен; в частностях - да, очень сильное колдунство - проще переписать), большая часть спавна - внезапно, в скрипте спавна. Есть еще как-бы останки от роста уровней и селекции по уровням. Проблема в том, что идти-то некуда. Если только делать рокировку. Иначе - вылеты или самоубийства об блок-пост Кордона. Квестовики как-бы должны отсеиваться по story id. Плюс есть отдельный список. Хотя правильнее убрать квестовиков вообще как вид. Ray, а не было желания поинтересоваться, как делаются большие open-source проекты ? Внезапно, маленькими модулями.
  5. А поясните, кому не лень, подробно смысл вот такой конструкции: 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() ? Или для последнего мы просто не сможем найти соответствие ?
  6. Ну наверняка кто-нибудь знает место, где зверушка видит врагов. Подскажите, а ? Проверок-то везде раскидано много, но я не могу найти ту, которая отрабатывет первой. Индикатор заметности растет, дорастает до максимума, зверушка даже радостно пискнуть успевает, но переключений чего-либо между этим писком и вылетом без диагностики - я не вижу. Или все где-то внутри экзешника ? Хорошо, переформулирую вопрос: Что с точки зрения кода должна давать вот эта конструкция: 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 ? Ну не вижу я ни результатов, ни самого кода, где оно использовалось бы.
  7. О, сколько нам открытий чудных... Пока тут все заняты таблицами, доставляет несказанно следующая картина: Случилась тут, скажем, с какой нибудь rat_strong31505 неприятность - death_callback. Казалось бы, померла, так померла. Ан нет. issue_event с функцие "update" - еще туда-сюда, а вот try_switch_to_another_section, где тушка пытается посмотреть своими мертвыми глазами на актера, и далее по тексту, в цикле, минимум 2 раза - это, безусловно, сильно. bar_surprise_box_0009 в качестве npc - это тоже неплохо. Вот кое-где кое-кто жаловался на тормоза на болоте и вообще на новых локациях, так уничтожение всяких ящиков на тормоза влияет так-же, если не сильнее, чем уменьшение плотности тумана. P.S. Кстати, зависаний в xr_logic так и не нашел. Все функции как минимум возвращаются нормально. Как и в каком месте монстры/неписи могут вылетать, увидев врагов - не понимаю. Я не знаю, куда и на что еще смотреть. Логика - scripts\amk\logic\rad_rat1.ltx, scripts\amk\logic\mil_rat1.ltx, scripts\amk\logic\rad_rat2.ltx, scripts\amk\logic\pri_rat4.ltx, scripts\amk\logic\pri_rat5.ltx, scripts\amk\logic\mil_rat2.ltx. Гулаг у всех == nil. Кто-то из них нормальный, а кто-то - вылетает. Кто - не знаю. Лог может закончиться на чем угодно. upd: та, что c припяти -и вылетает. Так, скажите кто-нибудь: эта конструкция - on_timer = 120000 | mob_home1 on_signal = sig_attacked | mob_combat - вообще в принципе работает ? Я вижу, что срабатывает всегда только переключение по первому условию. Вряд-ли это имеет отношение к вылету, но тем не менее. И кто вообще разбирается в связках хr_* - state_mgr* ?
  8. Понятно. Похоже, случайно нашел один из признаков надвигающегося xr_logic: 1490 Кто-нибудь поглядел бы еше в этом самом xr_logic.script на pstor_load_all() внимательно. Shadowman, ну, скажем, на предмет classname == nil. И на предмет мусора в этом classname. И диагностику вменяемую этому самому net_pda_чего-то, у которого pstor с мусором, вывести в лог не помешает. Upd: у себя - уже. И это был единственный раз ошибки 1490, который вообще случился за последние пол-года. Был именно мусор. На фоне пачки лагов. (Маячками не пользуюсь.) kamikazze, имеет смысл подкрутить для начала update_monster_factor ? И, да, с радиусом alife=250 лог стал похож на человеческий. Если не считать внезапно !SV:ge_destroy: [7080] not found on server для патронов у неписей. Однако я не понял, зачем тогда тот же net_destroy() вызывать при загрузке для трупов ? По-моему- одно из двух. P.S. Я правильно понимаю, что нанесение хитов - это только в он-лайне ? А обнуление - это для офф-лайна ?
  9. Ну вообще-то если уж что-то пробовать, то вот начиная откуда-то отсюда: http://www.amk-team.ru/forum/index.php?sho...8830&st=861 Лучше сразу вариант со счетчиком.
  10. Кстати, о птичках. while c рассчетом чего-либо непосредственно в условии, если это не одно сравнение, работает вообще как-то странно. sapsan, если бы... Скорее, наоборот: в отличии от for оно явно делает что-то лишнее.
  11. А не порадует ли кто статьей про убиение всякого ? Для начала, конечно, монстров. Как это делать идеологически правильно, что необходимо и достаточно, есть ли различия по онлайну/оффлайну, текущей и прочим картам, что где при этом вызываетися, что изменится само, а что надо потом еще вызывать/править руками, какие подводные камни ? Код из amk_offline_alife у меня вроде работает, и делает именно то, что надо, но не вылезет ли сюрпризов потом ?
  12. Кто нибудь сталкивался с такой ошибкой: [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'" Это КАК ???
  13. Dennis_Chikin

    "Погодная Мастерская"

    Кстати, о тормозах. На стандартной погоде соли. Я понимаю, что встроенное видео - это извращение. Но на статике бегает довольно неплохо. И не с самыми минимальными настройками - скорее наоборот. Так вот: у меня есть очень заметная зависимость тормозов от отношения far_planе и fog_distance. В оригинале во многих случаях far_planе заметно меньше fog_distance. Уменьшаем второе метров на 50 - и все начинает бегать быстро и плавно. В т.ч. на новых локациях. В т.ч. на Болоте. Какой-либо другой разницы не вижу. Для статики. С чего и зачем оно так ? P.S. А если бы еще облегченные партиклы для "монолита"/"радонового облака" и сработок всего огненного, завес и торнадо - было бы просто счастье. Upd: на самом деле очень сильная зависимость от параметра fog_density. В ряде мест он задран совершенно безбожно, при том, что fog_color там же делает его совершенно бессмысленным. В идеале надо заново искать оптимальные комбинации для всех 4-х параметров для всего. Иначе можно загнать в состояние полного изумления вообще любое железо. fog_distance должен быть равне far_plane, а fog_density - 0.9 - 1.0. fog_color должен быть подобран так, чтобы в тумане не просвечивались дальние обьекты.
  14. Как бы полуоффтопик, но... В квестах типа "сбегай-найди-принеси" проблема скорее в оформлении. Если уж пошло массовое редактирование карт - то пуркуа бы не па в тех же лабораториях делать не тупо спавн предметов, а закутки, открывающиеся по получении новой информации (о том, что такое помещение вообще есть, и о том, как в него, собственно, попасть.) Сюда же можно и со смыслом привязать "пространственные аномалии" ("телепорт" - плохое слово).
  15. Вешается meceniy_art.art_respawn() Симптоматика: строго после 22 часов; внезапно, либо после перехода между локациями - сразу, при загрузке сохранений - сразу - вешается актор. Поставленный watchdog показывает, что "ушел и не вернулся" именно этот вызов. BTW, в оригинале из OGSM спавн производился только после выброса, только на текущем уровне и только 4-х артов с небольшими задержками между каждым. Workaround: перенес все содержимое meceniy_utils.on_actor_update_callback() непосредственно в биндер актора на 10 секундный апдейт, для спавна "черной энергии" прикрутил оригинальный ogsm_surge.script Тестирую. Из положительных эффектов - ЧЭ перестала спавниться "кучками". Shadowman, У меня больше НЕТ этого конкретного зависа. Остались вылеты по стеку при завершении игры из Лабиринта и при проходе бандюков через ж/д на Кордоне на границе радиуса а-лайфа. Необходимость переделки не отменяет то, что подобный спавн надо переносить в куда-нибудь в новости. В качестве средства диагностики зависа - сообщение в ньюсы перед началом и после отработки. Если видим первое, но нет второго - висим именно здесь. Себе такое поставил, видно абсолютно четко. Виновника вылета, кстати, можно отлавливать так же, если подозрительную функцию вызывать с фиксированной задержкой после сообщения. Со снятием координат есть слабооформленная мысль о том, как без этого обойтись. Когда пойму спавн/отключение аномалий - попробую. Или когда разберусь с путешествиями монстров. Перевесить спавн артефактов прямо на них.
  16. Прошу прощения за все возможные бояны, но может быть кто-то разбирался, и может ответить одним куском: Часть NPC и монстров постоянно болтается в онлайне: явно прописанный в схемах offline = false перекрывает настройки alife. То же самое заметил для всех(?) переодевшихся неписей. Кто-нибудь может сказать, зачем оно вообще так сделано ? При сохранении игры перевод всего и вся в оффлайн ведь не делается ? А если сделать, и заморозить обновления - к чему это может привести ? Или просто нереально ?
  17. malandrinus, Работает. Потестил на том самом файлике, где зависание 50/50 сразу после загрузки. Вопрос ко всем: если оторвать gps_habar.sript (всего нашел 9 мест) - это вроде ни на что не должно повлиять кроме собственно возможности ставить метки ? Shadowman,, Я сейчас пытаюсь проверить пару странных идей, и мне не нравится, например, то, что он вызывается "over 9000" раз из, например, только add_fresh_meat только еще где-то между началом синхронизации и стартом уборщика. Что он при этом делает сам - я даже и предположить боюсь.
  18. К вопросам о зависании актера в баре и на ДТ и вылету при загрузке игры в пещере: Не уверен, что здесь есть какая-то связь, но после выбрасывания в amk_offline_alife.script в function on_inv_boxes_found(victim, vdata) строки v_obj = vdata.inv_boxes и всего следующего for с обследованием и разграблением неписью содержимого ящика/рюкзака. - ощутимо полегчало. То есть, фактически с тех пор проблем не было вообще. У кого будут частые зависы / вылеты "на ровном месте" - попробуйте, pls. upd 08.06: Завис актора после 22 часов - это другой завис. Лечится исправлением спавна "Черной Энергии". (upd 30.05: Здесь была правка свойств аномалий - она ничего не дает.) 19.04.2010 + kumul_20100512_2312_sapsan + адаптация 1.0.6 P.S. Меня таки смущает спам в лог разных вариантов вот этих строчек: sv destroy object [15842][separator:separator15842] [47789] sv reject. id_parent [0][actor:single_player] id_entity [15842][separator:separator15842] [47789] cl setDestroy [15842][47789] sv destroy object [16762][separator:separator16762] [48147] sv reject. id_parent [0][actor:single_player] id_entity [16762][separator:separator16762] [48147] cl setDestroy [16762][48147] Добавлено через 8 мин.: А что с переходом с Кордона в Темную Долину ? Поменяли, или у меня что-то сглючило ? upd 08.06: переход внезапно появился. После последнего кумулятивного патча.
  19. Dennis_Chikin

    Баги и вылеты 4

    26.01 Безлоговый вылет при встрече с крысой на ДТ. Описание: со стороны тоннеля с жарками в сторону фургона неспешно ползет крыса. Когда она замечает ГГ (судя по индикатору на ПДА; почему-то с 50+ метров) - имеем мгновенный вылет. Сейв - здесь: http://ifolder.ru/16379360 А переиграть, с ранних сейвов? Виталий Зверь Так оно и через sak_off_corpses.script решается. Просто может кому для диагностики/отладки пригодится ? P.S. и чтобы 2 раза не вставать: размер ПДА-пакета, без видимых причин скачущий от 300 до 4500 байт - это нормально ?

AMK-Team.ru

×
×
  • Создать...