ensingm2 / SteamMonsterGameScript

A Javascript automator for the 2015 Summer Steam Monster Minigame
78 stars 29 forks source link

Needs updated to new strategies! #177

Open cdmichaelb opened 9 years ago

cdmichaelb commented 9 years ago

I recommend disabling the script if anyone has the power to do so until it's update.

This is imo the best of the scripts, so even despite it not being updated for current strategies there are probably too many people using it.

ensingm2 commented 9 years ago

Can you link the new strategies?

cdmichaelb commented 9 years ago

Sorry a lot of it is rant-y. http://imgur.com/a/99UOw Short version is turn off DPS completely for WH stages. WH stages should hopefully last forever (unlikely to happen). WH Stage every multiple of 100.

I'm trying to get a better summary.

"basically they want to buy 10 wh for every 1 like new, sit on a boss for 30 minutes and zoom to 5m"

cdmichaelb commented 9 years ago

Summary written up by LovesWHs[002] on #YeOldeWH IRC (but taken from #ulletical chat):

Today we switched to a new strategy, it involves using the buff to Wormholes that causes them to skip 10 levels if your current level is a boss level. We've gotten a few rooms up to 300k, and two even past a million just by pausing on boss levels for 20-30 seconds and firing wormholes and cooldown helpers. Now apparently the group will attempt to make it such that there will be NO damage done to a boss by clicks, nukes or anything else for an extended period of time during which wormholes will be used, and Like New's periodically also used to clear the cooldowns. They want this to happen for over 30 minutes. So the scripts need to turn off autoclicking and nuke usage for every 100th level, and preferably a few before it as well to counter timing issues.

sinnoaria commented 9 years ago

Actually, all that the script needs to do if it has bought auto damage is to go to an empty lane right? Pop into the boss room to throw a WH or LN then pop out before the next auto damage hits.

ensingm2 commented 9 years ago

IDK, I think disabling auto-turret upgrades as a whole is a bad idea.

First, that wormhole strat will only ever matter if you're in one of the top rooms, which the vast majority of people aren't.

Second, they're pausing for a full hour, There's no way you can sustain wormhole use for that long, especially if people are also using Decrease Cooldowns. Without any decreased cooldowns, you'd personally need 60 wormholes per wormhole floor to make use of the full hour. You'd need even more if Decrease Cooldowns is also being spammed.

By keeping auto-turret clicks enabled, you'll still take down the boss, just at a massively reduced rate. That'll let you get to the next wormhole level faster and then you can just use any remaining wormholes on THAT level.

The other stuff I'll add in when I get back to my desktop, though.

taklulaklu commented 9 years ago

I think you should only enable WH every 100 and disable auto turret (waisted money into useless DPS). Like New isn't even necessary if 10 WH goes off that's 100 levels you don't need to use all your wormholes on one boss. I bet they will create a time limit for WH to work. and can you disable auto upgrade health and let us upgrade health it doesn't seem to work properly.

ensingm2 commented 9 years ago

auto turret (waisted money into useless DPS).

This simply isn't true.

and can you disable auto upgrade health and let us upgrade health it doesn't seem to work properly.

It upgrades your health if it thinks you're going to die in the next n seconds (n defaults to 30). You can change this under Survival Time in the settings menu.

taklulaklu commented 9 years ago

does the script compare whether it's better to put points into armor piercing or auto-fire based on DPS or does it compare it only with it self. I've done some calculations and auto-fire only becomes useful later due to how cheap it becomes but only after you've fully upgraded all the armor piercing+ to a significant amount. it's better to pump them into click damage first. perhaps I'm wrong but I'm looking at per packet sent and cost of both versus damage output.

ensingm2 commented 9 years ago

@taklulaklu:

When comparing damage upgrades, it compares dps / cost in order to find the most gold efficient item.

Similarly, for health upgrades it does dps / cost

As for your math saying it's only valid later on, please check again and make sure. People have brought this point up before and after rechecking the math by hand, things seem to check out as is.

taklulaklu commented 9 years ago

how about chance to crit? sense autofire can't crit

ensingm2 commented 9 years ago

yeah, crit is part of the dps we calculate. crit is taken into account for click-related upgrades, but not auto-turrets

