Loading...
Обучение/Помощь новичкам | Проблемка в коде игры
XxxDIABLOxxX , Нет
153215105 (02.11.2016 в 18:52)
Всем привет. Просьба помочь. Кто поможет, тому плюс в анкету и в карму.

Все время считается в секундах от 01.01.1970, значения интовые, $t = $_SERVER['REQUEST_TIME'}.
Привожу код с комментариями:
//кол-во секунд в дне
$day = 60*60*24;
//Если текущее кол-во секунд больше, чем предыдущее минусование износа + 1 день, то выполняется код
if($item['iznosday'] + $day < $t){
//Разница между текущим временем и последним минусованием
$tri = $t - $item['iznosday'];
//Подсчет кол-ва единиц износа за прошедший период, который надо отнять
$iznos = $tri/$day;
//обновляем базу. Минусуем значение из $iznos и устанавливаем последнее время минусования на текущее
$q = $db->query("update `invent` set iznos=iznos-{$iznos},iznosday={$t} where id={$item['id']} limit 1;");
}
//конец. Дальше пойдет новый код, который отвечает за удаление вещи из инвентаря при нулевом износе

if($item['iznos'] <=0){
$q = $db->query("delete from `invent` where id={$item['id']} limit 1;");
msg2('Вещь рассыпалась',1);
}

Происходит такое:
При первом заходе на страницу вещи отображается нормальный износ в 180 единиц, обновляю страницу, и вещь удаляется.

Мож я что-то в логике напутал?

изночально в столбце `iznos` какое значение устонавливается?
XxxDIABLOxxX , Уважаемый, вы тупой?
А. Я это знаю, иначе бы сюда не приходил.
Б. Ваша версия?
В. От переменной здесь ничего не зависит. Почему-то у меня вся игра прикрасно работает на ней, а вдруг только тут перестала.
Г. даже если поменять на ваше усердное time();, проблема никуда не исчезает.
Avenax , Изночально 180, причем это значение при первом входе на страницу с вещью отображается(
153215105 , значит структура столбца у тебя такая:
unsigned NOT NULL DEFAULT '180' ?
Avenax , Угу
153215105 , `iznosday` какое стандартное значение?
мб указываешься 0, и если по твоей формуле выщитывает, то естественно удаляет
Avenax , Упс, сейчас гляну...
ну ты понял.
к пример DEFAULT 0
и по твоей логике:
// Разница между текущим временем и последним минусованием
$tri = $t - $item['iznosday'];
// Подсчет кол-ва единиц износа за прошедший период, который надо отнять
$iznos = $tri / $day;

проходит куча дней, что и приводит к удалению
Avenax , Поумолчанию стоит 1...
Онлайн: 3
Время:
Gen. 0.0863
(c) Bym.Guru 2010-2026