mirror of
https://github.com/Sarjuuk/aowow.git
synced 2025-11-29 15:58:16 +08:00
Template/Update (Part 31)
* convert dbtype 'quest' * make use of separate GlobalStrings for spell rewards
This commit is contained in:
File diff suppressed because it is too large
Load Diff
50
endpoints/quest/quest_power.php
Normal file
50
endpoints/quest/quest_power.php
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Aowow;
|
||||||
|
|
||||||
|
if (!defined('AOWOW_REVISION'))
|
||||||
|
die('illegal access');
|
||||||
|
|
||||||
|
|
||||||
|
class QuestPowerResponse extends TextResponse implements ICache
|
||||||
|
{
|
||||||
|
use TrCache, TrTooltip;
|
||||||
|
|
||||||
|
private const /* string */ POWER_TEMPLATE = '$WowheadPower.registerQuest(%d, %d, %s);';
|
||||||
|
|
||||||
|
protected int $type = Type::QUEST;
|
||||||
|
protected int $typeId = 0;
|
||||||
|
protected int $cacheType = CACHE_TYPE_TOOLTIP;
|
||||||
|
|
||||||
|
protected array $expectedGET = array(
|
||||||
|
'domain' => ['filter' => FILTER_CALLBACK, 'options' => [Locale::class, 'tryFromDomain']]
|
||||||
|
);
|
||||||
|
|
||||||
|
public function __construct(string $id)
|
||||||
|
{
|
||||||
|
parent::__construct($id);
|
||||||
|
|
||||||
|
// temp locale
|
||||||
|
if ($this->_get['domain'])
|
||||||
|
Lang::load($this->_get['domain']);
|
||||||
|
|
||||||
|
$this->typeId = intVal($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function generate() : void
|
||||||
|
{
|
||||||
|
$quest = new QuestList(array(['id', $this->typeId]));
|
||||||
|
if ($quest->error)
|
||||||
|
$this->cacheType = CACHE_TYPE_NONE;
|
||||||
|
else
|
||||||
|
$opts = array(
|
||||||
|
'name' => Lang::unescapeUISequences($quest->getField('name', true), Lang::FMT_RAW),
|
||||||
|
'tooltip' => $quest->renderTooltip(),
|
||||||
|
'daily' => $quest->isDaily() ? 1 : null
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->result = new Tooltip(self::POWER_TEMPLATE, $this->typeId, $opts ?? []);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
142
endpoints/quests/quests.php
Normal file
142
endpoints/quests/quests.php
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Aowow;
|
||||||
|
|
||||||
|
if (!defined('AOWOW_REVISION'))
|
||||||
|
die('illegal access');
|
||||||
|
|
||||||
|
|
||||||
|
class QuestsBaseResponse extends TemplateResponse implements ICache
|
||||||
|
{
|
||||||
|
use TrListPage, TrCache;
|
||||||
|
|
||||||
|
private const SUB_SUB_CAT = array(
|
||||||
|
// Quest Hubs
|
||||||
|
3679 => 3519, 4024 => 3537, 25 => 46, 1769 => 361,
|
||||||
|
// Startzones: Horde
|
||||||
|
132 => 1, 9 => 12, 3431 => 3430, 154 => 85,
|
||||||
|
// Startzones: Alliance
|
||||||
|
3526 => 3524, 363 => 14, 220 => 215, 188 => 141,
|
||||||
|
// Group: Caverns of Time
|
||||||
|
2366 => 1941, 2367 => 1941, 4100 => 1941,
|
||||||
|
// Group: Hellfire Citadell
|
||||||
|
3562 => 3535, 3713 => 3535, 3714 => 3535,
|
||||||
|
// Group: Auchindoun
|
||||||
|
3789 => 3688, 3790 => 3688, 3791 => 3688, 3792 => 3688,
|
||||||
|
// Group: Tempest Keep
|
||||||
|
3847 => 3842, 3848 => 3842, 3849 => 3842,
|
||||||
|
// Group: Coilfang Reservoir
|
||||||
|
3715 => 3905, 3716 => 3905, 3717 => 3905,
|
||||||
|
// Group: Icecrown Citadel
|
||||||
|
4809 => 4522, 4813 => 4522, 4820 => 4522
|
||||||
|
);
|
||||||
|
|
||||||
|
protected int $type = Type::QUEST;
|
||||||
|
protected int $cacheType = CACHE_TYPE_PAGE;
|
||||||
|
|
||||||
|
protected string $template = 'quests';
|
||||||
|
protected string $pageName = 'quests';
|
||||||
|
protected ?int $activeTab = parent::TAB_DATABASE;
|
||||||
|
protected array $breadcrumb = [0, 3];
|
||||||
|
|
||||||
|
protected array $scripts = [[SC_JS_FILE, 'js/filters.js']];
|
||||||
|
protected array $expectedGET = array(
|
||||||
|
'filter' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => Filter::PATTERN_PARAM]]
|
||||||
|
);
|
||||||
|
protected array $validCats = Game::QUEST_CLASSES;
|
||||||
|
|
||||||
|
public function __construct(string $pageParam)
|
||||||
|
{
|
||||||
|
$this->getCategoryFromUrl($pageParam);
|
||||||
|
|
||||||
|
parent::__construct($pageParam);
|
||||||
|
|
||||||
|
$this->subCat = $pageParam !== '' ? '='.$pageParam : '';
|
||||||
|
$this->filter = new QuestListFilter($this->_get['filter'] ?? '', ['parentCats' => $this->category]);
|
||||||
|
$this->filterError = $this->filter->error;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function generate() : void
|
||||||
|
{
|
||||||
|
$this->h1 = Util::ucFirst(Lang::game('quests'));
|
||||||
|
|
||||||
|
$conditions = [];
|
||||||
|
if (!User::isInGroup(U_GROUP_EMPLOYEE))
|
||||||
|
$conditions[] = [['cuFlags', CUSTOM_EXCLUDE_FOR_LISTVIEW, '&'], 0];
|
||||||
|
|
||||||
|
$this->filter->evalCriteria();
|
||||||
|
|
||||||
|
if ($_ = $this->filter->getConditions())
|
||||||
|
$conditions[] = $_;
|
||||||
|
|
||||||
|
$this->filterError = $this->filter->error; // maybe the evalX() caused something
|
||||||
|
|
||||||
|
if (isset($this->category[1]))
|
||||||
|
$conditions[] = ['zoneOrSort', $this->category[1]];
|
||||||
|
else if (isset($this->category[0]))
|
||||||
|
$conditions[] = ['zoneOrSort', $this->validCats[$this->category[0]]];
|
||||||
|
|
||||||
|
|
||||||
|
/*************/
|
||||||
|
/* Menu Path */
|
||||||
|
/*************/
|
||||||
|
|
||||||
|
foreach ($this->category as $c)
|
||||||
|
$this->breadcrumb[] = $c;
|
||||||
|
|
||||||
|
if (isset($this->category[1]) && isset(self::SUB_SUB_CAT[$this->category[1]]))
|
||||||
|
array_splice($this->breadcrumb, 3, 0, self::SUB_SUB_CAT[$this->category[1]]);
|
||||||
|
|
||||||
|
|
||||||
|
/**************/
|
||||||
|
/* Page Title */
|
||||||
|
/**************/
|
||||||
|
|
||||||
|
array_unshift($this->title, $this->h1);
|
||||||
|
|
||||||
|
if (isset($this->category[1]))
|
||||||
|
array_unshift($this->title, Lang::quest('cat', $this->category[0], $this->category[1]));
|
||||||
|
else if (isset($this->category[0]))
|
||||||
|
{
|
||||||
|
$c0 = Lang::quest('cat', $this->category[0]);
|
||||||
|
array_unshift($this->title, is_array($c0) ? $c0[0] : $c0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/****************/
|
||||||
|
/* Main Content */
|
||||||
|
/****************/
|
||||||
|
|
||||||
|
$this->redButtons[BUTTON_WOWHEAD] = true;
|
||||||
|
if ($fiQuery = $this->filter->buildGETParam())
|
||||||
|
$this->wowheadLink .= '&filter='.$fiQuery;
|
||||||
|
|
||||||
|
$quests = new QuestList($conditions, ['extraOpts' => $this->filter->extraOpts, 'calcTotal' => true]);
|
||||||
|
|
||||||
|
$this->extendGlobalData($quests->getJSGlobals());
|
||||||
|
|
||||||
|
$tabData = ['data' => $quests->getListviewData()];
|
||||||
|
|
||||||
|
if ($rc = $this->filter->fiReputationCols)
|
||||||
|
$tabData['extraCols'] = '$fi_getReputationCols('.json_encode($rc, JSON_NUMERIC_CHECK | JSON_UNESCAPED_UNICODE).')';
|
||||||
|
else if ($this->filter->fiExtraCols)
|
||||||
|
$tabData['extraCols'] = '$fi_getExtraCols(fi_extraCols, 0, 0)';
|
||||||
|
|
||||||
|
// create note if search limit was exceeded
|
||||||
|
if ($quests->getMatches() > Cfg::get('SQL_LIMIT_DEFAULT'))
|
||||||
|
{
|
||||||
|
$tabData['note'] = sprintf(Util::$tryFilteringString, 'LANG.lvnote_questsfound', $quests->getMatches(), Cfg::get('SQL_LIMIT_DEFAULT'));
|
||||||
|
$tabData['_truncated'] = 1;
|
||||||
|
}
|
||||||
|
else if (isset($this->category[1]) && $this->category[1] > 0)
|
||||||
|
$tabData['note'] = '$$WH.sprintf(LANG.lvnote_questgivers, '.$this->category[1].', g_zones['.$this->category[1].'], '.$this->category[1].')';
|
||||||
|
|
||||||
|
$this->lvTabs = new Tabs(['parent' => "\$\$WH.ge('tabs-generic')"]);
|
||||||
|
|
||||||
|
$this->lvTabs->addListviewTab(new Listview($tabData, QuestList::$brickFile));
|
||||||
|
|
||||||
|
parent::generate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -36,7 +36,7 @@ class QuestList extends DBTypeList
|
|||||||
$_curTpl['cat1'] = $_curTpl['zoneOrSort']; // should probably be in a method...
|
$_curTpl['cat1'] = $_curTpl['zoneOrSort']; // should probably be in a method...
|
||||||
$_curTpl['cat2'] = 0;
|
$_curTpl['cat2'] = 0;
|
||||||
|
|
||||||
foreach (Game::$questClasses as $k => $arr)
|
foreach (Game::QUEST_CLASSES as $k => $arr)
|
||||||
{
|
{
|
||||||
if (in_array($_curTpl['cat1'], $arr))
|
if (in_array($_curTpl['cat1'], $arr))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class Game
|
|||||||
1 => ['ability_rogue_eviscerate', 'ability_warrior_innerrage', 'ability_warrior_defensivestance' ]
|
1 => ['ability_rogue_eviscerate', 'ability_warrior_innerrage', 'ability_warrior_defensivestance' ]
|
||||||
);
|
);
|
||||||
|
|
||||||
public static $questClasses = array(
|
public const /* array */ QUEST_CLASSES = array(
|
||||||
-2 => [ 0],
|
-2 => [ 0],
|
||||||
0 => [ 1, 3, 4, 8, 9, 10, 11, 12, 25, 28, 33, 36, 38, 40, 41, 44, 45, 46, 47, 51, 85, 130, 132, 139, 154, 267, 1497, 1519, 1537, 2257, 3430, 3431, 3433, 3487, 4080, 4298],
|
0 => [ 1, 3, 4, 8, 9, 10, 11, 12, 25, 28, 33, 36, 38, 40, 41, 44, 45, 46, 47, 51, 85, 130, 132, 139, 154, 267, 1497, 1519, 1537, 2257, 3430, 3431, 3433, 3487, 4080, 4298],
|
||||||
1 => [ 14, 15, 16, 17, 141, 148, 188, 215, 220, 331, 357, 361, 363, 400, 405, 406, 440, 490, 493, 618, 1377, 1637, 1638, 1657, 1769, 3524, 3525, 3526, 3557],
|
1 => [ 14, 15, 16, 17, 141, 148, 188, 215, 220, 331, 357, 361, 363, 400, 405, 406, 440, 490, 493, 618, 1377, 1637, 1638, 1657, 1769, 3524, 3525, 3526, 3557],
|
||||||
|
|||||||
@@ -490,7 +490,7 @@ class Lang
|
|||||||
|
|
||||||
public static function formatSkillBreakpoints(array $bp, int $fmt = self::FMT_MARKUP) : string
|
public static function formatSkillBreakpoints(array $bp, int $fmt = self::FMT_MARKUP) : string
|
||||||
{
|
{
|
||||||
$tmp = self::game('difficulty').self::main('colon');
|
$tmp = self::game('difficulty');
|
||||||
|
|
||||||
$base = match ($fmt)
|
$base = match ($fmt)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ $lang = array(
|
|||||||
'mails' => "Briefe",
|
'mails' => "Briefe",
|
||||||
|
|
||||||
'cooldown' => "%s Abklingzeit",
|
'cooldown' => "%s Abklingzeit",
|
||||||
'difficulty' => "Modus",
|
'difficulty' => "Modus: ",
|
||||||
'dispelType' => "Bannart",
|
'dispelType' => "Bannart",
|
||||||
'duration' => "Dauer",
|
'duration' => "Dauer",
|
||||||
'eventShort' => "Ereignis: %s",
|
'eventShort' => "Ereignis: %s",
|
||||||
@@ -1135,8 +1135,8 @@ $lang = array(
|
|||||||
),
|
),
|
||||||
'event' => array(
|
'event' => array(
|
||||||
'notFound' => "Dieses Weltereignis existiert nicht.",
|
'notFound' => "Dieses Weltereignis existiert nicht.",
|
||||||
'start' => "Anfang",
|
'start' => "Anfang: ",
|
||||||
'end' => "Ende",
|
'end' => "Ende: ",
|
||||||
'interval' => "Intervall",
|
'interval' => "Intervall",
|
||||||
'inProgress' => "Ereignis findet gerade statt",
|
'inProgress' => "Ereignis findet gerade statt",
|
||||||
'category' => ["Nicht kategorisiert", "Feiertage", "Wiederkehrend", "Spieler vs. Spieler"]
|
'category' => ["Nicht kategorisiert", "Feiertage", "Wiederkehrend", "Spieler vs. Spieler"]
|
||||||
@@ -1272,22 +1272,22 @@ $lang = array(
|
|||||||
'_transfer' => 'Dieses Quest wird mit <a href="?quest=%d" class="q1">%s</a> vertauscht, wenn Ihr zur <span class="icon-%s">%s</span> wechselt.',
|
'_transfer' => 'Dieses Quest wird mit <a href="?quest=%d" class="q1">%s</a> vertauscht, wenn Ihr zur <span class="icon-%s">%s</span> wechselt.',
|
||||||
'questLevel' => "Stufe %s",
|
'questLevel' => "Stufe %s",
|
||||||
'requirements' => "Anforderungen",
|
'requirements' => "Anforderungen",
|
||||||
'reqMoney' => "Benötigtes Geld",
|
'reqMoney' => "Benötigtes Geld: %s",
|
||||||
'money' => "Geld",
|
'money' => "Geld",
|
||||||
'additionalReq' => "Zusätzliche Anforderungen um das Quest zu erhalten",
|
'additionalReq' => "Zusätzliche Anforderungen um das Quest zu erhalten",
|
||||||
'reqRepWith' => 'Eure Reputation mit <a href="?faction=%d">%s</a> %s %s sein',
|
'reqRepWith' => 'Eure Reputation mit <a href="?faction=%d">%s</a> %s %s sein',
|
||||||
'reqRepMin' => "muss mindestens",
|
'reqRepMin' => "muss mindestens",
|
||||||
'reqRepMax' => "darf höchstens",
|
'reqRepMax' => "darf höchstens",
|
||||||
'progress' => "Fortschritt",
|
'progress' => "Fortschritt",
|
||||||
'provided' => "Bereitgestellt",
|
'provided' => "(Bereitgestellt)",
|
||||||
'providedItem' => "Bereitgestellter Gegenstand",
|
'providedItem' => "Bereitgestellter Gegenstand",
|
||||||
'completion' => "Abschluss",
|
'completion' => "Abschluss",
|
||||||
'description' => "Beschreibung",
|
'description' => "Beschreibung",
|
||||||
'playerSlain' => "Spieler getötet",
|
'playerSlain' => "Spieler getötet (%d)",
|
||||||
'profession' => "Beruf",
|
'profession' => "Beruf: ",
|
||||||
'timer' => "Zeitbegrenzung",
|
'timer' => "Zeitbegrenzung: ",
|
||||||
'loremaster' => "Meister der Lehren",
|
'loremaster' => "Meister der Lehren: ",
|
||||||
'suggestedPl' => "Empfohlene Spielerzahl",
|
'suggestedPl' => "Empfohlene Spielerzahl: %d",
|
||||||
'keepsPvpFlag' => "Hält Euch im PvP",
|
'keepsPvpFlag' => "Hält Euch im PvP",
|
||||||
'daily' => 'Täglich',
|
'daily' => 'Täglich',
|
||||||
'weekly' => "Wöchentlich",
|
'weekly' => "Wöchentlich",
|
||||||
@@ -1308,16 +1308,17 @@ $lang = array(
|
|||||||
'enabledByQ' => "Aktiviert durch",
|
'enabledByQ' => "Aktiviert durch",
|
||||||
'enabledByQDesc'=> "Ihr könnt diese Quest nur annehmen, wenn eins der nachfolgenden Quests aktiv ist",
|
'enabledByQDesc'=> "Ihr könnt diese Quest nur annehmen, wenn eins der nachfolgenden Quests aktiv ist",
|
||||||
'gainsDesc' => "Bei Abschluss dieser Quest erhaltet Ihr",
|
'gainsDesc' => "Bei Abschluss dieser Quest erhaltet Ihr",
|
||||||
'theTitle' => 'den Titel "%s"',
|
|
||||||
'unavailable' => "Diese Quest wurde als nicht genutzt markiert und kann weder erhalten noch vollendet werden.",
|
'unavailable' => "Diese Quest wurde als nicht genutzt markiert und kann weder erhalten noch vollendet werden.",
|
||||||
'experience' => "Erfahrung",
|
'experience' => "Erfahrung",
|
||||||
'expConvert' => "(oder %s, wenn auf Stufe %d vollendet)",
|
'expConvert' => "(oder %s, wenn auf Stufe %d vollendet)",
|
||||||
'expConvert2' => "%s, wenn auf Stufe %d vollendet",
|
'expConvert2' => "%s, wenn auf Stufe %d vollendet",
|
||||||
'chooseItems' => "Auf Euch wartet eine dieser Belohnungen",
|
'rewardChoices' => "Auf Euch wartet eine dieser Belohnungen:", // REWARD_CHOICES
|
||||||
'receiveItems' => "Ihr bekommt",
|
'rewardItems' => "Ihr bekommt:", // REWARD_ITEMS_ONLY
|
||||||
'receiveAlso' => "Ihr bekommt außerdem",
|
'rewardAlso' => "Ihr bekommt außerdem:", // REWARD_ITEMS
|
||||||
'spellCast' => "Der folgende Zauber wird auf Euch gewirkt",
|
'rewardSpell' => "Ihr erlernt:", // REWARD_SPELL
|
||||||
'spellLearn' => "Ihr erlernt",
|
'rewardAura' => "Der folgende Zauber wird auf Euch gewirkt:", // REWARD_AURA
|
||||||
|
'rewardTradeSkill'=>"Ihr erlernt die Herstellung von:", // REWARD_TRADESKILL_SPELL
|
||||||
|
'rewardTitle' => 'Euch wird folgender Titel verliehen: "<a href="?title=%d">%s</a>"', // REWARD_TITLE
|
||||||
'bonusTalents' => "%d |4Talentpunkt:Talentpunkte;",
|
'bonusTalents' => "%d |4Talentpunkt:Talentpunkte;",
|
||||||
'spellDisplayed'=> ' (<a href="?spell=%d">%s</a> wird angezeigt)',
|
'spellDisplayed'=> ' (<a href="?spell=%d">%s</a> wird angezeigt)',
|
||||||
'questPoolDesc' => 'Nur %d |4Quest kann:Quests können; aus diesem Tab gleichzeitig aktiv sein',
|
'questPoolDesc' => 'Nur %d |4Quest kann:Quests können; aus diesem Tab gleichzeitig aktiv sein',
|
||||||
@@ -1444,8 +1445,8 @@ $lang = array(
|
|||||||
'mailDelivery' => 'Ihr werdet <a href="?mail=%d">diesen Brief</a>%s%s erhalten',
|
'mailDelivery' => 'Ihr werdet <a href="?mail=%d">diesen Brief</a>%s%s erhalten',
|
||||||
'mailBy' => ' von <a href="?npc=%d">%s</a>',
|
'mailBy' => ' von <a href="?npc=%d">%s</a>',
|
||||||
'mailIn' => " nach %s",
|
'mailIn' => " nach %s",
|
||||||
'delay' => "Verzögerung",
|
'delay' => "Verzögerung: %s",
|
||||||
'sender' => "Absender",
|
'sender' => "Absender: %s",
|
||||||
'untitled' => "Unbetitelter Brief #%d"
|
'untitled' => "Unbetitelter Brief #%d"
|
||||||
),
|
),
|
||||||
'pet' => array(
|
'pet' => array(
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ $lang = array(
|
|||||||
'mails' => "Mails",
|
'mails' => "Mails",
|
||||||
|
|
||||||
'cooldown' => "%s cooldown",
|
'cooldown' => "%s cooldown",
|
||||||
'difficulty' => "Difficulty",
|
'difficulty' => "Difficulty: ",
|
||||||
'dispelType' => "Dispel type",
|
'dispelType' => "Dispel type",
|
||||||
'duration' => "Duration",
|
'duration' => "Duration",
|
||||||
'eventShort' => "Event: %s",
|
'eventShort' => "Event: %s",
|
||||||
@@ -1135,8 +1135,8 @@ $lang = array(
|
|||||||
),
|
),
|
||||||
'event' => array(
|
'event' => array(
|
||||||
'notFound' => "This world event doesn't exist.",
|
'notFound' => "This world event doesn't exist.",
|
||||||
'start' => "Start",
|
'start' => "Start: ",
|
||||||
'end' => "End",
|
'end' => "End: ",
|
||||||
'interval' => "Interval",
|
'interval' => "Interval",
|
||||||
'inProgress' => "Event is currently in progress",
|
'inProgress' => "Event is currently in progress",
|
||||||
'category' => ["Uncategorized", "Holidays", "Recurring", "Player vs. Player"]
|
'category' => ["Uncategorized", "Holidays", "Recurring", "Player vs. Player"]
|
||||||
@@ -1272,22 +1272,22 @@ $lang = array(
|
|||||||
'_transfer' => 'This quest will be converted to <a href="?quest=%d" class="q1">%s</a> if you transfer to <span class="icon-%s">%s</span>.',
|
'_transfer' => 'This quest will be converted to <a href="?quest=%d" class="q1">%s</a> if you transfer to <span class="icon-%s">%s</span>.',
|
||||||
'questLevel' => "Level %s",
|
'questLevel' => "Level %s",
|
||||||
'requirements' => "Requirements",
|
'requirements' => "Requirements",
|
||||||
'reqMoney' => "Required money", // REQUIRED_MONEY
|
'reqMoney' => "Required money: %s", // REQUIRED_MONEY
|
||||||
'money' => "Money",
|
'money' => "Money",
|
||||||
'additionalReq' => "Additional requirements to obtain this quest",
|
'additionalReq' => "Additional requirements to obtain this quest",
|
||||||
'reqRepWith' => 'Your reputation with <a href="?faction=%d">%s</a> must be %s %s',
|
'reqRepWith' => 'Your reputation with <a href="?faction=%d">%s</a> must be %s %s',
|
||||||
'reqRepMin' => "at least",
|
'reqRepMin' => "at least",
|
||||||
'reqRepMax' => "lower than",
|
'reqRepMax' => "lower than",
|
||||||
'progress' => "Progress",
|
'progress' => "Progress",
|
||||||
'provided' => "Provided",
|
'provided' => "(Provided)",
|
||||||
'providedItem' => "Provided item",
|
'providedItem' => "Provided item",
|
||||||
'completion' => "Completion",
|
'completion' => "Completion",
|
||||||
'description' => "Description",
|
'description' => "Description",
|
||||||
'playerSlain' => "Players slain",
|
'playerSlain' => "Players slain (%d)",
|
||||||
'profession' => "Profession",
|
'profession' => "Profession: ",
|
||||||
'timer' => "Timer",
|
'timer' => "Timer: ",
|
||||||
'loremaster' => "Loremaster",
|
'loremaster' => "Loremaster: ",
|
||||||
'suggestedPl' => "Suggested players",
|
'suggestedPl' => "Suggested players: %d",
|
||||||
'keepsPvpFlag' => "Keeps you PvP flagged",
|
'keepsPvpFlag' => "Keeps you PvP flagged",
|
||||||
'daily' => "Daily",
|
'daily' => "Daily",
|
||||||
'weekly' => "Weekly",
|
'weekly' => "Weekly",
|
||||||
@@ -1308,16 +1308,17 @@ $lang = array(
|
|||||||
'enabledByQ' => "Enabled by",
|
'enabledByQ' => "Enabled by",
|
||||||
'enabledByQDesc'=> "This quest is available only, when one of these quests are active",
|
'enabledByQDesc'=> "This quest is available only, when one of these quests are active",
|
||||||
'gainsDesc' => "Upon completion of this quest you will gain",
|
'gainsDesc' => "Upon completion of this quest you will gain",
|
||||||
'theTitle' => 'the title "%s"', // partly REWARD_TITLE
|
|
||||||
'unavailable' => "This quest was marked obsolete and cannot be obtained or completed.",
|
'unavailable' => "This quest was marked obsolete and cannot be obtained or completed.",
|
||||||
'experience' => "experience",
|
'experience' => "experience",
|
||||||
'expConvert' => "(or %s if completed at level %d)",
|
'expConvert' => "(or %s if completed at level %d)",
|
||||||
'expConvert2' => "%s if completed at level %d",
|
'expConvert2' => "%s if completed at level %d",
|
||||||
'chooseItems' => "You will be able to choose one of these rewards", // REWARD_CHOICES
|
'rewardChoices' => "You will be able to choose one of these rewards:", // REWARD_CHOICES
|
||||||
'receiveItems' => "You will receive", // REWARD_ITEMS_ONLY
|
'rewardItems' => "You will receive:", // REWARD_ITEMS_ONLY
|
||||||
'receiveAlso' => "You will also receive", // REWARD_ITEMS
|
'rewardAlso' => "You will also receive:", // REWARD_ITEMS
|
||||||
'spellCast' => "The following spell will be cast on you", // REWARD_AURA
|
'rewardSpell' => "You will learn:", // REWARD_SPELL
|
||||||
'spellLearn' => "You will learn", // REWARD_SPELL
|
'rewardAura' => "The following spell will be cast on you:", // REWARD_AURA
|
||||||
|
'rewardTradeSkill'=>"You will learn how to create:", // REWARD_TRADESKILL_SPELL
|
||||||
|
'rewardTitle' => 'You shall be granted the title: "<a href="?title=%d">%s</a>"', // REWARD_TITLE
|
||||||
'bonusTalents' => "%d talent |4point:points;", // partly LEVEL_UP_CHAR_POINTS
|
'bonusTalents' => "%d talent |4point:points;", // partly LEVEL_UP_CHAR_POINTS
|
||||||
'spellDisplayed'=> ' (<a href="?spell=%d">%s</a> is displayed)',
|
'spellDisplayed'=> ' (<a href="?spell=%d">%s</a> is displayed)',
|
||||||
'questPoolDesc' => 'Only %d |4Quest:Quests; from this tab will be available at a time',
|
'questPoolDesc' => 'Only %d |4Quest:Quests; from this tab will be available at a time',
|
||||||
@@ -1444,8 +1445,8 @@ $lang = array(
|
|||||||
'mailDelivery' => 'You will receive <a href="?mail=%d">this letter</a>%s%s',
|
'mailDelivery' => 'You will receive <a href="?mail=%d">this letter</a>%s%s',
|
||||||
'mailBy' => ' by <a href="?npc=%d">%s</a>',
|
'mailBy' => ' by <a href="?npc=%d">%s</a>',
|
||||||
'mailIn' => " after %s",
|
'mailIn' => " after %s",
|
||||||
'delay' => "Delay",
|
'delay' => "Delay: %s",
|
||||||
'sender' => "Sender",
|
'sender' => "Sender: %s",
|
||||||
'untitled' => "Untitled Mail #%d"
|
'untitled' => "Untitled Mail #%d"
|
||||||
),
|
),
|
||||||
'pet' => array(
|
'pet' => array(
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ $lang = array(
|
|||||||
'mails' => "Mails",
|
'mails' => "Mails",
|
||||||
|
|
||||||
'cooldown' => "%s de reutilización",
|
'cooldown' => "%s de reutilización",
|
||||||
'difficulty' => "Dificultad",
|
'difficulty' => "Dificultad: ",
|
||||||
'dispelType' => "Tipo de disipación",
|
'dispelType' => "Tipo de disipación",
|
||||||
'duration' => "Duración",
|
'duration' => "Duración",
|
||||||
'eventShort' => "Evento: %s",
|
'eventShort' => "Evento: %s",
|
||||||
@@ -1135,8 +1135,8 @@ $lang = array(
|
|||||||
),
|
),
|
||||||
'event' => array(
|
'event' => array(
|
||||||
'notFound' => "Este evento del mundo no existe.",
|
'notFound' => "Este evento del mundo no existe.",
|
||||||
'start' => "Empieza",
|
'start' => "Empieza: ",
|
||||||
'end' => "Termina",
|
'end' => "Termina: ",
|
||||||
'interval' => "Intervalo",
|
'interval' => "Intervalo",
|
||||||
'inProgress' => "El evento está en progreso actualmente",
|
'inProgress' => "El evento está en progreso actualmente",
|
||||||
'category' => ["Sin categoría", "Vacacionales", "Periódicos", "Jugador contra Jugador"]
|
'category' => ["Sin categoría", "Vacacionales", "Periódicos", "Jugador contra Jugador"]
|
||||||
@@ -1272,22 +1272,22 @@ $lang = array(
|
|||||||
'_transfer' => 'Esta misión será convertido a <a href="?quest=%d" class="q1">%s</a> si lo transfieres a la <span class="icon-%s">%s</span>.',
|
'_transfer' => 'Esta misión será convertido a <a href="?quest=%d" class="q1">%s</a> si lo transfieres a la <span class="icon-%s">%s</span>.',
|
||||||
'questLevel' => 'Nivel %s',
|
'questLevel' => 'Nivel %s',
|
||||||
'requirements' => 'Requisitos',
|
'requirements' => 'Requisitos',
|
||||||
'reqMoney' => 'Dinero necesario',
|
'reqMoney' => 'Dinero necesario: %s',
|
||||||
'money' => 'Dinero',
|
'money' => 'Dinero',
|
||||||
'additionalReq' => "Requerimientos adicionales para obtener esta misión",
|
'additionalReq' => "Requerimientos adicionales para obtener esta misión",
|
||||||
'reqRepWith' => 'Tu reputación con <a href="?faction=%d">%s</a> debe ser %s %s',
|
'reqRepWith' => 'Tu reputación con <a href="?faction=%d">%s</a> debe ser %s %s',
|
||||||
'reqRepMin' => "de al menos",
|
'reqRepMin' => "de al menos",
|
||||||
'reqRepMax' => "menor que",
|
'reqRepMax' => "menor que",
|
||||||
'progress' => "Progreso",
|
'progress' => "Progreso",
|
||||||
'provided' => "Provisto",
|
'provided' => "(Provisto)",
|
||||||
'providedItem' => "Objeto provisto",
|
'providedItem' => "Objeto provisto",
|
||||||
'completion' => "Terminación",
|
'completion' => "Terminación",
|
||||||
'description' => "Descripción",
|
'description' => "Descripción",
|
||||||
'playerSlain' => "Jugadores derrotados",
|
'playerSlain' => "Jugadores derrotados (%d)",
|
||||||
'profession' => "Profesión",
|
'profession' => "Profesión: ",
|
||||||
'timer' => "Tiempo",
|
'timer' => "Tiempo: ",
|
||||||
'loremaster' => "Maestro cultural",
|
'loremaster' => "Maestro cultural: ",
|
||||||
'suggestedPl' => "Jugadores sugeridos",
|
'suggestedPl' => "Jugadores sugeridos: %d",
|
||||||
'keepsPvpFlag' => "Mantiene el JcJ activado",
|
'keepsPvpFlag' => "Mantiene el JcJ activado",
|
||||||
'daily' => 'Diaria',
|
'daily' => 'Diaria',
|
||||||
'weekly' => "Semanal",
|
'weekly' => "Semanal",
|
||||||
@@ -1308,16 +1308,17 @@ $lang = array(
|
|||||||
'enabledByQ' => "Activada por",
|
'enabledByQ' => "Activada por",
|
||||||
'enabledByQDesc'=> "Para aceptar esta misión debes haber tener activa alguna de estas misiones",
|
'enabledByQDesc'=> "Para aceptar esta misión debes haber tener activa alguna de estas misiones",
|
||||||
'gainsDesc' => "Cuando completes esta misión ganarás",
|
'gainsDesc' => "Cuando completes esta misión ganarás",
|
||||||
'theTitle' => 'el título "%s"',
|
|
||||||
'unavailable' => "Esta misión fue marcada como obsoleta y no puede ser obtenida o completada.",
|
'unavailable' => "Esta misión fue marcada como obsoleta y no puede ser obtenida o completada.",
|
||||||
'experience' => "experiencia",
|
'experience' => "experiencia",
|
||||||
'expConvert' => "(o %s si se completa al nivel %d)",
|
'expConvert' => "(o %s si se completa al nivel %d)",
|
||||||
'expConvert2' => "%s si se completa al nivel %d",
|
'expConvert2' => "%s si se completa al nivel %d",
|
||||||
'chooseItems' => "Podrás elegir una de estas recompensas",
|
'rewardChoices' => "Podrás elegir una de estas recompensas:", // REWARD_CHOICES
|
||||||
'receiveItems' => "Recibirás",
|
'rewardItems' => "Recibirás:", // REWARD_ITEMS_ONLY
|
||||||
'receiveAlso' => "También recibirás",
|
'rewardAlso' => "También recibirás:", // REWARD_ITEMS
|
||||||
'spellCast' => "Te van a lanzar el siguiente hechizo",
|
'rewardSpell' => "Aprenderás:", // REWARD_SPELL
|
||||||
'spellLearn' => "Aprenderás",
|
'rewardAura' => "Te van a lanzar el siguiente hechizo:", // REWARD_AURA
|
||||||
|
'rewardTradeSkill'=>"Aprenderás a crear:", // REWARD_TRADESKILL_SPELL
|
||||||
|
'rewardTitle' => 'Se te otorga el título de: "<a href="?title=%d">%s</a>"', // REWARD_TITLE
|
||||||
'bonusTalents' => "%d |4punto:puntos; de talento",
|
'bonusTalents' => "%d |4punto:puntos; de talento",
|
||||||
'spellDisplayed'=> ' (mostrando <a href="?spell=%d">%s</a>)',
|
'spellDisplayed'=> ' (mostrando <a href="?spell=%d">%s</a>)',
|
||||||
'questPoolDesc' => 'Solo %d |4misión:misiones; de esta pestaña estarán disponibles a la vez',
|
'questPoolDesc' => 'Solo %d |4misión:misiones; de esta pestaña estarán disponibles a la vez',
|
||||||
@@ -1444,8 +1445,8 @@ $lang = array(
|
|||||||
'mailDelivery' => "Usted recibirá esta carta%s%s",
|
'mailDelivery' => "Usted recibirá esta carta%s%s",
|
||||||
'mailBy' => ' del <a href="?npc=%d">%s</a>',
|
'mailBy' => ' del <a href="?npc=%d">%s</a>',
|
||||||
'mailIn' => " después de %s",
|
'mailIn' => " después de %s",
|
||||||
'delay' => "Retraso",
|
'delay' => "Retraso: %s",
|
||||||
'sender' => "Remitente",
|
'sender' => "Remitente: %s",
|
||||||
'untitled' => "Correo sin título #%d"
|
'untitled' => "Correo sin título #%d"
|
||||||
),
|
),
|
||||||
'pet' => array(
|
'pet' => array(
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ $lang = array(
|
|||||||
'mails' => "Mails",
|
'mails' => "Mails",
|
||||||
|
|
||||||
'cooldown' => "%s de recharge",
|
'cooldown' => "%s de recharge",
|
||||||
'difficulty' => "Difficulté",
|
'difficulty' => "Difficulté : ",
|
||||||
'dispelType' => "Type de dissipation",
|
'dispelType' => "Type de dissipation",
|
||||||
'duration' => "Durée",
|
'duration' => "Durée",
|
||||||
'eventShort' => "Évènement : %s",
|
'eventShort' => "Évènement : %s",
|
||||||
@@ -1135,8 +1135,8 @@ $lang = array(
|
|||||||
),
|
),
|
||||||
'event' => array(
|
'event' => array(
|
||||||
'notFound' => "Cet évènement mondial n'existe pas.",
|
'notFound' => "Cet évènement mondial n'existe pas.",
|
||||||
'start' => "Début",
|
'start' => "Début : ",
|
||||||
'end' => "Fin",
|
'end' => "Fin : ",
|
||||||
'interval' => "Intervalle",
|
'interval' => "Intervalle",
|
||||||
'inProgress' => "L'évènement est présentement en cours",
|
'inProgress' => "L'évènement est présentement en cours",
|
||||||
'category' => ["Non classés", "Vacances", "Récurrent", "Joueur ctr. Joueur"]
|
'category' => ["Non classés", "Vacances", "Récurrent", "Joueur ctr. Joueur"]
|
||||||
@@ -1272,22 +1272,22 @@ $lang = array(
|
|||||||
'_transfer' => 'Cette quête sera converti en <a href="?quest=%d" class="q1">%s</a> si vous transférez en <span class="icon-%s">%s</span>.',
|
'_transfer' => 'Cette quête sera converti en <a href="?quest=%d" class="q1">%s</a> si vous transférez en <span class="icon-%s">%s</span>.',
|
||||||
'questLevel' => "Niveau %s",
|
'questLevel' => "Niveau %s",
|
||||||
'requirements' => "Conditions",
|
'requirements' => "Conditions",
|
||||||
'reqMoney' => "Argent requis",
|
'reqMoney' => "Argent requis : %s",
|
||||||
'money' => "Argent",
|
'money' => "Argent",
|
||||||
'additionalReq' => "Conditions additionnelles requises pour obtenir cette quête",
|
'additionalReq' => "Conditions additionnelles requises pour obtenir cette quête",
|
||||||
'reqRepWith' => 'Votre reputation avec <a href="?faction=%d">%s</a> doît être %s %s',
|
'reqRepWith' => 'Votre reputation avec <a href="?faction=%d">%s</a> doît être %s %s',
|
||||||
'reqRepMin' => "d'au moins",
|
'reqRepMin' => "d'au moins",
|
||||||
'reqRepMax' => "moins que",
|
'reqRepMax' => "moins que",
|
||||||
'progress' => "Progrès",
|
'progress' => "Progrès",
|
||||||
'provided' => "Fourni",
|
'provided' => "(Fourni)",
|
||||||
'providedItem' => "Objet fourni",
|
'providedItem' => "Objet fourni",
|
||||||
'completion' => "Achèvement",
|
'completion' => "Achèvement",
|
||||||
'description' => "Description",
|
'description' => "Description",
|
||||||
'playerSlain' => "Joueurs tués",
|
'playerSlain' => "Joueurs tués (%d)",
|
||||||
'profession' => "Métier",
|
'profession' => "Métier : ",
|
||||||
'timer' => "Temps",
|
'timer' => "Temps : ",
|
||||||
'loremaster' => "Maitre des traditions",
|
'loremaster' => "Maitre des traditions : ",
|
||||||
'suggestedPl' => "Joueurs suggérés",
|
'suggestedPl' => "Joueurs suggérés : %d",
|
||||||
'keepsPvpFlag' => "Vous garde en mode JvJ",
|
'keepsPvpFlag' => "Vous garde en mode JvJ",
|
||||||
'daily' => "Journalière",
|
'daily' => "Journalière",
|
||||||
'weekly' => "Chaque semaine",
|
'weekly' => "Chaque semaine",
|
||||||
@@ -1308,16 +1308,17 @@ $lang = array(
|
|||||||
'enabledByQ' => "Autorisée par",
|
'enabledByQ' => "Autorisée par",
|
||||||
'enabledByQDesc'=> "Vous pouvez faire cette quête seulement quand cette quête est active",
|
'enabledByQDesc'=> "Vous pouvez faire cette quête seulement quand cette quête est active",
|
||||||
'gainsDesc' => "Lors de l'achèvement de cette quête vous gagnerez",
|
'gainsDesc' => "Lors de l'achèvement de cette quête vous gagnerez",
|
||||||
'theTitle' => '"%s"', // empty on purpose!
|
|
||||||
'unavailable' => "Cette quête est marquée comme obsolète et ne peut être obtenue ou accomplie.",
|
'unavailable' => "Cette quête est marquée comme obsolète et ne peut être obtenue ou accomplie.",
|
||||||
'experience' => "points d'expérience",
|
'experience' => "points d'expérience",
|
||||||
'expConvert' => "(ou %s si completé au niveau %d)",
|
'expConvert' => "(ou %s si completé au niveau %d)",
|
||||||
'expConvert2' => "%s si completé au niveau %d",
|
'expConvert2' => "%s si completé au niveau %d",
|
||||||
'chooseItems' => "Vous pourrez choisir une de ces récompenses",
|
'rewardChoices' => "Vous pourrez choisir une de ces récompenses :", // REWARD_CHOICES
|
||||||
'receiveItems' => "Vous recevrez",
|
'rewardItems' => "Vous recevrez :", // REWARD_ITEMS_ONLY
|
||||||
'receiveAlso' => "Vous recevrez également",
|
'rewardAlso' => "Vous recevrez également :", // REWARD_ITEMS (Ainsi que :)
|
||||||
'spellCast' => "Vous allez être la cible du sort suivant",
|
'rewardSpell' => "Vous apprendrez :", // REWARD_SPELL
|
||||||
'spellLearn' => "Vous apprendrez",
|
'rewardAura' => "Vous allez être la cible du sort suivant :", // REWARD_AURA
|
||||||
|
'rewardTradeSkill'=>"Vous apprendrez comment créer :", // REWARD_TRADESKILL_SPELL
|
||||||
|
'rewardTitle' => 'Vous allez recevoir le titre suivant : "<a href="?title=%d">%s</a>"', // REWARD_TITLE
|
||||||
'bonusTalents' => "%d |4point:points; de talent",
|
'bonusTalents' => "%d |4point:points; de talent",
|
||||||
'spellDisplayed'=> ' (<a href="?spell=%d">%s</a> affichés)',
|
'spellDisplayed'=> ' (<a href="?spell=%d">%s</a> affichés)',
|
||||||
'questPoolDesc' => 'Only %d |4Quest:Quests; from this tab will be available at a time',
|
'questPoolDesc' => 'Only %d |4Quest:Quests; from this tab will be available at a time',
|
||||||
@@ -1444,8 +1445,8 @@ $lang = array(
|
|||||||
'mailDelivery' => "Vous recevrez cette lettre%s%s",
|
'mailDelivery' => "Vous recevrez cette lettre%s%s",
|
||||||
'mailBy' => ' de <a href="?npc=%d">%s</a>',
|
'mailBy' => ' de <a href="?npc=%d">%s</a>',
|
||||||
'mailIn' => " après %s",
|
'mailIn' => " après %s",
|
||||||
'delay' => "Delay",
|
'delay' => "Delay : %s",
|
||||||
'sender' => "Sender",
|
'sender' => "Sender : %s",
|
||||||
'untitled' => "Untitled Mail #%d"
|
'untitled' => "Untitled Mail #%d"
|
||||||
),
|
),
|
||||||
'pet' => array(
|
'pet' => array(
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ $lang = array(
|
|||||||
'mails' => "Mails",
|
'mails' => "Mails",
|
||||||
|
|
||||||
'cooldown' => "Восстановление: %s",
|
'cooldown' => "Восстановление: %s",
|
||||||
'difficulty' => "Сложность",
|
'difficulty' => "Сложность: ",
|
||||||
'dispelType' => "Тип рассеивания",
|
'dispelType' => "Тип рассеивания",
|
||||||
'duration' => "Длительность",
|
'duration' => "Длительность",
|
||||||
'eventShort' => "Игровое событие: %s",
|
'eventShort' => "Игровое событие: %s",
|
||||||
@@ -1135,8 +1135,8 @@ $lang = array(
|
|||||||
),
|
),
|
||||||
'event' => array(
|
'event' => array(
|
||||||
'notFound' => "Это игровое событие не существует.",
|
'notFound' => "Это игровое событие не существует.",
|
||||||
'start' => "Начало",
|
'start' => "Начало: ",
|
||||||
'end' => "Конец",
|
'end' => "Конец: ",
|
||||||
'interval' => "[Interval]",
|
'interval' => "[Interval]",
|
||||||
'inProgress' => "Событие активно в данный момент",
|
'inProgress' => "Событие активно в данный момент",
|
||||||
'category' => array("Разное", "Праздники", "Периодические", "PvP")
|
'category' => array("Разное", "Праздники", "Периодические", "PvP")
|
||||||
@@ -1272,22 +1272,22 @@ $lang = array(
|
|||||||
'_transfer' => 'Этот предмет превратится в <a href="?quest=%d" class="q1">%s</a>, если вы перейдете за <span class="icon-%s">%s</span>.',
|
'_transfer' => 'Этот предмет превратится в <a href="?quest=%d" class="q1">%s</a>, если вы перейдете за <span class="icon-%s">%s</span>.',
|
||||||
'questLevel' => "%s-го уровня",
|
'questLevel' => "%s-го уровня",
|
||||||
'requirements' => "Требования",
|
'requirements' => "Требования",
|
||||||
'reqMoney' => "Требуется денег",
|
'reqMoney' => "Требуется денег: %s",
|
||||||
'money' => "Деньги",
|
'money' => "Деньги",
|
||||||
'additionalReq' => "Дополнительные условия для получения данного задания",
|
'additionalReq' => "Дополнительные условия для получения данного задания",
|
||||||
'reqRepWith' => 'Ваша репутация с <a href="?faction=%d">%s</a> должна быть %s %s',
|
'reqRepWith' => 'Ваша репутация с <a href="?faction=%d">%s</a> должна быть %s %s',
|
||||||
'reqRepMin' => "не менее",
|
'reqRepMin' => "не менее",
|
||||||
'reqRepMax' => "меньше чем",
|
'reqRepMax' => "меньше чем",
|
||||||
'progress' => "Прогресс",
|
'progress' => "Прогресс",
|
||||||
'provided' => "Прилагается",
|
'provided' => "(Прилагается)",
|
||||||
'providedItem' => "Прилагается предмет",
|
'providedItem' => "Прилагается предмет",
|
||||||
'completion' => "Завершение",
|
'completion' => "Завершение",
|
||||||
'description' => "Описание",
|
'description' => "Описание",
|
||||||
'playerSlain' => "Убито игроков",
|
'playerSlain' => "Убито игроков (%d)",
|
||||||
'profession' => "Профессия",
|
'profession' => "Профессия: ",
|
||||||
'timer' => "Таймер",
|
'timer' => "Таймер: ",
|
||||||
'loremaster' => "Хранитель мудрости",
|
'loremaster' => "Хранитель мудрости: ",
|
||||||
'suggestedPl' => "Рекомендуемое количество игроков",
|
'suggestedPl' => "Рекомендуемое количество игроков: %d",
|
||||||
'keepsPvpFlag' => "Включает доступность PvP",
|
'keepsPvpFlag' => "Включает доступность PvP",
|
||||||
'daily' => "Ежедневно",
|
'daily' => "Ежедневно",
|
||||||
'weekly' => "Раз в неделю",
|
'weekly' => "Раз в неделю",
|
||||||
@@ -1308,16 +1308,17 @@ $lang = array(
|
|||||||
'enabledByQ' => "Включена по",
|
'enabledByQ' => "Включена по",
|
||||||
'enabledByQDesc'=> "Вы можете получить это задание, только когда эти задания доступны",
|
'enabledByQDesc'=> "Вы можете получить это задание, только когда эти задания доступны",
|
||||||
'gainsDesc' => "По завершении этого задания, вы получите",
|
'gainsDesc' => "По завершении этого задания, вы получите",
|
||||||
'theTitle' => '"%s"', // empty on purpose!
|
|
||||||
'unavailable' => "пометили это задание как устаревшее — его нельзя получить или выполнить.",
|
'unavailable' => "пометили это задание как устаревшее — его нельзя получить или выполнить.",
|
||||||
'experience' => "опыта",
|
'experience' => "опыта",
|
||||||
'expConvert' => "(или %s на %d-м уровне)",
|
'expConvert' => "(или %s на %d-м уровне)",
|
||||||
'expConvert2' => "%s на %d-м уровне",
|
'expConvert2' => "%s на %d-м уровне",
|
||||||
'chooseItems' => "Вам дадут возможность выбрать одну из следующих наград",
|
'rewardChoices' => "Вы сможете выбрать одну из наград:", // REWARD_CHOICES
|
||||||
'receiveItems' => "Вы получите",
|
'rewardItems' => "Вы получите:", // REWARD_ITEMS_ONLY
|
||||||
'receiveAlso' => "Вы также получите",
|
'rewardAlso' => "Вы также получите:", // REWARD_ITEMS
|
||||||
'spellCast' => "Следующее заклинание будет наложено на вас",
|
'rewardSpell' => "Вы узнаете:", // REWARD_SPELL
|
||||||
'spellLearn' => "Вы изучите",
|
'rewardAura' => "На вас будет наложено заклинание:", // REWARD_AURA
|
||||||
|
'rewardTradeSkill'=>"Вы узнаете, как создавать:", // REWARD_TRADESKILL_SPELL
|
||||||
|
'rewardTitle' => 'Вам будет присвоено звание: "<a href="?title=%d">%s</a>"', // REWARD_TITLE
|
||||||
'bonusTalents' => "%d |4очко талантов:очка талантов:очков талантов;",
|
'bonusTalents' => "%d |4очко талантов:очка талантов:очков талантов;",
|
||||||
'spellDisplayed'=> ' (показано: <a href="?spell=%d">%s</a>)',
|
'spellDisplayed'=> ' (показано: <a href="?spell=%d">%s</a>)',
|
||||||
'questPoolDesc' => 'Only %d |4Quest:Quests; from this tab will be available at a time',
|
'questPoolDesc' => 'Only %d |4Quest:Quests; from this tab will be available at a time',
|
||||||
@@ -1439,14 +1440,14 @@ $lang = array(
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
'mail' => array(
|
'mail' => array(
|
||||||
'notFound' => "This mail doesn't exist.",
|
'notFound' => "[This mail doesn't exist].",
|
||||||
'attachment' => "[Attachment]",
|
'attachment' => "[Attachment]",
|
||||||
'mailDelivery' => "Вы получите это письмо%s%s",
|
'mailDelivery' => "Вы получите это письмо%s%s",
|
||||||
'mailBy' => ' от <a href="?npc=%d">%s</a>',
|
'mailBy' => ' от <a href="?npc=%d">%s</a>',
|
||||||
'mailIn' => " через %s",
|
'mailIn' => " через %s",
|
||||||
'delay' => "Delay",
|
'delay' => "[Delay]: %s",
|
||||||
'sender' => "Sender",
|
'sender' => "[Sender]: %s",
|
||||||
'untitled' => "Untitled Mail #%d"
|
'untitled' => "[Untitled Mail] #%d"
|
||||||
),
|
),
|
||||||
'pet' => array(
|
'pet' => array(
|
||||||
'notFound' => "Такой породы питомцев не существует.",
|
'notFound' => "Такой породы питомцев не существует.",
|
||||||
|
|||||||
@@ -329,7 +329,7 @@ $lang = array(
|
|||||||
'mails' => "邮件",
|
'mails' => "邮件",
|
||||||
|
|
||||||
'cooldown' => "%s冷却时间",
|
'cooldown' => "%s冷却时间",
|
||||||
'difficulty' => "难度",
|
'difficulty' => "难度:",
|
||||||
'dispelType' => "驱散类型",
|
'dispelType' => "驱散类型",
|
||||||
'duration' => "持续时间",
|
'duration' => "持续时间",
|
||||||
'eventShort' => "事件:%s",
|
'eventShort' => "事件:%s",
|
||||||
@@ -1134,8 +1134,8 @@ $lang = array(
|
|||||||
),
|
),
|
||||||
'event' => array(
|
'event' => array(
|
||||||
'notFound' => "这个世界事件不存在。",
|
'notFound' => "这个世界事件不存在。",
|
||||||
'start' => "开始",
|
'start' => "开始:",
|
||||||
'end' => "结束",
|
'end' => "结束:",
|
||||||
'interval' => "间隔",
|
'interval' => "间隔",
|
||||||
'inProgress' => "事件正在进行中",
|
'inProgress' => "事件正在进行中",
|
||||||
'category' => ["未分类", "节日", "循环", "PvP"]
|
'category' => ["未分类", "节日", "循环", "PvP"]
|
||||||
@@ -1271,22 +1271,22 @@ $lang = array(
|
|||||||
'_transfer' => '这个任务将被转换到<a href="?quest=%d" class="q1">%s</a>,如果你转移到<span class="icon-%s">%s</span>。',
|
'_transfer' => '这个任务将被转换到<a href="?quest=%d" class="q1">%s</a>,如果你转移到<span class="icon-%s">%s</span>。',
|
||||||
'questLevel' => "等级%s",
|
'questLevel' => "等级%s",
|
||||||
'requirements' => "要求",
|
'requirements' => "要求",
|
||||||
'reqMoney' => "需要金钱",
|
'reqMoney' => "需要金钱:%s",
|
||||||
'money' => "金钱",
|
'money' => "金钱",
|
||||||
'additionalReq' => "获得这个任务的额外要求",
|
'additionalReq' => "获得这个任务的额外要求",
|
||||||
'reqRepWith' => '你<a href="?faction=%d">%s</a>的声望需要%s %s',
|
'reqRepWith' => '你<a href="?faction=%d">%s</a>的声望需要%s %s',
|
||||||
'reqRepMin' => "至少",
|
'reqRepMin' => "至少",
|
||||||
'reqRepMax' => "低于",
|
'reqRepMax' => "低于",
|
||||||
'progress' => "进行",
|
'progress' => "进行",
|
||||||
'provided' => "提供的",
|
'provided' => "(提供的)",
|
||||||
'providedItem' => "提供的物品",
|
'providedItem' => "提供的物品",
|
||||||
'completion' => "完成",
|
'completion' => "完成",
|
||||||
'description' => "描述",
|
'description' => "描述",
|
||||||
'playerSlain' => "玩家被杀",
|
'playerSlain' => "玩家被杀(%d)",
|
||||||
'profession' => "专业",
|
'profession' => "专业:",
|
||||||
'timer' => "计时器",
|
'timer' => "计时器:",
|
||||||
'loremaster' => "博学者",
|
'loremaster' => "博学者:",
|
||||||
'suggestedPl' => "建议玩家数",
|
'suggestedPl' => "建议玩家数:%d",
|
||||||
'keepsPvpFlag' => "保持你的PvP标记",
|
'keepsPvpFlag' => "保持你的PvP标记",
|
||||||
'daily' => "每日",
|
'daily' => "每日",
|
||||||
'weekly' => "每周",
|
'weekly' => "每周",
|
||||||
@@ -1307,16 +1307,17 @@ $lang = array(
|
|||||||
'enabledByQ' => "启用自",
|
'enabledByQ' => "启用自",
|
||||||
'enabledByQDesc'=> "只有当这些任务中的一个活跃时,这个任务才可用",
|
'enabledByQDesc'=> "只有当这些任务中的一个活跃时,这个任务才可用",
|
||||||
'gainsDesc' => "完成这个任务后,你将获得",
|
'gainsDesc' => "完成这个任务后,你将获得",
|
||||||
'theTitle' => '头衔 "%s"',
|
|
||||||
'unavailable' => "这项任务已被标记为过时,无法获得或完成。",
|
'unavailable' => "这项任务已被标记为过时,无法获得或完成。",
|
||||||
'experience' => "经验",
|
'experience' => "经验",
|
||||||
'expConvert' => "(或%s如果在等级%d完成)",
|
'expConvert' => "(或%s如果在等级%d完成)",
|
||||||
'expConvert2' => "%s如果在等级%d完成",
|
'expConvert2' => "%s如果在等级%d完成",
|
||||||
'chooseItems' => "你可以从这些奖励品中选择一件",
|
'rewardChoices' => "你可以从这些奖励品中选择一件:", // REWARD_CHOICES
|
||||||
'receiveItems' => "你将得到",
|
'rewardItems' => "你将得到:", // REWARD_ITEMS_ONLY
|
||||||
'receiveAlso' => "你还将得到",
|
'rewardAlso' => "你还将得到:", // REWARD_ITEMS
|
||||||
'spellCast' => "该法术将被施放在你身上",
|
'rewardSpell' => "你将学会:", // REWARD_SPELL
|
||||||
'spellLearn' => "你将学会",
|
'rewardAura' => "该法术将被施放在你身上:", // REWARD_AURA
|
||||||
|
'rewardTradeSkill'=>"你将学会如何制造:", // REWARD_TRADESKILL_SPELL
|
||||||
|
'rewardTitle' => '你将获得头衔:"<a href="?title=%d">%s</a>"', // REWARD_TITLE
|
||||||
'bonusTalents' => "%d天赋|4点数:点数;",
|
'bonusTalents' => "%d天赋|4点数:点数;",
|
||||||
'spellDisplayed'=> ' (<a href="?spell=%d">%s</a> 已显示)',
|
'spellDisplayed'=> ' (<a href="?spell=%d">%s</a> 已显示)',
|
||||||
'questPoolDesc' => '每次只能同时提供 %d 个任务',
|
'questPoolDesc' => '每次只能同时提供 %d 个任务',
|
||||||
@@ -1443,8 +1444,8 @@ $lang = array(
|
|||||||
'mailDelivery' => '你将收到 <a href="?mail=%d">这封信</a>%s%s', // "你会收到这封信%s%s",
|
'mailDelivery' => '你将收到 <a href="?mail=%d">这封信</a>%s%s', // "你会收到这封信%s%s",
|
||||||
'mailBy' => '发件人:<a href="?npc=%d">%s</a>',
|
'mailBy' => '发件人:<a href="?npc=%d">%s</a>',
|
||||||
'mailIn' => "在 %s 后",
|
'mailIn' => "在 %s 后",
|
||||||
'delay' => "延迟",
|
'delay' => "延迟:%s",
|
||||||
'sender' => "寄件人",
|
'sender' => "寄件人:%s",
|
||||||
'untitled' => "无标题邮件 #%d"
|
'untitled' => "无标题邮件 #%d"
|
||||||
),
|
),
|
||||||
'pet' => array(
|
'pet' => array(
|
||||||
|
|||||||
125
pages/quests.php
125
pages/quests.php
@@ -1,125 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Aowow;
|
|
||||||
|
|
||||||
if (!defined('AOWOW_REVISION'))
|
|
||||||
die('illegal access');
|
|
||||||
|
|
||||||
// menuId 3: Quest g_initPath()
|
|
||||||
// tabId 0: Database g_initHeader()
|
|
||||||
class QuestsPage extends GenericPage
|
|
||||||
{
|
|
||||||
use TrListPage;
|
|
||||||
|
|
||||||
protected $type = Type::QUEST;
|
|
||||||
protected $tpl = 'quests';
|
|
||||||
protected $path = [0, 3];
|
|
||||||
protected $tabId = 0;
|
|
||||||
protected $mode = CACHE_TYPE_PAGE;
|
|
||||||
protected $validCats = [];
|
|
||||||
protected $scripts = [[SC_JS_FILE, 'js/filters.js']];
|
|
||||||
|
|
||||||
protected $_get = ['filter' => ['filter' => FILTER_UNSAFE_RAW]];
|
|
||||||
|
|
||||||
public function __construct($pageCall, $pageParam)
|
|
||||||
{
|
|
||||||
$this->validCats = Game::$questClasses; // not allowed to set this as default
|
|
||||||
|
|
||||||
$this->getCategoryFromUrl($pageParam);
|
|
||||||
|
|
||||||
parent::__construct($pageCall, $pageParam);
|
|
||||||
|
|
||||||
$this->filterObj = new QuestListFilter($this->_get['filter'] ?? '', ['parentCats' => $this->category]);
|
|
||||||
|
|
||||||
$this->name = Util::ucFirst(Lang::game('quests'));
|
|
||||||
$this->subCat = $pageParam ? '='.$pageParam : '';
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function generateContent()
|
|
||||||
{
|
|
||||||
$conditions = [];
|
|
||||||
|
|
||||||
if (!User::isInGroup(U_GROUP_EMPLOYEE))
|
|
||||||
$conditions[] = [['cuFlags', CUSTOM_EXCLUDE_FOR_LISTVIEW, '&'], 0];
|
|
||||||
|
|
||||||
if (isset($this->category[1]))
|
|
||||||
$conditions[] = ['zoneOrSort', $this->category[1]];
|
|
||||||
else if (isset($this->category[0]))
|
|
||||||
$conditions[] = ['zoneOrSort', $this->validCats[$this->category[0]]];
|
|
||||||
|
|
||||||
$this->filterObj->evalCriteria();
|
|
||||||
|
|
||||||
if ($_ = $this->filterObj->getConditions())
|
|
||||||
$conditions[] = $_;
|
|
||||||
|
|
||||||
$quests = new QuestList($conditions, ['extraOpts' => $this->filterObj->extraOpts, 'calcTotal' => true]);
|
|
||||||
|
|
||||||
$this->extendGlobalData($quests->getJSGlobals());
|
|
||||||
|
|
||||||
$tabData = ['data' => array_values($quests->getListviewData())];
|
|
||||||
|
|
||||||
if ($rCols = $this->filterObj->fiReputationCols) // never use pretty-print
|
|
||||||
$tabData['extraCols'] = '$fi_getReputationCols('.Util::toJSON($rCols, JSON_NUMERIC_CHECK | JSON_UNESCAPED_UNICODE).')';
|
|
||||||
else if ($this->filterObj->fiExtraCols)
|
|
||||||
$tabData['extraCols'] = '$fi_getExtraCols(fi_extraCols, 0, 0)';
|
|
||||||
|
|
||||||
// create note if search limit was exceeded
|
|
||||||
if ($quests->getMatches() > Cfg::get('SQL_LIMIT_DEFAULT'))
|
|
||||||
{
|
|
||||||
$tabData['note'] = sprintf(Util::$tryFilteringString, 'LANG.lvnote_questsfound', $quests->getMatches(), Cfg::get('SQL_LIMIT_DEFAULT'));
|
|
||||||
$tabData['_truncated'] = 1;
|
|
||||||
}
|
|
||||||
else if (isset($this->category[1]) && $this->category[1] > 0)
|
|
||||||
$tabData['note'] = '$$WH.sprintf(LANG.lvnote_questgivers, '.$this->category[1].', g_zones['.$this->category[1].'], '.$this->category[1].')';
|
|
||||||
|
|
||||||
if ($this->filterObj->error)
|
|
||||||
$tabData['_errors'] = 1;
|
|
||||||
|
|
||||||
$this->lvTabs[] = [QuestList::$brickFile, $tabData];
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function generateTitle()
|
|
||||||
{
|
|
||||||
array_unshift($this->title, $this->name);
|
|
||||||
|
|
||||||
if (isset($this->category[1]))
|
|
||||||
array_unshift($this->title, Lang::quest('cat', $this->category[0], $this->category[1]));
|
|
||||||
else if (isset($this->category[0]))
|
|
||||||
{
|
|
||||||
$c0 = Lang::quest('cat', $this->category[0]);
|
|
||||||
array_unshift($this->title, is_array($c0) ? $c0[0] : $c0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function generatePath()
|
|
||||||
{
|
|
||||||
foreach ($this->category as $c)
|
|
||||||
$this->path[] = $c;
|
|
||||||
|
|
||||||
$hubs = array(
|
|
||||||
// Quest Hubs
|
|
||||||
3679 => 3519, 4024 => 3537, 25 => 46, 1769 => 361,
|
|
||||||
// Startzones: Horde
|
|
||||||
132 => 1, 9 => 12, 3431 => 3430, 154 => 85,
|
|
||||||
// Startzones: Alliance
|
|
||||||
3526 => 3524, 363 => 14, 220 => 215, 188 => 141,
|
|
||||||
// Group: Caverns of Time
|
|
||||||
2366 => 1941, 2367 => 1941, 4100 => 1941,
|
|
||||||
// Group: Hellfire Citadell
|
|
||||||
3562 => 3535, 3713 => 3535, 3714 => 3535,
|
|
||||||
// Group: Auchindoun
|
|
||||||
3789 => 3688, 3790 => 3688, 3791 => 3688, 3792 => 3688,
|
|
||||||
// Group: Tempest Keep
|
|
||||||
3847 => 3842, 3848 => 3842, 3849 => 3842,
|
|
||||||
// Group: Coilfang Reservoir
|
|
||||||
3715 => 3905, 3716 => 3905, 3717 => 3905,
|
|
||||||
// Group: Icecrown Citadel
|
|
||||||
4809 => 4522, 4813 => 4522, 4820 => 4522
|
|
||||||
);
|
|
||||||
|
|
||||||
if (isset($this->category[1]) && isset($hubs[$this->category[1]]))
|
|
||||||
array_splice($this->path, 3, 0, $hubs[$this->category[1]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
||||||
@@ -592,7 +592,7 @@ class ZonePage extends GenericPage
|
|||||||
{
|
{
|
||||||
$tabData = ['data' => array_values($questsLV)];
|
$tabData = ['data' => array_values($questsLV)];
|
||||||
|
|
||||||
foreach (Game::$questClasses as $parent => $children)
|
foreach (Game::QUEST_CLASSES as $parent => $children)
|
||||||
{
|
{
|
||||||
if (!in_array($this->typeId, $children))
|
if (!in_array($this->typeId, $children))
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ CLISetup::registerSetup("build", new class extends SetupScript
|
|||||||
[['specialFlags', QUEST_FLAG_SPECIAL_REPEATABLE | QUEST_FLAG_SPECIAL_DUNGEON_FINDER | QUEST_FLAG_SPECIAL_MONTHLY, '&'], 0]
|
[['specialFlags', QUEST_FLAG_SPECIAL_REPEATABLE | QUEST_FLAG_SPECIAL_DUNGEON_FINDER | QUEST_FLAG_SPECIAL_MONTHLY, '&'], 0]
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach (Game::$questClasses as $cat2 => $cat)
|
foreach (Game::QUEST_CLASSES as $cat2 => $cat)
|
||||||
{
|
{
|
||||||
if ($cat2 < 0)
|
if ($cat2 < 0)
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
<?php namespace Aowow; ?>
|
<?php
|
||||||
|
namespace Aowow\Template;
|
||||||
|
|
||||||
<?php $this->brick('header'); ?>
|
use \Aowow\Lang;
|
||||||
|
|
||||||
|
$this->brick('header');
|
||||||
|
?>
|
||||||
<div class="main" id="main">
|
<div class="main" id="main">
|
||||||
<div class="main-precontents" id="main-precontents"></div>
|
<div class="main-precontents" id="main-precontents"></div>
|
||||||
<div class="main-contents" id="main-contents">
|
<div class="main-contents" id="main-contents">
|
||||||
@@ -17,7 +20,7 @@
|
|||||||
<div class="text">
|
<div class="text">
|
||||||
<?php $this->brick('redButtons'); ?>
|
<?php $this->brick('redButtons'); ?>
|
||||||
|
|
||||||
<h1><?=$this->name; ?></h1>
|
<h1><?=$this->h1; ?></h1>
|
||||||
<?php if ($this->unavailable): ?>
|
<?php if ($this->unavailable): ?>
|
||||||
<div class="pad"></div>
|
<div class="pad"></div>
|
||||||
<b style="color: red"><?=Lang::quest('unavailable'); ?></b>
|
<b style="color: red"><?=Lang::quest('unavailable'); ?></b>
|
||||||
@@ -35,80 +38,61 @@ elseif ($this->offerReward):
|
|||||||
echo $this->offerReward."\n";
|
echo $this->offerReward."\n";
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
|
$iconOffset = 0;
|
||||||
if ($this->end || $this->objectiveList):
|
if ($this->end || $this->objectiveList):
|
||||||
?>
|
?>
|
||||||
<table class="iconlist">
|
<table class="iconlist">
|
||||||
<?php
|
<?php
|
||||||
|
foreach ($this->objectiveList as [$type, $data]):
|
||||||
|
switch ($type):
|
||||||
|
case 1: // just text line
|
||||||
|
echo ' <tr><th><p style="height: 26px; width: 30px;"> </p></th><td>'.$data."</td></tr>\n";
|
||||||
|
break;
|
||||||
|
case 2: // proxy npc data
|
||||||
|
['id' => $id, 'text' => $text, 'qty' => $qty, 'proxy' => $proxies] = $data;
|
||||||
|
echo ' <tr><th><p style="height: 26px"> </p></th><td><a href="javascript:;" onclick="g_disclose($WH.ge(\'npcgroup-'.$id.'\'), this)" class="disclosure-off">'.$text.'</a>'.($qty ? ' ('.$qty.')' : '').'<div id="npcgroup-'.$id."\" style=\"display: none\">\n";
|
||||||
|
foreach ($proxies as $block):
|
||||||
|
echo " <div style=\"float: left\"><table class=\"iconlist\">\n";
|
||||||
|
foreach ($block as $pId => $pName):
|
||||||
|
echo ' <tr><th><ul><li><var> </var></li></ul></th><td><a href="?npc='.$pId.'">'.$pName."</a></td></tr>\n";
|
||||||
|
endforeach;
|
||||||
|
echo " </table></div>\n";
|
||||||
|
endforeach;
|
||||||
|
echo " </div></td></tr>\n";
|
||||||
|
break;
|
||||||
|
default: // has icon set (spell / item / ...) or unordered linked list
|
||||||
|
echo $data->renderContainer(20, $iconOffset, true);
|
||||||
|
endswitch;
|
||||||
|
endforeach;
|
||||||
|
|
||||||
if ($this->end):
|
if ($this->end):
|
||||||
echo " <tr><th><p style=\"height: 26px; width: 30px;\"> </p></th><td>".$this->end."</td></tr>\n";
|
echo " <tr><th><p style=\"height: 26px; width: 30px;\"> </p></th><td>".$this->end."</td></tr>\n";
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
if ($o = $this->objectiveList):
|
|
||||||
foreach ($o as $i => $ol):
|
|
||||||
if (isset($ol['text'])):
|
|
||||||
echo ' <tr><th><p style="height: 26px; width: 30px;"> </p></th><td>'.$ol['text']."</td></tr>\n";
|
|
||||||
elseif (!empty($ol['proxy'])): // this implies creatures
|
|
||||||
echo ' <tr><th><p style="height: 26px"> </p></th><td><a href="javascript:;" onclick="g_disclose($WH.ge(\'npcgroup-'.$ol['id'].'\'), this)" class="disclosure-off">'.$ol['name'].$ol['extraText'].'</a>'.($ol['qty'] > 1 ? ' ('.$ol['qty'].')' : null).'<div id="npcgroup-'.$ol['id']."\" style=\"display: none\">\n";
|
|
||||||
|
|
||||||
$block1 = array_slice($ol['proxy'], 0, ceil(count($ol['proxy']) / 2), true);
|
|
||||||
$block2 = array_slice($ol['proxy'], ceil(count($ol['proxy']) / 2), null, true);
|
|
||||||
|
|
||||||
echo " <div style=\"float: left\"><table class=\"iconlist\">\n";
|
|
||||||
foreach ($block1 as $pId => $name):
|
|
||||||
echo ' <tr><th><ul><li><var> </var></li></ul></th><td><a href="?npc='.$pId.'">'.$name."</a></td></tr>\n";
|
|
||||||
endforeach;
|
|
||||||
echo " </table></div>\n";
|
|
||||||
|
|
||||||
if ($block2): // may be empty
|
|
||||||
echo " <div style=\"float: left\"><table class=\"iconlist\">\n";
|
|
||||||
foreach ($block2 as $pId => $name):
|
|
||||||
echo ' <tr><th><ul><li><var> </var></li></ul></th><td><a href="?npc='.$pId.'">'.$name."</a></td></tr>\n";
|
|
||||||
endforeach;
|
|
||||||
echo " </table></div>\n";
|
|
||||||
endif;
|
|
||||||
|
|
||||||
echo " </div></td></tr>\n";
|
|
||||||
elseif (isset($ol['typeStr'])):
|
|
||||||
if (in_array($ol['typeStr'], ['item', 'spell'])):
|
|
||||||
echo ' <tr><th align="right" id="iconlist-icon-'.$i.'"></th>';
|
|
||||||
else /* if (in_array($ol['typeStr'], ['npc', 'object', 'faction'])) */:
|
|
||||||
echo ' <tr><th><ul><li><var> </var></li></ul></th>';
|
|
||||||
endif;
|
|
||||||
|
|
||||||
echo '<td><span class="q'.(isset($ol['quality']) ? $ol['quality'] : null).'"><a href="?'.$ol['typeStr'].'='.$ol['id'].'">'.$ol['name'].'</a></span>'.($ol['extraText']).(!empty($ol['qty']) ? ' ('.$ol['qty'].')' : null)."</td></tr>\n";
|
|
||||||
endif;
|
|
||||||
endforeach;
|
|
||||||
endif;
|
|
||||||
|
|
||||||
if ($this->suggestedPl):
|
if ($this->suggestedPl):
|
||||||
echo ' <tr><th><p style="height: 26px; width: 30px;"> </p></th><td>'.Lang::quest('suggestedPl').Lang::main('colon').$this->suggestedPl."</td></tr>\n";
|
echo ' <tr><th><p style="height: 26px; width: 30px;"> </p></th><td>'.Lang::quest('suggestedPl', [$this->suggestedPl])."</td></tr>\n";
|
||||||
endif;
|
endif;
|
||||||
?>
|
?>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<script type="text/javascript">//<![CDATA[
|
<script type="text/javascript">//<![CDATA[
|
||||||
<?php
|
<?php
|
||||||
foreach ($o as $k => $i):
|
foreach (array_filter($this->objectiveList, fn($x) => $x[0] === 0) as $k => [, $data]):
|
||||||
if (isset($i['typeStr']) && ($i['typeStr'] == 'item' || $i['typeStr'] == 'spell')):
|
echo $data->renderJS();
|
||||||
echo " \$WH.ge('iconlist-icon-".$k."').appendChild(g_".$i['typeStr']."s.createIcon(".$i['id'].", 0, ".$i['qty']."));\n";
|
|
||||||
endif;
|
|
||||||
endforeach;
|
endforeach;
|
||||||
?>
|
?>
|
||||||
//]]></script>
|
//]]></script>
|
||||||
<?php
|
<?php
|
||||||
if ($p = $this->providedItem):
|
if ($this->providedItem):
|
||||||
echo " <div class=\"pad\"></div>\n";
|
|
||||||
echo ' '.Lang::quest('providedItem').Lang::main('colon')."\n";
|
|
||||||
echo " <table class=\"iconlist\">\n";
|
|
||||||
echo ' <tr><th align="right" id="iconlist-icon-'.count($this->objectiveList).'"></th>';
|
|
||||||
echo '<td><span class="q'.$p['quality'].'"><a href="?item='.$p['id'].'">'.$p['name'].'</a></span>'.($p['qty'] ? ' ('.$ol['qty'].')' : null)."</td></tr>\n";
|
|
||||||
?>
|
?>
|
||||||
|
<div class="pad"></div>
|
||||||
|
<?=Lang::quest('providedItem').Lang::main('colon'); ?>
|
||||||
|
<table class="iconlist">
|
||||||
|
<?=$this->providedItem->renderContainer(20, $iconOffset, true); ?>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<script type="text/javascript">//<![CDATA[
|
<script type="text/javascript">//<![CDATA[
|
||||||
<?php
|
<?=$this->providedItem->renderJS(); ?>
|
||||||
echo " \$WH.ge('iconlist-icon-".count($this->objectiveList)."').appendChild(g_items.createIcon(".$p['id'].", 0, ".$p['qty']."));\n";
|
|
||||||
?>
|
|
||||||
//]]></script>
|
//]]></script>
|
||||||
<?php
|
<?php
|
||||||
endif;
|
endif;
|
||||||
@@ -134,76 +118,68 @@ if ($this->offerReward && ($this->requestItems || $this->objectives)):
|
|||||||
<?php
|
<?php
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
$offset = 0;
|
if ([$spells, $items, $choice, $money] = $this->rewards):
|
||||||
if ($r = $this->rewards):
|
|
||||||
echo ' <h3>'.Lang::main('rewards')."</h3>\n";
|
echo ' <h3>'.Lang::main('rewards')."</h3>\n";
|
||||||
|
|
||||||
if (!empty($r['choice'])):
|
if ($choice):
|
||||||
$this->brick('rewards', ['rewTitle' => Lang::quest('chooseItems'), 'rewards' => $r['choice'], 'offset' => $offset]);
|
$this->brick('rewards', ['rewTitle' => Lang::quest('rewardChoices'), 'rewards' => $choice, 'offset' => $iconOffset]);
|
||||||
$offset += count($r['choice']);
|
$iconOffset += count($choice);
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
if (!empty($r['spells'])):
|
if ($spells):
|
||||||
if (!empty($r['choice'])):
|
if ($choice):
|
||||||
echo " <div class=\"pad\"></div>\n";
|
echo " <div class=\"pad\"></div>\n";
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
if (!empty($r['spells']['learn'])):
|
$this->brick('rewards', ['rewTitle' => $spells['title'], 'rewards' => $spells['cast'], 'offset' => $iconOffset, 'extra' => $spells['extra']]);
|
||||||
$this->brick('rewards', ['rewTitle' => Lang::quest('spellLearn'), 'rewards' => $r['spells']['learn'], 'offset' => $offset, 'extra' => $r['spells']['extra']]);
|
$iconOffset += count($spells['cast']);
|
||||||
$offset += count($r['spells']['learn']);
|
|
||||||
elseif (!empty($r['spells']['cast'])):
|
|
||||||
$this->brick('rewards', ['rewTitle' => Lang::quest('spellCast'), 'rewards' => $r['spells']['cast'], 'offset' => $offset, 'extra' => $r['spells']['extra']]);
|
|
||||||
$offset += count($r['spells']['cast']);
|
|
||||||
endif;
|
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
if (!empty($r['items']) || !empty($r['money'])):
|
if ($items || $money):
|
||||||
if (!empty($r['choice']) || !empty($r['spells'])):
|
if ($choice || $spells):
|
||||||
echo " <div class=\"pad\"></div>\n";
|
echo " <div class=\"pad\"></div>\n";
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
$addData = ['rewards' => !empty($r['items']) ? $r['items'] : null, 'offset' => $offset, 'extra' => !empty($r['money']) ? $r['money'] : null];
|
$this->brick('rewards', array(
|
||||||
$addData['rewTitle'] = empty($r['choice']) ? Lang::quest('receiveItems') : Lang::quest('receiveAlso');
|
'rewTitle' => $choice ? Lang::quest('rewardAlso') : Lang::quest('rewardItems'),
|
||||||
|
'rewards' => $items ?: null,
|
||||||
$this->brick('rewards', $addData);
|
'offset' => $iconOffset,
|
||||||
|
'extra' => $money ?: null
|
||||||
|
));
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
if ($g = $this->gains):
|
if ([$xp, $rep, $title, $tp] = $this->gains):
|
||||||
echo ' <h3>'.Lang::main('gains')."</h3>\n";
|
?>
|
||||||
echo ' '.Lang::quest('gainsDesc').Lang::main('colon')."\n";
|
<h3><?=Lang::main('gains'); ?></h3>
|
||||||
echo " <ul>\n";
|
<?=Lang::quest('gainsDesc').Lang::main('colon'); ?>
|
||||||
|
<ul>
|
||||||
if (!empty($g['xp'])):
|
<?php
|
||||||
echo ' <li><div>'.Lang::nf($g['xp']).' '.Lang::quest('experience')."</div></li>\n";
|
if ($xp):
|
||||||
|
echo ' <li><div>'.Lang::nf($xp).' '.Lang::quest('experience')."</div></li>\n";
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
if (!empty($g['rep'])):
|
if ($rep):
|
||||||
foreach ($g['rep'] as $r):
|
foreach ($rep as $r):
|
||||||
if ($r['qty'][1] && User::isInGroup(U_GROUP_EMPLOYEE))
|
echo ' <li><div>'.sprintf($r['qty'][0] < 0 ? '<b class="q10">%s</b>' : '%s', $r['qty'][1]).' '.Lang::npc('repWith').' <a href="?faction='.$r['id'].'">'.$r['name']."</a></div></li>\n";
|
||||||
$qty = $r['qty'][0] . sprintf(Util::$dfnString, Lang::faction('customRewRate'), ($r['qty'][1] > 0 ? '+' : '').$r['qty'][1]);
|
|
||||||
else
|
|
||||||
$qty = array_sum($r['qty']);
|
|
||||||
|
|
||||||
echo ' <li><div>'.($r['qty'][0] < 0 ? '<b class="q10">'.$qty.'</b>' : $qty).' '.Lang::npc('repWith').' <a href="?faction='.$r['id'].'">'.$r['name']."</a></div></li>\n";
|
|
||||||
endforeach;
|
endforeach;
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
if (!empty($g['title'])):
|
if ($title):
|
||||||
echo ' <li><div>'.Lang::quest('theTitle', [$g['title']])."</div></li>\n";
|
echo ' <li><div>'.Lang::quest('rewardTitle', $title)."</div></li>\n";
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
if (!empty($g['tp'])):
|
if ($tp):
|
||||||
echo ' <li><div>'.Lang::quest('bonusTalents', [$g['tp']])."</div></li>\n";
|
echo ' <li><div>'.Lang::quest('bonusTalents', [$tp])."</div></li>\n";
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
echo " </ul>\n";
|
echo " </ul>\n";
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
$this->brick('mail', ['offset' => ++$offset]);
|
$this->brickIf($this->mail, 'mail', ['offset' => ++$iconOffset]);
|
||||||
|
|
||||||
if (!empty($this->transfer)):
|
if ($this->transfer):
|
||||||
echo " <div style=\"clear: left\"></div>";
|
echo " <div style=\"clear: left\"></div>";
|
||||||
echo " <div class=\"pad\"></div>\n ".$this->transfer."\n";
|
echo " <div class=\"pad\"></div>\n ".$this->transfer."\n";
|
||||||
endif;
|
endif;
|
||||||
@@ -213,7 +189,7 @@ endif;
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
$this->brick('lvTabs', ['relTabs' => true]);
|
$this->brick('lvTabs');
|
||||||
|
|
||||||
$this->brick('contribute');
|
$this->brick('contribute');
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
<?php namespace Aowow; ?>
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
$this->brick('header');
|
namespace Aowow\Template;
|
||||||
$f = $this->filterObj->values // shorthand
|
|
||||||
?>
|
|
||||||
|
|
||||||
|
use Aowow\Lang;
|
||||||
|
|
||||||
|
$this->brick('header');
|
||||||
|
$f = $this->filter->values; // shorthand
|
||||||
|
?>
|
||||||
<div class="main" id="main">
|
<div class="main" id="main">
|
||||||
<div class="main-precontents" id="main-precontents"></div>
|
<div class="main-precontents" id="main-precontents"></div>
|
||||||
<div class="main-contents" id="main-contents">
|
<div class="main-contents" id="main-contents">
|
||||||
@@ -12,41 +13,44 @@ $f = $this->filterObj->values // shorthand
|
|||||||
<?php
|
<?php
|
||||||
$this->brick('announcement');
|
$this->brick('announcement');
|
||||||
|
|
||||||
$this->brick('pageTemplate', ['fiQuery' => $this->filterObj->query, 'fiMenuItem' => [3]]);
|
$this->brick('pageTemplate', ['fiQuery' => $this->filter->query, 'fiMenuItem' => [3]]);
|
||||||
?>
|
?>
|
||||||
|
<div id="fi" style="display: <?=($this->filter->query ? 'block' : 'none'); ?>;">
|
||||||
<div id="fi" style="display: <?=($this->filterObj->query ? 'block' : 'none'); ?>;">
|
|
||||||
<form action="?filter=quests<?=$this->subCat; ?>" method="post" name="fi" onsubmit="return fi_submit(this)" onreset="return fi_reset(this)">
|
<form action="?filter=quests<?=$this->subCat; ?>" method="post" name="fi" onsubmit="return fi_submit(this)" onreset="return fi_reset(this)">
|
||||||
|
<div class="text">
|
||||||
|
<?php
|
||||||
|
$this->brick('headIcons');
|
||||||
|
|
||||||
|
$this->brick('redButtons');
|
||||||
|
?>
|
||||||
|
<h1><?=$this->h1; ?></h1>
|
||||||
|
</div>
|
||||||
<div class="rightpanel">
|
<div class="rightpanel">
|
||||||
<div style="float: left"><?=Lang::game('type').Lang::main('colon'); ?></div><small><a href="javascript:;" onclick="document.forms['fi'].elements['ty[]'].selectedIndex = -1; return false" onmousedown="return false"><?=Lang::main('clear'); ?></a></small>
|
<div style="float: left"><?=Lang::game('type').Lang::main('colon'); ?></div><small><a href="javascript:;" onclick="document.forms['fi'].elements['ty[]'].selectedIndex = -1; return false" onmousedown="return false"><?=Lang::main('clear'); ?></a></small>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
<select name="ty[]" size="6" multiple="multiple" class="rightselect">
|
<select name="ty[]" size="6" multiple="multiple" class="rightselect">
|
||||||
<?php
|
<?=$this->makeOptionsList(Lang::quest('questInfo'), $f['ty'], 28); ?>
|
||||||
foreach (Lang::quest('questInfo') as $i => $str):
|
|
||||||
echo ' <option value="'.$i.'"'.(isset($f['ty']) && in_array($i, (array)$f['ty']) ? ' selected' : null).'>'.$str."</option>\n";
|
|
||||||
endforeach;
|
|
||||||
?>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?=Util::ucFirst(Lang::main('name')).Lang::main('colon'); ?></td>
|
<td><?=$this->ucFirst(Lang::main('name')).Lang::main('colon'); ?></td>
|
||||||
<td colspan="3">
|
<td colspan="3">
|
||||||
<table><tr>
|
<table><tr>
|
||||||
<td> <input type="text" name="na" size="30" <?=(isset($f['na']) ? 'value="'.Util::htmlEscape($f['na']).'" ' : null); ?>/></td>
|
<td> <input type="text" name="na" size="30" <?=($f['na'] ? 'value="'.$this->escHTML($f['na']).'" ' : ''); ?>/></td>
|
||||||
<td> <input type="checkbox" name="ex" value="on" id="quest-ex" <?=(isset($f['ex']) ? 'checked ' : null); ?>/></td>
|
<td> <input type="checkbox" name="ex" value="on" id="quest-ex" <?=($f['ex'] ? 'checked ' : ''); ?>/></td>
|
||||||
<td><label for="quest-ex"><span class="tip" onmouseover="$WH.Tooltip.showAtCursor(event, LANG.tooltip_extendedquestsearch, 0, 0, 'q')" onmousemove="$WH.Tooltip.cursorUpdate(event)" onmouseout="$WH.Tooltip.hide()"><?=Lang::main('extSearch'); ?></span></label></td>
|
<td><label for="quest-ex"><span class="tip" onmouseover="$WH.Tooltip.showAtCursor(event, LANG.tooltip_extendedquestsearch, 0, 0, 'q')" onmousemove="$WH.Tooltip.cursorUpdate(event)" onmouseout="$WH.Tooltip.hide()"><?=Lang::main('extSearch'); ?></span></label></td>
|
||||||
</tr></table>
|
</tr></table>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="padded"><?=Lang::game('level').Lang::main('colon'); ?></td>
|
<td class="padded"><?=Lang::game('level').Lang::main('colon'); ?></td>
|
||||||
<td class="padded"> <input type="text" name="minle" maxlength="2" class="smalltextbox" <?=(isset($f['minle']) ? 'value="'.$f['minle'].'" ' : null); ?>/> - <input type="text" name="maxle" maxlength="2" class="smalltextbox" <?=(isset($f['maxle']) ? 'value="'.$f['maxle'].'" ' : null); ?>/></td>
|
<td class="padded"> <input type="text" name="minle" maxlength="2" class="smalltextbox" <?=($f['minle'] ? 'value="'.$f['minle'].'" ' : ''); ?>/> - <input type="text" name="maxle" maxlength="2" class="smalltextbox" <?=($f['maxle'] ? 'value="'.$f['maxle'].'" ' : ''); ?>/></td>
|
||||||
<td class="padded" width="100%">
|
<td class="padded" width="100%">
|
||||||
<table><tr>
|
<table><tr>
|
||||||
<td> <?=Lang::main('_reqLevel').Lang::main('colon'); ?></td>
|
<td> <?=Lang::main('_reqLevel').Lang::main('colon'); ?></td>
|
||||||
<td> <input type="text" name="minrl" maxlength="2" class="smalltextbox" <?=(isset($f['minrl']) ? 'value="'.$f['minrl'].'" ' : null); ?>/> - <input type="text" name="maxrl" maxlength="2" class="smalltextbox" <?=(isset($f['maxrl']) ? 'value="'.$f['maxrl'].'" ' : null); ?>/></td>
|
<td> <input type="text" name="minrl" maxlength="2" class="smalltextbox" <?=($f['minrl'] ? 'value="'.$f['minrl'].'" ' : ''); ?>/> - <input type="text" name="maxrl" maxlength="2" class="smalltextbox" <?=($f['maxrl'] ? 'value="'.$f['maxrl'].'" ' : ''); ?>/></td>
|
||||||
</tr></table>
|
</tr></table>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -54,11 +58,7 @@ endforeach;
|
|||||||
<td class="padded"><?=Lang::main('side').Lang::main('colon'); ?></td>
|
<td class="padded"><?=Lang::main('side').Lang::main('colon'); ?></td>
|
||||||
<td class="padded" colspan="3"> <select name="si">
|
<td class="padded" colspan="3"> <select name="si">
|
||||||
<option></option>
|
<option></option>
|
||||||
<?php
|
<?=$this->makeOptionsList(Lang::game('si'), $f['si'], 36); ?>
|
||||||
foreach (Lang::game('si') as $i => $str):
|
|
||||||
echo ' <option value="'.$i.'"'.(isset($f['si']) && $i == $f['si'] ? ' selected' : null).'>'.$str."</option>\n";
|
|
||||||
endforeach;
|
|
||||||
?>
|
|
||||||
</select></td>
|
</select></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@@ -66,7 +66,7 @@ endforeach;
|
|||||||
|
|
||||||
<div class="padded2 clear">
|
<div class="padded2 clear">
|
||||||
<div style="float: right"><?=Lang::main('refineSearch'); ?></div>
|
<div style="float: right"><?=Lang::main('refineSearch'); ?></div>
|
||||||
<?=Lang::main('match').Lang::main('colon'); ?><input type="radio" name="ma" value="" id="ma-0" <?=(!isset($f['ma']) ? 'checked="checked" ' : null); ?>/><label for="ma-0"><?=Lang::main('allFilter'); ?></label><input type="radio" name="ma" value="1" id="ma-1" <?=(isset($f['ma']) ? 'checked="checked" ' : null); ?> /><label for="ma-1"><?=Lang::main('oneFilter'); ?></label>
|
<?=Lang::main('match'); ?><input type="radio" name="ma" value="" id="ma-0" <?=(!$f['ma'] ? 'checked="checked" ' : ''); ?>/><label for="ma-0"><?=Lang::main('allFilter'); ?></label><input type="radio" name="ma" value="1" id="ma-1" <?=($f['ma'] ? 'checked="checked" ' : ''); ?> /><label for="ma-1"><?=Lang::main('oneFilter'); ?></label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
@@ -80,7 +80,7 @@ endforeach;
|
|||||||
<div class="pad"></div>
|
<div class="pad"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php $this->brick('filter'); ?>
|
<?=$this->renderFilter(12); ?>
|
||||||
|
|
||||||
<?php $this->brick('lvTabs'); ?>
|
<?php $this->brick('lvTabs'); ?>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user