EDIT: auto-turret dpg click dpg lucky shot dpg elemental dpg

taklulaklu commented 9 years ago

crits do 9-10x more than elemental damage at the same level and after 60% I was getting multiple crits per packet until I reached 100+% which it then reset. If those aren't factored in or tested then it doesn't improve. you made a great script though that's all from me.

ensingm2 commented 9 years ago

crits do 9-10x more than elemental damage at the same level and after 60% I was getting multiple crits per packet until I reached 100+% which it then reset. If those aren't factored in or tested then it doesn't improve.

Can you elaborate? Not sure I understand you here. I'll try to go through though.

crits do 9-10x more than elemental damage at the same level

Yes? not sure what this is implying. We take the differences in multipliers into account.

after 60% I was getting multiple crits per packet

Right, since you're sending 20 clicks per packet, it'd be pretty rare not to get multiple.

until I reached 100+% which it then reset.

Are you saying your crit chance was reset to 0?

taklulaklu commented 9 years ago

yea my crit chance was reset to 0% personally I wasn't expecting that. auto-fire is sent out once per packet so you actually need to multiply the armor piercings damage by 20 to accommodate that which is why I say it's useless because your getting 1/20th of DPS for the same price.

ensingm2 commented 9 years ago

yea my crit chance was reset to 0% personally I wasn't expecting that.

Hmm, ok. I'll add a check to the crit auto-use that makes sure you don't go over 100%.

auto-fire is sent out once per packet so you actually need to multiply the armor piercings damage by 20 to accommodate that which is why I say it's useless because your getting 1/20th of DPS for the same price.

Please look at the code I linked above. we _already_ take that into account. auto-turret dpg

taklulaklu commented 9 years ago

my apologies mine probably hadn't updated in awhile

ensingm2 commented 9 years ago

@taklulaklu That's probably not your issue, as that frequency code has been in place since https://github.com/ensingm2/SteamMonsterGameScript/commit/6ae9427bf4c0d75c0d3d2ff1d97653a53ac177fc, ~4 days ago, when buying auto-turrets was first implemented.

You probably just had a typo in your math somewhere or something.

This Issue has gotten completely off-rails though.

InfamousMyzt commented 9 years ago

Should we branch it out to have a script for the normal auto-click/dps/upgrade and another for current HP wormhole strat with no autoclick? Not sure if they're going to patch wormholes today yet.

ensingm2 commented 9 years ago

@InfamousMyzt: Probably don't need a branch. I'll most likely just add a default-on setting that stops autoclicking on those wormhole rounds. I'll leave the auto-turret upgrades in place, as they really don't hurt the wormhole levels.

InfamousMyzt commented 9 years ago

@ensingm2 Just letting you know, nearing the end of the round now and I still have 363 raining gold, 530 throw money, 78 cripple monster, and 30 wormholes. Current version of the script didn't burn them.

ensingm2 commented 9 years ago

@InfamousMyzt: Yeah, I just found that out in another issue. Side note though, please try to stay on topic within an issue. Open a new issue if you need to, it makes things a lot more organized and prevents people from reporting duplicates of the same issue. Opened https://github.com/ensingm2/SteamMonsterGameScript/issues/180

MayeulC commented 9 years ago

There is the new strategy : http://pastebin.com/gQrT3D71

ensingm2 commented 9 years ago

So... There are a ton of inconsistencies there. Should be interesting to watch this play out.

  1. Continue to upgrade health. Do not invest into damage.

Lol.

The script is designed so that every 2000 bosses, abilities and clicking are disabled, meaning that the bosses take a long time to defeat. On these boss levels, the script will automatically deploy many wormholes while the boss slowly dies. (DO NOT use abilities to kill them faster, it means less wormholes get used as wormholes have an individual cooldown of 1 minute.)

Not what their code does.

I'm anticipating two scenarios here:

I could be missing a part of their code, but it doesn't seem very functional to me...

InfamousMyzt commented 9 years ago

There are still a bunch of people in the room upgrading dps and auto-clicking despite being told not to, I'm assuming they accounted for this?

http://drx.pl/steamgame/ranking_44460.html

ensingm2 commented 9 years ago

People not following their script/strategy is not an argument for using that strategy.

