Norman #2361 21 июня 2018 с каждым левелом пишет, что "в инвентаре вас ждет награда", а там нихуя. через минуты 3 выдает одежду на твоего инопланетянина Цитата Поделиться сообщением Ссылка на сообщение
NovicE #2362 21 июня 2018 (изменено) 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 = 0if (!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// @@namespace http://tampermonkey.net/// @@Version.rOllan 8// @description Beat all the saliens levels// @author https://github.com/meepen/salien-bot// @@MatchlessHash https://steamcommunity.com/saliengame/play// @@MatchlessHash https://steamcommunity.com/saliengame/play/// @downloadURL https://github.com/meepen/salien-bot/raw/master/index.user.js// @updateURL https://github.com/meepen/salien-bot/raw/master/index.user.js// @grant none// ==/UserScript== (function(context) {"use strict"; // when the error is fixed we should remove the followingCSalien.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 closestclass 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); Изменено 22 июня 2018 пользователем NovicE KLARX, Очередняра, Sword Cutlass и 1 другому понравилось это Цитата Поделиться сообщением Ссылка на сообщение
Kant #2363 21 июня 2018 хакиры а потом акки утекают из-за вас Цитата Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
Bang #2364 21 июня 2018 найс комманда, пишу из стим браузера Цитата Поделиться сообщением Ссылка на сообщение
Kot #2365 21 июня 2018 такая хуйня во всех браузерах и в стиме, найсово Очередняра понравилось это Цитата кiт Поделиться сообщением Ссылка на сообщение
Norman #2366 21 июня 2018 Лучше бы вернули хуйню с наклейками укрошать профиль, нахуй этот кликер нужен Цитата Поделиться сообщением Ссылка на сообщение
Kant #2367 21 июня 2018 ПИЗДА УЖЕ ПОЛ ПЕРВОГО А ЕБУЧАЯ ГЛАВНАЯ ДАЖЕ НЕ ЗАГРУЖАЕТСЯ Цитата Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
Bang #2368 21 июня 2018 стим omegalul л omegalul мка Цитата Поделиться сообщением Ссылка на сообщение
Kant #2369 21 июня 2018 Страница недоступнаСайт store.steampowered.com пока не может обработать этот запрос.HTTP ERROR 500 vpizdu Цитата Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
Scream of the Soul #2370 21 июня 2018 Есть ощущение, что игра зависает где-то в невидимой нам части, и она активна, даже если мы закрываем эту страницу. Цитата Поделиться сообщением Ссылка на сообщение
Zwei #2371 21 июня 2018 если кто-то любит ролевки, но не знает во что сыграть, предлагаю взять на заметку две части дракенсанг, они как раз на распродаже. https://store.steampowered.com/app/12640/Drakensang https://store.steampowered.com/app/33770/Drakensang_The_River_of_Time Lyra.ZloyDis понравилось это Цитата Steam http://steamcommunity.com/id/zweig Поделиться сообщением Ссылка на сообщение
Lann1ster #2372 21 июня 2018 Из рпг думаю Elex прикупить, с 50% пойдет, да и баги должны быть пофикшены. Если не пугает убогая графа-крайне рекомедую это за копейки https://store.steampowered.com/app/230070/The_Age_of_Decadence/ Более вариативного и интересного решения квестов по 4-5 разных путей я вообще нигде не видел. Цитата Поделиться сообщением Ссылка на сообщение
Lyra.ZloyDis #2373 21 июня 2018 (изменено) блять все эти трусики и шапочки для инопланетянина в стим инвентарь падают и засоряют его. У них еще и срока годности нет. Кстати, у кого не работает - вы во внутриигровом браузере пробуете? Есть ощущение, что Вольво тестили на обновленной версии, а старая не поддерживает какие-то функции. Поэтому во внешнем браузере всё ок. Из рпг думаю Elex прикупить, с 50% пойдет, да и баги должны быть пофикшены. Если не пугает убогая графа-крайне рекомедую это за копейки https://store.steampowered.com/app/230070/The_Age_of_Decadence/ Более вариативного и интересного решения квестов по 4-5 разных путей я вообще нигде не видел. и более уебищного интерфейса я тоже не видел )дропнул именно по этой причине.бтв писал в стиме по этой игре отрицательный обзор, теперь его нет, лол О_Ои еще обзоров 5 пропали. Изменено 21 июня 2018 пользователем Lyra.ZloyDis Очередняра понравилось это Цитата Поделиться сообщением Ссылка на сообщение
Kant #2374 21 июня 2018 Цитата Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
RandomRepick #2375 21 июня 2018 там шмотки для рептилоида Цитата Поделиться сообщением Ссылка на сообщение
-AS- #2376 21 июня 2018 мне из ящика анемэ майка упала Цитата Поделиться сообщением Ссылка на сообщение
Lann1ster #2377 21 июня 2018 и более уебищного интерфейса я тоже не видел )дропнул именно по этой причине. Ну визуал это такое. Зато чувак игру делал 10 лет, сценарий и вариативновсть пушка. Тем более за 100 рублей. Цитата Поделиться сообщением Ссылка на сообщение
zikhao #2378 21 июня 2018 Ебаные ускоглазые пидарасы. Дс 3 делюкс едишн значит скидку сделали, дешевле блять сизон паса. А на сам сизон пасс или хотя бы отдельно на длс нет. И хуле мне покупать еще раз игру что бы в длс поиграть. Ой блять евреи ебаные. lunaspirt понравилось это Цитата Поделиться сообщением Ссылка на сообщение
SpeedFun #2379 21 июня 2018 они 3 раза продали первый дарк соулс и 2 раза 2-й, какие скидки на ДЛЦ Цитата ля какая Поделиться сообщением Ссылка на сообщение
Lyra.ZloyDis #2380 21 июня 2018 и более уебищного интерфейса я тоже не видел )дропнул именно по этой причине. Ну визуал это такое. Зато чувак игру делал 10 лет, сценарий и вариативновсть пушка. Тем более за 100 рублей. Не-не, не визуал.А именно юзабилити интерфейса. От стартового меню, экранов с характеристиками, инвентаря и т.д.Всё безумно кривое и непродуманное.В нее банально неудобно играть из-за этого. Цитата Поделиться сообщением Ссылка на сообщение