Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Zbieranko
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description Wymagany cBot!
- // @author Czogi
- // @match http://*.margonem.pl/
- // @grant none
- // ==/UserScript==
- window.g.loadQueue.push({
- fun: async function () {
- if (!window.czogisBot || window.map.id !== 5147) {
- while (window.map.id === 5145) {
- await sleep(1000);
- window.czogisBot.talkToNpc(203510);
- }
- return;
- }
- let closestNpcOnMap;
- if (!localStorage["honeyTimeouts"])
- localStorage.setItem("honeyTimeouts", "{}");
- const npcs = Object.values(czogisBot.npc).filter((npc) => {
- return npc.nick === "Gniazdo leśnych pszczół";
- });
- function sleep(ms) {
- return new Promise((resolve) => setTimeout(resolve, ms));
- }
- const delWithDelay = async (a) => {
- if (a.d && a.d[0] === 4 && a.h?.x) {
- console.log("Teleport się stanął");
- await sleep(300);
- closestNpcOnMap = undefined;
- }
- };
- const oldParseInput = window.parseInput;
- window.parseInput = function (a, b, c) {
- oldParseInput(a, b, c);
- const recent = JSON.parse(localStorage["honeyTimeouts"]);
- delWithDelay(a);
- if (closestNpcOnMap && a.d && a.d[2] == closestNpcOnMap.id) {
- recent[closestNpcOnMap.id] = window.unix_time() + 300;
- closestNpcOnMap = undefined;
- localStorage.setItem("honeyTimeouts", JSON.stringify(recent));
- }
- const currUnix = window.unix_time();
- for (const [key, value] of Object.entries(recent)) {
- if (currUnix >= value) {
- delete recent[key];
- }
- }
- localStorage.setItem("honeyTimeouts", JSON.stringify(recent));
- if (!closestNpcOnMap) {
- closestNpcOnMap = getClosest(npcs);
- }
- if (!window.czogisBot.talking) {
- czogisBot.talkToNpc(closestNpcOnMap.id);
- } else {
- window.czogisBot.clickText(
- "Powoli wkładam rękę w poszukiwaniu plastrów wosku."
- );
- }
- };
- function getClosest(npcs) {
- const recent = JSON.parse(localStorage["honeyTimeouts"]);
- if (closestNpcOnMap && !recent[closestNpcOnMap.id]) {
- return closestNpcOnMap;
- }
- let localNpcs = [];
- for (const npc of npcs) {
- if (recent[npc.id]) {
- continue;
- }
- localNpcs.push(npc);
- }
- if (!localNpcs.length) {
- return undefined;
- }
- if (localNpcs.length > 15) {
- localNpcs = window.czogisBot.sortNpcs(localNpcs);
- }
- let closestNpc = [];
- for (const npc of localNpcs) {
- const dist = window.czogisBot.closest(npc);
- if (dist == false || dist == -1) {
- continue;
- }
- if (!closestNpc.length || dist < closestNpc[1]) {
- closestNpc = [npc, dist];
- }
- }
- return closestNpc[0];
- }
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement