diff --git a/_incl_data/class/Core/Config.php b/_incl_data/class/Core/Config.php index 6596d06f..8c75cd9e 100644 --- a/_incl_data/class/Core/Config.php +++ b/_incl_data/class/Core/Config.php @@ -76,7 +76,7 @@ class Config $c['expstopu'] = 2999999; //Опыт на котором останавливаемся $c['noobgade'] = false; //нуб квест (пещера) $c['level_ransfer'] = 8; //С какого уровня разрешены передачи - $c['znahar'] = true; //бесплатный знахарь + $c['nolevel'] = false; //лимитирование уровней $c['noitembuy'] = false; //Не требует ресурсы для покупки $c['effz'] = 0; //Скольким секундам равен заряд diff --git a/_incl_data/class/User/Effects.php b/_incl_data/class/User/Effects.php index cf5f51ba..90a272e3 100644 --- a/_incl_data/class/User/Effects.php +++ b/_incl_data/class/User/Effects.php @@ -22,6 +22,20 @@ class Effects 'insert into eff_users (overType, id_eff, uid, name, timeUse, data) values (?,?,?,?,unix_timestamp(),?)', [$eff['oneType'], $eff['id2'], $uid, $eff['mname'], $eff['mdata']] ); - } -} \ No newline at end of file + + public static function hasInjury(int $uid): bool + { + return Db::getValue('select count(*) from eff_users where id_eff in (4,5) and `delete` = 0 and uid = ?', [$uid]) > 0; + } + + public static function hasAddiction(int $addictionId, int $uid): bool // пристрастие + { + return Db::getValue('select count(*) from eff_users where (id_eff between 301 and 304 or id_eff between 321 and 332) and id = ? and uid = ?', [$addictionId, $uid]) > 0; + } + + public static function removeById(int $id): void + { + Db::sql('update eff_users set delete = unix_timestamp() where id = ?', [$id]); + } +} diff --git a/modules_data/location/an/znahar.php b/modules_data/location/an/znahar.php index 00d99bae..97b418b6 100644 --- a/modules_data/location/an/znahar.php +++ b/modules_data/location/an/znahar.php @@ -251,7 +251,7 @@ if(isset($tst_trvm['id'])) { $st['s1'] = 3; $st['s2'] = 3; $st['s3'] = 3; - $st['s4'] = test_s5(); + $st['s4'] = testStat5(); $st['s5'] = 0; $st['s6'] = 0; $st['s7'] = 0; @@ -264,7 +264,7 @@ if(isset($tst_trvm['id'])) { $st['s14'] = 0; $st['s15'] = 0; $st = \Core\ConversionHelper::arrayToDataString($st); - $n1 = test_ability(); + $n1 = testAbilities(); $n2 = $u->info['skills']; $n3 = $u->info['sskills']; $n4 = $u->info['nskills']; @@ -298,7 +298,7 @@ if(isset($tst_trvm['id'])) { $st['mg7'] = 0; $st = \Core\ConversionHelper::arrayToDataString($st); $n1 = $u->info['ability']; - $n2 = test_skills(); + $n2 = testSkills(); $n3 = $u->info['sskills']; $n4 = $u->info['nskills']; mysql_query('UPDATE `stats` SET `wipe`="0",`stats`="'.$st.'",`ability`="'.$n1.'",`skills`="'.$n2.'",`sskills`="'.$n3.'",`nskills`="'.$n4.'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1'); @@ -362,11 +362,11 @@ if(isset($tst_trvm['id'])) { //echo "Статы:
".$st['s1']."=3
".$st['s2']."=3
".$st['s3']."=3
".$st['s4']."=3
".$st['s5']."=0
".$st['s6']."=0
".$st['s7']."=0
".$st['s8']."=0
".$st['s9']."=0
".$st['s10']."=0
"; if($no==0){ - $z_na = zact(5,(int)$st_l); + $z_na = zact(5); if($z_na[0] == 1) { if( ($st['s5'] > 0 && $u->info['level'] < 4) || ($st['s6'] > 0 && $u->info['level'] < 7) || ($st['s7'] > 0 && $u->info['level'] < 9) || ($st['s8'] > 0 && $u->info['level'] < 11) || ($st['s9'] > 0 && $u->info['level'] < 12) || ($st['s10'] > 0 && $u->info['level'] < 13) ) { - }elseif($st['s1']>=3 && $st['s2']>=3 && $st['s3']>=3 && $st['s4']>=test_s5() && $st['s5']>=0 && $st['s6']>=0 && $st['s7']>=0 && $st['s8']>=0 && $st['s9']>=0 && $st['s10']>=0){ + }elseif($st['s1']>=3 && $st['s2']>=3 && $st['s3']>=3 && $st['s4']>=testStat5() && $st['s5']>=0 && $st['s6']>=0 && $st['s7']>=0 && $st['s8']>=0 && $st['s9']>=0 && $st['s10']>=0){ //Желательно проверку на статы по уровню (можно ли этот стат поднимать на текущем уровне перса) $u->info['stats'] = \Core\ConversionHelper::arrayToDataString($st); if(mysql_query('UPDATE `stats` SET `stats` = "'.mysql_real_escape_string($u->info['stats']).'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1')) @@ -544,11 +544,11 @@ echo $prs; ?>
-Навыки владения оружием и магией ()
+Навыки владения оружием и магией ()
' onClick="return confirm('Вы действительно хотите сбросить умения?')">
-Особенности персонажа ()
+Особенности персонажа ()
' onClick="return confirm('Вы действительно хотите сбросить особенности?')">
-Характеристики (/)
+Характеристики (/)
' onClick="return confirm('Вы действительно хотите сбросить все характеристики до минимального уровня?')">
Каждые 7 дней после последнего использования комнаты знахаря вы получаете 1 бесплатное перераспределение, но не более 15
diff --git a/modules_data/location/znahar.php b/modules_data/location/znahar.php index 8a156fea..4c957c35 100644 --- a/modules_data/location/znahar.php +++ b/modules_data/location/znahar.php @@ -1,583 +1,455 @@ room['file'] != 'znahar') { + return; +} + +$err = ''; + +function getLevelsData() { - die(); -} -if($u->room['file']=='znahar'){ -if($c['znahar']==true){$raspst=99999;$kr=0;$price = 1;}else{$raspst=0;$kr=0;$price = 0;} - -//Платно или бесплатно - - -if(date('w') == 6 || date('w') == 0) { - $price = 1; + 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 add_narkoz($tm,$name) { - /* - global $u; - if($name != '') { - $name = ': '.$name; - } - //mysql_query('INSERT INTO `eff_users` (`uid`,`id_eff`,`name`,`data`,`overType`,`timeUse`) VALUES ( - // "'.$u->info['id'].'","50","Наркоз'.mysql_real_escape_string($name).'","" - //)'); - - $name = 'Наркоз'.$name; - $stat=rand(1, 3); // пока без духовности - if($tm == 3) { - $timeEnd=rand(2,5);// время травмы от 12 до 6 часов - $timeEnd = $timeEnd * 3600; - }elseif($tm == 1 || $tm == 2) { - $timeEnd=rand(1,2);// время травмы от 5 до 10 мин - $timeEnd = $timeEnd * (60*5); - }else{ - $tm = round($tm*60); - } - - $timeEnd = rand(1,3);// время травмы от 5 до 15 мин - $timeEnd = $timeEnd * (60*5); - //$timeEnd = 0; - - - $data='add_s'.$stat.'=-'.($u->info['level']*rand(3,5)); - $v1=3; - $img = 'eff_travma3.gif'; - mysql_query('INSERT INTO `eff_users` (`overType`,`timeUse`,`hod`,`name`,`data`,`uid`, `id_eff`, `img2`, `timeAce`, `v1`) VALUES ("0","'.time().'","-1","'.$name.'","'.$data.'","'.$u->info['id'].'", "4", "'.$img.'","'.$timeEnd.'", "'.$v1.'")'); - */ +function testSkills(): int +{ + global $u; + return getLevelsData()['sum_skills'] + $u->rep['add_skills']; } -function test_skills() { - global $u; - $r = 0; - $sp = mysql_query('SELECT * FROM `levels` WHERE `upLevel` < "'.$u->info['upLevel'].'" ORDER BY `upLevel` ASC'); - while( $pl = mysql_fetch_array($sp) ) { - $r += $pl['skills']; - } - $r += $u->rep['add_skills']; - return $r; +function testSkills2(): int +{ + global $u; + return getLevelsData()['sum_nskills'] + $u->rep['add_skills2']; } -function test_skills2() { - global $u; - $r = 0; - $sp = mysql_query('SELECT * FROM `levels` WHERE `upLevel` < "'.$u->info['upLevel'].'" ORDER BY `upLevel` ASC'); - while( $pl = mysql_fetch_array($sp) ) { - $r += $pl['nskills']; - } - $r += $u->rep['add_skills2']; - return $r; +function testAbilities(): int +{ + global $u; + return getLevelsData()['sum_abilities'] + $u->rep['add_stats']; } -function test_ability() { - global $u; - $r = 0; - $sp = mysql_query('SELECT * FROM `levels` WHERE `upLevel` < "'.$u->info['upLevel'].'" ORDER BY `upLevel` ASC'); - while( $pl = mysql_fetch_array($sp) ) { - $r += $pl['ability']; - } - //$r += 3*3; - $r += $u->rep['add_stats']; - return $r; +function testStat5() +{ + return 3 + getLevelsData()['sum_vinos']; } -function test_s5() { - global $u; - $r = 0; - $i = 0; - /*$bns = array( - 3,1,1,1,1,1,1,1,1,2,3,5,30 - ); - while( $i <= $u->info['level'] ) { - $r += $bns[$i]; - $i++; - }*/ - $r = mysql_fetch_array(mysql_query('SELECT SUM(`vinos`) FROM `levels` WHERE `upLevel` <= "'.$u->info['upLevel'].'" LIMIT 1')); - $r = 3+$r[0]; - return $r; +function testStat7() +{ + return getLevelsData()['sum_duh']; } -function test_s7() { - global $u; - $r = 0; - /* - 1. сделать запрос в levels и получить количество`duh` на текущем аппе - SELECT SUM(`duh`) FROM `levels` ... - 2. вывод суммы в переменную $r - */ - $r = mysql_fetch_array(mysql_query('SELECT SUM(`duh`) FROM `levels` WHERE `upLevel` <= "'.$u->info['upLevel'].'" LIMIT 1')); - $r = $r[0]; - return $r; -} - -$c['znahar1'] = 1; //сброс навыков -$c['znahar2'] = 1; //сброс особенностей -$c['znahar3'] = 1; //сброс статов -$c['znahar4'] = 1; //сброс пристрастия -$c['znahar5'] = 1; //перераспределение статов - -if($price == 0) { - - $last_zn = mysql_fetch_array(mysql_query('SELECT `time` FROM `aaa_znahar` WHERE `uid` = "'.$u->info['id'].'" ORDER BY `time` DESC LIMIT 1')); - $last_zn = $last_zn['time']; - - $u->info['znahar'] = mysql_fetch_array(mysql_query('SELECT SUM(`point`) FROM `aaa_znahar` WHERE `uid` = "'.$u->info['id'].'" LIMIT 1')); - $u->info['znahar'] = $u->info['znahar'][0]; - $u->info['znahar'] = 15 - $u->info['znahar']; - - $last_zn = (time()-$last_zn); - $last_zn = floor($last_zn/( 60*60*24*7 )); - - $u->info['znahar'] += $last_zn; - - if($u->info['znahar'] > 15) { - $u->info['znahar'] = 15; - } - - $raspst = $u->info['znahar']; - - // - $i = 1; - $pr = array(0, - 25, - 15, - 75, - 25, - 5 - ); - $pr_free = array(0, - 5, - 3, - 5, - 5, - 1 - ); - while($i <= 5) { - if( $pr_free[$i] > $u->info['znahar'] ) { - $c['znahar'.$i] = 0; - } - $i++; - } -} - -function zact($i,$x = 1) { - global $price, $c, $u, $pr, $pr_free; - $point = 0; - $price1 = 0; - $r = 0; - $bad = 0; - - if( $price == 1 ) { - //бесплатно - $point = 0; - $price1 = 0; - }else{ - //платно - $point = $pr_free[$i]*$x; - if($point > $u->info['znahar']) { - $price1 = $pr[$i]*$x; - $point = 0; - if($price1 > $u->info['money']) { - $bad = 1; - } - } - } - - if($bad == 0) { - mysql_query('INSERT INTO `aaa_znahar` (`act`,`price`,`point`,`uid`,`time`,`city`) VALUES ("'.$i.'","'.$price1.'","'.$point.'","'.$u->info['id'].'","'.time().'","'.$u->info['city'].'")'); - if($price1 > 0) { - if($price1 < 0) { - $price1 = 0; - } - $u->info['money'] -= $price1; - mysql_query('UPDATE `users` SET `money` = "'.$u->info['money'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1'); - } - $u->info['znahar'] -= $point; - $r = array(1,$price1,$point); - while($i <= 5) { - if( $pr_free[$i] > $u->info['znahar'] ) { - $c['znahar'.$i] = 0; - } - $i++; - } - }else{ - $r = array(0,'У вас недостаточно денег для этого действия.'); - } - return $r; +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 = \Core\ConversionHelper::dataStringToArray($u->info['stats']); -$vinos = array( - /* 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 -); +$st = ConversionHelper::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 = array( - 1=>0, - 2=>0, - 3=>0, - 4=>0, - 5=>4, - 6=>7, - 7=>10, - 8=>12, - 9=>15, - 10=>20, - 11=>0 -); +$minlvl = [ + 1 => 0, + 2 => 0, + 3 => 0, + 4 => 0, + 5 => 4, + 6 => 7, + 7 => 10, + 8 => 12, + 9 => 15, + 10 => 20, + 11 => 0 +]; -$tst_trvm = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE (`id_eff` = 4 OR `id_eff` = 5) AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" LIMIT 1')); -if(isset($tst_trvm['id'])) { - $err = 'У вас травма "'.$tst_trvm['name'].'". Вы не можете пользоваться услугами знахаря!'; -}elseif(isset($_GET['unprist'])) { - $epr = mysql_fetch_array(mysql_query('SELECT `a`.`id`,`b`.`mname` FROM `eff_users` AS `a` LEFT JOIN `eff_main` AS `b` ON `b`.`id2` = `a`.`id_eff` WHERE ((`a`.`id_eff` >= 301 AND `a`.`id_eff` <= 304) OR (`a`.`id_eff` >= 321 AND `a`.`id_eff` <= 332)) AND `a`.`uid` = "'.$u->info['id'].'" AND `a`.`id` = "'.mysql_real_escape_string((int)$_GET['unprist']).'" LIMIT 1')); - if(isset($epr['id'])) { - $z_na = zact(4); - if($z_na[0] == 1) { - //сброс пристрастия - mysql_query('UPDATE `eff_users` SET `delete` = "'.time().'" WHERE `id` = "'.mysql_real_escape_string($epr['id']).'" LIMIT 1'); - $st = \Core\ConversionHelper::dataStringToArray($u->info['stats']); - add_narkoz(2,'Сброс пристрастий'); - $err = 'Вы заплатили '.$kr.' кр. Все прошло успешно, но вам необходим отдых...'; - }else{ - $err = ''.$z_na[1].''; - } - }else{ - $err = 'Пристрастие не найдено...'; - } -}elseif(isset($_POST['dropstats'])) -{ - $z_na = zact(3); - if($z_na[0] == 1) { - //сброс статов - $st = \Core\ConversionHelper::dataStringToArray($u->info['stats']); - $st['s1'] = 3; - $st['s2'] = 3; - $st['s3'] = 3; - $st['s4'] = test_s5(); - $st['s5'] = 0; - $st['s6'] = 0; - $st['s7'] = test_s7(); - $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 = \Core\ConversionHelper::arrayToDataString($st); - $n1 = test_ability(); - $n2 = $u->info['skills']; - $n3 = $u->info['sskills']; - $n4 = $u->info['nskills']; - mysql_query('UPDATE `stats` SET `wipe`="0",`stats`="'.$st.'",`ability`="'.$n1.'",`skills`="'.$n2.'",`sskills`="'.$n3.'",`nskills`="'.$n4.'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1'); - //$u->info['wipe'] = 2; - //$u->wipe(); - $st = \Core\ConversionHelper::dataStringToArray($u->info['stats']); - add_narkoz(1,'Сброс характеристик'); - $err = 'Вы заплатили '.$kr.' кр. Все прошло успешно, но вам необходим отдых...'; - }else{ - $err = ''.$z_na[1].''; - } -}elseif(isset($_POST['dropmastery'])) -{ - $z_na = zact(1); - if($z_na[0] == 1) { - //сброс статов - $st = \Core\ConversionHelper::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 = \Core\ConversionHelper::arrayToDataString($st); - $n1 = $u->info['ability']; - $n2 = test_skills(); - $n3 = $u->info['sskills']; - $n4 = $u->info['nskills']; - mysql_query('UPDATE `stats` SET `wipe`="0",`stats`="'.$st.'",`ability`="'.$n1.'",`skills`="'.$n2.'",`sskills`="'.$n3.'",`nskills`="'.$n4.'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1'); - //$u->info['wipe'] = 2; - //$u->wipe(); - $st = \Core\ConversionHelper::dataStringToArray($u->info['stats']); - add_narkoz(1,'Сброс умений'); - $err = 'Вы заплатили '.$kr.' кр. Все прошло успешно, но вам необходим отдых...'; - }else{ - $err = ''.$z_na[1].''; - } -}elseif(isset($_POST['dropmastery'])) -{ - //Старая версия - $z_na = zact(1); - if($z_na[0] == 1) { - //сброс характеристик - $u->info['wipe'] = 3; - $u->wipe(); - $st = \Core\ConversionHelper::dataStringToArray($u->info['stats']); - $err = 'Умения покину вас... вам плохо...'; - }else{ - $err = ''.$z_na[1].''; - } -}elseif(isset($_POST['dropperks'])) -{ - $z_na = zact(1); - if($z_na[0] == 1) { - //сброс особенностей - $u->info['wipe'] = 3.5; - $u->wipe(); - $st = \Core\ConversionHelper::dataStringToArray($u->info['stats']); - add_narkoz(1,'Сброс навыков'); - $err = 'Особенности покинули вас... вам плохо...'; - }else{ - $err = ''.$z_na[1].''; - } -}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 = $st['s1']+$st['s2']+$st['s3']+$st['s4']+$st['s5']+$st['s6']+$st['s7']+$st['s8']+$st['s9']+$st['s10']; - $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++; - } - //echo "Статы:
".$st['s1']."=3
".$st['s2']."=3
".$st['s3']."=3
".$st['s4']."=3
".$st['s5']."=0
".$st['s6']."=0
".$st['s7']."=0
".$st['s8']."=0
".$st['s9']."=0
".$st['s10']."=0
"; - if($no==0){ - - $z_na = zact(5,(int)$st_l); - if($z_na[0] == 1) { - if( ($st['s5'] > 0 && $u->info['level'] < 4) || ($st['s6'] > 0 && $u->info['level'] < 7) || ($st['s7'] > 0 && $u->info['level'] < 9) || ($st['s8'] > 0 && $u->info['level'] < 11) || ($st['s9'] > 0 && $u->info['level'] < 12) || ($st['s10'] > 0 && $u->info['level'] < 13) ) { - - }elseif($st['s1']>=3 && $st['s2']>=3 && $st['s3']>=3 && $st['s4']>=test_s5() && $st['s5']>=0 && $st['s6']>=0 && $st['s7']>=test_s7() && $st['s8']>=0 && $st['s9']>=0 && $st['s10']>=0){ - //Желательно проверку на статы по уровню (можно ли этот стат поднимать на текущем уровне перса) - $u->info['stats'] = \Core\ConversionHelper::arrayToDataString($st); - if(mysql_query('UPDATE `stats` SET `stats` = "'.mysql_real_escape_string($u->info['stats']).'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1')) - { - add_narkoz(2,'Переброс характеристик'); - //Надо добавить UPDATE в базе свободных статов - $u->stats = $u->getStats($u->info['id'],0,1); - $u->testItems($u->info['id'],$u->stats,0); - $st = \Core\ConversionHelper::dataStringToArray($u->info['stats']); - } - } - }else{ - $err = ''.$z_na[1].''; - } - } +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($addictionId); + $st = ConversionHelper::dataStringToArray($u->info['stats']); + $err = 'Все прошло успешно.'; + } else { + $err = 'Пристрастие не найдено.'; + } +} elseif (isset($_POST['dropstats'])) { + zact(3); + + //сброс статов + $st = ConversionHelper::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 = ConversionHelper::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 = ConversionHelper::dataStringToArray($u->info['stats']); + $err = 'Все прошло успешно.'; +} elseif (isset($_POST['dropmastery'])) { + zact(1); + //сброс статов + $st = ConversionHelper::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 = ConversionHelper::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 = ConversionHelper::dataStringToArray($u->info['stats']); + $err = 'Все прошло успешно.'; +} elseif (isset($_POST['dropmastery'])) { + //Старая версия + zact(1); + //сброс характеристик + $u->info['wipe'] = 3; + $u->wipe(); + $st = ConversionHelper::dataStringToArray($u->info['stats']); + $err = 'Умения покинули вас.'; +} elseif (isset($_POST['dropperks'])) { + zact(1); + + //сброс особенностей + $u->info['wipe'] = 3.5; + $u->wipe(); + $st = ConversionHelper::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'] = ConversionHelper::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 = ConversionHelper::dataStringToArray($u->info['stats']); + } + } } + +$err = "$err"; #------------------Запросы и прочее ?> - - - - - - - + + + +
Комната Знахаря
-error != '') { - echo '
'.$u->error.''; -} - if($re!=''){ echo '
'.$re.''; } -?>
-Запахи трав наполняют помещение, непонятные и пугающие предметы скрываются в пляшущих тенях...
-Говорят, здесь можно изменить свою судьбу. -Стать кем-то иным... кем раньше был лишь в мечтах...


-Деньги: info['money'];?> кр.
-Бесплатных перераспределений: Сегодня - неограничено!info['znahar']); } ?>
-
- - - - -
- - - - - - - -
- - - - - -
Бойцовский Клуб
-
- -
- - -
+ + + +
+
Комната Знахаря
+ error != '') { + echo '
' . $u->error . ''; + } + if ($re != '') { + echo '
' . $re . ''; + } + ?>
+
+ Запахи трав наполняют помещение, непонятные и пугающие предметы скрываются в пляшущих тенях...
+ Говорят, здесь можно изменить свою судьбу. Стать кем-то иным... кем раньше был лишь в мечтах... +
+
+ + + + +
+ + + + + + + + +
+ + + + Бойцовский Клуб + +
+
+ +
- - - - - - - + + + + + + +
Характеристики Пристрастия Прочее
- - - -= 301 AND `a`.`id_eff` <= 304) OR (`a`.`id_eff` >= 321 AND `a`.`id_eff` <= 332)) AND `a`.`uid` = "'.$u->info['id'].'" AND `a`.`delete` = "0"'); -$txtl = 'бесплатно'; -if($c['znahar4'] == 0) { - $txtl = ' за '.$pr[4].' кр.'; -} -while($pl = mysql_fetch_array($sp)) { - $prs .= ' вылечить '.$txtl.'
'; -} +
Характеристики Пристрастия Прочее
+ + + + info['id']]); + foreach ($sp as $addiction): ?> + <?= $addiction['name'] ?> + вылечить
+ +
У вас нет пристрастий
+ +

+ Навыки владения оружием и магией ()
+
+ +
+
+ Особенности персонажа ()
+
+ +
+
+ Характеристики (/)
+
+ +
-Прежде чем перераспределять свои параметры, Вам необходимо полностью их сбросить
- -
-
- -
- -
- - - \ No newline at end of file +Прежде чем перераспределять свои параметры, Вам необходимо полностью их сбросить +