room['file'] != 'znahar') { return; } $err = ''; function getLevelsData() { global $u; return Db::getRow('select sum(skills) as sum_skills, sum(nskills) as sum_nskills, sum(ability) as sum_abilities, sum(vinos) as sum_vinos, sum(duh) as sum_duh from levels where upLevel < ?', [$u->info['upLevel']]); } function testSkills(): int { global $u; return getLevelsData()['sum_skills'] + $u->rep['add_skills']; } function testSkills2(): int { global $u; return getLevelsData()['sum_nskills'] + $u->rep['add_skills2']; } function testAbilities(): int { global $u; return getLevelsData()['sum_abilities'] + $u->rep['add_stats']; } function testStat5() { return 3 + getLevelsData()['sum_vinos']; } function testStat7() { return getLevelsData()['sum_duh']; } function zact($i): void { global $u; Db::sql('insert into aaa_znahar (act, point, uid, time,city) values (?,0,?,unix_timestamp(),?)', [$i, $u->info['id'], $u->info['city']]); } #------------------Запросы и прочее $st = Conversion::dataStringToArray($u->info['stats']); $vinos = [ /* level,summvinos*/ "0" => 3, "1" => 4, "2" => 5, "3" => 6, "4" => 7, "5" => 8, "6" => 9, "7" => 10, "8" => 11, "9" => 13, "10" => 16, "11" => 21, "12" => 41, "21" => 41, ]; //минимальный уровень для статов $minlvl = [ 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 4, 6 => 7, 7 => 10, 8 => 12, 9 => 15, 10 => 20, 11 => 0, ]; if (Effects::hasInjury($u->info['id'])) { $err = 'У вас травма. Вы не можете пользоваться услугами знахаря!'; } elseif (isset($_GET['unprist'])) { $addictionId = (int)$_GET['unprist']; if (Effects::hasAddiction($addictionId, $u->info['id'])) { zact(4); //сброс пристрастия Effects::removeById($u->info['id'], $addictionId); $st = Conversion::dataStringToArray($u->info['stats']); $err = 'Все прошло успешно.'; } else { $err = 'Пристрастие не найдено.'; } } elseif (isset($_POST['dropstats'])) { zact(3); //сброс статов $st = Conversion::dataStringToArray($u->info['stats']); $st['s1'] = 3; $st['s2'] = 3; $st['s3'] = 3; $st['s4'] = testStat5(); $st['s5'] = 0; $st['s6'] = 0; $st['s7'] = testStat7(); $st['s8'] = 0; $st['s9'] = 0; $st['s10'] = 0; $st['s11'] = 0; $st['s12'] = 0; $st['s13'] = 0; $st['s14'] = 0; $st['s15'] = 0; $st = Conversion::arrayToDataString($st); $n1 = testAbilities(); $n2 = $u->info['skills']; $n3 = $u->info['sskills']; $n4 = $u->info['nskills']; Db::sql('update stats set wipe = 0, stats = ?, ability = ?, skills = ?, sskills = ?, nskills = ? where id = ?', [$st, $n1, $n2, $n3, $n4, $u->info['id']]); $st = Conversion::dataStringToArray($u->info['stats']); $err = 'Все прошло успешно.'; } elseif (isset($_POST['dropmastery'])) { zact(1); //сброс статов $st = Conversion::dataStringToArray($u->info['stats']); $st['a1'] = 0; $st['a2'] = 0; $st['a3'] = 0; $st['a4'] = 0; $st['a5'] = 0; $st['a6'] = 0; $st['mg1'] = 0; $st['mg2'] = 0; $st['mg3'] = 0; $st['mg4'] = 0; $st['mg5'] = 0; $st['mg6'] = 0; $st['mg7'] = 0; $st = Conversion::arrayToDataString($st); $n1 = $u->info['ability']; $n2 = testSkills(); $n3 = $u->info['sskills']; $n4 = $u->info['nskills']; Db::sql('update stats set wipe = 0, stats = ?, ability = ?, skills = ?, sskills = ?, nskills = ? where id = ?', [$st, $n1, $n2, $n3, $n4, $u->info['id']]); $st = Conversion::dataStringToArray($u->info['stats']); $err = 'Все прошло успешно.'; } elseif (isset($_POST['dropmastery'])) { //Старая версия zact(1); //сброс характеристик $u->info['wipe'] = 3; $u->wipe(); $st = Conversion::dataStringToArray($u->info['stats']); $err = 'Умения покинули вас.'; } elseif (isset($_POST['dropperks'])) { zact(1); //сброс особенностей $u->info['wipe'] = 3.5; $u->wipe(); $st = Conversion::dataStringToArray($u->info['stats']); $err = 'Особенности покинули вас.'; } elseif (isset($_GET['movestat'])) { //общее кол-во статов $allStats = $st['s1'] + $st['s2'] + $st['s3'] + $st['s4'] + $st['s5'] + $st['s6'] + $st['s7'] + $st['s8'] + $st['s9'] + $st['s10']; $allStatsTesto = $allStats; $no = 0; $st_l = 0; for ($i = 1; $i <= 10; $i++) { if (isset($_GET['s' . $i]) && ($st['s' . $i] + (int)$_GET['s' . $i]) >= 0 && $i <= 10) { if ($minlvl[$i] > $u->info['level'] && $st['s' . $i] < (int)$_GET['s' . $i]) { $no++; } else { if ((int)$_GET['s' . $i] > 0) { $st_l += (int)$_GET['s' . $i]; } $st['s' . $i] += (int)$_GET['s' . $i]; $allStatsNew += (int)$_GET['s' . $i]; $allStatsTesto += (int)$_GET['s' . $i]; } } } if ($allStatsTesto != $allStats) { $no++; } if ($no == 0) { zact(5); if ( $st['s1'] >= 3 && $st['s2'] >= 3 && $st['s3'] >= 3 && $st['s4'] >= testStat5() && $st['s5'] >= 0 && $st['s6'] >= 0 && $st['s7'] >= testStat7() && $st['s8'] >= 0 && $st['s9'] >= 0 && $st['s10'] >= 0 ) { //Желательно проверку на статы по уровню (можно ли этот стат поднимать на текущем уровне перса) $u->info['stats'] = Conversion::arrayToDataString($st); Db::sql('update stats set stats = ? where id = ?', [$u->info['stats'], $u->info['id']]); //Надо добавить UPDATE в базе свободных статов $u->stats = $u->getStats($u->info['id'], 0, 1); $u->testItems($u->info['id'], $u->stats, 0); $st = Conversion::dataStringToArray($u->info['stats']); } } } $err = "$err"; #------------------Запросы и прочее ?>
Комната Знахаря
error != '') { echo '
' . $u->error . ''; } if ($re != '') { echo '
' . $re . ''; } ?>
Запахи трав наполняют помещение, непонятные и пугающие предметы скрываются в пляшущих тенях...
Говорят, здесь можно изменить свою судьбу. Стать кем-то иным... кем раньше был лишь в мечтах...
Бойцовский Клуб
Характеристики Пристрастия Прочее
info['id']]); foreach ($sp as $addiction): ?> <?= $addiction['name'] ?> вылечить
У вас нет пристрастий

Навыки владения оружием и магией ()

Особенности персонажа ()

Характеристики (/)
Прежде чем перераспределять свои параметры, Вам необходимо полностью их сбросить