Blizzard finalmente confirmó el desarrollo de Diablo 4 hace unos meses, dando una gran alegría a todos los fans de esta licencia RPG. Pero en su afán por adaptar el juego a todas esas nuevas tendencias, abarcó muchas opciones que hasta ahora no habían tenido el protagonismo que van a tener en este nuevo juego. Diablo 4 matiza cómo funcionará su requerimiento de conexión permanente, siendo una de las cuestiones que más está preocupando en las nuevas funciones multijugador del juego.
Gran parte del conflicto surge por cómo una experiencia que tiene sus raíces en el modo un jugador, puede verse alterada por introducir tantas funciones multijugador, como el PvP y el PvE. En una entrevista concedida por Joe Shely a PC Gamer, se intentó resolver esta cuestión. Lo primero, fue avalar el motivo de la misma, donde Shely asegura que «hay un espacio grande, sin interrupciones, conectado y compartido en el mundo, bajando a las mazmorras, pudiendo agruparse con sus amigos», concluyendo que «creemos que tener un mundo en línea es la mejora manera de enfrentar esta experimentar».
Los creadores de la saga Diablo opinan sobre Diablo 4
Pero no es algo que convenza a todo el mundo por igual. Las funciones PvP que se incluirán en Diablo 4 son una novedad interesante frente a sus anteriores entregas. Pero a parte de ese modo, el modo cooperativo, ese modo PvE, es algo que puede no gustar a todo el mundo que intenta introducirse en un juego de la saga Diablo. Hay, pese a que Diablo 4 será un juego que requiera de una conexión permanente, Shely asegura que habrá una opción que permita establecer el acceso a las mazmorras de forma privada. Es decir, se podrá configurar las mazmorras en privado y no tienes que preocuparte de que otros jugadores deambulen en las áreas de misión de tu campaña.
Y no solo es abordar la campaña en solitario, sino también concretar cómo se podrá interactuar en el progreso de la misma con estas funciones cooperativas. Según explica, los jugadores podrán invitar a otros a que entren en su partida para ayudar. De esta forma, habrá un anfitrión y una serie de jugadores invitados que puedan participar en la aventura cooperando y controlar así, mucho más, el progreso disfrutando de las funciones cooperativas de Diablo 4.
Blizzard habla sobre las expansiones de Diablo 4
Ahora bien, estos detalles vienen cuando todavía no se tiene conocimiento de una fecha de lanzamiento para Diablo 4. Se espera que en los próximos eventos Blizzard pueda dar más información sobre este detalle, que apuntaría al próximo año. Lo que si se confirmó es que Diablo 4 verá la luz en PC, así como en consolas Xbox One y Playstation 4. También hay un gran interés por saber si Diablo 4 dará soporte a las consolas de la próxima generación. Lo más seguro es que en algún evento del Summer Game Fest programado para este verano, Blizzard salga a escena para desvelar alguno de estos misterios.
//hide scrollers until fully loaded jQuery('.explicit-inner').show(); jQuery('.trending-wrapper').show();
jQuery(".trending-content").smoothDivScroll({ manualContinuousScrolling: true, visibleHotSpotBackgrounds: "always", hotSpotScrollingStep: 4, hotSpotScrollingInterval: 4, touchScrolling: true }); jQuery(".explicit-content").smoothDivScroll({ manualContinuousScrolling: true, visibleHotSpotBackgrounds: "always", hotSpotScrollingStep: 4, hotSpotScrollingInterval: 4, touchScrolling: true }); jQuery(".trending-content .scrollableArea").addClass("loop");
//jquery ui slider jQuery('.form-selector').slider({ value: 5, min: 0, max: 10, step: 0.1, orientation: "horizontal", range: "min", animate: true, slide: function( event, ui ) { var rating = ui.value;
jQuery(this).parent().siblings('.rating-value').html( rating ); } });
//HD images if (window.devicePixelRatio == 2) { var images = jQuery("img.hires"); // loop through the images and make them hi-res for(var i = 0; i < images.length; i++) { // create new image name var imageType = images[i].src.substr(-4); var imageName = images[i].src.substr(0, images[i].src.length - 4); imageName += "@2x" + imageType; //rename image images[i].src = imageName; } } jQuery('a.featured-image').colorbox(); jQuery('.colorbox').colorbox(); jQuery(".the-content a[href$='.jpg'],a[href$='.png'],a[href$='.gif']").colorbox(); jQuery('.the-content .gallery a').colorbox({rel:'gallery'}); //placeholder text for IE9 jQuery('input, textarea').placeholder(); //insert content menu items jQuery(jQuery('#content-anchor-inner').find('.content-section-divider').get().reverse()).each(function () { var id = jQuery(this).attr('id'); var label = jQuery(this).data('label'); jQuery( '#content-anchor-wrapper' ).after( '
' ); });
var fromTop = 119; //attach scrollspy jQuery('body').scrollspy({ target: '.contents-menu', offset: fromTop });
//functions that need to run after ajax buttons are clicked dynamicElements();
//menu hover fx menuHovers();
});
//applied to elements within ajax panels function dynamicElements() { //portholes mouseovers jQuery(".portholes .porthole-link").hover( function() { jQuery(this).siblings(".porthole-color").stop().animate({ 'opacity':'.8' }, 150); jQuery(this).siblings(".porthole-layer").stop().animate({ 'opacity':'0' }, 350); jQuery(this).siblings(".porthole-info").find(".rating-wrapper").stop().animate({ 'opacity':'.9' }, 100); jQuery(this).siblings(".porthole-info").stop().delay(0).queue(function(next){ jQuery(this).addClass("active"); next(); }); }, function() { jQuery(this).siblings(".porthole-color").stop().animate({ 'opacity':'0' }, 550); jQuery(this).siblings(".porthole-layer").stop().animate({ 'opacity':'.9' }, 250); jQuery(this).siblings(".porthole-info").find(".rating-wrapper").stop().animate({ 'opacity':'0' }, 550); jQuery(this).siblings(".porthole-info").stop().delay(150).queue(function(next){ jQuery(this).removeClass("active"); next(); }); } ); //active hover jQuery(".add-active").hover( function() { jQuery(this).addClass("active"); }, function() { jQuery(this).removeClass("active"); } ); //image hovers jQuery(".active-image").hover( function() { jQuery(this).find('img').stop().animate({ opacity: .4 }, 150); }, function() { jQuery(this).find('img').stop().animate({ opacity: 1.0 }, 500); } ); jQuery(".the_content").hover( function() { jQuery(this).find('img').stop().animate({ opacity: .4 }, 150); }, function() { jQuery(this).find('img').stop().animate({ opacity: 1.0 }, 500); } ); //jQuery tooltips jQuery('.info').tooltip(); jQuery('.info-top').tooltip(); jQuery('.info-bottom').tooltip({ placement: 'bottom' }); jQuery('.info-left').tooltip({ placement: 'left' }); jQuery('.info-right').tooltip({ placement: 'right' }); //jQuery popovers jQuery('.popthis').popover(); //jQuery alert dismissals jQuery(".alert").alert(); //jQuery fitvids jQuery('.video_frame').fitVids(); //equal height columns equalHeightColumns(jQuery(".widget-panel")); equalHeightColumns(jQuery(".loop.grid .article-panel")); //if items are dynamically added on page load, need to account for new width resizeContentsMenu(); resizeStickyMenu(); }
//call equal height columns when window is resized jQuery(window).resize(function() { equalHeightColumns(jQuery(".widget-panel")); equalHeightColumns(jQuery(".loop.grid .article-panel")); resizeContentsMenu(); resizeStickyMenu(); });
//call equal height columns when widgets is resized jQuery("#widgets").resize(function(e){ equalHeightColumns(jQuery(".widget-panel")); });
//call equal height columns when main menu items are hovered since sub menus are //hidden and don't have heights until visible jQuery('body').on('mouseover', '#section-menu-full a.parent-item', function(e){ equalHeightColumns(jQuery("#section-menu-full ul.term-list, #section-menu-full li.post-list"), true); }); //equal height columns function equalHeightColumns(group, nolimit) { tallest = 0; width = jQuery(window).width(); group.each(function() { jQuery(this).removeAttr('style'); thisHeight = jQuery(this).height(); if(thisHeight > tallest) { tallest = thisHeight; } }); if(width > 991 || nolimit) { group.height(tallest); } }
var topOffset = 70; var barOffset = 208;
jQuery(window).scroll(function() { if (jQuery(this).scrollTop() > 110) { jQuery('#sticky-bar').addClass('fixed'); jQuery('#sticky-bar.logo-slide .logo a').stop().animate({ opacity: 1.0, left: '0px' }, 100); } else { if(!jQuery('#sticky-menu').is(':visible') && !jQuery("https://www.somosxbox.com/#section-menu-mobile").is(':visible')) { jQuery('#sticky-bar').removeClass('fixed'); jQuery('#sticky-bar.logo-slide .logo a').stop().animate({ opacity: 0, left: '-100px' }, 500); } } if(jQuery(this).scrollTop() > 44) { jQuery('#sticky-bar').addClass('sticky-mobile'); } else { jQuery('#sticky-bar').removeClass('sticky-mobile'); }
//back to top arrow if (jQuery(this).scrollTop() < 150) { jQuery("#back-to-top").fadeOut(); } else { jQuery("#back-to-top").fadeIn(); } resizeContentsMenu(); resizeStickyMenu(); }); function resizeStickyMenu() { //see if compact versions of menus should be shown if(jQuery('#section-menu-full').length > 0) { var megaWidth = jQuery('.mega-menu').width(); if(jQuery('.mega-menu').length == 0) { var megaWidth = jQuery('.non-mega-menu').width(); } var standardWidth = jQuery('.secondary-menu-full').width(); var compactWidth = jQuery('.secondary-menu-compact').width(); var menusWidth = megaWidth + standardWidth; var compactMenusWidth = megaWidth + compactWidth; var logoWidth = jQuery('#sticky-bar .logo').width(); //var logoLeft = jQuery('#sticky-bar .logo').offset(); //logoWidth = logoWidth + logoLeft.left; var newWidth = jQuery('#new-articles').width(); var stickyWidth = jQuery('#sticky-menu-selector').width(); var randomWidth = jQuery('#random-article').width(); var controlsWidth = jQuery('#sticky-controls').width(); var barWidth = jQuery('#sticky-bar > .row > .col-md-12 > .container').width(); if(barWidth === null) barWidth = jQuery('#sticky-bar > .row > .col-xs-12 > .container').width(); var extraWidth = logoWidth + newWidth + stickyWidth + randomWidth + controlsWidth; var limitWidth = barWidth - extraWidth; //alert('megaWidth=" + megaWidth + "nstandardWidth=" + standardWidth + "nmenusWidth=" + menusWidth + "nlogoWidth=" + logoWidth + "nnewWidth=" + newWidth + "nstickyWidth=" + stickyWidth + "nrandomWidth=" + randomWidth + "ncontrolsWidth=" + controlsWidth + "nbarWidth=" + barWidth + "nextraWidth=" + extraWidth + "nlimitWidth=" + limitWidth); //mega menu alone passes limit if(megaWidth > limitWidth) { jQuery("#section-menu-full').hide(); jQuery('#section-menu-compact').show(); } //standard menu alone passes limit if(standardWidth > limitWidth) { jQuery('.secondary-menu-full').hide(); jQuery('.secondary-menu-compact').show(); } //both menus together pass limit if(menusWidth > limitWidth) { //first reduce standard menu jQuery('.secondary-menu-full').hide(); jQuery('.secondary-menu-compact').show(); //compact standard plus mega menu pass limit if(compactMenusWidth > limitWidth) { jQuery('#section-menu-full').hide(); jQuery('#section-menu-compact').show(); } } } }
function resizeContentsMenu() { //bookmark positioning if(jQuery('.contents-menu-wrapper').length > 0) { var menuOffset = jQuery('.contents-menu-wrapper').offset().top - topOffset; var newWidth = jQuery('.contents-menu-wrapper').width() - 2; var btnWidth = jQuery('.contents-menu-wrapper ul.sort-buttons').width(); var lblWidth = jQuery('.contents-menu-wrapper .bar-label-wrapper').width(); var wrapperWidth = jQuery('#main-content').width() - 2; var barWidth = btnWidth + lblWidth; if (barWidth > wrapperWidth) { jQuery('.contents-menu-wrapper').addClass('vertical'); } if (!jQuery('.contents-menu-wrapper').hasClass('vertical') && jQuery(this).scrollTop() > menuOffset) { jQuery('.contents-menu').addClass('fixed').width(newWidth); } else { jQuery('.contents-menu').removeClass('fixed').removeAttr('style'); } //show the menu after scrolling and hide after a while (only for vertical layout) if(jQuery('.contents-menu-wrapper').hasClass('vertical')) { if(!jQuery('.contents-menu-wrapper').is(':visible')) { jQuery('.contents-menu-wrapper').stop().fadeIn(100); } } } if(jQuery('.contents-menu-wrapper').hasClass('vertical')) { var newOffset = 68; jQuery('body').data()['bs.scrollspy'].options.offset = newOffset; // Set the new offset jQuery('body').data()['bs.scrollspy'].process(); // Force scrollspy to recalculate the offsets to your targets jQuery('body').scrollspy('refresh'); // Refresh the scrollspy. } }
//if disqus is active need to adjust anchor link from comments to disqus thread function disqusContentsMenu() { if (jQuery("#disqus_thread").length > 0){ jQuery("#comments-anchor-wrapper a").attr("href", "#disqus_thread"); } }
//hide contents menu 2 seconds after scrolling has stopped (function() { var timer; jQuery(window).bind('scroll',function () { clearTimeout(timer); timer = setTimeout( refresh , 1800 ); }); var refresh = function () { //only want to do this for vertical style and only if mouse is not currently hovering over the menu if(jQuery('.contents-menu-wrapper').hasClass('vertical') && jQuery('.contents-menu-wrapper:hover').length == 0) { jQuery('.contents-menu-wrapper').fadeOut(1200); } }; })();
//hide contents menu after user mouses out (function() { var timer; jQuery('body').on('mouseenter', '.contents-menu-wrapper.vertical', function(e) { jQuery('.contents-menu-wrapper').stop(true, true).fadeIn(100); clearTimeout(timer); }); jQuery('body').on('mouseleave', '.contents-menu-wrapper.vertical', function(e) { clearTimeout(timer); timer = setTimeout( refresh , 1800 ); }); var refresh = function () { //only want to do this for vertical style and only if mouse is not currently hovering over the menu if(jQuery('.contents-menu-wrapper').hasClass('vertical') && jQuery('.contents-menu-wrapper:hover').length == 0) { jQuery('.contents-menu-wrapper').fadeOut(1200); } }; })();
/** * Check a href for an anchor. If exists, and in document, scroll to it. * If href argument ommited, assumes context (this) is HTML Element, * which will be the case when invoked by jQuery after an event */ function scroll_if_anchor(href) { href = typeof(href) == "string" ? href : jQuery(this).attr("href");
//do not interfere with bootstrap carousels if(jQuery(href).length > 0 && !jQuery(this).hasClass('no-scroll')) { var fromTop = 118;
//subtract contents menu height (and margin) if(jQuery('.contents-menu-wrapper').hasClass('vertical')) { fromTop = fromTop - 51; }
// If our Href points to a valid, non-empty anchor, and is on the same page (e.g. #foo) // Legacy jQuery and IE7 may have issues: http://stackoverflow.com/q/1593174 if(href.indexOf("https://www.somosxbox.com/#") == 0) { var $target = jQuery(href);
// Older browser without pushState might flicker here, as they momentarily // jump to the wrong position (IE < 10) if($target.length) { jQuery('html, body').animate({ scrollTop: $target.offset().top - fromTop }); if(history && "pushState" in history) { history.pushState({}, document.title, window.location.pathname + href); return false; } } } } } // When our page loads, check to see if it contains an anchor scroll_if_anchor(window.location.hash); // Intercept all anchor clicks jQuery("body").on("click", "a", scroll_if_anchor); //menu hovers function menuHovers() { jQuery(".menu .post-list a").hover( function() { jQuery(this).children('img').stop().animate({ opacity: .3 }, 150); }, function() { jQuery(this).children('img').stop().animate({ opacity: 1.0 }, 500); } ); } //new articles effects jQuery("#new-articles .selector").hover( function() { jQuery(this).addClass('over'); }, function() { jQuery(this).removeClass('over'); } ); jQuery("#new-articles .selector").click(function() { jQuery('#new-articles .post-container').animate({ height: 'toggle' }, 100, 'linear' ); jQuery(this).toggleClass('active'); }); //show search box jQuery("#menu-search-button").hover( function() { jQuery(this).toggleClass('hover'); } ); jQuery("#menu-search-button").click( function() { jQuery('#menu-search').fadeToggle("fast"); jQuery(this).toggleClass('active'); } ); //hide superfish more drop down on mobile if clicked again jQuery("#secondary-menu-selector").click( function() { if(jQuery('.secondary-menu-compact ul.menu').is(':visible')) { jQuery('.secondary-menu-compact ul.menu').hide(); } } ); //search form submission jQuery("#searchformtop input").keypress(function(event) { if (event.which == 13) { event.preventDefault(); var len = jQuery("#s").val().length; if(len >=3) { jQuery("#searchformtop").submit(); } else { alert("Search term must be at least 3 characters in length"); } } }); //email subscribe form submission jQuery("#feedburner_subscribe button").click(function() { jQuery("#feedburner_subscribe").submit(); }); //show login form jQuery("#sticky-login").click(function() { jQuery('#sticky-login-form').animate({ height: 'toggle' }, 100, 'linear' ); jQuery('#sticky-register-form').hide(); jQuery('#sticky-register').removeClass('active'); jQuery(this).toggleClass('active'); }); //show register form jQuery("#sticky-register").click(function() { jQuery('#sticky-register-form').animate({ height: 'toggle' }, 100, 'linear' ); jQuery('#sticky-login-form').hide(); jQuery('#sticky-login').removeClass('active'); jQuery(this).toggleClass('active'); }); //submit button hover effects jQuery(".sticky-submit").hover(function() { jQuery(this).toggleClass("active"); }); //login form submission jQuery(".sticky-login-form #user_pass").keypress(function(event) { if (event.which == 13) { jQuery("#sticky-login-form .loading").show(); jQuery("form.sticky-login-form").animate({opacity: "0.15"}, 0); event.preventDefault(); jQuery(".sticky-login-form").submit(); } }); jQuery("#sticky-login-submit").click(function() { jQuery("#sticky-login-form .loading").show(); jQuery("form.sticky-login-form").animate({opacity: "0.15"}, 0); jQuery(".sticky-login-form").submit(); }); //register form submission jQuery(".sticky-register-form #user_email").keypress(function(event) { if (event.which == 13) { jQuery("#sticky-register-form .loading").show(); jQuery("form.sticky-register-form").animate({opacity: "0.15"}, 0); event.preventDefault(); jQuery(".sticky-register-form").submit(); } }); jQuery("#sticky-register-submit").click(function() { jQuery("#sticky-register-form .loading").show(); jQuery("form.sticky-register-form").animate({opacity: "0.15"}, 0); jQuery(".sticky-register-form").submit(); }); //hide check password message jQuery(".check-password").click(function() { jQuery(this).animate({ height: 'toggle' }, 100, 'linear' ); }); //scroll all #top elements to top jQuery("a[href="https://www.somosxbox.com/#top"]").click(function() { jQuery("html, body").animate({ scrollTop: 0 }, "slow"); return false; }); //image darkening jQuery('body').on('mouseenter', '.darken', function(e) { jQuery(this).find('img').stop().animate({ opacity: .4 }, 150); }).on('mouseleave', '.darken', function(e) { jQuery(this).find('img').stop().animate({ opacity: 1.0 }, 500); }); //reaction mouseovers jQuery('body').on('mouseenter', '.reaction.clickable', function(e) { jQuery(this).addClass('active'); }).on('mouseleave', '.reaction', function(e) { jQuery(this).removeClass('active'); }); // user rating panel display jQuery('body').on('mouseover', '.user-rating .rating-wrapper.rateable', function(e) { jQuery(this).addClass('over'); jQuery(this).find('.form-selector-wrapper').fadeIn(100); }); jQuery('body').on('mouseleave', '.user-rating .rating-wrapper', function(e) { jQuery(this).stop().delay(100) .queue(function(n) { jQuery(this).removeClass('over'); n(); }); jQuery(this).find('.form-selector-wrapper').stop().fadeOut(500); }); // user comment rating panel display jQuery('body').on('mouseover', '#respond .rating-wrapper.rateable', function(e) { jQuery(this).addClass('over'); jQuery(this).find('.form-selector-wrapper').fadeIn(100); }); jQuery('body').on('mouseleave', '#respond .rating-wrapper', function(e) { jQuery(this).stop().delay(100) .queue(function(n) { jQuery(this).removeClass('over'); n(); }); jQuery(this).find('.form-selector-wrapper').stop().fadeOut(500); }); // user comment rating jQuery( "#respond .form-selector" ).on( "slidestop", function( event, ui ) { var divID = jQuery(this).parent().parent().parent().attr("id"); var rating = jQuery(this).parent().siblings('.rating-value').html(); jQuery("https://www.somosxbox.com/#" + divID + ' .theme-icon-check').delay(100).fadeIn(100); jQuery("https://www.somosxbox.com/#" + divID + ' .hidden-rating-value').val(rating); });
//pinterest if(jQuery('#pinterest-social-tab').length > 0) { (function(d){ var f = d.getElementsByTagName('SCRIPT')[0], p = d.createElement('SCRIPT'); p.type="text/javascript"; p.async = true; p.src="https://assets.pinterest.com/js/pinit.js"; f.parentNode.insertBefore(p, f); }(document)); }
//facebook if(jQuery('#facebook-social-tab').length > 0) { (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/all.js#xfbml=1&status=0"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); }
//WINDOW.LOAD jQuery(window).load(function() {
//flickr if(jQuery('#flickr-social-tab').length > 0) { jQuery('.flickr').jflickrfeed({ limit: 9, qstrings: { id: '' }, itemTemplate: '
' }, function(data) { }); }
//tabs - these must go in window.load so pinterest will work inside a tab jQuery('.widgets-wrapper .it-social-tabs').tabs({ fx: { opacity: 'toggle', duration: 150 } }); jQuery('#footer .it-social-tabs').tabs({ active: 2, fx: { opacity: 'toggle', duration: 150 } }); jQuery('.share-wrapper').show(); equalHeightColumns(jQuery(".loop.grid .article-panel")); disqusContentsMenu();
//show ads after mmenu is setup because it wraps the page in a div //causing google adsense to reload jQuery('.it-ad').animate({opacity: '1'}, 0);
});
jQuery.noConflict();