diff --git a/js/html.js b/js/html.js index 8c63617..def832c 100644 --- a/js/html.js +++ b/js/html.js @@ -2147,6 +2147,14 @@ function render_monster_info(name) html+=render_drop(drop,1,"#858B8E"); }); } + // Add display section for home server drops + var MRH = Object.keys(tracker).length && tracker && tracker.drops_home || RF.monsters_home_server; + if (MRH && MRH[name] && MRH[name].length) { + html += "
Home Server Drops:
"; + MRH[name].forEach(function (drop) { + html += render_drop(drop, 1, "#858B8E"); + }); + } object_sort(G.maps).forEach(function(io){ var map=io[1],mname=io[0]; if(map.ignore || !(RF.maps&&RF.maps[mname]||[]).length) return; diff --git a/node/server.js b/node/server.js index 96aba65..5d50e9e 100644 --- a/node/server.js +++ b/node/server.js @@ -2071,6 +2071,15 @@ function drop_something(player, monster, share) { } }); } + // Home-server monster-specific drops + if (player.p.home && player.p.home === region + server_name && D.drops.monsters_home_server[monster.type] && player.tskin != "konami") { + D.drops.monsters_home_server[monster.type].forEach(function (item) { + let itemShouldDrop = shouldItemDrop(item); + if (itemShouldDrop || mode.drop_all) { + drop_item_logic(drop, item, is_in_pvp(player, 1)); + } + }); + } if (player.tskin == "konami") { D.drops.konami.forEach(function (item) { if (Math.random() / share / player.luckm / monster.level < item[0] || mode.drop_all) { @@ -4664,6 +4673,7 @@ function init_io() { maps: D.drops.maps, tables: {}, max: player.max_stats, + monsters_home_server: D.drops.monsters_home_server || {}, //add this }; // ,computer:false function register_table(table) { if (table) { @@ -4678,12 +4688,17 @@ function init_io() { if (player.computer || 1) { // data.computer=true; data.drops = D.drops.monsters; + data.drops_home = D.drops.monsters_home_server || {}; //mirror monsters_home } else { data.drops = {}; + data.drops_home = {}; for (var name in data.monsters) { if (data.monsters[name] >= 100 && D.drops.monsters[name]) { data.drops[name] = D.drops.monsters[name]; } + if (data.monsters[name] >= 100 && D.drops.monsters_home_server[name]) { + data.drops_home[name] = D.drops.monsters_home_server[name]; + } } } if (D.drops.maps.global) { @@ -4697,6 +4712,9 @@ function init_io() { for (var name in data.drops) { register_table(data.drops[name]); } + for (var name in data.drops_home) { //include home tables + register_table(data.drops_home[name]); + } for (var name in data.maps) { register_table(data.maps[name]); }