SA:MP JS Удобный и легкий пробив игрока по серверам Arizona Role Play

normalped

Участник
Автор темы
48
17
Версия SA-MP
  1. Любая
  2. Другая
Скрипт позволяющий не напрягаясь узнать на каких серверах Arizona Role Play играет определенный игрок. Ничего масштабного и серьезного, просто автоматизация работы для тех, кому надоело это делать вручную.

Использование:
1. Зайдите в свой личный кабинет на сайте.
2. Откройте консоль браузера.
3. Вставьте код скрипта в поле для ввода.
4. Настройте параметры.

JavaScript:
const target = 'Normal_Ped'; // Имя игрока
const start = 0; // Номер сервера с котором будет начинаться поиск
const end = 34; // Номер сервера на котором будет заканчиваться поиск
5. Нажмите Enter и ожидайте, когда скрипт завершит выполнение, вы увидите результаты.

JavaScript:
const target = 'Normal_Ped'; // Имя игрока
const start = 0; // Номер сервера с котором будет начинаться поиск
const end = 34; // Номер сервера на котором будет заканчиваться поиск

const get = (cl) => document.querySelectorAll(`[class*="${cl}__"]`);
const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
const elements = () => {
    const input = document.getElementById('Название новости');
    const select = get('form_form_select')[0];
    const button = get('findPlayer_button')[0];
    return { input, select, button }
}

const nav = get('aside_nav_item');
const { input, select, button } = elements();

const main = async () => {
    let result = {
        yes: [],
        no: []
    }

    for (let i = start - 1; i < end; i++) {
        nav[0].click()
        await delay(500);
        nav[nav.length - 1].click()
        await delay(500);

        const { input, select, button } = elements();

        select.click();
        await delay(100);
        const servers = get('form_option');

        const valueSetter = Object.getOwnPropertyDescriptor(input, 'value').set;
        const prototype = Object.getPrototypeOf(input);
        const prototypeValueSetter = Object.getOwnPropertyDescriptor(prototype, 'value').set;

        if (valueSetter && valueSetter !== prototypeValueSetter) {
            prototypeValueSetter.call(input, target);
        } else {
            valueSetter.call(input, target);
        }

        input.dispatchEvent(new Event('input', { bubbles: true }));

        if (servers[i]) {
            await delay(100);
            const name = servers[i].innerText;
            servers[i].click();
            await delay(100)
            button.click();
            await delay(100);

            while (get('findPlayer_loader').length !== 0) {
                await delay(100);
            }

            const res = get('userPopup_header_title').length !== 0;
            if (res) {
                result.yes.push(name);
            } else {
                result.no.push(name);
            }
        }
    }

    return result;
}

const style = 'background: #141414; padding: 10px;';
const result = await main();
console.log(`%c${result.yes.join(', ')}`, `color: #81ff61; ${style}`);
console.log(`%c${result.no.join(', ')}`, `color: #fc5c51; ${style}`);
 
  • Нравится
Реакции: fertilod и Fanrite