diff --git a/includes/class.skill.php b/includes/class.skill.php
index 330b079a..98213b48 100644
--- a/includes/class.skill.php
+++ b/includes/class.skill.php
@@ -8,6 +8,32 @@ class SkillList extends BaseType
{
public static $type = TYPE_SKILL;
+ protected $setupQuery = 'SELECT *, id AS ARRAY_KEY FROM ?_skillLine sl WHERE [cond] ORDER BY id ASC';
+ protected $matchQuery = 'SELECT COUNT(1) FROM ?_skillLine sl WHERE [cond]';
+
+ public function __construct($data)
+ {
+ parent::__construct($data);
+
+ // post processing
+ while ($this->iterate())
+ {
+ $_ = &$this->curTpl['specializations']; // shorthand
+ if (!$_)
+ $_ = [0, 0, 0, 0, 0];
+ else
+ {
+ $_ = explode(' ', $_);
+ while (count($_) < 5)
+ $_[] = 0;
+ }
+
+ $this->templates[$this->id] = $this->curTpl;
+ }
+
+ $this->reset(); // push first element back for instant use
+ }
+
public static function getName($id)
{
$n = DB::Aowow()->SelectRow('
@@ -26,10 +52,41 @@ class SkillList extends BaseType
return Util::localizedString($n, 'name');
}
- public function getListviewData() { }
- public function addGlobalsToJScript(&$template, $addMask = 0) { }
- public function renderTooltip() { }
+ public function getListviewData()
+ {
+ $data = [];
+ while ($this->iterate())
+ {
+ $data[$this->id] = array(
+ 'category' => $this->curTpl['typeCat'],
+ 'categorybak' => $this->curTpl['categoryId'],
+ 'id' => $this->id,
+ 'name' => Util::jsEscape($this->getField('name', true)),
+ 'profession' => $this->curTpl['professionMask'],
+ 'recipeSubclass' => $this->curTpl['recipeSubClass'],
+ 'specializations' => json_encode($this->curTpl['specializations'], JSON_NUMERIC_CHECK),
+ 'icon' => Util::jsEscape($this->curTpl['iconString'])
+ );
+ }
+
+ return $data;
+ }
+
+ public function addGlobalsToJScript(&$template, $addMask = 0)
+ {
+ while ($this->iterate())
+ {
+ $template->extendGlobalData(self::$type, [
+ $this->id => [
+ 'name' => Util::jsEscape($this->getField('name', true)),
+ 'icon' => Util::jsEscape($this->curTpl['iconString'])
+ ]
+ ]);
+ }
+ }
+
+ public function renderTooltip() { }
}
?>
diff --git a/includes/class.spell.php b/includes/class.spell.php
index fa4591cf..35d9d5c1 100644
--- a/includes/class.spell.php
+++ b/includes/class.spell.php
@@ -1225,7 +1225,7 @@ Lasts 5 min. $?$gte($pl,68)[][Cannot be used on items level 138 and higher.]
// line endings
$str = strtr($str, ["\r" => '', "\n" => '
']);
- return array($str, null/*$relSpells*/);
+ return array($str, []/*$relSpells*/);
}
public function renderBuff($level = MAX_LEVEL, $interactive = false)
@@ -1424,7 +1424,7 @@ Lasts 5 min. $?$gte($pl,68)[][Cannot be used on items level 138 and higher.]
if ($tools || $reagents || $reqItems || $desc || $createItem)
$x .= '
';
- $this->tooltips[$this->id] = array($x, $desc[1]);
+ $this->tooltips[$this->id] = array($x, $desc ? $desc[1] : null);
return $this->tooltips[$this->id];
}
diff --git a/includes/utilities.php b/includes/utilities.php
index 40a2d0d6..ccc1b8ff 100644
--- a/includes/utilities.php
+++ b/includes/utilities.php
@@ -413,6 +413,7 @@ class Lang
public static $npc;
public static $pet;
public static $quest;
+ public static $skill;
public static $spell;
public static $title;
public static $zone;
@@ -781,7 +782,7 @@ class SmartyAoWoW extends Smarty
$this->initJSGlobal($type);
foreach ($ids as $k => $id) // filter already generated data, maybe we can save a lookup or two
- if (isset($this->_tpl_vars['jsGlobals'][$type][$id]))
+ if (isset($this->_tpl_vars['jsGlobals'][$type][1][$id]))
unset($ids[$k]);
switch ($type)
diff --git a/localization/locale_dede.php b/localization/locale_dede.php
index bfd820f9..6755192b 100644
--- a/localization/locale_dede.php
+++ b/localization/locale_dede.php
@@ -126,6 +126,8 @@ $lang = array(
'reqSkillLevel' => "Benötigte Fertigkeitsstufe",
'level' => "Stufe",
'school' => "Magieart",
+ 'skill' => "Fertigkeit",
+ 'skills' => "Fertigkeiten",
'spell' => "Zauber",
'spells' => "Zauber",
'type' => "Art",
@@ -286,6 +288,12 @@ $lang = array(
'Allgemein', 'Spieler gegen Spieler', 'Ruf', 'Dungeon & Schlachtzug', 'Quests', 'Berufe', 'Weltereignisse'
)
),
+ 'skill' => array(
+ 'cat' => array(
+ -6 => 'Haustiere', -5 => 'Reittiere', -4 => 'Völkerfertigkeiten', 5 => 'Attribute', 6 => 'Waffenfertigkeiten', 7 => 'Klassenfertigkeiten', 8 => 'Rüstungssachverstand',
+ 9 => 'Nebenberufe', 10 => 'Sprachen', 11 => 'Berufe'
+ )
+ ),
'currency' => array(
'cat' => array(
1 => "Verschiedenes", 2 => "Spieler gegen Spieler", 4 => "Classic", 21 => "Wrath of the Lich King", 22 => "Dungeon und Schlachtzug", 23 => "Burning Crusade", 41 => "Test", 3 => "Unbenutzt"
diff --git a/localization/locale_enus.php b/localization/locale_enus.php
index 1629915a..4edfbf5e 100644
--- a/localization/locale_enus.php
+++ b/localization/locale_enus.php
@@ -121,6 +121,8 @@ $lang = array(
'reqSkillLevel' => "Required skill level",
'level' => "Level",
'school' => "School",
+ 'skill' => "skill",
+ 'skills' => "Skills",
'spell' => "spell",
'spells' => "Spells",
'type' => "Type",
@@ -281,6 +283,12 @@ $lang = array(
'General', 'Player vs. Player', 'Reputation', 'Dungeons & Raids', 'Quests', 'Professions', 'World Events'
)
),
+ 'skill' => array(
+ 'cat' => array(
+ -6 => 'Companions', -5 => 'Mounts', -4 => 'Racial Traits', 5 => 'Attributes', 6 => 'Weapon Skills', 7 => 'Class Skills', 8 => 'Armor Proficiencies',
+ 9 => 'Secondary Skills', 10 => 'Languages', 11 => 'Professions'
+ )
+ ),
'currency' => array(
'cat' => array(
1 => "Miscellaneous", 2 => "Player vs. Player", 4 => "Classic", 21 => "Wrath of the Lich King", 22 => "Dungeon and Raid", 23 => "Burning Crusade", 41 => "Test", 3 => "Unused"
diff --git a/localization/locale_eses.php b/localization/locale_eses.php
index 4c737b32..0d16f923 100644
--- a/localization/locale_eses.php
+++ b/localization/locale_eses.php
@@ -118,6 +118,8 @@ $lang = array(
'reqSkillLevel' => "Requiere nivel de habilidad",
'level' => "Nivel",
'school' => "Escuela",
+ 'skill' => "habilidad",
+ 'skills' => "Habilidades",
'spell' => "hechizo",
'spells' => "Hechizos",
'type' => "Tipo",
@@ -239,6 +241,12 @@ $lang = array(
'General', 'Jugador contra Jugador', 'Reputación', 'Mazmorras y bandas', 'Misiones', 'Profesiones', 'Eventos del mundo'
)
),
+ 'skill' => array(
+ 'cat' => array(
+ -6 => 'Compañeros', -5 => 'Monturas', -4 => 'Habilidades de raza', 5 => 'Atributos', 6 => 'Habilidades con armas', 7 => 'Habilidades de clase', 8 => 'Armaduras disponibles',
+ 9 => 'Habilidades secundarias', 10 => 'Idiomas', 11 => 'Profesiones'
+ )
+ ),
'currency' => array(
'cat' => array(
1 => "Miscelánea", 2 => "Jugador contra Jugador", 4 => "Clásico", 21 => "Wrath of the Lich King", 22 => "Mazmorra y banda", 23 => "Burning Crusade", 41 => "Prueba", 3 => "No las uso"
diff --git a/localization/locale_frfr.php b/localization/locale_frfr.php
index 50004a91..b990a0d3 100644
--- a/localization/locale_frfr.php
+++ b/localization/locale_frfr.php
@@ -118,6 +118,8 @@ $lang = array(
'reqSkillLevel' => "Niveau de compétence requis",
'level' => "Niveau",
'school' => "École",
+ 'skill' => "compétence",
+ 'skills' => "Compétences",
'spell' => "sort",
'spells' => "Sorts",
'type' => "Type",
@@ -238,6 +240,12 @@ $lang = array(
'Général', 'Joueur ctr. Joueur', 'Réputation', 'Donjons & raids', 'Quêtes', 'Métiers', 'Évènements mondiaux'
)
),
+ 'skill' => array(
+ 'cat' => array(
+ -6 => 'Compagnons', -5 => 'Montures', -4 => 'Traits raciaux', 5 => 'Caractéristiques', 6 => "Compétences d'armes", 7 => 'Compétences de classe', 8 => 'Armures utilisables',
+ 9 => 'Compétences secondaires', 10 => 'Langues', 11 => 'Métiers'
+ )
+ ),
'currency' => array(
'cat' => array(
1 => "Divers", 2 => "JcJ", 4 => "Classique", 21 => "Wrath of the Lich King", 22 => "Raid", 23 => "Burning Crusade", 41 => "Test", 3 => "Inutilisées"
diff --git a/localization/locale_ruru.php b/localization/locale_ruru.php
index 355f3146..e091172e 100644
--- a/localization/locale_ruru.php
+++ b/localization/locale_ruru.php
@@ -118,6 +118,8 @@ $lang = array(
'reqSkillLevel' => "Требуется уровень навыка",
'level' => "Уровень",
'school' => "Школа",
+ 'skill' => "Уровень навыка",
+ 'skills' => "Умения",
'spell' => "заклинание",
'spells' => "Заклинания",
'type' => "Тип",
@@ -238,6 +240,12 @@ $lang = array(
'Общее', 'PvP', 'Репутация', 'Подземелья и рейды', 'Задания', 'Профессии', 'Игровые события'
)
),
+ 'skill' => array(
+ 'cat' => array(
+ -6 => 'Спутники', -5 => 'Транспорт', -4 => 'Классовые навыки', 5 => 'Характеристики', 6 => 'Оружейные навыки', 7 => 'Классовые навыки', 8 => 'Доспехи',
+ 9 => 'Вторичные навыки', 10 => 'Языки', 11 => 'Профессии'
+ )
+ ),
'currency' => array(
'cat' => array(
1 => "Разное", 2 => "PvP", 4 => "World of Warcraft", 21 => "Wrath of the Lich King", 22 => "Подземелья и рейды", 23 => "Burning Crusade", 41 => "Test", 3 => "Неактивно"
diff --git a/pages/skills.php b/pages/skills.php
new file mode 100644
index 00000000..120a6271
--- /dev/null
+++ b/pages/skills.php
@@ -0,0 +1,51 @@
+error();
+
+if (!$smarty->loadCache($cacheKey, $pageData))
+{
+ $conditions = [['categoryId', 12, '!']]; // DND
+ if ($cat)
+ {
+ $conditions[] = ['typeCat', $cat];
+ $path[] = $cat;
+ array_unshift($title, Lang::$skill['cat'][$cat]);
+ }
+
+ $skills = new SkillList($conditions);
+
+ $pageData = array(
+ 'file' => 'skill',
+ 'data' => $skills->getListviewData(),
+ 'params' => []
+ );
+
+ $smarty->saveCache($cacheKey, $pageData);
+}
+
+
+// menuId 14: Skill g_initPath()
+// tabId 0: Database g_initHeader()
+$smarty->updatePageVars(array(
+ 'title' => implode(' - ', $title),
+ 'path' => json_encode($path, JSON_NUMERIC_CHECK),
+ 'tab' => 0
+));
+$smarty->assign('lang', Lang::$main);
+$smarty->assign('lvData', $pageData);
+
+// load the page
+$smarty->display('generic-no-filter.tpl');
+
+?>
diff --git a/setup/aowow_skillLine.sql b/setup/aowow_skillLine.sql
new file mode 100644
index 00000000..845688ed
--- /dev/null
+++ b/setup/aowow_skillLine.sql
@@ -0,0 +1,74 @@
+-- MySQL dump 10.13 Distrib 5.5.27, for Win32 (x86)
+--
+-- Host: localhost Database: world
+-- ------------------------------------------------------
+-- Server version 5.5.27
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Table structure for table `aowow_skillline`
+--
+
+DROP TABLE IF EXISTS `aowow_skillline`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `aowow_skillline` (
+ `Id` bigint(20) NOT NULL,
+ `typeCat` bigint(20) NOT NULL,
+ `categoryId` bigint(20) NOT NULL,
+ `skillCostId` bigint(20) NOT NULL,
+ `name_loc0` varchar(64) NOT NULL,
+ `name_loc2` varchar(64) NOT NULL,
+ `name_loc3` varchar(64) NOT NULL,
+ `name_loc6` varchar(64) NOT NULL,
+ `name_loc8` varchar(64) NOT NULL,
+ `description_loc0` text NOT NULL,
+ `description_loc2` text NOT NULL,
+ `description_loc3` text NOT NULL,
+ `description_loc6` text NOT NULL,
+ `description_loc8` text NOT NULL,
+ `spellIconId` bigint(20) NOT NULL,
+ `iconString` varchar(40) NOT NULL,
+ `verb_loc0` varchar(32) NOT NULL,
+ `verb_loc2` varchar(32) NOT NULL,
+ `verb_loc3` varchar(32) NOT NULL,
+ `verb_loc6` varchar(32) NOT NULL,
+ `verb_loc8` varchar(32) NOT NULL,
+ `canLink` tinyint(1) NOT NULL,
+ `professionMask` bigint(20) NOT NULL,
+ `recipeSubClass` bigint(20) NOT NULL,
+ `specializations` text NOT NULL COMMENT 'spcae-separated spellIds',
+ PRIMARY KEY (`Id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `aowow_skillline`
+--
+
+LOCK TABLES `aowow_skillline` WRITE;
+/*!40000 ALTER TABLE `aowow_skillline` DISABLE KEYS */;
+INSERT INTO `aowow_skillline` VALUES (6,7,7,0,'Frost','Givre','Frost','Escarcha','Лед','','','','','',188,'Spell_Frost_FrostBolt02','','','','','',0,0,0,''),(8,7,7,0,'Fire','Feu','Feuer','Fuego','Огонь','','','','','',183,'Spell_Fire_FireBolt02','','','','','',0,0,0,''),(26,7,7,0,'Arms','Armes','Waffen','Armas','Оружие','','','','','',514,'Ability_Rogue_Eviscerate','','','','','',0,0,0,''),(38,7,7,0,'Combat','Combat','Kampf','Combate','Бой','','','','','',243,'Ability_BackStab','','','','','',0,0,0,''),(39,7,7,0,'Subtlety','Finesse','Täuschung','Sutileza','Скрытность','','','','','',250,'Ability_Stealth','','','','','',0,0,0,''),(43,6,6,0,'Swords','Epées','Schwerter','Espadas','Мечи','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',26,'Ability_MeleeDamage','','','','','',0,0,0,''),(44,6,6,0,'Axes','Haches','Äxte','Hachas','Топоры','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',1526,'INV_Axe_01','','','','','',0,0,0,''),(45,6,6,0,'Bows','Arcs','Bögen','Arcos','Луки','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',364,'INV_Weapon_Bow_05','','','','','',0,0,0,''),(46,6,6,0,'Guns','Armes à feu','Schusswaffen','Armas de fuego','Огнестрельное оружие','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',393,'INV_Weapon_Rifle_01','','','','','',0,0,0,''),(50,7,7,0,'Beast Mastery','Maîtrise des bêtes','Tierherrschaft','Dominio de bestias','Повелитель зверей','','','','','',255,'Ability_Hunter_BeastTaming','','','','','',0,0,0,''),(51,7,7,0,'Survival','Survie','Überleben','Supervivencia','Выживание','','','','','',257,'Ability_Hunter_SwiftStrike','','','','','',0,0,0,''),(54,6,6,0,'Maces','Masse','Streitkolben','Mazas','Дробящее оружие','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',367,'INV_Mace_01','','','','','',0,0,0,''),(55,6,6,0,'Two-Handed Swords','Epées à deux mains','Zweihandschwerter','Espadas de dos manos','Двуручные мечи','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',26,'Ability_MeleeDamage','','','','','',0,0,0,''),(56,7,7,0,'Holy','Sacré','Heilig','Sagrado','Свет','','','','','',70,'Spell_Holy_HolyBolt','','','','','',0,0,0,''),(78,7,7,0,'Shadow Magic','Magie de l\'ombre','Schattenmagie','Magia sombría','Темная магия','','','','','',234,'Spell_Shadow_ShadowWordPain','','','','','',0,0,0,''),(95,6,6,0,'Defense','Défense','Verteidigung','Defensa','Защита','Higher defense improves your chance to dodge, parry, and block attacks, makes you harder to hit, and makes monsters less likely to land a critical strike against you.','Une plus haute défense améliore vos chances d\'esquiver, de parer ou de bloquer, vous rend plus difficile à toucher et diminue les chances que les monstres vous infligent un coup critique.','Eine höhere Verteidigungsfertigkeit erhöht die Chance, Angriffe zu parieren, blocken und ihnen auszuweichen, senkt die Chance des Gegners, Euch im Kampf zu treffen, und verringert die Wahrscheinlichkeit, durch einen kritischen Treffer verletzt zu werden.','Con una defensa alta tendrás más posibilidades de esquivar, parar o bloquear ataques, así que será más difícil que te acierte un golpe y que los monstruos te asesten un golpe crítico.','Чем лучше развит этот навык, тем выше ваши шансы на успешное парирование, блок или уклонение от атаки противника. Кроме того, развитие этого навыка снижает вероятность получения критического урона.',131,'Ability_Racial_ShadowMeld','','','','','',0,0,0,''),(98,10,10,0,'Language: Common','Langue : commun','Sprache: Gemeinsprache','Idioma: común','Язык: всеобщий','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(101,-4,9,0,'Dwarven Racial','Raciale nain','Zwergenvolk','Racial enano','Расовый навык дворфов','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(109,10,10,0,'Language: Orcish','Langue : orc','Sprache: Orcisch','Idioma: orco','Язык: орочий','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(111,10,10,0,'Language: Dwarven','Langue : nain','Sprache: Zwergisch','Idioma: enánico','Язык: дворфийский','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(113,10,10,0,'Language: Darnassian','Langue : darnassien','Sprache: Darnassisch','Idioma: darnassiano','Язык: дарнасский','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(115,10,10,0,'Language: Taurahe','Langue : taurahe','Sprache: Taurisch','Idioma: taurahe','Язык: таурахэ','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(118,6,6,0,'Dual Wield','Ambidextrie','Beidhändigkeit','Doble empuñadura','Бой двумя руками','','','','','',533,'Ability_DualWield','','','','','',0,0,0,''),(124,-4,9,0,'Tauren Racial','Raciale tauren','Taurenvolk','Racial tauren','Расовый навык тауренов','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(125,-4,9,0,'Orc Racial','Raciale orc','Orcvolk','Racial orco','Расовый навык орков','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(126,-4,9,0,'Night Elf Racial','Raciale elfe de la nuit','Nachtelfenvolk','Racial elfo de la noche','Расовый навык ночных эльфов','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(129,9,9,0,'First Aid','Secourisme','Erste Hilfe','Primeros auxilios','Первая помощь','Higher first aid skill allows you to learn higher level first aid abilities. First aid abilities can be found on trainers around the world as well as from quests and as drops from monsters.','Une compétence plus élevée en secourisme vous permet d\'apprendre à mieux soigner. Il est possible d\'augmenter cette compétence grâce à des professeurs, aux monstres que vous tuez ou en récompense de quêtes.','Eine hohe Fertigkeit in Erster Hilfe ermöglicht es, höherstufigere Fähigkeiten der Ersten Hilfe zu benutzen. Diese könnt Ihr bei Lehrern überall in der Welt erwerben. Manchmal erhaltet Ihr diese Fähigkeiten auch von toten Gegnern oder als Questbelohnung.','Con un nivel alto de habilidad en primeros auxilios, aprenderás primeros auxilios de nivel superior. Visita a los instructores dispersos por el mundo, completa misiones y derrota a los monstruos para conseguirlas.','Чем лучше развит этот навык, тем более сложные медицинские приемы вы можете применять. Медицинские приемы можно узнать у учителей, а также получить в качестве добычи или награды.',504,'Spell_Holy_SealOfSacrifice','','','','','',1,32,7,''),(134,7,7,0,'Feral Combat','Combat farouche','Wilder Kampf','Combate feral','Сила зверя','','','','','',107,'Ability_Racial_BearForm','','','','','',0,0,0,''),(136,6,6,0,'Staves','Bâtons','Stäbe','Bastones','Посохи','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',286,'INV_Staff_08','','','','','',0,0,0,''),(137,10,10,0,'Language: Thalassian','Langue : thalassien','Sprache: Thalassisch','Idioma: thalassiano','Язык: талассийский','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(138,10,10,0,'Language: Draconic','Langue : draconique','Sprache: Drachisch','Idioma: dracónico','Язык: драконий','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(139,10,10,0,'Language: Demon Tongue','Langue : démoniaque','Sprache: Dämonisch','Idioma: demoníaco','Язык: наречие демонов','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(140,10,10,0,'Language: Titan','Langue : titan','Sprache: Titanisch','Idioma: titánico','Язык: наречие титанов','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(141,10,10,0,'Language: Old Tongue','Langue : langue ancienne','Sprache: Alte Sprache','Idioma: lengua antigua','Язык: древний','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(142,9,9,0,'Survival','Survie','Überlebenskunst','Supervivencia','Выживание','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(148,-5,9,0,'Horse Riding','Equitation','Pferdreiten','Montar caballos','Езда на лошадях','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(149,-5,9,0,'Wolf Riding','Monte de loup','Wolfreiten','Montar lobos','Езда на волках','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(150,-5,9,0,'Tiger Riding','Monte de tigre','Tigerreiten','Montar tigres','Езда на тиграх','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(152,-5,9,0,'Ram Riding','Monte de bélier','Widderreiten','Montar carneros','Езда на баранах','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(155,9,9,0,'Swimming','Natation','Schwimmen','Nadar','Плавание','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(160,6,6,0,'Two-Handed Maces','Masses à deux mains','Zweihandstreitkolben','Mazas de dos manos','Двуручное дробящее оружие','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',435,'INV_Mace_04','','','','','',0,0,0,''),(162,6,6,0,'Unarmed','Mains nues','Unbewaffnet','Sin armas','Рукопашный бой','Higher skill increases your chance to hit.','Une compétence plus élevée augmente vos chances de toucher.','Eine erhöhte Fertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',148,'Ability_GolemThunderClap','','','','','',0,0,0,''),(163,7,7,0,'Marksmanship','Précision','Treffsicherheit','Puntería','Стрельба','','','','','',126,'Ability_Marksmanship','','','','','',0,0,0,''),(164,11,11,0,'Blacksmithing','Forge','Schmiedekunst','Herrería','Кузнечное дело','Higher smithing skill allows you to learn higher level smithing plans. Blacksmithing plans can be found on trainers around the world as well as from quests and monsters.','Un plus haut score dans la compétence forge vous permet d’apprendre des plans plus difficiles. Les plans pour forgerons se trouvent dans le monde entier auprès de maîtres aussi bien qu’en récompense de quêtes ou qu’en butin de monstres.','Eine hohe Schmiedefertigkeit ermöglicht es Euch, höherstufigere Schmiedepläne zu benutzen. Pläne könnt Ihr bei Lehrern überall in der Welt erwerben. Tote Gegner hinterlassen manchmal Schmiedepläne oder Ihr erhaltet sie als Questbelohnung.','Con un nivel alto de habilidad en herrería, podrás aprender mejores diseños de herrería. Visita a los instructores dispersos por el mundo, completa misiones y derrota a los monstruos para conseguirlos.','Чем лучше развит этот навык, тем более сложные кузнечные чертежи вы можете использовать. Чертежи можно найти у учителей, а также получить в качестве добычи или награды.',335,'Trade_BlackSmithing','Modify','Modifier','Umarbeiten','Transformar','Выковать',1,2,4,'9788 9787 17041 17040 17039'),(165,11,11,0,'Leatherworking','Travail du cuir','Lederverarbeitung','Peletería','Кожевничество','Higher leatherworking skill allows you to learn higher level leatherworking patterns. Leatherworking patterns can be found on trainers around the world as well as from quests and monsters.','Une compétence plus élevée dans le travail du cuir vous permet d\'apprendre des patrons plus difficiles. Ces patrons peuvent être trouvés auprès de maîtres un peu partout dans le monde, sur des monstres ou en récompense de quêtes.','Eine hohe Lederverarbeitungsfertigkeit ermöglicht es Euch, höherstufigere Schnittmuster zu benutzen. Muster könnt Ihr bei Lehrern überall in der Welt erwerben. Tote Gegner hinterlassen manchmal Schnittmuster oder Ihr erhaltet sie als Questbelohnung.','Con un nivel alto de habilidad en peletería, podrás aprender patrones de nivel superior. Visita a los instructores dispersos por el mundo, completa misiones y derrota a los monstruos para conseguirlos.','Чем лучше развит этот навык, тем более сложные выкройки для кожи вы можете использовать. Выкройки можно найти у учителей, а также получить в качестве добычи или награды.',346,'Trade_LeatherWorking','Emboss','Estamper','Prägen','Remachar','Украсить',1,128,1,'10656 10658 10660'),(171,11,11,0,'Alchemy','Alchimie','Alchemie','Alquimia','Алхимия','Higher alchemy skill allows you to learn higher level alchemy recipes. Alchemy recipes can be found on trainers around the world as well as from quests and monsters.','Un plus haut score dans la compétence alchimie vous permet d’apprendre des recettes plus difficiles. Les recettes d\'alchimie se trouvent dans le monde entier auprès de maîtres aussi bien qu’en récompense de quêtes ou qu’en butin de monstres.','Eine hohe Alchemiefertigkeit ermöglicht es Euch, höherstufigere Rezepte zu benutzen. Alchemierezepte könnt Ihr bei Lehrern überall in der Welt erwerben. Tote Gegner hinterlassen manchmal Rezepte oder Ihr erhaltet sie als Questbelohnung.','Con un nivel alto de habilidad en alquimia, podrás aprender recetas de nivel superior. Visita a los instructores dispersos por el mundo, completa misiones y derrota a los monstruos para conseguirlas.','Чем лучше развит этот навык, тем более сложные рецепты вы можете использовать. Рецепты можно найти у учителей, а также получить в качестве добычи или награды.',339,'Trade_Alchemy','Refill','Remplir','Nachfüllen','Rellenar','Наполнить',1,1,6,'28677 28675 28672'),(172,6,6,0,'Two-Handed Axes','Haches à deux mains','Zweihandäxte','Hachas de dos manos','Двуручные топоры','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',328,'INV_Axe_04','','','','','',0,0,0,''),(173,6,6,0,'Daggers','Dagues','Dolche','Dagas','Кинжалы','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',151,'Ability_SteelMelee','','','','','',0,0,0,''),(176,6,6,0,'Thrown','Armes de jet','Wurfwaffen','Armas arrojadizas','Метательное оружие','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',1528,'INV_ThrowingKnife_02','','','','','',0,0,0,''),(182,11,11,0,'Herbalism','Herboristerie','Kräuterkunde','Herboristería','Травничество','Higher herbalism skill allows you to harvest more difficult herbs around the world. If you cannot harvest a specific herb, then increase your skill by harvesting easier to gather herbs in lower level areas.','Une compétence plus élevée en Herboristerie vous permet de récolter des herbes plus difficiles. Si vous ne pouvez pas récolter une herbe donnée, augmentez votre score en récoltant des herbes plus accessibles dans des zones de niveau inférieur.','Eine hohe Kräuterkundefertigkeit ermöglicht es Euch, schwierigere Kräuter zu ernten. Wenn Ihr ein bestimmtes Kraut nicht ernten könnt, steigert Eure Kräuterkundefertigkeit, indem Ihr in niedrigstufigeren Gebieten leichtere Kräuter erntet.','Con un nivel alto de habilidad en herboristería podrás recolectar hierbas difíciles de encontrar por el mundo. Si no puedes conseguir una hierba en particular, aumenta tu habilidad recolectando hierbas más fáciles de conseguir en áreas de nivel inferior.','Чем лучше развит этот навык, тем больше различных видов растений вы можете собирать. Если вам не удается собрать какое-либо растение, потренируйтесь на простых травах, растущих в областях более низкого уровня.',345,'Trade_Herbalism','','','','','',0,2048,0,''),(183,12,12,0,'GENERIC (DND)','GENERIQUE (DND)','ALLGEMEIN (DND)','COMÚN (DND)','GENERIC (DND)','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(184,7,7,0,'Retribution','Vindicte','Vergeltung','Reprensión','Воздаяние','','','','','',555,'Spell_Holy_AuraOfLight','','','','','',0,0,0,''),(185,9,9,0,'Cooking','Cuisine','Kochkunst','Cocina','Кулинария','Higher cooking skill allows you to learn higher level cooking recipes. Recipes can be found on trainers around the world as well as from quests and as drops from monsters.','Un plus haut score dans la compétence cuisine vous permet d’apprendre des recettes plus difficiles. Les recettes de cuisine se trouvent dans le monde entier auprès de maîtres aussi bien qu’en récompense de quêtes ou qu’en butin de monstres.','Eine hohe Kochfertigkeit ermöglicht es Euch, höherstufigere Rezepte zu benutzen. Rezepte könnt Ihr bei Lehrern überall in der Welt erwerben. Tote Gegner hinterlassen manchmal Kochrezepte oder Ihr erhaltet sie als Questbelohnung.','Con un nivel alto de habilidad en cocina, aprenderás recetas de nivel superior. Visita a los instructores dispersos por el mundo, completa misiones y derrota a los monstruos para conseguirlas.','Чем лучше развит этот навык, тем более сложные кулинарные рецепты вы можете использовать. Рецепты можно найти у учителей, а также получить в качестве добычи или награды.',1467,'INV_Misc_Food_15','','','','','',1,4,5,''),(186,11,11,0,'Mining','Minage','Bergbau','Minería','Горное дело','Higher mining skill allows you to harvest more difficult minerals nodes around the world. If you cannot harvest a specific mineral, then increase your skill by mining easier to mine minerals in lower level areas.','Une compétence plus élevée en minage vous permet de récolter des minerais plus difficiles. Si vous ne pouvez pas récolter un minerai donné, augmentez votre score en récoltant des minerais plus accessibles dans des zones de niveau inférieur.','Eine hohe Bergbaufertigkeit ermöglicht es Euch, schwierigere Erzvorkommen abzubauen. Wenn Ihr ein bestimmtes Erzvorkommen nicht abbauen könnt, steigert Eure Bergbaufertigkeit, indem Ihr in niedrigstufigeren Gebieten leichtere Erzvorkommen abbaut.','Con un alto nivel de habilidad en minería, podrás obtener minerales de vetas más complejas. Si no puedes obtener un mineral específico, intenta subir tu nivel de habilidad primero en zonas más fáciles.','Чем лучше развит этот навык, тем более сложные залежи вы можете разрабатывать. Если вам не удается добыть какой-либо минерал, потренируйтесь на простых месторождениях, доступных в областях более низкого уровня.',2418,'INV_Pick_02','','','','','',0,256,0,''),(188,-6,7,0,'Pet - Imp','Familier - diablotin','Tier - Wichtel','Mascota: diablillo','Питомец: бес','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(189,-6,7,0,'Pet - Felhunter','Familier - chasseur corrompu','Tier - Teufelsjäger','Mascota: manáfago','Прислужник: охотник Скверны','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(197,11,11,0,'Tailoring','Couture','Schneiderei','Sastrería','Портняжное дело','Higher tailoring skill allows you to learn higher level tailoring patterns. Tailoring patterns can be found on trainers around the world as well as from quests and monsters.','Un plus haut score dans la compétence couture vous permet d’apprendre des patrons plus difficiles. Les patrons de couture se trouvent dans le monde entier auprès de maîtres aussi bien qu’en récompense de quêtes ou qu’en butin de monstres.','Eine hohe Schneiderfertigkeit ermöglicht es Euch, höherstufigere Schnittmuster zu benutzen. Muster könnt Ihr bei Lehrern überall in der Welt erwerben. Tote Gegner hinterlassen manchmal Schnittmuster oder Ihr erhaltet sie als Questbelohnung.','Con un nivel alto de habilidad en sastrería, podrás aprender patrones de nivel superior. Visita a los instructores dispersos por el mundo, completa misiones y derrota a los monstruos para conseguirlos.','Чем лучше развит этот навык, тем более сложные выкройки для ткани вы можете использовать. Выкройки можно найти у учителей, а также получить в качестве добычи или награды.',341,'Trade_Tailoring','Embroider','Broder','Besticken','Bordar','Вышить',1,512,2,'26798 26801 26797'),(202,11,11,0,'Engineering','Ingénierie','Ingenieurskunst','Ingeniería','Инженерное дело','Higher engineering skill allows you to learn higher level engineering schematics. Schematics can be found on trainers around the world as well as from quests and monsters.','Un plus haut score dans la compétence ingénierie vous permet d’apprendre des schémas plus difficiles. Les schémas pour ingénieurs se trouvent dans le monde entier auprès de maîtres aussi bien qu’en récompense de quêtes ou qu’en butin de monstres.','Eine hohe Ingenieursfertigkeit ermöglicht es Euch, höherstufigere Baupläne zu benutzen. Baupläne könnt Ihr bei Lehrern überall in der Welt erwerben. Tote Gegner hinterlassen manchmal Baupläne oder Ihr erhaltet sie als Questbelohnung.','Con un nivel alto de habilidad en ingeniería, podrás aprender esquemas de ingeniería de nivel superior. Visita a los instructores dispersos por el mundo, completa misiones y derrota a los monstruos para conseguirlos.','Чем лучше развит этот навык, тем более сложные инженерные чертежи вы можете использовать. Чертежи можно найти у учителей, а также получить в качестве добычи или награды.',333,'Trade_Engineering','Tinker','Bricoler','Basteln','Componer','Усилить',1,16,3,'20219 20222'),(203,-6,7,0,'Pet - Spider','Familier - araignée','Tier - Spinne','Mascota: araña','Питомец: паук','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(204,-6,7,0,'Pet - Voidwalker','Familier - marcheur du Vide','Tier - Leerwandler','Mascota: abisario','Прислужник: демон Бездны','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(205,-6,7,0,'Pet - Succubus','Familier - succube','Tier - Sukkubus','Mascota: súcubo','Прислужник: суккуб','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(206,-6,7,0,'Pet - Infernal','Familier - infernal','Tier - Höllenbestie','Mascota: infernal','Прислужник: огненный голем','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(207,-6,7,0,'Pet - Doomguard','Familier - garde funeste','Tier - Verdammniswache','Mascota: guardia apocalíptico','Прислужник: Стражник Ужаса','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(208,-6,7,0,'Pet - Wolf','Familier - loup','Tier - Wolf','Mascota: lobo','Питомец: волк','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(209,-6,7,0,'Pet - Cat','Familier - félin','Tier - Katze','Mascota: felino','Питомец: кошка','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(210,-6,7,0,'Pet - Bear','Familier - ours','Tier - Bär','Mascota: oso','Питомец: медведь','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(211,-6,7,0,'Pet - Boar','Familier - sanglier','Tier - Eber','Mascota: jabalí','Питомец: кабан','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(212,-6,7,0,'Pet - Crocolisk','Familier - crocilisque','Tier - Krokilisk','Mascota: crocolisco','Питомец: кроколиск','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(213,-6,7,0,'Pet - Carrion Bird','Familier - charognard','Tier - Aasvogel','Mascota: carroñero','Питомец: падальщик','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(214,-6,7,0,'Pet - Crab','Familier - crabe','Tier - Krebs','Mascota: cangrejo','Питомец: краб','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(215,-6,7,0,'Pet - Gorilla','Familier - gorille','Tier - Gorilla','Mascota: gorila','Питомец: горилла','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(217,-6,7,0,'Pet - Raptor','Familier - raptor','Tier - Raptor','Mascota: raptor','Питомец: ящер','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(218,-6,7,0,'Pet - Tallstrider','Familier - haut-trotteur','Tier - Weitschreiter','Mascota: zancudo','Питомец: долгоног','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(220,-4,9,0,'Racial - Undead','Racial - mort-vivant','Volk - Untote','Racial: no-muerto','Расовый навык нежити','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(226,6,6,0,'Crossbows','Arbalètes','Armbrüste','Ballestas','Арбалеты','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',269,'INV_Weapon_Crossbow_01','','','','','',0,0,0,''),(228,6,6,0,'Wands','Baguettes','Zauberstäbe','Varitas','Жезлы','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',677,'Ability_ShootWand','','','','','',0,0,0,''),(229,6,6,0,'Polearms','Armes d\'hast','Stangenwaffen','Armas de asta','Древковое оружие','Higher weapon skill increases your chance to hit.','Une compétence d’arme plus élévée augmente vos chances de toucher.','Eine erhöhte Waffenfertigkeit steigert Eure Trefferchance.','Cuanto mayor sea tu nivel de habilidad con las armas, mayor será la probabilidad de acertar al dar un golpe.','Чем лучше развит этот навык, тем больше вероятность нанесения урона.',1527,'INV_Spear_06','','','','','',0,0,0,''),(236,-6,7,0,'Pet - Scorpid','Familier - scorpide','Tier - Skorpid','Mascota: escórpido','Питомец: скорпид','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(237,7,7,0,'Arcane','Arcanes','Arkan','Arcano','Тайная магия','','','','','',125,'Spell_Holy_MagicalSentry','','','','','',0,0,0,''),(251,-6,7,0,'Pet - Turtle','Familier - tortue','Tier - Schildkröte','Mascota: tortuga','Питомец: черепаха','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(253,7,7,0,'Assassination','Assassinat','Meucheln','Asesinato','Ликвидация','','','','','',514,'Ability_Rogue_Eviscerate','','','','','',0,0,0,''),(256,7,7,0,'Fury','Fureur','Furor','Furia','Неистовство','','','','','',561,'Ability_Warrior_InnerRage','','','','','',0,0,0,''),(257,7,7,0,'Protection','Protection','Schutz','Protección','Защита','','','','','',276,'Ability_Warrior_DefensiveStance','','','','','',0,0,0,''),(267,7,7,0,'Protection','Protection','Schutz','Protección','Защита','','','','','',291,'Spell_Holy_DevotionAura','','','','','',0,0,0,''),(270,-6,7,0,'Pet - Generic Hunter','Familier - générique chasseur','Tier - Jäger allgemein','Mascota: cazador genérico','Питомец: любой','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(293,8,8,0,'Plate Mail','Armure en plaques','Plattenpanzer','Malla de placas','Латы','Allows the wearing of plate armor.','Permet de porter des armures de plaques.','Erlaubt das Tragen von Plattenrüstungen.','Permite vestir armaduras de placas.','Возможность носить латы.',444,'INV_Chest_Plate01','','','','','',0,0,0,''),(313,10,10,0,'Language: Gnomish','Langue : gnome','Sprache: Gnomisch','Idioma: gnomótico','Язык: гномский','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(315,10,10,0,'Language: Troll','Langue : troll','Sprache: Trollisch','Idioma: trol','Язык: наречие троллей','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(333,11,11,0,'Enchanting','Enchantement','Verzauberkunst','Encantamiento','Наложение чар','Higher enchanting skill allows you to learn more powerful formulae. Formulae can be found on trainers around the world as well as from quests and monsters.','Une compétence plus élevée en enchantement vous permet d\'apprendre des formules plus puissantes. Ces formules peuvent être trouvées auprès de maîtres un peu partout dans le monde, sur des monstres ou en récompense de quêtes.','Eine hohe Verzauberungsfertigkeit ermöglicht es Euch, mächtigere Formeln zu benutzen. Verzauberungsformeln könnt Ihr bei Lehrern überall in der Welt erwerben und auch bei toten Gegnern und beim Questen finden.','Con un alto nivel de habilidad en encantamiento, podrás aprender formulas mucho más poderosas. Visita a los instructores dispersos por el mundo, completa misiones y derrota a los monstruos para conseguirlas.','Чем лучше развит этот навык, тем более сложные формулы вы можете использовать. Формулы можно найти у учителей, а также получить в качестве добычи или награды.',578,'Trade_Engraving','Enchant','Enchanter','Verzaubern','Encantar','Зачаровать',1,8,8,''),(354,7,7,0,'Demonology','Démonologie','Dämonologie','Demonología','Демонология','','','','','',90,'Spell_Shadow_Metamorphosis','','','','','',0,0,0,''),(355,7,7,0,'Affliction','Affliction','Gebrechen','Aflicción','Колдовство','','','','','',88,'Spell_Shadow_DeathCoil','','','','','',0,0,0,''),(356,9,9,0,'Fishing','Pêche','Angeln','Pesca','Рыбная ловля','Higher fishing skill increases your chance of catching fish in bodies of water around the world. If you are having trouble catching fish in a given area, move to a lower level area or purchase a fishing lure and try again.','Un plus haut score dans la compétence pêche augmente vos chances d\'attraper des poissons dans le monde. Si vous n\'arrivez pas à pêcher dans une zone spécifique, allez dans des zones de plus bas niveau ou utilisez des appâts.','Eine hohe Angelfertigkeit steigert Eure Chance, Fische in einem Gewässer zu fangen. Wenn Ihr in einem bestimmten Gebiet Probleme habt, Fische zu angeln, versucht es in einem Gebiet mit einer niedrigeren Stufe oder benutzt einen Fischköder.','Con un nivel alto de habilidad en pesca aumentará la probabilidad de que pesques algo en las aguas del mundo. Si te cuesta mucho pescar, ve a pescar a otra área de nivel inferior o compra un cebo.','Чем лучше развит этот навык, тем больше вероятность поимки рыбы в любом из водоемов. Если вам не везет на рыбалке, перейдите в область более низкого уровня или купите приманку.',580,'Trade_Fishing','','','','','',0,1024,9,''),(373,7,7,0,'Enhancement','Amélioration','Verstärkung','Mejora','Совершенствование','','','','','',19,'Spell_Nature_LightningShield','','','','','',0,0,0,''),(374,7,7,0,'Restoration','Restauration','Wiederherstellung','Restauración','Исцеление','','','','','',13,'Spell_Nature_MagicImmunity','','','','','',0,0,0,''),(375,7,7,0,'Elemental Combat','Combat élémentaire','Elementarkampf','Combate elemental','Стихии','','','','','',62,'Spell_Nature_Lightning','','','','','',0,0,0,''),(393,11,11,0,'Skinning','Dépeçage','Kürschnerei','Desollar','Снятие шкур','Higher skinning skill allows you to skin hides from higher level monsters around the world. Once your skill is above 100, you can divide your skill by 5 to determine the highest level of monster you can skin.','Une compétence en dépeçage plus élevée vous permet de récolter les peaux de monstres plus puissants. Une fois que votre compétence dépasse 100, vous pouvez la diviser par 5 pour connaître le niveau maximum des monstres que vous pouvez dépecer.','Eine hohe Kürschnerfertigkeit ermöglicht es Euch, höherstufigere Monster zu häuten. Sobald Euer Fertigkeitswert 100 übersteigt, ist die maximale Stufe der Monster, die Ihr häuten könnt, Euer Fertigkeitswert geteilt durch 5.','Con un nivel alto de habilidad en desollar podrás despellejar monstruos de nivel superior. Cuando tu habilidad sea superior a 100, podrás dividirla entre 5 para determinar hasta qué nivel puedes despellejar.','Чем лучше развит этот навык, тем выше уровень монстров, с которых вы можете снимать шкуры. Если значение навыка больше 100, разделите его на 5 – и вы узнаете максимальный уровень монстра, снять шкуру которого вам по силам.',736,'INV_Misc_Pelt_Wolf_01','','','','','',0,0,0,''),(413,8,8,0,'Mail','Mailles','Schwere Rüstung','Malla','Кольчужные доспехи','Allows the wearing of mail armor.','Permet de porter des armures de mailles.','Erlaubt das Tragen von schweren Rüstungen.','Permite vestir armaduras de malla.','Возможность носить кольчугу.',796,'INV_Chest_Chain_05','','','','','',0,0,0,''),(414,8,8,0,'Leather','Cuir','Leder','Cuero','Кожаные доспехи','Allows the wearing of leather armor.','Permet de porter des armures en cuir.','Erlaubt das Tragen von Lederrüstungen.','Permite vestir armaduras de cuero.','Возможность носить кожаные доспехи.',896,'INV_Chest_Leather_09','','','','','',0,0,0,''),(415,8,8,0,'Cloth','Tissu','Stoff','Tela','Тканевые доспехи','Allows the wearing of cloth armor.','Permet de porter des armures en tissu.','Erlaubt das Tragen von Stoffrüstungen.','Permite vestir armaduras de tela.','Возможность носить тканевые доспехи.',897,'INV_Chest_Cloth_21','','','','','',0,0,0,''),(433,8,8,0,'Shield','Bouclier','Schild','Escudo','Щит','Allows the use of shields.','Permet d’utiliser des boucliers.','Erlaubt Euch die Benutzung von Schilden.','Permite el uso de escudos.','Возможность носить щит.',440,'INV_Shield_04','','','','','',0,0,0,''),(473,6,6,0,'Fist Weapons','Armes de pugilat','Faustwaffen','Armas de puño','Кистевое оружие','Allows for the use of fist weapons. Chance to hit is determined by the Unarmed skill.','Permet l\'utilisation des armes de pugilat. Les chances de toucher sont déterminées par la compétence Mains nues.','Ermöglicht Euch die Verwendung von Faustwaffen. Die Trefferchance wird durch die Kampffertigkeit \"Unbewaffnet\" bestimmt.','Permite el uso de armas de puño. La probabilidad de acertar al dar un golpe viene determinada por tu habilidad sin armas.','Возможность применять кастеты, когти и другое кистевое оружие. Шанс нанести урон зависит от навыка \"Рукопашный бой\".',756,'INV_Gauntlets_04','','','','','',0,0,0,''),(533,-5,9,0,'Raptor Riding','Monte de raptor','Raptorreiten','Montar raptor','Езда на рапторах','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(553,-5,9,0,'Mechanostrider Piloting','Pilotage de mécanotrotteur','Roboschreiterlenken','Montar mecazancudos','Вождение механострауса','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(554,-5,9,0,'Undead Horsemanship','Monte de cheval squelette','Untoten-Reitkunst','Equitación para no-muertos','Верховая езда нежити','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(573,7,7,0,'Restoration','Restauration','Wiederherstellung','Restauración','Исцеление','','','','','',962,'Spell_Nature_HealingTouch','','','','','',0,0,0,''),(574,7,7,0,'Balance','Equilibre','Gleichgewicht','Equilibrio','Баланс','','','','','',225,'Spell_Nature_StarFall','','','','','',0,0,0,''),(593,7,7,0,'Destruction','Destruction','Zerstörung','Destrucción','Разрушение','','','','','',547,'Spell_Shadow_RainOfFire','','','','','',0,0,0,''),(594,7,7,0,'Holy','Sacré','Heilig','Sagrado','Свет','','','','','',70,'Spell_Holy_HolyBolt','','','','','',0,0,0,''),(613,7,7,0,'Discipline','Discipline','Disziplin','Disciplina','Послушание','','','','','',685,'Spell_Holy_WordFortitude','','','','','',0,0,0,''),(633,7,7,0,'Lockpicking','Crochetage','Schlossknacken','Ganzúa','Взлом','','','','','',939,'inv_misc_key_03','','','','','',0,0,0,''),(653,-6,7,0,'Pet - Bat','Familier - chauve-souris','Tier - Fledermaus','Mascota: murciélago','Питомец: летучая мышь','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(654,-6,7,0,'Pet - Hyena','Familier - hyène','Tier - Hyäne','Mascota: hiena','Питомец: гиена','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(655,-6,7,0,'Pet - Bird of Prey','Familier - oiseau de proie','Tier - Raubvogel','Mascota: ave rapaz','Питомец: сова','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(656,-6,7,0,'Pet - Wind Serpent','Familier - serpent des vents','Tier - Windnatter','Mascota: serpiente alada','Питомец: крылатый змей','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(673,10,10,0,'Language: Gutterspeak','Langue : bas-parler','Sprache: Gossensprache','Idioma: viscerálico','Язык: наречие нежити','','','','','',1,'Trade_Engineering','','','','','',0,0,0,''),(713,-5,9,0,'Kodo Riding','Monte de kodo','Kodoreiten','Montar kodos','Езда на кодо','','','','','',317,'Spell_Magic_PolymorphPig','','','','','',0,0,0,''),(733,-4,9,0,'Racial - Troll','Racial - troll','Volk - Trolle','Racial: trol','Расовый навык троллей','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(753,-4,9,0,'Racial - Gnome','Racial - gnome','Volk - Gnome','Racial: gnomo','Расовый навык гномов','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(754,-4,9,0,'Racial - Human','Racial - humain','Volk - Menschen','Racial: humano','Расовый: люди','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(755,11,11,0,'Jewelcrafting','Joaillerie','Juwelenschleifen','Joyería','Ювелирное дело','Higher jewelcrafting skill allows you to learn higher level jewelcrafting plans. Jewelcrafting plans can be found on trainers around the world as well as from quests and monsters.','Une compétence plus élevée en joaillerie vous permet d\'apprendre des dessins de joaillier plus difficiles. Ces dessins peuvent être trouvés auprès de maîtres un peu partout dans le monde, sur des monstres ou en récompense de quêtes.','Eine hohe Juwelenschleiferfertigkeit ermöglicht es Euch, höherstufigere Vorlagen zu benutzen. Vorlagen bekommt Ihr bei allen Juwelenschleiferlehrern, von toten Gegnern und als Questbelohnung.','Con un nivel alto de habilidad en joyería, aprenderás diseños de nivel superior. Visita a los instructores dispersos por el mundo, completa misiones y derrota a los monstruos para conseguirlos.','Чем лучше развит этот навык, тем более сложные эскизы вы можете использовать. Эскизы можно найти у учителей, а также получить в качестве добычи или награды.',1768,'INV_Misc_Gem_01','Modify','Modifier','Umgestalten','Transformar','Изменить',1,64,10,''),(756,-4,9,0,'Blood Elf Racial','Raciale elfe de sang','Blutelfenvolk','Racial elfo de sangre','Расовый навык эльфов крови','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(758,-6,7,0,'Pet - Event - Remote Control','Familier - Evénement - Télécommande','Tier - Ereignis Ferngesteuert','Mascota: Evento - Control remoto','Питомец: управление','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(759,10,10,0,'Language: Draenei','Langue : draeneï','Sprache: Draenei','Idioma: draenei','Язык: дренейский','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(760,-4,9,0,'Draenei Racial','Raciale draeneï','Draeneivolk','Racial draenei','Расовый навык дренея','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(761,-6,7,0,'Pet - Felguard','Familier - gangregarde','Tier - Teufelswache','Mascota: guardia vil','Прислужник: страж Скверны','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(762,-5,9,0,'Riding','Monte','Reiten','Equitación','Верховая езда','Higher riding skill allows you to ride faster and more exotic beasts.','Un plus haut score dans la compétence monte vous permet de chevaucher plus vite et sur le dos de créatures plus exotiques.','Eine höhere Reitfertigkeit ermöglicht es Euch, auf schnelleren und ausgefalleneren Tieren zu reiten.','Una habilidad superior montando te permite montar bestias más rápidas y exóticas.','Чем лучше развит этот навык, тем выше скорость верховой езды и больше выбор ездовых животных.',255,'Ability_Hunter_BeastTaming','','','','','',0,0,0,''),(763,-6,7,0,'Pet - Dragonhawk','Familier - faucon-dragon','Tier - Drachenfalke','Mascota: dracohalcón','Питомец: дракондор','','','','','',1530,'Ability_Hunter_EagleEye','','','','','',0,0,0,''),(764,-6,7,0,'Pet - Nether Ray','Familier - raie du Néant','Tier - Netherrochen','Mascota: raya abisal','Питомец: скат Пустоты','','','','','',1577,'Ability_Hunter_Pet_Bat','','','','','',0,0,0,''),(765,-6,7,0,'Pet - Sporebat','Familier - sporoptère','Tier - Sporensegler','Mascota: esporiélago','Питомец: Спороскат','','','','','',2033,'INV_Mushroom_02','','','','','',0,0,0,''),(766,-6,7,0,'Pet - Warp Stalker','Familier - traqueur dimensionnel','Tier - Sphärenjäger','Mascota: acechador de distorsión','Питомец: астральная игуана','','','','','',1952,'Spell_Arcane_Arcane04','','','','','',0,0,0,''),(767,-6,7,0,'Pet - Ravager','Familier - ravageur','Tier - Felshetzer','Mascota: devastador','Питомец: опустошитель','','','','','',1585,'Ability_Hunter_Pet_Scorpid','','','','','',0,0,0,''),(768,-6,7,0,'Pet - Serpent','Familier - serpent','Tier - Schlange','Mascota: serpiente','Питомец: змей','','','','','',2167,'INV_Waepon_Bow_ZulGrub_D_01','','','','','',0,0,0,''),(769,7,7,22,'Internal','Interne','Intern','Interno','Внутренний','','','','','',1775,'Mail_GMIcon','','','','','',0,0,0,''),(770,7,7,0,'Blood','Sang','Blut','Sangre','Кровь','','','','','',2636,'Spell_Deathknight_BloodPresence','','','','','',0,0,0,''),(771,7,7,0,'Frost','Givre','Frost','Escarcha','Лед','','','','','',2632,'Spell_Deathknight_FrostPresence','','','','','',0,0,0,''),(772,7,7,0,'Unholy','Impie','Unheilig','Profano','Нечестивость','','','','','',2633,'Spell_Deathknight_UnholyPresence','','','','','',0,0,0,''),(773,11,11,0,'Inscription','Calligraphie','Inschriftenkunde','Inscripción','Начертание','Higher inscription skill allows you to learn more advanced inscriptions. Inscriptions are acquired from learned scribes throughout the world.','Une compétence de calligraphie plus élevée vous permet d\'apprendre des calligraphies plus difficiles. Les calligraphies s\'apprennent dans le monde entier auprès de maîtres scribes.','Eine höhere Inschriftenfertigkeit ermöglicht es Euch, fortgeschrittenere Inschriften zu erlernen. Inschriften könnt Ihr bei den gelehrten Schreibern überall in der Welt erwerben.','Con un nivel alto de habilidad en inscripción podrás aprender inscripciones más avanzadas. Las adquirirás aprendiendo pergaminos por el mundo.','Совершенствование навыка позволяет изучать более сложные способы начертания. Учителей начертания можно найти по всему миру.',3267,'INV_Inscription_Tradeskill01','Inscribe','Calligraphier','Beschriften','Inscribir','Начертать',1,4096,11,''),(775,-6,7,0,'Pet - Moth','Familier - phalène','Tier - Motte','Mascota: palomilla','Питомец: мотылек','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(776,7,7,0,'Runeforging','Runeforger','Runen schmieden','Forja de runas','Ковка рун','','','','','',2727,'Spell_DeathKnight_FrozenRuneWeapon','Engrave','Graver','Prägen','Grabar','Гравировать',0,0,0,''),(777,-5,7,0,'Mounts','Montures','Reittiere','Monturas','Средства передвижения','Your mounts.','Vos montures','Eure Reittiere.','Tus monturas.','Ваши средства передвижения',2224,'Ability_Hunter_CatlikeReflexes','','','','','',0,0,0,''),(778,-6,7,0,'Companions','Compagnons','Begleiter','Compañeros','Спутники','Your companions.','Vos compagnons','Eure Begleiter.','Tus compañeros.','Ваши спутники',0,'inv_misc_questionmark','','','','','',0,0,0,''),(780,-6,7,0,'Pet - Exotic Chimaera','Familier - chimère exotique','Tier - Exotische Schimäre','Mascota: quimera exótica','Питомец: редкая химера','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(781,-6,7,0,'Pet - Exotic Devlisaur','Familier - diablosaure exotique','Tier - Exotischer Teufelssaurier','Mascota: demosaurio exótico','Питомец: редкий дьявозавр','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(782,-6,7,0,'Pet - Ghoul','Familier - goule','Begleiter - Ghul','Mascota: necrófago','Питомец: вурдалак','','','','','',221,'Spell_Shadow_AnimateDead','','','','','',0,0,0,''),(783,-6,7,0,'Pet - Exotic Silithid','Familier - silithide exotique','Begleiter - Exotischer Silithid','Mascota: silítido exótico','Питомец: редкий силитид','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(784,-6,7,0,'Pet - Exotic Worm','Familier - ver exotique','Begleiter - Exotischer Wurm','Mascota: gusano exótico','Питомец: редкий червь','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(785,-6,7,0,'Pet - Wasp','Familier - guêpe','Begleiter - Wespe','Mascota: avispa','Питомец: оса','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(786,-6,7,0,'Pet - Exotic Rhino','Familier - rhinocéros exotique','Begleiter - Exotisches Rhinozeros','Mascota: rinoceronte exótico','Питомец: редкий люторог','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(787,-6,7,0,'Pet - Exotic Core Hound','Familier - chien du Magma exotique','Begleiter - Exotischer Kernhund','Mascota: can del Núcleo exótico','Питомец: экзотическая гончая Недр','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,''),(788,-6,7,0,'Pet - Exotic Spirit Beast','Familier - esprit de bête exotique','Begleiter - Exotische Geisterbestie','Mascota: bestia espíritu exótica','Питомец: экзотический зверек','','','','','',0,'inv_misc_questionmark','','','','','',0,0,0,'');
+/*!40000 ALTER TABLE `aowow_skillline` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2013-08-07 20:52:29
diff --git a/setup/tools/sql/skills.sql b/setup/tools/sql/skills.sql
new file mode 100644
index 00000000..2f581c0b
--- /dev/null
+++ b/setup/tools/sql/skills.sql
@@ -0,0 +1,64 @@
+/*
+ * Skills
+ */
+
+CREATE TABLE world.aowow_skillLine LIKE dbc.skillLine;
+INSERT world.aowow_skillLine SELECT * FROM dbc.skillLine;
+ALTER TABLE `aowow_skillline`
+ ADD COLUMN `typeCat` bigint(20) NOT NULL AFTER `Id`,
+ CHANGE COLUMN `nameEN` `name_loc0` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `skillCostId`,
+ CHANGE COLUMN `nameFR` `name_loc2` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc0`,
+ CHANGE COLUMN `nameDE` `name_loc3` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc2`,
+ CHANGE COLUMN `nameES` `name_loc6` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc3`,
+ CHANGE COLUMN `nameRU` `name_loc8` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc6`,
+ CHANGE COLUMN `descriptionEN` `description_loc0` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc8`,
+ CHANGE COLUMN `descriptionFR` `description_loc2` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `description_loc0`,
+ CHANGE COLUMN `descriptionDE` `description_loc3` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `description_loc2`,
+ CHANGE COLUMN `descriptionES` `description_loc6` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `description_loc3`,
+ CHANGE COLUMN `descriptionRU` `description_loc8` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `description_loc6`,
+ ADD COLUMN `iconString` varchar(40) NOT NULL AFTER `spellIconId`,
+ CHANGE COLUMN `verbEN` `verb_loc0` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `iconString`,
+ CHANGE COLUMN `verbFR` `verb_loc2` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `verb_loc0`,
+ CHANGE COLUMN `verbDE` `verb_loc3` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `verb_loc2`,
+ CHANGE COLUMN `verbES` `verb_loc6` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `verb_loc3`,
+ CHANGE COLUMN `verbRU` `verb_loc8` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `verb_loc6`,
+ ADD COLUMN `professionMask` bigint(20) NOT NULL AFTER `canLink`,
+ ADD COLUMN `recipeSubClass` bigint(20) NOT NULL AFTER `professionMask`,
+ ADD COLUMN `specializations` text NOT NULL COMMENT 'spcae-separated spellIds' AFTER `recipeSubClass`;
+
+-- manual data for professions
+UPDATE aowow_skillLine SET professionMask = 0 WHERE id = 393;
+UPDATE aowow_skillLine SET professionMask = 1, recipeSubClass = 6, specializations = '28677 28675 28672' WHERE id = 171;
+UPDATE aowow_skillLine SET professionMask = 2, recipeSubClass = 4, specializations = '9788 9787 17041 17040 17039' WHERE id = 164;
+UPDATE aowow_skillLine SET professionMask = 4, recipeSubClass = 5 WHERE id = 185;
+UPDATE aowow_skillLine SET professionMask = 8, recipeSubClass = 8 WHERE id = 333;
+UPDATE aowow_skillLine SET professionMask = 16, recipeSubClass = 3, specializations = '20219 20222' WHERE id = 202;
+UPDATE aowow_skillLine SET professionMask = 32, recipeSubClass = 7 WHERE id = 129;
+UPDATE aowow_skillLine SET professionMask = 64, recipeSubClass = 10 WHERE id = 755;
+UPDATE aowow_skillLine SET professionMask = 128, recipeSubClass = 1, specializations = '10656 10658 10660' WHERE id = 165;
+UPDATE aowow_skillLine SET professionMask = 256 WHERE id = 186;
+UPDATE aowow_skillLine SET professionMask = 512, recipeSubClass = 2, specializations = '26798 26801 26797' WHERE id = 197;
+UPDATE aowow_skillLine SET professionMask = 1024, recipeSubClass = 9 WHERE id = 356;
+UPDATE aowow_skillLine SET professionMask = 2048 WHERE id = 182;
+UPDATE aowow_skillLine SET professionMask = 4096, recipeSubClass = 11 WHERE id = 773;
+
+-- fixups
+UPDATE aowow_skillLine SET spellIconId = 736 WHERE id = 393; -- skinning has generic icon
+UPDATE aowow_skillLine SET spellIconId = 936 WHERE id = 633; -- lockpicking has generic icon
+UPDATE aowow_skillLine SET name_loc0 = 'Pet - Wasp' WHERE id = 785; -- the naming in general is fubar inconsistent
+UPDATE aowow_skillLine SET name_loc2 = 'Familier - diablosaure exotique' WHERE id = 781;
+UPDATE aowow_skillLine SET name_loc6 = 'Mascota: Evento - Control remoto', name_loc3 = 'Tier - Ereignis Ferngesteuert' WHERE id = 758;
+UPDATE aowow_skillLine SET name_loc8 = REPLACE(name_loc8, ' - ', ': ') WHERE categoryId = 7;
+UPDATE aowow_skillLine SET categoryId = 7 WHERE id IN (758, 788); -- spirit beast listed under Attributes; remote controled pet listed under bogus
+
+-- iconstrings
+UPDATE aowow_skillLine sl, dbc.spell s, dbc.skillLineAbility sla SET sl.spellIconId = s.spellIconId WHERE (s.effectId1 IN (25, 26, 40) OR s.effectId2 = 60) AND sla.spellId = s.id AND sl.id = sla.skillLineId;
+UPDATE aowow_skillLine sl, dbc.spellIcon si SET sl.iconString = SUBSTRING_INDEX(si.string, '\\', -1) WHERE sl.spellIconId = si.id;
+UPDATE aowow_skillLine SET iconString = 'inv_misc_questionmark' WHERE spellIconId = 0;
+
+
+-- categorization
+UPDATE aowow_skillLine SET typeCat = -5 WHERE id = 777 OR (categoryId = 9 AND id NOT IN (356, 129, 185, 142, 155));
+UPDATE aowow_skillLine SET typeCat = -4 WHERE categoryId = 9 AND name_loc0 LIKE '%racial%';
+UPDATE aowow_skillLine SET typeCat = -6 WHERE id = 778 OR (categoryId = 7 AND name_loc0 LIKE '%pet%');
+UPDATE aowow_skillLine SET typeCat = categoryId WHERE typeCat = 0;
diff --git a/template/bricks/globals/skills.tpl b/template/bricks/globals/skills.tpl
new file mode 100644
index 00000000..6785cb3f
--- /dev/null
+++ b/template/bricks/globals/skills.tpl
@@ -0,0 +1,9 @@
+var _ = g_skills;
+{strip}
+{foreach from=$data key=id item=item}
+ _[{$id}]={ldelim}
+ name_{$user.language}:'{$item.name|escape:"javascript"}',
+ icon:'{$item.icon|escape:"javascript"}'
+ {rdelim};
+{/foreach}
+{/strip}
diff --git a/template/bricks/listviews/skill.tpl b/template/bricks/listviews/skill.tpl
new file mode 100644
index 00000000..1abf92f1
--- /dev/null
+++ b/template/bricks/listviews/skill.tpl
@@ -0,0 +1,30 @@
+{strip}
+ new Listview({ldelim}
+ template:'skill',
+ {if !isset($params.id)}id:'skills',{/if}
+ {if !isset($params.name)}name:LANG.tab_skills,{/if}
+ {if !isset($params.parent)}parent:'listview-generic',{/if}
+ {foreach from=$params key=k item=v}
+ {if $v[0] == '$'}
+ {$k}:{$v|substr:1},
+ {else if $v}
+ {$k}:'{$v}',
+ {/if}
+ {/foreach}
+ data:[
+ {foreach name=i from=$data item=curr}
+ {ldelim}
+ category:{$curr.category},
+ categorybak:{$curr.categorybak},
+ id:{$curr.id},
+ name:'{$curr.name|escape:"javascript"}',
+ profession:{$curr.profession},
+ recipeSubclass:{$curr.recipeSubclass},
+ specializations:{$curr.specializations},
+ icon:'{$curr.icon|escape:"javascript"}'
+ {rdelim}
+ {if $smarty.foreach.i.last}{else},{/if}
+ {/foreach}
+ ]
+ {rdelim});
+{/strip}
diff --git a/template/js/global.js b/template/js/global.js
index b3daaa1b..540e2594 100644
--- a/template/js/global.js
+++ b/template/js/global.js
@@ -3582,7 +3582,7 @@ Listview.prototype = {
}
},
changePage: function() {
- this.validatePa$WH.ge();
+ this.validatePage();
this.refreshRows();
this.updateNav();
this.updatePound();
@@ -3594,22 +3594,22 @@ Listview.prototype = {
},
firstPage: function() {
this.rowOffset = 0;
- this.changePa$WH.ge();
+ this.changePage();
return false
},
previousPage: function() {
this.rowOffset -= this.nItemsPerPage;
- this.changePa$WH.ge();
+ this.changePage();
return false
},
nextPage: function() {
this.rowOffset += this.nItemsPerPage;
- this.changePa$WH.ge();
+ this.changePage();
return false
},
lastPage: function() {
this.rowOffset = 99999999;
- this.changePa$WH.ge();
+ this.changePage();
return false
},
addSort: function(a, c) {
@@ -3680,7 +3680,7 @@ Listview.prototype = {
var a = parseInt(b);
if (!isNaN(a)) {
this.rowOffset = a;
- this.validatePa$WH.ge();
+ this.validatePage();
if (this.poundable != 2) {
var d = [];
var f = b.match(/(\+|\-)[0-9]+/g);
@@ -3860,7 +3860,7 @@ Listview.prototype = {
}
this.updateTabName();
if (this.rowOffset >= this.nRowsVisible) {
- this.previousPa$WH.ge()
+ this.previousPage()
} else {
this.refreshRows();
this.updateNav()
@@ -8018,64 +8018,75 @@ Listview.templates = {
sort: [1],
searchable: 1,
filtrable: 1,
- columns: [{
- id: "name",
- name: LANG.name,
- type: "text",
- align: "left",
- value: "name",
- span: 2,
- compute: function(c, h, f) {
- var d = $WH.ce("td");
- d.style.width = "1px";
- d.style.padding = "0";
- d.style.borderRight = "none";
- $WH.ae(d, Icon.create(c.icon, 0, null, this.getItemLink(c)));
- $WH.ae(f, d);
- h.style.borderLeft = "none";
- var g = $WH.ce("div");
- var b = $WH.ce("a");
- b.style.fontFamily = "Verdana, sans-serif";
- b.href = this.getItemLink(c);
- $WH.ae(b, $WH.ct(c.name));
- if (c.expansion) {
- var e = $WH.ce("span");
- e.className = g_GetExpansionClassName(c.expansion);
- $WH.ae(e, b);
- $WH.ae(g, e)
- } else {
- $WH.ae(g, b)
- }
- $WH.ae(h, g)
- },
- getVisibleText: function(a) {
- var b = a.name + Listview.funcBox.getExpansionText(a);
- return b
- }
- },
- {
- id: "category",
- name: LANG.category,
- type: "text",
- width: "16%",
- compute: function(c, d) {
- if (c.category != 0) {
- d.className = "small q1";
- var b = $WH.ce("a");
- b.href = "?skills=" + c.category;
- $WH.ae(b, $WH.ct(g_skill_categories[c.category]));
- $WH.ae(d, b)
+
+ columns: [
+ {
+ id: 'name',
+ name: LANG.name,
+ type: 'text',
+ align: 'left',
+ value: 'name',
+ span: 2,
+ compute: function(skill, td, tr) {
+ var i = $WH.ce('td');
+ i.style.width = '1px';
+ i.style.padding = '0';
+ i.style.borderRight = 'none';
+
+ $WH.ae(i, Icon.create(skill.icon, 0, null, this.template.getItemLink(skill)));
+ $WH.ae(tr, i);
+ td.style.borderLeft = 'none';
+
+ var wrapper = $WH.ce('div');
+
+ var a = $WH.ce('a');
+ a.style.fontFamily = 'Verdana, sans-serif';
+ a.href = this.template.getItemLink(skill);
+ $WH.ae(a, $WH.ct(skill.name));
+
+ if (skill.expansion) {
+ var sp = $WH.ce('span');
+ sp.className = g_GetExpansionClassName(skill.expansion);
+ $WH.ae(sp, a);
+ $WH.ae(wrapper, sp);
+ }
+ else {
+ $WH.ae(wrapper, a);
+ }
+
+ $WH.ae(td, wrapper);
+ },
+ getVisibleText: function(skill) {
+ var buff = skill.name + Listview.funcBox.getExpansionText(skill);
+
+ return buff;
}
},
- getVisibleText: function(a) {
- return g_skill_categories[skill.category]
- },
- sortFunc: function(d, c, e) {
- return $WH.strcmp(g_skill_categories[d.category], g_skill_categories[c.category])
+ {
+ id: 'category',
+ name: LANG.category,
+ type: 'text',
+ width: '16%',
+ compute: function(skill, td) {
+ if (skill.category != 0) {
+ td.className = 'small q1';
+ var a = $WH.ce('a');
+ a.href = '?skills=' + skill.category;
+ $WH.ae(a, $WH.ct(g_skill_categories[skill.category]));
+ $WH.ae(td, a);
+ }
+ },
+ getVisibleText: function(skill) {
+ return g_skill_categories[skill.category];
+ },
+ sortFunc: function(a, b, col) {
+ return $WH.strcmp(g_skill_categories[a.category], g_skill_categories[b.category]);
+ }
}
- }],
- getItemLink: function(a) {
- return "?skill=" + a.id
+ ],
+
+ getItemLink: function(skill) {
+ return '?skill=' + skill.id;
}
},
@@ -12480,8 +12491,6 @@ var Menu = new function()
}
};
-
-
Menu.fixUrls(mn_achievements, '?achievements=');
Menu.fixUrls(mn_classes, '?class=');
Menu.fixUrls(mn_currencies, '?currencies=');
@@ -12498,8 +12507,6 @@ Menu.fixUrls(mn_spells, '?spells=');
Menu.fixUrls(mn_titles, '?titles=');
Menu.fixUrls(mn_zones, '?zones=');
-
-
$(document).ready(function() // Locale is only known later
{
// if(Locale.getId() == LOCALE_ENUS)
diff --git a/template/js/locale_dede.js b/template/js/locale_dede.js
index a359b5e8..5dc036b2 100644
--- a/template/js/locale_dede.js
+++ b/template/js/locale_dede.js
@@ -531,7 +531,8 @@ var mn_skills = [
[,"Sonstige"],
[8,"Rüstngssachverstand","?skills=8"],
[10,"Sprachen","?skills=10"],
- [6,"Waffenfertigkeiten","?skills=6"]
+ [6,"Waffenfertigkeiten","?skills=6"],
+ [7,"Klassenfertigkeiten","?skills=7"]
];
var mn_spells = [
[,"Charakter"],
@@ -1754,7 +1755,9 @@ var g_skill_categories = {
"-6": 'Haustiere',
"-5": 'Reittiere',
"-4": 'Völkerfertigkeiten',
+ 5: 'Attribute',
6: 'Waffenfertigkeiten',
+ 6: 'Klassenfertigkeiten',
8: 'Rüstungssachverstand',
9: 'Nebenberufe',
10: 'Sprachen',
diff --git a/template/js/locale_enus.js b/template/js/locale_enus.js
index ffb280d2..cc4be7a7 100644
--- a/template/js/locale_enus.js
+++ b/template/js/locale_enus.js
@@ -531,7 +531,8 @@ var mn_skills = [
[,"Other"],
[8,"Armor Proficiencies","?skills=8"],
[10,"Languages","?skills=10"],
- [6,"Weapon Skills","?skills=6"]
+ [6,"Weapon Skills","?skills=6"],
+ [7,"Class Skills","?skills=7"]
];
var mn_spells = [
[,"Character"],
@@ -1799,7 +1800,9 @@ var g_skill_categories = {
"-6": 'Companions',
"-5": 'Mounts',
"-4": 'Racial Traits',
+ 5: 'Attributes',
6: 'Weapon Skills',
+ 7: 'Class Skills',
8: 'Armor Proficiencies',
9: 'Secondary Skills',
10: 'Languages',
diff --git a/template/js/locale_eses.js b/template/js/locale_eses.js
index d685f8cc..059945dc 100644
--- a/template/js/locale_eses.js
+++ b/template/js/locale_eses.js
@@ -530,8 +530,9 @@ var mn_skills = [
[762,"Equitación","?skill=762",,{tinyIcon:"spell_nature_swiftness"}],
[,"Otros"],
[8,"Armaduras disponibles","?skills=8"],
- [10,"Lenguas","?skills=10"],
- [6,"Armas disponibles","?skills=6"]
+ [10,"Idiomas","?skills=10"],
+ [6,"Habilidades con armas","?skills=6"],
+ [7,"Habilidades de clase","?skills=6"]
];
var mn_spells = [
[,"Habilidades y Talentos"],
@@ -1754,10 +1755,12 @@ var g_skill_categories = {
"-6": 'Compañeros',
"-5": 'Monturas',
"-4": 'Habilidades de raza',
- 6: 'Armas disponibles',
+ 5: 'Atributos',
+ 6: 'Habilidades con armas',
+ 7: 'Habilidades de clase',
8: 'Armaduras disponibles',
9: 'Habilidades secundarias',
- 10: 'Lenguas',
+ 10: 'Idiomas',
11: 'Profesiones'
};
diff --git a/template/js/locale_frfr.js b/template/js/locale_frfr.js
index 0755b888..6b4c2f82 100644
--- a/template/js/locale_frfr.js
+++ b/template/js/locale_frfr.js
@@ -531,7 +531,8 @@ var mn_skills = [
[,"Autre"],
[8,"Armures utilisables","?skills=8"],
[10,"Langues","?skills=10"],
- [6,"Compétences d'armes","?skills=6"]
+ [6,"Compétences d'armes","?skills=6"],
+ [7,"Compétences de classe","?skills=7"]
];
var mn_spells = [
[,"Personnage"],
@@ -1741,7 +1742,9 @@ var g_skill_categories = {
"-6": 'Compagnons',
"-5": 'Montures',
"-4": 'Traits raciaux',
+ 5: 'Caractéristiques',
6: 'Compétences d\'armes',
+ 7: 'Compétences de classe',
8: 'Armures utilisables',
9: 'Compétences secondaires',
10: 'Langues',
diff --git a/template/js/locale_ruru.js b/template/js/locale_ruru.js
index 302c51d5..d553c259 100644
--- a/template/js/locale_ruru.js
+++ b/template/js/locale_ruru.js
@@ -531,7 +531,8 @@ var mn_skills = [
[,"Другое"],
[8,"Доспехи","?skills=8"],
[10,"Языки","?skills=10"],
- [6,"Оружейные навыки","?skills=6"]
+ [6,"Оружейные навыки","?skills=6"],
+ [7,"Классовые навыки","?skills=7"]
];
var mn_spells = [
[,"Персонаж"],
@@ -1741,7 +1742,9 @@ var g_skill_categories = {
"-6": 'Спутники',
"-5": 'Транспорт',
"-4": 'Классовые навыки',
+ 5: 'Характеристики',
6: 'Оружейные навыки',
+ 7: 'Классовые навыки',
8: 'Доспехи',
9: 'Вторичные навыки',
10: 'Языки',