0% ont trouvé ce document utile (0 vote)
30 vues11 pages

PDF 3 de

Le document est un script utilisateur pour automatiser le processus de collecte d'objets dans le jeu Hordes.io. Il inclut des fonctionnalités telles que l'anti-AFK, la gestion de l'inventaire et des options de configuration pour le loot. Le script utilise des requêtes fetch pour interagir avec le serveur du jeu et manipuler le DOM pour ajouter une interface utilisateur pour les réglages.

Transféré par

noelibryan945
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
30 vues11 pages

PDF 3 de

Le document est un script utilisateur pour automatiser le processus de collecte d'objets dans le jeu Hordes.io. Il inclut des fonctionnalités telles que l'anti-AFK, la gestion de l'inventaire et des options de configuration pour le loot. Le script utilise des requêtes fetch pour interagir avec le serveur du jeu et manipuler le DOM pour ajouter une interface utilisateur pour les réglages.

Transféré par

noelibryan945
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

// ==Us

// ==/UserScript==

// My Discord Tag : xFuRiOuS#9356


// Feel Free To Contact Me If Your Interested In More Stuff Like This !

[Link]();

fetch('[Link]
.then(d=>[Link]())
.then(async html => {
const element = [Link](/<script.*?client\.js.*?><\/script>/)[0]
const url = [Link](/src="(.*?)"/)[1]
html = [Link](element,`<script>let _t=origin;delete
origin;eval(_t)</script>`)

let origin = await (fetch(url).then(d=>[Link]()))

const name = 'ha';


const pickedMarker = 'inProcessPick';

const getRandom = (min, max) => [Link]([Link]() * (max - min + 1)) +


min;

const settingName = "hordes-auto-loot";


const getSetting = (key, defaultValue) => `${settingName}-${key}` in
localStorage ? parseInt([Link](`${settingName}-${key}`)) :
defaultValue;
const setSetting = (key, value) => [Link](`${settingName}-$
{key}`, value);

const vr = {
intersReady: {
antiAfk: getSetting("antiAfk", true),
looting: getSetting("looting", true),
uiextra: getSetting("uiextra", true),
},

antiAfk: () => ([Link]=![Link]),


looting: () => ([Link]=![Link]),
uiextra: () => ([Link]=![Link]),

classes: [
{
id: 0,
name: "Warrior",
droptype: ["sword", "shield"]
},
{
id: 1,
name: "Mage",
droptype: ["staff", "orb"]
},
{
id: 2,
name: "Archer",
droptype: ["bow", "quiver"]
},
{
id: 3,
name: "Shaman",
droptype: ["hammer", "totem"]
}
],

rules: {
fixedDelay: getSetting("fixedDelay", 0),
randomDelay: getSetting("randomDelay", 0),

gold: getSetting("gold", true),


rune: getSetting("rune", true),
misc: getSetting("misc", false),

book1: getSetting("book1", false),


book2: getSetting("book2", false),
book3: getSetting("book3", true),
book4: getSetting("book4", true),
book5: getSetting("book5", true),

loot1: getSetting("loot1", false),


loot2: getSetting("loot2", false),
loot3: getSetting("loot3", true),
loot4: getSetting("loot4", true),
quality: getSetting("quality", 70),

bow: getSetting("bow", true),


hammer: getSetting("hammer", true),
staff: getSetting("staff", true),
sword: getSetting("sword", true),

orb: getSetting("orb", true),


quiver: getSetting("quiver", true),
shield: getSetting("shield", true),
totem: getSetting("totem", true),

armlet: getSetting("armlet", true),


armor: getSetting("armor", true),
boot: getSetting("boot", true),
glove: getSetting("glove", true),

amulet: getSetting("amulet", true),


bag: getSetting("bag", true),
ring: getSetting("ring", true),
},

command (name, str) { [Link]([Link]({command:


name, string: str+''})) },
drop (slotID) {[Link]("itemdrop", slotID); },
pick (item) {if(item[pickedMarker])return; item[pickedMarker]=true;
[Link]([Link]({_header:1,target:[Link]}))},
invFull () {
if (!([Link] && [Link] && [Link])) return true;
return [...[Link]()].filter(i=>i<101).length ===
[Link];
},
concatItems () {
if (!([Link] && [Link] && [Link])) return;

const inventoryItems = [...[Link]].filter(a=>a[0]<101);


const stackable = (item, item2) =>
[Link]==[Link]&&[Link]==[Link]&&[Link]>0&&[Link]<50;

[Link](item => {
const withItem = [Link](item2 => item[0] > item2[0] &&
stackable(item[1], item2[1]) )
if (withItem) [Link]('itemmove', item[0]+' '+withItem[0])
});
},

inters: {
antiAfk: setInterval(() =>
[Link]&&[Link]&&[Link]([Link]()/1e3), 1e3/60),
uiextra: setInterval(() => {
if (![Link]) return;

if (getChoiceByTitle('Yes, show me the items for sale.'))


getChoiceByTitle('Yes, show me the items for sale.').click()
if (getChoiceByTitle('Yes, open my Stash.')) getChoiceByTitle('Yes,
open my Stash.').click()
if (getChoiceByTitle('Show me your wares.')) getChoiceByTitle('Show
me your wares.').click()
if (getChoiceByTitle('Yes, I have some items.'))
getChoiceByTitle('Yes, I have some items.').click()
}),
looting: (function lootingLoop() { setTimeout(() => {
if ([Link] && [Link] &&
[Link][3].length) {

const full = [Link]();

const inventoryItems =
[...[Link]].filter(a=>a[0]<101).map(a=>a[1]);
const stackable = item =>
[Link](i=>[Link]==[Link]&&[Link]==[Link]&&[Link]>0&&[Link]
ks<50)

const loot = [Link][3]


.map(i=>((i[pickedMarker]=false),i))
.filter(i => {
if ([Link] == 'gold') return [Link] &&
[Link];
if (stackable(i)) return true;
if (full) return false;

if ([Link] == 'book') {
return [Link].book1 && [Link]('Lv. 1') ||
[Link].book2 && [Link]('Lv. 2') ||
[Link].book3 && [Link]('Lv. 3') ||
[Link].book4 && [Link]('Lv. 4') ||
[Link].book5 && [Link]('Lv. 5')
} else if ([Link] == 'misc') {
return [Link];
} else if ([Link] == 'rune') {
return [Link];
} else {
return [Link][[Link]] &&
([Link].loot1 && [Link] == 'common' ||
[Link].loot2 && [Link] == 'uncommon' ||
[Link].loot3 && [Link] == 'rare' ||
[Link].loot4 && [Link] == 'epic') &&
[Link] <= [Link];
}
return false;
})
.filter(i => [Link]([Link]));

([Link] || [Link]) && [Link] ?


[Link]([Link]()) : [Link]([Link])
}

lootingLoop();
}, (window[name]?.[Link] || 0) +
(window[name]?.[Link] || 0)) })(),
}
};

window[name] = vr;

let world = [Link](/([_a-zA-Z0-9]*?)\.entity\(.\)/)[1]


let coder = [Link](/([_a-zA-Z0-9]*?)=\{clientPlayerInput:/)[1]
let ws = [Link](/([_a-zA-Z0-9]*?)=new WebSocket/)[1]
let send = [Link](/([_a-zA-Z0-9]*?)=[_a-zA-Z0-9]*?=>\{[_a-zA-Z0-9]*?
===void 0\|\|[_a-zA-Z0-9]*?!==1\|\|[_a-zA-Z0-9]*?\.send\(/)[1]

origin = [Link]('[Link]=e', '[Link](window.'+name+


',{world:'+world+
',me:e'+
',coder:'+coder+
',ws:'+ws+
',send:'+send+
'}),[Link]=e')

[Link] = origin
[Link]().write(html)
[Link]()

const getChoiceByTitle = title =>


[...[Link]('choice')].find(c=>[Link](title
))

// hotkeys
[Link]('keydown', e => [Link] == 'ShiftRight' &&
[Link]());
[Link]('keydown', e => [Link] == 'ControlRight' &&
[Link]());

let autoLootUI = false;


[Link]('keydown', e => [Link] && [Link] == 'KeyL' &&
toggleAutoLootSettings());
function toggleAutoLootSettings() {
if (!autoLootUI) {
[Link](".[Link] > .container:first-
child").insertAdjacentHTML('afterend',
`<style>
.grid-content {
display: grid;
grid-template-columns: 2fr 1fr;
grid-gap: 8px;
align-items: center;
}

.[Link]-loot-ui {
min-width: 350px;
max-width: 600px;
width: 90%;
height: 60%;
min-height: 350px;
max-height: 600px;
z-index: 9;
}

.[Link]-loot-window {
padding: 5px;
height: 100%;
display: grid;
grid-template-rows: 30px 1fr;
grid-gap: 4px;
transform-origin: inherit;
min-width: fit-content;
}

.[Link]-loot-titleframe {
line-height: 1em;
display: flex;
align-items: center;
position: relative;
letter-spacing: 0.5px;
}

.[Link]-loot-titleicon {
margin: 3px;
}

.[Link]-loot-title {
width: 100%;
padding-left: 4px;
font-weight: bold;
}

.[Link]-loot-slot {
min-height: 0;
}

.restore-default-settings {
width: 450px;
margin-right: 4px;
}
.close-ui {
width: 35px;
}
</style>
<div class="absCentered container auto-loot-ui">
<div class="window panel-black auto-loot-window">
<div class="titleframe auto-loot-titleframe">
<img src="/data/ui/icons/[Link]" class="titleicon
svgicon auto-loot-titleicon">
<div class="textprimary title auto-loot-title">
<div name="title">Auto Loot <small
class="textgrey">v1.8</small></div>
</div>
<div class="btn red restore-default-settings"><img
src="/data/ui/icons/[Link]" class="svgicon"> Restore Default Settings</div>
<div class="btn black close-ui"><img
src="/data/ui/icons/[Link]" class="svgicon"></div>
</div>
<div class="slot scrollbar auto-loot-slot">
<div class="panel-black">
<h3 class="textprimary"></h3>
<div class="grid-content scripts">
<div>Automatic Looting</div>
<div class="btn checkbox" name="looting"></div>
<div>Anti AFK</div>
<div class="btn checkbox" name="antiAfk"></div>
<div>Concatenate Inventory Items</div>
<div class="">ControlRight</div>
</div>
<h3 class="textprimary">Coins Meter</h3>
<div class="grid-content coins-meter">
<div>Session Time</div>
<div class="coins-meter-time"></div>
<div>Coins Earned</div>
<div class="coins-meter-earned">
<span class="textgold">00</span> <img
class="texticon" src="/data/ui/currency/[Link]">
<span class="textsilver">00</span> <img
class="texticon" src="/data/ui/currency/[Link]">
<span class="textcopper">00</span> <img
class="texticon" src="/data/ui/currency/[Link]">
</div>
<div>Coins / Minute</div>
<div class="coins-meter-earned-minute">
<span class="textgold">00</span> <img
class="texticon" src="/data/ui/currency/[Link]">
<span class="textsilver">00</span> <img
class="texticon" src="/data/ui/currency/[Link]">
<span class="textcopper">00</span> <img
class="texticon" src="/data/ui/currency/[Link]">
</div>
<div>Coins / Hour</div>
<div class="coins-meter-earned-hour">
<span class="textgold">00</span> <img
class="texticon" src="/data/ui/currency/[Link]">
<span class="textsilver">00</span> <img
class="texticon" src="/data/ui/currency/[Link]">
<span class="textcopper">00</span> <img
class="texticon" src="/data/ui/currency/[Link]">
</div>
<div></div>
<div class="btn grey coins-meter-
reset">Reset</div>
</div>
<h3 class="textprimary">Delay</h3>
<div class="grid-content delay">
<div>Fixed Delay<br><small class="textgrey
fixed-delay-indicator">ms</small></div>
<input type="range" class="fixed-delay"
name="delay" min="0" max="1000">
<div>With Randomness<br><small class="textgrey
random-delay-indicator">ms</small></div>
<input type="range" class="random-delay"
name="random-delay" min="0" max="1000">
</div>
<h3 class="textprimary">Main</h3>
<div class="grid-content main">
<div>Gold</div>
<div class="btn checkbox" name="gold"></div>
<div>Rune</div>
<div class="btn checkbox" name="rune"></div>
<div>Misc</div>
<div class="btn checkbox" name="misc"></div>
</div>
<h3 class="textprimary">Equipment</h3>
<div class="grid-content equipment">
<div>Default Presets<br><small class="textgrey
my-class-indicator"></small></div>
<select class="default-presets-select">
<option disabled selected>Select a
preset</option>
<option value="0">Warrior</option>
<option value="1">Mage</option>
<option value="2">Archer</option>
<option value="3">Shaman</option>
</select>
<div class="textprimary">Main 1</div>
<div></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Sword <img src="/data/ui/classes/[Link]" class="svgicon"></div>
<div class="btn checkbox" name="sword"></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Staff <img src="/data/ui/classes/[Link]" class="svgicon"></div>
<div class="btn checkbox" name="staff"></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Bow <img src="/data/ui/classes/[Link]" class="svgicon"></div>
<div class="btn checkbox" name="bow"></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Hammer <img src="/data/ui/classes/[Link]" class="svgicon"></div>
<div class="btn checkbox" name="hammer"></div>
<div class="textprimary">Main 2</div>
<div></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Shield <img src="/data/ui/classes/[Link]" class="svgicon"></div>
<div class="btn checkbox" name="shield"></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Orb <img src="/data/ui/classes/[Link]" class="svgicon"></div>
<div class="btn checkbox" name="orb"></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Quiver <img src="/data/ui/classes/[Link]" class="svgicon"></div>
<div class="btn checkbox" name="quiver"></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Totem <img src="/data/ui/classes/[Link]" class="svgicon"></div>
<div class="btn checkbox" name="totem"></div>
<div class="textprimary">Body</div>
<div></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Armlet</div>
<div class="btn checkbox" name="armlet"></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Armor</div>
<div class="btn checkbox" name="armor"></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Bag</div>
<div class="btn checkbox" name="bag"></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Boot</div>
<div class="btn checkbox" name="boot"></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Glove</div>
<div class="btn checkbox" name="glove"></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Ring</div>
<div class="btn checkbox" name="ring"></div>
<div><img src="/data/ui/slotbg/[Link]"
class="svgicon"> Amulet</div>
<div class="btn checkbox" name="amulet"></div>
<div class="textprimary">Rarity</div>
<div></div>
<div class="textgrey">Common (0% - 49%)</div>
<div class="btn checkbox" name="loot1"></div>
<div class="textgreen">Uncommon (50% -
69%)</div>
<div class="btn checkbox" name="loot2"></div>
<div class="textblue">Rare (70% - 89%)</div>
<div class="btn checkbox" name="loot3"></div>
<div class="textpurp">Epic (90% - 100%)</div>
<div class="btn checkbox" name="loot4"></div>
<div>Item Quality% Minimum<br><small
class="textgrey quality-range-indicator">%</small></div>
<input type="range" class="quality-range"
name="quality" min="0" max="100">
</div>
<h3 class="textprimary">Books</h3>
<div class="grid-content books">
<div>Lv. 1</div>
<div class="btn checkbox" name="book1"></div>
<div>Lv. 2</div>
<div class="btn checkbox" name="book2"></div>
<div>Lv. 3</div>
<div class="btn checkbox" name="book3"></div>
<div>Lv. 4</div>
<div class="btn checkbox" name="book4"></div>
<div>Lv. 5</div>
<div class="btn checkbox" name="book5"></div>
</div>
<h3 class="textprimary"></h3>
</div>
</div>
</div>
</div>`
);

[Link]('.close-ui').addEventListener('click', e =>
toggleAutoLootSettings());

[Link]('.restore-default-
settings').addEventListener('click', e => {
for (let key in localStorage) {
if ([Link](settingName)) [Link](key);
}

[Link]();
});

[Link]('.auto-loot-
ui .scripts .[Link]').forEach((el) => {
if ([Link][[Link]("name")])
[Link]("active")
[Link]('click', e => {
[Link]("active") ?
[Link]("active") : [Link]("active");
[Link][[Link]("name")] ^= 1;
setSetting([Link]("name"),
[Link][[Link]("name")]);
})
})

[Link]('.auto-loot-ui .main .[Link], .auto-


loot-ui .equipment .[Link], .auto-loot-ui .books .[Link]').forEach((el)
=> {
if ([Link][[Link]("name")]) [Link]("active")
[Link]('click', e => {
[Link]("active") ?
[Link]("active") : [Link]("active");
[Link][[Link]("name")] ^= 1;
setSetting([Link]("name"),
[Link][[Link]("name")]);
})
});

[Link]('.auto-loot-ui .delay .fixed-delay').value =


[Link];
[Link]('.auto-loot-ui .delay .fixed-delay-
indicator').innerHTML = [Link] + " ms";
[Link]('.auto-loot-ui .delay .fixed-
delay').addEventListener('input', e => {
[Link] = parseInt([Link]);
[Link]('.auto-loot-ui .delay .fixed-delay-
indicator').innerHTML = [Link] + " ms";
setSetting("fixedDelay", [Link]);
});

[Link]('.auto-loot-ui .delay .random-delay').value =


[Link];
[Link]('.auto-loot-ui .delay .random-delay-
indicator').innerHTML = "0 - " + [Link] + " ms";
[Link]('.auto-loot-ui .delay .random-
delay').addEventListener('input', e => {
[Link] = parseInt([Link]);
[Link]('.auto-loot-ui .delay .random-delay-
indicator').innerHTML = "0 - " + [Link] + " ms";
setSetting("randomDelay", [Link]);
});

[Link]('.coins-meter-reset').addEventListener('click',
e => resetCoinsMeter());

[Link]('.auto-loot-ui .equipment .quality-range').value


= [Link];
[Link]('.auto-loot-ui .equipment .quality-range-
indicator').innerHTML = [Link] + "%";
[Link]('.auto-loot-ui .equipment .quality-
range').addEventListener('input', e => {
[Link] = parseInt([Link]);
[Link]('.auto-loot-ui .equipment .quality-range-
indicator').innerHTML = [Link] + "%";
setSetting("quality", [Link]);
});

[Link]('.auto-loot-ui .equipment .my-class-


indicator').innerHTML = `Your current character is a <img src="/data/ui/classes/$
{[Link]}.webp" class="svgicon"> ${[Link][[Link]].name}`;
[Link]('.auto-loot-ui .equipment .default-presets-
select').addEventListener('change', e => {
["sword", "staff", "bow", "hammer", "shield", "orb", "quiver",
"totem"].forEach(i => {
[Link](`.auto-loot-
ui .equipment .[Link][name="${i}"]`).[Link]("active");
[Link][i] = false;
setSetting(i, 0);
});

[Link][[Link]].[Link](i => {
[Link](`.auto-loot-
ui .equipment .[Link][name="${i}"]`).[Link]("active");
[Link][i] = true;
setSetting(i, 1);
});
});
}
else {
[Link]('.auto-loot-ui').remove();
}

autoLootUI ^= 1;
}

// Gold Meter
const pad = value => value < 10 ? `0${value}` : value;

function msToString(ms) {
const hours = pad([Link](ms / (1000 * 60 * 60) % 60));
const minutes = pad([Link](ms / (1000 * 60) % 60));
const seconds = pad([Link](ms / 1000 % 60));
return `${hours}:${minutes}:${seconds}`;
}

function formatStringCoins(coins, name) {


[Link](`.${name} .textgold`).innerHTML = [Link](coins /
10000);
[Link](`.${name} .textsilver`).innerHTML =
pad([Link]((coins % 10000) / 100));
[Link](`.${name} .textcopper`).innerHTML =
pad([Link]((coins % 10000) % 100));
}

let startTime = new Date().getTime();

let currentCoins = 0;
let coinsEarned = 0;

function resetCoinsMeter() {
startTime = new Date().getTime();
currentCoins = [Link];
coinsEarned = 0;
}

setInterval(() => {
if (![Link]) return;

coinsEarned += [Link]([Link] - currentCoins, 0);


currentCoins = [Link];
})

setInterval(() => {
if (!autoLootUI) return;

let midTime = new Date().getTime() - startTime;

[Link]('.coins-meter-time').innerHTML =
msToString(midTime);
formatStringCoins(coinsEarned, "coins-meter-earned");
formatStringCoins(coinsEarned * 60 / (midTime / 1000), "coins-meter-earned-
minute");
formatStringCoins(coinsEarned * 60 * 60 / (midTime / 1000), "coins-meter-
earned-hour");
})
});

Vous aimerez peut-être aussi