PHP/MySQL | Не могу сообразить - вывод переменных
Доброго дня, уважаемые.
В общем - то у меня в игре используется массив с id для всех зданий.
Есть 4 id зданий, называемых лесопилка. У каждого id есть свой уровень.
Игрок начинает с 0 уровнем у каждого здания, в первом задании у него есть задача - построить лесопилку.
Проверяем, какой у игрока квест и выводим одну кнопку:
Далее, игроку открываются три новых здания, Глиняный карьер, Рудник и Ферма (всех зданий, кроме ферм может быть максимально 4 шт, ферма - 6 шт).
Чтобы не путать пользователя в куче новых кнопок, делаем условие - если у тебя уровень всех зданий Глиняного карьера/Рудника/Фермы = 0, то держи друг одну кнопку, Построить Глиняный карьер/Рудник/Ферму (на примере Лесопилки и далее покажу):
И все бы вроде хорошо, после этого у него же есть возможность построить еще три Карьера.
Создаем велосипед, вида:
И все работает отлично, и без нареканий, НО.
а) Пользователь в дальнейшем может снести зданий ID3 и кнопки построить его не будет
б) Пользователю смогут снести здание армией и кнопки снова не будет
Как грамотно все сделать, товарищи?
В общем - то у меня в игре используется массив с id для всех зданий.
Есть 4 id зданий, называемых лесопилка. У каждого id есть свой уровень.
Игрок начинает с 0 уровнем у каждого здания, в первом задании у него есть задача - построить лесопилку.
Проверяем, какой у игрока квест и выводим одну кнопку:
f($database->getUserField($_SESSION['username'],'quest','username') == 1){
$derevo= '<a href="build.php?id=1">Построить лесопилку</a>';
}
else
{
$derevo= '<a href="build.php?id=1">Построить лесопилку</a>';
}
else
{
Далее, игроку открываются три новых здания, Глиняный карьер, Рудник и Ферма (всех зданий, кроме ферм может быть максимально 4 шт, ферма - 6 шт).
Чтобы не путать пользователя в куче новых кнопок, делаем условие - если у тебя уровень всех зданий Глиняного карьера/Рудника/Фермы = 0, то держи друг одну кнопку, Построить Глиняный карьер/Рудник/Ферму (на примере Лесопилки и далее покажу):
$lvl_les = $arrayVillage['f'.'1']+$arrayVillage['f'.'3']+$arrayVillage['f'.'14']+$arrayVillage['f'.'17'];
if($lvl_res < 1){
$pirmas = '<a href="build.php?id=2">Построить карьер</a>';
} else {
if($lvl_res < 1){
$pirmas = '<a href="build.php?id=2">Построить карьер</a>';
} else {
И все бы вроде хорошо, после этого у него же есть возможность построить еще три Карьера.
Создаем велосипед, вида:
if($arrayVillage['f'.'1'] > 0 and $arrayVillage['f'.'3'] < 1)
{
$pirmas = '<a href="build.php?id=1">'.(isset($builds[1]) ? $builds[1]['percent'].'%' : $arrayVillage['f'.'1'].'ур.').'</a>
<a href="build.php?id=3">'.(isset($builds[3]) ? $builds[3]['percent'].'%' : $arrayVillage['f'.'3'].'ур.').'</a>';
}
elseif($arrayVillage['f'.'1'] > 0 and $arrayVillage['f'.'3'] > 0 and $arrayVillage['f'.'14'] < 1)
{
$pirmas = '<a href="build.php?id=1">'.(isset($builds[1]) ? $builds[1]['percent'].'%' : $arrayVillage['f'.'1'].'ур.').'</a>
<a href="build.php?id=3">'.(isset($builds[3]) ? $builds[3]['percent'].'%' : $arrayVillage['f'.'3'].'ур.').'</a>
<a href="build.php?id=14">'.(isset($builds[14]) ? $builds[14]['percent'].'%' : $arrayVillage['f'.'14'].'ур.').'</a>';
}
elseif($arrayVillage['f'.'1'] > 0 and $arrayVillage['f'.'3'] > 0 and $arrayVillage['f'.'14'] > 0)
{
$pirmas = '<a href="build.php?id=1">'.(isset($builds[1]) ? $builds[1]['percent'].'%' : $arrayVillage['f'.'1'].'ур.').'</a>
<a href="build.php?id=3">'.(isset($builds[3]) ? $builds[3]['percent'].'%' : $arrayVillage['f'.'3'].'ур.').'</a>
<a href="build.php?id=14">'.(isset($builds[14]) ? $builds[14]['percent'].'%' : $arrayVillage['f'.'14'].'ур.').'</a>
<a href="build.php?id=17">'.(isset($builds[17]) ? $builds[17]['percent'].'%' : $arrayVillage['f'.'17'].'ур.').'</a>';
}
{
$pirmas = '<a href="build.php?id=1">'.(isset($builds[1]) ? $builds[1]['percent'].'%' : $arrayVillage['f'.'1'].'ур.').'</a>
<a href="build.php?id=3">'.(isset($builds[3]) ? $builds[3]['percent'].'%' : $arrayVillage['f'.'3'].'ур.').'</a>';
}
elseif($arrayVillage['f'.'1'] > 0 and $arrayVillage['f'.'3'] > 0 and $arrayVillage['f'.'14'] < 1)
{
$pirmas = '<a href="build.php?id=1">'.(isset($builds[1]) ? $builds[1]['percent'].'%' : $arrayVillage['f'.'1'].'ур.').'</a>
<a href="build.php?id=3">'.(isset($builds[3]) ? $builds[3]['percent'].'%' : $arrayVillage['f'.'3'].'ур.').'</a>
<a href="build.php?id=14">'.(isset($builds[14]) ? $builds[14]['percent'].'%' : $arrayVillage['f'.'14'].'ур.').'</a>';
}
elseif($arrayVillage['f'.'1'] > 0 and $arrayVillage['f'.'3'] > 0 and $arrayVillage['f'.'14'] > 0)
{
$pirmas = '<a href="build.php?id=1">'.(isset($builds[1]) ? $builds[1]['percent'].'%' : $arrayVillage['f'.'1'].'ур.').'</a>
<a href="build.php?id=3">'.(isset($builds[3]) ? $builds[3]['percent'].'%' : $arrayVillage['f'.'3'].'ур.').'</a>
<a href="build.php?id=14">'.(isset($builds[14]) ? $builds[14]['percent'].'%' : $arrayVillage['f'.'14'].'ур.').'</a>
<a href="build.php?id=17">'.(isset($builds[17]) ? $builds[17]['percent'].'%' : $arrayVillage['f'.'17'].'ур.').'</a>';
}
И все работает отлично, и без нареканий, НО.
а) Пользователь в дальнейшем может снести зданий ID3 и кнопки построить его не будет
б) Пользователю смогут снести здание армией и кнопки снова не будет
Как грамотно все сделать, товарищи?
![](/views/icon/no_avatar.png)
DELETED
7 февраля 2016, в 11:06
Delete
![](/views/icon/no_avatar.png)
DELETED
7 февраля 2016, в 11:09
Delete
Apeccc (07.02.2016 в 11:07)
Вилы_Выкидные, это не мой код )
Вилы_Выкидные, это не мой код )
оно и видно, какой-то совсем древний - логин в сессии
Вилы_Выкидные, у меня так, но смысл не в этом:
<?php
for($i=1;$i<=18;$i++) {
if($arrayVillage['f'.$i.'t'] != 0) {
$text = "";
switch($i){
case 1:$text = "Лесопилка ур.";break;
case 2:$text = "Глиняный карьер ур.";break;
case 3:$text = "Рудник ур.";break;
case 4:$text = "Ферма ур.";break;
}
echo "<img src=\"img/x.gif\" class=\"reslevel rf$i ур.".$arrayVillage['f'.$i]."\" alt=\"$text ".$arrayVillage['f'.$i]."\" />";
}
}
?>
for($i=1;$i<=18;$i++) {
if($arrayVillage['f'.$i.'t'] != 0) {
$text = "";
switch($i){
case 1:$text = "Лесопилка ур.";break;
case 2:$text = "Глиняный карьер ур.";break;
case 3:$text = "Рудник ур.";break;
case 4:$text = "Ферма ур.";break;
}
echo "<img src=\"img/x.gif\" class=\"reslevel rf$i ур.".$arrayVillage['f'.$i]."\" alt=\"$text ".$arrayVillage['f'.$i]."\" />";
}
}
?>
Вилы_Выкидные (07.02.2016 в 11:09)
Apeccc (07.02.2016 в 11:07)
Вилы_Выкидные, это не мой код )
оно и видно, какой-то совсем древний - логин в сессии
Apeccc (07.02.2016 в 11:07)
Вилы_Выкидные, это не мой код )
оно и видно, какой-то совсем древний - логин в сессии
Ибо ты жмешь Начать игру - не вводишь ничего, и попадаешь на первый квест
![](/views/icon/no_avatar.png)
DELETED
7 февраля 2016, в 11:13
Delete
Apeccc (07.02.2016 в 11:10)
Вилы_Выкидные, у меня так, но смысл не в этом:
<?php
for($i=1;$i<=18;$i++) {
if($arrayVillage['f'.$i.'t'] != 0) {
$text = "";
switch($i){
case 1:$text = "Лесопилка ур.";break;
case 2:$text = "Глиняный карьер ур.";break;
case 3:$text = "Рудник ур.";break;
case 4:$text = "Ферма ур.";break;
}
echo "<img src="img/x.gif" class="reslevel rf$i ур.".$arrayVillage['f'.$i]."" alt="$text ".$arrayVillage['f'.$i]."" />";
}
}
?>
Вилы_Выкидные, у меня так, но смысл не в этом:
<?php
for($i=1;$i<=18;$i++) {
if($arrayVillage['f'.$i.'t'] != 0) {
$text = "";
switch($i){
case 1:$text = "Лесопилка ур.";break;
case 2:$text = "Глиняный карьер ур.";break;
case 3:$text = "Рудник ур.";break;
case 4:$text = "Ферма ур.";break;
}
echo "<img src="img/x.gif" class="reslevel rf$i ур.".$arrayVillage['f'.$i]."" alt="$text ".$arrayVillage['f'.$i]."" />";
}
}
?>
чё-то я не понял, зачем тебе 18 раз создавать конструкцию switch
Вилы_Выкидные, потому что используется система координат и вывод изображений по ним. Не вникай.
![](/views/icon/no_avatar.png)
DELETED
7 февраля 2016, в 11:23
Delete
Apeccc (07.02.2016 в 11:21)
Вилы_Выкидные, потому что используется система координат и вывод изображений по ним. Не вникай.
Вилы_Выкидные, потому что используется система координат и вывод изображений по ним. Не вникай.
е*ать
![.гы.](https://bym.guru/modules/smiles/smiles/afan17.png)
Apeccc, жестяяяяк.
"если у тебя уровень всех зданий Глиняного карьера/Рудника/Фермы"
А по отдельности никак?
А если снесут - уровень не обнуляется?
Либо переписывай, либо мучайся дальше, с этим УГ ты ничего не сделаешь
"если у тебя уровень всех зданий Глиняного карьера/Рудника/Фермы"
А по отдельности никак?
А если снесут - уровень не обнуляется?
Либо переписывай, либо мучайся дальше, с этим УГ ты ничего не сделаешь