Помогу по Фруктовой Ферме

mozard

Местный
Как обойти момент обязательного сбора прибыли перед покупкой новых растений?
"Перед тем как докупить растения следует собрать монеты со склада!"

Захотел купить - купил. Без сбора (а самое главное потери) прибыли на складе?
 

pligin

Команда форума
Администратор
Как обойти момент обязательного сбора прибыли перед покупкой новых растений?
"Перед тем как докупить растения следует собрать монеты со склада!"

Захотел купить - купил. Без сбора (а самое главное потери) прибыли на складе?
Для того, чтобы понять это, нужно понимать алгоритм работы игры.
При нажатии на кнопку "Собрать" выполняются следующие "действия":
- от текущего времени отнимается время крайнего сбора
- производительность каждого растения умножается на количество растений и на время, полученное в предыдущем пункте.
Допустим мы не вводим ограничения на приобретение растений - их можно купить не собирая урожай.
В этом случае только что купленное растение сразу после покупки будет отображать урожай за все время с момента последнего сбора, т.е. тебя просто разорят через несколько дней.
Чтобы сделать так, как ты хочешь, нужно использовать время сбора для каждого купленного растения.
Но это огромная нагрузка на базу данных.
 

mozard

Местный
Для того, чтобы понять это, нужно понимать алгоритм работы игры.
При нажатии на кнопку "Собрать" выполняются следующие "действия":
- от текущего времени отнимается время крайнего сбора
- производительность каждого растения умножается на количество растений и на время, полученное в предыдущем пункте.
Допустим мы не вводим ограничения на приобретение растений - их можно купить не собирая урожай.
В этом случае только что купленное растение сразу после покупки будет отображать урожай за все время с момента последнего сбора, т.е. тебя просто разорят через несколько дней.
Чтобы сделать так, как ты хочешь, нужно использовать время сбора для каждого купленного растения.
Но это огромная нагрузка на базу данных.
Понял, проще убрать проверку при первой покупке, чтоб не собирать нулевой доход, а перед последующими покупками отправлять пользователя собрать ресурсы на складе.
 

mozard

Местный
Вот пример срок дерева пример 6 минут плоды дают к примеру 1000 шт за 6 минут пока время идет на скаде продукция копится если успею собрать то собрал если же после 6 минут зайду на склад то и дерево исчезает срок пришел и на складе что было накоплено тоже нету !! Как сделать чтобы на складе накопленное не исчезало ?
Вопрос еще актуален?
 

bgbbn

Участник
при нажатии кнопки собрать выдает ошибку Unknown column 'f_b' in 'field list'
как быть?)
 

Axeel

Участник
помогите по игре кнб
не работает код
за победу деньги не начисляются
за пройгрыш списывают
и тот кто игру создает в историю игр не записывается
Вот код:

<?

if(!isset($_SESSION['id'])){
Header("Location: /");
exit;
}

if(isset($_POST['sub'])){
$type = (int)$_POST['type'];
$sum = sprintf ("%01.2f", str_replace(',', '.', $_POST['sum']));

if($type >= 1 and $type <= 3){
if($sum >= 1.00){
if($UserInfo['MoneyP'] >= 50){
if($UserInfo['MoneyIn'] >= $sum){
$mysql->query("UPDATE db_users SET MoneyIn = MoneyIn - '$sum' WHERE Id = '".$_SESSION['id']."'");
$q = $mysql->prepare("INSERT INTO db_knb SET Login = ?, `Type` = ?, `Summa` = ?");
$q->execute(array($_SESSION['login'], $type, $sum));
//$lid = $mysql->lastInsertId();
//$t = $mysql->prepare("INSERT INTO db_knb_history SET UserId = ?, Summa = ?, `Uid` = ?, `Com` = ?");
//$t->execute(array($_SESSION['id'], $sum, $lid, 'Ожидает'));
echo TextOk("Ваша игра создана");
}else echo TextNo("Недостаточно средств на балансе");
}else echo TextNo("Для того чтобы сделать ставку, необходимо пополнить баланс на 50 руб!");
}else echo TextNo("Не верная сумма");
}else echo TextNo("Укажите предмет");
}


if($UserInfo['MoneyP'] < 50){
echo '<div class="error" style="font-size:22px;text-align:center;">Для того чтобы сделать ставку, необходимо пополнить баланс на 50 руб!</div>';
}


