FastCore Проблема со сбором

geronimo

Местный
Выручайте ребята,столкнулся с такой проблемой,по стандарту в скрипте есть персонажи у которых есть опреденный срок,за весь срок можно собирать прибыль,так вот когда заканчивается срок ,то вся не собраная прибыль которая была с последнего сбора до окончания срока исчезает ,как это исправить??

Код:
<?PHP

# Ищем покупки
$update_speed = $db->query("SELECT * FROM db_store WHERE uid = '$uid' AND status = 1 ORDER BY end DESC")->fetchAll();
foreach($update_speed as $us) {

    # Если срок прошел
    if ($us['end'] < $time) {

        # Убавляем скорость
        $speed_down = $us['speed'];
        $db->query("UPDATE db_users SET speed = speed - '$speed_down' WHERE id = '$uid'");

        # Меняем статус на 0
        $pers_id = $us['id'];
        $db->query("UPDATE db_store SET status = '0' WHERE id = '$pers_id'");
    }
}



$db->Query("SELECT speed, last, id FROM db_users WHERE id = '$uid'");
$pers = $db->FetchArray();

# Считаем выручку
$profit = $func->SumCalc($pers['speed'], 1, $pers['last']);

if(isset($_POST['sbor'])){

    # Ограничиваем сбор
    if($pers['last'] < ($time-6)){
        if($profit > $cnf['min_s']){

        # Распределяем и отдаем выручку пользователю
        $money_addd = $profit / $cnf['coint'];
        $money_b = ( (100 - $cnf['p_sell']) / 100) * $money_addd;
        $money_p = ( ($cnf['p_sell']) / 100) * $money_addd;

        $db->Query("UPDATE db_users SET money_p = money_p + '$money_p', last = '$time' WHERE id = '$uid'");
        //echo '<div class="alert bg-success text-white">Вы собрали выручку в размере '.$money_p.' руб.</div>';
        $collect=$config->collect_event(2,$user);
        if($collect){$db->Query($collect);$callback=', также вы получили элемент коллекции.';}
        echo '<div class="alert bg-success text-white">Вы собрали выручку в размере '.$money_p.' руб'.$callback.'</div>';
    
         } else echo '<div class="alert bg-danger text-white">Минимальная сумма для сбора '.$cnf['min_s'].' руб.</div>';
     } else echo '<div class="alert bg-danger text-white">Вы уже собирали прибыль за последние 10 минут!</div>';
}
?>
 

pligin

Команда форума
Администратор
1. Нужно убрать обновление скорости вначале файла
2. При сборе сначала посчитать и закрыть те, что уже завершили работу до времени их завершения
3. Остальные рассчитать без изменений
4. Сложить два результата

P.S. Поэтому я когда-то и написал депозиты, чтобы можно было расчеты делать по каждой единице персонажей
 
Верх