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

  • Автор темы Автор темы Tysha
  • Дата начала Дата начала
Парни, как настроить чтоб основной бот сам принимал трейды?(просто висит куча трейдов)
Раньше помню принимал сам всё норм было.
 
У меня проблема - я недавно перешел со 2 арчика на 3ий - при этом я ничего не менял на этом новом браузерном конфиг генераторе, а тупо вкинул старые конфиги в этот арч и сейчас он почему-то не хочет фармить ни список рекомендаций, ни игру - (стоит ласт версия + патч на фарм игры с распродажи) че делать? мне получается теперь надо каждого бота заного прописывать на сайте конфиг генератора или что? Посмотреть вложение 84434
Точно такая же фигня была, конфиги старые.
Я ручками делал, через этот сайт --Ссылка удалена--
 
Код:
(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)

Фиксанули(

upload_2018-6-23_15-14-5.webp
 
Какой максимальный уровень значка можно получить на распродаже?
 
Ребята плиз скиньте скрин настроек бота в новом конфиге для 3ей версий ASF?
 
ты про уровни? У меня 6

Как в прошлых годах было? Карточки дешевели ежедневно или есть смысл их оставить на попозже?
Хуюровни. Я про ранг значка в стиме. Молвят их 6 рангов
Я оставлю, ценник чуть подымется.
Действительна до 06.08.2018, 19:00:00
 
Последнее редактирование:
Хуюровни. Ваши уровни мне на хуй не нужны, я про ранг значка в стиме. Молвят их 6 уровней.
Я оставлю, ценник чуть подымется.
Действительна до 06.08.2018, 19:00:00
Что дает ранг значка? Я всегда максимум 1 делал, остальное продавал
 
Ребята ASF сначала в планеты играет потом список смотрит? что то у меня ещё список не посмотрел
 
Что дает ранг значка? Я всегда максимум 1 делал, остальное продавал
Мы видимо в разных галактиках живём. Ты ранги свои продать не можешь. Ты имеешь ввиду уровни значками карточками, а я за игру в этом эвенте скажем так. 9 уровень в игре = 3 рангу значка. Но мои глаза, или просто мелькала перед глазами картинка с 6 рангами.
Двойное сообщение соединено:
Вот щас смайликов и всякой нечести надавали. Теперь на зимней будем всё это распылять, типа аукцион походу запилят.
 
Ребята плиз скиньте скрин настроек бота в новом конфиге для 3ей версий ASF?
Мои вот так настроены
Код:
{
  "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
  }
}
 
Назад
Сверху