{% else-1 %}
Обновить
* Тема закрыта!
1. [автор] (22 янв 2017, 23:01) [0/0] [0] [спам] [под]

В общем есть код для работы в такси,расскажу немного о алгоритме его. Игрок может отработать в день 8 часов ,за это отвечает в базе столбец taxi_work= 8.Потом есть time_start_taxi,taxi_time
time_start_taxi-это время старта ,то есть когда приступил к выполнению работы
taxi_time-это время когда будет завершена работа
Вот код который за это все отвечает
[q]
$mode = htmlspecialchars(trim($_GET['mode']));
switch ($mode) {
case 'taxi' :
if(isset($_GET['tx'])){
$time = time();
$tm = $_POST['tm'];
$timer = 60 *60 * $tm;
$tr = $time + $timer;
$ost = $time - $tr;
if (empty($tm)){
$err = 'Вы не выбрали количество часов';
$_SESSION['message'] = 'Вы не выбрали количество часов';
header("Location: taxi.php"*;
}
if ($tm > $arr['taxi_work']) {
$_SESSION['message'] = 'Выберите количество часов меньше или равное ' . $arr['taxi_work'] . ' ';
header("Location: taxi.php"*;
}
if (!isset($err)) {
$sql->query("update `users` SET `time_start_taxi` = '".$time."' , `taxi_work` = `taxi_work` - '" . $tm . "' ,`taxi_time` = '" . $tr . "' WHERE `id` = '" . $arr['id'] . "'"*;
$_SESSION['message'] = 'Вы отправились бомбить улицы';
header("Location: taxi.php"*;
} else {
echo $err;
}
}
break;
default:
echo "<div class='loc'>";
echo "<img src='style/images/h/image.jpg' alt='o'></div>";
echo "<h1>Такси</h1> ";

echo "<div class='ci'>";
echo date( 'H\hi s l d F ', time() );
echo '<br>';
echo date( 'H\hi s l d F ', $arr['taxi_time'] );
echo '<br>';
$timerTaxi=$arr['taxi_time'];
$timerTaxi=$timerTaxi-time();
if($timerTaxi>0)
{
$s=$timerTaxi%60;$timerTaxi=(int)($timerTaxi/60);
$m=$timerTaxi%60;$timerTaxi=(int)($timerTaxi/60);
$timerT = ($m<10?'0':'')."$m:".($s<10?'0':'')."$s";

}
$time= time();
if($arr['taxi_work'] == 0){
$_SESSION['message']= 'Вы использовали 8 рабочих часов';
header("Location: taxi.php"*;
}else {
echo ' Вы можете работать ' . $arr['taxi_work'] . ' ч. ';
if ($arr['taxi_time'] > $time) {
echo ' <br>Вы работаете! Вам осталось работать ' . $timerT . ' ';
if($arr['taxi_time'] < $time){
echo '<a href="?ok">Получить вознаграждение</a>';
}
echo '<a href="?cancel">Отменить работу</a>';
} else {
echo '<form action="taxi.php?mode=taxi&tx" method="post">
<select name="tm">
<option value="1">1 час</option>
<option value="4">4 часа</option>
<option value="8">8 часов</option>
<input type="submit" value="Работать">
</form>';
}
}
echo'</div>';

echo "<div class='menu'></div>";
}
[/q]
Помогите
Помогите составить условие,которое по завершению работы,будет давать играку награду,даже если его нету на сайте или нету

2.
axer * 2.42
(22 янв 2017, 23:15) [0/0] [0] [спам] [под]

вариантов, на вскидку - два. Либо делать крон с проверкой. Либо эту проверку запускать просто в тот момент, как пользователь зайдет на сайт.

3. [автор] (22 янв 2017, 23:17) [0/0] [0] [спам] [под]

axer, скорей подойдет тот вариант,когда пользователь зайдет на сайт,только уже не знаю какую проверку выполнить

4.
axer * 2.42
(22 янв 2017, 23:21) [0/0] [0] [спам] [под]

if (taxi_time < time() ) {
//здесь код начисления
}

taxi_time - поле из бд, в котором время окончания.

5. [автор] (22 янв 2017, 23:23) [0/0] [0] [спам] [под]

axer, такое уже пробовал,оно постоянно будет добавлять!

6.
axer * 2.42
(22 янв 2017, 23:29) [0/0] [0] [спам] [под]

skortes, добавь поле с флагом.
например, поле "done".
Когда только отправляется чувак бомбить, выставляешь метку со значением 1. Как заканчивается время бомбежки, выставляешь метку со значением 2.
И в условии проверяешь.
if (taxi_time < time() && done == 1) {
//начисляешь баллы
}

7.
Simptom * 1.82
(22 янв 2017, 23:31) [0/0] [0] [спам] [под]

Вопрос.
Зачем столько лишних переменных?
Ответ на вопрос.
Луше, конечно, крон. Через выборку записей пользователей, у которых истекло время.

8. [автор] (22 янв 2017, 23:31) [0/0] [0] [спам] [под]

выставить метку когда начал не проблема,как выставить когда закончил?

9.
axer * 2.42
(22 янв 2017, 23:32) [0/0] [0] [спам] [под]

skortes,
добавь поле с флагом.
например, поле "done".
Когда только отправляется чувак бомбить, выставляешь метку со значением 1. Как заканчивается время бомбежки, выставляешь метку со значением 2.
И в условии проверяешь.
if (taxi_time < time() && done == 1) {
//начисляешь баллы
//выставляешь метку в значение 2
}

10. [автор] (22 янв 2017, 23:33) [0/0] [0] [спам] [под]

Simptom, я не знаю как составить крон

Подписаны: 0
Скачать тему | Файлы темы | Фильтр сообщений