-
Ответ: Ещё один командер. Нужен ли?
Ребят, пожелания постараюсь по возможности учесть.
Но.
Скажу сразу - я не планирую выпускать суперуниверсальный командер.
Задача стоит по-другому.
Создаю стабильную основу и как пример несколько примочек, независимо друг от друга реализующих те или иные функции. В отличии от SC, Вы сами сможете дописывать необходимый вам функционал потому, что исходники будут открытыми.
Удовлетворить все пожелания у меня просто не хватит сил.
Тут дело не в сложности реализации, а в количестве вариантов. Самые трудоёмкие модули - это непосредственное взаимодействие с сервером и статистика.
Статистика даже не потому, что её сложно собрать, а потому, что её сложно показать (веб- страничка это даже более трудоёмкая штука, чем сбор статистики в базу).
Объясняю как я вижу модульность:
Есть сервер, разговаривающий сразу "в два голоса"(консоль и лог), есть модуль, умеющий слушать сервер и выуживать из обеих источников максимум информации, приводя её к нескольким (порядка 2х десятков) элементарным событиям.
К этим событиям подключаются уже другие модули - и сложные, вроде сбора статистики, и простые, вроде модуля, выдающего приветствие игроку при подключении.
Таких модулей может быть сколько угодно - и каждый будет выполнять какую-то функцию. Плюс эти модули могут быть связаны между собой или независимы друг от друга. Вариантов может быть очень много.
Что касается некоторых багов в SC, то они не всегда поддаются исправлению. Просто потому, что все командеры ограничены тем, что можно получить от сервера.
Например, баг с пк и выходом в меню:
Сервер выдаёт только следующие возможные комбинации событий:
А был убит Б,
А вышел в меню.
или
А был убит Б,
Самолёт А был сбит Б,
А вышел в меню.
Что касается зачёта смерти А - тут нет проблем - по событию А убит мы засчитываем ему смерть.
А вот по поводу зачёта сбитого для Б - всё сложнее - если мы засчитываем сбитие самолёта по событию Самолёт А был сбит Б (а это логично - ведь А может и не быть убитым, а выпрыгнул или выжил при аварийной посадке), то в первом случае, мы просто не увидим этого события, а если будем засчитывать сбитие за смерть противника и за сбитие самолёта, то получим удвоение сбитых во втором случае.
С прыжками с парашютом - ещё интереснее ситуация.
При выходе в меню после прыжка, парашютист, в отличии от самолёта не исчезает.
И сервер, если прыгнувший снова оказывается на стоянке в самолёте, видит одновременно 2х игроков с одним ником.
Причём, в логе он их никак не различает (только если первый прыгнул с позиции стрелка, а второй сидит на позиции пилота их можно различить).
И если парашютист убивается о землю, то в логе мы видим следующую последовательность:
А прыгнул с парашютом,
А выбрал самолёт,
А убит,
А взлетел.
Или вначале взлетел потом убит.
Однозначно верно истолковать такой лог просто невозможно.
Поэтому, приходиться либо вводить запреты и ограничения, либо игнорировать некоторые события.
Что касается ситуации с завулченным, то SC пишет в статистику события верно (при выходе в меню закрывается очередной вылет, потом открывается новый), но не все эти события отражаются в стате.
Эту фишку я уже просёк и исправил.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума