From ab5d0459d901bc277d8d7b29600fe86383d13ed6 Mon Sep 17 00:00:00 2001 From: "Igor Barkov (iwork)" Date: Mon, 20 Jul 2020 16:27:32 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6?= =?UTF-8?q?=D0=B0=D0=B5=D0=BC=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D1=80=D1=8B=20=D0=BF=D0=B5=D1=80=D1=81=D0=BE=D0=BD=D0=B0=D0=B6?= =?UTF-8?q?=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/DressedItems.php | 21 +-- classes/User.php | 3 + main.php | 314 +++------------------------------------ 3 files changed, 34 insertions(+), 304 deletions(-) diff --git a/classes/DressedItems.php b/classes/DressedItems.php index b4dd240..15d4350 100644 --- a/classes/DressedItems.php +++ b/classes/DressedItems.php @@ -11,18 +11,11 @@ class DressedItems protected $DBSUM; protected $USERID; private $dressedItem; - public $sumStrength = 0; - public $sumDexterity = 0; - public $sumIntuition = 0; - public $sumEndurance = 0; - public $sumIntelligence = 0; - public $sumWisdom = 0; - public $sumAccuracy = 0; - public $sumDodge = 0; - public $sumCriticals = 0; /** * DressedItems constructor. + * + * @param $user_id - ID игрока. */ public function __construct($user_id) { @@ -49,8 +42,10 @@ SELECT SUM(add_strength) as sum_strength, SUM(add_intelligence) as sum_intelligence, SUM(add_wisdom) as sum_wisdom, SUM(add_accuracy) as sum_accuracy, - SUM(add_dodge) as sum_dodge, - SUM(add_criticals) as sum_criticals + SUM(add_evasion) as sum_evasion, + SUM(add_criticals) as sum_criticals, + SUM(min_physical_damage) as sum_min_phys_damage, + SUM(max_physical_damage) as sum_max_phys_damage FROM inventory WHERE owner_id = ?i AND dressed_slot > 0' SQL; $this->DBSUM = db::c()->query($query, $this->USERID)->fetch_assoc(); @@ -106,9 +101,9 @@ SQL; { return $this->getBonuses()['sum_accuracy']; } - public function getDodgeBonus() + public function getEvasionBonus() { - return $this->getBonuses()['sum_dodge']; + return $this->getBonuses()['sum_evasion']; } public function getCriticalsBonus() { diff --git a/classes/User.php b/classes/User.php index 788b081..22745ca 100644 --- a/classes/User.php +++ b/classes/User.php @@ -25,6 +25,9 @@ class User public $room; public $block; public $shadow; + // Удар кулаком всегда 1-2. + public $minDamage = 1; + public $maxDamage = 2; public const STAT_MAXIMUM_AMOUNT = 40; // Пока несуществующие, для совместимости. diff --git a/main.php b/main.php index 4de7b09..8e58fa1 100644 --- a/main.php +++ b/main.php @@ -220,42 +220,12 @@ function sum_dmg($u) } } -function sum_bron($u) -{ - try { - $sum = db::c()->query('SELECT SUM(`add_proc_bron`) AS `mf` FROM `inventory` WHERE `dressed` = 1 AND `add_proc_bron` > 0 AND `owner` = ?i', $u); - if ($sum->fetch_assoc() > 0) { - return $sum; - } else { - return 0; - } - } catch (\Krugozor\Database\Mysql\Exception $e) { - echo "
Ошибка: " . $e->getMessage() . "
В файле: " . $e->getFile() . " (" . $e->getLine() . ")
"; - } -} - function bron_ads($a1, $a2, $a3, $a4, $col) { return ['a1' => round(($a1 / 100) * $col), 'a2' => round(($a2 / 100) * $col), 'a3' => round(($a3 / 100) * $col), 'a4' => round(($a4 / 100) * $col)]; } -function max_mf() -{ - $r = ''; - $mfs = countmf(); - if (($mfs['fkrit'] > $mfs['fakrit']) && ($mfs['fkrit'] > $mfs['fuvorot']) && ($mfs['fkrit'] > $mfs['fauvorot'])) { - $r = 'fkrit'; - } elseif (($mfs['fakrit'] > $mfs['fkrit']) && ($mfs['fakrit'] > $mfs['fuvorot']) && ($mfs['fakrit'] > $mfs['fauvorot'])) { - $r = 'fakrit'; - } elseif (($mfs['fuvorot'] > $mfs['fkrit']) && ($mfs['fuvorot'] > $mfs['fakrit']) && ($mfs['fuvorot'] > $mfs['fauvorot'])) { - $r = 'fuvorot'; - } elseif (($mfs['fauvorot'] > $mfs['fkrit']) && ($mfs['fauvorot'] > $mfs['fakrit']) && ($mfs['fauvorot'] > $mfs['fuvorot'])) { - $r = 'fauvorot'; - } - return $r; -} - function stack($it_id) { global $user; @@ -320,95 +290,6 @@ function del_efs($uid, $id, $type) } } -function countmf() -{ //TODO пересчитать модификаторы - //global $user; - - // Защита от урона и сокрушение? - $zo = db::c()->query('SELECT 1 FROM `users_effects` WHERE `type` = 201 AND `owner_id` = ?i', $_SESSION['uid'])->getNumRows(); - $sokr = db::c()->query('SELECT 1 FROM `users_effects` WHERE `type` = 202 AND `owner_id` = ?i', $_SESSION['uid'])->getNumRows(); - - $user = new User($_SESSION['uid']); - $userDressedItemsBonuses = new DressedItems($_SESSION['uid']); - - - function GetWeaponType($idwep) - { - if ($idwep == 0 || $idwep == null || $idwep == '') { - $type = "kulak"; - } - $wep = db::c()->query('SELECT `otdel`, `minu` FROM `inventory` WHERE `id` = ?i', $idwep)->fetch_row(); - if ($wep[0] == '1') { - $type = "noj"; - } elseif ($wep[0] == '12') { - $type = "dubina"; - } elseif ($wep[0] == '11') { - $type = "topor"; - } elseif ($wep[0] == '13') { - $type = "mech"; - } elseif ($wep[1] > 0) { - $type = "buket"; - } else { - $type = "kulak"; - } - return $type; - } - - - $bmfud = $bmfbron = 0; - - if (!empty($sokr)) { - $bmfud += 5; - } - if (!empty($zo)) { - $bmfbron += 25; - } - - $mf = []; - - //$user_dress = db::c()->query('SELECT SUM(`minu`), SUM(`maxu`), SUM(`mfkrit`), SUM(`mfakrit`), SUM(`mfuvorot`), SUM(`mfauvorot`), SUM(`bron1`), SUM(`bron2`), SUM(`bron3`), SUM(`bron4`) FROM `inventory` WHERE `dressed` = 1 AND `owner` = ?i', $user['id'])->fetch_row(); - //FIXME Брони стало 3, а не 4. - $user_dress[6] = $bmfbron + $user->headArmor; - $user_dress[7] = $bmfbron + $user->chestArmor; - $user_dress[8] = $bmfbron + $user->legArmor; - $user_dress[9] = $bmfbron + $user->legArmor; - - $mykrit = $userDressedItemsBonuses->sumIntuition * 2.95; /* + SUM(mfkrit) */ - $myakrit = $userDressedItemsBonuses->sumIntuition * 2.75; /* + SUM(mfakrit) */ - $myuvorot = $userDressedItemsBonuses->sumDexterity * 5; /* + SUM(mfuvorot) */ - $myauvorot = $userDressedItemsBonuses->sumDexterity * 5; /* + SUM(mfauvorot) */ - - - $mf['me'] = ['udar' => (floor($user['sila'] / 3) + 1 + $user_dress[0]), 'maxudar' => (floor($user['sila'] / 3) + 4 + $user_dress[1])]; - - if ($mf['me']['udar'] < 0) { - $mf['me']['udar'] = 0; - } - - $weap_b = 0; - switch (GetWeaponType($user['weap'])) { - case "noj": - $weap_b += $user['noj']; - break; - case "dubina": - $weap_b += $user['dubina']; - break; - case "topor": - $weap_b += $user['topor']; - break; - case "mech": - $weap_b += $user['mec']; - break; - default: - $weap_b = 0; - break; - } - - $minu = $mf['me']['udar'] + $bmfud + $weap_b; - $maxu = $mf['me']['maxudar'] + $bmfud + $weap_b; - - return ['minu' => $minu, 'maxu' => $maxu, 'fkrit' => round($mykrit, 0), 'fakrit' => round($myakrit, 0), 'fuvorot' => round($myuvorot, 0), 'fauvorot' => round($myauvorot, 0), 'bron1' => $user_dress[6], 'bron2' => $user_dress[7], 'bron3' => $user_dress[8], 'bron4' => $user_dress[9]]; -} // одеть предмет function dressitem($id) @@ -985,181 +866,32 @@ if (input::get('edit')) {
- Сила: getStrength(1) ?> +sumStrength ?>
- Ловкость: getDexterity(1) ?> +sumDexterity ?>
- Интуиция: getIntuition(1) ?> +sumIntuition ?>
- Выносливость: getEndurance(1) ?> +sumEndurance ?>
- Интеллект: getIntelligence(1) ?> +sumIntelligence ?>
- Мудрость: getWisdom(1) ?> +sumWisdom ?>
- Возможных увеличений: stat_points ?> -

- Здоровье: getHealth() ?>
- Уворот: ?? + sumDodge ?>
- Точность: ?? + sumAccuracy ?>
- Шанс крита: ?? + sumCriticals ?>
-
- query('SELECT `id` FROM `inventory` WHERE `owner` = ?i AND `dressed` > 0 AND `add_proc_mf` > 0', $_SESSION['uid'])->fetch_assoc(); - $item_damage = db::c()->query('SELECT `id` FROM `inventory` WHERE `owner` = ?i AND `dressed` > 0 AND `add_proc_uron` > 0', $_SESSION['uid'])->fetch_assoc(); - $item_bron = db::c()->query('SELECT `id` FROM `inventory` WHERE `owner` = ?i AND `dressed` > 0 AND `add_proc_bron` > 0', $_SESSION['uid'])->fetch_assoc(); - - if (isset($item_mf['id'])) { - $max_mf = max_mf(); - $add_mf = sum_mf($user['id']); - if ($max_mf == 'fkrit') { - $var_mf = round(($mf['fkrit'] / 100) * $add_mf); - $mf['fkrit'] += $var_mf; - } elseif ($max_mf == 'fakrit') { - $var_mf = round(($mf['fakrit'] / 100) * $add_mf); - $mf['fakrit'] += $var_mf; - } elseif ($max_mf == 'fuvorot') { - $var_mf = round(($mf['fuvorot'] / 100) * $add_mf); - $mf['fuvorot'] += $var_mf; - } elseif ($max_mf == 'fauvorot') { - $var_mf = round(($mf['fauvorot'] / 100) * $add_mf); - $mf['fauvorot'] += $var_mf; - } - } - if (isset($item_damage['id'])) { - $add_dmg = sum_dmg($user['id']); - $min_dmg = round(($mf['minu'] / 100) * $add_dmg); - $max_dmg = round(($mf['maxu'] / 100) * $add_dmg); - } - - if (isset($item_bron['id'])) { - $add_bron = sum_bron($user['id']); - $var_brons = bron_ads($mf['bron1'], $mf['bron2'], $mf['bron3'], $mf['bron4'], $add_bron); - } else { - $var_brons = ['a1' => 0, 'a2' => 0, 'a3' => 0, 'a4' => 0]; - } - ?> - - Урон: - - (' . $add_dmg . '%)'; - } ?>
- Шанс крита: (' . $add_mf . '%)'; - } ?>
- Шанс антикрита: (' . $add_mf . '%)'; - } ?>
- Шанс уворота: (' . $add_mf . '%)'; - } ?>
- Шанс антиуворота: (' . $add_mf . '%)'; - } ?>
- -
- Владение оружием: -
Кинжалами: - - - -
Мечами: - - - -
Дубинами: - - - -
Топорами: - - - -

- Владение магией: -
Магия огня: - - - -
Магия воды: - - - -
Магия воздуха: - - - -
Магия земли: - - - -
Магия света: - - - -
Магия серости: - - - -
Магия тьмы: - - - + Сила: getStrength(1) ?> +getStrengthBonus() ?>
+ Ловкость: getDexterity(1) ?> +getDexterityBonus() ?>
+ Интуиция: getIntuition(1) ?> +getIntuitionBonus() ?>
+ Выносливость: getEndurance(1) ?> +getEnduranceBonus() ?>
+ Интеллект: getIntelligence(1) ?> +getIntelliganceBonus() ?>
+ Мудрость: getWisdom(1) ?> +getWisdomBonus() ?>
+ Возможных увеличений: stat_points ?>

- Возможных увеличений: -

-
-
- Броня головы: (' . $add_bron . '%)'; - } ?>
- Броня корпуса: (' . $add_bron . '%)'; - } ?>
- Броня пояса: (' . $add_bron . '%)'; - } ?>
- Броня ног: (' . $add_bron . '%)'; - } ?>
+ Здоровье: getHealth() ?>
+ Уворот: ?? + getEvasionBonus() ?>
+ Точность: ?? + getAccuracyBonus() ?>
+ Шанс крита: ?? + getCriticalsBonus() ?>
+ Урон: minDamage ?> - maxDamage ?>
+
+
+ Защита от огня: ??
+ Защита от воды: ??
+ Защита от вохдуха: ??
+ Защита от земли: ??
+ Защита от яда: ??
+
+ Броня головы: headArmor ?>
+ Броня корпуса: chestArmor ?>
+ Броня ног: legArmor ?>
- = 25) { - $bonus['fauvorot'] += round($user['sila'] / 3); - $bonus['fakrit'] += round($user['sila'] / 3); - } - // if (($user['sila']) >=100) { - // $bonus['uminu'] += round($user['sila'] / 25); - // $bonus['umaxu'] += round($bonus['uminu'] + $user['sila'] / 100); - // } - if (($user['lovk']) >= 25) { - $bonus['fuvorot'] += round($user['lovk'] / 2); - $bonus['fauvorot'] += round($user['lovk'] / 3); - } - if (($user['inta']) >= 25) { - $bonus['fkrit'] += round($user['inta'] / 2); - $bonus['fakrit'] += round($user['inta'] / 3); - } - - if ($user['sila'] >= 25 || $user['lovk'] >= 25 || $user['inta'] >= 25 || $user['vinos'] >= 25) { - echo 'Бонусы за статы:
'; - if (!empty($bonus['fkrit'])) { - echo "Шанс крита: +" . $bonus['fkrit'] . "
"; - } - if (!empty($bonus['fakrit'])) { - echo "Шанс антикрита: +" . $bonus['fakrit'] . "
"; - } - if (!empty($bonus['fuvorot'])) { - echo "Шанс уворота: +" . $bonus['fuvorot'] . "
"; - } - if (!empty($bonus['fauvorot'])) { - echo "Шанс антиуворота: +" . $bonus['fauvorot'] . "
"; - } - // if (!empty($bonus['uminu'])) echo "Бонус урона: +" . $bonus['uminu'] . "-" . $bonus['umaxu']; - } - ?>