if(isset($_POST['sub2'])){
$id = (int)$_POST['gmid'];
$type = (int)$_POST['type'];

if($type >= 1 and $type <= 3){
$e = $mysql->prepare("SELECT * FROM db_knb WHERE Id = ? AND Status = ?");
$e->execute(array($id, 0));
if($e->rowCount() == 1){
$r = $e->fetch();
if($r['Login'] != $_SESSION['login']){
if($r['Summa'] <= $UserInfo['MoneyIn']){
if($r['Status'] == 0){
if($r['Type'] == $type){
//None
$mysql->query("UPDATE db_users SET MoneyIn = MoneyIn + '".$r['Summa']."' WHERE Login = '".$r['login']."'");
$mysql->query("UPDATE db_knb SET `Status` = '1' WHERE Id = '$id'");
$t = $mysql->prepare("INSERT INTO db_knb_h SET Uid = ?, UserId = ?, Login = ?, `Com` = ?");
$t->execute(array($r['Id'], $_SESSION['id'], $r['Login'], 'Ничья'));
echo TextOk("Ничья");
}elseif(($r['Type'] == 1 AND $type == 2) or ($r['Type'] == 2 AND $type == 3) or ($r['Type'] == 3 AND $type == 1)){
//Loose
$mysql->query("UPDATE db_users SET MoneyIn = MoneyIn + '".$r['Summa'] + $r['Summa']."' WHERE Login = '".$r['Login']."'");
$mysql->query("UPDATE db_users SET MoneyIn = MoneyIn - '".$r['Summa']."' WHERE Login = '".$_SESSION['login']."'");
$mysql->query("UPDATE db_knb SET `Status` = '1' WHERE Id = '$id'");
$t = $mysql->prepare("INSERT INTO db_knb_h SET Uid = ?, UserId = ?, Login = ?, `Com` = ?");
$t->execute(array($r['Id'], $_SESSION['id'], $r['Login'], 'Поражение'));
echo TextOk("Поражение");
}else{
//win
$mysql->query("UPDATE db_users SET MoneyIn = MoneyIn + '".$r['Summa'] + $r['Summa']."' WHERE Login = '".$_SESSION['login']."'");
//$mysql->query("UPDATE db_users SET MoneyIn = MoneyIn - '".$r['Summa']."' WHERE Login = '".$_SESSION['login']."'");
$mysql->query("UPDATE db_knb SET `Status` = '1' WHERE Id = '$id'");
$t = $mysql->prepare("INSERT INTO db_knb_h SET Uid = ?, UserId = ?, Login = ?, `Com` = ?");
$t->execute(array($r['Id'], $_SESSION['id'], $r['Login'], 'Победа'));
echo TextOk("Победа");
}
}else echo TextNo("Игры не существует");
}else echo TextNo("Недостаточно средств на балансе");
}else echo TextNo("Это Ваша ставка! Вы не можете играть сам с собой");
}else echo TextNo("Игры не существует");
}else echo TextNo("Укажите предмет");
}
?>









<div class="holder box grass">
<!-- start LINK -->
<div class="info">
<div style="padding: 10px 10px 10px 50px;">
Камень Ножницы Бумага - легендарная игра которую знает каждый, игра ведется с реальными игроками, правила игры можно прочитать <a href="https://ru.wikipedia.org/wiki/Камень,_ножницы,_бумага" target="_blank">тут</a>.
</div>
</div><br>
<center><a href="/knbhistory" style="border-bottom:1px dashed;font-size:16px;">ИСТОРИЯ ВАШИХ ИГР</a></center>
<table class="statsTable"><tr><th colspan="2">Условия КНБ:</th></tr></table>
<div class="sadtext" style="margin-top:10px;">
Минимальная сумма ставки: <a href="#">1</a> руб.<br>
Максимальная сумма ставки: <a href="#">100</a> руб.<br>
Коэффициент выигрыша: <a href="#">х2</a></div><br>

<center>
<form action="" method="post">
<div style="border: 1px solid #cDcEDC;border-radius: 5px;font-size: 17px;background-color: rgba(184,243,85,0.3); width: 400px;"><br>

