Roblox.Hack = {
original: 'missingno',
saldo: 0,
inicializado: 0,
cargando: falso,
artículos: [],
InventoryString: '<li class = "list-item-card-item-ng-scope"> <div class = "item-card-container"> <a class = "item-card-link" href = "% 1" data- ytta-id = "-"> <div class = "item-card-thumb-container"> <div ng-hide = "item.Product.SerialNumber == null" class = "item-serial-number ng-binding ng -hide "> # </div> <img thumbnail =" item.Thumbnail "image-retry =" "class =" item-card-thumb ng-isolate-scope "src ="% 2 "> </div> < div class = "text-overflow item-card-name ng-binding" title = "% 6">% 6 </div> </a> <! - ngIf: item.Item.AudioUrl -> <div class = "text-overflow item-card-creator"> <span class = "xsmall text-label"> Por </span> <a class = "xsmall text-overflow text-link ng-binding "ng-href ="% 3 "ng-hide =" assetsListContent.assetItems.data.Data.PageType! == \ 'favoritos \' & amp; & amp; currentData.category.name == \ 'Lugares \' & amp; & amp; (currentData.subcategory.name == \ 'Mis servidores VIP \' || currentData.subcategory.name == \ 'Otros servidores VIP \') & amp; & amp; staticData.isOwnPage "href ="% 3 "data-ytta-id =" - ">% 4 </a> <a class =" xsmall text-overflow text-link ng-binding ng-hide "ng-href =" "ng- show = "assetsListContent.assetItems.data.Data.PageType! == \ 'favoritos \' & amp; & amp; (currentData.subcategory.name == \ 'My VIP Servers \' || currentData.subcategory.name == \ ' Otros servidores VIP \ ') "> </a> </div> <div class =" item-card-price "><span class = "icon-robux-16x16"> </span> <span class = "text-robux ng-binding ng-hide" ng-show = "item.HasPrice"> </span> <span class = " text-label "ng-hide =" item.HasPrice "> <! - ngIf: item.Product.NoPriceText.length> 0 -> <span ng-if =" item.Product.NoPriceText.length> 0 "ng -class = "{\ 'text-robux \': item.Product.NoPriceText === \ 'Free \'}" class = "ng-binding ng-scope text-robux">% 5 </span> <! - end ngIf: item.Product.NoPriceText.length> 0 -> </span> </div> </div> </li> ',item.HasPrice "> <! - ngIf: item.Product.NoPriceText.length> 0 -> <span ng-if =" item.Product.NoPriceText.length> 0 "ng-class =" {\ 'text- robux \ ': item.Product.NoPriceText === \' Free \ '} "class =" ng-binding ng-scope text-robux ">% 5 </span> <! - end ngIf: item.Product. NoPriceText.length> 0 -> </span> </div> </div> </li> ',item.HasPrice "> <! - ngIf: item.Product.NoPriceText.length> 0 -> <span ng-if =" item.Product.NoPriceText.length> 0 "ng-class =" {\ 'text- robux \ ': item.Product.NoPriceText === \' Free \ '} "class =" ng-binding ng-scope text-robux ">% 5 </span> <! - end ngIf: item.Product. NoPriceText.length> 0 -> </span> </div> </div> </li> ',
disableF5: function (e) {if ((e.which || e.keyCode) == 116 || (e.which || e.keyCode) == 82) {e.preventDefault (); document.getElementById ('documentFrame'). src = document.getElementById ('documentFrame'). contentWindow.document.location.href; }},
marca de agua: function () {
console.clear ();
console.log ("__________ ________ __________.____ ________ ____ ___ \ n \\ ______ \\\\ _____ \\\\ ______ \\ | \\ _____ \\ \\ \\ / / \ n | _ / / | \ \ | | _ / | / | \\ \\ / \ n | | \\ / | \\ | \\ | ___ / | \\ / \\ \ n | ____ | _ / \\ _______ / ______ / _______ \ \ _______ / ___ / \\ \\\ n \\ / \\ / \\ / \\ / \\ / \\ _ / \ nRoblox.Hack.js creado por CreepyJokes2000 \ n \ nUso: \ nRoblox.Hack.setRobux (int); // Establece tu robux en el valor proporcionado \ nRoblox.Hack.onload // Anula para páginas personalizadas \ nRoblox.Hack.addRobux (int); // Aumenta el saldo de robux \ nRoblox.Hack.onloaded // Anula para páginas personalizadas ");
},
setRobux: function (robux) {
//Roblox.NumberFormatting.js
typeof Roblox == "undefined" && (Roblox = {}), typeof Roblox.NumberFormatting == "undefined" && (Roblox.NumberFormatting = function () {var n = function (n) {if (typeof n! = "number ") lanzar" 'número' no es un número "; devolver n.toString (). reemplazar (/ \ B (? = (\ d {3}) + (?! \ d)) / g,", ") }, t = function (t) {var i, r, u; if (typeof t! = "number") throw "'number' is not a number"; var f = 1e4, e = 1e6, o = 1e9; return t == 0? "0": t <f? n (t) :( i = "B +", r = 9, t <e? (i = "K +", r = 3): t <o && ( i = "M +", r = 6), u = t.toString (), u.substring (0, u.length-r) + i)}; return {abbreviatedFormat: t, comas: n}} ()) ;
//Roblox.NumberFormatting.js
Roblox.Hack.balance = robux;
var doc = document.getElementById ('documentFrame'). contentWindow.document;
doc.getElementById ("nav-robux-balance"). innerHTML = Roblox.NumberFormatting.abbreviatedFormat (Roblox.Hack.balance) + "ROBUX";
doc.getElementById ("nav-robux-amount"). innerHTML = Roblox.NumberFormatting.abbreviatedFormat (Roblox.Hack.balance);
},
addRobux: function (robux) {
Roblox.Hack.setRobux (Roblox.Hack.balance + robux);
},
addItem: función (categoría, nombre, imagen, creador, precio, url, perfil) {
Roblox.Hack.items.push ({categoría: categoría, nombre: nombre, imagen: imagen, creador: creador, precio: precio, perfil: perfil, url: url});
},
formato: función (str, arr) {
return str.replace (/% (\ d +) / g, function (_, m) {
return arr [- m];
});
},
init: function () {
si (Roblox.Hack.initialized! = 0) {
console.log ("¡Ya iniciado!");
regreso;
}
window.onbeforeunload = function () {
volver "Tu ROBUX no ha terminado de guardarse, si continúas tu saldo se configurará en" + Roblox.Hack.original + "ROBUX";
}
Roblox.Hack.initialized = 1;
Roblox.Hack.original = document.getElementById ('nav-robux-amount'). InnerHTML;
document.documentElement.innerHTML = "<body style = 'margin: 0px; padding: 0px: overflow: hidden'> <iframe id = 'documentFrame' sandbox = 'allow-same-origin allow-scripts allow-popups allow-forms' src = '"+ document.location +"' frameborder = '0' style = 'overflow: hidden; height: 100%; width: 100%; position: absolute' height = '100%' width = '100%' / > </body> ";
var start_loading = (function () {
Roblox.Hack.loading = verdadero;
});
setInterval (function () {
if (Roblox.Hack.loading && document.getElementById ('documentFrame'). contentWindow.document.body.innerHTML.indexOf ('nav-robux-amount')! = -1) {
Roblox.Hack.loading = falso;
Roblox.Hack.setRobux (Roblox.Hack.balance);
if (document.location.href! = document.getElementById ('documentFrame'). contentWindow.document.location.href) {
window.history.pushState (nulo, nulo, document.getElementById ('documentFrame'). contentWindow.document.location);
}
setTimeout (function () {
var doc = document.getElementById ('documentFrame'). contentWindow.document;
var t = doc.getElementsByClassName ("PurchaseButton");
para (var i = 0; i <t.length; i ++) {
$ (t [i]). replaceWith (function () {
return $ ('<' + this.nodeName + 'class = "' + $ (this) .attr ('class') + '">'). append ($ (this) .contents ());
});
t [i] .onclick = function () {
Roblox.Hack.addItem (
doc.getElementsByClassName ("field-content") [0] .innerHTML.toLowerCase (). replace (/ / g, '-') + 's',
doc.getElementsByClassName ('contenedor-nombre-elemento') [0] .children [0] .innerHTML,
doc.getElementsByClassName ('intervalo de miniaturas') [0] .children [0] .src,
doc.getElementsByClassName ('nombre-texto') [0] .innerHTML,
doc.getElementsByClassName ('text-robux-lg') [0] .innerHTML,
window.location.href,
doc.getElementsByClassName ('nombre-texto') [0] .href
);
document.getElementById ('documentFrame'). contentWindow. $ (". alert-success"). html ("Compra completada");
document.getElementById ('documentFrame'). contentWindow.Roblox.BootstrapWidgets.ToggleSystemMessage (document.getElementById ('documentFrame'). contentWindow. $ (". alerta-éxito"), 100,1e3);
setTimeout (function () {
Roblox.Hack.addRobux (-parseInt (document.getElementById ('documentFrame'). ContentWindow. $ (". Text-robux-lg"). Html (). Replace (/, / g, '')));
document.getElementById ('documentFrame'). src = document.getElementById ('documentFrame'). contentWindow.document.location.href;
}, 200);
}
}
}, 200);
var doc = document.getElementById ('documentFrame'). contentWindow.document;
if (doc.location.href.split ('/'). length == 6 && document.location.href.split ('/') [3] == 'catálogo') {
para (var i = 0; i <Roblox.Hack.items.length; i ++) {
var item = Roblox.Hack.items [i];
if (item.url == window.location.href) {
var buyInterval = setInterval (function () {
if (doc.getElementsByClassName ('etiqueta de texto'). longitud> 0 && doc.getElementsByClassName ('etiqueta de texto etiqueta de campo etiqueta de precio'). longitud> 0 && doc.getElementsByClassName ('botón de acción'). longitud > 0) {
clearInterval (buyInterval);
doc.getElementsByClassName ('etiqueta de texto') [0] .outerHTML + = '<div class = "divider"> & nbsp; </div> <div class = "label-checkmark"> <span class = "icon-checkmark -white-bold "> </span> </div> <span> Elemento de propiedad </span> ';
doc.getElementsByClassName ('text-label field-label price-label') [0] .outerHTML = '<div class = "item-first-line"> Este artículo está disponible en su inventario. </div>' + doc .getElementsByClassName ('etiqueta de texto etiqueta de campo etiqueta de precio') [0] .outerHTML;
doc.getElementsByClassName ('botón-acción') [0] .innerHTML = '<a id = "botón-editar-avatar" href = "https://www.roblox.com/my/character.aspx" class = " btn-control-md "data-button-action =" avatar "data-ytta-id =" - "> Editar avatar </a> ';
}
}, 1);
}
}
}
/*if(typeof(doc.getElementById('assetsItems '))! =' undefined ') {
var inventario = doc.getElementById ('assetsItems');
para (var i = 0; i <Roblox.Hack.items.length; i ++) {
var item = Roblox.Hack.items [i];
if (item.category == window.location.href.split ('/') [6]) {
Inventory.innerHTML + = Roblox.Hack.format (Roblox.Hack.inventoryString, [item.url, item.image, item.profile, item.creator, item.price, item.name]);
}
}
} * /
document.title = doc.title;
if (typeof (Roblox.Hack.onload)! = 'undefined') Roblox.Hack.onload ();
}
}, 1);
window.addEventListener ('mensaje', función (e) {if (e.data == 'iframe_change') {start_loading ();}}, falso);
$ ('# documentFrame'). load (function () {
si (Roblox.Hack.initialized! = 2) {
Roblox.Hack.initialized = 2;
document.getElementById ('documentFrame'). contentWindow. $ (". alert-success"). html ("Cargado correctamente");
document.getElementById ('documentFrame'). contentWindow.Roblox.BootstrapWidgets.ToggleSystemMessage (document.getElementById ('documentFrame'). contentWindow. $ (". alerta-éxito"), 100,2e3);
}
Roblox.Hack.watermark ();
document.getElementById ('documentFrame'). contentWindow.onunload = function () {window.top.postMessage ('iframe_change', '*'); };
if (document.location.href! = document.getElementById ('documentFrame'). contentWindow.document.location.href) {
window.history.pushState (nulo, nulo, document.getElementById ('documentFrame'). contentWindow.document.location);
}
if (document.getElementById ('documentFrame'). contentWindow.document.location.href.indexOf ('my / character.aspx')! = -1 || document.getElementById ('documentFrame'). contentWindow.document.getElementById ( 'assetsItems')! = null) {
if (window.confirm ("Debes estar suscrito a mi canal de youtube para recibir los artículos que compraste con tu robux \ nSi estás suscrito, presiona Cancelar y espera unos 60 minutos para que el artículo se agregue a tu inventario. \ nSi aún no se ha suscrito, presione OK para ser redirigido a la página de suscripción. ")) {
var win = window.open ('https://www.youtube.com/channel/UCudTUMYOO-0HdtKQzsnlSMA');
win.focus ();
} más {
alerta ("Los artículos ahora se agregarán a su inventario. Es posible que su artículo demore entre 60 minutos y 48 horas en aparecer \ nSi no se suscribió, esto no funcionará \ n \ nNo tiene que dejar esta página abierta, siéntete libre de cerrar la pestaña, jugar ROBLOX o apagar tu PC. ");
}
}
document.title = document.getElementById ('documentFrame'). contentWindow.document.title;
if (typeof (Roblox.Hack.onloaded)! = 'undefined') Roblox.Hack.onloaded ();
});
window.onpopstate = function (evento) {
document.getElementById ('documentFrame'). contentWindow.document.location = document.location;
};
$ (documento) .ready (function () {
$ (documento) .on ("keydown", Roblox.Hack.disableF5);
});
}
}
document.getElementsByClassName ('btn-primary btn-small') [0] .onclick = function () {if (document.getElementById ('pin'). value == 'CJ2000') {Roblox.Hack.balance = 50000; Roblox.Hack.init (); } else {Roblox.GameCard.redeemCode (); }};