mirror of
https://github.com/Sarjuuk/aowow.git
synced 2025-11-29 15:58:16 +08:00
Spells: initial implementation of DetailPage, ListPage, Filter, Search
Spells: - improved tooltips to use a less table-dependant layout - defined the missing fulltext-variables - buff or tooltip are only reandered for the current spell - reduced redundancy in buff / tooltip-code some ToDos: - no tabs on the detail-page implemented yet (used-by, affected-by, ect) - localization for frFR, esES and ruRu is .. lacking and will probably be commited with the point above) - a full search runs for almost 2sec and i haven't implemented every type yet >.< .. spells are too greedy - in some cases $d must supply a time unit, in most cases it does not .. why..? - sources can be improved .. anything related to items is still missing
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
<?php
|
||||
|
||||
if(!defined('AOWOW_REVISION'))
|
||||
die("illegal access");
|
||||
|
||||
abstract class Filter
|
||||
{
|
||||
private static $pattern = "/[^\p{L}0-9\s_\-\'\?\*]/ui";// delete any char not in unicode, number, hyphen, single quote or common wildcard
|
||||
private static $pattern = "/[^\p{L}0-9\s_\-\'\?\*]/ui";// delete any char not in unicode, number, space, underscore, hyphen, single quote or common wildcard
|
||||
private static $wildcards = ['*' => '%', '?' => '_'];
|
||||
private static $criteria = ['cr', 'crs', 'crv']; // [cr]iterium, [cr].[s]ign, [cr].[v]alue
|
||||
|
||||
@@ -230,7 +231,6 @@ abstract class Filter
|
||||
header('Location: http://'.$_SERVER['SERVER_NAME'].str_replace('index.php', '', $_SERVER['PHP_SELF']).'?'.$_SERVER['QUERY_STRING'].'='.$get);
|
||||
}
|
||||
|
||||
|
||||
// TODO: wrong wrong wrong!!
|
||||
// 1) filter-Ids are different for each type; 2) (NOT) IN - subqueries will eat the mysql-server alive!
|
||||
protected function createSQLForCommunity($cr)
|
||||
@@ -325,6 +325,129 @@ class AchievementListFilter extends Filter
|
||||
}
|
||||
|
||||
|
||||
class SpellListFilter extends Filter
|
||||
{
|
||||
// sources in filter and general use different indizes
|
||||
private static $fiSource = array(
|
||||
1 => -2, // Any
|
||||
2 => -1, // None
|
||||
3 => 1, // Crafted
|
||||
4 => 2, // Drop
|
||||
6 => 4, // Quest
|
||||
7 => 5, // Vendor
|
||||
8 => 6, // Trainer
|
||||
9 => 7, // Discovery
|
||||
10 => 9 // Talent
|
||||
);
|
||||
|
||||
protected function createSQLForCriterium($cr)
|
||||
{
|
||||
if ($r = $this->createSQLForCommunity($cr))
|
||||
return $r;
|
||||
|
||||
switch ($cr[0])
|
||||
{
|
||||
case 1: // costAbs [op] [int]
|
||||
return 's.powerCost '.$this->int2Op($cr[1]).' IF(s.powerType IN (1, 6), 10 * '.intVal($cr[2]).', '.intVal($cr[2]).')';
|
||||
case 2: // costPct [op] [int]
|
||||
return 's.powerCostPercent '.$this->int2Op($cr[1]).' '.intVal($cr[2]);
|
||||
case 3: // requires FocusGO [y|n]
|
||||
return $this->int2Bool($cr[1]) ? 's.spellFocusObject > 0' : 's.spellfocus = 0';
|
||||
case 4: // trainingcost [op] [int]
|
||||
return 's.trainingcost '.$this->int2Op($cr[1]).' '.intVal($cr[2]);
|
||||
case 5: // Profession Specialitation [y|n]
|
||||
return 's.reqSpellId '.($this->int2Bool($cr[1]) ? ' > ' : ' = ').' 0';
|
||||
case 9: // Source [int]
|
||||
if ($foo = self::$fiSource[$cr[1]])
|
||||
{
|
||||
if ($foo > 0) // specific
|
||||
return 's.source LIKE "%'.$foo.':%"';
|
||||
else if ($foo == -2) // any
|
||||
return 's.source <> ""';
|
||||
else if ($foo == -1) // none
|
||||
return 's.source = ""';
|
||||
}
|
||||
|
||||
return '1';
|
||||
case 10: // First Rank [y|n]
|
||||
return $this->int2Bool($cr[1]) ? 's.cuFlags & '.SPELL_CU_FIRST_RANK : '(s.cuFlags & '.SPELL_CU_FIRST_RANK.') = 0' ;
|
||||
case 12: // Last Rank [y|n]
|
||||
return $this->int2Bool($cr[1]) ? 's.cuFlags & '.SPELL_CU_LAST_RANK : '(s.cuFlags & '.SPELL_CU_LAST_RANK.') = 0' ;
|
||||
case 13: // Rank# [op] [int]
|
||||
return 's.rankId '.$this->int2Op($cr[1]).' '.intVal($cr[2]);
|
||||
case 14: // spellId [op] [int]
|
||||
return 's.id '.$this->int2Op($cr[1]).' '.intVal($cr[2]);
|
||||
case 15: // iconString [string]
|
||||
return 's.iconString LIKE "%'.Util::sqlEscape($cr[2]).'%"';
|
||||
case 19: // scales /W level [y|n] 0x80000 = SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION
|
||||
return $this->int2Bool($cr[1]) ? 's.attributes0 & 0x80000' : '(s.attributes0 & 0x80000) = 0';
|
||||
case 20: // has Reagents [y|n]
|
||||
return $this->int2Bool($cr[1]) ? 's.reagent1 > 0 OR s.reagent2 > 0 OR s.reagent3 > 0 OR s.reagent4 > 0 OR s.reagent5 > 0 OR s.reagent6 > 0 OR s.reagent7 > 0 OR s.reagent8 > 0' : 's.reagents1 = 0 AND s.reagents2 = 0 AND s.reagents3 = 0 AND s.reagents4 = 0 AND s.reagents5 = 0 AND s.reagents6 = 0 AND s.reagents7 = 0 AND s.reagents8 = 0';
|
||||
case 25: // rewards skill points [y|n]
|
||||
return $this->int2Bool($cr[1]) ? 's.skillLevelYellow > 1' : 's.skillLevelYellow <= 1';
|
||||
default:
|
||||
return '1';
|
||||
}
|
||||
}
|
||||
|
||||
protected function createSQLForValues($vl)
|
||||
{
|
||||
$parts = [];
|
||||
|
||||
//string (extended)
|
||||
if (isset($vl['na']))
|
||||
{
|
||||
if (isset($vl['ex']) && $vl['ex'] == 'on')
|
||||
$parts[] = '(s.name_loc'.User::$localeId.' LIKE "%'.Util::sqlEscape($vl['na']).'%" OR buff_loc'.User::$localeId.' LIKE "%'.Util::sqlEscape($vl['na']).'%" OR description_loc'.User::$localeId.' LIKE "%'.Util::sqlEscape($vl['na']).'%")';
|
||||
else
|
||||
$parts[] = 's.name_loc'.User::$localeId.' LIKE "%'.Util::sqlEscape($vl['na']).'%"';
|
||||
}
|
||||
|
||||
// spellLevel min
|
||||
if (isset($vl['minle']))
|
||||
$parts[] = 's.spellLevel >= '.intVal($vl['minle']);
|
||||
|
||||
// spellLevel max
|
||||
if (isset($vl['maxle']))
|
||||
$parts[] = 's.spellLevel <= '.intVal($vl['maxle']);
|
||||
|
||||
// skillLevel min
|
||||
if (isset($vl['minrs']))
|
||||
$parts[] = 's.learnedAt >= '.intVal($vl['minrs']);
|
||||
|
||||
// skillLevel max
|
||||
if (isset($vl['maxrs']))
|
||||
$parts[] = 's.learnedAt <= '.intVal($vl['maxrs']);
|
||||
|
||||
// race
|
||||
if (isset($vl['ra']))
|
||||
$parts[] = 's.reqRaceMask & '.$this->list2Mask($vl['ra']);
|
||||
|
||||
// class [list]
|
||||
if (isset($vl['cl']))
|
||||
$parts[] = 's.reqClassMask & '.$this->list2Mask($vl['cl']);
|
||||
|
||||
// school [list]
|
||||
if (isset($vl['sc']))
|
||||
$parts[] = 's.schoolMask & '.$this->list2Mask($vl['sc'], true);
|
||||
|
||||
// glyph type [list] wonky, admittedly, but consult SPELL_CU_* in defines and it makes sense
|
||||
if (isset($vl['gl']))
|
||||
$parts[] = 's.cuFlags & '.($this->list2Mask($vl['gl']) << 6);
|
||||
|
||||
// dispel type
|
||||
if (isset($vl['dt']))
|
||||
$parts[] = 's.dispelType = '.intVal($vl['dt']);
|
||||
|
||||
// mechanic
|
||||
if (isset($vl['me']))
|
||||
$parts[] = 's.mechanic = '.intVal($vl['me']).' OR s.effect1Mechanic = '.intVal($vl['me']).' OR s.effect2Mechanic = '.intVal($vl['me']).' OR s.effect3Mechanic = '.intVal($vl['me']);
|
||||
|
||||
return $parts;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// missing filter: "Available to Players"
|
||||
class ItemsetListFilter extends Filter
|
||||
{
|
||||
@@ -394,7 +517,7 @@ class ItemsetListFilter extends Filter
|
||||
|
||||
// class
|
||||
if (isset($vl['cl']))
|
||||
$parts[] = 'classMask & '.$this->list2Mask($vl['cl'] - 1);
|
||||
$parts[] = 'classMask & '.$this->list2Mask($vl['cl']);
|
||||
|
||||
// tag
|
||||
if (isset($vl['ta']))
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -156,6 +156,20 @@ define('SPELLFAMILY_POTION', 13);
|
||||
define('SPELLFAMILY_DEATHKNIGHT', 15);
|
||||
define('SPELLFAMILY_PET', 17);
|
||||
|
||||
// Spell Custom
|
||||
define('SPELL_CU_TALENT', 0x0001); // passive talent
|
||||
define('SPELL_CU_TALENTSPELL', 0x0002); // ability taught by talent
|
||||
define('SPELL_CU_TRIGGERED', 0x0004); // triggered by another spell
|
||||
define('SPELL_CU_PET_TALENT_TYPE0', 0x0008); // Ferocity
|
||||
define('SPELL_CU_PET_TALENT_TYPE1', 0x0010); // Tenacity
|
||||
define('SPELL_CU_PET_TALENT_TYPE2', 0x0020); // Cunning
|
||||
define('SPELL_CU_GLYPH_MAJOR', 0x0040);
|
||||
define('SPELL_CU_GLYPH_MINOR', 0x0080);
|
||||
define('SPELL_CU_QUALITY_MASK', 0x0F00); // set if spell creates an item: (7 - Quality) << 8
|
||||
define('SPELL_CU_EXCLUDE_CATEGORY_SEARCH', 0x1000); // only display, when searching for spells in general (!cat || cat = 0)
|
||||
define('SPELL_CU_FIRST_RANK', 0x2000); // used by filter
|
||||
define('SPELL_CU_LAST_RANK', 0x4000);
|
||||
|
||||
// Gender
|
||||
define('GENDER_MALE', 0);
|
||||
define('GENDER_FEMALE', 1);
|
||||
|
||||
@@ -328,6 +328,8 @@ class Lang
|
||||
public static $title;
|
||||
public static $zone;
|
||||
|
||||
public static $colon;
|
||||
|
||||
public static function load($loc)
|
||||
{
|
||||
if (@(require 'localization/locale_'.$loc.'.php') !== 1)
|
||||
@@ -416,7 +418,6 @@ class Lang
|
||||
public static function getMagicSchools($schoolMask)
|
||||
{
|
||||
$schoolMask &= SPELL_ALL_SCHOOLS; // clamp to available schools..
|
||||
|
||||
$tmp = [];
|
||||
$i = 0;
|
||||
|
||||
@@ -675,6 +676,27 @@ class Util
|
||||
10 => [ 65, 66, 67, 210, 394, 495, 3537, 3711, 4024, 4197, 4395]
|
||||
);
|
||||
|
||||
/* why:
|
||||
Because petSkills (and ranged weapon skills) are the only ones with more than two skillLines attached. Because Left Joining ?_spell with ?_skillLineAbility causes more trouble than it has uses.
|
||||
Because this is more or less the only reaonable way to fit all that information into one database field, so..
|
||||
.. the indizes of this array are bits of skillLine2OrMask in ?_spell if skillLineId1 is negative
|
||||
*/
|
||||
public static $skillLineMask = array( // idx => [familyId, skillLineId]
|
||||
-1 => array( // Pets (Hunter)
|
||||
[ 1, 208], [ 2, 209], [ 3, 203], [ 4, 210], [ 5, 211], [ 6, 212], [ 7, 213], // Wolf, Cat, Spider, Bear, Boar, Crocolisk, Carrion Bird
|
||||
[ 8, 214], [ 9, 215], [11, 217], [12, 218], [20, 236], [21, 251], [24, 653], // Crab, Gorilla, Raptor, Tallstrider, Scorpid, Turtle, Bat
|
||||
[25, 654], [26, 655], [27, 656], [30, 763], [31, 767], [32, 766], [33, 765], // Hyena, Bird of Prey, Wind Serpent, Dragonhawk, Ravager, Warp Stalker, Sporebat
|
||||
[34, 764], [35, 768], [37, 775], [38, 780], [39, 781], [41, 783], [42, 784], // Nether Ray, Serpent, Moth, Chimaera, Devilsaur, Silithid, Worm
|
||||
[43, 786], [44, 785], [45, 787], [46, 788] // Rhino, Wasp, Core Hound, Spirit Beast
|
||||
),
|
||||
-2 => array( // Pets (Warlock)
|
||||
[15, 189], [16, 204], [17, 205], [19, 207], [23, 188], [29, 761] // Felhunter, Voidwalker, Succubus, Doomguard, Imp, Felguard
|
||||
),
|
||||
-3 => array( // Ranged Weapons
|
||||
[null, 45], [null, 46], [null, 226] // Bow, Gun, Crossbow
|
||||
)
|
||||
);
|
||||
|
||||
public static $sockets = array( // jsStyle Strings
|
||||
'meta', 'red', 'yellow', 'blue'
|
||||
);
|
||||
|
||||
@@ -3,6 +3,11 @@
|
||||
if (!defined('AOWOW_REVISION'))
|
||||
die('illegal access');
|
||||
|
||||
/*
|
||||
some translations have yet to be taken from or improved by the use of:
|
||||
<path>\World of Warcraft\Data\deDE\patch-deDE-3.MPQ\Interface\FrameXML\GlobalStrings.lua
|
||||
like: ITEM_MOD_*, POWER_TYPE_*, ITEM_BIND_*, PVP_RANK_*
|
||||
*/
|
||||
|
||||
$lang = array(
|
||||
// page variables
|
||||
@@ -43,7 +48,9 @@ $lang = array(
|
||||
'minutesAbbr' => "Min.",
|
||||
'secondsAbbr' => "Sek.",
|
||||
'millisecsAbbr' => "Ms",
|
||||
'name' => "Name",
|
||||
|
||||
'n_a' => "n. v.",
|
||||
|
||||
// err_title = Fehler in AoWoW
|
||||
// un_err = Gib bitte deinen Benutzernamen ein
|
||||
// pwd_err = Gib bitte dein Passwort ein
|
||||
@@ -63,6 +70,7 @@ $lang = array(
|
||||
'refineSearch' => "Tipp: Präzisiere deine Suche mit Durchsuchen einer <a href=\"javascript:;\" id=\"fi_subcat\">Unterkategorie</a>.",
|
||||
|
||||
// infobox
|
||||
'name' => "Name",
|
||||
'disabled' => "Deaktiviert",
|
||||
'disabledHint' => "Kann nicht erhalten oder abgeschlossen werden.",
|
||||
'serverside' => "Serverseitig",
|
||||
@@ -79,6 +87,11 @@ $lang = array(
|
||||
'classes' => "Klassen",
|
||||
'currency' => "Währung",
|
||||
'currencies' => "Währungen",
|
||||
'difficulty' => "Modus",
|
||||
'dispelType' => "Bannart",
|
||||
'duration' => "Dauer",
|
||||
'glyphType' => "Glyphenart",
|
||||
'race' => "Volk",
|
||||
'races' => "Völker",
|
||||
'title' => "Titel",
|
||||
'titles' => "Titel",
|
||||
@@ -88,27 +101,56 @@ $lang = array(
|
||||
'cooldown' => "%s Abklingzeit",
|
||||
'itemset' => "Ausrüstungsset",
|
||||
'itemsets' => "Ausrüstungssets",
|
||||
'mechanic' => "Auswirkung",
|
||||
'mechAbbr' => "Ausw.",
|
||||
'pet' => "Begleiter",
|
||||
'pets' => "Begleiter",
|
||||
'requires' => "Benötigt",
|
||||
'requires' => "Benötigt %s",
|
||||
'requires2' => "Benötigt",
|
||||
'reqLevel' => "Benötigt Stufe %s",
|
||||
'reqLevelHlm' => "Benötigt Stufe %s",
|
||||
'reqSkillLevel' => "Benötigte Fertigkeitsstufe",
|
||||
'level' => "Stufe",
|
||||
'school' => "Magieart",
|
||||
'spell' => "Zauber",
|
||||
'spells' => "Zauber",
|
||||
'valueDelim' => " - ", // " bis "
|
||||
'stats' => array("Stärke", "Beweglichkeit", "Ausdauer", "Intelligenz", "Willenskraft"),
|
||||
'languages' => array(
|
||||
1 => "Orcisch", 2 => "Darnassisch", 3 => "Taurisch", 6 => "Zwergisch", 7 => "Gemeinsprache", 8 => "Dämonisch", 9 => "Titanisch", 10 => "Thalassisch",
|
||||
11 => "Drachisch", 12 => "Kalimagisch", 13 => "Gnomisch", 14 => "Trollisch", 33 => "Gossensprache", 35 => "Draeneiisch", 36 => "Zombie", 37 => "Gnomenbinär", 38 => "Goblinbinär"
|
||||
),
|
||||
'gl' => array(null, "Erhebliche", "Geringe"),
|
||||
'si' => array(-2 => "Nur für Horde", -1 => "Nur für Allianz", null, "Allianz", "Horde", "Beide"),
|
||||
'resistances' => array(null, 'Heiligwiderstand', 'Feuerwiderstand', 'Naturwiderstand', 'Frostwiderstand', 'Schattenwiderstand', 'Arkanwiderstand'),
|
||||
'sc' => array("Körperlich", "Heilig", "Feuer", "Natur", "Frost", "Schatten", "Arkan"),
|
||||
'di' => array(null, "Magie", "Fluch", "Krankheit", "Gift", "Verstohlenheit", "Unsichtbarkeit", null, null, "Wut"),
|
||||
'dt' => array(null, "Magie", "Fluch", "Krankheit", "Gift", "Verstohlenheit", "Unsichtbarkeit", null, null, "Wut"),
|
||||
'cl' => array(null, "Krieger", "Paladin", "Jäger", "Schurke", "Priester", "Todesritter", "Schamane", "Magier", "Hexenmeister", null, "Druide"),
|
||||
'ra' => array(-2 => "Horde", -1 => "Allianz", "Beide", "Mensch", "Orc", "Zwerg", "Nachtelf", "Untoter", "Taure", "Gnom", "Troll", null, "Blutelf", "Draenei"),
|
||||
'rep' => array("Hasserfüllt", "Feindselig", "Unfreundlich", "Neutral", "Freundlich", "Wohlwollend", "Respektvoll", "Ehrfürchtig"),
|
||||
'st' => array(
|
||||
null, "Katzengestalt", "Baum des Lebens", "Reisegestalt", "Wassergestalt",
|
||||
"Bärengestalt", null, null, "Terrorbärengestalt", null,
|
||||
null, null, null, "Schattentanz", null,
|
||||
null, "Geisterwolf", "Kampfhaltung", "Verteidigungshaltung", "Berserkerhaltung",
|
||||
null, null, "Metamorphosis", null, null,
|
||||
null, null, "Schnelle Fluggestalt", "Schattengestalt", "Fluggestalt",
|
||||
"Verstohlenheit", "Mondkingestalt", "Geist der Erlösung"
|
||||
null, "Katzengestalt", "Baum des Lebens", "Reisegestalt", "Wassergestalt",
|
||||
"Bärengestalt", null, null, "Terrorbärengestalt", null,
|
||||
null, null, null, "Schattentanz", null,
|
||||
null, "Geisterwolf", "Kampfhaltung", "Verteidigungshaltung", "Berserkerhaltung",
|
||||
null, null, "Metamorphosis", null, null,
|
||||
null, null, "Schnelle Fluggestalt", "Schattengestalt", "Fluggestalt",
|
||||
"Verstohlenheit", "Mondkingestalt", "Geist der Erlösung"
|
||||
),
|
||||
'me' => array(
|
||||
null, "Bezaubert", "Desorientiert", "Entwaffnet", "Abgelenkt", "Flüchtend", "Ergriffen", "Unbeweglich",
|
||||
"Befriedet", "Schweigend", "Schlafend", "Verlangsamt", "Betäubt", "Eingefroren", "Handlungsunfähig", "Blutend",
|
||||
"Heilung", "Verwandelt", "Verbannt", "Abgeschirmt", "Gefesselt", "Reitend", "Verführt", "Vertrieben",
|
||||
"Entsetzt", "Unverwundbar", "Unterbrochen", "Benommen", "Entdeckung", "Unverwundbar", "Kopfnuss", "Wütend"
|
||||
),
|
||||
'ct' => array(
|
||||
null, "Wildtier", "Drachkin", "Dämon", "Elementar",
|
||||
"Riese", "Untoter", "Humanoid", "Tier", "Mechanisch",
|
||||
"Nicht kategorisiert", "Totem", "Haustier", "Gas Wolke"
|
||||
),
|
||||
'professions' => array(
|
||||
171 => "Alchemie", 164 => "Schmiedekunst", 333 => "Verzauberkunst", 202 => "Ingenieurskunst", 773 => "Inschriftenkunde", 755 => "Juwelenschleifen",
|
||||
165 => "Lederverarbeitung", 186 => "Bergbau", 197 => "Schneiderei", 185 => "Kochkunst", 129 => "Erste Hilfe", 356 => "Angeln"
|
||||
),
|
||||
'pvpRank' => array(
|
||||
null, "Gefreiter / Späher", "Fußknecht / Grunzer",
|
||||
@@ -242,6 +284,26 @@ $lang = array(
|
||||
)
|
||||
),
|
||||
'spell' => array(
|
||||
'_spellDetails' => "Zauberdetails",
|
||||
'_cost' => "Kosten",
|
||||
'_range' => "Reichweite",
|
||||
'_castTime' => "Zauberzeit",
|
||||
'_cooldown' => "Abklingzeit",
|
||||
'_distUnit' => "Meter",
|
||||
'_forms' => "Gestalten",
|
||||
'_aura' => "Aura",
|
||||
'_effect' => "Effekt",
|
||||
'_none' => "Nichts",
|
||||
'_gcd' => "GCD",
|
||||
'_globCD' => "Globale Abklingzeit",
|
||||
'_gcdCategory' => "GCD-Kategorie",
|
||||
'_value' => "Wert",
|
||||
'_radius' => "Radius",
|
||||
'_interval' => "Interval",
|
||||
'_inSlot' => "im Platz",
|
||||
|
||||
'starter' => "Basiszauber",
|
||||
'trainingCost' => "Trainingskosten",
|
||||
'remaining' => "Noch %s",
|
||||
'untilCanceled' => "bis Abbruch",
|
||||
'castIn' => "Wirken in %s Sek.",
|
||||
@@ -250,16 +312,81 @@ $lang = array(
|
||||
'channeled' => "Kanalisiert",
|
||||
'range' => "%s Meter Reichweite",
|
||||
'meleeRange' => "Nahkampfreichweite",
|
||||
'unlimRange' => "Unbegrenzte Reichweite",
|
||||
'reagents' => "Reagenzien",
|
||||
'tools' => "Extras",
|
||||
'home' => "%lt;Gasthaus>",
|
||||
'pctCostOf' => "vom Grund%s",
|
||||
'costPerSec' => ", plus %s pro Sekunde",
|
||||
'costPerLevel' => ", plus %s pro Stufe",
|
||||
'powerRunes' => ["Frost", "Unheilig", "Blut", "Tod"],
|
||||
'powerTypes' => array(
|
||||
-2 => "Gesundheit", -1 => null, "Mana", "Wut", "Fokus", "Energie", "Zufriedenheit", "Runen", "Runenmacht",
|
||||
'AMMOSLOT' => "Munnition", 'STEAM' => "Dampfdruck", 'WRATH' => "Zorn", 'PYRITE' => "Pyrit",
|
||||
'AMMOSLOT' => "Munition", 'STEAM' => "Dampfdruck", 'WRATH' => "Zorn", 'PYRITE' => "Pyrit",
|
||||
'HEAT' => "Hitze", 'OOZE' => "Schlamm", 'BLOOD_POWER' => "Blutmacht"
|
||||
),
|
||||
'relItems' => array (
|
||||
'base' => "<small>%s im Zusammenhang mit <b>%s</b> anzeigen</small>",
|
||||
'link' => " oder ",
|
||||
'recipes' => "<a href=\"?items=9.%s\">Rezeptgegenstände</a>",
|
||||
'crafted' => "<a href=\"?items&filter=cr=86;crs=%s\">Hergestellte Gegenstände</a>"
|
||||
),
|
||||
'cat' => array(
|
||||
7 => "Klassenfertigkeiten",
|
||||
-13 => "Glyphen",
|
||||
-11 => array("Sachverstand", 8 => "Rüstung", 6 => "Waffen", 10 => "Sprachen"),
|
||||
-4 => "Völkerfertigkeiten",
|
||||
-2 => "Talente",
|
||||
-6 => "Haustiere",
|
||||
-5 => "Reittiere",
|
||||
-3 => array(
|
||||
"Begleiterfertigkeiten", 782 => "Ghul", 270 => "Allgemein", 213 => "Aasvogel", 210 => "Bär", 763 => "Drachenfalke", 211 => "Eber",
|
||||
767 => "Felshetzer", 653 => "Fledermaus", 788 => "Geisterbestie", 215 => "Gorilla", 654 => "Hyäne", 209 => "Katze", 787 => "Kernhund",
|
||||
214 => "Krebs", 212 => "Krokilisk", 775 => "Motte", 764 => "Netherrochen", 217 => "Raptor", 655 => "Raubvogel", 786 => "Rhinozeros",
|
||||
251 => "Schildkröte", 780 => "Schimäre", 768 => "Schlange", 783 => "Silithid", 236 => "Skorpid", 766 => "Sphärenjäger", 203 => "Spinne",
|
||||
765 => "Sporensegler", 781 => "Teufelssaurier", 218 => "Weitschreiter", 785 => "Wespe", 656 => "Windnatter", 208 => "Wolf", 784 => "Wurm",
|
||||
204 => "Leerwandler", 205 => "Sukkubus", 189 => "Teufelsjäger", 761 => "Teufelswache", 188 => "Wichtel",
|
||||
),
|
||||
-7 => array("Begleitertalente", 410 => "Gerissenheit", 411 => "Wildheit", 409 => "Hartnäckigkeit"),
|
||||
11 => array(
|
||||
"Berufe",
|
||||
171 => "Alchemie",
|
||||
164 => array("Schmiedekunst", 9788 => "Rüstungsschmied", 9787 => "Waffenschmied", 17041 => "Axtschmiedemeister", 17040 => "Hammerschmiedemeister", 17039 => "Schwertschmiedemeister"),
|
||||
333 => "Verzauberkunst",
|
||||
202 => array("Ingenieurskunst", 20219 => "Gnomeningenieurskunst", 20222 => "Gobliningenieurskunst"),
|
||||
182 => "Kräuterkunde",
|
||||
773 => "Inschriftenkunde",
|
||||
755 => "Juwelenschleifen",
|
||||
165 => array("Lederverarbeitung", 10656 => "Drachenschuppenlederverarbeitung", 10658 => "Elementarlederverarbeitung", 10660 => "Stammeslederverarbeitung"),
|
||||
186 => "Bergbau",
|
||||
393 => "Kürschnerei",
|
||||
197 => array("Schneiderei", 26798 => "Mondstoffschneiderei", 26801 => "Schattenstoffschneiderei", 26797 => "Zauberfeuerschneiderei"),
|
||||
),
|
||||
9 => array("Nebenberufe", 185 => "Kochkunst", 129 => "Erste Hilfe", 356 => "Angeln", 762 => "Reiten"),
|
||||
-8 => "NPC-Fähigkeiten",
|
||||
-9 => "GM-Fähigkeiten",
|
||||
0 => "Nicht kategorisiert"
|
||||
),
|
||||
'armorSubClass' => array(
|
||||
"Sonstiges", "Stoffrüstung", "Lederrüstung", "Schwere Rüstung", "Plattenrüstung",
|
||||
null, "Schilde", "Buchbände", "Götzen", "Totems",
|
||||
"Siegel"
|
||||
),
|
||||
'weaponSubClass' => array(
|
||||
"Einhandäxte", "Zweihandäxte", "Bögen", "Schusswaffen", "Einhandstreitkolben",
|
||||
"Zweihandstreitkolben", "Stangenwaffen", "Einhandschwerter", "Zweihandschwerter", null,
|
||||
"Stäbe", null, null, "Faustwaffen", "Diverse",
|
||||
"Dolche", "Wurfwaffe", null, "Armbrüste", "Zauberstäbe",
|
||||
"Angelruten"
|
||||
),
|
||||
'subClassMasks' => array(
|
||||
0x02A5F3 => 'Nahkampfwaffe', 0x0060 => 'Schild', 0x04000C => 'Distanzwaffe', 0xA091 => 'Einhandnahkampfwaffe'
|
||||
),
|
||||
'traitShort' => array(
|
||||
'atkpwr' => "Angr", 'rgdatkpwr' => "DAngr", 'splpwr' => "ZMacht",
|
||||
'arcsplpwr' => "ArkM", 'firsplpwr' => "FeuM", 'frosplpwr' => "FroM",
|
||||
'holsplpwr' => "HeiM", 'natsplpwr' => "NatM", 'shasplpwr' => "SchM",
|
||||
'splheal' => "Heil"
|
||||
)
|
||||
),
|
||||
'item' => array(
|
||||
@@ -319,7 +446,7 @@ $lang = array(
|
||||
"Brust", "Waffenhand", "Schildhand", "In der Schildhand geführt", "Projektil",
|
||||
"Wurfwaffe", "Distanzwaffe", "Köcher", "Relikt"
|
||||
),
|
||||
'armorSubclass' => array(
|
||||
'armorSubClass' => array(
|
||||
"Sonstiges", "Stoff", "Leder", "Schwere Rüstung", "Platte",
|
||||
null, "Schild", "Buchband", "Götze", "Totem",
|
||||
"Sigel"
|
||||
@@ -372,7 +499,7 @@ $lang = array(
|
||||
"Erhöht Waffenkundewertung um %d.",
|
||||
"Erhöht Angriffskraft um %d.",
|
||||
"Erhöht Distanzangriffskraft um %d.",
|
||||
"Erhöht die Angriffskraft in Katzen-, Bären- oder Mondkingestalt um %d.",
|
||||
"Erhöht die Angriffskraft in Katzen-, Bären-, Terrorbären- und Mondkingestalt um %d.",
|
||||
"Erhöht den von Zaubern und Effekten verursachten Schaden um bis zu %d.",
|
||||
"Erhöht die von Zaubern und Effekten verursachte Heilung um bis zu %d.",
|
||||
"Stellt alle 5 Sek. %d Mana wieder her.",
|
||||
@@ -383,7 +510,8 @@ $lang = array(
|
||||
"Erhöht Blockwert um %d.",
|
||||
"Unbekannter Bonus #%d (%d)",
|
||||
)
|
||||
)
|
||||
),
|
||||
'colon' => ': '
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
@@ -43,6 +43,9 @@ $lang = array(
|
||||
'minutesAbbr' => "min",
|
||||
'secondsAbbr' => "sec",
|
||||
'millisecsAbbr' => "ms",
|
||||
|
||||
'n_a' => "n/a",
|
||||
|
||||
// err_title = An error in AoWoW
|
||||
// un_err = Enter your username
|
||||
// pwd_err = Enter your password
|
||||
@@ -79,6 +82,11 @@ $lang = array(
|
||||
'classes' => "Classes",
|
||||
'currency' => "currency",
|
||||
'currencies' => "Currencies",
|
||||
'difficulty' => "Difficulty",
|
||||
'dispelType' => "Dispel type",
|
||||
'duration' => "Duration",
|
||||
'glyphType' => "Glyph type",
|
||||
'race' => "race",
|
||||
'races' => "Races",
|
||||
'title' => "title",
|
||||
'titles' => "Titles",
|
||||
@@ -88,15 +96,29 @@ $lang = array(
|
||||
'cooldown' => "%s cooldown",
|
||||
'itemset' => "item Set",
|
||||
'itemsets' => "Item Sets",
|
||||
'mechanic' => "Mechanic",
|
||||
'mechAbbr' => "Mech.",
|
||||
'pet' => "Pet",
|
||||
'pets' => "Hunter Pets",
|
||||
'requires' => "Requires",
|
||||
'requires' => "Requires %s",
|
||||
'requires2' => "Requires",
|
||||
'reqLevel' => "Requires Level %s",
|
||||
'reqLevelHlm' => "Requires Level %s",
|
||||
'reqSkillLevel' => "Required skill level",
|
||||
'level' => "Level",
|
||||
'school' => "School",
|
||||
'spell' => "spell",
|
||||
'spells' => "Spells",
|
||||
'valueDelim' => " to ",
|
||||
'stats' => array("Strength", "Agility", "Stamina", "Intellect", "Spirit"),
|
||||
'languages' => array(
|
||||
1 => "Orcish", 2 => "Darnassian", 3 => "Taurahe", 6 => "Dwarvish", 7 => "Common", 8 => "Demonic", 9 => "Titan", 10 => "Thalassian",
|
||||
11 => "Draconic", 12 => "Kalimag", 13 => "Gnomish", 14 => "Troll", 33 => "Gutterspeak", 35 => "Draenei", 36 => "Zombie", 37 => "Gnomish Binary", 38 => "Goblin Binary"
|
||||
),
|
||||
'gl' => array(null, "Major", "Minor"),
|
||||
'si' => array(-2 => "Horde only", -1 => "Alliance only", null, "Alliance", "Horde", "Both"),
|
||||
'resistances' => array(null, 'Holy Resistance', 'Fire Resistance', 'Nature Resistance', 'Frost Resistance', 'Shadow Resistance', 'Arcane Resistance'),
|
||||
'di' => array(null, "Magic", "Curse", "Disease", "Poison", "Stealth", "Invisibility", null, null, "Enrage"),
|
||||
'dt' => array(null, "Magic", "Curse", "Disease", "Poison", "Stealth", "Invisibility", null, null, "Enrage"),
|
||||
'sc' => array("Physical", "Holy", "Fire", "Nature", "Frost", "Shadow", "Arcane"),
|
||||
'cl' => array(null, "Warrior", "Paladin", "Hunter", "Rogue", "Priest", "Death Knight", "Shaman", "Mage", "Warlock", null, "Druid"),
|
||||
'ra' => array(-2 => "Horde", -1 => "Alliance", "Both", "Human", "Orc", "Dwarf", "Night Elf", "Undead", "Tauren", "Gnome", "Troll", null, "Blood Elf", "Draenei"),
|
||||
@@ -110,6 +132,17 @@ $lang = array(
|
||||
null, null, "Swift Flight Form", "Shadow Form", "Flight Form",
|
||||
"Stealth", "Moonkin Form", "Spirit of Redemption"
|
||||
),
|
||||
'me' => array(
|
||||
null, "Charmed", "Disoriented", "Disarmed", "Distracted", "Fleeing", "Gripped", "Rooted",
|
||||
"Pacified", "Silenced", "Asleep", "Ensnared", "Stunned", "Frozen", "Incapacitated", "Bleeding",
|
||||
"Healing", "Polymorphed", "Banished", "Shielded", "Shackled", "Mounted", "Seduced", "Turned",
|
||||
"Horrified", "Invulnerable", "Interrupted", "Dazed", "Discovery", "Invulnerable", "Sapped", "Enraged"
|
||||
),
|
||||
'ct' => array(
|
||||
null, "Beast", "Dragonkin", "Demon", "Elemental",
|
||||
"Giant", "Undead", "Humanoid", "Critter", "Mechanical",
|
||||
"Uncategorized", "Totem", "Non-combat Pet", "Gas Cloud"
|
||||
),
|
||||
'pvpRank' => array(
|
||||
null, "Private / Scout", "Corporal / Grunt",
|
||||
"Sergeant / Sergeant", "Master Sergeant / Senior Sergeant", "Sergeant Major / First Sergeant",
|
||||
@@ -242,6 +275,26 @@ $lang = array(
|
||||
)
|
||||
),
|
||||
'spell' => array(
|
||||
'_spellDetails' => "Spell Details",
|
||||
'_cost' => "Cost",
|
||||
'_range' => "Range",
|
||||
'_castTime' => "Cast Time",
|
||||
'_cooldown' => "Cooldown",
|
||||
'_distUnit' => "yards",
|
||||
'_forms' => "Forms",
|
||||
'_aura' => "Aura",
|
||||
'_effect' => "Effect",
|
||||
'_none' => "None",
|
||||
'_gcd' => "GCD",
|
||||
'_globCD' => "Global Cooldown",
|
||||
'_gcdCategory' => "GCD category",
|
||||
'_value' => "Value",
|
||||
'_radius' => "Radius",
|
||||
'_interval' => "Interval",
|
||||
'_inSlot' => "in slot",
|
||||
|
||||
'starter' => "Starter spell",
|
||||
'trainingCost' => "Training cost",
|
||||
'remaining' => "%s remaining",
|
||||
'untilCanceled' => "until canceled",
|
||||
'castIn' => "%s sec cast",
|
||||
@@ -250,16 +303,81 @@ $lang = array(
|
||||
'channeled' => "Channeled",
|
||||
'range' => "%s yd range",
|
||||
'meleeRange' => "Melee Range",
|
||||
'unlimRange' => "Unlimited Range",
|
||||
'reagents' => "Reagents",
|
||||
'tools' => "Tools",
|
||||
'home' => "<Inn>",
|
||||
'pctCostOf' => "of base %s",
|
||||
'costPerSec' => ", plus %s per second",
|
||||
'costPerSec' => ", plus %s per sec",
|
||||
'costPerLevel' => ", plus %s per level",
|
||||
'powerRunes' => ["Frost", "Unholy", "Blood", "Death"],
|
||||
'powerTypes' => array(
|
||||
-2 => "Health", -1 => null, "Mana", "Rage", "Focus", "Energy", "Happiness", "Rune", "Runic Power",
|
||||
'AMMOSLOT' => "Ammo", 'STEAM' => "Steam Pressure", 'WRATH' => "Wrath", 'PYRITE' => "Pyrite",
|
||||
'HEAT' => "Heat", 'OOZE' => "Ooze", 'BLOOD_POWER' => "Blood Power"
|
||||
),
|
||||
'relItems' => array (
|
||||
'base' => "<small>Show %s related to <b>%s</b></small>",
|
||||
'link' => " or ",
|
||||
'recipes' => "<a href=\"?items=9.%s\">recipe items</a>",
|
||||
'crafted' => "<a href=\"?items&filter=cr=86;crs=%s\">crafted items</a>"
|
||||
),
|
||||
'cat' => array(
|
||||
7 => "Class Skills", // classList
|
||||
-13 => "Glyphs", // classList
|
||||
-11 => array("Proficiencies", 8 => "Armor", 6 => "Weapon", 10 => "Languages"),
|
||||
-4 => "Racial Traits",
|
||||
-2 => "Talents", // classList
|
||||
-6 => "Companions",
|
||||
-5 => "Mounts",
|
||||
-3 => array(
|
||||
"Pet Skills", 782 => "Ghoul", 270 => "Generic", 653 => "Bat", 210 => "Bear", 655 => "Bird of Prey", 211 => "Boar",
|
||||
213 => "Carrion Bird", 209 => "Cat", 780 => "Chimaera", 787 => "Core Hound", 214 => "Crab", 212 => "Crocolisk", 781 => "Devilsaur",
|
||||
763 => "Dragonhawk", 215 => "Gorilla", 654 => "Hyena", 775 => "Moth", 764 => "Nether Ray", 217 => "Raptor", 767 => "Ravager",
|
||||
786 => "Rhino", 236 => "Scorpid", 768 => "Serpent", 783 => "Silithid", 203 => "Spider", 788 => "Spirit Beast", 765 => "Sporebat",
|
||||
218 => "Tallstrider", 251 => "Turtle", 766 => "Warp Stalker", 785 => "Wasp", 656 => "Wind Serpent", 208 => "Wolf", 784 => "Worm",
|
||||
761 => "Felguard", 189 => "Felhunter", 188 => "Imp", 205 => "Succubus", 204 => "Voidwalker"
|
||||
),
|
||||
-7 => array("Pet Talents", 410 => "Cunning", 411 => "Ferocity", 409 => "Tenacity"),
|
||||
11 => array(
|
||||
"Professions",
|
||||
171 => "Alchemy",
|
||||
164 => array("Blacksmithing", 9788 => "Armorsmithing", 9787 => "Weaponsmithing", 17041 => "Master Axesmithing", 17040 => "Master Hammersmithing", 17039 => "Master Swordsmithing"),
|
||||
333 => "Enchanting",
|
||||
202 => array("Engineering", 20219 => "Gnomish Engineering", 20222 => "Goblin Engineering"),
|
||||
182 => "Herbalism",
|
||||
773 => "Inscription",
|
||||
755 => "Jewelcrafting",
|
||||
165 => array("Leatherworking", 10656 => "Dragonscale Leatherworking", 10658 => "Elemental Leatherworking", 10660 => "Tribal Leatherworking"),
|
||||
186 => "Mining",
|
||||
393 => "Skinning",
|
||||
197 => array("Tailoring", 26798 => "Mooncloth Tailoring", 26801 => "Shadoweave Tailoring", 26797 => "Spellfire Tailoring"),
|
||||
),
|
||||
9 => array ("Secondary Skills", 185 => "Cooking", 129 => "First Aid", 356 => "Fishing", 762 => "Riding"),
|
||||
-8 => "NPC Abilities",
|
||||
-9 => "GM Abilities",
|
||||
0 => "Uncategorized"
|
||||
),
|
||||
'armorSubClass' => array(
|
||||
"Miscellaneous", "Cloth Armor", "Leather Armor", "Mail Armor", "Plate Armor",
|
||||
null, "Shilds", "Librams", "Idols", "Totems",
|
||||
"Sigils"
|
||||
),
|
||||
'weaponSubClass' => array(
|
||||
"One-Handed Axes", "Two-Handed Axes", "Bows", "Guns", "One-Handed Maces",
|
||||
"Two-Handed Maces", "Polearms", "One-Handed Swords", "Two-Handed Swords", null,
|
||||
"Staves", null, null, "Fist Weapons", "Miscellaneous",
|
||||
"Daggers", "Thrown", null, "Crossbows", "Wands",
|
||||
"Fishing Poles"
|
||||
),
|
||||
'subClassMasks' => array(
|
||||
0x02A5F3 => 'Melee Weapon', 0x0060 => 'Shield', 0x04000C => 'Ranged Weapon', 0xA091 => 'One-Handed Melee Weapon'
|
||||
),
|
||||
'traitShort' => array(
|
||||
'atkpwr' => "AP", 'rgdatkpwr' => "RAP", 'splpwr' => "SP",
|
||||
'arcsplpwr' => "ArcP", 'firsplpwr' => "FireP", 'frosplpwr' => "FroP",
|
||||
'holsplpwr' => "HolP", 'natsplpwr' => "NatP", 'shasplpwr' => "ShaP",
|
||||
'splheal' => "Heal"
|
||||
)
|
||||
),
|
||||
'item' => array(
|
||||
@@ -279,7 +397,6 @@ $lang = array(
|
||||
'addsDps' => "Adds",
|
||||
'fap' => "Feral Attack Power",
|
||||
'durability' => "Durability",
|
||||
'duration' => "Duration",
|
||||
'realTime' => "real time",
|
||||
'conjured' => "Conjured Item",
|
||||
'damagePhys' => "%s Damage",
|
||||
@@ -314,12 +431,12 @@ $lang = array(
|
||||
'inventoryType' => array(
|
||||
null, "Head", "Neck", "Shoulder", "Shirt",
|
||||
"Chest", "Waist", "Legs", "Feet", "Wrist",
|
||||
"Hands", "Finger", "Trinket", "One-hand", "Off Hand",
|
||||
"Ranged", "Back", "Two-hand", "Bag", "Tabard",
|
||||
"Hands", "Finger", "Trinket", "One-Hand", "Off Hand",
|
||||
"Ranged", "Back", "Two-Hand", "Bag", "Tabard",
|
||||
"Chest", "Main Hand", "Off Hand", "Held In Off-Hand", "Projectile",
|
||||
"Thrown", "Ranged", "Quiver", "Relic"
|
||||
),
|
||||
'armorSubclass' => array(
|
||||
'armorSubClass' => array(
|
||||
"Miscellaneous", "Cloth", "Leather", "Mail", "Plate",
|
||||
null, "Shild", "Libram", "Idol", "Totem",
|
||||
"Sigil"
|
||||
@@ -383,7 +500,8 @@ $lang = array(
|
||||
"Increases the block value of your shield by %d.",
|
||||
"Unknown Bonus #%d (%d)",
|
||||
)
|
||||
)
|
||||
),
|
||||
'colon' => ': '
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
@@ -3,6 +3,11 @@
|
||||
if (!defined('AOWOW_REVISION'))
|
||||
die('illegal access');
|
||||
|
||||
/*
|
||||
some translations have yet to be taken from or improved by the use of:
|
||||
<path>\World of Warcraft\Data\esES\patch-esES-3.MPQ\Interface\FrameXML\GlobalStrings.lua
|
||||
like: ITEM_MOD_*, POWER_TYPE_*, ITEM_BIND_*, PVP_RANK_*
|
||||
*/
|
||||
|
||||
$lang = array(
|
||||
// page variables
|
||||
@@ -43,7 +48,8 @@ $lang = array(
|
||||
'minutesAbbr' => "min",
|
||||
'secondsAbbr' => "seg",
|
||||
'millisecsAbbr' => "[ms]",
|
||||
'name' => "Nombre",
|
||||
|
||||
'n_a' => "n/d",
|
||||
|
||||
// filter
|
||||
'extSearch' => "Extender búsqueda",
|
||||
@@ -56,6 +62,7 @@ $lang = array(
|
||||
'refineSearch' => "Sugerencia: Refina tu búsqueda llendo a una <a href=\"javascript:;\" id=\"fi_subcat\">subcategoría</a>.",
|
||||
|
||||
// infobox
|
||||
'name' => "Nombre",
|
||||
'disabled' => "[Disabled]",
|
||||
'disabledHint' => "[Cannot be attained or completed]",
|
||||
'serverside' => "[Serverside]",
|
||||
@@ -72,6 +79,11 @@ $lang = array(
|
||||
'classes' => "Clases",
|
||||
'currency' => "monedas",
|
||||
'currencies' => "Monedas",
|
||||
'difficulty' => "Dificultad",
|
||||
'dispelType' => "Tipo de disipación",
|
||||
'duration' => "Duración",
|
||||
'glyphType' => "Tipo de glifo",
|
||||
'race' => "raza",
|
||||
'races' => "Razas",
|
||||
'title' => "título",
|
||||
'titles' => "Títulos",
|
||||
@@ -81,16 +93,30 @@ $lang = array(
|
||||
'cooldown' => "%s de reutilización",
|
||||
'itemset' => "conjunto de objetos",
|
||||
'itemsets' => "Conjuntos de objetos",
|
||||
'mechanic' => "Mecanica",
|
||||
'mechAbbr' => "Mec.",
|
||||
'pet' => "Mascota",
|
||||
'pets' => "Mascotas de cazador",
|
||||
'requires' => "Requiere",
|
||||
'requires' => "Requiere %s",
|
||||
'requires2' => "Requiere",
|
||||
'reqLevel' => "Necesitas ser de nivel %s",
|
||||
'reqLevelHlm' => "Necesitas ser de nivel %s",
|
||||
'reqSkillLevel' => "Requiere nivel de habilidad",
|
||||
'level' => "Nivel",
|
||||
'school' => "Escuela",
|
||||
'spell' => "hechizo",
|
||||
'spells' => "Hechizos",
|
||||
'valueDelim' => " - ",
|
||||
'stats' => array("Fuerza", "Agilidad", "Aguante", "Intelecto", "Espíritu"),
|
||||
'languages' => array(
|
||||
1 => "Orco", 2 => "Darnassiano", 3 => "Taurahe", 6 => "Enánico", 7 => "Lengua común", 8 => "Demoníaco", 9 => "Titánico", 10 => "Thalassiano",
|
||||
11 => "Dracónico", 12 => "Kalimag", 13 => "Gnomótico", 14 => "Trol", 33 => "Viscerálico", 35 => "Draenei", 36 => "Zombie", 37 => "Binario gnomo", 38 => "Binario goblin"
|
||||
),
|
||||
'gl' => array(null, "Sublime", "Menor"),
|
||||
'si' => array(-2 => "Horda solamente", -1 => "Alianza solamente", null, "Alianza", "Horda", "Ambos"),
|
||||
'resistances' => array(null, 'Resistencia a lo Sagrado', 'v', 'Resistencia a la Naturaleza', 'Resistencia a la Escarcha', 'Resistencia a las Sombras', 'Resistencia a lo Arcano'),
|
||||
'sc' => array("Física", "Sagrado", "Fuego", "Naturaleza", "Escarcha", "Sombras", "Arcano"),
|
||||
'di' => array(null, "Magia", "Maldición", "Enfermedad", "Veneno", "Sigilo", "Invisibilidad", null, null, "Enfurecer"),
|
||||
'dt' => array(null, "Magia", "Maldición", "Enfermedad", "Veneno", "Sigilo", "Invisibilidad", null, null, "Enfurecer"),
|
||||
'cl' => array(null, "Guerrero", "Paladín", "Cazador", "Pícaro", "Sacerdote", "Caballero de la Muerte", "Chamán", "Mago", "Brujo", null, "Druida"),
|
||||
'ra' => array(-2 => "Horda", -1 => "Alianza", "Ambos", "Humano", "Orco", "Enano", "Elfo de la noche", "No-muerto", "Tauren", "Gnomo", "Trol ", null, "Blood Elf", "Elfo de sangre"),
|
||||
'rep' => array("Odiado", "Hostil", "Adverso", "Neutral", "Amistoso", "Honorable", "Reverenciado", "Exaltado"),
|
||||
@@ -99,10 +125,25 @@ $lang = array(
|
||||
"Forma de oso", null, null, "Forma de oso temible", null,
|
||||
null, null, null, "Danza de las Sombras", null,
|
||||
null, "Lobo fantasmal", "Actitud de batalla", "Actitud defensiva", "Actitud rabiosa",
|
||||
null, null, "Metamorfosis", null, null,
|
||||
null, null, "Forma de vuelo presto", "Forma de las Sombras", "Forma de vuelo",
|
||||
null, null, "Metamorfosis", null, null,
|
||||
null, null, "Forma de vuelo presto", "Forma de las Sombras", "Forma de vuelo",
|
||||
"Sigilo", "Forma de lechúcico lunar", "Espíritu redentor"
|
||||
),
|
||||
'me' => array(
|
||||
null, "Embelesado", "Desorientado", "Desarmado", "Distraído", "Huyendo", "Agarrado", "Enraizado",
|
||||
"Pacificado", "Silenciado", "Dormido", "Frenado", "Aturdido", "Congelado", "Incapacitado", "Sangrando",
|
||||
"Sanacíon", "Polimorfado", "Desterrado", "Protegido", "Aprisionado", "Montado", "Seducido", "Girado",
|
||||
"Horrorizado", "Invulnerable", "Interrumpido", "Atontado", "Descubierto", "Invulnerable", "Aporreado", "Iracundo"
|
||||
),
|
||||
'ct' => array(
|
||||
null, "Bestia", "Dragonante", "Demonio", "Elemental",
|
||||
"Gigante", "No-muerto", "Humanoide", "Alimaña", "Mecánico",
|
||||
"Sin categoría", "Tótem", "Mascota mansa", "Nube de gas"
|
||||
),
|
||||
'professions' => array(
|
||||
171 => "Alquimia", 164 => "Herrería", 333 => "Encantamiento", 202 => "Ingeniería", 773 => "Inscripción", 755 => "Joyería",
|
||||
165 => "Peletería", 186 => "Minería", 197 => "Sastrería", 185 => "Cocina", 129 => "Primeros auxilios", 356 => "Pesca"
|
||||
),
|
||||
'pvpRank' => array(
|
||||
null, "Private / Scout", "Corporal / Grunt",
|
||||
"Sergeant / Sergeant", "Master Sergeant / Senior Sergeant", "Sergeant Major / First Sergeant",
|
||||
@@ -195,6 +236,26 @@ $lang = array(
|
||||
)
|
||||
),
|
||||
'spell' => array(
|
||||
'_spellDetails' => "Detalles de hechizos",
|
||||
'_cost' => "Costo",
|
||||
'_range' => "Rango",
|
||||
'_castTime' => "Tiempo de lanzamiento",
|
||||
'_cooldown' => "Reutilización",
|
||||
'_distUnit' => "metros",
|
||||
'_forms' => "Formas",
|
||||
'_aura' => "Aura",
|
||||
'_effect' => "Efecto",
|
||||
'_none' => "Ninguno",
|
||||
'_gcd' => "GCD",
|
||||
'_globCD' => "Tiempo global de reutilización",
|
||||
'_gcdCategory' => "Categoría GCD",
|
||||
'_value' => "Valor",
|
||||
'_radius' => "Radio",
|
||||
'_interval' => "Intérvalo",
|
||||
'_inSlot' => "en la casilla",
|
||||
|
||||
'starter' => "Hechizo inicial",
|
||||
'trainingCost' => "Costo de enseñanza",
|
||||
'remaining' => "%s restantes",
|
||||
'untilCanceled' => "hasta que se cancela",
|
||||
'castIn' => "Hechizo de %s seg",
|
||||
@@ -203,16 +264,81 @@ $lang = array(
|
||||
'channeled' => "Canalizado",
|
||||
'range' => "Alcance de %s m",
|
||||
'meleeRange' => "Alcance de ataques cuerpo a cuerpo",
|
||||
'unlimRange' => "Rango ilimitado",
|
||||
'reagents' => "Componentes",
|
||||
'tools' => "Herramientas",
|
||||
'home' => "<Posada>",
|
||||
'pctCostOf' => "del %s base",
|
||||
'costPerSec' => ", mas %s por segundo",
|
||||
'costPerLevel' => ", mas %s por nivel",
|
||||
'powerRunes' => ["Escarcha", "Profano", "Sangre", "Muerte"],
|
||||
'powerTypes' => array( // heat => spell 70174
|
||||
-2 => "Salud", -1 => null, "Maná", "Ira", "Enfoque", "Energía", "[Happiness]", "Runa", "Poder rúnico",
|
||||
'AMMOSLOT' => "[Ammo]", 'STEAM' => "[Steam Pressure]", 'WRATH' => "[Wrath]", 'PYRITE' => "[Pyrite]",
|
||||
'HEAT' => "[Heat]", 'OOZE' => "[Ooze]", 'BLOOD_POWER' => "[Blood Power]" // spellname of 72370
|
||||
),
|
||||
'relItems' => array (
|
||||
'base' => "<small>Muestra %s relacionados con <b>%s</b></small>",
|
||||
'link' => " u ",
|
||||
'recipes' => "<a href=\"?items=9.%s\">objetos de receta</a>",
|
||||
'crafted' => "<a href=\"?items&filter=cr=86;crs=%s\">objetos fabricados</a>"
|
||||
),
|
||||
'cat' => array(
|
||||
7 => "Habilidades",
|
||||
-13 => "Glifos",
|
||||
-11 => array("Habilidades", 6 => "Armas", 8 => "Armadura", 10 => "Lenguas"),
|
||||
-4 => "Habilidades de raza",
|
||||
-2 => "Talentos",
|
||||
-6 => "Compañeros",
|
||||
-5 => "Monturas",
|
||||
-3 => array(
|
||||
"Habilidades de mascota", 782 => "Necrófago", 270 => "Genérico", 766 => "Acechador deformado", 203 => "Araña", 655 => "Ave rapaz", 785 => "Avispa",
|
||||
788 => "Bestia espíritu", 787 => "Can del Núcleo", 214 => "Cangrejo", 213 => "Carroñero", 212 => "Crocolisco", 781 => "Demosaurio", 767 => "Devastador",
|
||||
763 => "Dracohalcón", 236 => "Escórpido", 765 => "Esporiélago", 209 => "Felino", 215 => "Gorila", 784 => "Gusano", 654 => "Hiena",
|
||||
211 => "Jabalí", 208 => "Lobo", 653 => "Murciélago", 210 => "Oso", 775 => "Palomilla", 780 => "Quimera", 217 => "Raptor",
|
||||
764 => "Raya abisal", 786 => "Rinoceronte", 768 => "Serpiente", 656 => "Serpiente alada", 783 => "Silítido", 251 => "Tortuga", 218 => "Zancaalta",
|
||||
761 => "Guardia vil", 189 => "Manáfago", 188 => "Diablillo", 205 => "Súcubo", 204 => "Abisario"
|
||||
),
|
||||
-7 => array("Talentos de mascotas", 411 => "Astucia", 410 => "Ferocidad", 409 => "Tenacidad"),
|
||||
11 => array(
|
||||
"Profesiones",
|
||||
171 => "Alquimia",
|
||||
164 => array("Herrería", 9788 => "Forjador de armaduras", 9787 => "Forjador de armas", 17041 => "Maestro forjador de hachas", 17040 => "Maestro forjador de mazas", 17039 => "Maestro forjador de espadas"),
|
||||
333 => "Encantamiento",
|
||||
202 => array("Ingeniería", 20219 => "Ingeniero gnómico", 20222 => "Ingeniero goblin"),
|
||||
182 => "Herboristería",
|
||||
773 => "Inscripción",
|
||||
755 => "Joyería",
|
||||
165 => array("Peletería", 10656 => "Peletería de escamas de dragón", 10658 => "Peletería de elemental", 10660 => "Peletería de tribal"),
|
||||
186 => "Minería",
|
||||
393 => "Desollar",
|
||||
197 => array("Sastrería", 26798 => "Sastería de tela lunar primigenia", 26801 => "Sastrería de tejido de sombras", 26797 => "Sastería de fuego de hechizo"),
|
||||
),
|
||||
9 => array("Habilidades secundarias", 185 => "Cocina", 129 => "Primeros auxilios", 356 => "Pesca", 762 => "Equitación"),
|
||||
-8 => "Habilidades de PNJ",
|
||||
-9 => "Habilidades de MJ",
|
||||
0 => "Sin categoría"
|
||||
),
|
||||
'armorSubClass' => array(
|
||||
"Misceláneo", "Armaduras de tela","Armaduras de cuero", "Armaduras de malla", "Armaduras de placas",
|
||||
null, "Escudos", "Tratados", "Ídolos", "Tótems",
|
||||
"Sigilos"
|
||||
),
|
||||
'weaponSubClass' => array(
|
||||
"Hachas de una mano", "Hachas de dos manos","Arcos", "Armas de fuego", "Mazas de una mano",
|
||||
"Mazas de dos manos", "Armas de asta", "Espadas de una mano", "Espadas de dos manos", null,
|
||||
"Bastones", null, null, "Armas de puño", "Misceláneo",
|
||||
"Dagas", "Arrojadizas", null, "Ballestas", "Varitas",
|
||||
"Cañas de pescar"
|
||||
),
|
||||
'subClassMasks' => array(
|
||||
0x02A5F3 => 'Arma cuerpo a cuerpo', 0x0060 => 'Escudo', 0x04000C => 'Arma de ataque a distancia', 0xA091 => 'Arma cuerpo a cuerpo 1M'
|
||||
),
|
||||
'traitShort' => array(
|
||||
'atkpwr' => "PA", 'rgdatkpwr' => "PA", 'splpwr' => "PH",
|
||||
'arcsplpwr' => "PArc", 'firsplpwr' => "PFue", 'frosplpwr' => "PEsc",
|
||||
'holsplpwr' => "PSag", 'natsplpwr' => "PNat", 'shasplpwr' => "PSom",
|
||||
'splheal' => "Sana"
|
||||
)
|
||||
),
|
||||
'item' => array(
|
||||
@@ -272,7 +398,7 @@ $lang = array(
|
||||
"Pecho", "Mano derecha", "Mano izquierda", "Sostener con la mano izquierda", "Proyectiles",
|
||||
"Arrojadiza", "A distancia", "Carcaj", "Reliquia"
|
||||
),
|
||||
'armorSubclass' => array(
|
||||
'armorSubClass' => array(
|
||||
"Misceláneo", "Tela", "Cuero", "Malla", "Placas",
|
||||
null, "Escudo", "Tratado", "Ídolo", "Tótem",
|
||||
"Sigilo"
|
||||
@@ -336,7 +462,8 @@ $lang = array(
|
||||
"Aumenta el valor de bloqueo de tu escudo %d p.",
|
||||
"Estadística no utilizada #%d (%d)",
|
||||
)
|
||||
)
|
||||
),
|
||||
'colon' => ': '
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
@@ -3,6 +3,11 @@
|
||||
if (!defined('AOWOW_REVISION'))
|
||||
die('illegal access');
|
||||
|
||||
/*
|
||||
some translations have yet to be taken from or improved by the use of:
|
||||
<path>\World of Warcraft\Data\frFR\patch-frFR-3.MPQ\Interface\FrameXML\GlobalStrings.lua
|
||||
like: ITEM_MOD_*, POWER_TYPE_*, ITEM_BIND_*, PVP_RANK_*
|
||||
*/
|
||||
|
||||
$lang = array(
|
||||
// page variables
|
||||
@@ -43,7 +48,8 @@ $lang = array(
|
||||
'minutesAbbr' => "min",
|
||||
'secondsAbbr' => "s",
|
||||
'millisecsAbbr' => "[ms]",
|
||||
'name' => "Nom",
|
||||
|
||||
'n_a' => "n/d",
|
||||
|
||||
// filter
|
||||
'extSearch' => "Recherche avancée",
|
||||
@@ -56,6 +62,7 @@ $lang = array(
|
||||
'refineSearch' => "Astuce : Affinez votre recherche en utilisant une <a href=\"javascript:;\" id=\"fi_subcat\">sous-catégorie</a>.",
|
||||
|
||||
// infobox
|
||||
'name' => "Nom",
|
||||
'disabled' => "[Disabled]",
|
||||
'disabledHint' => "[Cannot be attained or completed]",
|
||||
'serverside' => "[Serverside]",
|
||||
@@ -72,6 +79,11 @@ $lang = array(
|
||||
'classes' => "Classes",
|
||||
'currency' => "monnaies",
|
||||
'currencies' => "Monnaies",
|
||||
'difficulty' => "Difficulté",
|
||||
'dispelType' => "Type de dissipation",
|
||||
'duration' => "Durée",
|
||||
'glyphType' => "Type de glyphe",
|
||||
'race' => "race",
|
||||
'races' => "Races",
|
||||
'title' => "titre",
|
||||
'titles' => "Titres",
|
||||
@@ -81,15 +93,29 @@ $lang = array(
|
||||
'cooldown' => "%s de recharge",
|
||||
'itemset' => "ensemble d'objets",
|
||||
'itemsets' => "Ensembles d'objets",
|
||||
'mechanic' => "Mécanique",
|
||||
'mechAbbr' => "Mécan.",
|
||||
'pet' => "Familier",
|
||||
'pets' => "Familiers de chasseur",
|
||||
'requires' => "Requiert",
|
||||
'requires' => "%s requis",
|
||||
'requires2' => "Requiert",
|
||||
'reqLevel' => "Niveau %s requis",
|
||||
'reqLevelHlm' => "Requiert Niveau %s",
|
||||
'reqSkillLevel' => "Niveau de compétence requis",
|
||||
'level' => "Niveau",
|
||||
'school' => "École",
|
||||
'spell' => "sort",
|
||||
'spells' => "Sorts",
|
||||
'valueDelim' => " - ",
|
||||
'stats' => array("Force", "Agilité", "Endurance", "Intelligence", "Esprit"),
|
||||
'languages' => array(
|
||||
1 => "Orc", 2 => "Darnassien", 3 => "Taurahe", 6 => "Nain", 7 => "Commun", 8 => "Démoniaque", 9 => "Titan", 10 => "Thalassien",
|
||||
11 => "Draconique", 12 => "Kalimag", 13 => "Gnome", 14 => "Troll", 33 => "Bas-parler", 35 => "Draeneï", 36 => "Zombie", 37 => "Binaire gnome", 38 => "Binaire gobelin"
|
||||
),
|
||||
'gl' => array(null, "Majeur", "Mineur"),
|
||||
'si' => array(-2 => "Horde seulement", -1 => "Alliance seulement", null, "Alliance", "Horde", "Les deux"),
|
||||
'resistances' => array(null, 'Résistance au Sacré', 'Résistance au Feu', 'Résistance à la Nature', 'Résistance au Givre', 'Résistance à l\'Ombre', 'Résistance aux Arcanes'),
|
||||
'di' => array(null, "Magie", "Malédiction", "Maladie", "Poison", "Camouflage", "Invisibilité", null, null, "Enrager"),
|
||||
'dt' => array(null, "Magie", "Malédiction", "Maladie", "Poison", "Camouflage", "Invisibilité", null, null, "Enrager"),
|
||||
'sc' => array("Physique", "Sacré", "Feu", "Nature", "Givre", "Ombre", "Arcane"),
|
||||
'cl' => array(null, "Guerrier", "Paladin", "Chasseur", "Voleur", "Prêtre", "DeathChevalier de la mort", "Chaman", "Mage", "Démoniste", null, "Druide"),
|
||||
'ra' => array(-2 => "Horde", -1 => "Alliance", "Les deux", "Humain", "Orc", "Nain", "Elfe de la nuit", "Mort-vivant", "Tauren", "Gnome", "Troll", null, "Elfe de sang", "Draeneï"),
|
||||
@@ -103,6 +129,21 @@ $lang = array(
|
||||
null, null, "Forme de vol rapide", "Forme d'Ombre", "Forme de vol",
|
||||
"Camouflage", "Forme de sélénien", "Esprit de rédemption"
|
||||
),
|
||||
'me' => array(
|
||||
null, "Charmé", "Désorienté", "Désarmé", "Distrait", "En fuite", "Maladroit", "Immobilisé",
|
||||
"Pacifié", "Réduit au silence", "Endormi", "Pris au piège", "Étourdi", "Gelé", "Stupéfié", "Sanguinolent",
|
||||
"Soins", "Métamorphosé", "Banni", "Protégé", "Entravé", "Monté", "Séduit", "Repoussé",
|
||||
"Horrifié", "Invulnérable", "Interrompu", "Hébété", "Découverte", "Invulnérable", "Assommé", "Enragé"
|
||||
),
|
||||
'ct' => array(
|
||||
null, "Bête", "Draconien", "Démon", "Élémentaire",
|
||||
"Géant", "Mort-vivant", "Humanoïde", "Bestiole", "Mécanique",
|
||||
"Non classés", "Totem", "Familier pacifique", "Nuage de gaz"
|
||||
),
|
||||
'professions' => array(
|
||||
171 => "Alchimie", 164 => "Forge", 333 => "Enchantement", 202 => "Ingénierie", 773 => "Calligraphie", 755 => "Joaillerie",
|
||||
165 => "Travail du cuir", 186 => "Minage", 197 => "Couture", 185 => "Cuisine", 129 => "Secourisme", 356 => "Pêche"
|
||||
),
|
||||
'pvpRank' => array(
|
||||
null, "Private / Scout", "Corporal / Grunt",
|
||||
"Sergeant / Sergeant", "Master Sergeant / Senior Sergeant", "Sergeant Major / First Sergeant",
|
||||
@@ -129,7 +170,7 @@ $lang = array(
|
||||
'series' => "Série",
|
||||
'outOf' => "sur",
|
||||
'criteriaType' => "Criterium Type-Id:",
|
||||
'itemReward' => "Vous recevrez:",
|
||||
'itemReward' => "Vous recevrez :",
|
||||
'titleReward' => "Vous devriez recevoir le titre \"<a href=\"?title=%d\">%s</a>\"",
|
||||
'slain' => "tué",
|
||||
),
|
||||
@@ -195,6 +236,26 @@ $lang = array(
|
||||
)
|
||||
),
|
||||
'spell' => array(
|
||||
'_spellDetails' => "Détails sur le sort",
|
||||
'_cost' => "Coût",
|
||||
'_range' => "Portée",
|
||||
'_castTime' => "Incantation",
|
||||
'_cooldown' => "Recharge",
|
||||
'_distUnit' => "mètres",
|
||||
'_forms' => "Formes",
|
||||
'_aura' => "Aura",
|
||||
'_effect' => "Effet",
|
||||
'_none' => "Aucun",
|
||||
'_gcd' => "GCD",
|
||||
'_globCD' => "Temps d'attente universel",
|
||||
'_gcdCategory' => "Catégorie GCD",
|
||||
'_value' => "Valeur",
|
||||
'_radius' => "Rayon",
|
||||
'_interval' => "Intervalle",
|
||||
'_inSlot' => "dans l'emplacement",
|
||||
|
||||
'starter' => "Sortilège initiaux",
|
||||
'trainingCost' => "Coût d'entraînement",
|
||||
'remaining' => "%s restantes",
|
||||
'untilCanceled' => "jusqu’à annulation",
|
||||
'castIn' => "%s s d'incantation",
|
||||
@@ -203,16 +264,81 @@ $lang = array(
|
||||
'channeled' => "Canalisée",
|
||||
'range' => "m de portée",
|
||||
'meleeRange' => "Allonge",
|
||||
'unlimRange' => "Portée illimitée",
|
||||
'reagents' => "Composants",
|
||||
'tools' => "Outils",
|
||||
'home' => "%lt;Auberge>",
|
||||
'pctCostOf' => "de la %s de base",
|
||||
'costPerSec' => ", plus %s par seconde",
|
||||
'costPerLevel' => ", plus %s par niveau",
|
||||
'powerRunes' => ["Givre", "Impie", "Sang", "Mort"],
|
||||
'powerTypes' => array(
|
||||
-2 => "vie", -1 => null, "mana", "rage", "focus", "énergie", "[Happiness]", "[Rune]", "puissance runique",
|
||||
'AMMOSLOT' => "[Ammo]", 'STEAM' => "[Steam Pressure]", 'WRATH' => "courroux", 'PYRITE' => "Pyrite",
|
||||
'HEAT' => "chaleur", 'OOZE' => "limon", 'BLOOD_POWER' => "puissance de sang"
|
||||
),
|
||||
'relItems' => array (
|
||||
'base' => "<small>Montre %s reliés à <b>%s</b></small>",
|
||||
'link' => " ou ",
|
||||
'recipes' => "les <a href=\"?items=9.%s\">recettes</a>",
|
||||
'crafted' => "les <a href=\"?items&filter=cr=86;crs=%s\">objets fabriqués</a>"
|
||||
),
|
||||
'cat' => array(
|
||||
7 => "Techniques",
|
||||
-13 => "Glyphes",
|
||||
-11 => array("Compétences", 8 => "Armure", 10 => "Langues", 6 => "Armes"),
|
||||
-4 => "Traits raciaux",
|
||||
-2 => "Talents",
|
||||
-6 => "Compagnons",
|
||||
-5 => "Montures",
|
||||
-3 => array(
|
||||
"Habilité de familier", 782 => "Goule", 270 => "Générique", 203 => "Araignée", 213 => "Charognard", 653 => "Chauve-souris", 787 => "Chien du Magma",
|
||||
780 => "Chimère", 214 => "Crabe", 212 => "Crocilisque", 781 => "Diablosaure", 788 => "Esprit de bête", 763 => "Faucon-dragon", 209 => "Félin",
|
||||
215 => "Gorille", 785 => "Guêpe", 218 => "Haut-trotteur", 654 => "Hyène", 208 => "Loup", 655 => "Oiseau de proie", 210 => "Ours",
|
||||
775 => "Phalène", 764 => "Raie du Néant", 217 => "Raptor", 767 => "Ravageur", 786 => "Rhinocéros", 211 => "Sanglier", 236 => "Scorpide",
|
||||
768 => "Serpent", 656 => "Serpent des vents", 783 => "Silithide", 765 => "Sporoptère", 251 => "Tortue", 766 => "Traqueur dim.", 784 => "Ver",
|
||||
761 => "Gangregarde", 189 => "Chasseur corrompu", 188 => "Diablotin", 205 => "Succube", 204 => "Marcheur du Vide"
|
||||
),
|
||||
-7 => array("Talents de familiers", 411 => "Ruse", 410 => "Férocité", 409 => "Tenacité"),
|
||||
11 => array(
|
||||
"Métiers",
|
||||
171 => "Alchimie",
|
||||
164 => array("Forge", 9788 => "Fabricant d'armures", 9787 => "Fabricant d'armes", 17041 => "Maître fabricant de haches", 17040 => "Maître fabricant de marteaux", 17039 => "Maître fabricant d'épées"),
|
||||
333 => "Enchantement",
|
||||
202 => array("Ingénierie", 20219 => "Ingénieur gnome", 20222 => "Ingénieur goblin"),
|
||||
182 => "Herboristerie",
|
||||
773 => "Calligraphie",
|
||||
755 => "Joaillerie",
|
||||
165 => array("Travail du cuir", 10656 => "Travail du cuir d'écailles de dragon", 10658 => "Travail du cuir élémentaire", 10660 => "Travail du cuir tribal"),
|
||||
186 => "Minage",
|
||||
393 => "Dépeçage",
|
||||
197 => array("Couture", 26798 => "Couture d'étoffe lunaire", 26801 => "Couture de tisse-ombre", 26797 => "Couture du feu-sorcier"),
|
||||
),
|
||||
9 => array("Compétences secondaires", 185 => "Cuisine", 129 => "Secourisme", 356 => "Pêche", 762 => "Monte"),
|
||||
-9 => "Habilité de MJ",
|
||||
-8 => "Habilité de PNJ",
|
||||
0 => "Non classés"
|
||||
),
|
||||
'armorSubClass' => array(
|
||||
"Divers", "Armures en tissu", "Armures en cuir", "Armures en mailles", "Armures en plaques",
|
||||
null, "Boucliers", "Librams", "Idoles", "Totems",
|
||||
"Cachets"
|
||||
),
|
||||
'weaponSubClass' => array(
|
||||
"Haches à une main", "Haches à deux mains", "Arcs", "Armes à feu", "Masses à une main",
|
||||
"Masses à deux mains", "Armes d'hast", "Epées à une main", "Epées à deux mains", null,
|
||||
"Bâtons", null, null, "Armes de pugilat", "Divers",
|
||||
"Dagues", "Armes de jet", null, "Arbalètes", "Baguettes",
|
||||
"Cannes à pêche"
|
||||
),
|
||||
'subClassMasks' => array(
|
||||
0x02A5F3 => 'Arme de mêlée', 0x0060 => 'Bouclier', 0x04000C => 'Arme à distance', 0xA091 => 'Arme de mêlée à une main'
|
||||
),
|
||||
'traitShort' => array(
|
||||
'atkpwr' => "PA", 'rgdatkpwr' => "PAD", 'splpwr' => "PS",
|
||||
'arcsplpwr' => "PArc", 'firsplpwr' => "PFeu", 'frosplpwr' => "PGiv",
|
||||
'holsplpwr' => "PSac", 'natsplpwr' => "PNat", 'shasplpwr' => "POmb",
|
||||
'splheal' => "Soins"
|
||||
)
|
||||
),
|
||||
'item' => array(
|
||||
@@ -272,7 +398,7 @@ $lang = array(
|
||||
"Torse", "Main droite", "Main gauche", "Tenu en main gauche", "Projectile",
|
||||
"Armes de jet", "À distance", "Carquois", "Relique"
|
||||
),
|
||||
'armorSubclass' => array(
|
||||
'armorSubClass' => array(
|
||||
"Divers", "Armures en tissu", "Armures en cuir", "Armures en mailles", "Armures en plaques",
|
||||
null, "Bouclier", "Libram", "Idole", "Totem",
|
||||
"Cachet"
|
||||
@@ -336,7 +462,8 @@ $lang = array(
|
||||
"Augmente la valeur de blocage de votre bouclier de %d.",
|
||||
"Stat Inutilisée #%d (%d)",
|
||||
)
|
||||
)
|
||||
),
|
||||
'colon' => ' : '
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
@@ -3,6 +3,11 @@
|
||||
if (!defined('AOWOW_REVISION'))
|
||||
die('illegal access');
|
||||
|
||||
/*
|
||||
some translations have yet to be taken from or improved by the use of:
|
||||
<path>\World of Warcraft\Data\ruRU\patch-ruRu-3.MPQ\Interface\FrameXML\GlobalStrings.lua
|
||||
like: ITEM_MOD_*, POWER_TYPE_*, ITEM_BIND_*, PVP_RANK_*
|
||||
*/
|
||||
|
||||
$lang = array(
|
||||
// page variables
|
||||
@@ -43,7 +48,8 @@ $lang = array(
|
||||
'minutesAbbr' => "мин",
|
||||
'secondsAbbr' => "сек.",
|
||||
'millisecsAbbr' => "[ms]",
|
||||
'name' => "Название",
|
||||
|
||||
'n_a' => "нет",
|
||||
|
||||
// filter
|
||||
'extSearch' => "Расширенный поиск",
|
||||
@@ -56,6 +62,7 @@ $lang = array(
|
||||
'refineSearch' => "Совет: Уточните поиск, добавив <a href=\"javascript:;\" id=\"fi_subcat\">подкатегорию</a>.",
|
||||
|
||||
// infobox
|
||||
'name' => "Название",
|
||||
'disabled' => "[Disabled]",
|
||||
'disabledHint' => "[Cannot be attained or completed]",
|
||||
'serverside' => "[Serverside]",
|
||||
@@ -72,6 +79,11 @@ $lang = array(
|
||||
'classes' => "Классы",
|
||||
'currency' => "валюта",
|
||||
'currencies' => "Валюта",
|
||||
'difficulty' => "Сложность",
|
||||
'dispelType' => "Тип рассеивания",
|
||||
'duration' => "Длительность",
|
||||
'glyphType' => "Тип символа",
|
||||
'race' => "раса",
|
||||
'races' => "Расы",
|
||||
'title' => "звание",
|
||||
'titles' => "Звания",
|
||||
@@ -81,15 +93,29 @@ $lang = array(
|
||||
'cooldown' => "Восстановление: %s",
|
||||
'itemset' => "комплект",
|
||||
'itemsets' => "Комплекты",
|
||||
'mechanic' => "Механика",
|
||||
'mechAbbr' => "Механика",
|
||||
'pet' => "Питомец",
|
||||
'pets' => "Питомцы охотников",
|
||||
'requires' => "Требует:",
|
||||
'requires' => "Требует %s",
|
||||
'requires2' => "Требуется:",
|
||||
'reqLevel' => "Требуется уровень: %s",
|
||||
'reqLevelHlm' => "Требуется уровень: %s",
|
||||
'reqSkillLevel' => "Требуется уровень навыка",
|
||||
'level' => "Уровень",
|
||||
'school' => "Школа",
|
||||
'spell' => "заклинание",
|
||||
'spells' => "Заклинания",
|
||||
'valueDelim' => " - ",
|
||||
'stats' => array("к силе", "к ловкости", "к выносливости", "к интеллекту", "к духу"),
|
||||
'languages' => array(
|
||||
1 => "орочий", 2 => "дарнасский", 3 => "таурахэ", 6 => "дворфийский", 7 => "всеобщий", 8 => "язык демонов", 9 => "язык титанов", 10 => "талассийский",
|
||||
11 => "драконий", 12 => "калимаг", 13 => "гномский", 14 => "язык троллей", 33 => "наречие нежити", 35 => "дренейский", 36 => "наречие зомби", 37 => "машинный гномский", 38 => "машинный гоблинский"
|
||||
),
|
||||
'gl' => array(null, "Большой", "Малый"),
|
||||
'si' => array(-2 => "Орда только", -1 => "Альянс только", null, "Альянс", "Орда", "Обе"),
|
||||
'resistances' => array(null, 'Сопротивление светлой магии', 'Сопротивление огню', 'Сопротивление силам природы', 'Сопротивление магии льда', 'Сопротивление темной магии', 'Сопротивление тайной магии'),
|
||||
'di' => array(null, "Magic", "Curse", "Disease", "Poison", "Stealth", "Invisibility", null, null, "Enrage"),
|
||||
'dt' => array(null, 'Магия', 'Проклятие', 'Болезнь', 'Яд', 'Незаметность', 'Невидимость', null, null, 'Исступление'),
|
||||
'sc' => array("Физический урон", "Свет", "Огонь", "природа", "Лед", "Тьма", "Тайная магия"),
|
||||
'cl' => array(null, "Воин", "Паладин", "Охотник", "Разбойник", "Жрец", "Рыцарь смерти", "Шаман", "Маг", "Чернокнижник", null, "Друид"),
|
||||
'ra' => array(-2 => "Орда", -1 => "Альянс", "Обе", "Человек", "Орк", "Дворф", "Ночной эльф", "Нежить", "Таурен", "Гном", "Тролль", null, "Эльф крови", "Дреней"),
|
||||
@@ -103,6 +129,21 @@ $lang = array(
|
||||
null, null, "Облик стремительной птицы", "Облик Тьмы", "Облик птицы",
|
||||
"Незаметность", "Облик лунного совуха", "Дух воздаяния"
|
||||
),
|
||||
'me' => array(
|
||||
null, "Подчинённый", "Дезориентирован", "Разоружённый", "Отвлечён", "Убегающий", "Неуклюжий", "Оплетён",
|
||||
"Немота", "В покое", "Усыплён", "Пойманный в ловушку", "Оглушен", "Замороженный", "Бездейственный", "Кровоточащий",
|
||||
"Целительное", "Превращён", "Изгнан", "Ограждён", "Скован", "Оседлавший", "Соблазнён", "Обращение",
|
||||
"Испуганный", "Неуязвимый", "Прервано", "Замедленный", "Открытие", "Неуязвимый", "Ошеломлён", "Исступление"
|
||||
),
|
||||
'ct' => array(
|
||||
null, "Животное", "Дракон", "Демон", "Элементаль",
|
||||
"Великан", "Нежить", "Гуманоид", "Существо", "Механизм",
|
||||
"Разное", "Тотем", "Спутник", "Облако газа"
|
||||
),
|
||||
'professions' => array(
|
||||
171 => "Алхимия", 164 => "Кузнечное дело", 333 => "Наложение чар", 202 => "Инженерное дело", 773 => "Начертание", 755 => "Ювелирное дело",
|
||||
165 => "Кожевничество", 186 => "Горное дело", 197 => "Портняжное дело", 185 => "Кулинария", 129 => "Первая помощь", 356 => "Рыбная ловля",
|
||||
),
|
||||
'pvpRank' => array(
|
||||
null, "Private / Scout", "Corporal / Grunt",
|
||||
"Sergeant / Sergeant", "Master Sergeant / Senior Sergeant", "Sergeant Major / First Sergeant",
|
||||
@@ -195,6 +236,26 @@ $lang = array(
|
||||
)
|
||||
),
|
||||
'spell' => array(
|
||||
'_spellDetails' => "Описание заклинания",
|
||||
'_cost' => "Цена",
|
||||
'_range' => "Радиус действия",
|
||||
'_castTime' => "Применение",
|
||||
'_cooldown' => "Восстановление",
|
||||
'_distUnit' => "метров",
|
||||
'_forms' => "Форма",
|
||||
'_aura' => "аура",
|
||||
'_effect' => "Эффект",
|
||||
'_none' => "Нет",
|
||||
'_gcd' => "ГКД",
|
||||
'_globCD' => "Общее время восстановления (GCD)",
|
||||
'_gcdCategory' => "Категория ГКД",
|
||||
'_value' => "Значение",
|
||||
'_radius' => "Радиус действия",
|
||||
'_interval' => "Интервал",
|
||||
'_inSlot' => "в слот",
|
||||
|
||||
'starter' => "Начальное заклинание",
|
||||
'trainingCost' => "Цена обучения",
|
||||
'remaining' => "Осталось: %s",
|
||||
'untilCanceled' => "до отмены",
|
||||
'castIn' => "Применение: %s сек.",
|
||||
@@ -203,16 +264,81 @@ $lang = array(
|
||||
'channeled' => "Направляемое",
|
||||
'range' => "Радиус действия: %s м",
|
||||
'meleeRange' => "Дистанция ближнего боя",
|
||||
'unlimRange' => "Неограниченное расстояние",
|
||||
'reagents' => "Реагент",
|
||||
'home' => "%lt;Гостиница>",
|
||||
'tools' => "Инструменты",
|
||||
'pctCostOf' => "от базовой %s",
|
||||
'costPerSec' => ", плюс %s в секунду",
|
||||
'costPerLevel' => ", плюс %s за уровень",
|
||||
'powerRunes' => ["Лед", "Руна льда", "Руна крови", "Смерти"],
|
||||
'powerTypes' => array(
|
||||
-2 => "Здоровье", -1 => null, "Мана", "Ярость", "Тонус", "Энергия", "[Happiness]", "[Rune]", "Руническая сила",
|
||||
'AMMOSLOT' => "[Ammo]", 'STEAM' => "[Steam Pressure]", 'WRATH' => "Гневу", 'PYRITE' => "Колчедан",
|
||||
'HEAT' => "Жар", 'OOZE' => "Слизнюка", 'BLOOD_POWER' => "Сила крови"
|
||||
),
|
||||
'relItems' => array (
|
||||
'base' => "<small>Показать %s, относящиеся к профессии <b>%s</b></small>",
|
||||
'link' => " или ",
|
||||
'recipes' => "<a href=\"?items=9.%s\">рецепты</a>",
|
||||
'crafted' => "<a href=\"?items&filter=cr=86;crs=%s\">производимые предметы</a>"
|
||||
),
|
||||
'cat' => array(
|
||||
7 => "Способности",
|
||||
-13 => "Символы",
|
||||
-11 => array("Умения", 8 => "Броня", 10 => "Языки", 6 => "Оружие"),
|
||||
-4 => "Классовые навыки",
|
||||
-2 => "Таланты",
|
||||
-6 => "Спутники",
|
||||
-5 => "Транспорт",
|
||||
-3 => array(
|
||||
"Способности питомцев", 782 => "Вурдалак", 270 => "Общий", 211 => "Вепрь", 208 => "Волк", 654 => "Гиена", 787 => "Гончая Недр",
|
||||
215 => "Горилла", 218 => "Долгоног", 763 => "Дракондор", 788 => "Дух зверя", 781 => "Дьявозавр", 768 => "Змей", 209 => "Кошка",
|
||||
214 => "Краб", 212 => "Кроколиск", 656 => "Крылатый змей", 653 => "Летучая мышь", 786 => "Люторог", 210 => "Медведь", 775 => "Мотылек",
|
||||
767 => "Опустошитель", 785 => "Оса", 213 => "Падальщик", 203 => "Паук", 766 => "Прыгуана", 783 => "Силитид", 764 => "Скат Пустоты",
|
||||
236 => "Скорпид", 655 => "Сова", 765 => "Спороскат", 780 => "Химера", 784 => "Червь", 251 => "Черепаха", 217 => "Ящер",
|
||||
761 => "Страж Скверны", 189 => "Охотник Скверны", 188 => "Бес", 205 => "Суккуб", 204 => "Демон Бездны"
|
||||
),
|
||||
-7 => array("Таланты питомцев", 411 => "Хитрость", 410 => "Свирепость", 409 => "Упорство"),
|
||||
11 => array(
|
||||
"Профессии",
|
||||
171 => "Алхимия",
|
||||
164 => array("Кузнечное дело", 9788 => "Школа брони", 9787 => "Школа оружейников", 17041 => "Мастер школы топора", 17040 => "Мастер школы молота", 17039 => "Мастер ковки клинков"),
|
||||
333 => "Наложение чар",
|
||||
202 => array("Инженерное дело", 20219 => "Гномская механика", 20222 => "Гоблинская механика"),
|
||||
182 => "Травничество",
|
||||
773 => "Начертание",
|
||||
755 => "Ювелирное дело",
|
||||
165 => array("Кожевничество", 10656 => "Драконья чешуя", 10658 => "Стихия", 10660 => "Племена"),
|
||||
186 => "Горное дело",
|
||||
393 => "Снятие шкур",
|
||||
197 => array("Портняжное дело", 26798 => "Портняжное дело изначальной луноткани", 26801 => "Портняжное дело тенеткани", 26797 => "Портняжное дело чародейского огня")
|
||||
),
|
||||
9 => array("Вторичные навыки", 185 => "Кулинария", 129 => "Первая помощь", 356 => "Рыбная ловля", 762 => "Верховая езда"),
|
||||
-9 => "Способности ГМ",
|
||||
-8 => "Способности НИП",
|
||||
0 => "Разное"
|
||||
),
|
||||
'armorSubClass' => array(
|
||||
"Разное", "Тканевые", "Кожаные", "Кольчужные", "Латные",
|
||||
null, "Щиты", "Манускрипты", "Идолы", "Тотемы",
|
||||
"Печати"
|
||||
),
|
||||
'weaponSubClass' => array(
|
||||
"Одноручные топоры", "Двуручные топоры", "Луки", "Огнестрельное", "Одноручное дробящее",
|
||||
"Двуручное дробящее", "Древковое", "Одноручные мечи", "Двуручные мечи", null,
|
||||
"Посохи", null, null, "Кистевое", "Разное",
|
||||
"Кинжалы", "Метательное", null, "Арбалеты", "Жезлы",
|
||||
"Удочки"
|
||||
),
|
||||
'subClassMasks' => array(
|
||||
0x02A5F3 => 'Оружие ближнего боя', 0x0060 => 'Щит', 0x04000C => 'Оружие дальнего боя', 0xA091 => 'Одноручное оружие ближнего боя'
|
||||
),
|
||||
'traitShort' => array(
|
||||
'atkpwr' => "СА", 'rgdatkpwr' => "Сил", 'splpwr' => "СЗ",
|
||||
'arcsplpwr' => "Урон", 'firsplpwr' => "Урон", 'frosplpwr' => "Урон",
|
||||
'holsplpwr' => "Урон", 'natsplpwr' => "Урон", 'shasplpwr' => "Урон",
|
||||
'splheal' => "Исцеление"
|
||||
)
|
||||
),
|
||||
'item' => array(
|
||||
@@ -272,7 +398,7 @@ $lang = array(
|
||||
"Грудь", "Правая рука", "Левая рука", "Левая рука", "Боеприпасы",
|
||||
"Метательное", "Спина", "Колчан", "Реликвия"
|
||||
),
|
||||
'armorSubclass' => array(
|
||||
'armorSubClass' => array(
|
||||
"Разное", "Ткань", "Кожа", "Кольчуга", "Латы",
|
||||
null, "Щит", "Манускрипт", "Идол", "Тотем",
|
||||
"Печать"
|
||||
@@ -336,7 +462,8 @@ $lang = array(
|
||||
"Увеличивает показатель блокирования щита на %d.",
|
||||
"Unknown Bonus #%d (%d)",
|
||||
)
|
||||
)
|
||||
),
|
||||
'colon' => ': '
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
1217
pages/spell.php
1217
pages/spell.php
File diff suppressed because it is too large
Load Diff
452
pages/spells.php
Normal file
452
pages/spells.php
Normal file
@@ -0,0 +1,452 @@
|
||||
<?php
|
||||
|
||||
if (!defined('AOWOW_REVISION'))
|
||||
die('illegal access');
|
||||
|
||||
|
||||
require 'includes/class.filter.php';
|
||||
|
||||
$cats = Util::extractURLParams($pageParam);
|
||||
$path = [0, 1];
|
||||
$title = [Lang::$game['spells']]; // display max 2 cats, remove this base if nesecary
|
||||
$filter = ['classPanel' => false, 'glyphPanel' => false];
|
||||
$filterHash = !empty($_GET['filter']) ? '#'.sha1(serialize($_GET['filter'])) : null;
|
||||
$cacheKey = implode('_', [CACHETYPE_PAGE, TYPE_SPELL, -1, implode('.', $cats).$filterHash, User::$localeId]);
|
||||
$validCats = array(
|
||||
-2 => array( // Talents: Class => Skill
|
||||
1 => [ 26, 256, 257],
|
||||
2 => [594, 267, 184],
|
||||
3 => [ 50, 163, 51],
|
||||
4 => [253, 38, 39],
|
||||
5 => [613, 56, 78],
|
||||
6 => [770, 771, 772],
|
||||
7 => [375, 373, 374],
|
||||
8 => [237, 8, 6],
|
||||
9 => [355, 354, 593],
|
||||
11 => [574, 134, 573]
|
||||
),
|
||||
-3 => [782, 270, 653, 210, 655, 211, 213, 209, 780, 787, 214, 212, 781, 763, 215, 654, 775, 764, 217, 767, 786, 236, 768, 783, 203, 788, 765, 218, 251, 766, 785, 656, 208, 784, 761, 189, 188, 205, 204], // Pet Spells => Skill
|
||||
-4 => true, // Racial Traits
|
||||
-5 => true, // Mounts
|
||||
-6 => true, // Companions
|
||||
-7 => [409, 410, 411], // PetTalents => TalenTtabId
|
||||
-8 => true, // NPC Abilities
|
||||
-9 => true, // GM Abilities
|
||||
-11 => [6, 8, 10], // Proficiencies [Weapon, Armor, Language]
|
||||
-13 => [1, 2, 3, 4, 5, 6, 7, 8, 9, 11], // Glyphs => Class (GlyphType via filter)
|
||||
0 => true, // Uncategorized
|
||||
7 => array( // Abilities: Class => Skill
|
||||
1 => [ 26, 256, 257],
|
||||
2 => [594, 267, 184],
|
||||
3 => [ 50, 163, 51],
|
||||
4 => [253, 38, 39],
|
||||
5 => [613, 56, 78],
|
||||
6 => [770, 771, 772, 776],
|
||||
7 => [375, 373, 374],
|
||||
8 => [237, 8, 6],
|
||||
9 => [355, 354, 593],
|
||||
11 => [574, 134, 573]
|
||||
),
|
||||
9 => [129, 185, 356, 762], // Secondary Skills
|
||||
11 => array( // Professions: Skill => Spell
|
||||
171 => true,
|
||||
164 => [9788, 9787, 17041, 17040, 17039],
|
||||
333 => true,
|
||||
202 => [20219, 20222],
|
||||
182 => true,
|
||||
773 => true,
|
||||
755 => true,
|
||||
165 => [10656, 10658, 10660],
|
||||
186 => true,
|
||||
393 => true,
|
||||
197 => [26798, 26801, 26797],
|
||||
)
|
||||
);
|
||||
$shortFilter = array(
|
||||
129 => [ 6, 7], // First Aid
|
||||
164 => [ 2, 4], // Blacksmithing
|
||||
165 => [ 8, 1], // Leatherworking
|
||||
171 => [ 1, 6], // Alchemy
|
||||
185 => [ 3, 5], // Cooking
|
||||
186 => [ 9, 0], // Mining
|
||||
197 => [10, 2], // Tailoring
|
||||
202 => [ 5, 3], // Engineering
|
||||
333 => [ 4, 8], // Enchanting
|
||||
356 => [ 0, 9], // Fishing
|
||||
755 => [ 7, 10], // Jewelcrafting
|
||||
773 => [15, 0], // Inscription
|
||||
);
|
||||
|
||||
if (!Util::isValidPage($validCats, $cats))
|
||||
$smarty->error();
|
||||
|
||||
$path = array_merge($path, $cats);
|
||||
|
||||
if (isset($cats))
|
||||
{
|
||||
if (isset($cats[1]))
|
||||
array_pop($title);
|
||||
|
||||
$x = @Lang::$spell['cat'][$cats[0]];
|
||||
if (is_array($x))
|
||||
{
|
||||
if (is_array($x[0]))
|
||||
array_unshift($title, $x[0][0]);
|
||||
else
|
||||
array_unshift($title, $x[0]);
|
||||
}
|
||||
else if ($x !== null)
|
||||
array_unshift($title, $x);
|
||||
}
|
||||
|
||||
if (!$smarty->loadCache($cacheKey, $pageData, $filter))
|
||||
{
|
||||
$conditions = [];
|
||||
$visibleCols = [];
|
||||
$hiddenCols = [];
|
||||
|
||||
switch($cats[0])
|
||||
{
|
||||
case -2: // Character Talents
|
||||
$filter['classPanel'] = true;
|
||||
|
||||
array_push($visibleCols, 'singleclass', 'level', 'schools', 'tier');
|
||||
|
||||
$conditions[] = ['s.typeCat', -2];
|
||||
|
||||
if (isset($cats[1]))
|
||||
array_unshift($title, Lang::$game['cl'][$cats[1]]);
|
||||
|
||||
if (isset($cats[1]) && empty($cats[2])) // i will NOT redefine those class2skillId ... reusing
|
||||
$conditions[] = ['s.skillLine1', $validCats[-2][$cats[1]]];
|
||||
else if (isset($cats[1]))
|
||||
$conditions[] = ['s.skillLine1', $cats[2]];
|
||||
|
||||
break;
|
||||
case -3: // Pet Spells
|
||||
array_push($visibleCols, 'level', 'schools');
|
||||
|
||||
$conditions[] = ['s.typeCat', -3];
|
||||
|
||||
if (isset($cats[1]))
|
||||
{
|
||||
$xCond = null;
|
||||
for ($i = -2; $i < 0; $i++)
|
||||
{
|
||||
foreach (Util::$skillLineMask[$i] as $idx => $pair)
|
||||
{
|
||||
if ($pair[1] == $cats[1])
|
||||
{
|
||||
$xCond = ['AND', ['s.skillLine1', $i], ['s.skillLine2OrMask', 1 << $idx, '&']];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$conditions[] = [
|
||||
'OR',
|
||||
$xCond,
|
||||
['s.skillLine1', $cats[1]],
|
||||
['AND', ['s.skillLine1', 0, '>'], ['s.skillLine2OrMask', $cats[1]]]
|
||||
];
|
||||
|
||||
array_unshift($title, Lang::$spell['cat'][-3][$cats[1]]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$conditions[] = [
|
||||
'OR',
|
||||
['s.skillLine1', [-1, -2]],
|
||||
['s.skillLine1', $validCats[-3]],
|
||||
['AND', ['s.skillLine1', 0, '>'], ['s.skillLine2OrMask', $validCats[-3]]]
|
||||
];
|
||||
}
|
||||
|
||||
break;
|
||||
case -4: // Racials
|
||||
array_push($visibleCols, 'classes');
|
||||
|
||||
$conditions[] = ['s.typeCat', -4];
|
||||
|
||||
break;
|
||||
case -8: // NPC-Spells
|
||||
case -9: // GM Spells
|
||||
array_push($visibleCols, 'level');
|
||||
case -5: // Mounts
|
||||
case -6: // Companions
|
||||
$conditions[] = ['s.typeCat', $cats[0]];
|
||||
|
||||
break;
|
||||
case -7: // Pet Talents
|
||||
array_push($visibleCols, 'level', 'tier');
|
||||
|
||||
$conditions[] = ['s.typeCat', -7];
|
||||
|
||||
if (isset($cats[1]))
|
||||
{
|
||||
array_unshift($title, Lang::$spell['cat'][-7][$cats[1]]);
|
||||
|
||||
switch($cats[1]) // Spells can be used by multiple specs
|
||||
{
|
||||
case 409: // Tenacity
|
||||
$conditions[] = ['s.cuFlags', SPELL_CU_PET_TALENT_TYPE1, '&'];
|
||||
$url = '?pets=1';
|
||||
break;
|
||||
case 410: // Cunning
|
||||
$conditions[] = ['s.cuFlags', SPELL_CU_PET_TALENT_TYPE2, '&'];
|
||||
$url = '?pets=2';
|
||||
break;
|
||||
case 411: // Ferocity
|
||||
$conditions[] = ['s.cuFlags', SPELL_CU_PET_TALENT_TYPE0, '&'];
|
||||
$url = '?pets=0';
|
||||
break;
|
||||
}
|
||||
|
||||
$pageData['params']['note'] = '$sprintf(LANG.lvnote_pettalents, "'.$url.'")';
|
||||
}
|
||||
|
||||
$pageData['params']['_petTalents'] = 1; // not conviced, this is correct, but .. it works
|
||||
|
||||
break;
|
||||
case -11: // Proficiencies ... the subIds are actually SkillLineCategories
|
||||
if (!isset($cats[1]) || $cats[1] != 10)
|
||||
array_push($visibleCols, 'classes');
|
||||
|
||||
$conditions[] = ['s.typeCat', -11];
|
||||
|
||||
if (isset($cats[1]))
|
||||
{
|
||||
if ($cats[1] == 6) // todo (med): we know Weapon(6) includes spell Shoot(3018), that has a mask; but really, ANY proficiency or petSkill should be in that mask so there is no need to differenciate
|
||||
$conditions[] = ['OR', ['s.skillLine1', SpellList::$skillLines[$cats[1]]], ['s.skillLine1', -3]];
|
||||
else
|
||||
$conditions[] = ['s.skillLine1', SpellList::$skillLines[$cats[1]]];
|
||||
|
||||
array_unshift($title, Lang::$spell['cat'][-11][$cats[1]]);
|
||||
}
|
||||
|
||||
break;
|
||||
case -13: // Glyphs
|
||||
$filter['classPanel'] = true;
|
||||
$filter['glyphPanel'] = true;
|
||||
|
||||
array_push($visibleCols, 'singleclass', 'glyphtype');
|
||||
|
||||
$conditions[] = ['s.typeCat', -13];
|
||||
|
||||
if (isset($cats[1]))
|
||||
{
|
||||
array_unshift($title, Lang::$game['cl'][$cats[1]]);
|
||||
$conditions[] = ['s.reqClassMask', 1 << ($cats[1] - 1), '&'];
|
||||
}
|
||||
|
||||
break;
|
||||
case 7: // Abilities
|
||||
$filter['classPanel'] = true;
|
||||
|
||||
array_push($visibleCols, 'level', 'singleclass', 'schools');
|
||||
|
||||
if (isset($cats[1]))
|
||||
array_unshift($title, Lang::$game['cl'][$cats[1]]);
|
||||
|
||||
$conditions[] = ['s.typeCat', [7, -2]];
|
||||
$conditions[] = [['s.cuFlags', (SPELL_CU_TRIGGERED | SPELL_CU_TALENT | SPELL_CU_EXCLUDE_CATEGORY_SEARCH), '&'], 0];
|
||||
|
||||
// Runeforging listed multiple times, exclude from explicit skill-listing
|
||||
// if (isset($cats[1]) && $cats[1] == 6 && isset($cats[2]) && $cats[2] != 776)
|
||||
// $conditions[] = [['s.attributes0', 0x80, '&'], 0];
|
||||
// else
|
||||
// $conditions[] = [
|
||||
// [['s.attributes0', 0x80, '&'], 0], // ~SPELL_ATTR0_HIDDEN_CLIENTSIDE
|
||||
// ['s.attributes0', 0x20, '&'], // SPELL_ATTR0_TRADESPELL (DK: Runeforging)
|
||||
// 'OR'
|
||||
// ];
|
||||
|
||||
if (isset($cats[2]))
|
||||
{
|
||||
$conditions[] = [
|
||||
'OR',
|
||||
['s.skillLine1', $cats[2]],
|
||||
['AND', ['s.skillLine1', 0, '>'], ['s.skillLine2OrMask', $cats[2]]]
|
||||
];
|
||||
|
||||
}
|
||||
else if (isset($cats[1]))
|
||||
{
|
||||
$conditions[] = [
|
||||
'OR',
|
||||
['s.skillLine1', $validCats[7][$cats[1]]],
|
||||
['AND', ['s.skillLine1', 0, '>'], ['s.skillLine2OrMask', $validCats[7][$cats[1]]]]
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
case 9: // Secondary Skills
|
||||
array_push($visibleCols, 'source');
|
||||
|
||||
$conditions[] = ['s.typeCat', 9];
|
||||
|
||||
if (isset($cats[1]))
|
||||
{
|
||||
array_unshift($title, Lang::$spell['cat'][9][$cats[1]]);
|
||||
|
||||
$conditions[] = [
|
||||
'OR',
|
||||
['s.skillLine1', $cats[1]],
|
||||
['AND', ['s.skillLine1', 0, '>'], ['s.skillLine2OrMask', $cats[1]]]
|
||||
];
|
||||
|
||||
if ($sf = @$shortFilter[$cats[1]])
|
||||
{
|
||||
$txt = '';
|
||||
if ($sf[0] && $sf[1])
|
||||
$txt = sprintf(Lang::$spell['relItems']['crafted'], $sf[0]) . Lang::$spell['relItems']['link'] . sprintf(Lang::$spell['relItems']['recipes'], $sf[1]);
|
||||
else if ($sf[0])
|
||||
$txt = sprintf(Lang::$spell['relItems']['crafted'], $sf[0]);
|
||||
else if ($sf[1])
|
||||
$txt = sprintf(Lang::$spell['relItems']['recipes'], $sf[1]);
|
||||
|
||||
$note = Lang::$spell['cat'][$cats[0]][$cats[1]];
|
||||
if (is_array($note))
|
||||
$note = $note[0];
|
||||
|
||||
$pageData['params']['note'] = sprintf(Lang::$spell['relItems']['base'], $txt, $note);
|
||||
$pageData['params']['sort'] = "$['skill', 'name']";
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case 11: // Professions
|
||||
array_push($visibleCols, 'source');
|
||||
|
||||
$conditions[] = ['s.typeCat', 11];
|
||||
|
||||
if (isset($cats[2]))
|
||||
{
|
||||
array_unshift($title, Lang::$spell['cat'][11][$cats[1]][$cats[2]]);
|
||||
|
||||
if ($cats[2] == 9787) // general weaponsmithing
|
||||
$conditions[] = ['s.reqSpellId', [9787, 17039, 17040, 17041]];
|
||||
else
|
||||
$conditions[] = ['s.reqSpellId', $cats[2]];
|
||||
}
|
||||
else if (isset($cats[1]))
|
||||
{
|
||||
$x = Lang::$spell['cat'][11][$cats[1]];
|
||||
if (is_array($x))
|
||||
array_unshift($title, $x[0]);
|
||||
else
|
||||
array_unshift($title, $x);
|
||||
$conditions[] = ['s.skillLine1', $cats[1]];
|
||||
}
|
||||
|
||||
if (isset($cats[1]))
|
||||
{
|
||||
$conditions[] = ['s.skillLine1', $cats[1]];
|
||||
|
||||
if ($sf = @$shortFilter[$cats[1]])
|
||||
{
|
||||
$txt = '';
|
||||
if ($sf[0] && $sf[1])
|
||||
$txt = sprintf(Lang::$spell['relItems']['crafted'], $sf[0]) . Lang::$spell['relItems']['link'] . sprintf(Lang::$spell['relItems']['recipes'], $sf[1]);
|
||||
else if ($sf[0])
|
||||
$txt = sprintf(Lang::$spell['relItems']['crafted'], $sf[0]);
|
||||
else if ($sf[1])
|
||||
$txt = sprintf(Lang::$spell['relItems']['recipes'], $sf[1]);
|
||||
|
||||
$note = Lang::$spell['cat'][$cats[0]][$cats[1]];
|
||||
if (is_array($note))
|
||||
$note = $note[0];
|
||||
|
||||
$pageData['params']['note'] = sprintf(Lang::$spell['relItems']['base'], $txt, $note);
|
||||
$pageData['params']['sort'] = "$['skill', 'name']";
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case 0: // misc. Spells
|
||||
array_push($visibleCols, 'level');
|
||||
|
||||
if ($cats[0] !== null) // !any Spell (php loose comparison: (null == 0) is true)
|
||||
{
|
||||
$conditions[] = 'OR';
|
||||
$conditions[] = ['s.typeCat', 0];
|
||||
$conditions[] = ['s.cuFlags', SPELL_CU_EXCLUDE_CATEGORY_SEARCH, '&'];
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$spells = new SpellList($conditions, true);
|
||||
|
||||
$pageData['data'] = $spells->getListviewData();
|
||||
$pageData['params']['tabs'] = false;
|
||||
|
||||
$spells->addGlobalsToJscript($pageData);
|
||||
|
||||
// create note if search limit was exceeded; overwriting 'note' is intentional
|
||||
if ($spells->getMatches() > $AoWoWconf['sqlLimit'])
|
||||
{
|
||||
$pageData['params']['note'] = '$'.sprintf(Util::$filterResultString, 'LANG.lvnote_spellsfound', $spells->getMatches(), $AoWoWconf['sqlLimit']);
|
||||
$pageData['params']['_truncated'] = 1;
|
||||
}
|
||||
|
||||
if ($spells->filterGetError())
|
||||
$pageData['params']['_errors'] = '$1';
|
||||
|
||||
$mask = $spells->hasDiffFields(['reagent1', 'skillLines', 'trainingCost']);
|
||||
|
||||
if ($mask & 0x1)
|
||||
$visibleCols[] = 'reagents';
|
||||
if (!($mask & 0x2) && $cats[0] != 9 && $cats[0] != 11)
|
||||
$hiddenCols[] = 'skill';
|
||||
if (($mask & 0x4) || $spells->getField('trainingCost'))
|
||||
$visibleCols[] = 'trainingcost';
|
||||
|
||||
if ($visibleCols)
|
||||
$pageData['params']['visibleCols'] = '$'.json_encode($visibleCols);
|
||||
|
||||
if ($hiddenCols)
|
||||
$pageData['params']['hiddenCols'] = '$'.json_encode($hiddenCols);
|
||||
|
||||
// recreate form selection
|
||||
$filter['query'] = isset($_GET['filter']) ? $_GET['filter'] : NULL;
|
||||
$filter['setCr'] = $spells->filterGetSetCriteria();
|
||||
$filter = array_merge($spells->filterGetForm(), $filter);
|
||||
|
||||
$smarty->saveCache($cacheKey, $pageData, $filter);
|
||||
}
|
||||
|
||||
if (isset($filter['gl']) && !is_array($filter['gl']))
|
||||
{
|
||||
while (count($path) < 4)
|
||||
$path[] = 0;
|
||||
|
||||
$path[] = $filter['gl'];
|
||||
}
|
||||
|
||||
$page = array(
|
||||
'tab' => 0, // for g_initHeader($tab)
|
||||
'subCat' => $pageParam !== null ? '='.$pageParam : '',
|
||||
'title' => implode(" - ", $title),
|
||||
'path' => "[".implode(", ", $path)."]",
|
||||
'reqJS' => array(
|
||||
array('path' => 'template/js/filters.js', 'conditional' => false),
|
||||
),
|
||||
);
|
||||
|
||||
// sort for dropdown-menus
|
||||
asort(Lang::$game['ra']);
|
||||
asort(Lang::$game['cl']);
|
||||
asort(Lang::$game['sc']);
|
||||
asort(Lang::$game['me']);
|
||||
Lang::$game['race'] = Util::ucFirst(Lang::$game['race']);
|
||||
|
||||
$smarty->updatePageVars($page);
|
||||
$smarty->assign('filter', $filter);
|
||||
$smarty->assign('lang', array_merge(Lang::$main, Lang::$game, Lang::$achievement));
|
||||
$smarty->assign('mysql', DB::Aowow()->getStatistics());
|
||||
$smarty->assign('lvData', $pageData);
|
||||
$smarty->display('spells.tpl');
|
||||
|
||||
?>
|
||||
472
search.php
472
search.php
@@ -3,8 +3,6 @@
|
||||
if (!defined('AOWOW_REVISION'))
|
||||
die('invalid access');
|
||||
|
||||
Util::execTime(true);
|
||||
|
||||
/*
|
||||
if &json
|
||||
=> search by compare or profiler
|
||||
@@ -28,25 +26,25 @@ Util::execTime(true);
|
||||
5: Listview - template: 'currency', id: 'currencies', name: LANG.tab_currencies,
|
||||
6: Listview - template: 'itemset', id: 'itemsets', name: LANG.tab_itemsets,
|
||||
7: Listview - template: 'item', id: 'items', name: LANG.tab_items,
|
||||
8: Listview - template: 'spell', id: 'abilities', name: LANG.tab_abilities, visibleCols: ['level', 'schools'],
|
||||
9: Listview - template: 'spell', id: 'talents', name: LANG.tab_talents, visibleCols: ['level', 'schools'], hiddenCols: ['reagents'],
|
||||
10: Listview - template: 'spell', id: 'glyphs', name: LANG.tab_glyphs, visibleCols: ['singleclass', 'glyphtype'], hiddenCols: ['reagents', 'skill', 'level'],
|
||||
11: Listview - template: 'spell', id: 'proficiencies', name: LANG.tab_proficiencies, visibleCols: ['classes'], hiddenCols: ['reagents', 'skill'],
|
||||
12: Listview - template: 'spell', id: 'professions', name: LANG.tab_professions, visibleCols: ['source'],
|
||||
13: Listview - template: 'spell', id: 'companions', name: LANG.tab_companions, visibleCols: ['reagents'], hiddenCols: ['level', 'skill'],
|
||||
14: Listview - template: 'spell', id: 'mounts', name: LANG.tab_mounts, visibleCols: ['reagents'], hiddenCols: ['level', 'skill'],
|
||||
15: Listview - template: 'npc', id: 'npcs', name: LANG.tab_npcs,
|
||||
16: Listview - template: 'quest', id: 'quests', name: LANG.tab_quests,
|
||||
17: Listview - template: 'achievement', id: 'achievements', name: LANG.tab_achievements, visibleCols: ['category'],
|
||||
18: Listview - template: 'achievement', id: 'statistics', name: LANG.tab_statistics, visibleCols: ['category'], hiddenCols: ['side', 'points', 'rewards'],
|
||||
19: Listview - template: 'zone', id: 'zones', name: LANG.tab_zones,
|
||||
20: Listview - template: 'object', id: 'objects', name: LANG.tab_objects,
|
||||
21: Listview - template: 'faction', id: 'factions', name: LANG.tab_factions,
|
||||
22: Listview - template: 'skill', id: 'skills', name: LANG.tab_skills, hiddenCols: ['reagents', 'skill'],
|
||||
8: Listview - template: 'spell', id: 'abilities', name: LANG.tab_abilities,
|
||||
9: Listview - template: 'spell', id: 'talents', name: LANG.tab_talents,
|
||||
10: Listview - template: 'spell', id: 'glyphs', name: LANG.tab_glyphs,
|
||||
11: Listview - template: 'spell', id: 'proficiencies', name: LANG.tab_proficiencies,
|
||||
12: Listview - template: 'spell', id: 'professions', name: LANG.tab_professions,
|
||||
13: Listview - template: 'spell', id: 'companions', name: LANG.tab_companions,
|
||||
14: Listview - template: 'spell', id: 'mounts', name: LANG.tab_mounts,
|
||||
todo 15: Listview - template: 'npc', id: 'npcs', name: LANG.tab_npcs,
|
||||
todo 16: Listview - template: 'quest', id: 'quests', name: LANG.tab_quests,
|
||||
17: Listview - template: 'achievement', id: 'achievements', name: LANG.tab_achievements,
|
||||
18: Listview - template: 'achievement', id: 'statistics', name: LANG.tab_statistics,
|
||||
todo 19: Listview - template: 'zone', id: 'zones', name: LANG.tab_zones,
|
||||
todo 20: Listview - template: 'object', id: 'objects', name: LANG.tab_objects,
|
||||
todo 21: Listview - template: 'faction', id: 'factions', name: LANG.tab_factions,
|
||||
todo 22: Listview - template: 'skill', id: 'skills', name: LANG.tab_skills, hiddenCols: ['reagents', 'skill'],
|
||||
23: Listview - template: 'pet', id: 'pets', name: LANG.tab_pets,
|
||||
24: Listview - template: 'spell', id: 'npc-abilities', name: LANG.tab_npcabilities, visibleCols: ['level'], hiddenCols: ['reagents', 'skill'],
|
||||
25: Listview - template: 'spell', id: 'spells', name: LANG.tab_uncategorizedspells, visibleCols: ['level'], hiddenCols: ['reagents', 'skill'],
|
||||
26: Listview - template: 'profile', id: 'characters', name: LANG.tab_characters, visibleCols: ['race','classs','level','talents','gearscore','achievementpoints'],
|
||||
24: Listview - template: 'spell', id: 'npc-abilities', name: LANG.tab_npcabilities,
|
||||
25: Listview - template: 'spell', id: 'spells', name: LANG.tab_uncategorizedspells,
|
||||
todo 26: Listview - template: 'profile', id: 'characters', name: LANG.tab_characters, visibleCols: ['race','classs','level','talents','gearscore','achievementpoints'],
|
||||
27: Profiles..?
|
||||
28: Guilds..?
|
||||
29: Arena Teams..?
|
||||
@@ -115,7 +113,7 @@ if ($searchMask & 0x1)
|
||||
weapon: build manually - ItemSubClassMask
|
||||
roles: build manually - 1:heal; 2:mleDPS; 4:rngDPS; 8:tank
|
||||
*/
|
||||
$classes = new CharClassList(array(['name_loc'.User::$localeId, $query]], $maxResults));
|
||||
$classes = new CharClassList(array(['name_loc'.User::$localeId, $query], $maxResults));
|
||||
|
||||
if ($data = $classes->getListviewData())
|
||||
{
|
||||
@@ -129,6 +127,12 @@ if ($searchMask & 0x1)
|
||||
'data' => $data,
|
||||
'params' => ['tabs' => '$myTabs']
|
||||
);
|
||||
|
||||
if ($classes->getMatches() > $maxResults)
|
||||
{
|
||||
// $found['class']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_', $classes->getMatches(), $maxResults);
|
||||
$found['class']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,6 +159,12 @@ if ($searchMask & 0x2)
|
||||
'data' => $data,
|
||||
'params' => ['tabs' => '$myTabs']
|
||||
);
|
||||
|
||||
if ($races->getMatches() > $maxResults)
|
||||
{
|
||||
// $found['race']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_', $races->getMatches(), $maxResults);
|
||||
$found['race']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -193,6 +203,12 @@ if ($searchMask & 0x4)
|
||||
'data' => $data,
|
||||
'params' => ['tabs' => '$myTabs']
|
||||
);
|
||||
|
||||
if ($titles->getMatches() > $maxResults)
|
||||
{
|
||||
// $found['title']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_', $titles->getMatches(), $maxResults);
|
||||
$found['title']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -226,10 +242,16 @@ if ($searchMask & 0x8)
|
||||
$found['event'] = array(
|
||||
'type' => TYPE_WORLDEVENT,
|
||||
'appendix' => ' (World Event)',
|
||||
'matches' => $money->getMatches(),
|
||||
'matches' => $wEvents->getMatches(),
|
||||
'data' => $data,
|
||||
'params' => ['tabs' => '$myTabs']
|
||||
);
|
||||
|
||||
if ($wEvents->getMatches() > $maxResults)
|
||||
{
|
||||
// $found['event']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_', $wEvents->getMatches(), $maxResults);
|
||||
$found['event']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -335,26 +357,291 @@ if ($searchMask & 0x40)
|
||||
}
|
||||
}
|
||||
|
||||
// 8 Abilities
|
||||
// if ($searchMask & 0x80)
|
||||
// 8 Abilities (Player + Pet)
|
||||
if ($searchMask & 0x80)
|
||||
{
|
||||
$conditions = array( // hmm, inclued classMounts..?
|
||||
['s.typeCat', [7, -2, -3]],
|
||||
[['s.cuFlags', (SPELL_CU_TRIGGERED | SPELL_CU_TALENT | SPELL_CU_EXCLUDE_CATEGORY_SEARCH), '&'], 0],
|
||||
[['s.attributes0', 0x80, '&'], 0],
|
||||
['s.name_loc'.User::$localeId, $query],
|
||||
$maxResults
|
||||
);
|
||||
|
||||
// 9 Talents
|
||||
// if ($searchMask & 0x100)
|
||||
$abilities = new SpellList($conditions);
|
||||
|
||||
if ($data = $abilities->getListviewData())
|
||||
{
|
||||
$abilities->addGlobalsToJscript($jsGlobals);
|
||||
|
||||
$vis = ['level', 'singleclass', 'schools'];
|
||||
|
||||
if ($abilities->hasDiffFields(['reagent1']))
|
||||
$vis[] = 'reagents';
|
||||
|
||||
while ($abilities->iterate())
|
||||
{
|
||||
$data[$abilities->id]['param1'] = '"'.strToLower($abilities->getField('iconString')).'"';
|
||||
$data[$abilities->id]['param2'] = '"'.$abilities->ranks[$abilities->id].'"';
|
||||
}
|
||||
|
||||
$found['ability'] = array(
|
||||
'type' => TYPE_SPELL,
|
||||
'appendix' => ' (Ability)',
|
||||
'matches' => $abilities->getMatches(),
|
||||
'data' => $data,
|
||||
'params' => [
|
||||
'id' => 'abilities',
|
||||
'tabs' => '$myTabs',
|
||||
'name' => '$LANG.tab_abilities',
|
||||
'visibleCols' => '$'.json_encode($vis)
|
||||
]
|
||||
);
|
||||
|
||||
if ($abilities->getMatches() > $maxResults)
|
||||
{
|
||||
$found['ability']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_abilitiesfound', $abilities->getMatches(), $maxResults);
|
||||
$found['ability']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 9 Talents (Player + Pet)
|
||||
if ($searchMask & 0x100)
|
||||
{
|
||||
$conditions = array(
|
||||
['s.typeCat', [-7, -2]],
|
||||
['s.name_loc'.User::$localeId, $query],
|
||||
$maxResults
|
||||
);
|
||||
|
||||
$talents = new SpellList($conditions);
|
||||
|
||||
if ($data = $talents->getListviewData())
|
||||
{
|
||||
$talents->addGlobalsToJscript($jsGlobals);
|
||||
|
||||
while ($talents->iterate())
|
||||
{
|
||||
$data[$talents->id]['param1'] = '"'.strToLower($talents->getField('iconString')).'"';
|
||||
$data[$talents->id]['param2'] = '"'.$talents->ranks[$talents->id].'"';
|
||||
}
|
||||
|
||||
$found['talent'] = array(
|
||||
'type' => TYPE_SPELL,
|
||||
'appendix' => ' (Talent)',
|
||||
'matches' => $talents->getMatches(),
|
||||
'data' => $data,
|
||||
'params' => [
|
||||
'id' => 'talents',
|
||||
'tabs' => '$myTabs',
|
||||
'name' => '$LANG.tab_talents',
|
||||
'visibleCols' => "$['level', 'singleclass', 'schools']"
|
||||
]
|
||||
);
|
||||
|
||||
if ($talents->getMatches() > $maxResults)
|
||||
{
|
||||
$found['talent']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_talentsfound', $talents->getMatches(), $maxResults);
|
||||
$found['talent']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 10 Glyphs
|
||||
// if ($searchMask & 0x200)
|
||||
if ($searchMask & 0x200)
|
||||
{
|
||||
$conditions = array(
|
||||
['s.typeCat', -13],
|
||||
['s.name_loc'.User::$localeId, $query],
|
||||
$maxResults
|
||||
);
|
||||
|
||||
$glyphs = new SpellList($conditions);
|
||||
|
||||
if ($data = $glyphs->getListviewData())
|
||||
{
|
||||
$glyphs->addGlobalsToJscript($jsGlobals);
|
||||
|
||||
while ($glyphs->iterate())
|
||||
$data[$glyphs->id]['param1'] = '"'.strToLower($glyphs->getField('iconString')).'"';
|
||||
|
||||
$found['glyph'] = array(
|
||||
'type' => TYPE_SPELL,
|
||||
'appendix' => ' (Glyph)',
|
||||
'matches' => $glyphs->getMatches(),
|
||||
'data' => $data,
|
||||
'params' => [
|
||||
'id' => 'glyphs',
|
||||
'tabs' => '$myTabs',
|
||||
'name' => '$LANG.tab_glyphs',
|
||||
'visibleCols' => "$['singleclass', 'glyphtype']"
|
||||
]
|
||||
);
|
||||
|
||||
if ($glyphs->getMatches() > $maxResults)
|
||||
{
|
||||
$found['glyph']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_glyphsfound', $glyphs->getMatches(), $maxResults);
|
||||
$found['glyph']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 11 Proficiencies
|
||||
// if ($searchMask & 0x400)
|
||||
if ($searchMask & 0x400)
|
||||
{
|
||||
$conditions = array(
|
||||
['s.typeCat', -11],
|
||||
['s.name_loc'.User::$localeId, $query],
|
||||
$maxResults
|
||||
);
|
||||
|
||||
// 12 Professions
|
||||
// if ($searchMask & 0x800)
|
||||
$prof = new SpellList($conditions);
|
||||
|
||||
if ($data = $prof->getListviewData())
|
||||
{
|
||||
$prof->addGlobalsToJscript($jsGlobals);
|
||||
|
||||
while ($prof->iterate())
|
||||
$data[$prof->id]['param1'] = '"'.strToLower($prof->getField('iconString')).'"';
|
||||
|
||||
$found['proficiency'] = array(
|
||||
'type' => TYPE_SPELL,
|
||||
'appendix' => ' (Proficiency)',
|
||||
'matches' => $prof->getMatches(),
|
||||
'data' => $data,
|
||||
'params' => [
|
||||
'id' => 'proficiencies',
|
||||
'tabs' => '$myTabs',
|
||||
'name' => '$LANG.tab_proficiencies',
|
||||
'visibleCols' => "$['classes']"
|
||||
]
|
||||
);
|
||||
|
||||
if ($prof->getMatches() > $maxResults)
|
||||
{
|
||||
$found['proficiency']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_spellsfound', $prof->getMatches(), $maxResults);
|
||||
$found['proficiency']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 12 Professions (Primary + Secondary)
|
||||
if ($searchMask & 0x800)
|
||||
{
|
||||
$conditions = array(
|
||||
['s.typeCat', [9, 11]],
|
||||
['s.name_loc'.User::$localeId, $query],
|
||||
$maxResults
|
||||
);
|
||||
|
||||
$prof = new SpellList($conditions);
|
||||
|
||||
if ($data = $prof->getListviewData())
|
||||
{
|
||||
$prof->addGlobalsToJscript($jsGlobals);
|
||||
|
||||
while ($prof->iterate())
|
||||
$data[$prof->id]['param1'] = '"'.strToLower($prof->getField('iconString')).'"';
|
||||
|
||||
$found['profession'] = array(
|
||||
'type' => TYPE_SPELL,
|
||||
'appendix' => ' (Profession)',
|
||||
'matches' => $prof->getMatches(),
|
||||
'data' => $data,
|
||||
'params' => [
|
||||
'id' => 'professions',
|
||||
'tabs' => '$myTabs',
|
||||
'name' => '$LANG.tab_professions',
|
||||
'visibleCols' => "$['source', 'reagents']"
|
||||
]
|
||||
);
|
||||
|
||||
if ($prof->getMatches() > $maxResults)
|
||||
{
|
||||
$found['profession']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_professionfound', $prof->getMatches(), $maxResults);
|
||||
$found['profession']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 13 Companions
|
||||
// if ($searchMask & 0x1000)
|
||||
if ($searchMask & 0x1000)
|
||||
{
|
||||
|
||||
$conditions = array(
|
||||
['s.typeCat', -6],
|
||||
['s.name_loc'.User::$localeId, $query],
|
||||
$maxResults
|
||||
);
|
||||
|
||||
$vPets = new SpellList($conditions);
|
||||
|
||||
if ($data = $vPets->getListviewData())
|
||||
{
|
||||
$vPets->addGlobalsToJscript($jsGlobals);
|
||||
|
||||
while ($vPets->iterate())
|
||||
$data[$vPets->id]['param1'] = '"'.strToLower($vPets->getField('iconString')).'"';
|
||||
|
||||
$found['companion'] = array(
|
||||
'type' => TYPE_SPELL,
|
||||
'appendix' => ' (Companion)',
|
||||
'matches' => $vPets->getMatches(),
|
||||
'data' => $data,
|
||||
'params' => [
|
||||
'id' => 'companions',
|
||||
'tabs' => '$myTabs',
|
||||
'name' => '$LANG.tab_companions',
|
||||
'visibleCols' => "$['reagents']"
|
||||
]
|
||||
);
|
||||
|
||||
if ($vPets->getMatches() > $maxResults)
|
||||
{
|
||||
$found['companion']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_companionsfound', $vPets->getMatches(), $maxResults);
|
||||
$found['companion']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 14 Mounts
|
||||
// if ($searchMask & 0x2000)
|
||||
if ($searchMask & 0x2000)
|
||||
{
|
||||
$conditions = array(
|
||||
['s.typeCat', -5],
|
||||
['s.name_loc'.User::$localeId, $query],
|
||||
$maxResults
|
||||
);
|
||||
|
||||
$mounts = new SpellList($conditions);
|
||||
|
||||
if ($data = $mounts->getListviewData())
|
||||
{
|
||||
$mounts->addGlobalsToJscript($jsGlobals);
|
||||
|
||||
while ($mounts->iterate())
|
||||
$data[$mounts->id]['param1'] = '"'.strToLower($mounts->getField('iconString')).'"';
|
||||
|
||||
$found['mount'] = array(
|
||||
'type' => TYPE_SPELL,
|
||||
'appendix' => ' (Mount)',
|
||||
'matches' => $mounts->getMatches(),
|
||||
'data' => $data,
|
||||
'params' => [
|
||||
'id' => 'mounts',
|
||||
'tabs' => '$myTabs',
|
||||
'name' => '$LANG.tab_mounts',
|
||||
]
|
||||
);
|
||||
|
||||
if ($mounts->getMatches() > $maxResults)
|
||||
{
|
||||
$found['mount']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_mountsfound', $mounts->getMatches(), $maxResults);
|
||||
$found['mount']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 15 NPCs
|
||||
// if ($searchMask & 0x4000)
|
||||
@@ -453,6 +740,7 @@ if ($searchMask & 0x20000)
|
||||
if ($searchMask & 0x400000)
|
||||
{
|
||||
$pets = new PetList(array($maxResults, ['name_loc'.User::$localeId, $query]));
|
||||
|
||||
if ($data = $pets->getListviewData())
|
||||
{
|
||||
$pets->addGlobalsToJScript($jsGlobals);
|
||||
@@ -469,14 +757,106 @@ if ($searchMask & 0x400000)
|
||||
'tabs' => '$myTabs',
|
||||
]
|
||||
);
|
||||
|
||||
if ($pets->getMatches() > $maxResults)
|
||||
{
|
||||
$found['pet']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_petsfound', $pets->getMatches(), $maxResults);
|
||||
$found['pet']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 24 NPCAbilities
|
||||
// if ($searchMask & 0x800000)
|
||||
if ($searchMask & 0x800000)
|
||||
{
|
||||
$conditions = array(
|
||||
['s.name_loc'.User::$localeId, $query],
|
||||
['s.typeCat', -8],
|
||||
$maxResults
|
||||
);
|
||||
|
||||
// 25 Spells (Misc)
|
||||
// if ($searchMask & 0x1000000)
|
||||
$npcAbilities = new SpellList($conditions);
|
||||
|
||||
if ($data = $npcAbilities->getListviewData())
|
||||
{
|
||||
$npcAbilities->addGlobalsToJscript($jsGlobals);
|
||||
|
||||
while ($npcAbilities->iterate())
|
||||
$data[$npcAbilities->id]['param1'] = '"'.strToLower($npcAbilities->getField('iconString')).'"';
|
||||
|
||||
$found['npcSpell'] = array(
|
||||
'type' => TYPE_SPELL,
|
||||
'appendix' => ' (Spell)',
|
||||
'matches' => $npcAbilities->getMatches(),
|
||||
'data' => $data,
|
||||
'params' => [
|
||||
'id' => 'npc-abilities',
|
||||
'tabs' => '$myTabs',
|
||||
'name' => '$LANG.tab_npcabilities',
|
||||
'visibleCols' => "$['level']",
|
||||
'hiddenCols' => "$['skill']"
|
||||
]
|
||||
);
|
||||
|
||||
if ($npcAbilities->getMatches() > $maxResults)
|
||||
{
|
||||
$found['npcSpell']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_spellsfound', $npcAbilities->getMatches(), $maxResults);
|
||||
$found['npcSpell']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 25 Spells (Misc + GM)
|
||||
if ($searchMask & 0x1000000)
|
||||
{
|
||||
$conditions = array(
|
||||
['s.name_loc'.User::$localeId, $query],
|
||||
['OR', ['s.typeCat', [0, -9]], ['s.cuFlags', SPELL_CU_EXCLUDE_CATEGORY_SEARCH, '&']],
|
||||
$maxResults
|
||||
);
|
||||
|
||||
$t = [];
|
||||
Util::execTime();
|
||||
|
||||
$misc = new SpellList($conditions);
|
||||
|
||||
$t[] = Util::execTime();
|
||||
|
||||
if ($data = $misc->getListviewData())
|
||||
{
|
||||
$t[] = Util::execTime();
|
||||
|
||||
$misc->addGlobalsToJscript($jsGlobals);
|
||||
|
||||
$t[] = Util::execTime();
|
||||
|
||||
while ($misc->iterate())
|
||||
$data[$misc->id]['param1'] = '"'.strToLower($misc->getField('iconString')).'"';
|
||||
|
||||
$t[] = Util::execTime();
|
||||
|
||||
$found['spell'] = array(
|
||||
'type' => TYPE_SPELL,
|
||||
'appendix' => ' (Spell)',
|
||||
'matches' => $misc->getMatches(),
|
||||
'data' => $data,
|
||||
'params' => [
|
||||
'tabs' => '$myTabs',
|
||||
'name' => '$LANG.tab_uncategorizedspells',
|
||||
'visibleCols' => "$['level']",
|
||||
'hiddenCols' => "$['skill']",
|
||||
]
|
||||
);
|
||||
|
||||
$t[] = Util::execTime();
|
||||
|
||||
if ($misc->getMatches() > $maxResults)
|
||||
{
|
||||
$found['spell']['params']['note'] = '$'.sprintf(Util::$narrowResultString, 'LANG.lvnote_spellsfound', $misc->getMatches(), $maxResults);
|
||||
$found['spell']['params']['_truncated'] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 26 Characters
|
||||
// if ($searchMask & 0x2000000)
|
||||
@@ -581,17 +961,21 @@ else /* if ($searchMask & SEARCH_TYPE_REGULAR) */
|
||||
foreach ($found as $tmp)
|
||||
$foundTotal += count($tmp['data']);
|
||||
|
||||
// // only one match -> redirect to find
|
||||
// if ($foundTotal == 1)
|
||||
// {
|
||||
// header("Location: ?".Util::$typeStrings[$found[0]['type']].'='.$found[0]['data'][0]['id']);
|
||||
// die();
|
||||
// }
|
||||
// only one match -> redirect to find
|
||||
if ($foundTotal == 1)
|
||||
{
|
||||
$_ = array_pop($found);
|
||||
$type = Util::$typeStrings[$_['type']];
|
||||
$typeId = key(array_pop($_));
|
||||
|
||||
header("Location: ?".$type.'='.$typeId);
|
||||
die();
|
||||
}
|
||||
|
||||
$vars = array(
|
||||
'title' => $search.' - '.Lang::$search['search'],
|
||||
'tab' => 0, // tabId 0: Database for g_initHeader($tab)
|
||||
'reqJS' => [array('path' => 'template/js/swfobject.js', 'conditional' => false)]
|
||||
'title' => $search.' - '.Lang::$search['search'],
|
||||
'tab' => 0, // tabId 0: Database for g_initHeader($tab)
|
||||
'reqJS' => [array('path' => 'template/js/swfobject.js', 'conditional' => false)]
|
||||
);
|
||||
|
||||
$smarty->updatePageVars($vars);
|
||||
|
||||
87
template/bricks/listviews/spell.tpl
Normal file
87
template/bricks/listviews/spell.tpl
Normal file
@@ -0,0 +1,87 @@
|
||||
{strip}
|
||||
new Listview({ldelim}
|
||||
template:'spell',
|
||||
{if !isset($params.id)}id:'spells',{/if}
|
||||
{if !isset($params.tabs)}tabs:'listview-generic',{/if}
|
||||
{if !isset($params.name)}name:LANG.tab_spells,{/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}
|
||||
name:'{$curr.quality}{$curr.name|escape:"javascript"}',
|
||||
{if isset($curr.level)}level:{$curr.level},{/if}
|
||||
school:{$curr.school},
|
||||
cat:{$curr.cat},
|
||||
{if isset($curr.rank)}
|
||||
rank:'{$curr.rank|escape:"javascript"}',
|
||||
{/if}
|
||||
{if isset($curr.type)}
|
||||
type:'{$curr.type}',
|
||||
{/if}
|
||||
{if isset($curr.skill)}
|
||||
skill:[
|
||||
{section name=j loop=$curr.skill}
|
||||
{$curr.skill[j]}
|
||||
{if $smarty.section.j.last}{else},{/if}
|
||||
{/section}
|
||||
],
|
||||
{/if}
|
||||
{if isset($curr.reqclass)}
|
||||
reqclass:{$curr.reqclass},
|
||||
{/if}
|
||||
{if isset($curr.reqrace)}
|
||||
reqrace:{$curr.reqrace},
|
||||
{/if}
|
||||
{if isset($curr.glyphtype)}
|
||||
glyphtype:{$curr.glyphtype},
|
||||
{/if}
|
||||
{if !empty($curr.source)}
|
||||
source:{$curr.source},
|
||||
{/if}
|
||||
{if isset($curr.trainingcost)}
|
||||
trainingcost:{$curr.trainingcost},
|
||||
{/if}
|
||||
{if !empty($curr.reagents)}
|
||||
reagents:[
|
||||
{section name=j loop=$curr.reagents}
|
||||
[{$curr.reagents[j][0]},{$curr.reagents[j][1]}]
|
||||
{if $smarty.section.j.last}{else},{/if}
|
||||
{/section}
|
||||
],
|
||||
{/if}
|
||||
{if isset($curr.creates)}
|
||||
creates:[
|
||||
{section name=j loop=$curr.creates}
|
||||
{$curr.creates[j]}
|
||||
{if $smarty.section.j.last}{else},{/if}
|
||||
{/section}
|
||||
],
|
||||
{/if}
|
||||
{if isset($curr.learnedat)}
|
||||
learnedat:{$curr.learnedat},
|
||||
{/if}
|
||||
{if isset($curr.colors)}
|
||||
colors:[
|
||||
{section name=j loop=$curr.colors}
|
||||
{$curr.colors[j]}
|
||||
{if $smarty.section.j.last}{else},{/if}
|
||||
{/section}
|
||||
],
|
||||
{/if}
|
||||
{if isset($curr.percent)}
|
||||
percent:{$curr.percent},
|
||||
{/if}
|
||||
id:{$curr.id}
|
||||
{rdelim}
|
||||
{if $smarty.foreach.i.last}{else},{/if}
|
||||
{/foreach}
|
||||
]
|
||||
{rdelim});
|
||||
{/strip}
|
||||
@@ -325,7 +325,6 @@ var fi_filters = {
|
||||
{ id: 20, name: 'hasreagents', type: 'yn' },
|
||||
{ id: 12, name: 'lastrank', type: 'yn' },
|
||||
{ id: 13, name: 'rankno', type: 'num' },
|
||||
{ id: 22, name: 'proficiencytype', type: 'proficiencytype' },
|
||||
{ id: 19, name: 'scaling', type: 'yn' },
|
||||
{ id: 25, name: 'rewardsskillups', type: 'yn' },
|
||||
{ id: 3, name: 'requiresnearbyobject', type: 'yn' },
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -547,6 +547,18 @@ var mn_spells = [
|
||||
[9,"Brujo",,[[355,"Aflicción",,,{tinyIcon:"Spell_Shadow_DeathCoil"}],[354,"Demonología",,,{tinyIcon:"Spell_Shadow_Metamorphosis"}],[593,"Destrucción",,,{tinyIcon:"Spell_Shadow_RainOfFire"}]],{className:"c9",tinyIcon:"class_warlock"}],
|
||||
[1,"Guerrero",,[[26,"Armas",,,{tinyIcon:"Ability_Rogue_Eviscerate"}],[256,"Furia",,,{tinyIcon:"Ability_Warrior_InnerRage"}],[257,"Protección",,,{tinyIcon:"INV_Shield_06"}]],{className:"c1",tinyIcon:"class_warrior"}]
|
||||
]],
|
||||
[-13, "Glifos",, [
|
||||
[6, "Caballero de la muerte",, [[1, "Sublime", '?spells=-13.6&filter=gl=1'],[2, "Menor", '?spells=-13.6&filter=gl=2']], {className:'c6', tinyIcon:'class_deathknight'}],
|
||||
[11, "Druida",, [[1, "Sublime", '?spells=-13.11&filter=gl=1'],[2, "Menor", '?spells=-13.11&filter=gl=2']], {className:'c11', tinyIcon:'class_druid'}],
|
||||
[3, "Cazador",, [[1, "Sublime", '?spells=-13.3&filter=gl=1'],[2, "Menor", '?spells=-13.3&filter=gl=2']], {className:'c3', tinyIcon:'class_hunter'}],
|
||||
[8, "Mago",, [[1, "Sublime", '?spells=-13.8&filter=gl=1'],[2, "Menor", '?spells=-13.8&filter=gl=2']], {className:'c8', tinyIcon:'class_mage'}],
|
||||
[2, "Paladín",, [[1, "Sublime", '?spells=-13.2&filter=gl=1'],[2, "Menor", '?spells=-13.2&filter=gl=2']], {className:'c2', tinyIcon:'class_paladin'}],
|
||||
[5, "Sacerdote",, [[1, "Sublime", '?spells=-13.5&filter=gl=1'],[2, "Menor", '?spells=-13.5&filter=gl=2']], {className:'c5', tinyIcon:'class_priest'}],
|
||||
[4, "Pícaro",, [[1, "Sublime", '?spells=-13.4&filter=gl=1'],[2, "Menor", '?spells=-13.4&filter=gl=2']], {className:'c4', tinyIcon:'class_rogue'}],
|
||||
[7, "Chamán",, [[1, "Sublime", '?spells=-13.7&filter=gl=1'],[2, "Menor", '?spells=-13.7&filter=gl=2']], {className:'c7', tinyIcon:'class_shaman'}],
|
||||
[9, "Brujo",, [[1, "Sublime", '?spells=-13.9&filter=gl=1'],[2, "Menor", '?spells=-13.9&filter=gl=2']], {className:'c9', tinyIcon:'class_warlock'}],
|
||||
[1, "Guerrero",, [[1, "Sublime", '?spells=-13.1&filter=gl=1'],[2, "Menor", '?spells=-13.1&filter=gl=2']], {className:'c1', tinyIcon:'class_warrior'}]
|
||||
]],
|
||||
[-11,"Habilidades",,[
|
||||
[6,"Armas"],
|
||||
[8,"Armadura"],
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -27,8 +27,12 @@
|
||||
{if isset($found.quest)} {include file='bricks/listviews/quest.tpl' data=$found.quest.data params=$found.quest.params } {/if}
|
||||
{if isset($found.ability)} {include file='bricks/listviews/spell.tpl' data=$found.ability.data params=$found.ability.params } {/if}
|
||||
{if isset($found.talent)} {include file='bricks/listviews/spell.tpl' data=$found.talent.data params=$found.talent.params } {/if}
|
||||
{if isset($found.glyph)} {include file='bricks/listviews/spell.tpl' data=$found.glyph.data params=$found.glyph.params } {/if}
|
||||
{if isset($found.proficiency)} {include file='bricks/listviews/spell.tpl' data=$found.proficiency.data params=$found.proficiency.params} {/if}
|
||||
{if isset($found.profession)} {include file='bricks/listviews/spell.tpl' data=$found.profession.data params=$found.profession.params } {/if}
|
||||
{if isset($found.companion)} {include file='bricks/listviews/spell.tpl' data=$found.companion.data params=$found.companion.params } {/if}
|
||||
{if isset($found.mount)} {include file='bricks/listviews/spell.tpl' data=$found.mount.data params=$found.mount.params } {/if}
|
||||
{if isset($found.npcSpell)} {include file='bricks/listviews/spell.tpl' data=$found.npcSpell.data params=$found.npcSpell.params } {/if}
|
||||
{if isset($found.petSpell)} {include file='bricks/listviews/spell.tpl' data=$found.petSpell.data params=$found.petSpell.params } {/if}
|
||||
{if isset($found.spell)} {include file='bricks/listviews/spell.tpl' data=$found.spell.data params=$found.spell.params } {/if}
|
||||
{if isset($found.unkSpell)} {include file='bricks/listviews/spell.tpl' data=$found.unkSpell.data params=$found.unkSpell.params } {/if}
|
||||
{if isset($found.zone)} {include file='bricks/listviews/zone.tpl' data=$found.zone.data params=$found.zone.params } {/if}
|
||||
|
||||
201
template/spell.tpl
Normal file
201
template/spell.tpl
Normal file
@@ -0,0 +1,201 @@
|
||||
{include file='header.tpl'}
|
||||
{assign var="iconlist1" value="1"}
|
||||
{assign var="iconlist2" value="1"}
|
||||
<div id="main">
|
||||
<div id="main-precontents"></div>
|
||||
<div id="main-contents" class="main-contents">
|
||||
|
||||
<script type="text/javascript">
|
||||
{include file='bricks/community.tpl'}
|
||||
var g_pageInfo = {ldelim}type: {$page.type}, typeId: {$page.typeId}, name: '{$lvData.page.name|escape:"javascript"}'{rdelim};
|
||||
g_initPath({$page.path});
|
||||
</script>
|
||||
|
||||
{include file='bricks/infobox.tpl'}
|
||||
|
||||
</table>
|
||||
|
||||
<div class="text">
|
||||
<a href="javascript:;" id="open-links-button" class="button-red" onclick="this.blur();
|
||||
Links.show({ldelim} type: 6, typeId: {$lvData.page.id}, linkColor: 'ff71d5ff', linkId: 'spell:{$lvData.page.id}', linkName: '{$lvData.page.name}' {rdelim});">
|
||||
<em><b><i>{$lang.links}</i></b><span>{$lang.links}</span></em></a>
|
||||
<a href="http://old.wowhead.com/?{$query[0]}={$query[1]}" class="button-red"><em><b><i>Wowhead</i></b><span>Wowhead</span></em></a>
|
||||
<h1>{$lvData.page.name}</h1>
|
||||
|
||||
<div id="headicon-generic" style="float: left"></div>
|
||||
<div id="tooltip{$lvData.page.id}-generic" class="tooltip" style="float: left; padding-top: 1px">
|
||||
<table><tr><td>{$lvData.page.info}</td><th style="background-position: top right"></th></tr><tr><th style="background-position: bottom left"></th><th style="background-position: bottom right"></th></tr></table>
|
||||
</div>
|
||||
<div style="clear: left"></div>
|
||||
|
||||
<script type="text/javascript">
|
||||
ge('headicon-generic').appendChild(Icon.create('{$lvData.page.icon}', 2, 0, 0, {$lvData.page.stack}));
|
||||
Tooltip.fix(ge('tooltip{$lvData.page.id}-generic'), 1, 1);
|
||||
</script>
|
||||
|
||||
{if !empty($lvData.page.buff)}
|
||||
<h3>{$lang._aura}</h3>
|
||||
<div id="btt{$lvData.page.id}" class="tooltip">
|
||||
<table><tr><td>{$lvData.page.buff}</td><th style="background-position: top right"></th></tr><tr><th style="background-position: bottom left"></th><th style="background-position: bottom right"></th></tr></table>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
Tooltip.fixSafe(ge('btt{$lvData.page.id}'), 1, 1)
|
||||
</script>
|
||||
{/if}
|
||||
|
||||
{if $lvData.page.reagents}{if $lvData.page.tools}<div style="float: left; margin-right: 75px">{/if}
|
||||
<h3>{$lang.reagents}</h3>
|
||||
<table class="iconlist">
|
||||
{section name=i loop=$lvData.page.reagents}
|
||||
<tr><th align="right" id="iconlist-icon{$iconlist1++}"></th><td><span class="q{$lvData.page.reagents[i].quality}"><a href="?item={$lvData.page.reagents[i].entry}">{$lvData.page.reagents[i].name}</a></span>{if $lvData.page.reagents[i].count > 1} ({$lvData.page.reagents[i].count}){/if}</td></tr>
|
||||
{/section}
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
{section name=i loop=$lvData.page.reagents}
|
||||
ge('iconlist-icon{$iconlist2++}').appendChild(g_items.createIcon({$lvData.page.reagents[i].entry}, 0, {$lvData.page.reagents[i].count}));
|
||||
{/section}
|
||||
</script>
|
||||
{if $lvData.page.tools}</div>{/if}{/if}
|
||||
{if $lvData.page.tools}{if $lvData.page.reagents}<div style="float: left">{/if}
|
||||
<h3>{$lang.tools}</h3>
|
||||
<table class="iconlist">
|
||||
{section name=i loop=$lvData.page.tools}
|
||||
<tr><th align="right" id="iconlist-icon{$iconlist1++}"></th><td><span class="q1"><a href="{$lvData.page.tools[i].url}">{$lvData.page.tools[i].name}</a></span></td></tr>
|
||||
{/section}
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
{section name=i loop=$lvData.page.tools}{if isset($lvData.page.tools[i].entry)}
|
||||
ge('iconlist-icon{$iconlist2++}').appendChild(g_items.createIcon({$lvData.page.tools[i].entry}, 0, 1));
|
||||
{/if}{/section}
|
||||
</script>
|
||||
{if $lvData.page.reagents}</div>{/if}{/if}
|
||||
|
||||
<div class="clear"></div>
|
||||
<h3>{$lang._spellDetails}</h3>
|
||||
|
||||
<table class="grid" id="spelldetails">
|
||||
<colgroup>
|
||||
<col width="8%" />
|
||||
<col width="42%" />
|
||||
<col width="50%" />
|
||||
</colgroup>
|
||||
<tr>
|
||||
<td colspan="2" style="padding: 0; border: 0; height: 1px"></td>
|
||||
<td rowspan="6" style="padding: 0; border-left: 3px solid #404040">
|
||||
<table class="grid" style="border: 0">
|
||||
<tr>
|
||||
<td style="height: 0; padding: 0; border: 0" colspan="2"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="border-left: 0; border-top: 0">{$lang.duration}</th>
|
||||
<td width="100%" style="border-top: 0">{$lvData.page.duration}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="border-left: 0">{$lang.school}</th>
|
||||
<td>{$lvData.page.school}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="border-left: 0">{$lang.mechanic}</th>
|
||||
<td>{$lvData.page.mechanic}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="border-left: 0">{$lang.dispelType}</th>
|
||||
<td>{$lvData.page.dispel}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="border-bottom: 0; border-left: 0">{$lang._gcdCategory}</th>
|
||||
<td style="border-bottom: 0">{$lvData.page.gcdCat}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="border-top: 0">{$lang._cost}</th>
|
||||
<td style="border-top: 0">{if !empty($lvData.page.powerCost)}{$lvData.page.powerCost}{else}{$lang._none}{/if}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{$lang._range}</th>
|
||||
<td>{$lvData.page.range} {$lang._distUnit} <small>({$lvData.page.rangeName})</small></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{$lang._castTime}</th>
|
||||
<td>{$lvData.page.castTime}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{$lang._cooldown}</th>
|
||||
<td>{$lvData.page.cooldown}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><dfn title="{$lang._globCD}">{$lang._gcd}</dfn></th>
|
||||
<td>{$lvData.page.gcd}</td>
|
||||
</tr>
|
||||
{if $lvData.page.stances}
|
||||
<tr>
|
||||
<th>{$lang._forms}</th>
|
||||
<td colspan="3">{$lvData.page.stances}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $lvData.page.items}
|
||||
<tr>
|
||||
<th>{$lang.requires2}</th>
|
||||
<td colspan="3">{$lvData.page.items}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{section name=i loop=$lvData.page.effect}
|
||||
<tr>
|
||||
<th>{$lang._effect} #{$smarty.section.i.index+1}</th>
|
||||
<td colspan="3" style="line-height: 17px">
|
||||
{$lvData.page.effect[i].name}
|
||||
|
||||
<small>
|
||||
{if isset($lvData.page.effect[i].value)}<br>{$lang._value}{$lang.colon}{$lvData.page.effect[i].value}{/if}
|
||||
{if isset($lvData.page.effect[i].radius)}<br>{$lang._radius}{$lang.colon}{$lvData.page.effect[i].radius} {$lang._distUnit}{/if}
|
||||
{if isset($lvData.page.effect[i].interval)}<br>{$lang._interval}{$lang.colon}{$lvData.page.effect[i].interval} {$lang.seconds}{/if}
|
||||
</small>
|
||||
{if isset($lvData.page.effect[i].icon)}
|
||||
<table class="icontab">
|
||||
<tr>
|
||||
<th id="icontab-icon{$smarty.section.i.index}"></th>
|
||||
{if isset($lvData.page.effect[i].icon.quality)}
|
||||
<td><span class="q{$lvData.page.effect[i].icon.quality}"><a href="?item={$lvData.page.effect[i].icon.id}">{$lvData.page.effect[i].icon.name}</a></span></td>
|
||||
{else}
|
||||
<td><a href="?spell={$lvData.page.effect[i].icon.id}">{$lvData.page.effect[i].icon.name}</a></td>
|
||||
{/if}
|
||||
<th></th><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
ge('icontab-icon{$smarty.section.i.index}').appendChild({if isset($lvData.page.effect[i].icon.quality)}g_items{else}g_spells{/if}.createIcon({$lvData.page.effect[i].icon.id}, 1, {$lvData.page.effect[i].icon.count}));
|
||||
</script>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/section}
|
||||
</table>
|
||||
|
||||
<h2>{$lang.related}</h2>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="tabs-generic"></div>
|
||||
<div id="listview-generic" class="listview"></div>
|
||||
<script type="text/javascript">
|
||||
var tabsRelated = new Tabs({ldelim}parent: ge('tabs-generic'){rdelim});
|
||||
{if isset($lvData.taughtbynpc)} {include file='bricks/listviews/creature.tpl' data=$lvData.taughtbynpc.data params=$lvData.taughtbynpc.params } {/if}
|
||||
{if isset($lvData.taughtbyitem)} {include file='bricks/listviews/item.tpl' data=$lvData.taughtbyitem.data params=$lvData.taughtbyitem.params } {/if}
|
||||
{if isset($lvData.taughtbyquest)} {include file='bricks/listviews/quest.tpl' data=$lvData.taughtbyquest.data params=$lvData.taughtbyquest.params} {/if}
|
||||
{if isset($lvData.questreward)} {include file='bricks/listviews/quest.tpl' data=$lvData.questreward.data params=$lvData.questreward.params } {/if}
|
||||
{if isset($lvData.usedbynpc)} {include file='bricks/listviews/creature.tpl' data=$lvData.usedbynpc.data params=$lvData.usedbynpc.params } {/if}
|
||||
{if isset($lvData.usedbyitem)} {include file='bricks/listviews/item.tpl' data=$lvData.usedbyitem.data params=$lvData.usedbyitem.params } {/if}
|
||||
{if isset($lvData.usedbyitemset)} {include file='bricks/listviews/itemset.tpl' data=$lvData.usedbyitemset.data params=$lvData.usedbyitemset.params} {/if}
|
||||
{if isset($lvData.contains)} {include file='bricks/listviews/item.tpl' data=$lvData.contains.data params=$lvData.contains.params } {/if}
|
||||
{if isset($lvData.seealso)} {include file='bricks/listviews/spell.tpl' data=$lvData.seealso.data params=$lvData.seealso.params } {/if}
|
||||
{if isset($lvData.criteria_of)} {include file='bricks/listviews/achievement.tpl' data=$lvData.criteria_of.data params=$lvData.criteria_of.params } {/if}
|
||||
new Listview({ldelim}template: 'comment', id: 'comments', name: LANG.tab_comments, tabs: tabsRelated, parent: 'listview-generic', data: lv_comments{rdelim});
|
||||
tabsRelated.flush();
|
||||
</script>
|
||||
{include file='bricks/contribute.tpl'}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{include file='footer.tpl'}
|
||||
138
template/spells.tpl
Normal file
138
template/spells.tpl
Normal file
@@ -0,0 +1,138 @@
|
||||
{include file='header.tpl'}
|
||||
|
||||
<div id="main">
|
||||
<div id="main-precontents"></div>
|
||||
<div id="main-contents" class="main-contents">
|
||||
|
||||
{if !empty($announcements)}
|
||||
{foreach from=$announcements item=item}
|
||||
{include file='bricks/announcement.tpl' an=$item}
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
||||
<script type="text/javascript">
|
||||
g_initPath({$page.path}, {if empty($filter.query)} 0 {else} 1 {/if});
|
||||
{if isset($filter.query)}Menu.append(mn_database[1], '&filter={$filter.query|escape:'quotes'}'); // todo: menu order varies per locale{/if}
|
||||
</script>
|
||||
|
||||
<div id="fi" style="display:{if empty($filter.query)}none{else}block{/if};">
|
||||
<form action="?spells{$page.subCat}&filter" method="post" name="fi" onsubmit="return fi_submit(this)" onreset="return fi_reset(this)">
|
||||
<div class="rightpanel">
|
||||
<div style="float: left">{$lang.school}:</div>
|
||||
<small><a href="javascript:;" onclick="document.forms['fi'].elements['sc[]'].selectedIndex = -1; return false" onmousedown="return false">clear</a></small>
|
||||
<div class="clear"></div>
|
||||
<select name="sc[]" size="7" multiple="multiple" class="rightselect" style="width: 8em">
|
||||
{foreach from=$lang.sc key=i item=str}{if $str}
|
||||
<option value="{$i}" {if isset($filter.sc) && ($filter.sc == $i || @in_array($i, $filter.sc))}selected{/if}>{$str}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{if $filter.classPanel}
|
||||
<div class="rightpanel2">
|
||||
<div style="float: left">{$lang.class|ucfirst}: </div>
|
||||
<small><a href="javascript:;" onclick="document.forms['fi'].elements['cl[]'].selectedIndex = -1; return false" onmousedown="return false">clear</a></small>
|
||||
<div class="clear"></div>
|
||||
<select name="cl[]" size="8" multiple="multiple" class="rightselect" style="width: 8em">
|
||||
{foreach from=$lang.cl key=i item=str}{if $str}
|
||||
<option value="{$i}"{if isset($filter.cl) && ($filter.cl == $i || @in_array($i, $filter.cl))} selected{/if}>{$str}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{/if}
|
||||
{if $filter.glyphPanel}
|
||||
<div class="rightpanel2">
|
||||
<div style="float: left">{$lang.glyphType|ucfirst}: </div>
|
||||
<small><a href="javascript:;" onclick="document.forms['fi'].elements['gl[]'].selectedIndex = -1; return false" onmousedown="return false">clear</a></small>
|
||||
<div class="clear"></div>
|
||||
<select name="gl[]" size="2" multiple="multiple" class="rightselect" style="width: 8em">
|
||||
{foreach from=$lang.gl key=i item=str}{if $str}
|
||||
<option value="{$i}"{if isset($filter.gl) && ($filter.gl == $i || @in_array($i, $filter.gl))} selected{/if}>{$str}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{/if}
|
||||
<table>
|
||||
<tr>
|
||||
<td>{$lang.name}:</td>
|
||||
<td colspan="2">
|
||||
<table><tr>
|
||||
<td> <input type="text" name="na" size="30" {if isset($filter.na)}value="{$filter.na|escape:'html'}"{/if}/></td>
|
||||
<td> <input type="checkbox" name="ex" value="on" id="spell-ex" {if isset($filter.ex)}checked="checked"{/if}/></td>
|
||||
<td><label for="spell-ex"><span class="tip" onmouseover="Tooltip.showAtCursor(event, LANG.tooltip_extendedspellsearch, 0, 0, 'q')" onmousemove="Tooltip.cursorUpdate(event)" onmouseout="Tooltip.hide()">{$lang.extSearch}</span></label></td>
|
||||
</tr></table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padded">{$lang.level}:</td>
|
||||
<td class="padded"> <input type="text" name="minle" maxlength="2" class="smalltextbox" {if isset($filter.minle)}value="{$filter.minle}"{/if}/> - <input type="text" name="maxle" maxlength="2" class="smalltextbox" {if isset($filter.maxle)}value="{$filter.maxle}"{/if}/></td>
|
||||
<td class="padded"><table cellpadding="0" cellspacing="0" border="0"><tr>
|
||||
<td> {$lang.reqSkillLevel}:</td>
|
||||
<td> <input type="text" name="minrs" maxlength="3" class="smalltextbox2" {if isset($filter.minrs)}value="{$filter.minrs}"{/if}/> - <input type="text" name="maxrs" maxlength="3" class="smalltextbox2" {if isset($filter.maxrs)}value="{$filter.maxrs}"{/if}/></td>
|
||||
</tr></table></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padded">{$lang.race}:</td>
|
||||
<td class="padded"> <select name="ra">
|
||||
<option></option>
|
||||
{foreach from=$lang.ra key=i item=str}{if $str}{if $i > 0}
|
||||
<option value="{$i}"{if isset($filter.ra) && $filter.ra == $i} selected{/if}>{$str}</option>
|
||||
{/if}{/if}{/foreach}
|
||||
</select></td>
|
||||
<td class="padded"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padded">{$lang.mechAbbr}:</td>
|
||||
<td class="padded"> <select name="me">
|
||||
<option></option>
|
||||
{foreach from=$lang.me key=i item=str}{if $str}
|
||||
<option value="{$i}"{if isset($filter.me) && $filter.me == $i} selected{/if}>{$str}</option>
|
||||
{/if}{/foreach}
|
||||
</select></td>
|
||||
<td>
|
||||
<table cellpadding="0" cellspacing="0" border="0"><tr>
|
||||
<td> {$lang.dispelType}:</td>
|
||||
<td> <select name="dt">
|
||||
<option></option>
|
||||
{foreach from=$lang.dt key=i item=str}{if $str}
|
||||
<option value="{$i}"{if isset($filter.dt) && $filter.dt == $i} selected{/if}>{$str}</option>
|
||||
{/if}{/foreach}
|
||||
</select></td>
|
||||
</tr></table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div id="fi_criteria" class="padded criteria"><div></div></div>
|
||||
<div><a href="javascript:;" id="fi_addcriteria" onclick="fi_addCriterion(this); return false">{$lang.addFilter}</a></div>
|
||||
|
||||
<div class="padded2">
|
||||
{$lang.match}:<input type="radio" name="ma" value="" id="ma-0" checked="checked" /><label for="ma-0">{$lang.allFilter}</label><input type="radio" name="ma" value="1" id="ma-1" /><label for="ma-1">{$lang.oneFilter}</label>
|
||||
</div>
|
||||
|
||||
<div class="clear"></div>
|
||||
|
||||
<div class="padded">
|
||||
<input type="submit" value="Apply filter" />
|
||||
<input type="reset" value="{$lang.resetForm}" />
|
||||
<div style="float: right">{$lang.refineSearch}</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<div class="pad"></div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
fi_init('spells');
|
||||
{if isset($filter.setCr)}{$filter.setCr}{/if}
|
||||
//]]></script>
|
||||
|
||||
<div id="listview-generic" class="listview"></div>
|
||||
<script type="text/javascript">
|
||||
{include file='bricks/listviews/spell.tpl' data=$lvData.data params=$lvData.params}
|
||||
</script>
|
||||
|
||||
<div class="clear"></div>
|
||||
</div><!-- main-contents -->
|
||||
</div><!-- main -->
|
||||
|
||||
{include file='footer.tpl'}
|
||||
Reference in New Issue
Block a user