forum

Dear osu! Diary, today i [....]

posted
Total Posts
1,325
show more
ColdTooth
Dear osu! diary

Today, I finally got back into playing and made my first HD S in a while.



I still suck
ZenithPhantasm
Yuudachi-kun
Dear osu diary

Yuudachi-kun
Dear osu diary,

ColdTooth

ZenithPhantasm wrote:

Dear osu! diary

This specific person is commenting on how I play and what skin I use.
Treekii
Dear osu! diary,

Today I got 2 new top plays, they're both chokes
B1rd
Dear osu! diary,


also, full screen jumps ftw. love throwing my wrist across the tablet.
Yuudachi-kun
Dear osu diary, it took 5.5 million hits to get to the 1k bracket. Now I must try for triple digits.

[ K r i s ]
Dear osu! diary~

Today I slept for 5 hours. Then I skipped breakfast. So Im pretty hungry.
a1l2d3r4e5d6
Dear osu! Diary,

Today, I played this map in auto using that Konata rave skin with the insane hit lighting.
I saw the osu! client drop to 4fps and my computer, with it's one cooling fan, was screaming for mercy. I just watched as the map nearly fried my laptop.
Trash Boat
Dear osu! Dairy: Steam shopping spree!
Friendan
Dear osu! diary,
I'm botting on the Summer Game for free cards
bot
// ==UserScript==
// @name Monster Minigame Auto-script
// @namespace https://github.com/wchill/steamSummerMinigame
// @description A script that runs the Steam Monster Minigame for you. Modified from mouseas's original version to include autoclick.
// @version 1.011
// @match http://steamcommunity.com/minigame/towerattack*
// @updateURL https://raw.githubusercontent.com/wchil ... utoPlay.js
// @downloadURL https://raw.githubusercontent.com/wchil ... utoPlay.js
// ==/UserScript==

// IMPORTANT: Update the @version property above to a higher number such as 1.1 and 1.2 when you update the script! Otherwise, Tamper / Greasemonkey users will not update automatically.

var clickRate = 20; // change to number of desired clicks per second

var isAlreadyRunning = false;

var disableParticleEffects = true; // Set to false to keep particle effects

// disable particle effects - this drastically reduces the game's memory leak
if (window.g_Minigame !== undefined && disableParticleEffects) {
window.g_Minigame.CurrentScene().DoClickEffect = function() {};
window.g_Minigame.CurrentScene().SpawnEmitter = function(emitter) {
emitter.emit = false;
return emitter;
}
}

if (thingTimer !== undefined) {
window.clearTimeout(thingTimer);
}

function doTheThing() {
if (isAlreadyRunning || g_Minigame === undefined || !g_Minigame.CurrentScene().m_bRunning || !g_Minigame.CurrentScene().m_rgPlayerTechTree) {
return;
}
isAlreadyRunning = true;

goToLaneWithBestTarget();

useGoodLuckCharmIfRelevant();
useMedicsIfRelevant();

// TODO use abilities if available and a suitable target exists
// - Tactical Nuke on a Spawner if below 50% and above 25% of its health
// - Cluster Bomb and Napalm if the current lane has a spawner and 2+ creeps
// - Metal Detector if a boss, miniboss, or spawner death is imminent (predicted in > 2 and < 7 seconds)
// - Morale Booster if available and lane has > 2 live enemies
// - Decrease Cooldowns if another player used a long-cooldown ability < 10 seconds ago (any ability but Medics or a consumable)

// TODO purchase abilities and upgrades intelligently

attemptRespawn();



isAlreadyRunning = false;
}

