Перейти к содержимому
Zone of Games Forum

Рекомендованные сообщения

Завтра стим упадет)

Я себе на эту  выделил “жёсткий лимит”..а то беклог до пенсии уже.

Изменено пользователем edifiei
  • Хаха (+1) 2

Поделиться сообщением


Ссылка на сообщение
7 часов назад, edifiei сказал:

Завтра стим упадет)

Последние пару лет Стим не так жестко падает. Иливентили нарастили мощности, или игроки постыли к большим распродажам, или и то и то одновременно.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
50 минут назад, Сильвер_79 сказал:

Последние пару лет Стим не так жестко падает. Иливентили нарастили мощности, или игроки постыли к большим распродажам, или и то и то одновременно.

Надо упасть..традиция же. Хоть мин на 5.

  • Хаха (+1) 3

Поделиться сообщением


Ссылка на сообщение
9 часов назад, edifiei сказал:

Я себе на эту  выделил “жёсткий лимит”..а то беклог до пенсии уже.

Я как-то с этим делом делаю успехи, в последнее время неплохо так подзакрыл беклог. Из тех новинок, что выходят крайне редко во что-то играю, потому что стало :bad: от этого. А так старенькие проекты по тихому закрываю.

В 26.06.2024 в 07:50, edifiei сказал:

Да мне и доступных игр хватает)

Купленных и ни разу не устанавливавшихся? :) Тут статистику недавно выкатывали на эту тему. Если коротко, то портал анализировал 10% открытых профилей Steam и пришёл к выводу, что у этих 10% есть игр ни разу не запускавшихся на сумму в 1.9 миллиарда долларов. Затем они просто умножили это число на 10.

p.s. прошёл тут очень атмосферный квест. Shapik: The Quest. Это уже вторая часть на самом деле, но сюжетно они не связаны. Прекрасная музыка, не напряженный игровой процесс, красивый арт. Вечером после работы расслабится самое то.

header.jpg?t=1719214970

Удивляюсь, что такие проекты до сих пор выходят. Хоть памятник ставь :)

  • Лайк (+1) 1
  • Хаха (+1) 1
  • -1 1

Поделиться сообщением


Ссылка на сообщение
10 часов назад, edifiei сказал:

Я себе на эту  выделил “жёсткий лимит”..а то беклог до пенсии уже.

С ужасом осознал, что куплено всё, остались только грядущие новинки и бэклог в 20 игр… правда, есть ещё вишлист супруги..

  • Хаха (+1) 1
  • +1 1

Поделиться сообщением


Ссылка на сообщение
4 часа назад, lordik555 сказал:

атмосферный квест. Shapik: The Quest. Это уже вторая часть на самом деле, но сюжетно они не связаны. Прекрасная музыка, не напряженный игровой процесс, красивый арт. Вечером после работы расслабится самое то.

header.jpg?t=1719214970

Удивляюсь, что такие проекты до сих пор выходят. Хоть памятник ставь :)

И русский язык типа отсутствует, зато других 100500 типа есть. И все они только в титрах. О це потужная перемога. :)

  • Лайк (+1) 1
  • Хаха (+1) 1

Поделиться сообщением


Ссылка на сообщение

@Mertisadon т.е. непосредственно в игре текста нет?

Поделиться сообщением


Ссылка на сообщение
12 минут назад, Freeman665 сказал:

@Mertisadon т.е. непосредственно в игре текста нет?

Нету, там “говорят картинками” или “образами”.

Поделиться сообщением


Ссылка на сообщение

@Alex Po Quest ясно. Т.е. можно и 500 языков заявить, ничего не поменяло бы, зато показало ИХ борьбу. Это так по-украински)

  • Хаха (+1) 1
  • +1 1

Поделиться сообщением


Ссылка на сообщение

Как Стим перестал принимать к оплате наши карты перестал покупать игры. Да и цены сейчас совсем не гуманные стали.

  • +1 2

Поделиться сообщением


Ссылка на сообщение
58 минут назад, Freeman665 сказал:

@Alex Po Quest ясно. Т.е. можно и 500 языков заявить, ничего не поменяло бы, зато показало ИХ борьбу. Это так по-украински)

