Хелп по ферме

  • Автор темы Azat
  • Дата начала
Azat
Участник
Сообщения
26
Реакции
2
как работает накопление птиц фруктов и остального добра в ферме.

и как его можно остановить у пользователя
 
Андрей
Участник
Сообщения
241
Реакции
55
Убрать у него дерево/птицу
 
Azat
Участник
Сообщения
26
Реакции
2
pligin
Участник
Сообщения
3.654
Реакции
1.336
Azat написал(а):
как работает накопление птиц фруктов и остального добра в ферме.

и как его можно остановить у пользователя
Рассчитывается разница времени на текущий момент и последнего сбора, данная разница умножается на коэффициент прироста за определенный промежуток времени.
Для прекращения увеличения количества в момент посещения страницы время последнего сбора должно быть текущим временем, т.е. количество всего будет 0, либо на данной странице пользователю должно определяться текущее время как время блокировки, т.е. количество будет рано количеству на момент блокировки.
 
Azat
Участник
Сообщения
26
Реакции
2
а есть тут кулибин который может выложить примерный код на остановку этого капания яиц например по достижению определенного количестав
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Azat написал(а):
а есть тут кулибин который может выложить примерный код на остановку этого капания яиц например по достижению определенного количестав
по времени
Код:
###переменные времени на выбор
            $t_minuta = 60;//    1 минута
            $t_hour    = 3600; // 1 час
            $t_day    = 86400; // 1 день
            $t_week    = 604800; // 1 неделя
            $t_month = 2629743; // 1 месяц(30.44 дней)
            $t_year = 31556926; // 1 год (365.24 дней)

            if ((time() - $user_data["last_sbor"]) > $t_day)// определяем, что прошло больше 24 часов с момента последнего сбора. вместо $t_day вставить любую перемнну времени на выбор
            {
                $user_data["last_sbor"] = time() - $t_day; // определяем время последнего сбора - равно текущее время минус 24 часа, т.е. считаться будет за последние 24 часа
            }
по количеству
Код:
$tomat_s = $func->SumCalc($sonfig_site["a_in_h"], $user_data["a_t"], $user_data["last_sbor"]);
            if($tomat_s > 50000)//если количество уже больше 50 000
            {
                $tomat_s = 50000;//то количество будет 50 000
            }
и так после каждой $func->SumCalc(), которые подсчитываю количество.
в итоге до определенного количества все работает как обычно, а при превышении 50 000 будет количество всегда равно 50 000
 
Azat
Участник
Сообщения
26
Реакции
2
pligin написал(а):
по времени
Код:
###переменные времени на выбор
            $t_minuta = 60;//    1 минута
            $t_hour    = 3600; // 1 час
            $t_day    = 86400; // 1 день
            $t_week    = 604800; // 1 неделя
            $t_month = 2629743; // 1 месяц(30.44 дней)
            $t_year = 31556926; // 1 год (365.24 дней)

            if ((time() - $user_data["last_sbor"]) > $t_day)// определяем, что прошло больше 24 часов с момента последнего сбора. вместо $t_day вставить любую перемнну времени на выбор
            {
                $user_data["last_sbor"] = time() - $t_day; // определяем время последнего сбора - равно текущее время минус 24 часа, т.е. считаться будет за последние 24 часа
            }
по количеству
Код:
$tomat_s = $func->SumCalc($sonfig_site["a_in_h"], $user_data["a_t"], $user_data["last_sbor"]);
            if($tomat_s > 50000)//если количество уже больше 50 000
            {
                $tomat_s = 50000;//то количество будет 50 000
            }
и так после каждой $func->SumCalc(), которые подсчитываю количество.
в итоге до определенного количества все работает как обычно, а при превышении 50 000 будет количество всегда равно 50 000
Спасибо тебе кулибин есть добрые люди на свете
 
Azat
Участник
Сообщения
26
Реакции
2
pligin написал(а):
по времени
Код:
###переменные времени на выбор
            $t_minuta = 60;//    1 минута
            $t_hour    = 3600; // 1 час
            $t_day    = 86400; // 1 день
            $t_week    = 604800; // 1 неделя
            $t_month = 2629743; // 1 месяц(30.44 дней)
            $t_year = 31556926; // 1 год (365.24 дней)

            if ((time() - $user_data["last_sbor"]) > $t_day)// определяем, что прошло больше 24 часов с момента последнего сбора. вместо $t_day вставить любую перемнну времени на выбор
            {
                $user_data["last_sbor"] = time() - $t_day; // определяем время последнего сбора - равно текущее время минус 24 часа, т.е. считаться будет за последние 24 часа
            }
по количеству
Код:
$tomat_s = $func->SumCalc($sonfig_site["a_in_h"], $user_data["a_t"], $user_data["last_sbor"]);
            if($tomat_s > 50000)//если количество уже больше 50 000
            {
                $tomat_s = 50000;//то количество будет 50 000
            }
