Функция повышения статов и её тест. Отладка 3.

This commit is contained in:
lopar 2018-12-11 22:17:19 +02:00
parent 786efe2412
commit 957c9c03cd
2 changed files with 36 additions and 61 deletions

View File

@ -1204,7 +1204,7 @@ function showinf_pers($id, $pas = 0, $battle = 0, $me = 0, $main = false) //FIXM
} elseif ($user['klan']) {
$clann = db::c()->query('SELECT `name`, `glava` FROM `clans` WHERE `id` = ?i', $user['klan'])->fetch_assoc();
if ($clann['glava'] == $user['id']) $r .= "<sup>👑</sup> ";
$r .= $clann['name'] ." - ". $user['status'] . "<br>";
$r .= $clann['name'] . " - " . $user['status'] . "<br>";
}
if ($user['admin'] == 1) $r .= "<b>Администратор</b><br>";
@ -1848,7 +1848,7 @@ function showitem($row, $type, $returned = false, $infOnly = false)
if (!empty($magic['name']) AND $row['type'] != 50)
$returnHTML .= "<br><span style='color: maroon;'>Наложены заклятия:</span>" . $magic['name'];
if (!empty($row['text']))
$returnHTML .= "<br><em style='font-size:11px; color:chocolate;'>" .$row['text']. "</em>";
$returnHTML .= "<br><em style='font-size:11px; color:chocolate;'>" . $row['text'] . "</em>";
if (!empty($incmagic['max']))
$returnHTML .= "<br>Встроено заклятие <img src=i/magic" . $incmagic['img'] . "> " . $incmagic['cur'] . " шт.";
@ -2867,15 +2867,40 @@ function addToDelo($message, $user_id = 0, $type = 1)
* Апаем стат или мастерство на единицу.
* @param $name - техническое имя параметра, как в базе.
* @param null $param - выбор что повышать.
* @return bool
* @return void
* @throws \Krugozor\Database\Mysql\Exception
*/
function addOnePoint($name, $param = null)
{
$allowed_stats = ['sila','lovk','inta','vinos','intel','mudra'];
$allowed_mastery = ['noj','mec','dubina','topor','mfire','mwater','mair','mearth','mlight','mgray','mdark'];
if ($param == 'stat' AND in_array($name, $allowed_stats) OR $param == 'mastery' AND in_array($name, $allowed_mastery)) {
$allowed_stats = ['sila', 'lovk', 'inta', 'vinos', 'intel', 'mudra'];
$allowed_mastery = ['noj', 'mec', 'dubina', 'topor', 'mfire', 'mwater', 'mair', 'mearth', 'mlight', 'mgray', 'mdark'];
$naming = [
'sila' => 'Сила',
'lovk' => 'Ловкость',
'inta' => 'Интуиция',
'vinos' => 'Выносливость',
'intel' => 'Интеллект',
'mudra' => 'Мудрость',
'noj' => 'Владение кинжалами',
'mec' => 'Владение мечами',
'dubina' => 'Владение дубинами',
'topor' => 'Владение топорами',
'mfire' => 'Магия огня',
'mwater' => 'Магия воды',
'mair' => 'Магия воздуха',
'mearth' => 'Магия земли',
'mlight' => 'Магия света',
'mgray' => 'Магия серости',
'mdark' => 'Магия тьмы'
];
if ($param == 'stat' AND in_array($name, $allowed_stats)) {
db::c()->query('UPDATE `users` SET ?f = ?f + 1, `stats` = `stats` - 1 WHERE `id` = ?i', $name, $name, $_SESSION['uid']);
return true;
} else return false;
echo "<span style='color:#00ffaa'>Параметр {$naming[$name]} увеличен на 1 ед.</span>";
} elseif ($param == 'mastery' AND in_array($name, $allowed_mastery)) {
$mastery_level = db::c()->query('SELECT ?f FROM `users` WHERE `id` = ?i', $name, $_SESSION['uid'])->fetch_assoc();
if ($mastery_level[$name] < 10) {
db::c()->query('UPDATE `users` SET ?f = ?f + 1, `stats` = `stats` - 1 WHERE `id` = ?i', $name, $name, $_SESSION['uid']);
echo "<span style='color:#00ffaa'>Параметр {$naming[$name]} увеличен на 1 ед.</span>";
} else echo "<span style='color: maroon;'>Ошибка: параметр достиг максимального значения!</span>";
} else return null;
}