Ну, да. Видел игры, где, точно, заявлено 130 языков, интерфейс, субтитры и даже озвучение. Но в самой игре, даже, текста нет.

Изменено пользователем Alex Po Quest
  • Хаха (+1) 1

Поделиться сообщением


Ссылка на сообщение
7 часов назад, lordik555 сказал:

Купленных и ни разу не устанавливавшихся? 

И этих то-же,ноя про те что продаются в РФ:D

Поделиться сообщением


Ссылка на сообщение
10 часов назад, Сильвер_79 сказал:

Последние пару лет Стим не так жестко падает. Иливентили нарастили мощности, или игроки постыли к большим распродажам, или и то и то одновременно.

Просто распродажи стали делать “на отвали”. Интерактив пропал совсем. Даже для рисования артов распродажи и то привлекают каких-то самых дешёвых художников. А скидки на разные игры и без того случаются периодически, главное в желаемое добавить. Соответственно и интерес упал.

7 часов назад, lordik555 сказал:

Тут статистику недавно выкатывали на эту тему. Если коротко, то портал анализировал 10% открытых профилей Steam и пришёл к выводу, что у этих 10% есть игр ни разу не запускавшихся на сумму в 1.9 миллиарда долларов. Затем они просто умножили это число на 10.

Там вычисления очень сказочные. А по уму надо было делать так:

  1. Скачиваем информацию по достижениям всех игр и узнаём, какой процент выполнения у самого популярного (из него вычисляем, сколько людей не получило даже самое элементарное достижение, т.е. скорее всего не запустило игру)
  2. Берём данные по имеющимся копиям всех игр у Галёнкина.
  3. Затем берём обзоры и узнаем примерное процентное распределение по регионам.
  4. САМОЕ ГЛАВНОЕ — в соответствии с распределением по регионам получаем среднюю цену с учётом распродаж в этих регионах.

То есть надо считать по стоимости во всех регионах. Ибо в половине регионов цена может может быть в 2 и 3 раза ниже.
Ну и главный нюанс — многие закупают игры, когда те имеют 50%+ скидку.

В данном же же случае "баснословные цифры" получены за счёт умножения на оригинальную цены, кек.

А что до того, какое бабло делает Valve, с этим можно заглянуть на торговую площадку.
В 2016-м году я проанализировал только 1 предмет:

Скрытый текст

Скин с торговой площадки steam: "Штык-нож M9 | Волны".

За период с 9 января 2015 по 30 августа 2016 (год и семь месяцев) было продано 20702 штуки.

Люди потратили на один скин в общей сложности 451 535 647 рублей. На один миллион больше годового бюджета на строительство и ремонт дорог в Пскове.

Более того, около 4660 людей в данный момент желают его купить по минимальной цене в 12561 рубль, что выльется в траты 58 534 819 рублей. Это равняется сумме, перечисленной Амурским филиалом Всемирного фонда дикой природы на сохранение природы в Приморье.

Steam забирает 13% с каждой сделки. Год и семь месяцев продаж одного лишь скина (Из тысяч) принесли сервису 58 699 634 рублей.

oC3NOr8.png

А теперь можете представить, какие цифры выйдут, если собрать информацию со всей торговой площадки.

Поделиться сообщением


Ссылка на сообщение
В 25.06.2024 в 22:06, DeeMan сказал:

Хорошие цены, мб кому то будет интересно.

https://gamesforfarm.com/goods/info/2424560-bravery-and-greed

Написал скрипт для этого сайта под Tamper Monkey.

Скрытый текст

