* implemented enchantment conditions for meta gems
 * removed hardcoded static-domain in transfer-string
Site:
 * gain rep for ACTION_REGISTER when logging in for the first time, using external auth
 * language-menu uses the same dropdown-icon as other menus
Spell:
 * hide procChance of 100% or more
ItemComparison:
 * fixed display of drag-icon
 * fixed single gems being moved to first empty socket in tooltips

squelched some notices in quest.php and item.php
This commit is contained in:
Sarjuuk
2014-08-13 21:39:57 +02:00
parent 78422b9130
commit cdfde74eb9
16 changed files with 2904 additions and 45 deletions

View File

@@ -41,7 +41,7 @@ class AjaxHandler
if (empty($this->get['id']))
return;
if ($_ = DB::Aowow()->selectRow('SELECT c2.id as zwei, c1.id as eins, IFNULL(c2.id, c1.id) AS id, IFNULL(c2.type, c1.type) AS type, IFNULL(c2.typeId, c1.typeId) AS typeId FROM ?_comments c1 LEFT JOIN ?_comments c2 ON c1.replyTo = c2.id WHERE c1.id = ?d', $this->get['id']))
if ($_ = DB::Aowow()->selectRow('SELECT IFNULL(c2.id, c1.id) AS id, IFNULL(c2.type, c1.type) AS type, IFNULL(c2.typeId, c1.typeId) AS typeId FROM ?_comments c1 LEFT JOIN ?_comments c2 ON c1.replyTo = c2.id WHERE c1.id = ?d', $this->get['id']))
header('Location: ?'.Util::$typeStrings[$_['type']].'='.$_['typeId'].'#comments:id='.$_['id'].($_['id'] != $this->get['id'] ? ':reply='.$this->get['id'] : null));
}

View File

@@ -604,8 +604,33 @@ class ItemList extends BaseType
// Item is a gem (don't mix with sockets)
if ($geId = $this->curTpl['gemEnchantmentId'])
{
$gemText = DB::Aowow()->selectRow('SELECT * FROM ?_itemEnchantment WHERE id = ?d', $geId);
$x .= Util::localizedString($gemText, 'text').'<br />';
$gemEnch = DB::Aowow()->selectRow('SELECT * FROM ?_itemenchantment WHERE id = ?d', $geId);
$x .= '<span class="q1">'.Util::localizedString($gemEnch, 'text').'</span><br />';
// activation conditions for meta gems
if ($gemEnch['conditionId'])
{
if ($gemCnd = DB::Aowow()->selectRow('SELECT * FROM ?_itemenchantmentcondition WHERE id = ?d', $gemEnch['conditionId']))
{
for ($i = 1; $i < 6; $i++)
{
if (!$gemCnd['color'.$i])
continue;
switch ($gemCnd['comparator'.$i])
{
case 2: // requires less <color> than (<value> || <comparecolor>) gems
case 5: // requires at least <color> than (<value> || <comparecolor>) gems
$sp = (int)$gemCnd['value'.$i] > 1;
$x .= '<span class="q0">'.Lang::$achievement['reqNumCrt'].' '.sprintf(Lang::$item['gemConditions'][$gemCnd['comparator'.$i]][$sp], $gemCnd['value'.$i], Lang::$item['gemColors'][$gemCnd['color'.$i] - 1]).'</span><br />';
break;
case 3: // requires more <color> than (<value> || <comparecolor>) gems
$x .= '<span class="q0">'.Lang::$achievement['reqNumCrt'].' '.sprintf(Lang::$item['gemConditions'][3], Lang::$item['gemColors'][$gemCnd['color'.$i] - 1], Lang::$item['gemColors'][$gemCnd['cmpColor'.$i] - 1]).'</span><br />';
break;
}
}
}
}
}
// Random Enchantment - if random enchantment is set, prepend stats from it
@@ -654,14 +679,17 @@ class ItemList extends BaseType
{
$gems = DB::Aowow()->select('SELECT i.id AS ARRAY_KEY, i.iconString, ae.*, i.gemColorMask AS colorMask FROM ?_items i JOIN ?_itemenchantment ae ON ae.id = i.gemEnchantmentId WHERE i.id IN (?a)', $enhance['g']);
foreach ($enhance['g'] as $k => $v)
if (!in_array($v, array_keys($gems)))
if ($v && !in_array($v, array_keys($gems))) // 0 is valid
unset($enhance['g'][$k]);
}
else
$enhance['g'] = [];
// zero fill empty sockets
$sockCount = $this->curTpl['socketColor1'] + $this->curTpl['socketColor2'] + $this->curTpl['socketColor3'] + (isset($enhance['s']) ? 1 : 0);
$sockCount = isset($enhance['s']) ? 1 : 0;
if (!empty($this->json[$this->id]['nsockets']))
$sockCount += $this->json[$this->id]['nsockets'];
while ($sockCount > count($enhance['g']))
$enhance['g'][] = 0;

View File

@@ -196,7 +196,7 @@ class User
return AUTH_IPBANNED;
$query = DB::Aowow()->SelectRow('
SELECT a.id, a.passHash, BIT_OR(ab.typeMask) AS bans, status
SELECT a.id, a.passHash, BIT_OR(ab.typeMask) AS bans, a.status
FROM ?_account a
LEFT JOIN ?_account_banned ab ON a.id = ab.userId AND ab.end > UNIX_TIMESTAMP()
WHERE a.user = ?
@@ -282,7 +282,7 @@ class User
if (DB::Aowow()->selectCell('SELECT 1 FROM ?_account WHERE extId = ?d', $extId))
return true;
$ok = DB::Aowow()->query('INSERT INTO ?_account (extId, user, displayName, lastIP, locale, status) VALUES (?d, ?, ?, ?, ?d, ?d)',
$newId = DB::Aowow()->query('INSERT INTO ?_account (extId, user, displayName, lastIP, locale, status) VALUES (?d, ?, ?, ?, ?d, ?d)',
$extId,
$name,
Util::ucFirst($name),
@@ -291,7 +291,10 @@ class User
ACC_STATUS_OK
);
return $ok;
if ($newId)
Util::gainSiteReputation(SITEREP_ACTION_REGISTER, $newId);
return $newId;
}
private static function createSalt()

View File

@@ -660,7 +660,7 @@ $lang = array(
'powerRunes' => ["Frost", "Unheilig", "Blut", "Tod"],
'powerTypes' => array(
-2 => "Gesundheit", -1 => null, "Mana", "Wut", "Fokus", "Energie", "Zufriedenheit", "Runen", "Runenmacht",
'AMMOSLOT' => "Munition", 'STEAM' => "Dampfdruck", 'WRATH' => "Zorn", 'PYRITE' => "Pyrit",
'AMMOSLOT' => "Munition", 'STEAM' => "Dampfdruck", 'WRATH' => "Wrath", 'PYRITE' => "Pyrit",
'HEAT' => "Hitze", 'OOZE' => "Schlamm", 'BLOOD_POWER' => "Blutmacht"
),
'relItems' => array(
@@ -798,7 +798,7 @@ $lang = array(
'tool' => "Werkzeug",
'cost' => "Preis",
'content' => "Inhalt",
'_transfer' => 'Dieser Gegenstand wird mit <a href="?item=%d" class="q%d icontiny tinyspecial" style="background-image: url(static/images/wow/icons/tiny/%s.gif)">%s</a> vertauscht, wenn Ihr zur <span class="icon-%s">%s</span> wechselt.',
'_transfer' => 'Dieser Gegenstand wird mit <a href="?item=%d" class="q%d icontiny tinyspecial" style="background-image: url('.STATIC_URL.'/images/wow/icons/tiny/%s.gif)">%s</a> vertauscht, wenn Ihr zur <span class="icon-%s">%s</span> wechselt.',
'_unavailable' => "Dieser Gegenstand ist nicht für Spieler verfügbar.",
'_rndEnchants' => "Zufällige Verzauberungen",
'_chance' => "(Chance von %s%%)",
@@ -811,18 +811,26 @@ $lang = array(
'tabOther' => "Anderes",
'gems' => "Edelsteine",
'socketBonus' => "Sockelbonus",
'socket' => array (
'socket' => array(
"Metasockel", "Roter Sockel", "Gelber Sockel", "Blauer Sockel", -1 => "Prismatischer Sockel"
),
'quality' => array (
'gemColors' => array( // *_GEM
"Meta", "Rot", "Gelb", "Blau"
),
'gemConditions' => array( // ENCHANT_CONDITION_* in GlobalStrings.lua; 2 not in use (use as PH)
2 => ["weniger als %d Edelstein der Kategorie %s", "weniger als %d Edelsteine der Kategorie %s"],
3 => "mehr Edelsteine der Kategorie %s als Edelsteine der Kategorie %s",
5 => ["mindestens %d Edelstein der Kategorie %s", "mindestens %d Edelsteine der Kategorie %s"]
),
'quality' => array(
"Schlecht", "Verbreitet", "Selten", "Rar",
"Episch", "Legendär", "Artefakt", "Erbstücke",
),
'trigger' => array (
'trigger' => array(
"Benutzen: ", "Anlegen: ", "Chance bei Treffer: ", null, null,
null, null
),
'bonding' => array (
'bonding' => array(
"Accountgebunden", "Wird beim Aufheben gebunden", "Wird beim Anlegen gebunden",
"Wird bei Benutzung gebunden", "Questgegenstand", "Questgegenstand"
),

View File

@@ -658,7 +658,7 @@ $lang = array(
'AMMOSLOT' => "Ammo", 'STEAM' => "Steam Pressure", 'WRATH' => "Wrath", 'PYRITE' => "Pyrite",
'HEAT' => "Heat", 'OOZE' => "Ooze", 'BLOOD_POWER' => "Blood Power"
),
'relItems' => array (
'relItems' => array(
'base' => "<small>Show %s related to <b>%s</b></small>",
'link' => " or ",
'recipes' => '<a href="?items=9.%s">recipe items</a>',
@@ -793,7 +793,7 @@ $lang = array(
'tool' => "Tool",
'cost' => "Cost",
'content' => "Content",
'_transfer' => 'This item will be converted to <a href="?item=%d" class="q%d icontiny tinyspecial" style="background-image: url(static/images/wow/icons/tiny/%s.gif)">%s</a> if you transfer to <span class="icon-%s">%s</span>.',
'_transfer' => 'This item will be converted to <a href="?item=%d" class="q%d icontiny tinyspecial" style="background-image: url('.STATIC_URL.'/images/wow/icons/tiny/%s.gif)">%s</a> if you transfer to <span class="icon-%s">%s</span>.',
'_unavailable' => "This item is not available to players.",
'_rndEnchants' => "Random Enchantments",
'_chance' => "(%s%% chance)",
@@ -807,17 +807,25 @@ $lang = array(
'gems' => "Gems",
'socketBonus' => "Socket Bonus",
'socket' => array(
"Meta Socket", "Red Socket", "Yellow Socket", "Blue Socket", -1 => "Prismatic Socket"
"Meta Socket", "Red Socket", "Yellow Socket", "Blue Socket", -1 => "Prismatic Socket"
),
'quality' => array (
'gemColors' => array(
"meta", "red", "yellow", "blue"
),
'gemConditions' => array( // ENCHANT_CONDITION_* in GlobalStrings.lua
2 => ["less than %d %s gem", "less than %d %s gems"],
3 => "more %s gems than %s gems",
5 => ["at least %d %s gem", "at least %d %s gems"]
),
'quality' => array(
"Poor", "Common", "Uncommon", "Rare",
"Epic", "Legendary", "Artifact", "Heirloom"
),
'trigger' => array (
'trigger' => array(
"Use: ", "Equip: ", "Chance on hit: ", null, null,
null, null
),
'bonding' => array (
'bonding' => array(
"Binds to account", "Binds when picked up", "Binds when equipped",
"Binds when used", "Quest Item", "Quest Item"
),

View File

@@ -655,7 +655,7 @@ $lang = array(
'AMMOSLOT' => "[Ammo]", 'STEAM' => "[Steam Pressure]", 'WRATH' => "[Wrath]", 'PYRITE' => "[Pyrite]",
'HEAT' => "[Heat]", 'OOZE' => "[Ooze]", 'BLOOD_POWER' => "[Blood Power]" // spellname of 72370
),
'relItems' => array (
'relItems' => array(
'base' => "<small>Muestra %s relacionados con <b>%s</b></small>",
'link' => " u ",
'recipes' => '<a href="?items=9.%s">objetos de receta</a>',
@@ -790,7 +790,7 @@ $lang = array(
'tool' => "Herramienta",
'cost' => "Coste",
'content' => "Contenido",
'_transfer' => 'Este objeto será convertido a <a href="?item=%d" class="q%d icontiny tinyspecial" style="background-image: url(static/images/wow/icons/tiny/%s.gif)">%s</a> si lo transfieres a la <span class="icon-%s">%s</span>.',
'_transfer' => 'Este objeto será convertido a <a href="?item=%d" class="q%d icontiny tinyspecial" style="background-image: url('.STATIC_URL.'/images/wow/icons/tiny/%s.gif)">%s</a> si lo transfieres a la <span class="icon-%s">%s</span>.',
'_unavailable' => "Este objeto no está disponible para los jugadores.",
'_rndEnchants' => "Encantamientos aleatorios",
'_chance' => "(probabilidad %s%%)",
@@ -806,15 +806,23 @@ $lang = array(
'socket' => array(
"Ranura meta", "Ranura roja", "Ranura amarilla", "Ranura azul", -1 => "Ranura prismática"
),
'quality' => array (
'gemColors' => array( // *_GEM
"meta", "roja(s)", "amarilla(s)", "azul(es)"
),
'gemConditions' => array( // ENCHANT_CONDITION_*
2 => ["menos de %d %s gema", "menos de %d %s gemas"],
3 => "más gemas %s que gemas %s",
5 => ["al menos %d %s gema", "al menos %d %s gemas"]
),
'quality' => array(
"Pobre", "Común", "Poco Común", "Raro",
"Épica", "Legendaria", "Artefacto", "Reliquia"
),
'trigger' => array (
'trigger' => array(
"Uso: ", "Equipar: ", "Probabilidad al acertar: ", null, null,
null, null
),
'bonding' => array (
'bonding' => array(
"Se liga a la cuenta", "Se liga al recogerlo", "Se liga al equiparlo",
"Se liga al usarlo", "Objeto de misión", "Objeto de misión"
),

View File

@@ -138,7 +138,7 @@ $lang = array(
'bannedRating' => "Vous avez été banni du score des commentaires.", # LANG.tooltip_banned_rating
'tooManyVotes' => "Vous avez voté trop souvent aujourd'hui! Revenez demain." # LANG.tooltip_too_many_votes
),
'game' => array (
'game' => array(
'achievement' => "haut fait",
'achievements' => "Hauts faits",
'class' => "classe",
@@ -653,7 +653,7 @@ $lang = array(
'AMMOSLOT' => "[Ammo]", 'STEAM' => "[Steam Pressure]", 'WRATH' => "courroux", 'PYRITE' => "Pyrite",
'HEAT' => "chaleur", 'OOZE' => "limon", 'BLOOD_POWER' => "puissance de sang"
),
'relItems' => array (
'relItems' => array(
'base' => "<small>Montre %s reliés à <b>%s</b></small>",
'link' => " ou ",
'recipes' => "les <a href=\"?items=9.%s\">recettes</a>",
@@ -788,7 +788,7 @@ $lang = array(
'tool' => "Outil",
'cost' => "Coût",
'content' => "Contenu",
'_transfer' => 'Cet objet sera converti en <a href="?item=%d" class="q%d icontiny tinyspecial" style="background-image: url(static/images/wow/icons/tiny/%s.gif)">%s</a> si vous transférez en <span class="icon-%s">%s</span>.',
'_transfer' => 'Cet objet sera converti en <a href="?item=%d" class="q%d icontiny tinyspecial" style="background-image: url('.STATIC_URL.'/images/wow/icons/tiny/%s.gif)">%s</a> si vous transférez en <span class="icon-%s">%s</span>.',
'_unavailable' => "Este objeto no está disponible para los jugadores.",
'_rndEnchants' => "Enchantements aléatoires",
'_chance' => "(%s%% de chance)",
@@ -804,15 +804,23 @@ $lang = array(
'socket' => array(
"Méta-châsse", "Châsse rouge", "Châsse jaune", "Châsse bleue", -1 => "Châsse prismatique"
),
'quality' => array (
'gemColors' => array( // *_GEM
"Méta", "rouge(s)", "jaune(s)", "bleue(s)"
),
'gemConditions' => array( // ENCHANT_CONDITION_*
2 => ["moins de %d gemme %s", "moins de %d gemmes %s"],
3 => "plus de gemmes %s que de %s", // plus de gemmes %s que |2 %s
5 => ["au moins %d gemme %s", "au moins %d gemmes %s"]
),
'quality' => array(
"Médiocre", "Classique", "Bonne", "Rare",
"Épique", "Légendaire", "Artefact", "Héritage"
),
'trigger' => array (
'trigger' => array(
"Utilise : ", "Équipé : ", "Chances quand vous touchez : ", null, null,
null, null
),
'bonding' => array (
'bonding' => array(
"Lié au compte", "Lié quand ramassé", "Lié quand équipé",
"Lié quand utilisé", "Objet de quête", "Objet de quête"
),

View File

@@ -660,7 +660,7 @@ $lang = array(
'AMMOSLOT' => "[Ammo]", 'STEAM' => "[Steam Pressure]", 'WRATH' => "Гневу", 'PYRITE' => "Колчедан",
'HEAT' => "Жар", 'OOZE' => "Слизнюка", 'BLOOD_POWER' => "Сила крови"
),
'relItems' => array (
'relItems' => array(
'base' => "<small>Показать %s, относящиеся к профессии <b>%s</b></small>",
'link' => " или ",
'recipes' => '<a href="?items=9.%s">рецепты</a>',
@@ -795,7 +795,7 @@ $lang = array(
'tool' => "Инструмент",
'cost' => "Цена",
'content' => "Материал",
'_transfer' => 'Этот предмет превратится в <a href="?item=%d" class="q%d icontiny tinyspecial" style="background-image: url(static/images/wow/icons/tiny/%s.gif)">%s</a>, если вы перейдете за <span class="icon-%s">%s</span>.',
'_transfer' => 'Этот предмет превратится в <a href="?item=%d" class="q%d icontiny tinyspecial" style="background-image: url('.STATIC_URL.'/images/wow/icons/tiny/%s.gif)">%s</a>, если вы перейдете за <span class="icon-%s">%s</span>.',
'_unavailable' => "Этот предмет не доступен игрокам.",
'_rndEnchants' => "Случайные улучшения",
'_chance' => "(шанс %s%%)",
@@ -811,15 +811,23 @@ $lang = array(
'socket' => array(
"Особое гнездо", "Красное гнездо", "Желтое гнездо", "Синее гнездо", -1 => "Бесцветное гнездо"
),
'quality' => array (
'gemColors' => array( // *_GEM
"Особый", "Красный", "Желтый", "Синий"
),
'gemConditions' => array( // ENCHANT_CONDITION_* so whats that pipe-code..?
2 => ["меньше, чем %d камень %s цвета", "меньше, чем %d камня %s цвета"], // меньше, чем %d |4камень:камня:камней; |3-1(%s) цвета
3 => "больше %s, чем %s камней", // больше |3-7(%s), чем |3-7(%s) камней
5 => ["хотя бы %d камень %s цвета", "хотя бы %d камня %s цвета"] // хотя бы %d |4камень:камня:камней; |3-1(%s) цвета; same here
),
'quality' => array(
"Низкий", "Обычный", "Необычный", "Редкий",
"Эпический", "Легендарный", "Артефакт", "Фамильная черта"
),
'trigger' => array (
'trigger' => array(
"Использование: ", "Если на персонаже: ", "Возможный эффект при попадании: ",
null, null, null, null
),
'bonding' => array (
'bonding' => array(
"Привязано к учетной записи", "Персональный при поднятии", "Становится персональным при надевании",
"Персональный при использовании", "Предмет, необходимый для задания", "Предмет, необходимый для задания"
),

View File

@@ -128,7 +128,7 @@ class ItemsPage extends GenericPage
$infoMask |= ITEMINFO_VENDOR;
if (!empty($this->filter['fi']['extraCols']))
$this->sharedLV['extraCols'] = '$fi_getExtraCols(fi_extraCols, '.($this->filter['gm'] ?: 0).', '.(array_intersect([63], $xCols) ? 1 : 0).')';
$this->sharedLV['extraCols'] = '$fi_getExtraCols(fi_extraCols, '.(isset($this->filter['gm']) ? $this->filter['gm'] : 0).', '.(array_intersect([63], $xCols) ? 1 : 0).')';
if ($this->filterObj->error)
$this->sharedLV['_errors'] = '$1';

View File

@@ -347,6 +347,8 @@ class QuestPage extends GenericPage
/* Objectives List */
/*******************/
$this->objectiveList = [];
// gather ids for lookup
$olItems = $olNPCs = $olGOs = $olFactions = [];

View File

@@ -1511,7 +1511,7 @@ class SpellPage extends GenericPage
if ($_ = $this->subject->getField('effect'.$i.'Mechanic'))
$foo['mechanic'] = Lang::$game['me'][$_];
if (!empty($procData['chance']) && $procData['chance'] < 100)
if (!empty($procData['chance']))
$foo['procData'] = array(
$procData['chance'],
$procData['cooldown'] ? Util::formatTime($procData['cooldown'] * 1000, true) : null

File diff suppressed because it is too large Load Diff

View File

@@ -3679,10 +3679,13 @@ a:hover.pet-zoom {
padding: 5px 0 5px 0px;
}
/* still in use */
/* still in use, merge with .hassubmenu */
a#toplinks-language {
padding: 0 0 0 21px;
background: url(../images/icons/language.gif) left center no-repeat;
/* padding: 0 0 0 21px; */
padding: 0 13px 0 21px;
background-image: url(../images/icons/language.gif), url(../images/Menu/arrow-down-ffcd55.gif);
background-position: left center, right center;
background-repeat: no-repeat, no-repeat;
}
/* the search.css is basicly empty without the styles for googleseach */

View File

@@ -308,7 +308,7 @@
}
.dragged {
z-index: 1000;
z-index: 1000 !important;
opacity: 0.35;
filter: alpha(opacity=35);
}

View File

@@ -6,4 +6,4 @@ else:
endif;
?>
|<a href="#" id="toplinks-feedback" class="icon-email"><?php echo Lang::$main['feedback']; ?></a>
|<a href="javascript:;" id="toplinks-language"><?php echo Lang::$main['language']; ?><small>&#9660;</small></a>
|<a href="javascript:;" id="toplinks-language"><?php echo Lang::$main['language']; ?></a>

View File

@@ -184,8 +184,8 @@ foreach ($this->effects as $i => $e):
echo '<br>';
if ($e['procData'][0] < 0):
echo sprintf(Lang::$spell['ppm'], $e['procData'][0] * -1);
else:
echo sprintf(Lang::$spell['ppm'], -$e['procData'][0]);
elseif ($e['procData'][0] < 100.0):
echo Lang::$spell['procChance'].Lang::$main['colon'].$e['procData'][0].'%';
endif;