View File

@ -1537,66 +1537,16 @@ if (input::get('setch')) {
header("Cache-Control: no-cache");
if (input::get('edit')) {
function ups($type, $stat, $statName)
{
global $user;
if ($user[$type] > 0 && $user['sid'] == $_GET['s4i']) {
if ($user[$type] >= (int)$_POST['stat'] && (int)$_POST['stat'] > 0) {
$user[$stat] += (int)$_POST['stat'];
$user[$type] -= (int)$_POST['stat'];
db::c()->query('UPDATE `users` SET ?f = ?i, ?f = ?i WHERE `id` = ?i', $stat, $user[$stat], $type, $user[$type], $user['id']);
err('Параметр ' . $statName . ' увеличен на ' . (int)$_POST['stat'] . ' ед.');
} else err('Ошибка в количестве.');
}
}
if (input::get('ups')) {
switch (input::get('ups')) {
case 11 :
#ups('stats', 'sila', 'Сила');
// if ($user['stats'] > 0 && $user['sid'] == $_GET['s4i']) {
// if ($user['stats'] >= (int)$_POST['stat'] && ((int)$_POST['stat'] > 0)) {
// $user['sila'] += (int)$_POST['stat'];
// $user['stats'] -= (int)$_POST['stat'];
// mysql_query("UPDATE `users` SET `sila` = '" . $user['sila'] . "', `stats` = '" . $user['stats'] . "' WHERE `id` = '{$user['id']}' LIMIT 1");
// echo "<b style=\"color: Red;\">Параметр Сила увеличен на " . (int)$_POST['stat'] . " ед.</b>";
// } elseif ((int)$_POST['stat'] <= 0) {
// echo "<b style=\"color: Red;\">Не верное количество</b>";
// } else {
// echo "<b style=\"color: Red;\">Недостаточно статов</b>";
// }
// }
if (addOnePoint('sila','stat')) err('Параметр Сила увеличен');
addOnePoint('sila','stat');
break;
case 12 :
ups('stats', 'lovk', 'Ловкость');
// if ($user['stats'] > 0 && $user['sid'] == $_GET['s4i']) {
// if ($user['stats'] >= (int)$_POST['stat'] && ((int)$_POST['stat'] > 0)) {
// $user['lovk'] += (int)$_POST['stat'];
// $user['stats'] -= (int)$_POST['stat'];
// mysql_query("UPDATE `users` SET `lovk` = '" . $user['lovk'] . "', `stats` = '" . $user['stats'] . "' WHERE `id` = '{$user['id']}' LIMIT 1");
// echo "<b style=\"color: Red;\">Параметр Ловкость увеличен на " . (int)$_POST['stat'] . " ед.</b>";
// } elseif ((int)$_POST['stat'] <= 0) {
// echo "<b style=\"color: Red;\">Не верное количество</b>";
// } else {
// echo "<b style=\"color: Red;\">Недостаточно статов</b>";
// }
// }
addOnePoint('lovk','stat');
break;
case 13 :
if ($user['stats'] > 0 && $user['sid'] == $_GET['s4i']) {
if ($user['stats'] >= (int)$_POST['stat'] && ((int)$_POST['stat'] > 0)) {
$user['inta'] += (int)$_POST['stat'];
$user['stats'] -= (int)$_POST['stat'];
mysql_query("UPDATE `users` SET `inta` = '" . $user['inta'] . "', `stats` = '" . $user['stats'] . "' WHERE `id` = '{$user['id']}' LIMIT 1");
echo "<b style=\"color: Red;\">Параметр Интуиция увеличен на " . (int)$_POST['stat'] . " ед.</b>";
} elseif ((int)$_POST['stat'] <= 0) {
echo "<b style=\"color: Red;\">Не верное количество</b>";
} else {
echo "<b style=\"color: Red;\">Недостаточно статов</b>";
}
}
addOnePoint('inta','stat');
break;
case 14 :