Page 93 of 193 FirstFirst ... 43 83 91 92 93 94 95 103 143 ... LastLast
Results 921 to 930 of 1924

Thread: Winterbay's Helpful Automatic Monsterbasher (WHAM)

  1. #921
    Senior Member Crowther's Avatar
    Join Date
    Nov 2006
    Posts
    1,324

    Default

    You're right. I focus on stasis because historically it has been the source of my problems. As for heuristics, how about assigning a meat cost when moving to the next round? that would ratchet up the benefit of a kill...
    Originally Posted by fronobulax View Post
    A meat cost for any skill that doesn't 1-hit? That might speed things up.


    On another topic. I really need to learn how to use WHAM's item protection lists. It used my stick of dynamite I pulled yesterday for the towers. I've got 20 extra pulls, so I'm not going to cry over it.

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

    Default

    Before I try to analyse that try version 5.3 which removes the endscombat special handling added in 5.2. It also skips evaluating your attack if the script is going to saucesplash anyway, doesn't jiggle for more than once per fight (it gave a "no action fo rmore than 37 rounds" error in KoL which then led to the script moving on, thus we are now saving loads of server hits) and adds teh WHAM_UseSeaLasso zlib-setting (default false) to toggle use of the sea lasso in the sea to train the lasso skill. Since Mafia currently isn't tracking the level we are at it is up to you to toggle the setting on or off as needed.
    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. #923
    Senior Member Winterbay's Avatar
    Join Date
    Feb 2010
    Posts
    5,033

    Default

    On another topic. I really need to learn how to use WHAM's item protection lists. It used my stick of dynamite I pulled yesterday for the towers. I've got 20 extra pulls, so I'm not going to cry over it.
    Originally Posted by Crowther View Post
    Odd, BatBrain should remove items needed for the tower from opts by default...
    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

  4. #924
    Senior Member Theraze's Avatar
    Join Date
    Mar 2010
    Posts
    8,568

    Default

    One thing... you've changed it to maxround 50, right? I believe that means that, in your version, it believes it can go 50 rounds in ANY fight, not just the special ones. Might be that WHAM believes it can keep going (because you told it that it could), but combat is really done, so... the result doesn't make sense.

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

    Default

    I think that changing the sort for the attack_option()-function to:
    Code:
    sort opts by kill_rounds(value.dmg)* (vars["WHAM_killit"] == "true" ? 1 : -(min(value.profit,-1)));
    will allow for a setting that makes kill_rounds the most important value to WHAM. I tried it against an electric eel and with that option turned on it took 4 rounds to kill the monster while with it off it took 9 rounds. Anyone think this should be implemented?

    Theraze: WHAM does a min(maxround, WHAM_maxround) so that shouldn't be a problem.
    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

  6. #926
    Senior Member Crowther's Avatar
    Join Date
    Nov 2006
    Posts
    1,324

    Default

    Odd, BatBrain should remove items needed for the tower from opts by default...
    Originally Posted by Winterbay View Post
    It used to, but I lost two other tower items this run.

    One thing... you've changed it to maxround 50, right? I believe that means that, in your version, it believes it can go 50 rounds in ANY fight, not just the special ones. Might be that WHAM believes it can keep going (because you told it that it could), but combat is really done, so... the result doesn't make sense.
    Originally Posted by Theraze View Post
    Yeah. That's probably it. I did that because WHAM wasn't handling 50 round fights for me ages and ages ago. I'll set that back to the default (30) are report back if I ever loop again.

    Theraze: WHAM does a min(maxround, WHAM_maxround) so that shouldn't be a problem.
    Originally Posted by Winterbay View Post
    Ha! I thought I'd checked to make sure that wasn't a problem ages and ages ago, but things change.

    I think that changing the sort for the attack_option()-function to:
    Code:
    sort opts by kill_rounds(value.dmg)* (vars["WHAM_killit"] == "true" ? 1 : -(min(value.profit,-1)));
    will allow for a setting that makes kill_rounds the most important value to WHAM. I tried it against an electric eel and with that option turned on it took 4 rounds to kill the monster while with it off it took 9 rounds. Anyone think this should be implemented?
    Originally Posted by Winterbay View Post
    The one thing I don't like about that is it will kill in the shortest number of rounds at all costs. Yes, I know, balancing it for everyone is impossible and I still like your idea, but it's important that people know turning it on could bleed meat fast. Just a totally fake example, I hope, but it might use "The Bomb" every combat. I think he wants fast combat, but not optimally fast combat totally ignoring meat spent.

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

    Default

    Well on a spread from "as cheap as possible" to "kill it without thinking about anything" that is definitely in one of the far ends that's for sure. Now we just need to come up with good variations for the middle ones as well
    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. #928
    Junior Member
    Join Date
    Jan 2012
    Posts
    7

    Default

    Updated to WHAM 5.3 today and right away it started suffering infinite loops every time I fight certain monsters:.

    -G Imp
    -toothy sklelton
    -grave rober zmobie
    -swarm of ghuol whelps

    It consistently chokes on these monsters, but other monsters in those zones get resolved quickly with no problem. Character is a SCNP DB with no permed combat skills.

    It seems to repeat forever after it starts queueing skill 5021. Verbosity 9 debug dump follows:

    Code:
    [490] Dark Heart of the Woods
    Encounter: G imp
    Round 0: etiquettastrophe wins initiative!
    Running ZLib version: r37 (current)
    Running Character Info Toolbox version: 0.8.4
    Running ZLib version: r37 (current)
    1 HP costs 3.2μ. ( 146 / 150 )
    1 MP costs 8μ. ( 64 / 64 )
    Running BatBrain version: 1.35 (current)
    Running SmartStasis version: 3.19 (current)
    Running WHAM version: 5.3 (current)
    WHAM: We currently think that the round number is: 0 and that the turn number is 489.
    WHAM: Checking to see if WHAM sould adjust the unknown_ml for G Imp.
    WHAM: No need to do anything with G Imp.
    WHAM: Setting up variables via BatBrain
    hot wing (30.0 @ +35.0): 32μ * 40.5% = 12.96
    Imp Ale (30.0 @ +35.0): 25μ * 40.5% = 10.13
    leather mask (5.0 @ +35.0): 65μ * 6.75% = 4.39
    Value of stat gain: 192.56μ
    hot wing (30.0 @ +35.0): 32μ * 40.5% = 12.96
    Imp Ale (30.0 @ +35.0): 25μ * 40.5% = 10.13
    leather mask (5.0 @ +35.0): 65μ * 6.75% = 4.39
    Value of stat gain: 192.56μ
    ATT: 56 (27.5% × (7.75), death in 69)
    DEF: 51 (95.45% × 41.17 (3) (3) (3) (3) (3), win in 2)
    HP: 58.8, Value: 256.03 μ, RES: 0 (1) (-1) (-1)
    Parsed round number: 1
    Building options...
    Options built! (7 actions)
    WHAM: We currently think that the round number is: 1 and that the turn number is 489.
    WHAM: Current MP = 64 out of 64.
    WHAM: You have no profitable MP restoratives.
    WHAM: Current HP = 146 out of 150.
    WHAM: You have no profitable HP restoratives.
    WHAM: You are fighting a G Imp. Mafia considers that this monster has an attack of 56 or 56 when given a monster name.
    WHAM: Mafia further considers that this monster has a defense value of 51 or 51 when given a monster name.
    WHAM: Mafia further further considers that this monster has a HP value of 56 or 56 when given a monster name.
    WHAM: Your current ML-adjustment is: 10.
    WHAM: Monster HP is 58.8.
    WHAM: WHAM added the following to BatRound: if pastround 29; abort "Stopping fight because it has gone on for too long (set WHAM_maxround to a higher value if you think this was in error)"; endif; 
    hot wing (30.0 @ +35.0): 32μ * 40.5% = 12.96
    Imp Ale (30.0 @ +35.0): 25μ * 40.5% = 10.13
    leather mask (5.0 @ +35.0): 65μ * 6.75% = 4.39
    Value of stat gain: 192.56μ
    WHAM: Attack option chosen: attack (round 1, profit: -3.2)
    WHAM: Running SmartStasis
    Profit per round: ActionProfitDamageOtherbase (0μ)0μ--
    Building custom WHAM actions...
    Custom WHAM actions built! (0 actions)
    Building custom actions...
    Queued: pickpocket
    Building options...
    Options built! (7 actions)
    Custom actions built! (0 actions)
    Constructed macro: scrollwhendone; sub batround; if pastround 29; abort "Stopping fight because it has gone on for too long (set WHAM_maxround to a higher value if you think this was in error)"; endif; endsub; pickpocket; call batround; 
    Round 1: etiquettastrophe executes a macro!
    Round 1: etiquettastrophe tries to steal an item!
    You acquire an item: Imp Ale
    Happened: pickpocket
    Parsed round number: 2
    You snatched a Imp Ale (25μ)!
    hot wing (30.0 @ +35.0): 32μ * 40.5% = 12.96
    leather mask (5.0 @ +35.0): 65μ * 6.75% = 4.39
    Value of stat gain: 192.56μ
    Revised monster value: 245.91
    Happened: stolen
    Building options...
    Options built! (7 actions)
    WHAM: Stasis option chosen: skill 5003 (round 2, profit: 0.42)
    hot wing (30.0 @ +35.0): 32μ * 40.5% = 12.96
    leather mask (5.0 @ +35.0): 65μ * 6.75% = 4.39
    Value of stat gain: 192.56μ
    WHAM: Attack option chosen: attack (round 2, profit: -3.2)
    This monster is not your huckleberry.
    Stasis loop complete.
    WHAM: SmartStasis complete.
    WHAM: Running SmartStasis took 0.41 seconds.
    WHAM: SS did not finish the fight, continuing with script execution. 
    WHAM: We currently think that the round number is: 2 and that the turn number is 489.
    WHAM: Starting evaluation and performing of attack
    WHAM: We currently think that the round number is: 2 and that the turn number is 489.
    hot wing (30.0 @ +35.0): 32μ * 40.5% = 12.96
    leather mask (5.0 @ +35.0): 65μ * 6.75% = 4.39
    Value of stat gain: 192.56μ
    WHAM: Attack option chosen: attack (round 2, profit: -3.2)
    WHAM: No need to stun this monster
    Monster HP is 56 according to Mafia and 58.8 according to BatBrain.
    WHAM: We can't Saucesplash.
    true, true, true, true, false
    Monster HP is 56 according to Mafia and 58.8 according to BatBrain (loop variable i = 0).
    Queued: attack
    Building options...
    Options built! (7 actions)
    Skipping skill 5003 since it is too risky.
    Skipping skill 5005 since it is too risky.
    Skipping attack since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping use 559 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping use 344 since it is too risky.
    WHAM: No valid attack options (Best option, 'skill 5003', not good enough)
    Monster HP is 56 according to Mafia and 1.324318181818164 according to BatBrain (loop variable i = 1).
    WHAM: Your most profitable deleveling option is skill 5005.
    Queued: skill 5005
    Building options...
    Options built! (7 actions)
    WHAM: Your most profitable deleveling option is skill 5005.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping skill 5003 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping skill 5005 since it is too risky.
    Skipping use 344 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'skill 5021', not good enough)
    Queued: skill 5005
    Building options...
    Options built! (7 actions)
    WHAM: Your most profitable deleveling option is skill 5005.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping use 344 since it is too risky.
    Skipping skill 5003 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping skill 5005 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'skill 5021', not good enough)
    Queued: skill 5005
    Building options...
    Options built! (7 actions)
    WHAM: Your most profitable deleveling option is skill 5005.
    Skipping use 344 since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping skill 5003 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping skill 5005 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'use 344', not good enough)
    Queued: skill 5005
    Building options...
    Options built! (7 actions)
    WHAM: Your most profitable deleveling option is skill 5005.
    Skipping use 344 since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping skill 5003 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping skill 5005 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'use 344', not good enough)
    Queued: skill 5005
    Building options...
    Options built! (7 actions)
    WHAM: Your most profitable deleveling option is skill 5005.
    Skipping use 344 since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping skill 5003 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping skill 5005 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'use 344', not good enough)
    Queued: skill 5005
    Building options...
    Options built! (7 actions)
    WHAM: Your most profitable deleveling option is skill 5005.
    Skipping use 344 since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping skill 5003 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping skill 5005 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'use 344', not good enough)
    Queued: skill 5005
    Building options...
    Options built! (7 actions)
    WHAM: Your most profitable deleveling option is skill 5005.
    Skipping use 344 since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping skill 5003 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping skill 5005 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'use 344', not good enough)
    Queued: skill 5005
    Building options...
    Options built! (7 actions)
    WHAM: Your most profitable deleveling option is skill 5005.
    Skipping use 344 since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping skill 5003 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping skill 5005 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'use 344', not good enough)
    Queued: skill 5005
    Building options...
    Options built! (7 actions)
    WHAM: Your most profitable deleveling option is skill 5005.
    Skipping use 344 since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping skill 5003 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping skill 5005 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'use 344', not good enough)
    Queued: skill 5005
    Building options...
    Options built! (7 actions)
    WHAM: Your most profitable deleveling option is skill 5005.
    Skipping use 344 since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping skill 5003 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping skill 5005 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'use 344', not good enough)
    Queued: skill 5005
    Building options...
    Options built! (7 actions)
    WHAM: Your most profitable deleveling option is skill 5005.
    Skipping use 344 since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping skill 5003 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping skill 5005 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'use 344', not good enough)
    Queued: skill 5005
    Building options...
    Options built! (6 actions)
    WHAM: Your most profitable deleveling option is skill 5003.
    Skipping use 344 since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping skill 5003 since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'use 344', not good enough)
    Queued: skill 5003
    Building options...
    Options built! (5 actions)
    WHAM: Your most profitable deleveling option is skill 5021.
    Skipping use 344 since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'use 344', not good enough)
    Queued: skill 5021
    Building options...
    Options built! (5 actions)
    WHAM: Your most profitable deleveling option is skill 5021.
    Skipping use 344 since it is too risky.
    Skipping skill 5021 since it is too risky.
    Skipping attack since it is too risky.
    Skipping use 474 since it is too risky.
    Skipping use 559 since it is too risky.
    WHAM: No valid attack options (Best option, 'use 344', not good enough)
    Queued: skill 5021
    Building options...
    then repeats forever until I escape out of it. Vars:

    Code:
    zlib WHAM_AlwaysContinue = false
    zlib WHAM_hitchance = 0.5
    zlib WHAM_maxround = 30
    zlib WHAM_noitemsplease = false
    zlib WHAM_round_limit = 15
    zlib WHAM_safetymargin = 0
    zlib WHAM_UseSeaLasso = false
    Last edited by Mutantopia; 05-22-2013 at 09:16 PM.

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

    Default

    Now that Mafia is tracking seaLasso level do we still want the setting or should we only go by the preference and assume that if we have a seaLasso in inventory and seaLasso != expertly we want to use the lasso?
    I guess if you have loads of lassos in inventory but don't want to do the quest to completion you do not necessarily want to throw it and as such the setting should stay.

    Mutantopia: It appears to have decided that you need to delevel the monster, unfortunately WHAM currently doesn't abort that loop if it fails which is a bug. That said it should not need to develel that much I'd think...
    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

  10. #930
    Minion Bale's Avatar
    Join Date
    Jun 2008
    Posts
    12,965

    Default

    If seaLasso != "expertly" stop using the lasso, but leave the setting so that people can farm for fish meat or whatever without needing to expend lassos.
    If people like my scripts, please send me stuffed Hodgmen.
    Universal Recovery, OCD Inventory Control, CounterChecker, newLife, ChIT.


Similar Threads

  1. WHAM, Manual and 43 reasons to be confused.
    By fronobulax in forum Community Support
    Replies: 8
    Last Post: 02-22-2014, 03:48 PM
  2. autobasement, wham and coldform etc...
    By fronobulax in forum Community Support
    Replies: 13
    Last Post: 11-07-2012, 09:04 PM
  3. Bug - Fixed Scritp verification error less than helpful unless creating debug log
    By Winterbay in forum Bug Reports
    Replies: 3
    Last Post: 03-23-2012, 11:42 PM
  4. Replies: 0
    Last Post: 08-07-2011, 12:40 AM
  5. Replies: 0
    Last Post: 01-27-2011, 05:50 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
  •