// ==UserScript==
// @name         GamesForFarm - Парсер
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Получает все игры в GamesForFarm и ищет имеющиеся и желаемые
// @author       0wn3df1x
// @match        https://gamesforfarm.com*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Добавляем стили
    const style = document.createElement('style');
    style.textContent = `
        .load-button {
            background-color: #171a21;
            color: #acb2b8;
            border: 1px solid #171a21;
            padding: 10px 20px;
            font-size: 16px;
            cursor: pointer;
            transition: background-color 0.3s, color 0.3s;
            margin-left: 10px;
            margin-top: 10px;
        }
        .load-button:hover {
            background-color: #66c0f4;
            color: #171a21;
        }
        .json-input {
            background-color: #171a21;
            color: #acb2b8;
            border: 1px solid #171a21;
            padding: 10px;
            font-size: 14px;
            width: 300px;
            height: 100px;
            margin-left: 10px;
            margin-top: 10px;
            resize: none;
        }
        .data-link {
            margin-left: 10px;
            margin-top: 10px;
            color: #66c0f4;
            text-decoration: none;
        }
        .data-link:hover {
            text-decoration: underline;
        }
    `;
    document.head.appendChild(style);

    // Добавляем кнопку "Загрузить таблицу" и текстовое поле под <div class="main__title">Каталог</div>
    const mainTitle = document.querySelector('.main__title');
    if (mainTitle) {
        const loadButton = document.createElement('button');
        loadButton.textContent = 'Загрузить таблицу';
        loadButton.className = 'load-button';

        const jsonInput = document.createElement('textarea');
        jsonInput.className = 'json-input';
        jsonInput.placeholder = 'Вставьте JSON сюда';

        const dataLink = document.createElement('a');
        dataLink.href = 'https://store.steampowered.com/dynamicstore/userdata/';
        dataLink.target = '_blank'; // Открывает ссылку в новой вкладке
        dataLink.textContent = 'Получить данные своей UserData в Steam';
        dataLink.className = 'data-link';

        mainTitle.parentNode.insertBefore(loadButton, mainTitle.nextSibling);
        mainTitle.parentNode.insertBefore(jsonInput, loadButton.nextSibling);
        mainTitle.parentNode.insertBefore(dataLink, jsonInput.nextSibling);

        // Обработчик нажатия на кнопку "Загрузить таблицу"
        loadButton.addEventListener('click', function() {
            let jsonData = {};
            try {
                if (jsonInput.value.trim() !== '') {
                    jsonData = JSON.parse(jsonInput.value);
                }
            } catch (e) {
                alert('Неверный формат JSON');
                return;
            }

            const rgWishlist = new Set(jsonData.rgWishlist || []);
            const rgOwnedApps = new Set(jsonData.rgOwnedApps || []);

            // Находим кнопку и нажимаем на неё
            const button = document.querySelector('.btn-reset.product__more-button.fn_product_more.ddd3');
            if (button) {
                button.click();
            }

            // Ждём 5 секунд (увеличим время ожидания)
            setTimeout(() => {
                // Создаем массив для хранения данных всех игр
                const gamesData = [];

                // Находим все элементы с классом product__item внутри элемента с id gamesCatalog
                const productItems = document.querySelectorAll('#gamesCatalog .product__item');

                productItems.forEach(item => {
                    // Извлекаем Steam ID
                    const steamLink = item.querySelector('a[href*="store.steampowered.com/app/"]');
                    let steamId = '-';
                    if (steamLink) {
                        const href = steamLink.getAttribute('href');
                        const match = href.match(/\/app\/(\d+)\//);
                        if (match && match[1]) {
                            steamId = match[1];
                        }
                    }

                    // Пропускаем элемент, если нет Steam ID
                    if (steamId === '-') {
                        return;
                    }

                    // Извлекаем цену
                    const priceElement = item.querySelector('.product__box-price');
                    let price = '-';
                    if (priceElement) {
                        price = priceElement.textContent.trim();
                        price = formatPrice(price);
                    }

                    // Извлекаем адрес картинки
                    const imageElement = item.querySelector('.product__box-image img');
                    let imageUrl = '-';
                    if (imageElement) {
                        imageUrl = imageElement.getAttribute('data-src');
                    }

                    // Извлекаем название игры
                    const titleElement = item.querySelector('.product__box-title a');
                    let gameTitle = '-';
                    if (titleElement) {
                        gameTitle = titleElement.textContent.trim();
                    }

                    // Извлекаем размер скидки
                    const discountElement = item.querySelector('.product__box-prop.prop—discount');
                    let discount = '-';
                    if (discountElement) {
                        discount = discountElement.textContent.trim();
                    }

                    // Проверяем наличие Steam ID в списках
                    const inWishlist = rgWishlist.has(parseInt(steamId)) ? '[VVV]' : '';
                    const inOwnedApps = rgOwnedApps.has(parseInt(steamId)) ? '[VVV]' : '';

                    // Добавляем данные в массив
                    gamesData.push({
                        steamId,
                        price,
                        imageUrl,
                        gameTitle,
                        discount,
                        inWishlist,
                        inOwnedApps
                    });
                });

                // Сортируем массив сначала по наличию в rgWishlist, затем по цене
                gamesData.sort((a, b) => {
                    if (a.inWishlist && !b.inWishlist) return -1;
                    if (!a.inWishlist && b.inWishlist) return 1;
                    return parseFloat(b.price.replace(',', '.')) - parseFloat(a.price.replace(',', '.'));
                });

                // Создаем новое окно для вывода результатов
                const newWindow = window.open("", "_blank", "width=600,height=400");
                newWindow.document.write('<html><head><title>Результаты</title></head><body><table border="1" id="gamesTable"><tr><th>Steam ID</th><th>Название игры</th><th>Цена</th><th>Размер скидки</th>' + (jsonData.rgWishlist ? '<th>rgWishlist</th>' : '') + (jsonData.rgOwnedApps ? '<th>rgOwnedApps</th>' : '') + '<th>Адрес картинки</th></tr>');

                gamesData.forEach(game => {
                    newWindow.document.write(`<tr><td>${game.steamId}</td><td>${game.gameTitle}</td><td>${game.price}</td><td>${game.discount}</td>${jsonData.rgWishlist ? `<td>${game.inWishlist}</td>` : ''}${jsonData.rgOwnedApps ? `<td>${game.inOwnedApps}</td>` : ''}<td>${game.imageUrl}</td></tr>`);
                });

                newWindow.document.write('</table></body></html>');
                newWindow.document.close();

                // Добавляем функциональность сортировки таблицы по клику на заголовки
                const table = newWindow.document.getElementById('gamesTable');
                if (table) {
                    const headers = table.getElementsByTagName('th');
                    for (let i = 0; i < headers.length; i++) {
                        headers[i].addEventListener('click', () => {
                            sortTable(table, i);
                        });
                    }
                }
            }, 5000); // Ожидание 5 секунд
        });
    }

    // Функция для форматирования цены
    function formatPrice(price) {
        return price.replace('.', ',').replace('₽', '').trim();
    }

    // Функция для сортировки таблицы
    function sortTable(table, columnIndex) {
        const rows = Array.from(table.rows).slice(1);
        const isNumeric = columnIndex === 0 || columnIndex === 2; // Steam ID и Цена

        rows.sort((a, b) => {
            const aValue = a.cells[columnIndex].textContent;
            const bValue = b.cells[columnIndex].textContent;

            if (isNumeric) {
                return parseFloat(aValue.replace(',', '.')) - parseFloat(bValue.replace(',', '.'));
            } else {
                return aValue.localeCompare(bValue);
            }
        });

        // Определяем направление сортировки
        const header = table.rows[0].cells[columnIndex];
        const sortDirection = header.getAttribute('data-sort') || 'asc';
        if (sortDirection === 'asc') {
            rows.reverse();
            header.setAttribute('data-sort', 'desc');
        } else {
            header.setAttribute('data-sort', 'asc');
        }

        // Очищаем таблицу и добавляем отсортированные строки
        while (table.rows.length > 1) {
            table.deleteRow(1);
        }

        rows.forEach(row => table.appendChild(row));
    }
})();

 

  1. Если вы хотите узнать, какие игры, продающиеся на сайте, есть у вас в списке желаемого и на аккаунте, то читайте пункты 0-4, если вы хотите просто получить таблицу имеющихся на сайте игры, то можете перейти к пункту 5.
    Итак. Что касается списка имеющихся игр и списка желаемого — они содержатся в юзердате. Если вы не пользуетесь Steam в браузере и не вошли в аккаунт со своего браузера — надо войти, т.к. Userdata пользователя доступна только ему самому. После установки скрипта вы увидите на странице магазина три новых элемента:
    sS8iaNW.png
  2. Щёлкнув по первому элементу — вы окажетесь на странице со своей Userdata
    Там хранится информация о вашем списке желаемого, имеющихся играх и тех играх, которые вы решили скрыть в магазине. Также там есть информация о рекомендуемых жанрах и кураторах. Но ничего конфиденциального — если есть желание, можете проверить.
    wP5cmnD.png
  3. Нужно скопировать данные своей Userdata и вставить в текстовое окно.
    fuv8fee.png
  4. После чего щёлкнуть “Загрузить таблицу”. Через 5 секунд откроется новое окно, в котором вы увидите:
    50NfDjF.png
    В самом верху списка идут игры, которые есть у вас в списке желаемого. Упорядочены по убыванию цены. Затем идут все остальные игры аналогично по убыванию цены. Можно щёлкать по заголовкам, чтобы сортировать данные.
  5. Вы можете скопировать данные и вставить их на Google-таблицу. После чего можете использовать формулу Image, чтобы отобразить картинки, будет выглядеть так:GNJ4KRK.png
  6. Если вы не вставите Json и просто нажмёте кнопку “Загрузить таблицу”, то таблица всё равно откроется в новом окне, просто в ней не будет информации об играх, которые есть у вас на аккаунте и в списке желаемого. Таблицу также можно будет упорядочить, щёлкая по заголовкам и аналогично можно будет скопировать в Google-таблицы для дальнейшей работы.
