1. BanDiTuK12.03.2025 в 21:23от
Загрузка...

Дроп карт с рекомендаций steam

Тема в разделе "Курилка", создана пользователем DeLIT, 22.06.2018.

  1. Avrora

    Avrora

    Статус:
    Оффлайн
    Регистрация:
    26.11.12
    Сообщения:
    304
    Репутация:
    177 +/-
    Спасибо +3 карты в коллекцию
     
  2. EdenHazardBY

    EdenHazardBY

    Статус:
    Оффлайн
    Регистрация:
    14.04.16
    Сообщения:
    103
    Репутация:
    95 +/-
  3. Beliar48

    Beliar48

    Статус:
    Оффлайн
    Регистрация:
    19.07.13
    Сообщения:
    744
    Репутация:
    385 +/-
    а этот скрипт на игру стимопланетяне уже не робит?

    (function() {
    // disable error messages
    GameLoadError = function() {};
    // infinity loop
    setInterval(function(){
    // zone selection screen
    if ( typeof gGame.m_State.m_LeaveButton !== 'undefined') {
    for ( var diffCounter = 3; diffCounter > 0; diffCounter-- ) { // hard, medium, easy
    for ( var zoneCounter = 0; zoneCounter < 96; zoneCounter++ ) {
    if ( !gGame.m_State.m_PlanetData.zones[zoneCounter].captured &&
    gGame.m_State.m_PlanetData.zones[zoneCounter].difficulty === diffCounter ) {
    gServer.JoinZone(
    zoneCounter,
    function ( results ) {
    gGame.ChangeState( new CBattleState( gGame.m_State.m_PlanetData, zoneCounter ) );
    },
    GameLoadError
    );
    return;
    }
    }
    }
    }
    // kill enemies
    if ( typeof gGame.m_State.m_EnemyManager !== 'undefined' ) {
    gGame.m_State.m_EnemyManager.m_rgEnemies.forEach( function( enemy ) {
    enemy.Die( true );
    });
    }
    // zone completion screen
    if ( typeof gGame.m_State.m_VictoryScreen !== 'undefined' ) {
    if ( gGame.m_State.m_VictoryScreen.getChildAt(1).visible ) { // 'Continue' button
    gGame.ChangeState( new CBattleSelectionState( gGame.m_State.m_PlanetData.id ) );
    gServer.GetPlayerInfo(
    function( results ) {
    gPlayerInfo = results.response;
    console.log('Score: ' + gPlayerInfo.score + '\n' +
    'Level: ' + gPlayerInfo.level);
    },
    GameLoadError
    );
    }
    }
    }, 500);
    })();
     
  4. Armanorder

    Armanorder

    Статус:
    Оффлайн
    Регистрация:
    27.07.15
    Сообщения:
    35
    Репутация:
    22 +/-
    Не работает?
     
  5. Ruha

     Телеграма/Скайпа нет
    Ruha

    Статус:
    Оффлайн
    Регистрация:
    24.10.11
    Сообщения:
    1.259
    Репутация:
    1.061 +/-
    Работает. Вчера собрал карточки.
     
  6. slashbaster1

    slashbaster1

    Статус:
    Оффлайн
    Регистрация:
    08.11.16
    Сообщения:
    86
    Репутация:
    61 +/-
    схоронил , спасибо
     
  7. universe2013

    universe2013

    Статус:
    Оффлайн
    Регистрация:
    28.03.15
    Сообщения:
    41
    Репутация:
    8 +/-
    Получил, спасибо)
     
  8. xakercs

    xakercs

    Статус:
    Оффлайн
    Регистрация:
    18.01.14
    Сообщения:
    81
    Репутация:
    25 +/-
    +3 картоски, спасибо, так держать)
     
  9. Manis

    Manis

    Статус:
    Оффлайн
    Регистрация:
    29.01.18
    Сообщения:
    49
    Репутация:
    44 +/-
    Частично пофиксили. Работает через раз. Если у кого-то есть ещё скрипт какой нибудь, скиньте пожалуйста
     
  10. Ruha

     Телеграма/Скайпа нет
    Ruha

    Статус:
    Оффлайн
    Регистрация:
    24.10.11
    Сообщения:
    1.259
    Репутация:
    1.061 +/-
    Обновленный скрипт из шапки темы:
    Код:
    // ==UserScript==
    // @name                Steam Queue Auto Discoverer
    // @description         Discover the Steam queue three times to get the sale cards
    // @version             2.3.0
    // @namespace           https://gist.github.com/xPaw/73f8ae2031b4e528abf7
    // @updateURL           https://gist.github.com/xPaw/73f8ae2031b4e528abf7/raw/steam_quick_queue.user.js
    // @icon                https://store.steampowered.com/favicon.ico
    // @match               https://store.steampowered.com/explore*
    // @grant               none
    // ==/UserScript==
    
    var DiscoveryQueueModal, GenerateQueue = function( queueNumber )
    {
    	if( DiscoveryQueueModal )
    	{
    		DiscoveryQueueModal.Dismiss();
    	}
    	
    	DiscoveryQueueModal = ShowBlockingWaitDialog( 'Generating the queue...', 'Generating new discovery queue #' + ++queueNumber );
    	
    	jQuery.post( 'https://store.steampowered.com/explore/generatenewdiscoveryqueue', { sessionid: g_sessionID, queuetype: 0 } ).done( function( data )
    	{
    		var requests = [], done = 0, errorShown;
    		
    		for( var i = 0; i < data.queue.length; i++ )
    		{
    			var request = jQuery.post( 'https://store.steampowered.com/app/10', { appid_to_clear_from_queue: data.queue[ i ], sessionid: g_sessionID } );
    			
    			request.done( function()
    			{
    				if( errorShown )
    				{
    					return;
    				}
    				
    				DiscoveryQueueModal.Dismiss();
    				DiscoveryQueueModal = ShowBlockingWaitDialog( 'Exploring the queue...', 'Request ' + ++done + ' of ' + data.queue.length );
    			} );
    			
    			request.fail( function()
    			{
    				if( errorShown )
    				{
    					return;
    				}
    				
    				errorShown = true;
    				
    				DiscoveryQueueModal.Dismiss();
    				DiscoveryQueueModal = ShowBlockingWaitDialog( 'Error', 'Failed to clear queue item #' + ++done + '. Will try again soon.' );
    			} );
    			
    			requests.push( request );
    		}
    		
    		var callback = function()
    		{
    			DiscoveryQueueModal.Dismiss();
    			
    			if( queueNumber < 3 )
    			{
    				GenerateQueue( queueNumber );
    			}
    			else
    			{
    				DiscoveryQueueModal = ShowConfirmDialog( 'Done', 'Queue has been explored ' + queueNumber + ' times', 'Reload the page' ).done( function() {
    					ShowBlockingWaitDialog( 'Reloading the page' );
    					window.location.reload();
    				});
    			}
    		};
    		
    		jQuery.when.apply( jQuery, requests ).then( callback, callback );
    	} ).fail( function()
    	{
    		setTimeout( () => GenerateQueue( queueNumber - 1 ), 1000 );
    		
    		DiscoveryQueueModal.Dismiss();
    		DiscoveryQueueModal = ShowBlockingWaitDialog( 'Error', 'Failed to generate new queue #' + queueNumber + '. Trying again in a second.' );
    	} );
    };
    
    var buttonContainer = document.createElement( 'div' );
    buttonContainer.className = 'discovery_queue_customize_ctn';
    buttonContainer.innerHTML = '<div class="btnv6_blue_hoverfade btn_medium" id="js-cheat-queue"><span>Cheat the queue</span></div><span>Discover the queue three times to get the sale cards</span>';
    
    var container = document.querySelector( '.discovery_queue_customize_ctn' );
    container.parentNode.insertBefore( buttonContainer, container );
    
    var button = document.getElementById( 'js-cheat-queue' );
    
    button.addEventListener( 'click', function( )
    {
    	GenerateQueue( 0 );
    	container.parentNode.removeChild( buttonContainer );
    }, false );
     
      Manis нравится это.
  11. FunnyFup

    FunnyFup

    Статус:
    Оффлайн
    Регистрация:
    09.12.13
    Сообщения:
    423
    Репутация:
    407 +/-
    Работает.
    Спасибо
     
  12. Beliar48

    Beliar48

    Статус:
    Оффлайн
    Регистрация:
    19.07.13
    Сообщения:
    744
    Репутация:
    385 +/-
    на стимопланетян обновленный скрипт есть?
    бота и приложения как то в лом ставить
     
  13. Ruha

     Телеграма/Скайпа нет
    Ruha

    Статус:
    Оффлайн
    Регистрация:
    24.10.11
    Сообщения:
    1.259
    Репутация:
    1.061 +/-
    Код:
    // ==UserScript==
    // @name         Saliens bot
    // @namespace    http://tampermonkey.net/
    // @version      29
    // @description  Beat all the saliens levels
    // @author       https://github.com/meepen/salien-bot
    // @match        https://steamcommunity.com/saliengame
    // @match        https://steamcommunity.com/saliengame/
    // @match        https://steamcommunity.com/saliengame/play
    // @match        https://steamcommunity.com/saliengame/play/
    // @grant        none
    // ==/UserScript==
    
    
    if (typeof GM_info !== "undefined" && (GM_info.scriptHandler || "Greasemonkey") == "Greasemonkey") {
        alert("It's not possible to support Greasemonkey, please try Tampermonkey or ViolentMonkey.");
    }
    
    (function(context) {
    "use strict";
    
    const MAX_LEVEL = 13;
    
    // reload automatically instead of clicking ok
    context.error = context.GameLoadError = function() {
    	window.location.reload();
    }
    
    document.getElementsByClassName('salien_section')[0].getElementsByClassName('title')[0].textContent = 'Saliens Bot Running...'
    
    const APP = context.gApp;
    const GAME = context.gGame;
    const SERVER = context.gServer;
    const PIXI = context.PIXI;
    
    SERVER._ReportScore = SERVER._ReportScore || SERVER.ReportScore;
    SERVER.ReportScore = function ReportScore(nScore, callback, error) {
        return this._ReportScore(nScore, function ReportScore_callback(results) {
            let response = results.response;
            console.log(`Server reported level ${response.new_level} (${response.new_score} / ${response.next_level_score})`)
            document.getElementsByClassName('subtitle')[0].innerHTML += "</br>Server reported level "+response.new_level+" ("+response.new_score+" / "+response.next_level_score+")"
            return callback(results);
        }, function ReportScore_error() {
            console.log(arguments);
            if (error)
                error.apply(null, arguments);
        });
    }
    
    const Option = function Option(name, def) {
        if (window.localStorage[name] === undefined) {
            context.localStorage[name] = def;
        }
        return context.localStorage[name];
    }
    Option("forceLevellingMode", false);
    const SetMouse = function SetMouse(x, y) {
        APP.renderer.plugins.interaction.mouse.global.x = x;
        APP.renderer.plugins.interaction.mouse.global.y = y;
    }
    const EnemyManager = function EnemyManager() {
        return GAME.m_State.m_EnemyManager;
    }
    const AttackManager = function AttackManager() {
        return GAME.m_State.m_AttackManager;
    }
    
    let isJoining = false;
    const TryContinue = function TryContinue() {
        let continued = false;
        if (isJoining) 
            return continued;
        if (GAME.m_State.m_VictoryScreen) {
            GAME.m_State.m_VictoryScreen.children.forEach(function(child) {
                if (child.visible && child.x == 155 && child.y == 300) {// TODO: not this
                    continued = true;
                    isJoining = true;
                    setTimeout(() => {
                        isJoining = false
                    }, 6000);
    		setTimeout(() => {
    		    child.pointertap();
                    }, 5000);
                }
            })
        }
        if (GAME.m_State.m_LevelUpScreen) {
            continued = false;
            GAME.m_State.m_LevelUpScreen.children.forEach(function(child) {
                if (child.visible && child.x == 155 && child.y == 300) {// TODO: not this
                    continued = true;
                    isJoining = true;
                    child.pointertap();
                    setTimeout(() => {
                        isJoining = false
                    }, 6000);
    		setTimeout(() => {
    		    child.pointertap();
                    }, 5000);
                }
            })
        }
        if (gServer.m_WebAPI && GAME.m_State instanceof CBootState) { // First screen
            isJoining = true;
            setTimeout(() => isJoining = false, 1000);
            GAME.m_State.button.click();
        }
        if (GAME.m_State instanceof CPlanetSelectionState && !isJoining) { // Planet Selection
            GAME.m_State.m_rgPlanetSprites[0].pointertap();
            isJoining = true;
            setTimeout(() => isJoining = false, 1000);
            continued = true;
        }
        if (GAME.m_State instanceof CBattleSelectionState && !isJoining) {
            let bestZoneIdx = GetBestZone();
            if(bestZoneIdx) {
                console.log("join to zone", bestZoneIdx);
                document.getElementsByClassName('subtitle')[0].textContent = "Joining the zone number " + bestZoneIdx
                isJoining = true;
                GAME.m_State.m_Grid.click(bestZoneIdx % k_NumMapTilesW, (bestZoneIdx / k_NumMapTilesW) | 0);
                setTimeout(() => isJoining = false, 1000);
            }
            else {
                isJoining = true;
                GAME.m_State.m_LeaveButton.click();
                console.log("Leaving planet, no zones left");
                setTimeout(() => {
                    window.location.reload();
                }, 1000);
            }
            console.log(bestZoneIdx);
            return;
        }
        return continued;
    }
    const CanAttack = function CanAttack(attackname) {
        let Manager = AttackManager().m_mapCooldowns.get(attackname);
        let lastUsed = Manager.m_rtAttackLastUsed;
        let canAttack = Manager.BAttack();
        Manager.m_rtAttackLastUsed = lastUsed;
        return canAttack;
    }
    const GetBestZone = function GetBestZone() {
        let bestZoneIdx;
        let highestDifficulty = -1;
    
        let isLevelling = context.gPlayerInfo.level < MAX_LEVEL || Option("forceLevellingMode");
        let maxProgress = isLevelling ? 10000 : 0;
    
        for (let idx = 0; idx < GAME.m_State.m_Grid.m_Tiles.length; idx++) {
            let zone = GAME.m_State.m_Grid.m_Tiles[idx].Info;
            if (!zone.captured) {
                if (zone.boss) {
                    console.log(`zone ${idx} (${bestZoneIdx % k_NumMapTilesW}, ${(bestZoneIdx / k_NumMapTilesW) | 0}) with boss`);
                    return idx;
                }
    
                if(isLevelling) {
                    if(zone.difficulty > highestDifficulty) {
                        highestDifficulty = zone.difficulty;
                        maxProgress = zone.progress;
                        bestZoneIdx = idx;
                    } else if(zone.difficulty < highestDifficulty) continue;
    
                    if(zone.progress < maxProgress) {
                        maxProgress = zone.progress;
                        bestZoneIdx = idx;
                    }
                } else {
                    if(zone.progress > maxProgress) {
                        maxProgress = zone.progress;
                        bestZoneIdx = idx;
                    }
                }
    
            }
        }
    
        if(bestZoneIdx !== undefined) {
            console.log(`${GAME.m_State.m_PlanetData.state.name} zone ${bestZoneIdx} (${bestZoneIdx % k_NumMapTilesW}, ${(bestZoneIdx / k_NumMapTilesW) | 0}) progress: ${GAME.m_State.m_Grid.m_Tiles[bestZoneIdx].Info.progress} difficulty: ${GAME.m_State.m_Grid.m_Tiles[bestZoneIdx].Info.difficulty}`);
        }
    
        return bestZoneIdx;
    }
    const GetBestPlanet = function GetBestPlanet() {
        let bestPlanet;
        let maxProgress = 0;
    
        if (!GAME.m_State.m_mapPlanets)
            return;
    
        for (let planetKV of GAME.m_State.m_mapPlanets) {
            let planet = planetKV[1];
            if(planet.state.active && !planet.state.captured && planet.state.capture_progress > maxProgress) {
                maxProgress = planet.state.capture_progress;
                bestPlanet = planet;
            }
    
        }
    
        if(bestPlanet) {
            console.log(`selecting planet ${bestPlanet.state.name} with progress: ${bestPlanet.state.capture_progress}`);
            return bestPlanet.id;
        }
    }
    
    // Let's challenge ourselves to be human here!
    const CLICKS_PER_SECOND = 15;
    
    const InGame = function InGame() {
        return GAME.m_State.m_bRunning;
    }
    
    const WORST_SCORE = -1 / 0;
    const START_POS = APP.renderer.width;
    
    
    const EnemySpeed = function EnemySpeed(enemy) {
        return enemy.m_Sprite.vx;
    }
    const EnemyDistance = function EnemyDistance(enemy) {
        return (enemy.m_Sprite.x - k_nDamagePointx) / (START_POS - k_nDamagePointx);
    }
    
    const EnemyCenter = function EnemyCenter(enemy) {
        return [
            enemy.m_Sprite.x + enemy.m_Sprite.width / 2,
            enemy.m_Sprite.y + enemy.m_Sprite.height / 2
        ];
    }
    
    const BlackholeOfEnemy = function BlackholeOfEnemy(enemy) {
        for(var [_, blackhole] of AttackManager().m_mapBlackholes) {
            // Check if enemy is very close to blackhole
            if ( EnemyCenter(enemy)[0] < blackhole.x || EnemyCenter(enemy)[0] > blackhole.x ||
                 EnemyCenter(enemy)[1] < blackhole.y || EnemyCenter(enemy)[1] > blackhole.y ) {
                return blackhole;
            }
        }
        return null;
    }
    
    class Attack {
        constructor() {
            this.nextAttackDelta = 0;
        }
        shouldAttack(delta, enemies) {
            throw new Error("shouldAttack not implemented");
        }
        process(enemies) {
            throw new Error("process not implemented");
        }
        getAttackName() {
            throw new Error("no current attack name");
        }
        canAttack() {
            return CanAttack(this.getAttackName());
        }
        getAttackData() {
            return AttackManager().m_AttackData[this.getAttackName()];
        }
    }
    
    // Basic clicking attack, attack closest
    class ClickAttack extends Attack {
        shouldAttack(delta) {
            // Can't do basic attack when station is down
            if (GAME.m_State.m_PlayerHealth <= 0)
                return false;
            this.nextAttackDelta -= delta;
            return this.nextAttackDelta <= 0;;
        }
        score(enemy) {
            if (enemy.m_bDead)
                return WORST_SCORE;
            return 1 - EnemyDistance(enemy);
        }
        process(enemies) {
            let target, target_score = WORST_SCORE;
    
            enemies.forEach((enemy) => {
                if (!enemy.m_Sprite.visible)
                    return;
                let now_score = this.score(enemy);
                if (now_score > target_score) {
                    target = enemy, target_score = now_score;
                }
            });
    
            if (target)
                this.attack(target);
        }
        attack(enemy) {
            enemy.m_Sprite.pointertap();
            this.nextAttackDelta = 1 / CLICKS_PER_SECOND;
        }
    }
    
    class ProjectileAttack extends Attack {
        targetPosition(target) {
            return EnemyCenter(target);
        }
        shouldAttack(delta) {
            return CanAttack(this.getAttackName());
        }
        score(enemy) {
            if (enemy.m_bDead)
                return WORST_SCORE;
            return enemy.m_nHealth;
        }
        process(enemies) {
            let target, target_score = WORST_SCORE;
    
            enemies.forEach((enemy) => {
                if (!enemy.m_Sprite.visible)
                    return;
                let now_score = this.score(enemy);
                if (now_score > target_score) {
                    target = enemy, target_score = now_score;
                }
            });
    
            if (target) {
                this.attack.apply(this, this.targetPosition(target));
            }
        }
        attack(x, y) {
            SetMouse(x, y)
            AttackManager().m_mapKeyCodeToAttacks.get(this.getAttackData().keycode)()
        }
    }
    
    // the '1' button (SlimeAttack PsychicAttack BeastAttack - depends on body type of your salien)
    class SpecialAttack extends ProjectileAttack {
    
        targetPosition(target) {
            var finalTargetPosition = EnemyCenter(target);
    
            // SpecialAttack's projectile is quite slow, so we need to aim ahead of the target
            finalTargetPosition[0] += 50*EnemySpeed(target);
    
            // If target is stuck in blackhole, shoot at black hole instead
            var blackhole = BlackholeOfEnemy(target);
            if(blackhole != null) {
                finalTargetPosition = [blackhole.x, blackhole.y];
            }
    
            return finalTargetPosition;
        }
    
        getAttackName() {
            if (gSalien.m_BodyType == "slime")
                return "slimeattack";
            else if (gSalien.m_BodyType == "beast")
                return "beastattack";
            else
                return "psychicattack";
        }
    }
    
    class BombAttack extends ProjectileAttack {
        getAttackName() {
            return "explosion";
        }
    }
    class BlackholeAttack extends ProjectileAttack {
        getAttackName() {
            return "blackhole";
        }
    }
    class MeteorAttack extends ProjectileAttack {
        getAttackName() {
            return "boulder";
        }
    }
    
    class FreezeAttack extends Attack {
        getCurrent() {
            return "flashfreeze";
        }
        shouldAttack(delta, enemies) {
            let shouldAttack = false;
            if (CanAttack(this.getCurrent())) {
                enemies.forEach((enemy) => {
                    if (EnemyDistance(enemy) <= 0.05) {
                        shouldAttack = true;
                    }
                });
            }
            return shouldAttack;
        }
        getData() {
            return AttackManager().m_AttackData[this.getCurrent()];
        }
        process() {
            AttackManager().m_mapKeyCodeToAttacks.get(this.getData().keycode)()
        }
    }
    
    let attacks = [
        new ClickAttack(),
        new SpecialAttack(),
        new FreezeAttack(),
        new BombAttack(),
        new MeteorAttack(),
        new BlackholeAttack()
    ]
    
    if (context.BOT_FUNCTION) {
        APP.ticker.remove(context.BOT_FUNCTION);
        context.BOT_FUNCTION = undefined;
    }
    
    let reloadingPage = false;
    
    context.BOT_FUNCTION = function ticker(delta) {
        delta /= 100;
    
        let difficulties = PIXI.loader.resources['level_config'];
        if (difficulties)
            for (let difficulty in difficulties.data) {
                let freq = difficulties.data[difficulty].enemies.spawn_frequency;
                freq.min = freq.max;
            }
    
        let buttonsOnErrorMessage = document.getElementsByClassName("btn_grey_white_innerfade btn_medium");
        if(buttonsOnErrorMessage[0] != null) {
            if (!reloadingPage) {
                setTimeout(() => buttonsOnErrorMessage[0].click(), 1000);
            }
    
            return;
        }
    
        if (GAME.m_IsStateLoading) {
            return;
        }
    
        if (!InGame()) {
            if (TryContinue()) {
                console.log("continued!");
            }
            return;
        }
    
    
    
        let state = EnemyManager();
    
        let enemies = state.m_mapEnemies;
    
        for (let attack of attacks)
            if (attack.shouldAttack(delta, enemies))
                attack.process(enemies);
    
    }
    
    
    APP.ticker.add(context.BOT_FUNCTION);
    
    })(window);
    
     
      Beliar48 нравится это.