PHP/MySQL | помогите составить код
Всем добрый вечер мастера!
Искал то что мне нужно так и не нашол)))))
Такая задача:
Нужно чтоб когда "фермер" построил амбар и при улучшении амбара на +1 уровень и каждый уровень строится за определёную суму денег и времени.
Есть идеи?
Плюсик в анкету за помощ дам ггггг
Искал то что мне нужно так и не нашол)))))
Такая задача:
Нужно чтоб когда "фермер" построил амбар и при улучшении амбара на +1 уровень и каждый уровень строится за определёную суму денег и времени.
Есть идеи?
Плюсик в анкету за помощ дам ггггг
serghei (23.12.2016 в 23:08)
Всем добрый вечер мастера!
Искал то что мне нужно так и не нашол)))))
Такая задача:
Нужно чтоб когда "фермер" построил амбар и при улучшении амбара на +1 уровень и каждый уровень строится за определёную суму денег и времени.
Есть идеи?
Плюсик в анкету за помощ дам ггггг
Всем добрый вечер мастера!
Искал то что мне нужно так и не нашол)))))
Такая задача:
Нужно чтоб когда "фермер" построил амбар и при улучшении амбара на +1 уровень и каждый уровень строится за определёную суму денег и времени.
Есть идеи?
Плюсик в анкету за помощ дам ггггг
с фермы код выдери рост по уровню, там есть код яб дал лень лезть в скрипт, перепеши просто переменки и все, тоесть код
Resident Evil, мне не для фермы нужно.
это к пример.
это к пример.
$us = MySQL_fetch_assoc(mysql_query("Select * from `users` WHERE `id` = '".$user['id']."'");
if($us['ambar'] >= 1) {
if($us['ambar'] >= 1) {
serghei,
Пример кода:
________
посл. ред. 23.12.2016 в 23:40; всего 2 раз(а); by Черный Волк
Пример кода:
$user = mysql_fetch_assoc(mysql_query("Select * from `users` WHERE `id` = '".$user['id']."'");
function cost($i) {
switch($i) {
case 0:
$cost = 100000;
break;
case 1:
$cost = 200000;
break;
case 2:
$cost = 120;
break;
case 3:
$cost = 128200;
break;
case 4:
$cost = 190;
break;
switch($i) {
case 0:
$value = 'crystal';
break;
case 1:
$value = 'crystal';
break;
case 2:
$value = 'golds";
break;
case 3:
$value = 'crystal';
break;
case 4:
$value = 'golds';
break;
if(isset($_GET['train']) and $ferm['stat'] < $ferm['level']){
if(value($ferm['stat']) == 'crystal') {
mysql_query("UPDATE `ferm` SET `stat` = '".($ferm['stat']+10)."', `stat` = '".($ferm['stat']+5)."', `gold` = '".($user['gold']-cost($ferm['stat']))."' WHERE `id` = '".$ferm['id']."'");
echo "<a href='?train' class='center'>Улучшить за ".(value($ferm['stat']) == 'gold' ? ico('icons','golds.png') : ico('icons','crystal.png'))." ".cost($ferm['stat'])."</a>";
________
посл. ред. 23.12.2016 в 23:40; всего 2 раз(а); by Черный Волк
Черный Волк, спасибо)
$price= array('1' => '500','2' => '750','3' => '900','4' => '1200','5' => '1600'); // массив с ценами за модернизацию амбара.
$build_time= array('1' => '60','2' => '70','3' => '85','4' => '100','5' => '150'); // массив с временем которое будет затрачено на модернизацию амбара (время указанно в минутах).
заранее нужно подготовить таблицу в базе данных, с ячейками: id, user_id, price, build_time.
$level= '2'; // представим что это текущий уровень амбара.
$money= '500'; // представим что это деньги пользователя.
// примерная обработка запроса если куплено улучшение амбара
if(isset($_GET['level_up']))
{
mysql_query("UPDATE `user` SET `money` = `money` -".$price[++$level]." WHERE `id` ='".$user['id']."' "); // минусуем деньги у игрока за улучшение.
mysql_query("INSERTN INTO `new_build` (`user_id`,`price`,`build_time`) VALUES('".$user['id']."','".$price[++$level]."','".$build_time[++$level]."') "); // ставим таймер, после окончания таймера к уровню амбара прибавиться +1.
}
// вывод информации пользователю
if($money == $price[++$level])
{
echo '<a href="?level_up=yes">Улучшить амбар?</a> время улучшения: '.$build_time[++$level].'';
}
else
{
echo 'Недостаточно денег для улучшения';
}
//прибавляем +1 к уровню амбара.
mysql_query("UPDATE `ambar` SET `level` =`level` +1 WHERE `id` ='".$user['id']."' ");
P.S выше описанное является лишь примером, использование его в своем проекте крайне нежелательно.
$build_time= array('1' => '60','2' => '70','3' => '85','4' => '100','5' => '150'); // массив с временем которое будет затрачено на модернизацию амбара (время указанно в минутах).
заранее нужно подготовить таблицу в базе данных, с ячейками: id, user_id, price, build_time.
$level= '2'; // представим что это текущий уровень амбара.
$money= '500'; // представим что это деньги пользователя.
// примерная обработка запроса если куплено улучшение амбара
if(isset($_GET['level_up']))
{
mysql_query("UPDATE `user` SET `money` = `money` -".$price[++$level]." WHERE `id` ='".$user['id']."' "); // минусуем деньги у игрока за улучшение.
mysql_query("INSERTN INTO `new_build` (`user_id`,`price`,`build_time`) VALUES('".$user['id']."','".$price[++$level]."','".$build_time[++$level]."') "); // ставим таймер, после окончания таймера к уровню амбара прибавиться +1.
}
// вывод информации пользователю
if($money == $price[++$level])
{
echo '<a href="?level_up=yes">Улучшить амбар?</a> время улучшения: '.$build_time[++$level].'';
}
else
{
echo 'Недостаточно денег для улучшения';
}
//прибавляем +1 к уровню амбара.
mysql_query("UPDATE `ambar` SET `level` =`level` +1 WHERE `id` ='".$user['id']."' ");
P.S выше описанное является лишь примером, использование его в своем проекте крайне нежелательно.
Zarts, котсыли
serghei, для начала нужно где-то хранить цены и время для каждого уровня, создаем функцию такую и массив создаем.
В базе данных у нас есть таблица постройки, получам для начала данные этого амбара с этой таблицы (к примеру такие столбцы id, lvl, update_time, update). Надеюсь знаешь как работать с базой. Кароче результат получили в массив $ambar.
Потом при строительстве, дергаем функцию и информацию с этого массива.подставляя lvl построики.
Ну а чтобы посмотреть постоилась ли построика нужно просто сделать проверку
Ps: Писал с планшета. Комп дома, а я на работе. Ошибки не проверял (лень). Каррче направление куда рыть ты должен был понять.
________
посл. ред. 24.12.2016 в 00:36; всего 2 раз(а); by gisen
В базе данных у нас есть таблица постройки, получам для начала данные этого амбара с этой таблицы (к примеру такие столбцы id, lvl, update_time, update). Надеюсь знаешь как работать с базой. Кароче результат получили в массив $ambar.
<?php
function update($lvl){
$array = array(
0 => array(
'time' => 100,
'price' => 1800
),
1 => array(
'time' => 200,
'price' => 9000
),
2 => array(
'time' => 300,
'price' => 36000
)); // и так далее сколько нужно.
return $array[$lvl];
}
?>Потом при строительстве, дергаем функцию и информацию с этого массива.подставляя lvl построики.
<?php
/**
*Тут типа провека на get или post запрос (хз как ты отправляешь)
*/
$lvl_next = update($ambar[`lvl`]); //получаем с функции данные что нам требуется для повышения уровня.
/**
*Проверям есть ли столько золота (или алазов или хз)
*/
if($user['gold'] >= $lvl_next['price']) {
$lvl = $ambar[`lvl`] + 1;
$update_time = time() + $lvl_next['time'];
/* тут обновляешь данные в базе, подставляешь в `lvl` = $lvl,
в `update_time` = $update_time,
`update` ставишь 1(типа идет улучшение)
*/
}
?>
Ну а чтобы посмотреть постоилась ли построика нужно просто сделать проверку
<?php
if($ambar['update_time'] - time() <= 0){
//тут опять работаешь с базой, меняешь значение `update` с 1 на 0. Типа строика завершена.
}
?>
Ps: Писал с планшета. Комп дома, а я на работе. Ошибки не проверял (лень). Каррче направление куда рыть ты должен был понять.
________
посл. ред. 24.12.2016 в 00:36; всего 2 раз(а); by gisen
Ппц пока писал, уже накидали примеров. Я оставил работу с базой ему. А так я полностью дал ответ.
________
посл. ред. 24.12.2016 в 00:28; всего 1 раз(а); by gisen
________
посл. ред. 24.12.2016 в 00:28; всего 1 раз(а); by gisen
Стр.: 1, 2