Перейти к содержанию

Electr0

Администраторы
  • Постов

    10 387
  • Зарегистрирован

  • Посещение

  • Победитель дней

    417

Весь контент Electr0

  1. @Саня ходил за картохой, смотрю у кого-то нарисовано: Как ты меня нашел?
  2. Значение Статус изменено на: Исправлено
  3. Коррекция релиза: Исправленное зачеркнуть. Пункты меню хранения данных "пересохранение" и "закрепление за слотом" перенесены на вторую страницу Пересохранение теперь имеет свои отдельные логи При сохранении/пересохранении/загрузке предметов слота записывается кол-во предметов чтобы точно шпионить за проблемами в этом модуле. Исправлена работа фикса прыжка для админов. Исправлена возможность маркировки предметов в выключенном режиме редактирования только помеченных предметов через !fs_info Добавлено кол-во сохраняемых предметов в диалог подтверждения сохранения слота. Во все процедуры пометки/убирания метки с предметов добавлено указание кол-ва предметов как при удалении, создании. Ибо можно перестать понимать какие предметы помечены и сколько их, тем самым сломав убегу, пока я не найду способ визуально их выделить пока так.. исправлен баг от новой версии когда статус слота загружается залипал для загрузки предметов игрока root админом. (у обычных игроков не проявляется) Нужно добавить ко всем логам операций удаления указание сколько предметов было удалено, и на какой карте. Исправить помещение лога удаления всех предметов стройки с карты в лог редактирования, тогда как это лог действий админов. В старой версии если грабить предметы с центром предмета в визуальном центре а не внизу то они наполовину вниз проседают, от курсора тоже. В новой версии если скопировать дверь захваченную в режиме граба, то флаг игнора использования передастся двери что вставлена. Нужна полная унификация названий поворотов и передижений по градусам в меню чтобы исключить путаницу что я обнаружил. Нужно добавить проверку отсутствия флага не ломатся у дверей которые ломались из db. (сохранены до события обновления стройки) либо прошить в базу данных обновленные флаги для дверей. FIX: сделал запрос в базу данных на обновление, вышло 361 дверь с некорректными флагами. Нужно добавить информацию о флагах любого предмета в информации о предмете (вывод в чат) Условие отсеивания предметов из других слотов при пересохрании слота нужно упростить. В старой версии был баг: при сохранении всех предметов из разных слотов в один слот, если сохранить в новый но старый слот не снимет метку загружен и придется удалить все предметы. Нужно сделать перерасчет предметов которые остались на карте за какими-либо остальными слотами. Если их ваще нет то нужно отжать статус слота загружен.
  4. Значение Статус изменено на: Сделано
  5. Значение Статус изменено на: Сделано
  6. Значение Статус изменено на: Сделано
  7. Загружено на сервер. Публичное тестирование стартовало.
  8. Процесс разработки окончен. Ура. Настал процесс поиска ошибок, еще ни один заход на проверку не обходился без найденого бага.
  9. Выйти из сумрака

  10. Electr0

    Fort System 2.5.0

    Добавил: [Предложение] - Добавлена возможность маркировки предметов и последующего редактирования до нескольких сотен предметов одновременно. (Поддерживается: Перемещение, повороты по осям, выравнивание, выставление скина, анимации) Добавил отсутствующие переводы Добавлено количество сохраненных предметов в процедуре сохранения слота. [Предложение] - Улучшено удобство работы с анимациями и скинами, добавлены команды перебора анимаций и скинов предметов. Добавлена новая модель металлической двери (с мотеля) Добавлена система отката повтора, действий над группами предметов. Добавлена новая команда выровнять помеченные предметы по указанной оси, по предмету на курсоре. Добавлена информация о доступных диапазонах слотов при не правильном указании слота в команде. Добавлена информация о доступных диапазонах номеров анимаций и скинов для моделек. Добавлена защита от выставления скина предметам у которых их нет в принципе. В !fs_info теперь пишет номер анимации и скина если таковой у предмета есть. В !fs_info теперь можно пометить предмет. Добавлена команда !fs_resave_slot <номер слота> - автоматическое пересохранение предметов в указанном слоте, в тот же слот, грубоговоря пересохранение слота. Добавлен показ функции установки пароля на дверь всем, но если игрок не имеет доступа, ему будет писать что ему нужен вип. Добавил запрет любых действий во время сохранения, загрузки предметов. Добавил игнор администраторами имеющими расширенный доступ фикса прыганья на предмете Добавил запрет администраторам удалять чужие объекты на карте если у них в статусе хоть одного слота игрока чьи постройки хотят удалить есть пометка о проведении сохранения или загрузки в этот момент времени. Добавлена защита от превышения лимита прекешей, тем самым мы избавляемся от ошибок загрузки моделек (желтые триггеры, блоки непонятные вместо моделек, и даже часть карты в виде миража) Добавлен контроль правильного сохранения двери, даже если сохраняли открытой - сохранится как и должна закрытой. Добавлена команда !fs_mark_unsaved_as_from_slot <номер слота>, данная команда будет искать все несохраненные предметы и помечать их за определенными слотами, в последствии вы их можете сохранить через пересохранение в тот слот в который помечали, НО только если они еще не были сохранены в базу данных за любым слотом. Добавлена команда !fs_mark_obj_as_from_slot <номер слота>, данная команда закрепит предмет под курсором за определенным слотом, НО только если он еще не сохранен в базу данных за любым слотом. Добавлена новая функция вставки предмета по курсору сразу над, под, с сдвигом по +-X/Y Исправил: [Баг] - Если прыгать над предметом который передвигаешь то он сдвинется когда ты в воздухе [Баг] - Если выставить несуществующую анимацию персонажу то сервер рухнет. Исправлен сброс хп до нуля если редактировать миниганы, двери Исправлена работа фикса дверей и миниганов на углы в рамках работы отмены/повтора действий. Повышена читаемость уведомлений от стройки. Исправлен случай когда в режиме граба можно было летать на двери. Исправлен недочет когда дверь заграблена ее можно было открывать закрывать в этом режиме. Исправлено игнорирование лампами фикса нахождения на твердом предмете. Исправлено неверное поведение отката/повтора действий над аурами. Исправлена ситуация с грабом когда в режиме граба выставляешь цвета или ауру, а после нажатия отмены эти аура и цвет остаются. Исправлено отсутствие уведомления от функции обнуления углов (в настройках типов сообщений появится отсутствующий пунктик, нужно включить) Исправлено неправильное копирование двери, после копирования мы получали дверь у которой скорость ниже стандартной с парой лишних параметров. Исправлено разрушение деревянных и металлических дверей. Исправлен спам Touch захватом при касаниях предметов игроками. Исправил неправильное кол-во доступных слотов в инструкциях игрокам. Исправил неправильные ссылки на инструкций у функций закрепления / переименования слотов была ссылка на инструкцию загрузки слота. Исправлено неправильное сохранение события создания лампы плагином ламп. Проверка на блокираторы теперь производится строго на картах где они есть. таких карт всего три: Аутпост, фацилити 13 и Подземелье. Исправлена утечка пропа двери если указать неверный тип двери в команде рождения двери. Исправлена проблема с обнулением статуса при выполнении действий с большими слотами и команды удалить предметы на карте со слота. теперь если во время сохранения/загрузки произошла ошибка запроса к базе данных, точно отжимается статус загружается/сохраняется у данного слота. При нажатии на слот в меню загрузки/закрепления слота страничка теперь страничка не перелистывается на первую. Исправлена попытка откатить граб в случае попадания предмета в запретную зону, если захвачен предмет не имеющий хозяина на сервере. Исправлено кривое оповещение при попытке удалить все свои предметы, в случае отказа системы удалять все предметы, все равно писало что все предметы удалены. Исправлен кривой граб некоторых моделек у которых смещен центр в самый центр, а не как у всех предметов в центре но снизу. (двери, некоторые стенки) Удалил: Теперь нет настройки создания предмета рядом с собой, т.к. это никому не нужно. Спам в консоль игрока при ошибке загрузки предмета из слота Оптимизировал: Внедрена система идентификации предметов по Reference коду, это куда быстрее чем прошлый метод по Hammer ID. Оптимизирован процесс сохранения предмета, теперь код сохранения в Mysql полностью унифицирован. Оптимизирована система отката/повтора, теперь она хранит в разы меньше данных записывая только то что ей пригодится при отмене повторе конкретных действий. Оптимизирована работа с массивами хранящими идентификатор захваченного предмета в функциях граба и копирования. Удален глобальный таймер показа геометрии, теперь он личный, тем самым мы избавились от холостой нагрузки. Проверки флагов доступа теперь не делают лишних запросов по много раз. Код копирования унифицирован теперь все выполняется в одном и том же месте, а значит меньше шанс появления рассинхрона обновлений похожего кода и багов по этой причине. Изменил команды: Команда сохранения всех предметов в слот переименована на !fs_save_all_in_slot <номер слота>
  11. Попытка номер два, завез более умный анализатор прыжков на предмете, учитывает ситуацию застревания в предмете, позволяя игроку переместить предмет из под себя.
  12. Финальный прототип 10: Закрываем все проблемы. Исправленное зачеркнуть. Нерешенными проблемами прошлых выпусков остались: Если прыгать над предметом который передвигаешь то он сдвинется когда ты в воздухе Выпускать версию с этим багом я не могу, иначе появятся новые убеги типа: Аля летел дом над Парижем. Тогда как сейчас что-то типа: Летела фанера над Парижем. Заметно хуже будет) Читаемость некоторых ошибок при редактировании низкая. К примеру: "[FS] Ты стоишь на объекте, пытаешься его "Название действия", ты против физики пошел!?" Отсутствуют переводы части фраз в чат. Боты, да впрочем и люди думаю могут открыть дверь ускользающей мимо их глаз убеги, в итоге у двери слетают параметры открывания и ее нужно доворачивать, нужно сделать проверку если дверь в состоянии открытия/закрытия нужно не давать перемещать ее. Если кто-то открыл/закрыл дверь убеги до сохранения, передвижения, поворотов, граба, то после слетают параметры оси открывания двери. Если редактировать миниганы, двери, то их хп становится нулем и его легко уничтожить гадям. Фикс дверей и миниганов на углы не работает в рамках работы отмены/повтора действий, это нужно исправить. Если удалять предметы по одному статус слота куда они сохранены не изменится при удалении последнего предмета. Если во время сохранения, загрузки/сохранения нажать удалить все предметы из слота то статус слота обнулится, это не безопасно, может вызвать сбои логики. Во время CALL функции загрузки предмета есть опасное выставление статуса без проверки, это может вызвать поломку. Меню удаления называется "Удалить объект", но там можно делать не только над одним предметом, следует переименовать в "Удаление" Код проверок сохранения загрузки очень сложно читать. Если ответ от запроса на удаление всех предметов из слота в базе данных приходит долго то можно ошибочно запустить два раза процедуру сохранения. Во время удаления предмета пишет кол-во предметов, но пишет с учетом что на этот момент этот предмет еще считается в списке предметов. А нужно чтоб писало за вычетом его из списка. У функции удаления предметов загруженных из слота нет логов. их нужно добавить. У функции удаления предметов загруженных из слота есть баг, если ты сделаешь это то статус слота Закреплен слетит. Администрация имеющая расширенные права на стройку должна иметь игнор на фикс прыжка. Название функции удалить предметы из слота такого-то слишком сложно понять, это из слота в базе данных удалить или с карты загруженное? Нужно добавить сообщение о удалении такого-то кол-ва предметов на карте из слота. Расстояние длины трассирующего луча должно быть не больше или равно 0.0, а не 10 что может вызвать ложные срабатывания при загрузке предметов из слота. При принудительной загрузки мной чужого слота, мой стим ид не прошивается в предмет. Блокировщики предметов нельзя повернуть, из-за того что луч трассировки видит их же при повороте, нужно сделать анализ что бы проверяемый предмет, не попался в око луча трассировки. Если происходит процесс сохранения/загрузки предметов, весь доступ к стройке игроку должен быть начисто заблокирован, чтобы исключить множество исключений нарушения работы сохранения/загрузки. Перепрофилировать весь стек проверок на уменьшение повторящихся проверок. Около 116 проверок. Исправить ошибку с доступом Нельзя разрешать администраторам удалять чужие объекты на карте если у них в статусе хоть одного слота игрока чьи постройки хотят удалить есть пометка о проведении сохранения или загрузки в этот момент времени. Если во время сохранения/загрузки произошла ошибка запроса к базе данных, нужно отжать статус загружается/сохраняется у данного слота. Если лимит прекеша переполнен начинает пиздец, дада и такой есть! >< Нужно удалить спам в консоль сообщениям о ошибке загрузки предмета, т.к. теперь есть отчет по статусам загрузки предметов. При нажатии в загрузки/закрепления слота страничка перелистывается на первую, и можно нажать два раза, тупо. При грабе, если подвести предмет к стене запретной зоны если хозяин предмета ушел, система пыталась откатить это но т.к. если игрока нет на сервере, действия над его предметами не запоминаются следовательно и нет смысла отменять. Нового выпуска: Если выровнять все предметы по одному, чтобы они все находились в одной точке на карте, последовательно по всем осям, то в итоге будет лагать из-за физики касаний, там выбивает мол исчерпан лимит касаний 1200 бла бла бла и лагает в общем с сильным проседанием фпс. Нужно сделать детектор сваливания предметов в одну точку, прямо в предварительном тесте будущих параметров перед стартом группового действия. Полагаю нужно сделать условие с счетчиком если позиция предмета стала совпадать с другим, по всем трем осям то считать, и если таких много отменять всю операцию с отсылкой на сваливание в одну точку. При выравнивании по осям, если помечен предмет которому хотят выравнивать, он тоже будет выровнен, но по сути это бесполезная операция, нужно исключить предмет по которому ровняют из цикла операции выравнивания. Спаун всяких предметов стоит выключить во время редактирования помеченных предметов, иначе начинаешь путаться. Все новые команды группового редактирования поголовно не учитывают настройки оповещений по типам, это нужно исправить. Исправить проблему копирования. Теперь не нужна двойная отмена при вхождении заграбленного предмета в запретную зону. В ходе тестирования выяснилось что если пометить несколько моделек умеющих менять скин и несколько персонажей то при действиях над скинами и анимациями начинается сбой создания ячейки данных. Добавить: Добавить команду !fs_mark_unsaved_as_from_slot <номер слота>, данная команда будет искать все несохраненные предметы и помечать их за определенными слотами, в последствии вы их можете сохранить через пересохранение в тот слот в который помечали, НО только если они еще не были сохранены в базу данных за любым слотом. Добавить команду !fs_mark_obj_as_from_slot <номер слота>, данная команда закрепит предмет под курсором за определенным слотом, НО только если он еще не сохранен в базу данных за любым слотом. Скрины с разработки:
  13. Исправить в первый раз используя отложенный статус пометки предмета, через личный для каждого клиента таймер отмены, который бы сам перезапускался не получилось. Если прыгать над одним предметом все окей, но если ты прыгаешь сразу же на другой то ты, фактически оставляешь помеченным что кто-то стоит на старом предмете, потому что таймер содержащий инфу про пометку отмены касания по старому предмету уже убит, и запущен для нового предмета. Нужно найти новую стратегию поведения в этом случае. Значение Статус изменено на: В обработке
  14. Значение Статус изменено на: Сделано
  15. Прототип 9: Старые беды c дверями и задротским сканированием местности. Я тут подумал, вот я на каждой карте сканирую 9 точек предмета, 1 центр, и 8 краев при любом возможном сценарии изменения позиции предмета. НО эти 8 краев проверяются лишь на нахождение внутри какой либо блокировки описанной в списке блокировок на которые стройка отвечает, и там есть ттолько из карты фацилити 13 и аутпост, зачем тогда на остальных картах трассировать так много? Заставить AGF фикс смотреть за всеми касаниями было плохой идеей, сделал обратно только для обычных предметов, дверей, миниганов и ламп. Баг с полетом на двери не исправлен. Во время граба нужно выставлять двери флаг игнор использования чтобы они ее не тролили. Нужно что-то сделать с уроном по деревянным дверям, они бесполезны, урон должен идти только спец зараженных людей. Лампы посылают на три буквы AGF фикс. Если дверь скопировать, скорость новой копии не будет соотв. той что нужно. (удвоенной) Исправить утечку пропов двери если тип неверный. Если во время граба изменить цвет/ауру, то эти изменения никак не запомнятся системой отката повтора. Событие отпускания после граба теперь не запоминается т.к. это расходится с практикой использования системы отката повтора (один тип действия / одно нажатие на отмену/повтор). Теперь откат после граба куда красивее и быстрее.
  16. Че я мож к 8 марта успею подарок "девочкам" устроить на меге D P.S: мы с Петровичем поверхностное тестирование провели, что в глаза бросается нашли, но все равно надо жестокое и полное провести.
  17. Прототип 8: из Белаза в малолитражку. План. Сделанное зачеркнуть. Отложенное подчеркнуть. У меня получилось утром записать действие над несколькими предметами в память системы отмены повтора. Файлик с дампом данных на одно групповое перемещение 262 предметов был размером в 137 кб. Это ни в какие рамки не лезет =D При целевом кол-ве хранимых действий в 600 штук в обоих стеках НА клиента. Если ничего не изменить то при максимальной загрузке будет что-то на вроде такого 137 кб * 600 * 12 (клиента) = 986 мб сожранной памяти. У нас нет столько свободной оперативной памяти =D Все что нужно сделать: Научить ее читать, и воспроизводить данные оттуда. Заставить работать отмену/повтор для всех групповых действий Сделать так что, в режиме редактирования только помеченных предметов работал для групп предметов, а в обычном на тех же кнопках обычный. Научится сохранять только важные данные о предмете чтобы уменьшить нагрузку от ненужных данных. Нужно сделать тоже самое с обычным откатом, ибо групповой откат всего лишь ее копия которая иначе работает с данными. И он так же много жрет как первые версии группового но в рамках одного действия D Исправить ошибку, с не выставлением hammer_id плагинами связанными с FS, такими как Lamp, в связи с чем возникли проблемы с отменой откатом. Исправить ошибку с неправильным сохранением события спауна лампы, ее данные не заносятся в систему поскольку выставлен неверный ид события, баг приплыл из старых версий, теперь такие константы вложены в инклуд. В ходе тестирования протипа нашел проблему с сохранением системой отката повтора ауры, я выставляю желтый цвет, нажимаю откат, повтор и вижу красный вместо желтого!. Баг оказывается пришел из старой версии ибо даже на текущей версии на меге точно такое же поведение. Добавить AGF fix на двери. Добавить поддержку поворотов и обнуления углов. Ручное выставление углов не отслеживается системой отката, WTF? При обнулении правильность углов не проверяется, WTF? После внедрения разумной записи данных о действии одно групповое перемещение 262 предметов стало занимать 27 кб. что в итоге равняется 27 кб * 600 * 12 (клиента) = 194 мб это максимум что я могу сделать. В ходе тестов используя sm_dump_handles утечек указателей в новой версии систем отката повтора не выявил. Немного из хода разработки:
  18. Надо подумать, можно ли сохранить состояние нескольких сот предметов в один datapack, это могло бы помочь с так скажем.. проблемой отмены повтора действий над группой предметов. потому что по одному их отменять это затея для киллера времени. Проблема важна, поскольку групповые действия очень опасны в плане можно легко сломать убегу (к примеру выровнять всю убегу по какой либо оси, забыв убрать пометки со всех предметов), что будет заставлять раз за разом перезагружать убегу. По идее можно сделать отдельную систему повтора отмены, но для групп предметов, она будет записывать и считывать данные действий над несколькими предметами прямо в одном datapack на действие, это будет сходится с концепцией одно нажатие одно действие над группой предметов, думаю нужно записывать в начале datapack кол-во описываемых в нем предметов, так сможем понять сколько данных нужно извлекать из него. Таким образом проблема хранения данных упирающаяся в лимит указателей равный 30 тысячам исчезает. Однако нельзя точно сказать сможет ли уместить в себя один datapack столько данных от 400 предметов к примеру. И не вызовет ли это проблемы с выделением памяти серверу. Первая проблема такого метода: как записать что-то если у тебя до 600 действий, и эти действия не одновременные, и иногда асинхронны по применяемым данным, а оказаться они должны в одном datapack. Прочитать несложно, ибо ты уже знаешь максимальное кол-во данных предметов. Проблема два: старый подход с созданием снапшотов данных (30 параметров) предмета на каждое действие слишком избыточен для этого групповой отмены повтора, будут дикие лаги при массовых действиях это очевидно. Edit1: Придумал: В отличие от стандартной системы, хранить действия над группой буду в KeyValue. Ее куда проще обновить и легче работать. Одна KeyValue на действие, это уже что-то из того что вполне реально сделать.
  19. Прототип 7 более близкая к релизу версия, дальнейшие изменения будут направлены на стабилизацию и фиксы багов текущей версии, нужно протестировать все в этом в плагине.
  20. Дело в том что плагин лазеров каждые 0.1 сек опрашивает всех клиентов включен ли у них лазер чтобы сделать отрезок если включен. Теперь сделал чтобы по нажатию старта рисования создавался личный таймер, по концу отключался, так мы исключаем холостой таймер из нагрузки на сервер.
  21. Значение Статус изменено на: Тестируется
  22. увеличил минимальное значение усталости с 0.4 до 0.6.
  23. Происходит потому что идет сброс данных. переделал систему событий так чтобы сбрасывалось при первом входе на карту, при выходе с сервера, при афк хук снимается с игрока, а у бота сбрасывает данные чтобы он не слоупочил. дальше по возвращению игрок получает свои усталости обратно.
  24. Прототип 7: план. Сделанное зачеркнуть. Отложенное подчеркнуть. Ломать так ломать. Исправить баг с касаниями предметов В ходе тестов шестой сборки выявлен спам касаниями из-за неправильного типа хука который был во всех старых версиях, исправил тип хука с TOUCH, на Start_touch как и задумывалось. добавить функцию пометки / убирания метки с предметов из определенных слотов, нужно чтобы она понимала что если слот не загружен делать ничего не нужно. добавить функцию пересохранения предметов из выбранного слота (в тот же слот). Команда !fs_resave_slot <номер слота>, нужно чтобы она понимала что если слот не загружен делать ничего не нужно. Сделать ENUM нумерацию кодов режимов работы функций загрузки, сохранения. В коде сохранения есть пара мест которые должны были быть унифицированы раньше, но видимо нехватило времени. Если сделать как задумывалось избежим кучу IO траффика. Переименовать команду сохранения всех предметов в слот с !fs_save_slot <номер слота> на !fs_save_all_in_slot <номер слота> Исправить нумерацию слотов в документации, там указано что есть 1-5 слоты, но их уже 1-10, нужно брать цифру из константы числа слотов что я добавил в том году. При обращении к несуществующему слоту писать диапазон номеров слотов. В английской документации название функции переименования слотов такое же как и у загрузки слота, это нужно поправить. У функции закрепления / переименования слотов ссылка на инструкцию загрузки слота. wtf. В англ. версии документации закрепления слотов отсутствует заметка как в русской версии, что повторный вызов команды по указанному слоту приводит к снятию закрепления. Добавить показ функции установки пароля на дверь всем, но если игрок не имеет доступа писать ему что ему нужен вип. Изменить метод управления правами доступа на установку двери с "Через жопу", на нормальный. Сделать прямой вызов к новодобавленным функциям в меню напрямую через CallFUNC, так мы исключим время на обработку фейковой команды от игрока сервером Добавить информацию о кол-ве сохраненных предметов в слот. добавить минимализма названиям меню из сохранения загрузки. добавить функцию выравнивания группы помеченных предметов, по выбранной оси, предмета по курсору игрока.
×
×
  • Создать...