diff --git a/includes/ajaxHandler/admin.class.php b/includes/ajaxHandler/admin.class.php
index 3632507e..8d816d3e 100644
--- a/includes/ajaxHandler/admin.class.php
+++ b/includes/ajaxHandler/admin.class.php
@@ -423,8 +423,9 @@ class AjaxAdmin extends AjaxHandler
'areaId' => $point[0]['areaId'],
'floor' => $point[0]['floor']
);
+
+ DB::Aowow()->query('UPDATE ?_creature_waypoints SET ?a WHERE `creatureOrPath` = ?d AND `point` = ?d', $p, $w['entry'], $w['pointId']);
}
- DB::Aowow()->query('UPDATE ?_creature_waypoints SET ?a WHERE `creatureOrPath` = ?d AND `point` = ?d', $p, $w['entry'], $w['pointId']);
}
}
}
diff --git a/includes/conditions.class.php b/includes/conditions.class.php
index cd97abe0..9f3b4c7c 100644
--- a/includes/conditions.class.php
+++ b/includes/conditions.class.php
@@ -344,7 +344,7 @@ class Conditions
$success = false;
foreach ($lvRows as $key => &$row)
{
- $key = $row['id'].':'.$srcEntry; // it's a listview row .. if it doesn't have a numeric id something truely fucked up happened. ... also its past 2a.m.
+ $key = ($row['id'] ?? $key).':'.$srcEntry; // loot rows don't have an 'id' while being generated, but they have a usable $key
while (substr_count($key, ':') < 3) // pad with missing srcEntry, SrcId, cndTarget to group key
$key .= ':0';
diff --git a/includes/profiler.class.php b/includes/profiler.class.php
index ec1163c5..de62298e 100644
--- a/includes/profiler.class.php
+++ b/includes/profiler.class.php
@@ -560,7 +560,7 @@ class Profiler
$petData['entry']
);
- $_ = DB::Aowow()->selectCol('SELECT `spell` AS ARRAY_KEY, MAX(IF(`spell` IN (?a), `rank`, 0)) FROM ?_talents WHERE `class` = 0 AND `petTypeMask` = ?d GROUP BY `id` ORDER BY `row`, `col` ASC', $petSpells ?: [0], 1 << $morePet['type']);
+ $_ = DB::Aowow()->selectCol('SELECT `spell` AS ARRAY_KEY, MAX(IF(`spell` IN (?a), `rank`, 0)) FROM ?_talents WHERE `class` = 0 AND `petTypeMask` = ?d GROUP BY `row`, `col` ORDER BY `row`, `col` ASC', $petSpells ?: [0], 1 << $morePet['type']);
$pet = array(
'id' => $petGuid,
'owner' => $profileId,
diff --git a/includes/types/itemset.class.php b/includes/types/itemset.class.php
index cfd19e48..fb1de42a 100644
--- a/includes/types/itemset.class.php
+++ b/includes/types/itemset.class.php
@@ -113,7 +113,7 @@ class ItemsetList extends BaseType
if ($_ = $this->getField('contentGroup'))
$x .= Lang::itemset('notes', $_).($this->getField('heroic') ? ' ('.Lang::item('heroic').')' : '').'
';
- if (!$nCl || !$this->getField('contentGroup'))
+ if (!$nCl || !$this->getField('type'))
$x.= Lang::itemset('types', $this->getField('type')).'
';
if ($bonuses = $this->getBonuses())
diff --git a/setup/db_structure.sql b/setup/db_structure.sql
index b11bd094..c550b65c 100644
--- a/setup/db_structure.sql
+++ b/setup/db_structure.sql
@@ -556,7 +556,10 @@ CREATE TABLE `aowow_creature` (
KEY `idx_name` (`name_loc0`),
KEY `difficultyEntry1` (`difficultyEntry1`),
KEY `difficultyEntry2` (`difficultyEntry2`),
- KEY `difficultyEntry3` (`difficultyEntry3`)
+ KEY `difficultyEntry3` (`difficultyEntry3`),
+ KEY `idx_loot` (`lootId`),
+ KEY `idx_pickpocketloot` (`pickpocketLootId`),
+ KEY `idx_skinloot` (`skinLootId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -3225,7 +3228,7 @@ UNLOCK TABLES;
LOCK TABLES `aowow_dbversion` WRITE;
/*!40000 ALTER TABLE `aowow_dbversion` DISABLE KEYS */;
-INSERT INTO `aowow_dbversion` VALUES (1717076299,0,NULL,NULL);
+INSERT INTO `aowow_dbversion` VALUES (1717354215,0,NULL,NULL);
/*!40000 ALTER TABLE `aowow_dbversion` ENABLE KEYS */;
UNLOCK TABLES;
diff --git a/setup/updates/1717354214_01.sql b/setup/updates/1717354214_01.sql
new file mode 100644
index 00000000..4d2f93c6
--- /dev/null
+++ b/setup/updates/1717354214_01.sql
@@ -0,0 +1,4 @@
+ALTER TABLE aowow_creature
+ ADD KEY `idx_loot` (`lootId`),
+ ADD KEY `idx_pickpocketloot` (`pickpocketLootId`),
+ ADD KEY `idx_skinloot` (`skinLootId`);