<TABLE STYLE="WIDTH:100%;MARGIN-TOP:-20PX;">
<tr>
<td colspan="3" style="text-align: center;">
<input type="text" name="sum" value="1.00" style="font-size: 18px; text-align: center;" class="insinput"></td>
</tr>
<TR>
<TD align="center"><input type="radio" name="type" value="1"> КАМЕНЬ<Br></TD>
<TD align="center"><input type="radio" name="type" value="2"> НОЖНИЦЫ</TD>
<TD align="center"><input type="radio" name="type" value="3"> БУМАГА</TD>
</TR></TABLE>
<div style="margin-top:10px;"><center><input type="submit" class="button green medium" name="sub" value="СДЕЛАТЬ СТАВКУ"/></center>
</div><br>
</div></form></center>

<link rel="stylesheet" type="text/css" href="../buttons/buttons.css" />

<table class="statsTable"><tr><th colspan="2">Созданые игры:</th></tr></table>
<table class="tablec">
<tr class="tablec_trtop"><td>Номер игры</td><td>Логин создателя</td><td>Ставка</td><td>Действие</td></tr>
<?
$w = $mysql->query("SELECT * FROM db_knb WHERE `Status` = 0");
if($w->rowCount() > 0){
while($s = $w->fetch()){
?>
<tr>
<td class="tablec_trnone" style="font-size:20px;">№<?=$s['Id']; ?></td>
<td class="tablec_trnone"><a href="" style="font-size:20px;"><?=$s['Login']; ?></a></td>
<td class="tablec_trnone" style="font-size:20px;"><?=$s['Summa']; ?><br/>РУБ</td>
<td class="tablec_trnone">

<form action="" method="post">
<input type="hidden" name="gmid" value="<?=$s['Id']; ?>"/>
<TABLE align="center"><TR>
<TD align="center"><input type="radio" name="type" value="1"> КАМЕНЬ<Br></TD>
<TD align="center"><input type="radio" name="type" value="2"> НОЖНИЦЫ</TD>
<TD align="center"><input type="radio" name="type" value="3"> БУМАГА</TD>
<td align="center"><input type="submit" name="sub2" class="button green small" value="ИГРАТЬ!"/></td>

</TR>
</TABLE>

</form></td></tr>
<? }

}else echo '<tr><td class="tablec_trnone" colspan="4">Нет ставок</td></tr> ';

?>




</table>
 

pligin

Команда форума
Администратор
помогите по игре кнб
не работает код
за победу деньги не начисляются
за пройгрыш списывают
и тот кто игру создает в историю игр не записывается
Вот код:

<?

if(!isset($_SESSION['id'])){
Header("Location: /");
exit;
}

if(isset($_POST['sub'])){
$type = (int)$_POST['type'];
$sum = sprintf ("%01.2f", str_replace(',', '.', $_POST['sum']));

if($type >= 1 and $type <= 3){
if($sum >= 1.00){
if($UserInfo['MoneyP'] >= 50){
if($UserInfo['MoneyIn'] >= $sum){
$mysql->query("UPDATE db_users SET MoneyIn = MoneyIn - '$sum' WHERE Id = '".$_SESSION['id']."'");
$q = $mysql->prepare("INSERT INTO db_knb SET Login = ?, `Type` = ?, `Summa` = ?");
$q->execute(array($_SESSION['login'], $type, $sum));
//$lid = $mysql->lastInsertId();
//$t = $mysql->prepare("INSERT INTO db_knb_history SET UserId = ?, Summa = ?, `Uid` = ?, `Com` = ?");
//$t->execute(array($_SESSION['id'], $sum, $lid, 'Ожидает'));
echo TextOk("Ваша игра создана");
}else echo TextNo("Недостаточно средств на балансе");
}else echo TextNo("Для того чтобы сделать ставку, необходимо пополнить баланс на 50 руб!");
}else echo TextNo("Не верная сумма");
}else echo TextNo("Укажите предмет");
}


if($UserInfo['MoneyP'] < 50){
echo '<div class="error" style="font-size:22px;text-align:center;">Для того чтобы сделать ставку, необходимо пополнить баланс на 50 руб!</div>';
}


