Распродажа Steam началась

Подкинте ссылку на последний асф, который фармит карты распродажи плес
 
Код:
(function(context) {
const pixi = gApp;
const GAME = gGame;
const SERVER = gServer;
const SetMouse = function SetMouse(x, y) {
    pixi.renderer.plugins.interaction.mouse.global.x = x;
    pixi.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;
}

const TryContinue = function Continue() {
    let continued = false;
    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;
                child.click();
            }
        })
    }
    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;
                child.click();
            }
        })
    }
    return continued;
}


// Let's challenge ourselves to be human here!
const CLICKS_PER_SECOND = 10;

const InGame = function InGame() {
    return GAME.m_State.m_bRunning;
}

const InZoneSelect = function InZoneSelect() {
    return GAME.m_State instanceof CBattleSelectionState;
}

const WORST_SCORE = -1 / 0;
const START_POS = pixi.renderer.width;

// context.lastZoneIndex;
let isJoining = false;

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);
}


class Attack {
    constructor() {
        this.nextAttackDelta = 0;
    }
    shouldAttack(delta) {
        throw new Error("shouldAttack not implemented");
    }
    process(enemies) {
        throw new Error("process not implemented");
    }
}

// Basic clicking attack, attack closest
class ClickAttack extends Attack {
    shouldAttack(delta) {
        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.click();
        this.nextAttackDelta = 1 / CLICKS_PER_SECOND;
    }
}

// the '1' button (SlimeAttack PsychicAttack BeastAttack - depends on body type of your salien)
class SpecialAttack extends Attack {
    getCurrent() {
        if (gSalien.m_BodyType == "slime")
            return "slimeattack";
        else if (gSalien.m_BodyType == "beast")
            return "beastattack";
        else
            return "psychicattack";
    }
    getData() {
        return AttackManager().m_AttackData[this.getCurrent()];
    }
    shouldAttack(delta) {
        let Manager = AttackManager().m_mapCooldowns.get(this.getCurrent());
        let lastUsed = Manager.m_rtAttackLastUsed;
        let canAttack = Manager.BAttack();
        Manager.m_rtAttackLastUsed = lastUsed;
        return canAttack
    }
    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(target.m_Sprite.x, target.m_Sprite.y);
    }
    attack(x, y) {
        SetMouse(x, y)
        AttackManager().m_mapKeyCodeToAttacks.get(this.getData().keycode)()
    }
}

let attacks = [
    new ClickAttack(),
    new SpecialAttack()
]

if (context.BOT_FUNCTION) {
    pixi.ticker.remove(context.BOT_FUNCTION);
    context.BOT_FUNCTION = undefined;
}

context.BOT_FUNCTION = function ticker(delta) {
    delta /= 100;

    if(GAME.m_IsStateLoading) {
        return;
    }

    if (InZoneSelect()) {
        if (context.lastZoneIndex !== undefined && !isJoining) {
            isJoining = true;
            SERVER.JoinZone(
                lastZoneIndex,
                function ( results ) {
                    gGame.ChangeState( new CBattleState( GAME.m_State.m_PlanetData, context.lastZoneIndex ) );
                },
                GameLoadError
                );
           
            return; 
        }
    }
    if (!InGame()) {
        if (TryContinue()) {
            console.log("continued!");
        }
        return;
    }
   
    isJoining = false;
    context.lastZoneIndex = GAME.m_State.m_unZoneIndex;

    let state = EnemyManager();

    let enemies = state.m_rgEnemies;

    for (let attack of attacks)
        if (attack.shouldAttack(delta))
            attack.process(enemies);

}


pixi.ticker.add(context.BOT_FUNCTION);

})(window);
Бот для автоматического убийства мобов в игре.
Вставлять в консоль хрома (ctrl+shift+j)
 
  • Like
Реакции: Ksardas2015 и jason09
Проясните плес, там вроде дают какие то бонусы за то что ты вместе с сообществом завоевываешь квадрат, или кого?
 
Кто-нибудь подкиньте конфиг бота, а у меня старье :(
 
Так, уважаемые форумчане! ASF по идее способен фармить ещё по 3 карточки с мини гры. Арчи упорно отказался это внедрять! Есть ли у нас тут топ программисты? Предлагаю скинутся всем фермерам тому кто это реализует. Самому не жалко хоть даже 1000 рублей
Кто отважится это сделать?)))
 
Так, уважаемые форумчане! ASF по идее способен фармить ещё по 3 карточки с мини гры. Арчи упорно отказался это внедрять! Есть ли у нас тут топ программисты? Предлагаю скинутся всем фермерам тому кто это реализует. Самому не жалко хоть даже 1000 рублей
Кто отважится это сделать?)))
Я за!

Даже арканой заплачу
 
  • Like
Реакции: jason09 и Ksardas2015
Есть у кого скрипт для фарма карточек с рекомендаций ?
 
Кто-нибудь подкиньте конфиг бота, а у меня старье :(
Мои вот так настроены
Код:
{
  "SteamLogin": "Логин аккаунта",
  "SteamPassword": "Пароль аккаунта",
  "s_SteamMasterClanID": "ID группы",
  "SteamTradeToken": "Токен трейда",
  "Enabled": true,
  "AutoSteamSaleEvent": true,
  "BotBehaviour": 7,
  "SendOnFarmingFinished": true,
  "DismissInventoryNotifications": true,
  "GamesPlayedWhileIdle": [440],
  "RedeemingPreferences": 1,
  "TradingPreferences": 1,
  "LootableTypes": [
    1,
    2,
    3,
    4,
    5,
    6
  ],
  "SteamUserPermissions": {
    "ID основы": 3
  }
}
 
  • Like
Реакции: Furude Rika и Tysha
поддерживаю, данный скрипт, который выложили выше для фарма с мини игры 100% можно встроить в АСФ в виде dll-ки, чтобы ASF фармил и рекомендации и игру через скрипт , не жалко заплатить 1000+ за данное решение, кто может сварганить сегодня-завтра?
 
  • Like
Реакции: Ksardas2015
  • Like
Реакции: staitare
поддерживаю, данный скрипт, который выложили выше для фарма с мини игры 100% можно встроить в АСФ в виде dll-ки, чтобы ASF фармил и рекомендации и игру через скрипт , не жалко заплатить 1000+ за данное решение, кто может сварганить сегодня-завтра?
Вот самое сложное это найти человека который за это возьмётся и сделает в максимально короткие сроки
 
  • Like
Реакции: staitare
Вот самое сложное это найти человека который за это возьмётся и сделает в максимально короткие сроки

В зимнюю распродажу у какой-то чел выкладывал dll под 3.0.5.6 версию АСФ для получения карточек с голосовалки просто мимолетом в посте в общей теме обсуждения.. может и щас найдется энтузиаст. На самом деле там не так уж и долго встроить.
 
Последнее редактирование:
  • Like
Реакции: Gromvsehvas
А в какой версии АСФ можно было карты распродажи получить?
Во второй версии был 2.3.2.3. А в 3 версии какой?
 
c 3.0.5.6, на 2 интузиасты делали