Смотрим выше задачу на сообразительность, прибавляем к этому то, что ты просишь, оцениваем масштабы бедствия. Лично для меня это слишком сложно, сорри :)
Вид для печати
Вроде как починил таки счетчик на главной. Те кто заходил на сервер до починки, не отображаются, перезайдут - все гуд будет. Исправил пару ошибок с посадкой на вражеской территории. С самой базой теперь вроде все ок, далее на очереди вебмордень.
Ты на меня пожалуйста не обижайся, просто хочется всего сразу и побольше :) . Я очень ценю то, что ты делаешь и нисколько не пытаюсь тебя торопить...
Теперь все-таки по делу:
Если получается так, что игра при вылете лаунчера не записывает смерть, когда самолет с пилотом разбивается, то смею предположить, что игра проверяет наличие игрока на сервера в момент смерти пилота. Может быть имеет смысл и тебе проверять. Я так понимаю, что смерь в твоей стате присуждается при АкторДед, может быть проверять есть ли игрок, связанный с актором, на сервере, если нет, то смерть не писать, только победу тем кто повредил самолет.
По поводу групповых побед. Может быть просто в общий счет побед, из которого потом пересчитываются всякие коэффициенты, писать как 0,5, а не как 1.
Память по коммандеру - да, в курсе, это исправится, там много чего в "режиме отладки" - поотключаю, уже не надо. Коммандер вообще будет без интерфейса - админка отдельная будет, ибо не нужен он там.
MySQL - по оптимизации там еще есть куда идти, инфы дохренища блин. Надо периодически чистить базу.. Либо закидывать инфу куда-то в дамп, а между перезапусками заливать в базу. Пока периодически базу надо чистить. Есть процедура - clear_base, она выполняет корректную очистку. В одной events уже 100 000 записей. В принципе как индексы порасставляю - должно стать полегче + архивация старых данных.
Самому процессу MySQL можно как-то граничить процессорное время? На всей кухне это не должно сказаться в принципе.
Наверное проще поднять приоритет лончер.учу при запуске из коммандера, раньше, когда он стартовал из бат файла, я толкал его всегда с ключем /high
start /high Launcher.exe -server
То Small_Bee:
Предложение по структуре БД-ы: Может, есть смысл сделать "уплотнение записей"?
Поясню - сейчас, видимо, пишется посекундная запись о нанесённых повреждения, которые зачастую "дублируют" друг-друга.
Пример:
22.01.12 15:48:41
Sponger 0.109803 6
Носовая часть 0.078431 10
Левое крыло 0.062745 4
Кокпит 0.039215 6
Hatch 0.011765 1
Всего: 0.301959 27
Незначительная утечка топлива - -
22.01.12 15:48:41
Sponger 0.415686 1
Левое крыло 0.411764 3
Хвост 0.192159 21
Киль 0.011765 1
Правый стабилизатор 0.007843 1
Всего: 1.039217 27
Отказ оружия - -
Отказ електробатареи - -
(ОПЕЧАТКА в слове электробатарея, и в слове электрооборудование)
22.01.12 15:49:04
Двигатель 0.015686 2
Sponger 0.015686 3
Всего: 0.031372 5
и т.д. .....................
М.б. стОит " скомплектовать" ВСЮ сводку по повреждениям от одного типа оружия и одному противнику?
Далее можно "разбить" на минуту-две такие сводки (чтобы было понятно что человек пострелял по врагу в начале вылета, к примеру, а потом они встретились ещё раз через полчаса) и по "завершению" вылета одного из пилотов.
ИМХО таким образом получится размер БД-ы меньше, т.к. будут убраны "повторяющиеся" данные, а также статистика станет более краткой и понятной для чтения и обработки. А то иногда такая "портянка" за вылет на странице открывается :)
К примеру, вышеуказанные записи можно было-б свести к такой:
22.01.12 15:48:41-22.01.12 15:49:04
Sponger 0.109803+() 6 + ()
Носовая часть 0.078431 10
Левое крыло 0.062745+() 4 + ()
Кокпит 0.039215 6
Hatch 0.011765 1
Хвост 0.192159 21
Киль 0.011765 1
Правый стабилизатор 0.007843 1
Двигатель 0.015686 2
Всего: 1.039217+() 27+()
Незначительная утечка топлива - -
Отказ оружия - -
Отказ електробатареи - -
Понятно, что такой подход повлечёт за собой увеличение загрузки процессора, но всё-же...
Как один из вариантов, если уже "поздно" переделывать структуру БД-ы, такой метод можно прикрутить только к GUI.
З.Ы. ОГРОМНОЕ спасибо за проделанную работу, вещица получилась просто супер! :cool:
--- Добавлено ---
И ещё - в статистику, видимо, неверно пишутся сбитые "одноцветники".
Сегодня я сбил 3 раза некого * RedScoty * http://r4.repka.su/member.php?id=212 из своей команды. Пристал, хад, струляет, сбить пытается... Я от него честно бегал минут 5, потом пришлось приземлять хулигана. В чат он не отвечает, и, видимо, ведет себя так не в первОй, атаковал не только меня.
Ну дык вот, в моей статистике "свои" сбитые не числются, хотя сервер в чат делел запись о том, что я сбил своего.
http://r4.repka.su/member.php?id=142
На странице статистики http://r4.repka.su/battle_stats.php не отобразился утренний рестарт, показывает что сражение длилось 23-59, проверил - рестарт был.
22.01.2012 9:05:27 restart server
Мне в стат пишут вылеты на таких самолетах, на каких я не летал сроду на Р-4. У меня одного так?
И еще вопрос, как заканчивать вылет сев на свой филд? Появляется надпись "вернулся домой", нажимаю еск, "создать". А вместо появления в самолете сбрасывается выбор филда, приходиться выбирать филд и нажимать "создать" еще раз. В чате читаю - "успешно вернулся домой". Т.е. вылет засчитан несостоявшийся.
И ещё - 2 раза начисляются очки за один сбитый самолёт:
http://r4.repka.su/sortie.php?id=4039 - в самом конце списка пилот KLEPA. зачислены 50 и 75 очков.
http://r4.repka.su/sortie.php?id=4032 - вот его вылет.
Да, уплотнение сейчас идет посекундное: атакующий - оружие - жертва, куда попал. "Куда попал" тоже сжаты, например у нас есть только "Правое крыло" а в игре оно разбито на несколько частей. Плюс не учитываются повреждения целостности, к примеру, от пожара - иначе там совсем заваливает запросами. Похоже действительно придется сделать поминутное, все равно слишком много получается. Но тут тоже есть несколько вопросов, например, как отображать, если в эту минуту произошло еще одно событие. Например, самолет был поврежден, плюхнулся на аварийку, и по нему еще раз прошлись. Т.е. получиться, что сначала самолет обстреляли, а после он плюхнулся, или наоборот, что сначала плюхнулся, а после обстреляли. С посекундным уплотнением это не сильно в глаза бросается. В любом случае надо что-то делать.
С одноцветниками есть баг, на локальной базе исправил, но на репку еще не перенес (надо будет всех выгнать и очередной сброс сделать). Это вечером.
--- Добавлено ---
Надо смотреть, сходу ничего не скажу.
--- Добавлено ---
Ссылки на эти вылеты можно?
--- Добавлено ---
Там все верно. Первая запись - начисление очков за убийство пилота, второе - собственно воздушная победа.
Надо-б подумать как статистику на страничку выводить "поужатее" и понятнее... Завтра на работе покажу нашим БД-делам и сайто-делам :)
Чего надумаю(ем) - отпишусь. Вдруг пригодится :)
Тимофей, а я могу подкорректировать скрипт, чтобы решить злободневную проблему 2-ых спитов? Или пока лучше ничего не трогать? В принципе не горит...
А можно (в кратце) структурку текущей БД-ы расписать?
отправил. Чем сможем - поможем :)
а можно я буду новичком??? :)
Это, конечно же, все понятно. Но я не думаю, что много будет "извращенцев", меняющих ник после каждой победы. По сути, если ты вылетел на спите и уже одного сбил, то к/жизни = 1, а значит спит2а уже не доступен :) Ну, конечно, же можно себя убить, но ведь тогда и статом не похвалишься :D Мне кажется, что этого будет достаточно. Один-два самоубийцы-ради-спита2а не сделают погоды.
А кто реально плохо летает, у кого к/ж меньше 1 тому спит2а будет доступен.
Ну, плюс еще надо будет докрутить идею с балансом, о чем Бача писал...
а реально ли к списку онлайн пилотов на главной странице прикрутить их крафты?
В этом вылете мой пилот получил ПК, в стате жив.
http://r4.repka.su/sortie.php?id=2769
ПК прописали уже на посадке и самолет с убитым пилотом грохнулся на ВПП, может быть из-за этого ошибка?
То же был случай. Словил ПК при выходе из петли. Сижу жду когда самолет упадет. Долго жду. Потом нажал АльтФ2. А самоль в горизонте, резко так на крыло кувырк, и в пике. Упал. В стате все ок - убит, разбит и т.д.
В друкой раз зазевавшегося спита в горизонте заПКшил. Ну по сообщению увидел что все, я айс, оставил в покое самоль. А он плавненько так на воду лег. И лежал там минут 5. Ид.2354
Вопрос! Не перехватывает ли бот управление при ПК пилота?
--- Добавлено ---
у тебя походу было ранение в глазки :D Или это в игре может быть имитация потери сознания при определенных ранениях. В стате после ранений прописывается пилот погиб. Тогда и ПК прописывается. Или пилот раненый вместе с самолем упал. То же ПК. А у тебя просто ранение, даже не тяжелое. Должна была выжить :)
Грустно бывает, когда удачно заходишь на цель, а тут лаунчер:(... вдвойне груснее, когда в статистику записывают гибель за это. В другой раз, при лаунчере, записалось будто прыгнул с парашютом, а он не раскрылся. Хотя я не прыгал...
...то есть, получается, что у кого чаще выпадает игра, тот и проиграл совсем? %)
ps Да, ещё две гибели не понятно за что засчитали сегодня, садился хоть и израненный но на своей полосе. Может потому, что после посадки выходил: альт+Ф2 ?
Прыгал бот, после того, как ты отвалился.
Принимаем как аксиому то, что с альт-Ф2 или падением лаунчера вылет не заканчивается. Когда игра вашего персонажа удалит - тогда и закончится. Т.е. нажали альт-Ф2, а после пилоту кто-то очередь в голову влепил, или самолет рухнул - будет засчитана гибель.
Что-бы конкретнее - ссылки на вылет надо.
Получается, что у кого чаще случаются осечки, тот и "проиграл" совсем. Се ля ви. )
Повезло.Зато меня постоянно "убивают", ни разу не попав... http://r4.repka.su/sortie.php?id=2653 http://r4.repka.su/sortie.php?id=4065
можно как то исключить фатальное влияние лаунчера на результаты статистики, причём выкинуло не когда меня "убивали", а совсем наоборот.
А то как то не совсем объективно получается, и люди потом по этим "результатам" "выводы" делают :P
Вот ещё парадокс в данном: Вылет №4130 http://r4.repka.su/sortie.php?id=4130 всё летаю,
а в следующем: Вылет №4131 http://r4.repka.su/sortie.php?id=4131 уже давно приземлился ...:eek:
Кстати "пустых" вылетов достаточно много, а ведь они тоже "плюсуются" и на стат влияют...
http://r4.repka.su/sortie.php?id=2569, http://r4.repka.su/sortie.php?id=2623, http://r4.repka.su/sortie.php?id=4028, http://r4.repka.su/sortie.php?id=4130...
т.е из 18 засчитанных, 4 непонятных вылета с нулевым результатом, кардинально ухудшают результативность...так что пока к сожалению в данном виде статистика не ко всем объективна...
В данном вылете тоже парадоксы:в лежащий на полосе самолёт, случайно попали 2 пульки (причём не в голову, а обшивку) засчитали, что я сбил своего :eek:, хотя до меня мессера его ушатали дальше не куда, а я получаюсь "диверсант" и враг народа..
http://r4.repka.su/sortie.php?id=2498
вот с моей стороны http://r4.repka.su/sortie.php?id=2510
http://r4.repka.su/sortie.php?id=3843
для рассмотрения.
http://r4.repka.su/battleplane.php?id=3842
Вот твой самолет. Смотри в самом низу. Можно сделать 100% вывод, что твой самолет весьма почтенно рухнул на землю, а после взорвался.
--- Добавлено ---
Аналогично. http://r4.repka.su/battleplane.php?id=2653, http://r4.repka.su/battleplane.php?id=4064
По поводу "все летаю". Это самолет, который ты создал, но скрипт миссии выкинул тебя обратно в старый. Смотри дату "Завершен", т.е. самолет после создания был сразу же удален. В стате он посчитается как посадка. Наверное так. Скрипт Веточки я не смотрел, что именно и как он делает, я не знаю. К сожалению, учесть все, что создатель миссии напишет, я не в состоянии.
"Две пульки". Согласен, не очень красиво, но пока я не придумал, как железно отделить мухов от котлетов с приемлимыми затратами. Пока стараемся аккуратнее быть. Проблема на карандаше с самого начала.
Сейчас работа по базе отдана весьма грамотному человеку (т.е. я там даже рядом не стоял), думаю ситуация улучшится.
Было бы здорово, если бы ты всё-таки сделал проверку есть игрок при смерти самолета к которому он привязан или нет. Если нет, то не писать смерть, писать только килл, если кто-то самолет повреждал. В предыдущей версии у меня 3/4 смертей было из-за вылета лаунчера. Такая же картина у многих остальных, не только у отметившихся выше. Если посмотреть стат, то можно с удивление обнаружить, что очень много игроков у которых К/Д меньше К/Поражений, т.е. смерть от лаунчера чаще, чем смерть от противника. Это очень существенный момент, который отпугнет многих игроков от проектов, где будет стоять этот стат.
А школьников, которые будут этим пользоваться в целях улучшения стата, т.е. выходить с сервера под атакой, можно будет отлавливать силами самих игроков и наказывать административно... в прицеле всегда видно - лаунчер выскочил или игрок сам вышел из игры.
Ладно, я повторяюсь. Но это самая основная проблема нынешней статы (ПМСМ).
Сама игра не пишет смерть игроку при вылете лаунчера, хотя и записывает килл тому кто повредил "вылетевшего" игрока. Отсюда можно сделать вывод, что при вылете лаунчера все-таки сама игра проверяет был ли игрок в самолет при его падении.
В стате СмолБи хитрая защита от умников, которые драпают из игры под атакой. Его стат привязывает ник к самолету и если игрок выходит из игры пока самолет не сел, то всё что случится с самолетом под управлением бота запишут игроку. Идея отличная и решает проблему "смены самолёта под атакой", но пока лаунчер падает это создает значимую проблему с лишними КИА. А КИА при вылете лаунчера происходит по любому, т.к. управление боту не передается, игра до момента падения считает, что самолетом управляет игрок, который, понятно, уже никак им не управляет, в итоге никем не управляемый самолет рано или поздно падает вместе с пилотом. Но в момент смерти пилота игра отвязывает игрока от этого пилота и стандартным игровым статом КИА не записывается, а у СмолБи записывается, значит дело именно в его "привязке" ника к самолету.
Да какая разница, это ж равносильно диско, стрик то все равно прервется.
Просто нужно отнестись к этому, как к присутствию некой третьей стороны, некому божеству, которое наказывает всех.
И бороться с ним просто :)
Советы от Маврухи.
После каждой посадки или смерти перезапускать игру. Перед выходом с сервера предварительно покинуть самолет путем тыканья во флажок стороны и подтверждения запроса (для статы полезно ;) ).
Если во время свалки у вас началось слайд шоу - это звоночек, что скоро вас может посетить выкидыш или случится краш об землю или кого-то еще. Не испытывайте судьбу, отбросьте сомнения. Широкий обзор, взгляд на прицел и курс в сторону от свалки и суши могут продлить вам жисть. Даже если у вас все нормализовалось, не вздумайте возвращаться в бой или пытаться найти кого-то для одиночного боя. К тому же у вас может появится хвост. На базу, и только на базу. От хвоста избавляться по ситуации. Сели, вышли, оставили самолет, перегрузили игру.
Все ИМХО, но я так живу уже два дня и ни чё так - привык. И материться меньше стал, что весьма радует домочадцев :D
Просто представьте, что во время перезапуска игры вы заполняете отчет о вылете (зайдите на сервер статы, пасатрите чего натворили), в это время техники чинят, заправляют самолет, обед, сто грамм за сбитый.... Так то не долго :D
MAVR, у тебя с английским хорошо? Будешь ответственным за общение с англоязычными стриконабивателями в проектах :D
Меня агитировать не надо. Я за работу статы беспокоюсь, а не за свой стат на Р4. Я и без статы знаю чего я могу и чего не могу :D
Однако я очень хорошо помню какие холивары разворачивались на форумах из-за проектного стата, на какие ухищрения не шли, чтобы не схватить лишний раз КИА и логи в ВЕФ правили, а взлетали-садились-взлетали в ВЗФ, и оперативно меняли ники до прихода репорта и многое другое, а если кто-то считал, что получил КИА незаконно, то мегабайты ... (как бы это помягче сказать) заваливали форумы. И если мы запустим проект, где КИА можно схватить по совершенно независимым от игрока причинам, то ничем хорошим это не закончится. По крайней мере англоязычную аудиторию мы вряд ли привлечем.
Я просто о том, что пока лаунчер не починят Тёма врят ли что сможет исправить в этой ситуации.
это ж вроде твои слова.Цитата:
Тем не менее Сама игра в такой ситуации КИА не пишет...
Но если это пока технически не решается, то забей. Тем более будем надеяться, что лаунчер все-таки починят.
А что, уже планируется запуск проекта? Или же пока только тесты, притирки, ожидание помощи от разработчиков.
Даже когда починят лончер, останется Стим, который может вырубить сервер или диско любого игрока в любой момент. У хороших пилотов стрик чаще рвется по недоразумению, чем от действий противника. Они с такого проекта убегут, тут Веточка права.
Это я писала до того как подумала :) А когда подумала, то поняла, что тут фишка не столько в лаунчере, сколько в привязке ника игрока к самолету.
Ничего не помешает запустить проект сразу после отладки стата от СмолБи, прикрутить к работающему стату вычисление выполнения задач, награды сквадам и звания будет не так сложно как сделать и отладить стат, который обрабатывает все что произошло в игре. По крайней мере отыгрыш классической Битвы за Британию, где не требуется двигать линию фронта и гонять наземку, а требуется обрабатывать только результаты бомбардировок и воздушных боев, можно будет легко запустить.
А еще следует понимать, что убегут они вместе со своими сквадами. Топ-пилоты это в большинстве своем командиры и иные лидеры сквадов, которые и определяют будет сквад летать в этом проекте или нет. Бегут лидеры и уводят за собой сквад.
Ну ладно, допустим, меня вы уболтали, черти красноречивые. :D
А что нам скажет по этому делу начальник траспортного цеха? (с) :mdaa:
Что, или кто, сможет ему помочь в решении данной проблемы?
Может ввести правило, что б при посадке/прыжке/ПК пилот отсылал серверу какое-нибудь типа ОК! Тогда стата по отсутствию этого ОК! считала бы, что произошел инцидент, и вылет завершает бот а не человек.
Имхо, это породит больше проблем, чем решит.
1. Далеко не только школьники этим занимаются. Я бы сказал, что процентов 90 игроков воспользуются лазейкой, если найдут. Из серии "Что вы способны сделать при условии, что об этом никто не узнает".
2. Охромевшая логика. Самолет был, стрелял, после сгорел, никто его не покидал, но никто и не умер. Хрень.
3. Человек вылез из самолета в воздухе, сел в другой, его кикнуло (по любой причине). Писать первому смерти или второму? Или третьему? А если не будет скрипта или настройки, ограничивающей пересадки? Таких "Не надо записывать смерть" может до 10-ка набраться на 1 человека. Еще большая хрень.
4. До проекта еще очень далеко.
5. Либо решить это дело кардинально - вообще не будет никаких вылетов, посадок и прочего. Что настрелял сидя в кабине, то и твое. Это вообще театр абсурда.
Ждем патча, если ситуация кардинально не изменится, будем что-то думать. Может быть. Не раньше.
И ник игрока привязывается не к самолету, а к персонажу. Это важно.
На каком-то проекте в Иле вроде бы проверялось, есть ли противник рядом в момент диско.
зы.
Пишут, что от вылета лончера помогает очистка кеша перед запуском игры. Хватает на 1-1.5 часа.
а еще такие настройки спасают http://grathos.de/temp/CoD/No_Leak.jpg