InfamousMyzt commented 9 years ago

Well according to their official guide, they're saying they WANT it to take a long time to kill a boss so everyone can use wormholes and like news to get them all down at once, and once all the wormholes are gone, abandon the room and find a new one with renewed wormholes.

ensingm2 commented 9 years ago

I understand that. That doesn't change the fact that what they're saying their script does and what it actually does are two very different things.

sinnoaria commented 9 years ago

Actually, it could be pretty efficient depending on the situation.

Essentially, here is how an ideal scenario would work.

Each person has at least 2000 or so points on average as a minimum (those in the top rooms likely have more).

Each person then buys 2 of the health boosters, 4 treasures, 1 god mode, 1 resurrect, and around 7 gold rains along with 17+ wormholes and 1 like new.

(Not sure if there is a way to check your player number in the room or lane. It obviously exists, but the question is whether or not you can properly access it).

If there is a way to access it, you keep track of how many like news have been used OR how much time has passed and when it is your turn, you use. Each person will be given around 1~5 seconds to use theirs before it skips them.

If there is no way to access it, a second function could check based on how many people were in that lane when the player entered the lane and use according to that. Same deal.

When you reach a boss, first slot will drop a god mode and resurrect, then everyone will use WH, then first slot will drop a Like New while second slot drops a god mode. Everyone uses WH again and then next slot drops a Like New. Continue until all WH are used. Once the player is out of WH, they drop a health booster.

Like New will only be used if the WH cooldown time has not been passed.

If WH cooldown time plus twenty seconds pass without a crit or WH or Like New, kill boss.

If everyone has at least 17 wormholes on average, that is 10 * 17 * 1500 = 255000 levels right there.

If using a wormhole that way skips to a boss room, no issues. If it takes you to the level after a boss room, then there may be an issue. In which case, there will need to be additional funds for spawner killers and monster killers. Same deal with checking who uses.

Then the same thing as with the WH happens but with gold rain spam plus god mode in rotation. Like New will be used if there are any remaining with continuing the order from before.

At this point, 1 click should get you something absurd like 1 billion gold. (more like several g)

About 70 seconds worth of this should get you something even more absurd. Then you spend it all on damage. All of it. This includes buying damage boosters. Everyone uses the damage booster at the same time and then hits. Once everyone has hit...

Now abandon the room except for one person for the next group to come in. (yes, I just said that). Then the last person leaves.

Essentially, you do a rotation of several rooms and slowly build them up with fresh players. Once the rotation is used up, you make a new rotation. The new rotation group will start with god mode in their rotation.

Each time, you should get more and more points so you can go higher and higher.

One issue is the leaderboards. These rooms would need to be hidden so people without the script would not join.

Now, for the verification phase. When the room is filled, verify by having everyone in slot 3 with no damage done or anything used for a set amount of time. Then after x time has passed, have one person use a treasure chest (whoever was first) and have everyone else follow with a treasure chest. If 1500 treasure chests have been used, then that room is good to go.

Now, the hard part will be the joining system You will need some way to join the right room. This could be some sort of chatroom/irc or w/e. Everyone would have their scripts set to a certain group number and then the room maker would be designated as that group's leader and would be in charge of "calling" what room to join for that group.

ensingm2 commented 9 years ago

If there is a way to access it, you keep track of how many like news have been used OR how much time has passed and when it is your turn, you use. Each person will be given around 1~5 seconds to use theirs before it skips them.

If there is no way to access it, a second function could check based on how many people were in that lane when the player entered the lane and use according to that. Same deal.

You're assuming there's a player list somewhere with enough information to identify yourself and choose a 'slot', I'm not sure there is one, I've looked and can't seem to find one.

Now abandon the room except for one person for the next group to come in. (yes, I just said that). Then the last person leaves.

Essentially, you do a rotation of several rooms and slowly build them up with fresh players. Once the rotation is used up, you make a new rotation. The new rotation group will start with god mode in their rotation.

Doesn't work due to the "can't join a room 10 levels above your max' thing, assuming you're trying to improve your levels.

InfamousMyzt commented 9 years ago

Each time you jump to a different team, your top level will be higher so you can buy more wormholes, and each time they remake the main room, there are more active people with the correct script in it. The current wchill script is horrid if you're not in one of the main rooms though.