if(isset($_POST['sub2'])){
$id = (int)$_POST['gmid'];
$type = (int)$_POST['type'];

if($type >= 1 and $type <= 3){
$e = $mysql->prepare("SELECT * FROM db_knb WHERE Id = ? AND Status = ?");
$e->execute(array($id, 0));
if($e->rowCount() == 1){
$r = $e->fetch();
if($r['Login'] != $_SESSION['login']){
if($r['Summa'] <= $UserInfo['MoneyIn']){
if($r['Status'] == 0){
if($r['Type'] == $type){
//None
$mysql->query("UPDATE db_users SET MoneyIn = MoneyIn + '".$r['Summa']."' WHERE Login = '".$r['login']."'");
$mysql->query("UPDATE db_knb SET `Status` = '1' WHERE Id = '$id'");
$t = $mysql->prepare("INSERT INTO db_knb_h SET Uid = ?, UserId = ?, Login = ?, `Com` = ?");
$t->execute(array($r['Id'], $_SESSION['id'], $r['Login'], 'Ничья'));
echo TextOk("Ничья");
}elseif(($r['Type'] == 1 AND $type == 2) or ($r['Type'] == 2 AND $type == 3) or ($r['Type'] == 3 AND $type == 1)){
//Loose
$mysql->query("UPDATE db_users SET MoneyIn = MoneyIn + '".$r['Summa'] + $r['Summa']."' WHERE Login = '".$r['Login']."'");
$mysql->query("UPDATE db_users SET MoneyIn = MoneyIn - '".$r['Summa']."' WHERE Login = '".$_SESSION['login']."'");
$mysql->query("UPDATE db_knb SET `Status` = '1' WHERE Id = '$id'");
$t = $mysql->prepare("INSERT INTO db_knb_h SET Uid = ?, UserId = ?, Login = ?, `Com` = ?");
$t->execute(array($r['Id'], $_SESSION['id'], $r['Login'], 'Поражение'));
echo TextOk("Поражение");
}else{
//win
$mysql->query("UPDATE db_users SET MoneyIn = MoneyIn + '".$r['Summa'] + $r['Summa']."' WHERE Login = '".$_SESSION['login']."'");
//$mysql->query("UPDATE db_users SET MoneyIn = MoneyIn - '".$r['Summa']."' WHERE Login = '".$_SESSION['login']."'");
$mysql->query("UPDATE db_knb SET `Status` = '1' WHERE Id = '$id'");
$t = $mysql->prepare("INSERT INTO db_knb_h SET Uid = ?, UserId = ?, Login = ?, `Com` = ?");
$t->execute(array($r['Id'], $_SESSION['id'], $r['Login'], 'Победа'));
echo TextOk("Победа");
}
}else echo TextNo("Игры не существует");
}else echo TextNo("Недостаточно средств на балансе");
}else echo TextNo("Это Ваша ставка! Вы не можете играть сам с собой");
}else echo TextNo("Игры не существует");
}else echo TextNo("Укажите предмет");
}
?>









<div class="holder box grass">
<!-- start LINK -->
<div class="info">
<div style="padding: 10px 10px 10px 50px;">
Камень Ножницы Бумага - легендарная игра которую знает каждый, игра ведется с реальными игроками, правила игры можно прочитать <a href="https://ru.wikipedia.org/wiki/Камень,_ножницы,_бумага" target="_blank">тут</a>.
</div>
</div><br>
<center><a href="/knbhistory" style="border-bottom:1px dashed;font-size:16px;">ИСТОРИЯ ВАШИХ ИГР</a></center>
<table class="statsTable"><tr><th colspan="2">Условия КНБ:</th></tr></table>
<div class="sadtext" style="margin-top:10px;">
Минимальная сумма ставки: <a href="#">1</a> руб.<br>
Максимальная сумма ставки: <a href="#">100</a> руб.<br>
Коэффициент выигрыша: <a href="#">х2</a></div><br>

<center>
<form action="" method="post">
<div style="border: 1px solid #cDcEDC;border-radius: 5px;font-size: 17px;background-color: rgba(184,243,85,0.3); width: 400px;"><br>

