Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Blaw

Steam, EGS, GOG т.5

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

с каждым левелом пишет, что "в инвентаре вас ждет награда", а там нихуя.  :lolpalm:

через минуты 3 выдает одежду на твоего инопланетянина  :trollface:

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


Ссылка на сообщение
(изменено)

CEnemyManager.prototype.BuildEnemy = function(){};

закидывайте в консоль и не надо будет стрелять, врагов тупа не будет


ещё такой есть, убивает всех автоматом


setInterval(function(){
if (!gGame || !gGame.m_State || !gGame.m_State.m_EnemyManager) return;

if (!gGame.m_State.m_EnemyManager.m_EnemyData) return;

gGame.m_State.m_EnemyManager.m_EnemyData.slime.base_health = gGame.m_State.m_EnemyManager.m_EnemyData.volvoian.base_health = gGame.m_State.m_EnemyManager.m_EnemyData.neomorph.base_health = 1;
gGame.m_State.m_EnemyManager.m_EnemyData.slime.base_damage = gGame.m_State.m_EnemyManager.m_EnemyData.volvoian.base_damage = gGame.m_State.m_EnemyManager.m_EnemyData.neomorph.base_damage = 0

if (!gGame.m_State.m_EnemyManager.m_rgEnemies) return;

gGame.m_State.m_EnemyManager.m_rgEnemies
.forEach(function(e) {e.m_Sprite.click()})
}, 100);



и более продвинутый

 

// ==UserScript==
// @@name         Saliens bot
// @@Version.rOllan      8
// @description  Beat all the saliens levels
// @grant        none
// ==/UserScript==
 
 
 
