Есть энергия игрока и сколько нужно для перехода на другую локацию.
Если энергия которая требуется для перехода меньше энергии игрока. Нужно вывести предупреждение и ничего не делать, а оно залазит в минус.
if($loc2['loc_nrg'] > $udata['energy']) \\ не могу понять как сделать расчет без ухода в минус.
{
mysql_query("INSERT INTO `info_box` SET `usr`='$log',`text`='Нехватает энергии!',`views`='1'");
}
Спустя 1 минута, 59 секунд (3.05.2012 - 12:54) Игорь_Vasinsky написал(а):
добавь чтоли в условие
&& $loc2['loc_nrg'] >= 0
Спустя 16 минут (3.05.2012 - 13:10) Diamorph написал(а):
case 'go_left': // кнопка лево
$xi = $user_loc['x'] - '1';
$req = mysql_query("SELECT `name` FROM `world` WHERE `x` = '$xi' AND `y`='$user_loc[y]' LIMIT 1");
$loc = mysql_fetch_array($req);
$le = mysql_num_rows($req);
$need_nrg = mysql_query("SELECT `loc_nrg` FROM `world` WHERE `name`='$loc[name]' LIMIT 1"); // сколько энегрии нужно для перехода
$loc2 = mysql_fetch_array($need_nrg);
if ($le == '1' and $world['bl'] == '0')
{
if($udata['energy']>0) //если энегрия больше 0
{
$udata['energy'] = $udata['energy'] - $loc2['loc_nrg']; // энегрия = энегрия игрока - затраты на переход в локацию
mysql_query("UPDATE `users` SET `x`='$xi',`energy`='$udata[energy]' WHERE `usr` = '$log' LIMIT 1"); // запись новых данных
}
if($udata['energy'] < $loc2['loc_nrg'])
{
mysql_query("INSERT INTO `info_box` SET `usr`='$log',`text`='Нехватает энергии!',`views`='1'");
}
header("Location: okrestnosti.php?");
exit;
}
Вот полный код одной кнопки. всё сделал так как мне нужно, а вот энергия игрока отнимается в минус если даже ее не достаточно! Помогите поставить запрет.
Спустя 14 минут, 24 секунды (3.05.2012 - 13:24) inpost написал(а):
if($udata['energy']>0) - делаем UPDATE. Тут добавь ещё одно условие на проверку энергии. Потому что 0.00001 - уже больше 0, а значит действие будет проходить.
Спустя 1 час, 15 минут, 50 секунд (3.05.2012 - 14:40) Diamorph написал(а):
Спасибо! работает так-как нужно:)
if($udata['energy'] > '0' AND $udata['energy'] >= $loc2['loc_nrg'])