From dcc6f0ade4c3a3edb0eff9ef09505db7b0684b28 Mon Sep 17 00:00:00 2001 From: Ivor Barhansky Date: Tue, 7 Jun 2022 23:47:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D1=82=D1=8C=20?= =?UTF-8?q?=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C=20=D0=B2=D1=8B=D0=BD=D0=B8=D0=BC=D0=B0=D1=82=D1=8C=20?= =?UTF-8?q?=D1=80=D1=83=D0=BD=D1=8B=20=D0=B8=D0=B7=20=D0=BF=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=BC=D0=B5=D1=82=D0=BE=D0=B2=20#2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _incl_data/class/Insallah/Runes/Runes.php | 85 ++- modules_data/location/ab/hram.php | 124 ++-- modules_data/location/remont.php | 811 ++++++++-------------- 3 files changed, 405 insertions(+), 615 deletions(-) diff --git a/_incl_data/class/Insallah/Runes/Runes.php b/_incl_data/class/Insallah/Runes/Runes.php index d459550f..1f1a6407 100644 --- a/_incl_data/class/Insallah/Runes/Runes.php +++ b/_incl_data/class/Insallah/Runes/Runes.php @@ -4,6 +4,11 @@ namespace Insallah; class Runes { + /** Создаём руну в зависимости от уровня. + * @param $level + * + * @return array + */ public static function get($level) { if (!in_array($level, [8, 9, 10])) { @@ -20,22 +25,22 @@ class Runes ['s5', 'm11', 'mpAll', 'pzm'] ]; $vars = [ - 's1' => ['', mt_rand(1, 3)], - 's2' => ['', mt_rand(1, 3)], - 's3' => ['', mt_rand(1, 3)], - 's5' => ['', mt_rand(1, 3)], - 'pa1' => [' ', mt_rand(1, $power[$level])], - 'pa2' => [' ', mt_rand(1, $power[$level])], - 'pa3' => [' ', mt_rand(1, $power[$level])], - 'pa4' => [' ', mt_rand(1, $power[$level])], + 's1' => ['Сила', mt_rand(1, 3)], + 's2' => ['Ловкость', mt_rand(1, 3)], + 's3' => ['Интуиция', mt_rand(1, 3)], + 's5' => ['Интеллект', mt_rand(1, 3)], + 'pa1' => ['Мощности Колющего урона', mt_rand(1, $power[$level])], + 'pa2' => ['Мощности Рубящего урона', mt_rand(1, $power[$level])], + 'pa3' => ['Мощности Дробящего урона', mt_rand(1, $power[$level])], + 'pa4' => ['Мощности Режущего урона', mt_rand(1, $power[$level])], 'm2' => ['???', mt_rand(5, 15)], - 'm3' => ['', mt_rand(1, 3)], - 'antm3' => ['', mt_rand(1, 3)], + 'm3' => ['МК', mt_rand(1, 3)], + 'antm3' => ['ПМК', mt_rand(1, 3)], 'm5' => ['???', mt_rand(5, 10)], - 'm11' => [' ', mt_rand(1, $power[$level])], + 'm11' => ['Мощности Магии стихии', mt_rand(1, $power[$level])], 'hpAll' => ['HP', mt_rand(5, 15)], 'mpAll' => ['MP', mt_rand(10, 20)], - 'pzm' => [' ', 1] + 'pzm' => ['Подавление защиты от магии', 1] ]; $rune = $runes[array_rand($runes)]; // arr (s, pa\m, rand9\mpAll, other) @@ -43,23 +48,69 @@ class Runes $runeVals = [$vars[$rune[0][1]], $vars[$rune[1][1]], $vars[$rune[2][1]], $vars[$rune[3][1]]]; $resultRune = array_combine($rune, $runeVals); $resultText = array_combine($runeTxt, array_map('self::addPlus', $runeVals)); - if ($level < 10) { // 4. + if ($level < 10) { // Отрезаем параметр 4. array_pop($resultRune); array_pop($resultText); } - if ($level < 9) { // 3. + if ($level < 9) { // Отрезаем параметр 3. array_pop($resultRune); array_pop($resultText); } - // data + //Строчка data в базу $returnData = '|' . http_build_query($resultRune, 'add_', '|'); - // . + //Строчка человекопонятных параметров в статус. $returnText = implode(', ', $resultText); return [$returnData, $returnText]; } private static function addPlus($var) { - return '+' . (string)$var; + return '+' . $var; + } + + /** Выкусывает руну из предмета. + * + * @param array $itemData + * data предмета + * + * @return array массив, item - предмет, rune - руна из предмета, rune_id - id руны. + * Оба в подготовленном строчном формате для data + */ + public static function removeRuneData($itemData) + { + # Ищем есть ли в предмете руна определённого типа. + $runeid = array_search('rune_id', array_flip($itemData)); + if (!in_array($runeid, [6001, 6002, 6003])) { + return []; + } + $bonusArgs = 0; + # В зависимости от типа руны считаем количество элементов-бонусов. + if ($runeid === 6001) { + $bonusArgs = 2; + } + if ($runeid === 6002) { + $bonusArgs = 3; + } + if ($runeid === 6003) { + $bonusArgs = 4; + } + $args = 0; //basic rune values - rune, id, name, lvl + $rune = []; + foreach ($itemData as $key => $value) { + if ($key == 'rune') { + $args = 4 + $bonusArgs; + } + if ($args > 0) { + $rune[$key] = $value; + $args--; + } + } + $runeData = urldecode('|' . http_build_query($rune, '', '|')); + $itemWithoutRuneData = str_replace($runeData, '', $itemData); + return [ + 'item' => (string)$itemWithoutRuneData, + 'rune' => $runeData, + 'rune_id' => (int)$runeid + ]; } } \ No newline at end of file diff --git a/modules_data/location/ab/hram.php b/modules_data/location/ab/hram.php index 13ea2d11..a309c400 100644 --- a/modules_data/location/ab/hram.php +++ b/modules_data/location/ab/hram.php @@ -11,12 +11,12 @@ $qst_hram = true; if (isset($_GET['itm']) && $qst_hram && $_GET['itm'] > 0) { if ($_GET['r'] == 1) { $_GET['itm'] = (int)$_GET['itm']; - // + //Переплавка вещей $resz = $u->plavka($_GET['itm'], 1); $re = '' . $resz . ''; unset($resz); } elseif ($_GET['r'] == 2) { - // + //Переплавка рун $resz = ''; $itm123 = explode('x', $_GET['itm']); @@ -31,12 +31,12 @@ if (isset($_GET['itm']) && $qst_hram && $_GET['itm'] > 0) { $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')); if ($itm1['iid'] == $itm2['iid'] || $itm2['iid'] == $itm3['iid'] || $itm1['iid'] == $itm3['iid']) { - $resz = ' , .'; + $resz = 'Не удалось расплавить одну руну, она не сгорела.'; //mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `id` = "'.$itm3['iid'].'" OR `id` = "'.$itm2['iid'].'" OR `id` = "'.$itm1['iid'].'"'); } elseif (!isset($itm1['id']) || !isset($itm2['id']) || !isset($itm3['id'])) { - $resz = ' .'; + $resz = 'Недостаточно компонентов для преобразования.'; } elseif ($itm1['level'] != $itm2['level'] || $itm1['level'] != $itm3['level']) { - $resz = ' .'; + $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; @@ -60,19 +60,19 @@ if (isset($_GET['itm']) && $qst_hram && $_GET['itm'] > 0) { $newRune = \Insallah\Runes::get($newRuneLevel); if (!empty($newRune)) { $u->addItem($newitm, $u->info['id'], $newRune[0] . '|sudba=' . $u->info['login']); - $resz = ' : ' . $newRune[1]; + $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 + $u->repexp_add($u->info['id'], 10); //Репутация плавка рун +10 } } } else { - $resz = ' !'; + $resz = 'Заготовки должны быть одного уровня или у вас недостаточен уровень прокачки храма знаний!'; } } elseif ($itm1['level'] == 1) { - //$resz = ' '; + //$resz = 'Унируны нельзя преобразовывать'; $itm4 = []; $sp = mysql_query('SELECT * FROM `items_main` WHERE `level` = "' . $itm1['level'] . '" AND `type` = 31 AND `id` != "' . $itm1['item_id'] . '" AND `id` != "' . $itm2['item_id'] . '" AND `id` != "' . $itm3['item_id'] . '" AND `id` < 6000'); @@ -84,8 +84,8 @@ if (isset($_GET['itm']) && $qst_hram && $_GET['itm'] > 0) { //$u->rep['rep1'] += 10; //mysql_query('UPDATE `rep` SET `rep1` = "'.$u->rep['rep1'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1'); $u->addItem($itm4['id'], $u->info['id']); - $resz = ' "' . $itm1['name'] . '","' . $itm2['name'] . '" "' . $itm3['name'] . '" "' . $itm4['name'] . '".'; - //$resz .= '
+10'; + $resz = 'Удачно преобразованы руны "' . $itm1['name'] . '","' . $itm2['name'] . '" и "' . $itm3['name'] . '" в "' . $itm4['name'] . '".'; + //$resz .= '
Добавлена репутация Храма Знаний +10'; } else { $itm4 = []; $sp = mysql_query('SELECT * FROM `items_main` WHERE `level` = "' . $itm1['level'] . '" AND `type` = 31 @@ -98,8 +98,8 @@ if (isset($_GET['itm']) && $qst_hram && $_GET['itm'] > 0) { //$u->rep['rep1'] += 1; //mysql_query('UPDATE `rep` SET `rep1` = "'.$u->rep['rep1'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1'); $u->addItem($itm4['id'], $u->info['id']); - $resz = ' "' . $itm1['name'] . '","' . $itm2['name'] . '" "' . $itm3['name'] . '" "' . $itm4['name'] . '".'; - //$resz .= '
+1'; + $resz = 'Удачно преобразованы руны "' . $itm1['name'] . '","' . $itm2['name'] . '" и "' . $itm3['name'] . '" в "' . $itm4['name'] . '".'; + //$resz .= '
Добавлена репутация Храма Знаний +1'; } $re = '' . $resz . ''; @@ -163,10 +163,10 @@ if (isset($_GET['itm']) && $qst_hram && $_GET['itm'] > 0) { + title="">Центральная + площадь
-
Храм Знаний
' . $re . ''; @@ -194,8 +194,8 @@ if (isset($_GET['itm']) && $qst_hram && $_GET['itm'] > 0) { id="greyText" class="menutop" onclick="location='main.php?loc=3.180.0.267&rnd=';" - title=""> -
@@ -211,11 +211,11 @@ if (isset($_GET['itm']) && $qst_hram && $_GET['itm'] > 0) {

-   ';"/>  

@@ -223,7 +223,7 @@ if (isset($_GET['itm']) && $qst_hram && $_GET['itm'] > 0) { @@ -252,7 +252,7 @@ if (!isset($_GET['r'])) { style="cursor:pointer; font-weight:bold; color:#D8D8D8; font-size:10px;">   + onclick="window.open('https://new-combats.com/forum', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')">Форум