ensingm2 commented 9 years ago

Right, your wormhole team will be at a large level, but your 'team 2' won't be able to join in, because likely the wormhole team has surpassed any level gotten to manually (which team 2 will have only done at this point)

You could get around this kinda by making two equal wormhole teams and 'swapping' rooms, but not with an entirely separate team.

sinnoaria commented 9 years ago

The idea is to have two or more roughly equal teams.

There is a list, but if it can't be accessed, then there is the other thing I mentioned about player count at the time of entering the lane (or room)

By "fresh" i mean who haven't been in that room yet, not newbies.

InfamousMyzt commented 9 years ago

Since you can't rejoin rooms you've already left, it's working more like once a team hits it's "peak" from wormholes, everyone drops to help other rooms that are lower, or start a new room with only people paying attention with their scripts updated. Basically leaving all the afkers behind with the fallen worlds.

ensingm2 commented 9 years ago

@sinnoaria You're not understanding me. Say both team 1 and team 2 have a max level of 150k or whatever. Assuming you want to actually make progress, team 1 (wormhole team) breaks their new record by at least 10 levels. Now your proposed team 2 ('fresh' team) is not high enough level to enter the game.

tl;dr: you could only truly progress 10 levels per 'playerbase swap', assuming prior group max levels are about even.

@InfamousMyzt I understand that method, that works. I'm talking about @sinnoaria's proposed method of having a secondary group come in post-wormhole jump and then level pure damage.

sinnoaria commented 9 years ago

I don't think you are understanding me either. BOTH teams are wormhole teams.

So we start off with say 5 teams.

First wave, get to 200k each. Swap rooms in rotation.

Second wave, get to say 500k each using existing rooms. Swap rooms in rotation.

Third wave, get to say 1250k each using existing rooms. Swap rooms in rotation.

Fourth wave, get to say 3m each using existing rooms. Swap rooms in rotation.

Fifth wave, get to say 7m each using existing rooms. Abandon all rooms because usedRooms == totalTeams.

Make a new set of rooms and repeat the previous actions.

ensingm2 commented 9 years ago

In that case, you need the jump teams to land within 10 rooms of one another. That's not really feasible with 1500 people spamming as many wormholes as they can.

Even trying to limit your wormhole use based on a predetermined "landing spot", due to the delayed server responses it's not going to be reliable enough to land under 10 levels apart, other than by luck.

sinnoaria commented 9 years ago

You would limit it beforehand, not during. Each group would be limited by the available points of the lowest group. As you progress, those points should even out to be barely noticeable and then you can just reserve say 1000 points. You aren't spamming as many wormholes as you can. You are spamming to a certain number. If absolutely necessary, you could do a first wormhole set to get everyone to a certain "minimum points" then run a new set of rooms based on that minimum point.

ensingm2 commented 9 years ago

Again,

Even trying to limit your wormhole use based on a predetermined "landing spot", due to the delayed server responses it's not going to be reliable enough to land under 10 levels apart, other than by luck.

Basically, say there's a 1s window between updates to the client. You're not at your predetermined warp 'stop point' yet, but you're close. You have 2 options:

It's kind of a guessing game, and teams will likely land much further apart from one another than 10 levels.

tl;dr: You don't have perfect information, so you have to guess. Could you land reliably in a 1k level range? Probably. 100? maybe. 50? hard but possible. 10? I really doubt it.

sinnoaria commented 9 years ago

Wouldn't be luck.

If 1500 scripts use 10 wormholes each at level 10, you are going to end up in the same landing spot as long as you don't have any auto damage and everything is controlled beforehand. (for example, if a room is lower than the rest, the others could wait for it to catch up).

Luck has nothing to do with it. It would be all planning and scripting. And if the numbers are off for some odd reason, that is where the queue order comes in.

Another thing you could do is also have say 100 of the hp up item.

Use that to determine the "queue" based on what order people use that item.

I've done something similar before in a different game. Though it was done differently. Essentially, you had a script that goes into a database and everyone pushes an entry. That entry could be your queue number in this case. You also push up information about say what troops you are sending (how many WHs you would use in this case). Once everyone finishes, everyone is assigned a target and you push up the time it will take, and then it determines a UTC schedule for everyone based on the time it will take. When the designated times hit, the script the sends the troops for that person based on their entry information. And so you end up with a few hundred people hitting a set of targets nearly simultaneously. (In this case, it would be factoring in where to land)

