Я не мог понять такой идиотской вещи - когда в онлайн игре записывать очки. Игрок же их постоянно зарабатывает. И есть одно условие - игра браузерная. Допустим базу я держу не на ВПС, а на обычном хосте. в реальной игре я же не могу себе позволить на каждом заработанном очке писать его в базу. Я сделал уже запись в базу раз в 10 минут. Кстати все равно -тариф не держит - письма счастья с хоста идут. но получается если грок поиграл там 8 минут заработал очки и закрыл игру и получил ноль из заработанного - я ему говорю извнин братишка надо было поиграть 10 минут тогда бы ты заработал очки. Вобщем главная проблема - когда игрок закрывает браузер, просто закрывая страницу с игрой, как отловить это событие - я тормозил. Сначала думал ловить событие дисконект от сервера. Но на фотоне и на стандартной сети в браузере не срабатывает событие дисконект от сервера когда игрок просто закрывает страницу - не успевает что ли. И только в день програмиста до меня доперло что когда игрок играет курсор же залочен. Чтобы закрыть браузер ему нужно обязательно нажать ескейп для разлочивания курсора. И событие записи очков в браузерных играх надо производить именно по клавише ескейп. И это будет совершенно точная запись очков. Конечно при входе в магазин или инвентарь тоже надо показывать курсор и значит в этот момент игрок тоже может покинуть игру - это проблемка. Получается что надо записывать очки также и при каждом заходе игрока в инвентарь. А он может туда заходить херову тучу раз.
Скрытый текст:
А делать так игрок нажал клавишу инвентаря и выходит табличка - сука, ты собираешся сейчас выходить? клавиши--да =нет если да - соответственно записываем если нет - выходит еще сообщение - ну смотри сука, если ты меня наебал, очки не будут записаны в базу!!!
А вот такую функцию брать onbeforeunload Т. е. есть функция onload это я знаю - на открытии страницы. Короче это на закрытии - спасибо. Так же можно намного оптимизировать запись очков. Кстати есть же вариант делать страницу юнити веб плеера на php. Одно но - по этой функции не удастся выполнить php скрипт опять же без лишней кнопки. Думаю попробовать сделать коротку задержку timer по onbeforeunload и за это время успеть передать обратно месагу в юнити и запустить php оттуда.
Пишут что onunlod не срабатывает в moziile советуют ставить вот так 2 раза. Я пока стремаюсь таким кодом делать. А у кого то в браузере не работает алерт? Если не работает отпишитесь пожалуйста в каком браузере.
Но самое главное обратите внимание как будет вести себя фрейм если не перезегрузить, а закрыть эту страницу форума, куда встроен фрейм - алерт не даст. Тут встраивание во фрейм похоже, как встраивают в соц сетях приложение. Значит для соц сетей такой метод не будет работать. Только может если игра пускается на своем сайте Все таки придется итти по событию разлока курсора.