<TABLE STYLE="WIDTH:100%;MARGIN-TOP:-20PX;">
<tr>
<td colspan="3" style="text-align: center;">
<input type="text" name="sum" value="1.00" style="font-size: 18px; text-align: center;" class="insinput"></td>
</tr>
<TR>
<TD align="center"><input type="radio" name="type" value="1"> КАМЕНЬ<Br></TD>
<TD align="center"><input type="radio" name="type" value="2"> НОЖНИЦЫ</TD>
<TD align="center"><input type="radio" name="type" value="3"> БУМАГА</TD>
</TR></TABLE>
<div style="margin-top:10px;"><center><input type="submit" class="button green medium" name="sub" value="СДЕЛАТЬ СТАВКУ"/></center>
</div><br>
</div></form></center>

<link rel="stylesheet" type="text/css" href="../buttons/buttons.css" />

<table class="statsTable"><tr><th colspan="2">Созданые игры:</th></tr></table>
<table class="tablec">
<tr class="tablec_trtop"><td>Номер игры</td><td>Логин создателя</td><td>Ставка</td><td>Действие</td></tr>
<?
$w = $mysql->query("SELECT * FROM db_knb WHERE `Status` = 0");
if($w->rowCount() > 0){
while($s = $w->fetch()){
?>
<tr>
<td class="tablec_trnone" style="font-size:20px;">№<?=$s['Id']; ?></td>
<td class="tablec_trnone"><a href="" style="font-size:20px;"><?=$s['Login']; ?></a></td>
<td class="tablec_trnone" style="font-size:20px;"><?=$s['Summa']; ?><br/>РУБ</td>
<td class="tablec_trnone">

<form action="" method="post">
<input type="hidden" name="gmid" value="<?=$s['Id']; ?>"/>
<TABLE align="center"><TR>
<TD align="center"><input type="radio" name="type" value="1"> КАМЕНЬ<Br></TD>
<TD align="center"><input type="radio" name="type" value="2"> НОЖНИЦЫ</TD>
<TD align="center"><input type="radio" name="type" value="3"> БУМАГА</TD>
<td align="center"><input type="submit" name="sub2" class="button green small" value="ИГРАТЬ!"/></td>

</TR>
</TABLE>

</form></td></tr>
<? }

}else echo '<tr><td class="tablec_trnone" colspan="4">Нет ставок</td></tr> ';

?>




</table>
для какого это скрипта? откуда ты взял этот бред? ты уверен, что "оно" должно работать?
тут нужна помощь в выборе исполнителя, который тебе напишет эту игру достойно...
это лучше не используй
 

normalno

Местный
У кого есть скрипт посещение реф. ссылок? нужно чтобы пользователя за посещение зачисливался баланс, больше ничего никаких страниц не нужно
 

mila

Участник
Здравствуйте. помогите пожалуйста при оплате не зачисляется серебро. оплата проходит деньги снимаются и приходят. но баланс серебра не пополняется
весь форум перерыла вроде и тут есть такие подобные проблемы но это не решает мой случай.
очень прошу помогите. мерчанте прописано все как надо и в настройках скрипта _class.config все прописано все. но проблема не решается .
 

viktor70

Участник
Здравствуйте. помогите пожалуйста при оплате не зачисляется серебро. оплата проходит деньги снимаются и приходят. но баланс серебра не пополняется
весь форум перерыла вроде и тут есть такие подобные проблемы но это не решает мой случай.
очень прошу помогите. мерчанте прописано все как надо и в настройках скрипта _class.config все прописано все. но проблема не решается .
Если в игре есть конкурсы, то в мерчанте так же должен код конкурсов прописан быть, или наоборот, если конкурсов нет, то в мерчанте может код стоять и его надо удалить. Еще надо проверить в базе таблицу, идет ли туда запись при пополнении баланса?
 

normalno

Местный
Здравствуйте. помогите пожалуйста при оплате не зачисляется серебро. оплата проходит деньги снимаются и приходят. но баланс серебра не пополняется
весь форум перерыла вроде и тут есть такие подобные проблемы но это не решает мой случай.
очень прошу помогите. мерчанте прописано все как надо и в настройках скрипта _class.config все прописано все. но проблема не решается .
Пишите в личные сообщения, настрою.
 

Erem

Местный
Есть фильтр, который фильтрует данные с формы, но он зараза вырезает русские символы.
Что посоветуете. Как разрещить кириллицу ?
$title = filter_var(mb_substr(trim($_POST['ask_title']), 0, 55), FILTER_SANITIZE_STRING);
 
Верх