function goToLaneWithBestTarget() {
// We can overlook spawners if all spawners are 40% hp or higher and a creep is under 10% hp
var spawnerOKThreshold = 0.4;
var creepSnagThreshold = 0.1;

var targetFound = false;
var lowHP = 0;
var lowLane = 0;
var lowTarget = 0;
var lowPercentageHP = 0;

var ENEMY_TYPE = {
"SPAWNER":0,
"CREEP":1,
"BOSS":2,
"MINIBOSS":3,
"TREASURE":4
}


// determine which lane and enemy is the optimal target
var enemyTypePriority = [
ENEMY_TYPE.TREASURE,
ENEMY_TYPE.BOSS,
ENEMY_TYPE.MINIBOSS,
ENEMY_TYPE.SPAWNER,
ENEMY_TYPE.CREEP
];

var skippingSpawner = false;
var skippedSpawnerLane = 0;
var skippedSpawnerTarget = 0;

for (var k = 0; !targetFound && k < enemyTypePriority.length; k++) {
var enemies = [];

// gather all the enemies of the specified type.
for (var i = 0; i < 3; i++) {
for (var j = 0; j < 4; j++) {
var enemy = g_Minigame.CurrentScene().GetEnemy(i, j);
if (enemy && enemy.m_data.type == enemyTypePriority[k]) {
enemies[enemies.length] = enemy;
}
}
}

// target the enemy of the specified type with the lowest hp
for (var i = 0; i < enemies.length; i++) {
if (enemies[i] && !enemies[i].m_bIsDestroyed) {
if(lowHP < 1 || enemies[i].m_flDisplayedHP < lowHP) {
targetFound = true;
lowHP = enemies[i].m_flDisplayedHP;
lowLane = enemies[i].m_nLane;
lowTarget = enemies[i].m_nID;
}
var percentageHP = enemies[i].m_flDisplayedHP / enemies[i].m_data.max_hp;
if(lowPercentageHP == 0 || percentageHP < lowPercentageHP) {
lowPercentageHP = percentageHP;
}
}
}

// If we just finished looking at spawners,
// AND none of them were below our threshold,
// remember them and look for low creeps (so don't quit now)
if (enemyTypePriority[k] == ENEMY_TYPE.SPAWNER && lowPercentageHP > spawnerOKThreshold) {
skippedSpawnerLane = lowLane;
skippedSpawnerTarget = lowTarget;
skippingSpawner = true;
targetFound = false;
}

// If we skipped a spawner and just finished looking at creeps,
// AND the lowest was above our snag threshold,
// just go back to the spawner!
if (skippingSpawner && enemyTypePriority[k] == ENEMY_TYPE.CREEP && lowPercentageHP > creepSnagThreshold ) {
lowLane = skippedSpawnerLane;
lowTarget = skippedSpawnerTarget;
}
}


// go to the chosen lane
if (targetFound) {
if (g_Minigame.CurrentScene().m_nExpectedLane != lowLane) {
//console.log('switching langes');
g_Minigame.CurrentScene().TryChangeLane(lowLane);
}

// target the chosen enemy
if (g_Minigame.CurrentScene().m_nTarget != lowTarget) {
//console.log('switching targets');
g_Minigame.CurrentScene().TryChangeTarget(lowTarget);
}
}
}

function useMedicsIfRelevant() {
var myMaxHealth = g_Minigame.CurrentScene().m_rgPlayerTechTree.max_hp;

// check if health is below 50%
var hpPercent = g_Minigame.CurrentScene().m_rgPlayerData.hp / myMaxHealth;
if (hpPercent > 0.5 || g_Minigame.CurrentScene().m_rgPlayerData.hp < 1) {
return; // no need to heal - HP is above 50% or already dead
}

// check if Medics is purchased and cooled down
if (hasPurchasedAbility(7)) {

if (isAbilityCoolingDown(7)) {
return;
}

// Medics is purchased, cooled down, and needed. Trigger it.
console.log('Medics is purchased, cooled down, and needed. Trigger it.');
triggerAbility(7);
}
}

// Use Good Luck Charm if doable
function useGoodLuckCharmIfRelevant() {
// check if Good Luck Charms is purchased and cooled down
if (hasPurchasedAbility(6)) {
if (isAbilityCoolingDown(6)) {
return;
}

// Good Luck Charms is purchased, cooled down, and needed. Trigger it.
console.log('Good Luck Charms is purchased, cooled down, and needed. Trigger it.');
triggerAbility(6);
}
}

//If player is dead, call respawn method
function attemptRespawn() {
if ((g_Minigame.CurrentScene().m_bIsDead) &&
((g_Minigame.CurrentScene().m_rgPlayerData.time_died * 1000) + 5000) < (new Date().getTime())) {
RespawnPlayer();
}
}

function isAbilityCoolingDown(abilityId) {
return g_Minigame.CurrentScene().GetCooldownForAbility(abilityId) > 0;
}

function hasPurchasedAbility(abilityId) {
// each bit in unlocked_abilities_bitfield corresponds to an ability.
// the above condition checks if the ability's bit is set or cleared. I.e. it checks if
// the player has purchased the specified ability.
return (1 << abilityId) & g_Minigame.CurrentScene().m_rgPlayerTechTree.unlocked_abilities_bitfield;
}

function triggerAbility(abilityId) {
var elem = document.getElementById('ability_' + abilityId);
if (elem && elem.childElements() && elem.childElements().length >= 1) {
g_Minigame.CurrentScene().TryAbility(document.getElementById('ability_' + abilityId).childElements()[0]);
}
}