и так после каждой $func->SumCalc(), которые подсчитываю количество.
в итоге до определенного количества все работает как обычно, а при превышении 50 000 будет количество всегда равно 50 000
А вот по времени не понятно
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Azat написал(а):
А вот по времени не понятно
к примеру нужно, чтобы игроки заходили каждые 24 часов.
делаем чтобы собиралось только за последние 24 часа и не больше.
вот и вносим небольшое изменение
Код:
$t_day = 86400; // 1 день
if ((time() - $user_data["last_sbor"]) > $t_day)
{
$user_data["last_sbor"] = time() - $t_day;
}
 
Azat
Участник
Сообщения
26
Реакции
2
  • #10
pligin написал(а):
к примеру нужно, чтобы игроки заходили каждые 24 часов.
делаем чтобы собиралось только за последние 24 часа и не больше.
вот и вносим небольшое изменение
Код:
$t_day = 86400; // 1 день
if ((time() - $user_data["last_sbor"]) > $t_day)
{
$user_data["last_sbor"] = time() - $t_day;
}
То есть по нажатию кнопки собрать она переделывает время на нужное количеств
 
Azat
Участник
Сообщения
26
Реакции
2
  • #11
Окей сделал теперь больше нужного не идет
но после того как достигло например 500 рыбы то больше 500 не прывышало
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
  • #12
Azat написал(а):
То есть по нажатию кнопки собрать она переделывает время на нужное количеств
нет.
перед нажатием на странице также будет отображено количество только за 24 часа (если прошло больше времени), при нажатии на "Собрать" в базу добавляется количество только за 24 часа и $user_data["last_sbor"] примет значение текущего времени, что также будет отображено в базе
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
  • #13
Azat написал(а):
Окей сделал теперь больше нужного не идет
но после того как достигло например 500 рыбы то больше 500 не прывышало
не понял. подробнее
 
Azat
Участник
Сообщения
26
Реакции
2
  • #14
pligin написал(а):
не понял. подробнее
Ну вот я установил ограничение в 500 рыбы и больше 500 не дается

но в счетчике так же продолжает увеличиваться
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
  • #15
Azat написал(а):
Ну вот я установил ограничение в 500 рыбы и больше 500 не дается

но в счетчике так же продолжает увеличиваться
так там же еще одна функция калькулятора.
выведи калькулятор в начало файла, а в отображение и вывод вставляй переменную количества
 
Azat
Участник
Сообщения
26
Реакции
2
  • #16
pligin написал(а):
так там же еще одна функция калькулятора.
выведи калькулятор в начало файла, а в отображение и вывод вставляй переменную количества
не я сделал так

Код:
$ul1 = $func->SumCalc($sonfig_site["a_in_h"], $user_data["a_t"], $user_data["last_sbor"]);
if($ul1 > 10)//если количество уже больше 10
    {
        $ul1 = 10;//то количество будет 10
    }

в курятнике : <font color="#000"> <?php echo $ul1; ?> шт яиц </font></div>
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
  • #17
первая функция загружается только после нажатия "собрать"
 
Azat
Участник
Сообщения
26
Реакции
2
  • #18
pligin написал(а):
первая функция загружается только после нажатия "собрать"
она вынесена за функцию нажатия
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
  • #19
danteo
Местный
Сообщения
45
Реакции
5
  • #20
pligin написал(а):
по времени
Код:
###переменные времени на выбор
            $t_minuta = 60;//    1 минута
            $t_hour    = 3600; // 1 час
            $t_day    = 86400; // 1 день
            $t_week    = 604800; // 1 неделя
            $t_month = 2629743; // 1 месяц(30.44 дней)
            $t_year = 31556926; // 1 год (365.24 дней)

            if ((time() - $user_data["last_sbor"]) > $t_day)// определяем, что прошло больше 24 часов с момента последнего сбора. вместо $t_day вставить любую перемнну времени на выбор
            {
                $user_data["last_sbor"] = time() - $t_day; // определяем время последнего сбора - равно текущее время минус 24 часа, т.е. считаться будет за последние 24 часа
            }
по количеству
Код:
$tomat_s = $func->SumCalc($sonfig_site["a_in_h"], $user_data["a_t"], $user_data["last_sbor"]);
            if($tomat_s > 50000)//если количество уже больше 50 000
            {
                $tomat_s = 50000;//то количество будет 50 000
            }
и так после каждой $func->SumCalc(), которые подсчитываю количество.
в итоге до определенного количества все работает как обычно, а при превышении 50 000 будет количество всегда равно 50 000
Не сомневался, что под таким условием все находится) Спасибо, выручил)
 
Сверху