|
|
|
| Есть в БД строки, например:
1 логин1 логин2 удар блок
...
35 логин1 логин2 удар блок
Когда у игрока открывается страница battle.php, идет поиск строк, чтоб у первой строки логин1=логин2 у другой и у первой логин2=логин1 у второй, при этом логин1 у первой=логин игрока. После того, как нужные две строки найдены - проверябтся удары/блоки, отнимается уровень жизни и т.д., после этого строки удаляются из БД.
Все работает, но когда у обоих иргоков одновременно обновляется страница, то размен ударами происходит два раза. Как можно избавиться от этого? | |
|
|
|
|
|
|
|
для: Mifey
(10.02.2010 в 10:33)
| | Воспользуйтесь переадресацией на другую страницу после размена ударов | |
|
|
|
|
|
|
|
для: chexov
(10.02.2010 в 10:38)
| | При чем тут переадресация? Когда один открывает страницу выполняется скрипт и пока строки не удалились у второго тоже открывается эта же страница. И получается два раза размен происходит | |
|
|
|
|
|
|
|
для: Mifey
(10.02.2010 в 10:58)
| | КАКим образом у обоих иргоков одновременно обновляется страница?
Я понимаю алгоритм так: Зашел игрок А, указал удар и блок, все! на этом его миссия закончилась.
Зашел игрок Б, указал свой удар и блок
Далее скрипт сравнивает удары и блоки, если удар Игрока А пробил блок Игрока Б, то записывается какой то результат и запись об ударах обоих игроков стирается, если нет то еще что нибудь... так? | |
|
|
|
|
|
|
|
для: chexov
(10.02.2010 в 14:56)
| | Игрок А сделал удар, потом Игрок Б сделал удар. при обновлении страницы(она может просто обновиться, или если бой групповой, то снова открывается. чтоб поставить удар на Игрок В). Вот и может и бывает получается, что одновременно открывается страница у нескольких игроков. | |
|
|
|
|
|
|
|
для: Mifey
(10.02.2010 в 17:56)
| | Было бы логично делать проверки, прежде чем выводить что-то пользователю.
Вероятность того, что проверка пройдет с ошибкой очень мала.
К тому же, проверку надо проводить и после действий пользователя.
А по-другому никак не избежать этого. | |
|
|
|