#4 и проверки.

This commit is contained in:
Ivor Barhansky 2022-06-09 19:19:30 +03:00
parent 7110ee706a
commit 4301cb59b6
2 changed files with 73 additions and 43 deletions

View File

@ -5,6 +5,7 @@ namespace Insallah;
class Runes
{
/** Создаём руну в зависимости от уровня.
*
* @param $level
*
* @return array
@ -63,7 +64,7 @@ class Runes
$returnData = '|' . http_build_query($resultRune, '', '|');
$returnData = str_replace('|', '|add_', $returnData);
//Строчка человекопонятных параметров в статус.
$returnText = urldecode(http_build_query($resultText, '', ', '));
$returnText = urldecode(http_build_query($resultText, '', ', '));
$returnText = 'Характеристики Руны: ' . str_replace('=', ': +', $returnText) . '.';
return [$returnData, $returnText];
}
@ -117,4 +118,46 @@ class Runes
'rune_id' => (int)$runeid
];
}
public static function checkParts($part1, $part2, $part3, $reputation)
{
$level8 = [10038, 6001];
$level9 = [10039, 6002];
$level10 = [10040, 6003];
if (
in_array($part1, $level8) &&
in_array($part2, $level8) &&
in_array($part3, $level8) &&
$reputation >= 100
) {
$itm = 6001;
$runelevel = 8;
$query = 'update users_achiv set rp = rp + 1 where id = %d';
} elseif (
in_array($part1, $level9) &&
in_array($part2, $level9) &&
in_array($part3, $level9) &&
$reputation >= 1000
) {
$itm = 6002;
$runelevel = 9;
$query = 'update users_achiv set rn = rn + 1 where id = %d';
} elseif (
in_array($part1, $level10) &&
in_array($part2, $level10) &&
in_array($part3, $level10) &&
$reputation >= 1000
) {
$itm = 6003;
$runelevel = 10;
$query = 'update users_achiv set rb = rb + 1 where id = %d';
}
return empty($itm) || empty($runelevel) || empty($query) ? [] : [
'rune_id' => $itm,
'rune_level' => $runelevel,
'query' => $query
];
}
}

View File

@ -17,17 +17,16 @@ if (isset($_GET['itm']) && $qst_hram && $_GET['itm'] > 0) {
} elseif ($_GET['r'] == 2) {
//Переплавка рун
$resz = '';
$itm123 = explode('x', $_GET['itm']);
$itm1 = round((int)$itm123[0]);
$itm2 = round((int)$itm123[1]);
$itm3 = round((int)$itm123[2]);
$itm1 = (int)$itm123[0];
$itm2 = (int)$itm123[1];
$itm3 = (int)$itm123[2];
$itm1 = mysql_fetch_array(mysql_query('SELECT `a`.`id` AS `iid`,`a`.*,`b`.* FROM `items_users` AS `a` LEFT JOIN `items_main` AS `b` ON (`b`.`id` = `a`.`item_id` AND `b`.`type` = 31) WHERE `a`.`id` = "' . mysql_real_escape_string($itm1) . '" AND `a`.`uid` = "' . $u->info['id'] . '" AND `a`.`delete` = 0 AND `a`.`inShop` = 0 AND `a`.`inTransfer` = 0 LIMIT 1'));
$itm2 = mysql_fetch_array(mysql_query('SELECT `a`.`id` AS `iid`,`a`.*,`b`.* FROM `items_users` AS `a` LEFT JOIN `items_main` AS `b` ON (`b`.`id` = `a`.`item_id` AND `b`.`type` = 31) WHERE `a`.`id` = "' . mysql_real_escape_string($itm2) . '" AND `a`.`uid` = "' . $u->info['id'] . '" AND `a`.`delete` = 0 AND `a`.`inShop` = 0 AND `a`.`inTransfer` = 0 LIMIT 1'));
$itm3 = mysql_fetch_array(mysql_query('SELECT `a`.`id` AS `iid`,`a`.*,`b`.* FROM `items_users` AS `a` LEFT JOIN `items_main` AS `b` ON (`b`.`id` = `a`.`item_id` AND `b`.`type` = 31) WHERE `a`.`id` = "' . mysql_real_escape_string($itm3) . '" AND `a`.`uid` = "' . $u->info['id'] . '" AND `a`.`delete` = 0 AND `a`.`inShop` = 0 AND `a`.`inTransfer` = 0 LIMIT 1'));
$q = 'SELECT `a`.`id` AS `iid`,`a`.*,`b`.* FROM `items_users` AS `a` LEFT JOIN `items_main` AS `b` ON (`b`.`id` = `a`.`item_id` AND `b`.`type` = 31) WHERE `a`.`id` = %d AND `a`.`uid` = %d AND `a`.`delete` = 0 AND `a`.`inShop` = 0 AND `a`.`inTransfer` = 0';
$itm1 = mysql_fetch_array(mysql_query(sprintf($q, $itm1, $u->info['id'])));
$itm2 = mysql_fetch_array(mysql_query(sprintf($q, $itm2, $u->info['id'])));
$itm3 = mysql_fetch_array(mysql_query(sprintf($q, $itm3, $u->info['id'])));
if ($itm1['iid'] == $itm2['iid'] || $itm2['iid'] == $itm3['iid'] || $itm1['iid'] == $itm3['iid']) {
$resz = 'Не удалось расплавить одну руну, она не сгорела.';
@ -35,40 +34,25 @@ if (isset($_GET['itm']) && $qst_hram && $_GET['itm'] > 0) {
$resz = 'Недостаточно компонентов для преобразования.';
} elseif ($itm1['level'] != $itm2['level'] || $itm1['level'] != $itm3['level']) {
$resz = 'Руны должны быть одного уровня.';
} elseif ($itm1['item_id'] == 10038 || $itm1['item_id'] == 10039 || $itm1['item_id'] == 10040 || $itm2['item_id'] == 10038 || $itm2['item_id'] == 10039 || $itm2['item_id'] == 10040 || $itm3['item_id'] == 10038 || $itm3['item_id'] == 10039 || $itm3['item_id'] == 10040) {
$newRuneLevel = 0;
$newitm = 0;
if ($itm1['item_id'] == 10038 && $itm2['item_id'] == 10038 && $itm3['item_id'] == 10038 && $u->rep['rep1'] > 100) {
$newitm = 6001;
$newRuneLevel = 8;
mysql_query('UPDATE `users_achiv` SET `rp`= `rp`+1 WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
} elseif ($itm1['item_id'] == 10039 && $itm2['item_id'] == 10039 && $itm3['item_id'] == 10039 && $u->rep['rep1'] > 1000) {
$newitm = 6002;
$newRuneLevel = 9;
mysql_query('UPDATE `users_achiv` SET `rn`= `rn`+1 WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
} elseif ($itm1['item_id'] == 10040 && $itm2['item_id'] == 10040 && $itm3['item_id'] == 10040 && $u->rep['rep1'] > 10000) {
$newitm = 6003;
$newRuneLevel = 10;
mysql_query('UPDATE `users_achiv` SET `rb`= `rb`+1 WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
}
$newRune = \Insallah\Runes::get($newRuneLevel);
if (!empty($newRune)) {
$u->addItem($newitm, $u->info['id'], $newRune[0]);
$resz = $newRune[1];
mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $itm3['iid'] . '" OR `id` = "' . $itm2['iid'] . '" OR `id` = "' . $itm1['iid'] . '"');
if (date('w') == 0 || date('w') == 6 || date('w') == 2) {
$u->repexp_add($u->info['id'], 10); //Репутация плавка рун +10
}
if (empty($resz)) {
$check = \Insallah\Runes::checkParts($itm1['item_id'], $itm2['item_id'], $itm3['item_id'], $u->rep['rep1']);
if (empty($check)) {
$resz = 'Заготовки должны быть одного уровня или у вас недостаточен уровень прокачки храма знаний!';
} else {
mysql_query(sprintf($check['query'], $u->info['id']));
$newRune = \Insallah\Runes::get($check['rune_level']);
if (!empty($newRune)) {
$u->addItem($check['rune_id'], $u->info['id'], $newRune[0]);
$resz = $newRune[1];
mysql_query(sprintf('update items_users set `delete` = unix_timestamp() where id in (%d, %d, %d)',
$itm1['iid'], $itm2['iid'], $itm3['iid']));
if (date('w') == 0 || date('w') == 6 || date('w') == 2) {
$u->repexp_add($u->info['id'], 10); //Репутация плавка рун +10
}
}
}
} else {
$resz = 'Заготовки должны быть одного уровня или у вас недостаточен уровень прокачки храма знаний!';
}
} elseif ($itm1['level'] == 1) {
//$resz = 'Унируны нельзя преобразовывать';
$itm4 = [];
@ -297,8 +281,10 @@ if (!isset($_GET['r'])) {
<hr>
<small>
<br/>
<strong>Внимание!</strong> Никогда и никому не говорите пароль от своего персонажа. Не вводите пароль на других
сайтах, типа &quot;новый город&quot;, &quot;лотерея&quot;, &quot;там, где все дают на халяву&quot;. Пароль не
<strong>Внимание!</strong> Никогда и никому не говорите пароль от своего персонажа. Не вводите пароль на
других
сайтах, типа &quot;новый город&quot;, &quot;лотерея&quot;, &quot;там, где все дают на халяву&quot;. Пароль
не
нужен ни паладинам, ни кланам, ни администрации, <U>только взломщикам</U> для кражи вашего героя.<br/>
<em>Администрация.</em></small> <br/>
<?= $rowonmax ?>
@ -349,7 +335,8 @@ if (!isset($_GET['r'])) {
<br/><br/>
<center><span id="use_item">Предмет не выбран</span><br/><br/>
<input class="btn" type="button" value="Растворить"
onclick="location = '?r=<?= $_GET['r'] . '&rnd=' . $code . '&itm='; ?>'+urlras;"/></center>
onclick="location = '?r=<?= $_GET['r'] . '&rnd=' . $code . '&itm='; ?>'+urlras;"/>
</center>
<br/>
<br/><small>
<font color="red">Внимание!</font><br/>