Massive Assault
http://www.massiveassaultnetwork.com/forum/

проигрыш по времени?
http://www.massiveassaultnetwork.com/forum/viewtopic.php?f=40&t=24847
Page 1 of 1

Author:  igor54 [ Tue Feb 24, 2009 1:54 pm ]
Post subject:  проигрыш по времени?

моя игра против козлодоева №313904. игра висела в архиве - ход оппонента, пишет время у оппонента истекло, прошло два дня я нажал "починить игру" в итоге мне засчитали проигрыш! это почему??? модеры как так?

Author:  veta [ Wed Feb 25, 2009 12:57 am ]
Post subject: 

такое могло быть если ты запустив игру и недождавшись с сервера игры с ответными ходами нажал клавишу ЗАКОНЧИТЬ. происходит следующее соперник уже сделал ход но он до тебя просто недошел и ты заканчивая партию получается сдаёшься:)

Author:  igor54 [ Wed Feb 25, 2009 3:48 am ]
Post subject:  такое могло быть если ты запустив игру и недождавшись с серв

я не открывал игру, она числилась в архиве "текущие" - ход оппонента, у него время вышло, просрочено было 2 или 3 дня. обычно игра в таком случае автоматически заканчивается, поэтому я и нажал "починить игру". jedi? что скажешь? это глюк или что? как проверить? у меня проигрыш останется?

Author:  Kozlodoyev [ Wed Feb 25, 2009 4:25 am ]
Post subject:  Re: проигрыш по времени?

igor54 wrote:
моя игра против козлодоева №313904. игра висела в архиве - ход оппонента, пишет время у оппонента истекло, прошло два дня я нажал "починить игру" в итоге мне засчитали проигрыш! это почему??? модеры как так?


Здравствуйте, вообще то вы сдались мне в этой игре еще 8 дней назад.
Скорее всего проигрышь застрял где то а вот теперь вы его получили.

Author:  igor54 [ Wed Feb 25, 2009 11:23 am ]
Post subject:  Re: проигрыш по времени?

вообщето я не сдавался, ход ведь не мой был

Author:  Jedi_Knight [ Wed Feb 25, 2009 5:03 pm ]
Post subject: 

Это бред какой-то.
Время от времени поступают жалобы от игроков что их игра завершилась сама собой. Не знаю пока что с этим делать :(

Author:  Ellestar [ Thu Feb 26, 2009 12:40 pm ]
Post subject: 

Ну для начала можно записывать в лог, какой именно кусок кода вызвал завершение матча, ну и может пару самых важных переменных заодно. А потом при следующем конкретном обращении проверить, что именно произошло.

Author:  Jedi_Knight [ Wed Mar 11, 2009 3:57 am ]
Post subject: 

Исправил глюк с неправильным финишированием в играх с обычными часами.
Изучаю что там с шахматными.

Author:  Jedi_Knight [ Wed Mar 11, 2009 3:17 pm ]
Post subject: 

При завершении игр сервер следовал следующей логике.
бралось время которое прошло с последнего хода первого игрока и время которое прошло с последнего хода второго. если какое-то из этих времен было больше таймлимита - игра завершалась в пользу того кто ходил последним.

Теперь представим, что у противник тянет время. в какой-то момент он ходит, а мы, еще не получив ход, жмем finish. Сервер видит, что с момента нашего последнего хода прошло очень много времени - значит можно финишировать. А так как последним сходил противник, то победа достается ему!

Отсюда следует следующий алгоритм для читерства:
долго тянем время, и в момент когда у нас оно закончилось, пока противник не прибил игру, делаем ход. Выходим из игры, переводим часы вперед на таймлимит, заходим в игру, появляется кнопка finish, жмем, и на сервер уходит запрос о финишировании. Сервер видит что у врага ход был сделан очень давно, и отдает победу нам.

Примерно то же самое можно было делать с шахматными играми, я это исправил, но сейчас все еще раз проверяю.

Page 1 of 1 All times are UTC - 5 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/