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

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

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

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


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

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

там даже в обсуждениях кто-то уже пытался разжечь “огонь” по этому поводу)

но мне пофиг, игры вне политики я считаю.

  • +1 1
  • -1 1

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


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

игры вне политики я считаю.

нет, и уже давно.

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


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

игры вне политики я считаю.

Стоят рядом вместе с Олимпийскими((

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: SerGEAnt

      Распродажа продлится до 11 июля.
      В сервисе Steam стартовала традиционная летняя распродажа.
      Как обычно, скидки получили тысячи игр, а вот тематических ивентов Valve не завезла. Разве что в магазине очков можно купить новые фоны для профиля и стикеры.
      Распродажа продлится до 11 июля.
    • Автор: SerGEAnt

      Негативные отзывы часто ссылаются на, как написал один из игроков, «сложность ради сложности». Другая часть отзывов связано с банально плохим техническим состоянием игры. Она страдает не очень хорошей производительностью.
      Намедни в Steam вышло дополнение Shadow of the Erdtree для Elden Ring. Вроде бы его облизали и блогеры, и пресса — на Metacritic оно вообще стало самым высокооцененным дополнением в истории.
      Но игроки решили иначе.

      Прямо сейчас в Steam у Shadow of the Erdtree «смешанные» отзывы, причем судя по статистике, больше всего усердствуют китайцы. Аналитик Даниэль Ахмад, специализирующийся на азиатском рынке, считает, что в этом виновата чрезмерная сложность игры при отсутствии гайдов на китайском языке.


      Негативные отзывы на других языках тоже часто ссылаются на, как написал один из игроков, «сложность ради сложности».
      Другая часть отзывов связана с банально плохим техническим состоянием игры. Она страдает не очень хорошей производительностью.


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

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

    • в фм2 многое непонятно в механиках отключение(о) — никак не поясняет, что делает навык компа=( Power Down (S) 3 Disables enemy's Short computer. Жаль, что имя навыка вверху совпадает со строкой внизу. Но наверное так в оригинале=(
    • описание этого самолёта в нескольких местах: он точно взлетает прямо с воды вертикально? или это аналог истребителей с вертикальным взлётом, но транспортник? нету точки в конце предложения после скш   в весь фм переиграл, ни разу не помню дирижаблей в мире фм   но тут тоже дирижабли??     в местах перечислений не хватает знаков препинания, (тут точек?) (не только в этом месте, а во всех списках, в биографиях например)   не знаю, есть ли термин “планирование наводнений”, если есть, то ок   опечатка в третей строка “город(А)”   Очень просится второе предложение разбить на два (или офис као не просто через запятую а “в том числе офис као”).   содержание форума “под следствием”??      
    • Текст находится в Data\Paks\Text-*.pak файлах. Достать можно этим скриптом для QuickBMS: Русский текст имеет такой вид \P26\\p14\\a34\ \U+1057\\U+1088\\U+1072\\U+1073\\U+1086\\U+1090\\U+1072\\U+1083\\U+1086\. \P26\\p14\\a32\ \U+1040\\U+1081\! \U+1040\-\U+1072\-\U+1088\\U+1075\\U+1093\! \P26\\p14\\a34\ \U+1040\\U+1096\-\U+1044\\U+1074\\U+1072\! \P26\\p14\\a32\ \U+1052\\U+1080\\U+1089\\U+1089\ \U+1044\\U+1078\\U+1077\\U+1081\\U+1076\... Декодировать txt в читаемый вид можно таким скриптом для WinHex: Обратно закодировать текст для импорта, соответственно Импортировать изменённый текст можно тем же скриптом с параметрами -r -w quickBMS.exe -r -w bge20thPAKmod.bms Text-ru.pak  
    • фразы совсем без перевода в Диарабе после 10 миссии   если купить в магазине комплект ванцера 99 (+справа сверху басуреро не переведено) если сказать Сарибашу, что не готовы     некоторые странности кажется тут смыслы в том, что “они не отвяжутся/не перестанут преследовать”   в арене кажется это не род войск, а какая-то команда/группа   не знаю что там было в оригинале, что потребовало такого калорита у Саюри=)   кажется тут чуть бы фразу перестроить “всё погружено”, кратко как-то уж   кажется “неиллюзорный риск” от охранника… ну и в целом тут странно звучит   Странные выражения от Томаса ещё как то можно понять, но у других персонажей немного странновато выглядит
    • Перевод, похоже, дополнятся не будет. Жаль.
    • Доброго времени суток. Есть ли возможность адоптировать эти русики для GOG версии? https://rutracker.org/forum/viewtopic.php?t=5761389
    • С этими проблемами нужно обратится туда где вы преобрели игру. В Ubisoft.
    • Всем привет! Удалось кому-то распаковать/посмотреть .pak файлы, где содержится текст?

      Только прикупил игру, так меня со стартового экрана “порадовали” отсутствием пробела и ещё кучей недочётов в меню игры. Саму игру ещё не начинал, но некоторые проходившие жалуются, что там тоже много ошибок.

      Возможно ли чем-то самому открыть данные файлы и поправить текст?
    • У меня всё вернулось через некоторое время, при чём я так и не понял что это было.
    • @Барсик Вечный Ждун, перевод двигается, но медленно. Давным давно больше половины сделано. Ближе к концу процесс замедлился. В 2024 вряд ли завершим. На текущий момент ориентируемся на 2025 год. Для донатеров VK Donut и подписчиков на Boosty у нас открыт доступ к текущим сборкам Star Ocean 6, Tales Of Rebirth, Tales Of Eternia, Tales Of Phantasia, Tales Of Xillia 2, Valkyrie Profile: Lenneth и другим нашим проектам. Лучше в VK Donut. Там удобнее. Если желаешь поиграть в бету, то милости просим.

      Подписку можно оформить двумя способами:
      VK Donut: https://vk.com/donut/temple_of_tales_translations
      Boosty: https://boosty.to/temple-tales
  • Изменения статусов

  • Лучшие авторы


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

×