Страница 1 из 4

[fixed] +1 к строящемуся на верфи

Добавлено: 17 июл 2010, 09:00
AlexBlack
Сервер ogame.triolan.com.ua

Суть бага: иногда на верфи строится на 1 больше единиц (без разницы, флот или оборона). Когда 1-2 раза такое происходит, думаешь, не ошибся ли (ну мало ли - не ту кнопку нажал). Особенно заметно, если с аккуратизмом строить кратные 5 отряды - неожиданные 16 тяжелых истребителей вместо 15, или 6 крейсеров вместо 5 заставляют задуматься.

Возможное влияние других построек на верфи (например, строится 1 крейсер, и следом за ним в очереди 10 лазерных установок), или исследований (кажется, каждый раз исследование заканчивалось раньше постройки). Возможно так же, что наличные ресурсы влияют (должно быть достаточно для +1 экземпляра). Не заметил, снимаются ли ресурсы за этот "бонус" (слишком незначительное количество, +-не замечаешь), но время строительства точно не увеличивается. Для приведенного случая можем получить 2 крейсера (за то же время).

Специально воспроизвести не удается, точную цепочку действий, приводящую к добавлению 1 юнита, привести не могу. Подозреваю, что 2 щитовых купола возникают по этой же причине. Обещаю при удачной находке волшебных действий сдать в этой теме :))

Re: +1 к строящемуся на верфи

Добавлено: 17 июл 2010, 09:26
QuantumAh
Возможно. Замечал +1 лазерную установку, +1 большой транспорт - но думал, что обсчитался. Если баг есть, надо искать 8-) у топов значит могут бонусные ЗС возникать

Re: +1 к строящемуся на верфи

Добавлено: 19 июл 2010, 18:16
AlexBlack
День активного использования верфи и очереди построек ни к чему ни привел. Бага невоспроизводима действиями игрока? В связи с этим, предлагаю отклониться от "правильного" оформления отчета об ошибках и спровоцировать администратора на "мозговой штурм".

Тезис А. Бага есть, 4 раза слажать с цифрами я не мог - себе я верю.
Тезис Б. Примерное воспроизведение действий ни к чему не приводит.

Вывод: либо это уже пофиксено (случайно), либо зависит не от игрока. Вопрос (ответ на который возможно сразу позволит найти ошибку):

Не происходит ли на сервере периодического запуска некоего агента/скрипта по расписанию, чаще 1 раза в день, но реже чем каждый час? Не производит ли данный скрипт некоторых операций с базой? Например, бэкап путем реплицирования в другую базу? И если да, не является ли это реплицирование двунаправленным? Тогда есть вероятность попасть с окончанием строительства в момент репликации, а если она двунаправлена, то... база1 копируется в базу2, в этот момент завершается постройка, базы отличаются, и часть записей из базы2 копируется в базу1. То есть получаем а) построенный юнит, и б) скопированный строящийся, завершающийся через секунды.

Это единственное объяснение, приходящее в голову.

Re: +1 к строящемуся на верфи

Добавлено: 20 июл 2010, 23:23
Gorlum
> Не происходит ли на сервере периодического запуска некоего агента/скрипта по расписанию, чаще 1 раза в день, но реже чем каждый час?

Нет.

У меня другая версия - несколько открытых окон. Только так я хоть как-то разумно могу объяснить происходящее.

Re: +1 к строящемуся на верфи

Добавлено: 24 июл 2010, 09:26
QuantumAh
Не происходит ли на сервере периодического запуска некоего агента/скрипта по расписанию, чаще 1 раза в день, но реже чем каждый час?
Скорее каждый час или раз в полчаса. Задал постройку 30 ракет-перехватчиков. Строились около 6 минут каждая (в то время, когда задал, это примерно 22.07 или 23.07). Теперь имею 35 ракет перехватчиков при 3-м уровне ракетной шахты. То есть вот тут точно ошибки не было - мне бы не дали заказать 35 ракет, верно? 30*6=180 минут, 3 часа. Если зависит от серверного скрипта, то как раз +1 ракета раз в 30 минут.
А, да - по поводу окон. Открытых окон вообще не было - я задал постройку, закрыл единственное окно, и ушел на весь день. Значит, версия с окнами точно не подтверждается

2 малых купола

Добавлено: 28 июл 2010, 11:15
well
вобщемто администратор уже знает об этом .

Re: 2 малых купола

Добавлено: 28 июл 2010, 18:10
Ivash
well писал(а):вобщемто администратор уже знает об этом .
знает, я сказал.

Re: 2 малых купола

Добавлено: 28 июл 2010, 18:53
Gorlum
Знаю. С ужасом понимаю, что в коде нигде нет места, где такой глюк мог бы выплыть. Проблема в самом движке и его методе общения с БД - он нетразакционен.

Re: +1 к строящемуся на верфи

Добавлено: 30 июл 2010, 10:02
AlexBlack
Кажется, есть совпадение. Аналогично, 3-й уровень ракетной шахты, 30 ракет-перехватчиков в очередь, время постройки 6 минут. Результат: 34 ракеты. Что-то происходит примерно раз в 30 минут на сервере, и есть шанс попасть в этот момент +-сколько-то секунд с окончанием постройки, при этом строящийся юнит дублируется (не гарантированно - тут похоже влияет масса факторов - но с хорошей вероятностью). Сюда же добавляем случаи с 2-мя куполами - все очень складно. Осталось выяснить точное время "Х", и добиться у самого тех же 2-х куполов - баг будет 100% подтвержден.

Re: +1 к строящемуся на верфи

Добавлено: 30 июл 2010, 14:20
Gorlum
AlexBlack писал(а):Кажется, есть совпадение. Аналогично, 3-й уровень ракетной шахты, 30 ракет-перехватчиков в очередь, время постройки 6 минут. Результат: 34 ракеты. Что-то происходит примерно раз в 30 минут на сервере, и есть шанс попасть в этот момент +-сколько-то секунд с окончанием постройки, при этом строящийся юнит дублируется (не гарантированно - тут похоже влияет масса факторов - но с хорошей вероятностью). Сюда же добавляем случаи с 2-мя куполами - все очень складно. Осталось выяснить точное время "Х", и добиться у самого тех же 2-х куполов - баг будет 100% подтвержден.
Я тебе скажу что это. Полное отсуствие использования транзакций в запросах плюс совпадение обработки одной планеты от нескольких игроков. Очередь получается обрабатывается два раза. Чем быстрее строится юнит - тем больше вероятность.

Как вариант - часто рефреш давиш в браузере.