That is also why you have the control setup and why I mentioned that it would be an ideal situation and that there would have to be a verification beforehand and why the rooms would have to be hidden rooms. And if everyone is using the same script, then there would be total knowledge and control.

Essentially, a more realistic approach is that everything is completely automated with the script. Completely. From joining rooms to deciding how many wormholes each player uses to what the next set of rooms will be.

Since how many points you have can be determined, you would need the script to share information with a second script that works with a database. The database would essentially have a list of 'names' (hidden IDs) that are given out to each script user automatically. Then, when someone breaks a rule, the script could automatically push up information that the person (using their public name) broke a rule and if there is enough agreement, the rulebreaker could be removed from the group, but with a log (so that a leader would have to re-add them if there is solid proof that they didn't do it and punish the falsified reports).

Essentially, you'd have a completely automated system that uses a set of databases. You aren't really controlling every player across multiple rooms. You are controlling their computer's actions via a script that every player would have.

Each group would have their individual database, then there would be a shared database. Individual databases would manage the groups themselves, shared database is to keep the groups working together.

As I said, similar things have been done before. Just maybe not with around what is it, 10 rooms so 15000 people?

And as you just said, you can't join a room that is too high above your max level. So as you start to weed out the trolls, you will eventually get to the point that the only way for the trolls to keep up is by doing exactly what they are trying to stop.

ensingm2 commented 9 years ago

Again, you're assuming total knowledge and control over every player in the room across multiple rooms. That's just not going to happen.

EDIT: Oh hi there

ensingm2 commented 9 years ago

Another thing you could do is also have say 100 of the hp up item.

Use that to determine the "queue" based on what order people use that item.

Syncing a 1500 person room through data in the timestamp that you used an upgrade seems a bit complex in a script for a minigame that ends in a few days, and would be a lot of work to ONLY support hidden rooms with 100% script participation and zero trolls (I'd venture to guess this would happen exactly 0 times). Even then, assuming you have perfect coordination and participation, you run into other issues. For example, you can't rely 100% on the ability list being perfectly accurate and order consistent for every player. :\

If you want to implement that just so it could be used for a day or two, be my guest, I'd gladly merge your pull in. It just doesn't seem remotely worth it to me.

And as you just said, you can't join a room that is too high above your max level. So as you start to weed out the trolls, you will eventually get to the point that the only way for the trolls to keep up is by doing exactly what they are trying to stop.

That's not how that works though. trolls have been sitting in the top rooms hindering progress, but they still achieve the 'max level' that everyone else does. It doesn't make them go away. Even if it did, It takes 1 or 2 to hold back the other 14998.

taklulaklu commented 9 years ago

I got to say with being in room 45333 it's quite interesting to see it work here are some pics of the 0% that had a boss last for 3mins http://gyazo.com/f415828ab3c6c1ad231d114efe0a3067 http://gyazo.com/1eac23bdda658de43db4b22bfacb561a

speaking of which there has been times where the auto abilities activated at 80+ disrupted getting to a 100 level due to damage role over maybe you can have a restriction to use them from 01-60

ensingm2 commented 9 years ago

@taklulaklu

I got to say with being in room 45333 it's quite interesting to see it work here are some pics of the 0% that had a boss last for 3mins

I'm not entirely sure what you're saying here. I'm not arguing the efficiency of the wormhole strat as a whole. I'm simply stating that @sinnoaria's proposed additions are not feasable.

Alternatively, if you're referencing my criticisms earlier on in this thread, from what I can tell they have since fixed every one of them, so I'm not sure what you're implying.

Ihysoal commented 9 years ago

from what I can tell they have since fixed every one of them

Actually wchill is still limiting DPS for no reason, but at this point no one gives a rats ass to fix it because people and non-script users will level DPS anyway to get us through the normal leve.s

(Discussion was an interesting read. You were right on most accounts. Also I really appreciate all the massive work completely done by yourself that some of the contributers to wchill's fork (including me) could probably not have done in the same amount of time.)