Счетчик
|
|
hripun | Дата: Понедельник, 09 Мая 2011, 08:10 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Доброго времени суток! У меня есть к вам один вопрос который я не как не могу решить ((( и если вас не затруднит помогите пожалуйста.. Я пробую писать игру и мне надо что бы сразу после регистрации у персоонажа была полная неприкосновенность в течении 3-х часов и что бы в игре шел счетчик типа: Неприкосновенности осталось 2:35 мин секунды мне не нужны в принципе даже можно что бы сам счетчик не переключал минуты а это делалось путем перезагрузки страницы а как это сделать не знаю( при регистрации в базу заносится время и дата регистрации ,к ним как я понимаю надо прибавить мои необходимые 3 часа или как то так.. если сможете плиз помогите!!!!!!!!!!!!!
Нужна помощь в тестировании моей игры
Резервация
6.03.2016
|
|
| |
|
hripun | Дата: Понедельник, 09 Мая 2011, 08:43 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| Пишу на php с использованием MySQL это текстовая игра . в том то и дело что я не знаю как при регистрации прибавить в базу эти 3 часа и сделать к этому всему счетчик(
Нужна помощь в тестировании моей игры
Резервация
6.03.2016
|
|
| |
anton-gar | Дата: Понедельник, 09 Мая 2011, 11:33 | Сообщение # 4 |
WEBmaster
Сейчас нет на сайте
| Не знаю в чём возникают сложности... Но данную задачку можно решить так: предлагаю сделать дополнительный столбец в бд, в котором будем хранить время+3, Дальше: $date=date(H); $n_date=$date+3; $zapis=mysql_query("INSERT INTO имя табл VALUES ('$n_date ')"); на странице, где находится таймер: $date=date(H); $b_date=mysql_fetch_array($ имя соединения); $ch=$b_date-$date; echo $ch; Ещё только надо дописать минуты, будут сложности пишите... Но это лишь набросок, а не готовый скрипт! Добавлено (09.05.2011, 11:33) --------------------------------------------- Лучше даже будет воспользоваться функцией explode, записав бд $b=date("H:i"); $u=explode(":", $b); $i=$u['0']+3; $zapis=mysql_query("INSERT INTO имя табл VALUES ('$i:$u[1]')"); потом извлекать и сравнивать $date=date("H"); $k=mysql_fetch_array($ имя соединения); $c=explode(":", $k); $ch=$c['0']-$date; echo $ch; Таким образом и код сократим, и не возникнет проблем с записью минут!
Сообщение отредактировал anton-gar - Понедельник, 09 Мая 2011, 13:31 |
|
| |
hripun | Дата: Понедельник, 09 Мая 2011, 19:52 | Сообщение # 5 |
был не раз
Сейчас нет на сайте
| Все я решил проблему свою! ))) спасибо за вашу не оценимую помощь) вот код может кому пригодится Code <?php
$regTime = 1304917193;//время регистрации. нужно взять из БД.
$timePass = time() - $regTime; $interval = 3*60*60; //неприкосновенности осталось 3 часа
if ($timePass > $interval) { echo "неприкосновенности -"; } else { echo gmdate('H:i:s', $interval - $timePass); }
?>
Нужна помощь в тестировании моей игры
Резервация
6.03.2016
|
|
| |
Abibas220 | Дата: Воскресенье, 15 Мая 2011, 00:27 | Сообщение # 6 |
частый гость
Сейчас нет на сайте
| Предложу свой вариант) Code $up_time= mysql_query("UPDATE users SET respaun='".date("Y-m-d H:i:s")."'+ INTERVAL 3 MINUTE WHERE id=$id"); Этим запросом я добавил время на три минуты больше в базу данных в специальное поле respaun, а для проверки сколько осталось время до конца пишу такой код- Извлекаю из базы строку respaun... Code if (strtotime(date("Y-m-d H:i:s")) < strtotime($respaun)){ // если текущее время меньше значения в $respaun то $raznica=strtotime($respaun)-strtotime(date("Y-m-d H:i:s")); echo "До респауна осталось $raznica сек." }else{ echo "Вы воскресли." }
Zoombee-новая браузерная игра для телефонов!!!
|
|
| |
hripun | Дата: Воскресенье, 22 Мая 2011, 12:31 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| Возникла такая проблема с моей неприкосновенностью! если персоонаж в игре то по окончании времени у него все нормально обновляется в базе но если его нету то по истечении времени неприкосновенность в базе не обновляется и другие игроки видят его в вечной неприкосновенности .... как сделать так что бы значение в базе менялось даже если юзер оффлайн ? вот код сценария: Code $result = mysql_query ("SELECT create_time,create_date FROM user WHERE id ='$id'"); $nepr = mysql_fetch_array($result111); // Выбор из базы времени и даты регистрации $creat_time = $nepr['create_time']; $creat_date = $nepr['create_date'];
preg_match_all( '@\d{2}@', $creat_time, $matches ); $hour = intval($matches[0][0]); $minute = intval($matches[0][1]); $second = intval($matches[0][2]);
preg_match_all( '@\d{2,4}@', $creat_date, $matches ); $year = intval($matches[0][0]); $month = intval($matches[0][1]); $day = intval($matches[0][2]);
/*echo mktime($hour, $minute, $second, $month, $day , $year);*/ if ($ne['nepr'] == 0) { $regTime = mktime($hour, $minute, $second, $month, $day , $year);//время регистрации. нужно взять из БД.
$timePass = time() - $regTime; $interval = 3*60*60; //неприкосновенности 3 часов после регистрации
if ($timePass > $interval) { $result = mysql_query( "update user set nepr = 1 where id ='$id'"); } else { echo "<span class='news_date'>Неприкосновенности <br>осталось - </span>".gmdate('H:i:s', $interval - $timePass)."<br><span class='knopka'>----------------</span><br>"; } } }
Нужна помощь в тестировании моей игры
Резервация
6.03.2016
|
|
| |
Assasin | Дата: Воскресенье, 22 Мая 2011, 13:13 | Сообщение # 8 |
web-coder
Сейчас нет на сайте
| Создать файл с кодом отмены неприкосновенности и поставить его на cron
|
|
| |
hripun | Дата: Воскресенье, 22 Мая 2011, 17:23 | Сообщение # 9 |
был не раз
Сейчас нет на сайте
| Assasin, а можно практически показать как это? что то прочитал в инете про это и нечего толком не понял. хотя мне всё же не крон нужен
Нужна помощь в тестировании моей игры
Резервация
6.03.2016
Сообщение отредактировал hripun - Воскресенье, 22 Мая 2011, 19:16 |
|
| |
webstrict666 | Дата: Понедельник, 23 Мая 2011, 04:07 | Сообщение # 10 |
постоянный участник
Сейчас нет на сайте
| Если у вас хостинг (а не выделенка) , то в панеле есть Крон, и вся документация по нему (если нету то хост г...) Крон
http://GAMESKROL.RU Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
|
|
| |