From adc0e16064acde30bdbf75eff7c30172398ff862 Mon Sep 17 00:00:00 2001 From: Sarjuuk Date: Sun, 23 Nov 2025 00:32:43 +0100 Subject: [PATCH] Itemsets/Boni * maybe fix unreproducable error where itemset bonus description was null * also slight cleanup in itemset bonus code --- includes/dbtypes/itemset.class.php | 23 ++++++++++------------- localization/locale_dede.php | 2 +- localization/locale_enus.php | 2 +- localization/locale_eses.php | 2 +- localization/locale_frfr.php | 2 +- localization/locale_ruru.php | 2 +- localization/locale_zhcn.php | 2 +- template/pages/itemset.tpl.php | 4 ++-- 8 files changed, 18 insertions(+), 21 deletions(-) diff --git a/includes/dbtypes/itemset.class.php b/includes/dbtypes/itemset.class.php index 0dfcb07c..3ddb1a63 100644 --- a/includes/dbtypes/itemset.class.php +++ b/includes/dbtypes/itemset.class.php @@ -115,8 +115,8 @@ class ItemsetList extends DBTypeList { $x .= ''; - foreach ($bonuses as $b) - $x .= '
'.$b['bonus'].' '.Lang::itemset('_pieces').Lang::main('colon').''.$b['desc']; + foreach ($bonuses as [$nItems, , $text]) + $x .= '
'.Lang::itemset('_pieces', [$nItems]).''.$text; $x .= '
'; } @@ -136,22 +136,19 @@ class ItemsetList extends DBTypeList // cant use spell as index, would change order if ($spl && $qty) - $spells[] = ['id' => $spl, 'bonus' => $qty]; + $spells[] = [$qty, $spl]; } // sort by required pieces ASC - usort($spells, fn(array $a, array $b) => $a['bonus'] <=> $b['bonus']); + usort($spells, fn(array $a, array $b) => $a[0] <=> $b[0]); - $setSpells = new SpellList(array(['s.id', array_column($spells, 'id')])); - foreach ($setSpells->iterate() as $spellId => $__) + $setSpells = new SpellList(array(['s.id', array_column($spells, 1)])); + foreach ($spells as &$s) { - foreach ($spells as &$s) - { - if ($spellId != $s['id']) - continue; - - $s['desc'] = $setSpells->parseText('description', $this->getField('reqLevel') ?: MAX_LEVEL)[0]; - } + if ($setSpells->getEntry($s[1])) + $s[2] = $setSpells->parseText('description', $this->getField('reqLevel') ?: MAX_LEVEL)[0]; + else + $s[2] = Lang::spell('unkAura', [$s[1]]); } return $spells; diff --git a/localization/locale_dede.php b/localization/locale_dede.php index 94cec81b..4e51c16a 100644 --- a/localization/locale_dede.php +++ b/localization/locale_dede.php @@ -1626,7 +1626,7 @@ $lang = array( '_descTagless' => "%s ist ein Ausrüstungsset, das %s Teile enthält.", '_setBonuses' => "Setboni", '_conveyBonus' => "Das Tragen mehrerer Gegenstände aus diesem Set gewährt Eurem Charakter Boni.", - '_pieces' => "Teile", + '_pieces' => "%d Teile: ", '_unavailable' => "Dieses Ausrüstungsset ist nicht für Spieler verfügbar.", '_tag' => "Tag: ", 'summary' => "Zusammenfassung", diff --git a/localization/locale_enus.php b/localization/locale_enus.php index 9a7a1310..184eacb1 100644 --- a/localization/locale_enus.php +++ b/localization/locale_enus.php @@ -1626,7 +1626,7 @@ $lang = array( '_descTagless' => "%s is an item set that contains %s pieces.", '_setBonuses' => "Set Bonuses", '_conveyBonus' => "Wearing more pieces of this set will convey bonuses to your character.", - '_pieces' => "pieces", + '_pieces' => "%d pieces: ", '_unavailable' => "This item set is not available to players.", '_tag' => "Tag: ", 'summary' => "Summary", diff --git a/localization/locale_eses.php b/localization/locale_eses.php index 8283d504..45db09e7 100644 --- a/localization/locale_eses.php +++ b/localization/locale_eses.php @@ -1626,7 +1626,7 @@ $lang = array( '_descTagless' => "%s es un conjunto de objetos que tiene %s piezas.", '_setBonuses' => "Bonificación de conjunto", '_conveyBonus' => "Tener puestos mas objetos de este conjunto le aplicará una bonificación a tu personaje.", - '_pieces' => "piezas", + '_pieces' => "%d piezas: ", '_unavailable' => "Este conjunto de objetos no está disponible para jugadores.", '_tag' => "Etiqueta: ", 'summary' => "Resúmen", diff --git a/localization/locale_frfr.php b/localization/locale_frfr.php index 4a82da8c..088f000d 100644 --- a/localization/locale_frfr.php +++ b/localization/locale_frfr.php @@ -1626,7 +1626,7 @@ $lang = array( '_descTagless' => "%s est un ensemble d'objet qui contient %s pièces.", '_setBonuses' => "Bonus de l'ensemble", '_conveyBonus' => "Plus d'objets de cet ensemble sont équipés, plus votre personnage aura des bonus de caractéristiques.", - '_pieces' => "pièces", + '_pieces' => "%d pièces : ", '_unavailable' => "Cet objet n'est plus disponible aux joueurs.", '_tag' => "Étiquette : ", 'summary' => "Résumé", diff --git a/localization/locale_ruru.php b/localization/locale_ruru.php index b5fddb19..640f0936 100644 --- a/localization/locale_ruru.php +++ b/localization/locale_ruru.php @@ -1626,7 +1626,7 @@ $lang = array( '_descTagless' => "%s — набор из %s предметов.", '_setBonuses' => "Бонус за комплект", '_conveyBonus' => "Ношение большего числа предметов из этого комплекта предоставит бонусы для вашего персонажа.", - '_pieces' => "частей", + '_pieces' => "%d частей: ", '_unavailable' => "Этот набор предметов не доступен игрокам.", '_tag' => "Тэг: ", 'summary' => "Сводка", diff --git a/localization/locale_zhcn.php b/localization/locale_zhcn.php index 328f65f5..0f659a22 100644 --- a/localization/locale_zhcn.php +++ b/localization/locale_zhcn.php @@ -1626,7 +1626,7 @@ $lang = array( '_descTagless' => "%s是物品套装包含%s件。", '_setBonuses' => "套装奖励", '_conveyBonus' => "穿更多这个套装的部分将会提供给你角色奖励。", - '_pieces' => "件", + '_pieces' => "%d件:", '_unavailable' => "这个物品套装对玩家不可用。", '_tag' => "标签:", 'summary' => "摘要", diff --git a/template/pages/itemset.tpl.php b/template/pages/itemset.tpl.php index dff1c5db..5bc4b51c 100644 --- a/template/pages/itemset.tpl.php +++ b/template/pages/itemset.tpl.php @@ -67,8 +67,8 @@ endforeach;