Понедельник, 25 Ноября 2024, 17:17

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Счетчик
hripunДата: Понедельник, 09 Мая 2011, 08:10 | Сообщение # 1
был не раз
Сейчас нет на сайте
Доброго времени суток!
У меня есть к вам один вопрос который я не как не могу решить ((( и если вас не затруднит помогите пожалуйста..
Я пробую писать игру и мне надо что бы сразу после регистрации у персоонажа была полная неприкосновенность в течении 3-х часов и что бы в игре шел счетчик типа:
Неприкосновенности осталось 2:35 мин
секунды мне не нужны в принципе даже можно что бы сам счетчик не переключал минуты а это делалось путем перезагрузки страницы
а как это сделать не знаю(
при регистрации в базу заносится время и дата регистрации ,к ним как я понимаю надо прибавить мои необходимые 3 часа или как то так..
если сможете плиз помогите!!!!!!!!!!!!!


Нужна помощь в тестировании моей игры

Резервация

6.03.2016
anton-garДата: Понедельник, 09 Мая 2011, 08:41 | Сообщение # 2
WEBmaster
Сейчас нет на сайте
Для переключения времени без перезагрузки можно сделать, например, на flash...
Если я правильно тебя понял, то после, занесения в базу времени и прибавления 3 часов, можно сравнивать его и настоящее время - их разнаца и будет отражать твой счётчик.
На каком ЯПе пишите?


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
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг