SCP: Secret Laboratory, сервер Fry Labs, чиню Crimewatch и плагин для Патреонов

tl;dr Суббота – починил C# плагины на своём сервере SCP:SL, воскресенье – провел серверное событие по возвращению Гейлорда.

Ладно, Бассейн допустим кончился, однако, пожалуй, не стоит расслабляться и точно не стоит забрасывать блог.

Суббота (2019-02-23) проплыла в починке сломанных плагинов на моих серверах SCP:SL. Сначала я взялся за то, что Патреоны сервера возрождались без инвентаря. Ранее система работала так – в событии получения урона игроком, если нанесенный урон больше текущего здоровья, игрока просто сразу спавнило другой ролью. У такого подхода было достаточно проблем и последней каплей стало то, что из-за того, что они не умирают, не отображались убийства Патреонов в логгере (специальная система отображения выбранных событий на сервере).

Так я перед Бассейном переделал систему так, что они таки умирали и плагин вел запись количества смертей каждого Патреона. После первой смерти вызывалось событие смены роли на наблюдателя и вот там я (как я думал) ловил событие и менял роль на другую. Проблемой стало то, что сочетание лапшекода поляка, системы эвентов ServerMod и моего плагина привело к тому, что Патреоны появлялись с пустым инвентарем, потому что "мёртвому" игроку нельзя дать предметов.

Решением стало откатить систему на старую. Починим взаимодействие систем в ближайшее время.

Вторая проблема была связана с системой автоматического обнаружения нарушений ~~устава Спецотряда~~ правил сервера. Она работала... иногда. Общий принцип такой – за нарушение правил игроку присваивается некий статус (Suspect, Criminal, привет EVE Online, я даже назвал плагин – Crimewatch). Пока на игроке висит этот статус его можно убить без страха быть забаненным. А можно и не убить ¯\_(ツ)_/¯. Получается такое довольно приятное саморегулирование.

Проблем было достаточно – статусы не очищались на сервере или не отображались на клиенте, система добавляла " # CLEAN" к титулам игроков и, вообще, была довольно нестабильной.

Решением стало не доверять сборщику мусора в C# и чистить объекты руками (привет, C, так давно не виделись, я уже успел соскучиться по `free` >_<). Этого изменения хватило, чтобы исправить все проблемы с таймингом нарушений. Починка системы титулов заняла ещё немного времени. Теперь плагин работает почти как надо и осталось отловить некоторые довольно странные взаимодействия между сменой раунда и потерей статуса мед раундов.

Поиграв в Apex Legends, я почувствовал, что есть такие компьютерные игры, которые являются пустой тратой времени. Это, конечно, меня довольно сильно расстроило... и я оплатил подписку на EVE Online ¯\_(ツ)_/¯.

Вечер воскресенья (2019-02-24) выдался жарким. Мы проводили серверное событие возвращения Гейлорда – по бэку он исчез, а потом, будто бы, изниоткуда вернулся, чтобы свергнуть докторов Развлечудовых... Ну, пожалуй, это, вообще, не будет понятно ни одному читателю блога, но если совсем вкратце, то на сервере есть группировка мистеров Геев и Развлеченных. Развлеченные появились вместе с Crimewatch, который был представлен как поделка доктора Развлечудова...  Мистеры Геи появились раньше, но в результате определенных событий потеряли своего предводителя – Гейлорда – и периодически бунтовали на эту тему.

В общем, было 12 раундов веселья, в ходе которых они соревновались между собой. Получилось так, что Развлеченные вели в этой борьбе, так что пришлось принять жесткие административные меры и сыграть раунд, который не могла выиграть ни одна из сторон (теоретически единственный способ им победить был – объединиться, что не рассматривалось совсем). Ну, а раз в финалочке ни одна сторона не победила, то и решение я мог принять любое.

Так на сервера вернулся Гейлорд.

Сегодня – ковыряюсь с нодой Tezos (блокчейн такой).

Комментарии

Популярные сообщения из этого блога

Школа 21, до Бассейна, день первый

Школа 21, Бассейн закончился

Школа 21, Бассейн, день первый