Убрано дублирование классов. Helpers уехали из Core. Классы во внешних директориях переехали к остальным.

This commit is contained in:
2023-08-14 18:15:05 +03:00
parent 81a8161d32
commit 0d2b4aba63
114 changed files with 12919 additions and 13151 deletions

View File

@@ -1,8 +1,8 @@
<?php
use Core\Config;
use Core\ConversionHelper;
use Core\Db;
use Helper\Conversion;
if (!defined('GAME')) {
die();
@@ -96,7 +96,7 @@ function getBtc(int $id)
<?php
if (ConversionHelper::secondsToTimeout(getBtc(89489) - time()) == '0 сек.'): ?>
if (Conversion::secondsToTimeout(getBtc(89489) - time()) == '0 сек.'): ?>
<div style="position:absolute; left:300px; top:168px; width:27px; height:55px; z-index:99;">
<img onclick="location.href='main.php?atak_user=89489'" src="<?= Config::img() ?>/i/images/300x225/capital/jora1.png"
width="120" height="135" title="Напасть на Слабого Трупожора" alt="">
@@ -104,7 +104,7 @@ function getBtc(int $id)
<?php endif; ?>
<?php
if (ConversionHelper::secondsToTimeout(getBtc(903093) - time()) == '0 сек.'): ?>
if (Conversion::secondsToTimeout(getBtc(903093) - time()) == '0 сек.'): ?>
<div style="position:absolute; left:100px; top:175px; width:27px; height:55px; z-index:99;">
<img onclick="location.href='main.php?atak_user=903093'" src="<?= Config::img() ?>/i/images/300x225/capital/jora2.png"
width="120" height="150" title="Напасть на Сильного Трупожора" alt="">

View File

@@ -1,7 +1,6 @@
<?php
use Core\Config;
use Insallah\Runes;
use Location\KnowledgeTemple;
use User\ItemsModel;
use User\StatsModel;

View File

@@ -1,7 +1,6 @@
<?php
use Core\ConversionHelper;
use Insallah\Runes;
use Helper\Conversion;
use User\ItemsModel;
if (!defined('GAME')) {
@@ -46,7 +45,7 @@ if (isset($_GET['upgrade']) && true == false) {
$ir = mysql_fetch_array(mysql_query('SELECT `im`.*,`iu`.* FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON (`im`.`id` = `iu`.`item_id`) WHERE `iu`.`uid`="' . $u->info['id'] . '" AND `iu`.`delete`="0" AND `iu`.`inOdet`="0" AND `iu`.`inShop`="0" AND `iu`.`data` LIKE "%modif%" AND `iu`.`data` NOT LIKE "%upgrade=5%" AND `iu`.`id` = "' . mysql_real_escape_string((int)$_GET['upgrade']) . '" LIMIT 1'));
if (isset($ir['id'])) {
$po = [];
$po = ConversionHelper::dataStringToArray($ir['data']);
$po = Conversion::dataStringToArray($ir['data']);
if ($ir['price1'] > $ir['1price']) {
$ir['1price'] = $ir['price1'];
}
@@ -117,7 +116,7 @@ if (isset($_GET['upgrade']) && true == false) {
$u->addDelo(2, $u->info['id'], '&quot;<font color="#4863A0">System.remont.itemUpgrade</font>&quot;: Предмет &quot;' . $ir['name'] . '&quot; [itm:' . $ir['id'] . '] был успешно улучшен (' . $po['upgrade'] . '/5) за ' . $pcena . ' кр..', time(), $u->info['city'], 'System.remont.itemUpgrade', 0, 0);
$po = ConversionHelper::arrayToDataString($po);
$po = Conversion::arrayToDataString($po);
mysql_query('UPDATE `items_users` SET `data` = "' . $po . '",`1price` = "' . $ir['1price'] . '" WHERE `id` = "' . $ir['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `money` = `money` - "' . $pcena . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
$u->info['money'] -= $pcena;
@@ -138,7 +137,7 @@ if (isset($_GET['upgrade']) && true == false) {
AND `iu`.`id` = "' . mysql_real_escape_string((int)$_GET['modif']) . '" LIMIT 1'));
if (isset($ir['id'])) {
$po = [];
$po = ConversionHelper::dataStringToArray($ir['data']);
$po = Conversion::dataStringToArray($ir['data']);
if ($ir['price1'] > $ir['1price']) {
$ir['1price'] = $ir['price1'];
}
@@ -248,7 +247,7 @@ if (isset($_GET['upgrade']) && true == false) {
$po['mf_mib'] += $fadd[2];
}
$po['modif'] = 1;
$po = ConversionHelper::arrayToDataString($po);
$po = Conversion::arrayToDataString($po);
mysql_query('UPDATE `items_users` SET `data` = "' . $po . '",`1price` = "' . $ir['1price'] . '" WHERE `id` = "' . $ir['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `money` = `money` - "' . $pcena . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
@@ -272,7 +271,7 @@ if (isset($_GET['upgrade']) && true == false) {
// Предмет существует.
if (isset($ir['id'])) {
$po = [];
$po = ConversionHelper::dataStringToArray($ir['data']); // Тут мы храним характеристики предмета.
$po = Conversion::dataStringToArray($ir['data']); // Тут мы храним характеристики предмета.
if ($po['tr_lvl'] > $ir['level']) {
$pl['level'] = $po['tr_lvl']; // Если уровень предмета, меньше чем уровень требований с характеристик, то идет обновление уровня предмета.
}
@@ -309,8 +308,8 @@ if (isset($_GET['upgrade']) && true == false) {
// Обнуляем инфу к стандартным данным - $ir['item_id']
$item_default = mysql_fetch_array(mysql_query('SELECT `data` FROM `items_main_data` WHERE `items_id` = "' . mysql_real_escape_string((int)$ir['item_id']) . '" LIMIT 1'));
$item_default = ConversionHelper::dataStringToArray($item_default['data']);
$upattack = ConversionHelper::dataStringToArray($upattack['data']);
$item_default = Conversion::dataStringToArray($item_default['data']);
$upattack = Conversion::dataStringToArray($upattack['data']);
if ($upattack['uptype'] == 22) {
$po['add_m11'] -= $upattack['upatack'] * 2;
$po['tr_lvl'] = $item_default['tr_lvl'];
@@ -326,7 +325,7 @@ if (isset($_GET['upgrade']) && true == false) {
unset($po["upatack_lvl"]);
unset($item_default);
unset($upattack);
$po = ConversionHelper::arrayToDataString($po);
$po = Conversion::arrayToDataString($po);
var_info($po);
@@ -343,7 +342,7 @@ if (isset($_GET['upgrade']) && true == false) {
$ir = mysql_fetch_array(mysql_query('SELECT `im`.*,`iu`.* FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON (`im`.`id` = `iu`.`item_id`) WHERE `iu`.`uid`="' . $u->info['id'] . '" AND `iu`.`delete`="0" AND `iu`.`inOdet`="0" AND `iu`.`inShop`="0" AND `iu`.`data` LIKE "%rune_id%" AND `iu`.`id` = "' . mysql_real_escape_string((int)$_GET['unrune']) . '" LIMIT 1'));
if (isset($ir['id'])) {
$po = [];
$po = ConversionHelper::dataStringToArray($ir['data']);
$po = Conversion::dataStringToArray($ir['data']);
if ($po['tr_lvl'] > $ir['level']) {
$ir['level'] = $po['tr_lvl'];
}
@@ -378,7 +377,7 @@ if (isset($_GET['upgrade']) && true == false) {
$ir = mysql_fetch_array(mysql_query('SELECT `im`.*,`iu`.* FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON (`im`.`id` = `iu`.`item_id`) WHERE `iu`.`uid`="' . $u->info['id'] . '" AND `iu`.`delete`="0" AND `iu`.`inOdet`="0" AND `iu`.`inShop`="0" AND `iu`.`data` LIKE "%upatack_id%" AND `iu`.`id` = "' . mysql_real_escape_string((int)$_GET['ubeff']) . '" LIMIT 1'));
if (isset($ir['id'])) {
$po = [];
$po = ConversionHelper::dataStringToArray($ir['data']);
$po = Conversion::dataStringToArray($ir['data']);
if ($po['tr_lvl'] > $ir['level']) {
$ir['level'] = $po['tr_lvl'];
}
@@ -389,7 +388,7 @@ if (isset($_GET['upgrade']) && true == false) {
$pcena = 0;
}
$iro = mysql_fetch_array(mysql_query('SELECT * FROM `items_main_data` WHERE `items_id` = "' . $po['upatack_id'] . '" LIMIT 1'));
$ro = ConversionHelper::dataStringToArray($iro['data']);
$ro = Conversion::dataStringToArray($iro['data']);
$restat = [];
$i = 0;
@@ -414,7 +413,7 @@ if (isset($_GET['upgrade']) && true == false) {
$u->addDelo(2, $u->info['id'], '&quot;<font color="#4863A0">System.remont.ubeff</font>&quot;: Руна &quot;' . $po['upatack_name'] . '&quot; была успешно извлечена из предмета &quot;' . $ir['name'] . '&quot; [itm:' . $ir['id'] . '] за ' . $pcena . ' кр.', time(), $u->info['city'], 'System.remont.ubeff', 0, 0);
unset($po['upatack'], $po['upatack_id'], $po['upatack_name'], $po['upatack_lvl']);
$po = ConversionHelper::arrayToDataString($po);
$po = Conversion::arrayToDataString($po);
mysql_query('UPDATE `items_users` SET `data` = "' . $po . '" WHERE `id` = "' . $ir['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `money` = `money` - "' . $pcena . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
$u->info['money'] -= $pcena;
@@ -436,7 +435,7 @@ if (isset($_GET['upgrade']) && true == false) {
}
if ($pcena <= $u->info['money']) {
$po = [];
$po = ConversionHelper::dataStringToArray($ir['data']);
$po = Conversion::dataStringToArray($ir['data']);
$po['gravi'] = substr($_GET['grav_text'], 0, 20);
$po['gravic'] = $u->info['city'];
$po['gravi'] = str_replace('=', '', $po['gravi']);
@@ -445,7 +444,7 @@ if (isset($_GET['upgrade']) && true == false) {
$tst = str_replace(' ', '', $po['gravi']);
$po['gravi'] = preg_replace("/[^a-zA-ZА-Яа-я0-9\s]/", "", $po['gravi']);
if ($po['gravi'] != '' && $tst != '') {
$po = ConversionHelper::arrayToDataString($po);
$po = Conversion::arrayToDataString($po);
mysql_query('UPDATE `users` SET `money` = `money` - "' . $pcena . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
mysql_query('UPDATE `items_users` SET `data` = "' . $po . '" WHERE `id` = "' . $ir['id'] . '" LIMIT 1');
$re = '<div align="left">На предмете &quot;' . $ir['name'] . '&quot; был успешно выгровирован текст за ' . $pcena . ' кр.</div>';
@@ -469,7 +468,7 @@ if (isset($_GET['upgrade']) && true == false) {
}
if ($pcena <= $u->info['money']) {
$po = [];
$po = ConversionHelper::dataStringToArray($ir['data']);
$po = Conversion::dataStringToArray($ir['data']);
$po['gravi'] = substr($_GET['grav_text'], 0, 20);
$po['gravic'] = $u->info['city'];
$po['gravi'] = str_replace('=', '', $po['gravi']);
@@ -478,7 +477,7 @@ if (isset($_GET['upgrade']) && true == false) {
$tst = str_replace(' ', '', $po['gravi']);
$po['gravi'] = preg_replace("/[^a-zA-ZА-Яа-я0-9\s]/", "", $po['gravi']);
if ($po['gravi'] != '' && $tst != '') {
$po = ConversionHelper::arrayToDataString($po);
$po = Conversion::arrayToDataString($po);
mysql_query('UPDATE `users` SET `money` = `money` - "' . $pcena . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
mysql_query('UPDATE `items_users` SET `data` = "' . $po . '" WHERE `id` = "' . $ir['id'] . '" LIMIT 1');
$re = '<div align="left">На предмете &quot;' . $ir['name'] . '&quot; был успешно выгровирован текст за ' . $pcena . ' кр.</div>';
@@ -495,7 +494,7 @@ if (isset($_GET['upgrade']) && true == false) {
$ir = mysql_fetch_array(mysql_query('SELECT `im`.*,`iu`.* FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON (`im`.`id` = `iu`.`item_id`) WHERE `iu`.`uid`="' . $u->info['id'] . '" AND `iu`.`delete`="0" AND `iu`.`inOdet`="0" AND `iu`.`inShop`="0" AND `im`.`inslot` = 5 AND `iu`.`id` = "' . mysql_real_escape_string((int)$_GET['podgon']) . '" LIMIT 1'));
if (isset($ir['id'])) {
$po = [];
$po = ConversionHelper::dataStringToArray($ir['data']);
$po = Conversion::dataStringToArray($ir['data']);
if (!isset($po['podgon'])) {
if ($po['tr_lvl'] > $ir['level']) {
$ir['level'] = $po['tr_lvl'];
@@ -506,7 +505,7 @@ if (isset($_GET['upgrade']) && true == false) {
$po['podgon'] = 1;
$po['add_hpAll'] += $prhp;
$po['sudba'] = $u->info['login'];
$po = ConversionHelper::arrayToDataString($po);
$po = Conversion::arrayToDataString($po);
mysql_query('UPDATE `users` SET `money` = `money` - "' . $pcena . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
mysql_query('UPDATE `items_users` SET `data` = "' . $po . '" WHERE `id` = "' . $ir['id'] . '" LIMIT 1');
$re = '<div align="left">Предмет &quot;' . $ir['name'] . '&quot; был успешно подогнан за ' . $pcena . ' кр. (Добавлено +' . $prhp . 'HP)</div>';
@@ -544,7 +543,7 @@ if (isset($_GET['upgrade']) && true == false) {
} //кэп поможет
if (isset($ir['id'])) {
$po = ConversionHelper::dataStringToArray($ir['data']);
$po = Conversion::dataStringToArray($ir['data']);
if (isset($po['noremont'])) {
$re2 = 'Предмет не подлежит ремонту в этой мастерской.';
} else {
@@ -616,7 +615,7 @@ if (isset($_GET['upgrade']) && true == false) {
} //кэп поможет
if (isset($ir['id'])) {
$po = ConversionHelper::dataStringToArray($ir['data']);
$po = Conversion::dataStringToArray($ir['data']);
if (isset($po['noremont'])) {
$re2 = 'Предмет не подлежит ремонту в этой мастерской.';
} else {
@@ -664,7 +663,7 @@ if (isset($_GET['upgrade']) && true == false) {
if ($ir['iznosMAX'] < 1) {
$ir['iznosMAX'] = 1;
}
$po = ConversionHelper::arrayToDataString($po);
$po = Conversion::arrayToDataString($po);
mysql_query('UPDATE `items_users` SET `data` = "' . $po . '",`iznosNOW` = "' . $ir['iznosNOW'] . '",`iznosMAX` = "' . $ir['iznosMAX'] . '" WHERE `id` = "' . $ir['id'] . '" LIMIT 1');
$re2 = 'Удачно произведен ремонт ' . $re2 . ' предмета &quot;' . $ir['name'] . '&quot; за ' . $u->zuby($rem_cell, 1) . '.';
$dop = 0;
@@ -977,7 +976,7 @@ if ($re != '') {
if ($wrk == 1 && ($sti['sudba'] == '0' || !isset($sti['sudba']))) {
$sti['sudba'] = $u->info['login'];
}
$sti_imp = ConversionHelper::arrayToDataString($sti);
$sti_imp = Conversion::arrayToDataString($sti);
$u->addEkr(-$epr);
mysql_query('UPDATE `items_users` SET `data` = "' . mysql_real_escape_string($sti_imp) . '" WHERE `id` = "' . $itmu['id'] . '" LIMIT 1');
$er2 = 'Предмет &quot;' . $itmm['name'] . '&quot; успешно подогнан под &quot;' . $com2['name'] . '&quot; за ' . $epr . ' екр.';

View File

@@ -1,9 +1,9 @@
<?php
use Core\Config;
use Core\ConversionHelper;
use Core\Db;
use Core\View;
use Helper\Conversion;
use Location\Shop;
use User\Clan;
use User\ItemsModel;
@@ -83,7 +83,7 @@ if ($actionSale) {
}
if ($sellItemId) {
$item = ItemsModel::getOwnedItemById($sellItemId, User::start()->info['id']);
$itemData = ConversionHelper::dataStringToArray($item['data']);
$itemData = Conversion::dataStringToArray($item['data']);
$status = $item['gift'] ? 'Подарки не продаются!' : '';
$status = $itemData['nosale'] ? 'Предмет не для продажи!' : '';
if (!$status && $sellItemId) {

View File

@@ -1,8 +1,8 @@
<?php
use Core\Config;
use Core\ConversionHelper;
use Core\Db;
use Helper\Conversion;
use User\Effects;
if (!defined('GAME')) {
@@ -61,7 +61,7 @@ function zact($i): void
}
#------------------Запросы и прочее
$st = ConversionHelper::dataStringToArray($u->info['stats']);
$st = Conversion::dataStringToArray($u->info['stats']);
$vinos = [
/* level,summvinos*/
"0" => 3,
@@ -102,7 +102,7 @@ if (Effects::hasInjury($u->info['id'])) {
zact(4);
//сброс пристрастия
Effects::removeById($u->info['id'], $addictionId);
$st = ConversionHelper::dataStringToArray($u->info['stats']);
$st = Conversion::dataStringToArray($u->info['stats']);
$err = 'Все прошло успешно.';
} else {
$err = 'Пристрастие не найдено.';
@@ -111,7 +111,7 @@ if (Effects::hasInjury($u->info['id'])) {
zact(3);
//сброс статов
$st = ConversionHelper::dataStringToArray($u->info['stats']);
$st = Conversion::dataStringToArray($u->info['stats']);
$st['s1'] = 3;
$st['s2'] = 3;
$st['s3'] = 3;
@@ -127,18 +127,18 @@ if (Effects::hasInjury($u->info['id'])) {
$st['s13'] = 0;
$st['s14'] = 0;
$st['s15'] = 0;
$st = ConversionHelper::arrayToDataString($st);
$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 = ConversionHelper::dataStringToArray($u->info['stats']);
$st = Conversion::dataStringToArray($u->info['stats']);
$err = 'Все прошло успешно.';
} elseif (isset($_POST['dropmastery'])) {
zact(1);
//сброс статов
$st = ConversionHelper::dataStringToArray($u->info['stats']);
$st = Conversion::dataStringToArray($u->info['stats']);
$st['a1'] = 0;
$st['a2'] = 0;
$st['a3'] = 0;
@@ -152,13 +152,13 @@ if (Effects::hasInjury($u->info['id'])) {
$st['mg5'] = 0;
$st['mg6'] = 0;
$st['mg7'] = 0;
$st = ConversionHelper::arrayToDataString($st);
$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 = ConversionHelper::dataStringToArray($u->info['stats']);
$st = Conversion::dataStringToArray($u->info['stats']);
$err = 'Все прошло успешно.';
} elseif (isset($_POST['dropmastery'])) {
//Старая версия
@@ -166,7 +166,7 @@ if (Effects::hasInjury($u->info['id'])) {
//сброс характеристик
$u->info['wipe'] = 3;
$u->wipe();
$st = ConversionHelper::dataStringToArray($u->info['stats']);
$st = Conversion::dataStringToArray($u->info['stats']);
$err = 'Умения покинули вас.';
} elseif (isset($_POST['dropperks'])) {
zact(1);
@@ -174,7 +174,7 @@ if (Effects::hasInjury($u->info['id'])) {
//сброс особенностей
$u->info['wipe'] = 3.5;
$u->wipe();
$st = ConversionHelper::dataStringToArray($u->info['stats']);
$st = Conversion::dataStringToArray($u->info['stats']);
$err = 'Особенности покинули вас.';
} elseif (isset($_GET['movestat'])) {
@@ -219,13 +219,13 @@ if (Effects::hasInjury($u->info['id'])) {
$st['s10'] >= 0
) {
//Желательно проверку на статы по уровню (можно ли этот стат поднимать на текущем уровне перса)
$u->info['stats'] = ConversionHelper::arrayToDataString($st);
$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 = ConversionHelper::dataStringToArray($u->info['stats']);
$st = Conversion::dataStringToArray($u->info['stats']);
}
}
}

View File

@@ -1,203 +1,247 @@
<?php
if(!defined('GAME'))
{
die();
if (!defined('GAME')) {
die();
}
if($u->room['file']=='znahar'){?>
<STYLE>
.H3 { COLOR: #8f0000; FONT-FAMILY: Arial; FONT-SIZE: 12pt; FONT-WEIGHT: bold;}
</STYLE>
<SCRIPT>
function gfastshow(dsc, dx, dy) { top.fullfastshow(document, mmoves3, window.event, dsc, dx, dy); }
function ghideshow() { top.fullhideshow(mmoves3); }
</SCRIPT>
</HEAD>
<body leftmargin=5 topmargin=5 marginwidth=5 marginheight=5 bgcolor=e2e0e0>
<div id="mmoves3" style="background-color:#FFFFCC; visibility:hidden; z-index: 101; overflow:visible; position:absolute; border-color:#666666; border-style:solid; border-width: 1px; padding: 2px;"></div>
<SCRIPT src='//img.new-combats.tech/i/commoninf.js'></SCRIPT>
<TABLE width=100%>
<TR><TD><DIV class='H3' align=center>Комната Знахаря</DIV>
<BR>
<BR>
<b><i>Запахи трав наполняют помещение, непонятные и пугающие предметы скрываются в пляшущих тенях...<BR>
Говорят, здесь можно изменить свою судьбу.
Стать кем-то иным... кем раньше был лишь в мечтах...</i></b><BR><BR>
Деньги: <B><?=$u->info['money'];?></B> кр.<BR>
Бесплатных перераспределений: Сегодня - неограничено!<BR>
</TD>
<TD width=1 valign=top>
<?php
if($c['znahar']==1){$raspst=99999;}else{$raspst=0;}
#------------------Запросы и прочее
$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
);
#------------------Запросы и прочее
?>
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<!-- -->
<?= $goLis; ?>
<!-- -->
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td nowrap="nowrap" id="moveto">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
if ($u->room['file'] == 'znahar') {
?>
<STYLE>
.H3 {
COLOR: #8f0000;
FONT-FAMILY: Arial;
FONT-SIZE: 12pt;
FONT-WEIGHT: bold;
}
</STYLE>
<SCRIPT>
function gfastshow(dsc, dx, dy) {
top.fullfastshow(document, mmoves3, window.event, dsc, dx, dy);
}
<tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7" /></td>
<td bgcolor="#D3D3D3" nowrap><a href="?rnd=0.454008319854562&path=1.100.1.6.5" onclick="return check_access();" class="menutop" title="Время перехода: 20 сек.
function ghideshow() {
top.fullhideshow(mmoves3);
}
</SCRIPT>
</HEAD>
<body leftmargin=5 topmargin=5 marginwidth=5 marginheight=5 bgcolor=e2e0e0>
<div id="mmoves3"
style="background-color:#FFFFCC; visibility:hidden; z-index: 101; overflow:visible; position:absolute; border-color:#666666; border-style:solid; border-width: 1px; padding: 2px;"></div>
<SCRIPT src='//img.new-combats.tech/i/commoninf.js'></SCRIPT>
<TABLE width=100%>
<TR>
<TD>
<DIV class='H3' align=center>Комната Знахаря</DIV>
<BR>
<BR>
<b><i>Запахи трав наполняют помещение, непонятные и пугающие предметы скрываются в пляшущих тенях...<BR>
Говорят, здесь можно изменить свою судьбу.
Стать кем-то иным... кем раньше был лишь в мечтах...</i></b><BR><BR>
Деньги: <B><?= $u->info['money']; ?></B> кр.<BR>
Бесплатных перераспределений: Сегодня - неограничено!<BR>
</TD>
<TD width=1 valign=top>
<?php
if ($c['znahar'] == 1) {
$raspst = 99999;
} else {
$raspst = 0;
}
#------------------Запросы и прочее
$st = Helper\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,
];
#------------------Запросы и прочее
?>
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<!-- -->
<?= $goLis; ?>
<!-- -->
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td nowrap="nowrap" id="moveto">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
<tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
<td bgcolor="#D3D3D3" nowrap><a href="?rnd=0.454008319854562&path=1.100.1.6.5" onclick="return check_access();" class="menutop" title="Время перехода: 20 сек.
Сейчас в комнате 0 чел.">Этаж 2</a></td>
</tr>
</tr>
<tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7" /></td>
<td bgcolor="#D3D3D3" nowrap><a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.221&rnd=<?= $code; ?>';" title="<?php thisInfRm('1.180.0.221',1); ?>">Торговый Зал</a></td>
</tr>
</table>
</td>
</tr>
</table>
<!-- <br /><span class="menutop"><nobr>Комната Знахаря</nobr></span>-->
</td>
</tr>
</table>
<div id="mmoves" style="background-color:#FFFFCC; visibility:hidden; overflow:visible; position:absolute; border-color:#666666; border-style:solid; border-width: 1px; padding: 2px; white-space: nowrap;"></div>
</HTML>
</TD>
</TR>
</TABLE>
<TABLE>
<TR bgcolor=#D8D8D8>
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/strsmall.gif'> Характеристики</TD>
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/cureelixirsmall.gif'> Пристрастия</TD>
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/weaponsmall.gif'> Прочее</TD>
<TR>
<TD width=270 valign=top>
<SCRIPT>
//////////////Название,параметр,всего, +сколько, до скольки сбросить(макс возможное),сколько сбрасывать/прибавлять
var pr = new Array(
'Сила', 's1', <?=$st['s1'];?>, <?=$u->stats['s1']-$st['s1'];?>, 3, 0,
'Ловкость', 's2', <?=$st['s2'];?>, <?=$u->stats['s2']-$st['s2'];?>, 3, 0,
'Интуиция', 's3', <?=$st['s3'];?>, <?=$u->stats['s3']-$st['s3'];?>, 3, 0,
'Выносливость', 's4', <?=$st['s4'];?>, 0, <?=$vinos[$u->info['level']]?>, 0
<?if ($u->info['level'] > 3) {?>
,'Интеллект', 's5', <?=$st['s5'];?>, <?=$u->stats['s5']-$st['s5'];?>, 0, 0
<?}if ($u->info['level'] > 6) {?>
,'Мудрость', 's6', <?=$st['s6'];?>, 0, 0, 0
<?}if ($u->info['level'] > 9) {?>
,'Духовность', 's7', <?=$st['s7'];?>, 0, 0, 0
<?}if ($u->info['level'] > 12) {?>
,'Воля', 's8', <?=$st['s8'];?>, 0, 0, 0
<?}if ($u->info['level'] > 15) {?>
,'Свобода Духа', 's9', <?=$st['s9'];?>, 0, 0, 0
<?}if ($u->info['level'] > 18) {?>
,'Божественность', 's10', <?=$st['s10'];?>, 0, 0, 0
<?}?>
);
function getprstr(i) {
var ss= pr[i]+": "+(pr[i+2]+pr[i+3]+pr[i+5]);
if (pr[i+3] || pr[i+5]) {
ss+=" ("+pr[i+2];
if (pr[i+3]) {ss+=(pr[i+3]<0?"":"+")+pr[i+3]}
if (pr[i+5]) {
if (pr[i+5] > 0) {
ss+=" <font color=green>+"+pr[i+5];
} else {
ss+=" <font color=#8f0000>"+pr[i+5];
}
ss+="</font>";
}
ss+=")";
}
return ss;
}
var freepr = 0;
var freemoves = <?=$raspst;?>;
var movecost = 5;
function modpr(i, to) {
if (to == 1 && freepr==0) {
return;
}
if (to == -1 && pr[i+2] + pr[i+5] <= pr[i+4]) {
return;
}
pr[i+5] += to;
freepr -= to;
document.all["pr"+i].innerHTML = getprstr(i);
document.all["prfree"].innerHTML = freepr;
var moves = 0;
for (j=0; j<pr.length; j+=6) {
if (pr[j+5] > 0) {moves+=pr[j+5]};
}
movedonebutton.disabled=(freepr || moves==0?true:false);
document.all["prmoves"].innerHTML = moves+((freemoves < moves)?" за "+(movecost*(moves - freemoves))+" кр.":(moves?" / бесплатно":""));
}
function movedone() {
if (freepr) {
return;
}
var s="";
for (j=0; j<pr.length; j+=6) {
if (pr[j+5]) {
s+="&"+pr[j+1]+"="+pr[j+5];
};
}
if (!s) {return};
location="?movestat=0.<?=$code;?>&sd4=<?=$u->info['id']?>"+s;
}
var s="<TABLE>";
for (i=0; i<pr.length; i+=6) {
if (pr[i+2]!=-1) {
s+="<TR><TD width=200 id=pr"+i+">"+getprstr(i) + "</TD>";
s+='<TD><img src=https://img.combats.com/i/minus.gif border=0 onclick="modpr('+i+',-1)" style="cursor: hand"> '
s+='<img src=https://img.combats.com/i/plus.gif border=0 onclick="modpr('+i+',1)" style="cursor: hand"></TR>';
}
}
s+="</TABLE>";
s+="<small>(осталось: <span id='prfree'>0</span>, распределений: <span id='prmoves'>0</span>)<BR>";
document.write(s);
</SCRIPT>
<input type=button onclick="movedone();" id='movedonebutton' value="Применить" disabled>
</TD>
<TD width=270 valign=top>
<BR><BR><BR>
<small><center>У вас нет пристрастий</center></small>
</TD>
<TD valign=top><BR>
Навыки владения оружием и магией<BR>
<tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
<td bgcolor="#D3D3D3" nowrap><a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.221&rnd=<?= $code; ?>';"
title="<?php thisInfRm('1.180.0.221', 1); ?>">Торговый Зал</a></td>
</tr>
</table>
</td>
</tr>
</table>
<!-- <br /><span class="menutop"><nobr>Комната Знахаря</nobr></span>-->
</td>
</tr>
</table>
<div id="mmoves"
style="background-color:#FFFFCC; visibility:hidden; overflow:visible; position:absolute; border-color:#666666; border-style:solid; border-width: 1px; padding: 2px; white-space: nowrap;"></div>
</HTML>
</TD>
</TR>
</TABLE>
<TABLE>
<TR bgcolor=#D8D8D8>
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/strsmall.gif'> Характеристики</TD>
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/cureelixirsmall.gif'> Пристрастия</TD>
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/weaponsmall.gif'> Прочее</TD>
<TR>
<TD width=270 valign=top>
<SCRIPT>
//////////////Название,параметр,всего, +сколько, до скольки сбросить(макс возможное),сколько сбрасывать/прибавлять
var pr = new Array(
'Сила', 's1', <?=$st['s1'];?>, <?=$u->stats['s1'] - $st['s1'];?>, 3, 0,
'Ловкость', 's2', <?=$st['s2'];?>, <?=$u->stats['s2'] - $st['s2'];?>, 3, 0,
'Интуиция', 's3', <?=$st['s3'];?>, <?=$u->stats['s3'] - $st['s3'];?>, 3, 0,
'Выносливость', 's4', <?=$st['s4'];?>, 0, <?=$vinos[$u->info['level']]?>, 0
<?if ($u->info['level'] > 3) {?>
, 'Интеллект', 's5', <?=$st['s5'];?>, <?=$u->stats['s5'] - $st['s5'];?>, 0, 0
<?}if ($u->info['level'] > 6) {?>
, 'Мудрость', 's6', <?=$st['s6'];?>, 0, 0, 0
<?}if ($u->info['level'] > 9) {?>
, 'Духовность', 's7', <?=$st['s7'];?>, 0, 0, 0
<?}if ($u->info['level'] > 12) {?>
, 'Воля', 's8', <?=$st['s8'];?>, 0, 0, 0
<?}if ($u->info['level'] > 15) {?>
, 'Свобода Духа', 's9', <?=$st['s9'];?>, 0, 0, 0
<?}if ($u->info['level'] > 18) {?>
, 'Божественность', 's10', <?=$st['s10'];?>, 0, 0, 0
<?}?>
);
<form method=post><input type=hidden value='<?=$u->info['id'];?>' name='dropmastery'><INPUT type=submit value='Сбросить <?echo $c['znahar']==1? "бесплатно":"(32кр.)"?>' onclick="return confirm('Вы действительно хотите сбросить умения?')"><HR color=black></form>
Особенности персонажа<BR>
<form method=post><input type=hidden value='<?=$u->info['id'];?>' name='dropperks'> <INPUT type=submit value='Сбросить <?echo $c['znahar']==1? "бесплатно":"(300кр.)"?>' onclick="return confirm('Вы действительно хотите сбросить особенности?')"><HR color=black></form>
Характеристики<BR>
<form method=post><input type=hidden value='<?=$u->info['id'];?>' name='dropstats'><INPUT type=submit value='Сбросить <?echo $c['znahar']==1? "бесплатно":"(500кр.)"?>' onclick="return confirm('Вы действительно хотите сбросить все характеристики до минимального уровня?')"></form>
</TABLE>
<small>Каждые 7 дней после последнего использования комнаты знахаря вы получаете 1 бесплатное перераспределение, но не более 15<BR>
Исцеление пристрастия, cброс умений или особенностей стоят 5 перераспределений<BR>
Изменение Характеристик досрочно завершает некоторые эффекты, например эффект свитка <B>Жажда Жизни</B>
</small>
<BR>
</TABLE>
<div>
<?//рейтинг?>
</div>
</BODY>
</HTML>
<?}?>
function getprstr(i) {
var ss = pr[i] + ": " + (pr[i + 2] + pr[i + 3] + pr[i + 5]);
if (pr[i + 3] || pr[i + 5]) {
ss += " (" + pr[i + 2];
if (pr[i + 3]) {
ss += (pr[i + 3] < 0 ? "" : "+") + pr[i + 3]
}
if (pr[i + 5]) {
if (pr[i + 5] > 0) {
ss += " <font color=green>+" + pr[i + 5];
} else {
ss += " <font color=#8f0000>" + pr[i + 5];
}
ss += "</font>";
}
ss += ")";
}
return ss;
}
var freepr = 0;
var freemoves = <?=$raspst;?>;
var movecost = 5;
function modpr(i, to) {
if (to == 1 && freepr == 0) {
return;
}
if (to == -1 && pr[i + 2] + pr[i + 5] <= pr[i + 4]) {
return;
}
pr[i + 5] += to;
freepr -= to;
document.all["pr" + i].innerHTML = getprstr(i);
document.all["prfree"].innerHTML = freepr;
var moves = 0;
for (j = 0; j < pr.length; j += 6) {
if (pr[j + 5] > 0) {
moves += pr[j + 5]
}
;
}
movedonebutton.disabled = (freepr || moves == 0 ? true : false);
document.all["prmoves"].innerHTML = moves + ((freemoves < moves) ? " за " + (movecost * (moves - freemoves)) + " кр." : (moves ? " / бесплатно" : ""));
}
function movedone() {
if (freepr) {
return;
}
var s = "";
for (j = 0; j < pr.length; j += 6) {
if (pr[j + 5]) {
s += "&" + pr[j + 1] + "=" + pr[j + 5];
}
;
}
if (!s) {
return
}
;
location = "?movestat=0.<?=$code;?>&sd4=<?=$u->info['id']?>" + s;
}
var s = "<TABLE>";
for (i = 0; i < pr.length; i += 6) {
if (pr[i + 2] != -1) {
s += "<TR><TD width=200 id=pr" + i + ">" + getprstr(i) + "</TD>";
s += '<TD><img src=https://img.combats.com/i/minus.gif border=0 onclick="modpr(' + i + ',-1)" style="cursor: hand"> '
s += '<img src=https://img.combats.com/i/plus.gif border=0 onclick="modpr(' + i + ',1)" style="cursor: hand"></TR>';
}
}
s += "</TABLE>";
s += "<small>(осталось: <span id='prfree'>0</span>, распределений: <span id='prmoves'>0</span>)<BR>";
document.write(s);
</SCRIPT>
<input type=button onclick="movedone();" id='movedonebutton' value="Применить" disabled>
</TD>
<TD width=270 valign=top>
<BR><BR><BR>
<small>
<center>У вас нет пристрастий</center>
</small>
</TD>
<TD valign=top><BR>
Навыки владения оружием и магией<BR>
<form method=post><input type=hidden value='<?= $u->info['id']; ?>' name='dropmastery'><INPUT type=submit value='Сбросить <? echo $c['znahar'] == 1 ? "бесплатно" : "(32кр.)" ?>'
onclick="return confirm('Вы действительно хотите сбросить умения?')">
<HR color=black>
</form>
Особенности персонажа<BR>
<form method=post><input type=hidden value='<?= $u->info['id']; ?>' name='dropperks'> <INPUT type=submit value='Сбросить <? echo $c['znahar'] == 1 ? "бесплатно" : "(300кр.)" ?>'
onclick="return confirm('Вы действительно хотите сбросить особенности?')">
<HR color=black>
</form>
Характеристики<BR>
<form method=post><input type=hidden value='<?= $u->info['id']; ?>' name='dropstats'><INPUT type=submit value='Сбросить <? echo $c['znahar'] == 1 ? "бесплатно" : "(500кр.)" ?>'
onclick="return confirm('Вы действительно хотите сбросить все характеристики до минимального уровня?')">
</form>
</TABLE>
<small>Каждые 7 дней после последнего использования комнаты знахаря вы получаете 1 бесплатное перераспределение, но не более 15<BR>
Исцеление пристрастия, cброс умений или особенностей стоят 5 перераспределений<BR>
Изменение Характеристик досрочно завершает некоторые эффекты, например эффект свитка <B>Жажда Жизни</B>
</small>
<BR>
</TABLE>
<div>
<? //рейтинг
?>
</div>
</BODY>
</HTML>
<? } ?>