Page 3 of 7 FirstFirst 1 2 3 4 5 ... LastLast
Results 21 to 30 of 61

Thread: Spam attack and save servers

  1. #21
    Senior Member Theraze's Avatar
    Join Date
    Mar 2010
    Posts
    8,741

    Default

    Might be ceil/floor rounding fun or something similar. But yeah, should be able to remove those checks now, simplify things a bit.

    Only skills I'm having issues with on my testing with the SpamAttack is the turtle combos... If it's going to do 3 headbutts and a toss, it's easier/safer to just do a single full combo and finish it like that. Among other things, because combining shieldbutt into the combo means it's not going to miss, which is good for the top tier bees when you're a muscle class. The problem is that the combos aren't directly skills, per se... Need to see if I can figure out a good way to parse the entire skill-options list in SpamAttack directly. Might be able to just mangle the get_action slightly... Hmm...

  2. #22
    Senior Member Winterbay's Avatar
    Join Date
    Feb 2010
    Posts
    5,033

    Default

    They aren't? They are listed in batfactors with skill-IDs at least...
    Code:
    skill	2003	Headbutt	{0.1,0.15,0.2}*helmetpower	physical	regular
    skill	2005	Shieldbutt	{0.1,0.15,0.2}*shieldpower	physical	att -5, regular
    skill	2015	Kneebutt	{0.1,0.15,0.2}*pantspower	physical	stun 0.45, regular
    skill	2103	Head + Knee Combo	{0.1,0.15,0.2}*(helmetpower+pantspower)	physical	stun 0.45, regular
    skill	2105	Head + Shield Combo	{0.1,0.15,0.2}*(helmetpower+shieldpower)	physical	att -5, regular
    skill	2106	Knee + Shield Combo	{0.1,0.15,0.2}*(pantspower+shieldpower)	physical	stun 0.45, att -5, regular
    skill	2107	Head + Knee + Shield Combo	0.15*(helmetpower+pantspower+shieldpower)	physical	stun 0.45, att -5, regular
    My scripts:
    Best sushi for Profit
    Winterbay's Helpful Automatic Monsterbasher (WHAM)

    Scripts maintained by me:
    Autobasement
    Smashlib

    A small programmer joke:
    Wife: Honey, please go to the market and buy 1 bottle of milk. If they have eggs, bring 6.
    The man came back with 6 bottles of milk.
    Wife: Why did you buy 6 bottles of milk.
    Man: Because they had eggs...

    The 6 Stages of Debugging: 1 )That can't happen. 2) That shouldn't happen. 3) Hmmm, weird. 4) Why does that happen? 5) Oh, I see. 6 )How did that ever work?

    All programs can be optimized, and all programs have bugs; therefore all programs can be optimized to one line that doesn’t work. /Bob Fitch, Blizzard

  3. #23
    Senior Member Theraze's Avatar
    Join Date
    Mar 2010
    Posts
    8,741

    Default

    Well, they weren't being picked. Possibly because it wasn't considering hit chance, but... eh.

    I've tweaked how my system works now though... it only goes through your actual options instead of parsing all possible skills. Most awesome recent fight, against a Queen Bee.
    SpamAttack: We are going to 5-shot with Offensive Joke, Lunging Thrust-Smack, Lunging Thrust-Smack, Lunging Thrust-Smack and Clobber.
    Clobber wasn't actually needed because the third LTS killed it, but... sweet success. I'm using the following to parse combat skills:
    Code:
     foreach i,opt in opts
      if (contains_text(opt.id,"skill "))
       allmyskills[count(allmyskills)] = to_skill(to_int(excise(opt.id,"skill ","")));
    Reuploading. This is a modified version of the one you posted ~9 hours ago that should be more class-agnostic.
    Attached Files

  4. #24
    Senior Member Winterbay's Avatar
    Join Date
    Feb 2010
    Posts
    5,033

    Default

    Man that generated a lot of options... Even with my limited skillset I got 4723 possible combinations
    In my latest battle against a bat it decided that number 4721 was the correct one (3 salsaballs) which I would agree was the correct choice.
    Seems like a good change which I'll integrate.
    My scripts:
    Best sushi for Profit
    Winterbay's Helpful Automatic Monsterbasher (WHAM)

    Scripts maintained by me:
    Autobasement
    Smashlib

    A small programmer joke:
    Wife: Honey, please go to the market and buy 1 bottle of milk. If they have eggs, bring 6.
    The man came back with 6 bottles of milk.
    Wife: Why did you buy 6 bottles of milk.
    Man: Because they had eggs...

    The 6 Stages of Debugging: 1 )That can't happen. 2) That shouldn't happen. 3) Hmmm, weird. 4) Why does that happen? 5) Oh, I see. 6 )How did that ever work?

    All programs can be optimized, and all programs have bugs; therefore all programs can be optimized to one line that doesn’t work. /Bob Fitch, Blizzard

  5. #25
    Developer
    Join Date
    Apr 2006
    Posts
    888

    Default

    I've been having pretty good luck with this, but I just noticed it was causing me to get beaten up in the haunted bedroom during a pasta bm run

    Code:
    [1098] Haunted Bedroom
    Encounter: One Nightstand
    choice.php?pwd&whichchoice=83&option=2
    Encounter: animated nightstand
    Round 0: Epicgamer wins initiative!
    > You will die in 2 rounds.
    > Your attack will kill the monster in 12 rounds.
     > Running out of adventures to use your summons.  Summoning...
    Round 1: Epicgamer executes a macro!
    Round 1: Epicgamer casts ENTANGLING NOODLES!
    Round 2: Epicgamer summons Ponpan the Spice Ghost!
    Round 3: You conjure up a swirling cloud of spicy dried couscous, and there is a crackle of psychokinetic energy as Ponpan possesses it.
    Round 3: Ponpan shakes some of the spice into your opponent's eyes as he gets accustomed to his new body.
    Round 3: animated nightstand (mahogany) drops 5 attack power.
    Round 3: animated nightstand (mahogany) drops 5 defense.
    Round 3: Ponpan engulfs your opponent's head, raising a choking cloud of spice.
    Round 3: animated nightstand (mahogany) drops 2 attack power.
    Round 3: animated nightstand (mahogany) drops 4 defense.
     > SpamAttack: Monster HP is 170.0.
     > SpamAttack: We are going to 3-shot with Weapon of the Pastalord, Cannelloni Cannon and Cannelloni Cannon.
    Round 3: Epicgamer executes a macro!
    Round 3: Epicgamer casts WEAPON OF THE PASTALORD!
    Round 4: animated nightstand (mahogany) takes 103 damage.
    Round 4: Ponpan raises his power bands and fires a cloud of confusing spice at your opponent.
    Round 4: animated nightstand (mahogany) drops 7 attack power.
    Round 4: animated nightstand (mahogany) drops 4 defense.
    Round 4: Epicgamer casts CANNELLONI CANNON!
    Round 5: animated nightstand (mahogany) takes 27 damage.
    Round 5: Ponpan engulfs your opponent's head, raising a choking cloud of spice.
    Round 5: animated nightstand (mahogany) drops 8 attack power.
    Round 5: animated nightstand (mahogany) drops 6 defense.
    You lose 57 hit points
    Round 5: Epicgamer casts CANNELLONI CANNON!
    Round 6: animated nightstand (mahogany) takes 32 damage.
    Round 6: Ponpan asks your opponent if it is getting enough oxygen, which is pretty much guaranteed to be "no," because of the choking cloud of spice around its head.
    Round 6: animated nightstand (mahogany) drops 7 attack power.
    Round 6: animated nightstand (mahogany) drops 7 defense.
    You lose 50 hit points
     > You've had the crap beaten out of you... attempting to find some more crap.
    In this case two weapons and a cannon would have safely killed the monster, this happened a few times. I'm using the version Theraze just attached, my ccs is just smartstasis then spamattack.

    Edit also this:
    Code:
    [1159] Hidden City (Square 9)
    Encounter: ancient protector spirit
    Round 0: Epicgamer wins initiative!
    > You will die in 3 rounds.
    > Your attack will kill the monster in 85 rounds.
    Round 1: Epicgamer executes a macro!
    Round 1: Epicgamer casts ENTANGLING NOODLES!
     > SpamAttack: Monster HP is 85.0.
     > SpamAttack: We are going to 2-shot with Weapon of the Pastalord and Ravioli Shurikens.
    Round 2: Epicgamer executes a macro!
    Round 2: Epicgamer casts WEAPON OF THE PASTALORD!
    Round 3: ancient protector spirit takes 1 damage.
    Round 3: Epicgamer casts RAVIOLI SHURIKENS!
    Round 4: ancient protector spirit takes 14 damage.
     > SpamAttack: We are going to 1-shot with Weapon of the Pastalord.
    Round 4: Epicgamer executes a macro!
    Round 4: Epicgamer casts WEAPON OF THE PASTALORD!
    Round 5: ancient protector spirit takes 1 damage.
     > SpamAttack: We are going to 1-shot with Weapon of the Pastalord.
    Round 5: Epicgamer executes a macro!
    Round 5: Epicgamer casts WEAPON OF THE PASTALORD!
    Round 6: ancient protector spirit takes 1 damage.
    You lose 41 hit points
    I was probably going to lose this fight regardless, but it shouldn't have considered weapon against a physically resistant monster, that might be an issue with batbrain.
    Last edited by Rinn; 06-12-2011 at 03:12 AM.
    Automatically download the newest daily build - Version 1.8
    Better Basement Automation
    - Version 1.??? Someone else is maintaining this
    Get an effect from a buffbot
    - Version 1.4

  6. #26
    Senior Member Theraze's Avatar
    Join Date
    Mar 2010
    Posts
    8,741

    Default

    Probably was BatBrain thinking it would work... mine just went through the Hidden City successfully yesterday. In my current-tweak copy, I'm trying to see if there's a way to make it able to schedule out more than 5 steps easily/programically instead of manually recursing, as well as having it only schedule as many steps out as are actually safe... so if it thinks you'll die in 3 rounds, it needs to 2 shot. If it thinks you'll die and there's nothing safe that will likely succeed, abort and let you either run or try to out-think BatBrain.

  7. #27
    Senior Member Winterbay's Avatar
    Join Date
    Feb 2010
    Posts
    5,033

    Default

    The enqueue feature in batbrain should allow you to test for if you die or not, but I've not managed to perfect a system where it reverts the queue yet even though I have some small ideas on how to do it.

    Also, the problem here is trying to be cost efficient versus spamming high level attacks to kill something, the earlier version I had was likely to go Weapon of the Pastalord as soon as you couldn't kill it with 2 Salsaballs if you had those two as your only options even though a third Salsaball would kill it without any problems. I guess a setting for "overkill" could be useful where if you set it to say 10 it would try to go for monster_hp+10 rather than monster_hp and thus possibly adding one more highlevel skill.

    Protector spirit could be a problem with batbrain somehow thinking you got falvour of magic on and thus pastalord would work.

    Edit: This version should not do things that will kill you. I will not take into account that you might be using noodles yet, since without my modification to SmartStasis that I run myself casting of it beforehand is not really detectable in an easy way (the support for that edit si still in there, but shouldn't affect anything for those that don't run my version anyway).
    Last edited by Winterbay; 06-14-2011 at 12:55 PM. Reason: Removed attachment. A new one can be foundlater in the thread.
    My scripts:
    Best sushi for Profit
    Winterbay's Helpful Automatic Monsterbasher (WHAM)

    Scripts maintained by me:
    Autobasement
    Smashlib

    A small programmer joke:
    Wife: Honey, please go to the market and buy 1 bottle of milk. If they have eggs, bring 6.
    The man came back with 6 bottles of milk.
    Wife: Why did you buy 6 bottles of milk.
    Man: Because they had eggs...

    The 6 Stages of Debugging: 1 )That can't happen. 2) That shouldn't happen. 3) Hmmm, weird. 4) Why does that happen? 5) Oh, I see. 6 )How did that ever work?

    All programs can be optimized, and all programs have bugs; therefore all programs can be optimized to one line that doesn’t work. /Bob Fitch, Blizzard

  8. #28
    Senior Member Theraze's Avatar
    Join Date
    Mar 2010
    Posts
    8,741

    Default

    So, here's my current version. It also has death-round detection, though it uses BatBrain's die_rounds instead of trying to guess itself. This does have the benefit of actually working based on stuns such as having Entangling Noodles pre-cast by SmartStasis.

    Another tweak... variable max-rounds, depending on how long you'd like it to calculate it all out. Adds a zlib variable named spamattack_rounds that defaults to 5. This will automatically increment if it can't find anything that will kill the monster in your max rounds, but you won't die in another round... so if you'll die in 9 rounds, and you have your spamattack_rounds set to 5, it might increase it up to 9, but not 10. Note that if your spamattack_rounds gets set too high, you're looking at a LONG calculation time, since the amount of options increases exponentially, but this should provide for easy safe-automation.

    This is what it does if you can't safely kill a monster:
    SpamAttack: Monster HP is 150.0.
    Macro called on empty queue!
    SpamAttack: We would die in 2 and have 0 0 28 374 1460 0 0 0 0 0 as our options
    You're on your own, partner.
    So for 1 and 2 shots, I have no options. There are 28 3-shot options, 374 4-shot, and 1460 5-shot options. As my calculation is still set to 5 max-rounds, 6-10 have no options.

    The main flaw it currently has is not considering hit-chance or adding in new stuns very well. Otherwise, it's been working fairly well for me.
    Attached Files

  9. #29
    Developer
    Join Date
    Apr 2006
    Posts
    888

    Default

    I think one of the problems might be related to batbrain not using a range for the damage a spell is going to do. In cases where it's very likely you're going to die if you don't cast spells in the right order you'd probably want to assume the worse case damage instead of the average damage.
    Automatically download the newest daily build - Version 1.8
    Better Basement Automation
    - Version 1.??? Someone else is maintaining this
    Get an effect from a buffbot
    - Version 1.4

  10. #30
    Senior Member Theraze's Avatar
    Join Date
    Mar 2010
    Posts
    8,741

    Default

    Actually, I've survived usually longer than die_rounds() has guessed. Especially since I'm mostly using cuttlefish this ascension series. But it's when I'm fighting the upper tier bees that it gets to be a problem... I miss them enough that I lose a fair amount of battles.

Similar Threads

  1. Replies: 0
    Last Post: 01-30-2015, 09:11 PM
  2. Replies: 0
    Last Post: 01-29-2011, 05:20 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •