[ Disclaimer, Create new user --- Wiki markup help, Install P99 ]
Difference between revisions of "Magelo Blue:Loramin"
(→Wiki Work) |
(→Head) |
||
Line 79: | Line 79: | ||
==== Head ==== | ==== Head ==== | ||
+ | Looking for BiS "bear head" look (ie. [[:Category:Fashion: Leather|Leather]]). Lucy lists the Custom helms, eg. | ||
<ul> | <ul> | ||
<li> {{:Custom Crown of the Kromzek Kings}} (Kael Drakkel - [[King Tormax]]) | <li> {{:Custom Crown of the Kromzek Kings}} (Kael Drakkel - [[King Tormax]]) | ||
− | |||
<li> {{:Custom Frostreaver's Velium Crown}} (Icewell Keep - [[Dain Frostreaver IV]]) | <li> {{:Custom Frostreaver's Velium Crown}} (Icewell Keep - [[Dain Frostreaver IV]]) | ||
<li> {{:Custom Cowl of Mortality}} (Dragon Necropolis - [[Zlandicar]]) | <li> {{:Custom Cowl of Mortality}} (Dragon Necropolis - [[Zlandicar]]) | ||
+ | </ul> | ||
+ | |||
+ | as [[:Category:Fashion: Leather|Leather]] ... but I think that's a mistake, and those helms ''don't'' have the bear head look. If I confirm that, that makes the following the best options: | ||
+ | |||
+ | <ul> | ||
+ | <li> {{:Spirit Talker's Headdress}} (Dragon Necropolis - [[a Paebala Spirit Talker]]) | ||
+ | <li> {{:Iksar Hide Cap}} (Chardok - [[Kennel Master Al`ele]]) | ||
+ | |||
+ | (out of ... [http://wiki.project1999.com/index.php?title=Special:MultiCategorySearch&limit=500&offset=0&wpInCategory1=Shaman+Equipment&wpInCategory2=Fashion%3A+Leather&wpInCategory3=Head]). | ||
+ | |||
+ | <div style="none"> | ||
+ | Run this code in the developer's console to convert that search link above into a comparison table: | ||
+ | |||
+ | <pre>(() => { | ||
+ | var $body = $('body'); | ||
+ | const $categoryAnchors = $('.mw-content-ltr ul li a'); | ||
+ | //let $anchors = $('.eoTable3+ul li .hbdiv>a'); // List below table | ||
+ | const $listAnchors = $('ul li .hbdiv>a'); | ||
+ | const $tableAnchors = $('td > .hbdiv a') | ||
+ | .filter(function(i, el) { | ||
+ | return !$(el).parents().is('.itemdata') | ||
+ | }); | ||
+ | |||
+ | let $anchors = $listAnchors.length | ||
+ | ? $listAnchors | ||
+ | : $tableAnchors.length | ||
+ | ? $tableAnchors : $categoryAnchors; | ||
+ | |||
+ | var urls = $anchors.map((i, a) => $(a).attr('href')).toArray(); | ||
+ | |||
+ | // FIXME: This isn't changing the cursor ... why? | ||
+ | $body.css('cursor', 'progress'); | ||
+ | |||
+ | // FIXME: This approach will kill the wiki; we need to fetch | ||
+ | // sequentially, one at a time (with a 2s? pause between fetches?), | ||
+ | // using a reduce instead of a map! | ||
+ | |||
+ | var fetches = urls.map(url => { | ||
+ | return fetch(url) | ||
+ | .then(function(response) { | ||
+ | return response.text(); | ||
+ | }).then(function(html) { | ||
+ | var name = html | ||
+ | .split('class="itemtitle">')[1] | ||
+ | .split('</div>')[0]; | ||
+ | var block = html | ||
+ | .split(/class="itemicon"\>.*?\<\/div\><\/div>\n\<p\>/)[1] | ||
+ | .split('</p>')[0]; | ||
+ | var parsedBlock = block | ||
+ | .replace(/<br ? \/?>|\n/g, ' ') | ||
+ | .split(/(\w+ ?\w+?\: \+?\d+)/) | ||
+ | .filter(function(x) { | ||
+ | return x.trim() && x.indexOf(':') != -1 | ||
+ | }); | ||
+ | |||
+ | return parsedBlock | ||
+ | .slice(1, parsedBlock.length -1) | ||
+ | .reduce(function(memo, text) { | ||
+ | var bits = text.split(':'); | ||
+ | var statName = bits[0].trim().toLowerCase(); | ||
+ | const statValue = parseFloat(bits[1].replace('+', '').trim()); | ||
+ | if (isNaN(statValue)) return memo; | ||
+ | |||
+ | memo[statName] = statValue; | ||
+ | return memo; | ||
+ | }, { name: name }); | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | var itemColumns = ['name', 'ac', 'str', 'sta', 'agi', 'dex', 'cha', | ||
+ | 'int', 'wis', 'hp', 'mana', 'mr', 'fr', 'cr', 'pr', 'dr', 'wt']; | ||
+ | var buildHeaderRow = function() { | ||
+ | return '<tr><th>' + itemColumns.map(function(column) { | ||
+ | return column.toUpperCase(); | ||
+ | }).join('</th><th>') + '</th></tr>'; | ||
+ | }; | ||
+ | var buildItemRow = function(item) { | ||
+ | var row = '<tr>'; | ||
+ | itemColumns.forEach(function(column) { | ||
+ | var value = item[column] || item[column] === 0 ? item[column] : '-'; | ||
+ | if (column === 'name') | ||
+ | value = '<a href="/' + value + '">' + value + '</a>'; | ||
+ | row += '<td>' + value + '</td>'; | ||
+ | }); | ||
+ | return row + '</tr>' | ||
+ | }; | ||
+ | |||
+ | Promise.all(fetches).then(function(items) { | ||
+ | var $table = $('<table class="eoTable3">'); | ||
+ | $table.append(buildHeaderRow()); | ||
+ | $table.append(items.map(function(item) { | ||
+ | return buildItemRow(item); | ||
+ | })); | ||
+ | $('hr:first').before($table); | ||
+ | |||
+ | // Go get sort library, as search results don't load it | ||
+ | $.getScript('http://wiki.project1999.com/load.php?debug=false&lang=en&modules=jquery.tablesorter&skin=monobook') | ||
+ | .then(function() { | ||
+ | // Not sure why timeout is needed *after* then, but *shrug* | ||
+ | window.setTimeout(function() { | ||
+ | // Add sorting to the new table | ||
+ | $table.tablesorter(); | ||
+ | }); | ||
+ | }); | ||
+ | }); | ||
+ | $body.css('cursor', 'default'); | ||
+ | })();</pre> | ||
+ | </div> | ||
</ul> | </ul> | ||
Revision as of 17:30, 29 November 2019
Contents |
[edit] Extra
[edit] Keys
- Cobalt Scar Dragon Circle: Tooth of the Cobalt Scar
- Skyshrine Exit: Shrine Key
- Sebilis: Trakanon Idol
- Howling Stones: Key to Charasis
- Veeshan's Peak: Key of Veeshan
[edit] Tradeskills
- Alchemy: 63
- Baking: 142
- Blacksmithing: 110
- Brewing: 168
- Fletching: 168
- Jewelry Making: 162
- Pottery: 148
- Tailoring: 161
[edit] Shopping List
[edit] Ear
- Sanctum Guardian's Earring(The Spirit of Garzicor)Sanctum Guardian's Earring
MAGIC ITEM LORE ITEM NO DROP
Slot: EAR
AC: 5
STR: +10 STA: +10 CHA: +10 HP: +50 MANA: +80
SV DISEASE: +15 SV POISON: +15
WT: 0.2 Size: TINY
Class: CLR DRU MNK SHM
Race: ALL
[edit] Head
Looking for BiS "bear head" look (ie. Leather). Lucy lists the Custom helms, eg.
- Custom Crown of the Kromzek Kings(Kael Drakkel - King Tormax)Custom Crown of the Kromzek Kings
MAGIC ITEM LORE ITEM NO DROP
Slot: HEAD
AC: 35
STR: +10 WIS: +10 INT: +10 HP: +100
SV FIRE: +10 SV DISEASE: +10 SV COLD: +10 SV MAGIC: +25 SV POISON: +10
Effect: Truesight (Worn)
WT: 1.0 Size: TINY
Class: ALL
Race: ALL
- Custom Frostreaver's Velium Crown(Icewell Keep - Dain Frostreaver IV)Custom Frostreaver's Velium Crown
MAGIC ITEM LORE ITEM NO DROP
Slot: HEAD
AC: 30
SV FIRE: +5 SV DISEASE: +5 SV COLD: +5 SV MAGIC: +20 SV POISON: +5
Effect: Truesight (Worn)
WT: 1.0 Size: SMALL
Class: ALL
Race: ALL
- Custom Cowl of Mortality(Dragon Necropolis - Zlandicar)Custom Cowl of Mortality
MAGIC ITEM LORE ITEM
Slot: HEAD
AC: 16
STA: +9 AGI: +12 HP: +50
SV DISEASE: +15
Haste: +36%
WT: 0.1 Size: MEDIUM
Class: ALL
Race: ALL
as Leather ... but I think that's a mistake, and those helms don't have the bear head look. If I confirm that, that makes the following the best options:
- Spirit Talker's Headdress(Dragon Necropolis - a Paebala Spirit Talker)Spirit Talker's Headdress
MAGIC ITEM LORE ITEM NO DROP
Slot: HEAD
AC: 16
WIS: +12 HP: +20 MANA: +75
SV MAGIC: +10 SV POISON: +10
WT: 2.0 Size: SMALL
Class: SHM
Race: BAR TRL OGR IKS
- Iksar Hide Cap(Chardok - Kennel Master Al`ele)Iksar Hide Cap
MAGIC ITEM
Slot: HEAD
AC: 10
WIS: +7 INT: +7 HP: +25
WT: 1.0 Size: SMALL
Class: ALL
Race: ALL
(out of ... [1]).
Run this code in the developer's console to convert that search link above into a comparison table:
(() => { var $body = $('body'); const $categoryAnchors = $('.mw-content-ltr ul li a'); //let $anchors = $('.eoTable3+ul li .hbdiv>a'); // List below table const $listAnchors = $('ul li .hbdiv>a'); const $tableAnchors = $('td > .hbdiv a') .filter(function(i, el) { return !$(el).parents().is('.itemdata') }); let $anchors = $listAnchors.length ? $listAnchors : $tableAnchors.length ? $tableAnchors : $categoryAnchors; var urls = $anchors.map((i, a) => $(a).attr('href')).toArray(); // FIXME: This isn't changing the cursor ... why? $body.css('cursor', 'progress'); // FIXME: This approach will kill the wiki; we need to fetch // sequentially, one at a time (with a 2s? pause between fetches?), // using a reduce instead of a map! var fetches = urls.map(url => { return fetch(url) .then(function(response) { return response.text(); }).then(function(html) { var name = html .split('class="itemtitle">')[1] .split('</div>')[0]; var block = html .split(/class="itemicon"\>.*?\<\/div\><\/div>\n\<p\>/)[1] .split('</p>')[0]; var parsedBlock = block .replace(/<br ? \/?>|\n/g, ' ') .split(/(\w+ ?\w+?\: \+?\d+)/) .filter(function(x) { return x.trim() && x.indexOf(':') != -1 }); return parsedBlock .slice(1, parsedBlock.length -1) .reduce(function(memo, text) { var bits = text.split(':'); var statName = bits[0].trim().toLowerCase(); const statValue = parseFloat(bits[1].replace('+', '').trim()); if (isNaN(statValue)) return memo; memo[statName] = statValue; return memo; }, { name: name }); }); }); var itemColumns = ['name', 'ac', 'str', 'sta', 'agi', 'dex', 'cha', 'int', 'wis', 'hp', 'mana', 'mr', 'fr', 'cr', 'pr', 'dr', 'wt']; var buildHeaderRow = function() { return '<tr><th>' + itemColumns.map(function(column) { return column.toUpperCase(); }).join('</th><th>') + '</th></tr>'; }; var buildItemRow = function(item) { var row = '<tr>'; itemColumns.forEach(function(column) { var value = item[column] || item[column] === 0 ? item[column] : '-'; if (column === 'name') value = '<a href="/' + value + '">' + value + '</a>'; row += '<td>' + value + '</td>'; }); return row + '</tr>' }; Promise.all(fetches).then(function(items) { var $table = $('<table class="eoTable3">'); $table.append(buildHeaderRow()); $table.append(items.map(function(item) { return buildItemRow(item); })); $('hr:first').before($table); // Go get sort library, as search results don't load it $.getScript('http://wiki.project1999.com/load.php?debug=false&lang=en&modules=jquery.tablesorter&skin=monobook') .then(function() { // Not sure why timeout is needed *after* then, but *shrug* window.setTimeout(function() { // Add sorting to the new table $table.tablesorter(); }); }); }); $body.css('cursor', 'default'); })();
[edit] Finger
- Ring of Dain Frostreaver IV(Coldain Ring Quests)Ring of Dain Frostreaver IV
MAGIC ITEM LORE ITEM NO DROP
Slot: FINGER
AC: 10
STR: +10 STA: +10 HP: +100
SV MAGIC: +10
Effect: Frostreaver's Blessing (Must Equip, Casting Time: Instant)
WT: 0.1 Size: SMALL
Class: ALL
Race: ALL
- Regal Band of Bathezid(Regal Band of Bathezid Quest)Regal Band of Bathezid
MAGIC ITEM LORE ITEM NO DROP
Slot: FINGER
Charges: 5
AC: 5
STA: +5 CHA: +2 WIS: +2 INT: +2
HP: +85 MANA: +50
Effect: Aegis of Bathezid (Must Equip, Casting Time: Instant) at Level 49
WT: 0.1 Size: TINY
Class: ALL
Race: ALL
[edit] Feet
- Shamanistic Shenannigan Boots(The Gift Box)Shamanistic Shenannigan Boots
MAGIC ITEM LORE ITEM NO DROP
Slot: FEET
Charges: 10
AC: 45
STR: +5 STA: +10 AGI: +10 HP: +50 MANA: +10
SV DISEASE: +5 SV COLD: +5
Effect: Scale of Wolf (Must Equip, Casting Time: Instant) at Level 45
WT: 3.0 Size: SMALL
Class: SHM
Race: BAR TRL OGR IKS
[edit] Wrist
- Spirit Wracked Cord(Spirit Wracked Cord Quest)Spirit Wracked Cord
MAGIC ITEM LORE ITEM NO DROP
Slot: SHOULDERS ARMS WRIST
AC: 12
STA: +5 HP: +100
SV COLD: +10 SV MAGIC: +5
Effect: Aura of Battle (Worn)
WT: 0.5 Size: SMALL
Class: ALL
Race: ALL