var thingTimer = window.setInterval(doTheThing, 1000);
function clickTheThing() {
g_Minigame.m_CurrentScene.DoClick(
{
data: {
getLocalPosition: function() {
var enemy = g_Minigame.m_CurrentScene.GetEnemy(
g_Minigame.m_CurrentScene.m_rgPlayerData.current_lane,
g_Minigame.m_CurrentScene.m_rgPlayerData.target),
laneOffset = enemy.m_nLane * 440;

return {
x: enemy.m_Sprite.position.x - laneOffset,
y: enemy.m_Sprite.position.y - 52
}
}
}
}
);
}

var clickTimer = window.setInterval(clickTheThing, 1000/clickRate);
Yuudachi-kun
Dear osu diary, I gained another 90 ranks today.
ZenithPhantasm
Pituophis
deaar osu! diary today i doscovered alcohol maakes you stream bettrd.

Dear osu! diary,

today I realized I should never post things on the internet under the influence of alcohol.

and I got my highest accuracy on a map that has 20 plays while buzzed lol
EshkushMeh xD
Dear osu! diary,

I didn't open osu! today, too. I just downloaded a bunch of beatmaps, again.
EshkushMeh xD
Dear osu! diary,

I didn't open osu! today, too. I just downloaded a bunch of beatmaps, again.
-SayaKai

EshkushMeh xD wrote:

Dear osu! diary,

I didn't open osu! today, too. I just downloaded a bunch of beatmaps, again.

EshkushMeh xD wrote:

Dear osu! diary,

I didn't open osu! today, too. I just downloaded a bunch of beatmaps, again.
No doublepost.

OT:
Dear osu!diary,
why I can't fc EXEC_COSMOFLIPS/. [Aoto] in ctb
SaigonAlice
dear osu! diary
Kheldraggar seems almost offended that GASP I don't like playing an unintelligent beatclicker game but I enjoy the forum its based on which has a novel design and people I like interacting with.
Yuudachi-kun
dear osu diary, he actually posted about it here
In_Disarray
Dear osu diary, today... was a good day...

E m i
i can't aim d.m.c xd dear osu! diary
In_Disarray

[ Momiji ] wrote:

i can't aim d.m.c xd dear osu! diary
Dear osu! diary, today I asked Momiji for more maps he can't aim like d.m.c in the hope of pp farming
Yuudachi-kun
dear osu diary, I almost fc'd dancing kong fu dt and got 218pp for 5 misses.
lecheeky_old
Srsly, when will I get a supp tag? ; ~ ;
Deva
Dear osu, i didnt legit play you for almost a week, pls forgive
lecheeky_old

HK_ wrote:

Dear osu, i didnt legit play you for almost a week, pls forgive

LOL, I think that's fine.
Deva
Not fine if your ultimate goal is becoming #1
lecheeky_old

HK_ wrote:

Not fine if your ultimate goal is becoming #1

Well.. Yea. But for me, I just want to catch up, that's all. Haha :3
Yuudachi-kun
Dear osu diary, I haven't missed a day of playing osu in about 180 days.
E m i

In_Disarray wrote:

[ Momiji ] wrote:

i can't aim d.m.c xd dear osu! diary
Dear osu! diary, today I asked Momiji for more maps he can't aim like d.m.c in the hope of pp farming
dear osu! diary, rog-unlimitation
ZenithPhantasm
dear osu! diary
https://osu.ppy.sh/s/44967
Enjoy
Yuudachi-kun
Dear osu diary, today I got 98% on one song I had choked before at 97% and was 100 away from the end then I missed. Rip 230 -> 250+ pp.
The Gambler
Dear osu! Diary,

I believe I just started my OT career.
lecheeky_old
Dear diary, busy days are on its way...!
Yuudachi-kun
Today I got my first ar 10.3 fc for 221pp that gave me 5 ranks.
Pituophis
Dear osu! Diary,

DT is retarded. But it gives me pp so I'll keep using it.
Yuudachi-kun

Pituophis wrote:

Dear osu! Diary,

DT is retarded. But it gives me pp so I'll keep using it.
Dear osu diary, this guy does not need DT yet.
-SayaKai
Dear osu!diary
when I passed exec_cosmoflips/. but -1 RANK AAAAAAAAAAAAAAAAAAAAAA
DIOkuya
Dear Osu! Diary,

Today I ate 2 and soon,possibly 3-4 donuts.

Love, everyone's least favorite weeaboo.
show more
Please sign in to reply.

New reply