(function(context) {
"use strict";
 
// when the error is fixed we should remove the following
CSalien.prototype.UpdateCustomizations = function()
{
    this.SetBodyType(BODY_TYPES[gSalienData.body_type]);
    this.LoadAttachments();
}
const pixi = gApp;
const GAME = gGame;
const SERVER = gServer;
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) {
    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();
            }
        })
    }
    if(GAME.m_State instanceof CBootState) { //First screen
        GAME.ChangeState( new CBattleSelectionState( context.gPlayerInfo.active_planet ) );
        continued = true;
    }
    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 < 9 || 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) {
                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(`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;
}
 
// Let's challenge ourselves to be human here!
const CLICKS_PER_SECOND = 15;
 
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);
}
 
const EnemyCenter = function EnemyCenter(enemy) {
    return [
        enemy.m_Sprite.x + enemy.m_Sprite.width / 2,
        enemy.m_Sprite.y + enemy.m_Sprite.height / 2
    ];
}
 
 
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.click();
        this.nextAttackDelta = 1 / CLICKS_PER_SECOND;
    }
}
 
class ProjectileAttack extends Attack {
    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, EnemyCenter(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 {
    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 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 BlackholeAttack()
]
 
if (context.BOT_FUNCTION) {
    pixi.ticker.remove(context.BOT_FUNCTION);
    context.BOT_FUNCTION = undefined;
}
 
context.BOT_FUNCTION = function ticker(delta) {
    delta /= 100;
 
    let buttonsOnErrorMessage = document.getElementsByClassName("btn_grey_white_innerfade btn_medium");
    if(buttonsOnErrorMessage[0] != null) {
        buttonsOnErrorMessage[0].click();
        return;
    }
 
    if(GAME.m_IsStateLoading || !context.gPlayerInfo) {
        return;
    }
 
    if (InZoneSelect() && !isJoining) {
        let bestZoneIdx = GetBestZone();
        if(bestZoneIdx > -1) {
            isJoining = true;
            console.log("join to zone", bestZoneIdx);
                SERVER.JoinZone(
                bestZoneIdx,
                function (results) {
                    GAME.ChangeState(new CBattleState(GAME.m_State.m_PlanetData, bestZoneIdx));
                },
                GameLoadError
            );
 
            return;
        }
    }
 
    if (!InGame()) {
        if (TryContinue()) {
            console.log("continued!");
        }
        return;
    }
 
    isJoining = false;
 
    let state = EnemyManager();
 
    let enemies = state.m_rgEnemies;
 
    for (let attack of attacks)
        if (attack.shouldAttack(delta, enemies))
            attack.process(enemies);
}
 
 
pixi.ticker.add(context.BOT_FUNCTION);
 
})(window);

 

 


Изменено пользователем NovicE

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


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

хакиры

 

а потом акки утекают из-за вас


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

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


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

найс комманда, пишу из стим браузера 


0e5062b3d9.png

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


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

 

464b74eb37.png

 

 

такая хуйня во всех браузерах и в стиме, найсово

Очередняра понравилось это

кiт

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


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

Лучше бы вернули хуйню с наклейками укрошать профиль, нахуй этот кликер нужен 

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


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

ПИЗДА УЖЕ ПОЛ ПЕРВОГО А ЕБУЧАЯ ГЛАВНАЯ ДАЖЕ НЕ ЗАГРУЖАЕТСЯ


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

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


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

стим omegalul л omegalul мка 


0e5062b3d9.png

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


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

Страница недоступна

Сайт store.steampowered.com пока не может обработать этот запрос.

HTTP ERROR 500

 

vpizdu


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

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


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

Есть ощущение, что игра зависает где-то в невидимой нам части, и она активна, даже если мы закрываем эту страницу.


XP9Mw.jpg

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


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

если кто-то любит ролевки, но не знает во что сыграть, предлагаю взять на заметку две части дракенсанг, они как раз на распродаже.  :buba:

 

https://store.steampowered.com/app/12640/Drakensang

 

https://store.steampowered.com/app/33770/Drakensang_The_River_of_Time

Lyra.ZloyDis понравилось это

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


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

Из рпг думаю Elex прикупить, с 50% пойдет, да и баги должны быть пофикшены.

 

 

Если не пугает убогая графа-крайне рекомедую это за копейки https://store.steampowered.com/app/230070/The_Age_of_Decadence/

 

Более вариативного и интересного решения квестов по 4-5 разных путей я вообще нигде не видел.  :pray:

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


Ссылка на сообщение
(изменено)

:avtorklif: блять все эти трусики и шапочки для инопланетянина в стим инвентарь падают и засоряют его. У них еще и срока годности нет. Кстати, у кого не работает - вы во внутриигровом браузере пробуете? Есть ощущение, что Вольво тестили на обновленной версии, а старая не поддерживает какие-то функции. Поэтому во внешнем браузере всё ок.
 


Из рпг думаю Elex прикупить, с 50% пойдет, да и баги должны быть пофикшены.
 
 
Если не пугает убогая графа-крайне рекомедую это за копейки https://store.steampowered.com/app/230070/The_Age_of_Decadence/
 
Более вариативного и интересного решения квестов по 4-5 разных путей я вообще нигде не видел.  :pray:

и более уебищного интерфейса я тоже не видел )
дропнул именно по этой причине.
бтв писал в стиме по этой игре отрицательный обзор, теперь его нет, лол О_О
и еще обзоров 5 пропали.


Изменено пользователем Lyra.ZloyDis
Очередняра понравилось это

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


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

https://i.imgur.com/0MPxdAA.png

:hmm:


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

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


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

мне из ящика анемэ майка упала

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


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

 

 

и более уебищного интерфейса я тоже не видел )
дропнул именно по этой причине.

 

Ну визуал это такое. Зато чувак игру делал 10 лет, сценарий и вариативновсть пушка. Тем более за 100 рублей. 

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


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

Ебаные ускоглазые пидарасы. Дс 3 делюкс едишн значит скидку сделали, дешевле блять сизон паса. А на сам сизон пасс или хотя бы отдельно на длс нет. И хуле мне покупать еще раз игру что бы в длс поиграть. Ой блять евреи ебаные.

lunaspirt понравилось это

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


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

они 3 раза продали первый дарк соулс и 2 раза 2-й, какие скидки на ДЛЦ  :lol:


  ля какая

spacer.png

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


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

 

и более уебищного интерфейса я тоже не видел )

дропнул именно по этой причине.

 

Ну визуал это такое. Зато чувак игру делал 10 лет, сценарий и вариативновсть пушка. Тем более за 100 рублей. 

 

Не-не, не визуал.

А именно юзабилити интерфейса. От стартового меню, экранов с характеристиками, инвентаря и т.д.

Всё безумно кривое и непродуманное.

В нее банально неудобно играть из-за этого.

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


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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...