Apologize if this is covered elsewhere - I'm trying to wrap my head around what logic a good basher should have. I'm not asking anyone to write the code for me - in fact, I insist you don't, just provide a general outline of functionality.
1) List of targets ordered in priority of what you wanna kill first, something like this: target_order = { "first", "second", "third", "fourth", --etc } 2) Target typically chosen when you enter the room, or kill something in the room. Or something enters the room when you move (use gmcp.Char.Items for this) 3) Attacking when you have balance, and aren't otherwise hindered (this is easily done with gmcp.Char.Afflictions) 4) Don't make it auto path/move, if you want to continue playing Imperian.
So, to combine your 1. and 2., the target_order is a custom list that I specify, and when I enter the room, (or get a gmcp.Char.Items event), it will try to match items on the list to select the actual target?
Is there anything you'd recommend with alternative attacks (from what I understand, certain afflictions work on mobs now?)
Don't know much about alternative ones. I'd say if you can't combo them together though, then it's not going to be really worthwhile / noticeable. (Assassin/Renegade are the first to come to mind with this, being able to garrote/puncture + worm freeze)
Thanks @Dicene. I'm making good progress now. One question - how can I tell whether the mob is teaming/aggressive using either IH or GMCP? I think they're colored red in IH, but I really really don't want to try to be scraping colors in my triggers.
Honestly, that's exactly how I do it. I use this on the trigger for each individual mob in Mudlet. It'd be convenient if that info was included in gmcp, but it isn't currently I also keep a database of mob types and if I see them turn aggressive with the "<x> snarls angrily at you and moves in for the kill." message, I then mark that mob type as aggressive for future reference. It's not 100% accurate since (afaik) mobs of the same name can have different flags by id. Other people that feel like putting in more effort will mark individual ids.
This only works if you get mob info using IH, right? I currently get room mob info from gmcp, so I might need to rework (or at least supplement it)
Or maybe I'll adopt the hybrid approach, where I IH only when I see the "snarls angrily" line, and then store their id in a database that I'll check against when scanning the room with gmcp.
Thanks, this is helpful.
Also, per Aysari above, auto-moving is dangerous. Am I in the clear if I never AFK while I bash?
I do not personally encourage automoving, but it is not against the rules. As long as you are paying attention to Imperian while bashing (which we test in a variety of ways, but none that are underhanded or sneaky), you aren't breaking any rule and won't be punished.
The aggressive testing really isn't all that important, honestly.
You can safely assume that everything in Demon's Pass or the Necropolis or Skegdald is aggressive, so you prioritize based on how dangerous they are. Crabs on Kilauthu are aggressive but nothing else there is so you just prioritize crabs higher than the other things there.
Iaat is really the only place where it matters, honestly.
"On the battlefield I am a god. I love war. The steel, the smell, the corpses. I wish there were more. On the first day I drove the Northmen back alone at the ford. Alone! On the second I carried the bridge! Me! Yesterday I climbed the Heroes! I love war! I… I wish it wasn’t over."
I do not personally encourage automoving, but it is not against the rules. As long as you are paying attention to Imperian while bashing (which we test in a variety of ways, but none that are underhanded or sneaky), you aren't breaking any rule and won't be punished.
I do love designing the auto-movers though... there're so many ways to make one
So, Mudlet apparently doesn't persist variables between sessions, thus deleting a bunch of my hard work. Is there some sort of data type that lets you save state between sessions?
Comments
target_order = {
"first",
"second",
"third",
"fourth",
--etc
}
2) Target typically chosen when you enter the room, or kill something in the room. Or something enters the room when you move (use gmcp.Char.Items for this)
3) Attacking when you have balance, and aren't otherwise hindered (this is easily done with gmcp.Char.Afflictions)
4) Don't make it auto path/move, if you want to continue playing Imperian.
Easy.
Don't know much about alternative ones. I'd say if you can't combo them together though, then it's not going to be really worthwhile / noticeable. (Assassin/Renegade are the first to come to mind with this, being able to garrote/puncture + worm freeze)
(Ring): Lartus says, "Then it exploded."
(Ring): Zsetsu says, "Everyone's playing checkers, but Theophilus is playing chess."
local fgColor = {}
fgColor.red, fgColor.green, fgColor.blue = getFgColor()
--display(fgColor)
if fgColor.red==255 then
table.insert(bashCheckAggro, matches[2])
end
The aggressive testing really isn't all that important, honestly.
You can safely assume that everything in Demon's Pass or the Necropolis or Skegdald is aggressive, so you prioritize based on how dangerous they are. Crabs on Kilauthu are aggressive but nothing else there is so you just prioritize crabs higher than the other things there.
Iaat is really the only place where it matters, honestly.
"On the battlefield I am a god. I love war. The steel, the smell, the corpses. I wish there were more. On the first day I drove the Northmen back alone at the ford. Alone! On the second I carried the bridge! Me! Yesterday I climbed the Heroes! I love war! I… I wish it wasn’t over."