Изменено пользователем 0wn3df1x

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: SerGEAnt

      @0wn3df1x продолжает следить за Steam-играми, в которых появилась русская локализация.
      @0wn3df1x продолжает следить за Steam-играми, в которых появилась русская локализация.
      Список за последние четыре недели:
      Mosa Lina — забавный паззл-платформер с проработанной «физикой». Вышел 17 октября 2023 года, 1622 обзора, 95% положительные.
      Stolen Realm — достаточно популярная партийная изометрическая RPG с простой графикой. Вышла 8 марта 2024 года, 3266 обзоров, 85% положительные.
      Beastieball — пошаговый звериный волейбол. В раннем доступе с 12 ноября 2024 года, 1225 обзоров, 99% положительные.
      Rooftops & Alleys: The Parkour Game — зрелищный симулятор паркура. Покинул ранний доступ 16 июня, 5610 обзоров, 96% положительные.
      MegaFactory Titan — стратегия про развитие фабрики на спутнике Сатурна. В раннем доступе с 23 февраля 2022 года, 124 обзора, 79% положительные.
      The Last Starship — стратегия про управлением звездолетом. В раннем доступе с 15 февраля 2023 года, 598 обзоров, 80% положительные.
      Battle Talent — VR-экшен про битвы на мечах от первого лица.Вышла 1 июня 2023 года, 964 обзора, 76% положительные.
      Herald of Havoc — шутер, отдающий дань первым частям Quake. Вышел 25 июня 2023 года, 212 обзоров, 97% положительные.
      Croakoloco — idle-игра про сбор лягушек. Вышла 6 мая 2024 года, 439 обзоров, 93% положительные.
      Dusk City — хентайная метроидвания. Вышла 25 июля 2024 года, 195 обзоров, 94% положительные.
      Broken Sword: Shadow of the Templars: Reforged — очередное переиздание культового квеста. Вышло 19 сентября 2024 года, 799 обзоров, 97% положительные.
      Heretical — изометрический фэнтезийный рогалик. В раннем доступе с 30 октября 2024 года, 457 обзоров, 94% положительные.
      Gridroad — головоломка про обустройство дорожных развязок. Вышла 10 декабря 2024 года, 330 обзоров, 83% положительные.
      AI2U: With You 'Til The End — адвенчура, в которой вас запирают в квартире с красивыми ИИ-помощницами. Вышла 24 января 2025 года, 628 обзоров, 91% положительные.
      Rocket delivery: Space Wok — бесплатный run & gun. Вышел 24 марта, 134 обзора, 97% положительные.
      Trilogy of the Moon — корейский клон «Рандеву с Незнакомкой». Вышел 10 апреля 2025 года, 148 обзоров, 89% положительные.
      Ninja Ming — хардкорный платформер. Вышел 11 апреля, 103 обзора, 97% положительные.
      Outworld Station — симулятор развития космических станций.В раннем доступе с 22 апреля, 303 обзора, 88% положительные.
    • Автор: 0wn3df1x

      Этот проект — результат кропотливой работы, направленной на то, чтобы сделать взаимодействие с платформой Steam ещё более удобным и информативным, особенно для русскоязычных игроков.
      Приветствуем!
      Сегодня вышел Ultimate Steam Enhancer 2.0 — масштабное обновление комплексного скрипта от @0wn3df1x.
      Этот проект — результат кропотливой работы, направленной на то, чтобы сделать взаимодействие с платформой Steam ещё более удобным и информативным, особенно для русскоязычных игроков. В новой версии скрипт стал полностью модульным, обзавелся удобным меню настроек и получил множество как совершенно новых функций, так и кардинальных улучшений для уже существующих.

      Чтобы вам было проще сориентироваться, мы подготовили два отдельных блока с информацией:
      Для тех, кто уже знаком с ранними версиями скрипта, мы собрали подробный список всех ключевых изменений:
      Для тех, кто видит Ultimate Steam Enhancer впервые, мы подготовили полное описание всех его возможностей:
      Как установить:
      Установите Tampermonkey — расширение для подключения пользовательских скриптов. Если у вас необычный браузер, то на этой странице есть множество альтернативных вариантов. Если вы ставите расширение впервые, то после установки введите в адресной строке:  chrome://extensions и в правом верхнем углу включите «режим разработчика». Зайдите на страницу Ultimate Steam Enhancer и нажмите кнопку «Установить скрипт».

  • Сейчас популярно

  • Продвигаемые темы

  • Последние сообщения

    • Да, как я и предполагал, за исключением дополнения в виде наблюдателя времени друзей.

      Экосистема менеджеров (Tampermonkey, Greasemonkey, Violentmonkey и др.), а также сред выполнения скриптов, встроенных в другие расширения (как в AdGuard), довольно разнообразна. Да, все они служат одной цели, но их внутренние реализации могут существенно отличаться. В основе их работы лежит концепция песочницы - изолированной среды, которая создается из соображений безопасности, чтобы пользовательский скрипт не мог бесконтрольно хозяйничать на странице, например, похищая личные данные. Но строгость этой песочницы и набор инструментов, которые предоставляются скрипту для общения с внешним миром, сильно варьируются. Хотя все они стремятся следовать общему стандарту Greasemonkey API, их реализации отличаются. Tampermonkey, на сегодняшний день, является наиболее функционально полным и стабильным менеджером, который реализует даже самые специфические, но ставшие стандартом де-факто в сообществе, возможности API, такие как unsafeWindow и гибкое управление кросс-доменными запросами. Другие менеджеры зачастую являются форками (ответвлениями) более старых версий или независимыми разработками, которые догоняют “золотой стандарт” по функциональности с разной скоростью. Иногда это приводит к тому, что в них отсутствуют определённые функции.

      Например, некоторое время назад была проблема с работой другого моего скрипта в OrangeMonkey (который использовал наш главадмин SerGEAnt). Она была связана с тем, как расширение обрабатывало разрешения на кросс-доменные запросы и взаимодействие с веб-редактором CKEDITOR, который используется на многих форумах на движке Invasion Board. Скрипту требовался доступ к API редактора, но OrangeMonkey не предоставлял необходимого моста для выхода из “песочницы”, что приводило к ошибке. В то же время в Tampermonkey этой проблемы уже не было, так как его разработчики реализовали более продвинутые механизмы взаимодействия с контекстом страницы. Это классический пример рассинхронизации в разработке, где одно расширение уже адаптировалось под новые веб-технологии, а другое - ещё нет. AdGuard, конечно, довольно мощнейший инструмент для блокировки контента и защита приватности, но выполнение пользовательских скриптов является его вторичной, хоть и очень полезной, функцией. Поэтому вполне объяснимо, что его песочница может быть более строгой, а среда выполнения не предоставляет некоторые узкоспециализированные, но критически важные для сложных скриптов API, такие как unsafeWindow. Это не столько недостаток, сколько фундаментальное различие в философии разработки: приоритет отдается максимальной безопасности, иногда в ущерб расширенной функциональности пользовательских скриптов. Теперь давайте пройдёмся по результатам. Это как раз то, о чём я писал в предыдущем сообщении. Во время разработки скрипт все еще мог получить список игр из window, но где-то с полторы недели назад Valve немного изменила свой фронтенд. Они всё активнее использует современные фреймворки, которые строят страницу динамически, а данные хранят внутри своей инкапсулированной экосистемы (состояние компонентов). Раньше переменные могли просто объявляться в глобальной области видимости, теперь же они "живут" внутри фреймворка, и доступ к ним снаружи затруднен. В какой-то момент массив с ID игр из списка желаемого (g_rgWishlistData), который раньше был легко доступен, стал инициализироваться таким образом, что его можно прочитать только через прямой доступ к JavaScript-контексту самой страницы. Именно для понадобится unsafeWindow. Он как ключ, который позволяет скрипту, работающему в изолированной песочнице, дотянуться до переменных на основной странице. Костыль (var unsafeWindow = window;) - это хороший фикс для предотвращения падения скрипта от ReferenceError, но он лишь создаёт псевдоним для window песочницы, в которой g_rgWishlistData по-прежнему не существует. AdGuard не предоставляет этот ключ, поэтому скрипт не может найти ID и сообщает об ошибке. Здесь причина схожа, но связана не столько с доступом к переменным, сколько с изоляцией сессии аутентификации. Ваше тестирование подтверждает, что среда AdGuard, скорее всего, выполняет скрипты в настолько изолированном контексте, что они не имеют полного доступа к вашей браузерной сессии на сайтах Steam. Для работы этих модулей необходима авторизация. Её отсутствие или изоляция приводят к неработоспособности: Наблюдатель: Его основная задача — отслеживать изменения в вашем списке желаемого и библиотеке. Для этого скрипт обращается к эндпоинту Steam /dynamicstore/userdata/:
      https://store.steampowered.com/dynamicstore/userdata/
      Когда вы авторизованы, сервер Steam отдает специальный JSON-файл, содержащий ID ваших игр из rgWishlist, rgOwnedApps и т.д. (в этом JSON также содержатся ваши настройки персонализации магазина, но нет и не может быть логина, хэша пароля, платёжной информации или токенов аутентификации). Скрипт использует эти ID, чтобы затем сделать отдельные, публичные запросы к API Steam и получить информацию по каждой конкретной игре. Когда скрипт через GM_xmlhttpRequest делает запрос к /userdata/, этот запрос должен содержать ваши аутентификационные данные. Если среда выполнения (AdGuard) не передает их, для сервера Steam этот запрос выглядит как анонимный, и он возвращает пустой ответ. Таким образом, у модуля просто нет исходных данных для работы - он не знает, за какими играми ему нужно следить, и его панель остается пустой. Время друзей: Механизм абсолютно такой же. Чтобы показать, сколько времени ваши друзья провели в игре, скрипт должен сначала узнать, кто ваши друзья. Эта информация находится на персонализированной странице сообщества Steam (friendsthatplay), например:
      https://steamcommunity.com/my/friendsthatplay/1245620
      она генерируется сервером динамически, специально для вашего аккаунта. Для анонимного пользователя или для скрипта, работающего в изолированной сессии без доступа к актуальным данным, такой страницы не существует - Steam просто не вернет нужные данные. Соответственно, без доступа к этой странице скрипт не может извлечь имена друзей и их наигранные часы и делает логичный вывод - “друзья не играли”. Фильтр “Только ваши DLC”: Этот фильтр в каталоге поиска полностью зависит от вашей личной библиотеки. Его механизм прост: при отображении каждого товара скрипт проверяет, является ли он дополнением (DLC). Если да, он определяет ID основной игры (parent_appid) и ищет его в вашем списке rgOwnedApps, полученном из того же /userdata/. Если вы не авторизованы или сессия недоступна, список rgOwnedApps пуст, и фильтр просто не сможет найти ни одного подходящего DLC. Помощники подарков (Gift Helpers): И на странице игры, и в списке желаемого, для корректной работы им необходима точка отсчета - цена и валюта в вашем регионе. Эту информацию Steam предоставляет пользователю через переменные g_strCountryCode и g_rgWalletInfo. Без них скрипт не может запросить локальную цену и выполнить правильную конвертацию для сравнения с ценой друга. Тем не менее, как вы и заметили, помощник на странице игры у вас сработал. Это связано с наличием в этом модуле специального костыля: если скрипт не может определить данные текущего пользователя, он по умолчанию использует данные для российского региона в качестве базовых. Это позволяет функции работать, но сравнение цен может быть неточным, если вы на самом деле находитесь в другом регионе. Для помощника в списке желаемого этот костыль уже не помогает, так как тот модуль при попытке получить ID игр со страницы. Вот как-то так.
    • *радостно думает — ведь Сам попросил… , достает набор томов Русского Языка и основ правописания*  — p.s. Знаки препинания, обоснованные правилами, не всегда могут передать ход мысли. Поэтому наличие лишних (,) иногда (,) в “общательно-форумных” целях (,) можно считать некоторым Самовыражением. Но вот отсутствие...)
    • Обновил русификатор - теперь русские шрифты основаны на оригинальных, и выглядят намного лучше.
    • Всем ку! Скиньте перевод пожалуйста!
    • Ты енто, тогось, не путай просторечие устаревшее “деревенское” словарное специально говорное с ихними тамошными твоейными ошибками по незнанию, чай культурный человек, городской же ж должен быть, а то ты чавой-то ентого опять ты напутал. Знаешь же ж, что мы тут все из дерЁвни, агась, при том ещё ж и не столичной дерЁвни, а чукчи, не иначе, агась. P.S. весь мозг сломал, пока печатал, понадобилось две чайки кофе и грибы.
    • https://github.com/darthalex2014/Look-Outside-Rus/releases/download/1.0.5p/Look.Outside.Rus.v1.0.5p_FIX.7z
      Fix:
      - Починил перевод плагинов (теперь нет вопросов вместо слов)
      - В новых строках посеял ":" в 1 строке, из-за этого перевод съехал - исправил.
      - Сделал варп строк еще больше.
    • Если есть возможность, то почему бы и нет.
    • Если за что берёшься, то доводишь до идеала? )  Красавчик.
    • @0wn3df1x Протестировал, что работает/не работает Немного обманул в прошлом сообщении, что прямо все работало в прошлой версии. По сути то, что не работает сейчас, не работало и в прошлой, только добавились краши.
    • Новая версия — 2.1 [20250620] Исправил пару орфографических ошибок в тексте. Исправил и улучшил пунктуацию. Улучшил текст в некоторых местах. Автоматический установщик https://disk.yandex.ru/d/J4EwEZ5ByxWDAQ https://drive.google.com/file/d/1fZdoeMvyBcMiQ4_iYgu4d3ja_JtkiU9V/view https://files.vc/d/dl?hash=d826e5f6afbe2e6456798834c5979f82 Архив для установки вручную https://disk.yandex.ru/d/OmadX8Tt7EnMZA https://drive.google.com/file/d/1rRnrQlqRlV2D8ls2QPruRPfODQC-_Yok/view https://files.vc/d/dl?hash=c4818eca2de056b8616be1c27b73010c
  • Изменения статусов

    • Дмитрий Соснов  »  Tirniel

      Привет! ты разбираешься в компьютерном железе, сможешь помочь с советом по апгрейду старого компа?
      · 1 ответ
    • SHAMAH

      Куда вход на сайт убрали и ЗАЧЕМ? Хотел файл скачать, там только медленная загрузка и “зарегистрируйтесь”. Все. Пришлось вручную страницу входа прописывать.
      · 0 ответов
    • Nosferatu  »  behar

      Добрый вечер.
      Подскажите пожалуйста, у вас не осталось случайно исходников для фикса на широкоформатные мониторы для игры Vampire The Masquerade Redemption?
      Если да, то не могли бы вы ими поделиться, а если нет, то прошу прощенья что побеспокоил.
      Заранее спасибо.
      · 0 ответов
    • AlcoKolyic  »  makc_ar

      Здраствуйте! Извините, а можно попросить ссылку на место где можно взять перевод (патч или образ игры с переводом) El Shaddai: Ascension of the Metatron для ps3, пожалуйста? А то в теме к этой игре у меня не получилось найти работающие ссылки… Первая ведет в группу в которой удалены большинство постов, а пост с этой игрой ведет на сайт https://psnext.ru который сейчас не имеет отношения к видеоиграм. 
      · 0 ответов
    • oleg72  »  Boor

      https://www.skidrowcodex.net/fate-reawakened-goldberg/
      · 0 ответов
  • Лучшие авторы


Zone of Games © 2003–2025 | Реклама на сайте.

×