Ticket #44 (closed task: fixed)

Opened 2 years ago

Last modified 1 year ago

Conversion of specific TWBot modules into MultiBot modules

Reported by: dugwyler Assigned to: dugwyler
Priority: high Component: Bots - Multibot
Version: Latest version from repository Severity: minor
Keywords: Cc:

Description (Last modified by Maverick)

The following TWBot modules are not "utility" modules. As of a year or so ago a transition was begun to make TWBot into a utility-only bot … however, this has some problems, and so after all event modules on TWBot are converted into MultiBot modules, TWBot will most likely be entirely eliminated, and all the utilty modules will be moved into a MultiBot /util directory, where they can be accessed on MultiBot, but through a different loading system — which will allow multiple util modules loaded at the same time, but still only one event module.

The following need to be converted into MultiBot modules, and then removed from TWBot:

twbotballspec
twbotbh
twbotconquer
twbotgolden
twbotkillrace
twbotmarco
twbotpayback
twbotplatoon
twbotraceelim
twbotrevenge
twbotstepelim
twbottugawar
twbotwipeout

Anybody willing to help can take just one of the modules, or all, whatever you like. Also, if anybody knows what the hell the twbottwrp module does, maybe you can make the call if we still need it or not.

Attachments

Change History

05/04/07 14:10:46 changed by dugwyler

  • owner set to dugwyler.
  • status changed from new to assigned.

05/07/07 19:06:38 changed by dugwyler

I'm noting some quite paltry feature sets on some of these modules, which I would like to improve (a note to self):

Killrace — Presently it's odd vs. even freqs. Allow it to be any number of freqs. Just needs a HashMap.

Marco — rather than setting up an elaborate word list before the game starts, the host should be given the option to be spontaneous and specify a word. Very easy to modify. This seems like it would be a lot more fun than an automated word list where the bot basically runs the whole show. Zzzz.

05/07/07 19:08:15 changed by dugwyler

Another note to self:

Get someone to finish the Commander map, and finish up the bot.

05/24/07 16:28:52 changed by dugwyler

All of these were converted, except for wipeout, and all need testing. Additionally, the marco and killrace modules were given the above additions.

05/25/07 06:21:25 changed by dugwyler

The following modules now need testing on MultiBot:

* ballspec * bountyhunter * conquer * killrace * marco * payback * platoon * raceelim * revenge * stepelim * tugawar

Tested successfully: - golden

06/19/07 14:19:06 changed by dugwyler

Everything from TWBot that was even vaguely useful is now in MultiBot. Awaiting testing.

06/30/07 06:48:13 changed by Maverick

If we really want to replace TWBot by Multibot we also need to work on getting multibot more user friendly:

  • Put !host on multibot which returns the name who did !lock and a way for a staffmember to claim the bot once it has been already locked
  • The !modhelp isn't really sufficient. It's a command which staff has to get used to again and doesn't allow to differentiate between a staff-only !help and a public !help. That the staff has to get used to it again is unavoidable but that !modhelp doesn't allow to differentiate between staff/public !help is more disturbing.
  • There isn't much need for !follow which also is RoboBot6> Not Implemented Yet.

My suggestion for !help is using the !help interface from Mervbot which is something like this:

   MMaverick> !help
    RoboBot6> Multibot Sysop commandlist (Send ::!help <command> for more info)
    RoboBot6> Sysop: !die
    RoboBot6> ER:    !go !listgames !listutils !lock !load !unload !unloadall !loaded !home !gtfo

   MMaverick> !help lock
    RoboBot6> !Lock <game>    (Locks the bot and loads game <game>)

   MMaverick> !help !load
    RoboBot6> !Load <Utility> (Loads utility <Utility>)
    RoboBot6> !load           (Loads standard, warp and spec modules)

This keeps the !help clean and specifies exactly what rank you have on the bots by returning your rank and the commands that are associated with your rank. The staff also remembers the command syntax more easily because they have to do !help <command> for specific command syntax information.

Another benefit is that the modules can hook in on !help just like normal but should only return a single line for a clean !help:

   MMaverick> !help
    RoboBot6> Multibot Sysop commandlist (Send ::!help <command> for more info)
    RoboBot6> Sysop: !die
    RoboBot6> ER:    !go !listgames !listutils !lock !load !unload !unloadall !loaded !home !gtfo
    RoboBot6> PRODEM: !prodem !prolag

What do you think, dugwyler? If you agree maybe we can try this on the multibot(s).

06/30/07 10:14:01 changed by anonymous

Sounds like a very good idea. The !modhelp addition was really just to eliminate the spam you receive for sending !help while an event module is loaded… previously it was not a problem, because the bot didn't have many commands available when it was locked/module was loaded, but now the spam is ridiculous. I think what you mention as far as command-specific help would make a lot more sense considering the number of commands now available.

Per module it might be a little more tricky: we'd have to implement a way to standardize command handling and associated helps, and the commands are probably not nearly as well-known, so it might become more of an irritant than it would help. Not sure, though. Definitely all for doing it on the Multibot interface itself; this means we could easily recombine the !help again.

- Will comment out references to follow for now. - !host should be pretty easy to implement. Once a host has done !lock, are other hosts not able to unlock and move it?

Also, is it looking still like King MultiBot is running as it should, and Queen still giving all sorts of strange errors?

06/30/07 11:15:52 changed by Maverick

  • description changed.

yea agreed. At first it will be quite annoying for the staffers who use it, but once used to it I think they will see it's quite good. The bulk of the work is getting each multibot module to work with this new !help interface. It's possible to standarize this interface like the CommandInterpreter but that would be another dependency a programmer would have to use. It's probably the best way though.

About !host; yea another host can !unlock it and !lock it again but that would kill the current game. What if a host has to go and another one wants to take over but he wants to make sure everyone who PM !host to the bot gets the correct answer.

Maybe make it so that if the !lock command is used again by a different host and the bot is already locked, it only changes the !host value?

lnx completely updated RoboQueen last night to the most recent version so everything should be good. When one of us gets around to bugfixing those multibot modules we should test first if the bug is still there. Also updated Roboking last night btw.

06/30/07 14:06:27 changed by Maverick

1:Nycle> if you have time can you port the deathmessage module as well

07/02/07 11:23:01 changed by Maverick

More offtopic stuff: (Stargazer <ER>)>so robo actuallt keeps all utils in loaded status when you move from arena to arena. did you know that :O Is that normal behaviour or a bug?

07/03/07 06:34:57 changed by dugwyler

Er, what was it that deathmessage did again? Can't remember that one… it may have been put into the etc module?

I think it's normal for modules to stay loaded between arena moves, or at least this is how TWBot used to handle them. We can have it auto-unload them all, though, if that seems smarter.

07/03/07 08:39:52 changed by Maverick

I don't know about the deathmessage module, do a search for the etc module changeset ;)

It seems logical to leave modules loaded during a arena move since there is a seperate command to unload the utility modules. I thought TWBot unloaded them though (however, TWBot was different - you couldn't move the bot without unlocking it first which would unload all the modules, right?).

07/03/07 13:58:57 changed by dugwyler

On TWBot, !unlock would basically just free it up to move (!off would shut off the modules). We could change it to unload them automatically if hosts prefer it, but it doesn't seem too big a deal to me. We might not have an equivalent of !off on MultiBot yet, though? I can't recall. Maybe an !unloadall or !unload all

07/03/07 19:26:52 changed by dugwyler

Looks like deathmessage was not converted. This would probably be a good addition to the current "messages" util.

12/21/07 16:19:05 changed by Pio

soo what's the status on all of these?

12/23/07 12:13:03 changed by Maverick

Dugwyler should know the most recent status on this, please ask him.

12/23/07 16:01:00 changed by dugwyler

I think everything was done except for DeathMessage, which I didn't quite finish up adding to the messages module. I'll try to finish this. Could someone with a little freetime in the meantime verify nothing was missed being converted from TWBot to MultiBot, either as a MultiModule or MultiUtil? I think a couple of things were left intentionally. But it would be nice to know for certain before we stop making TWBot spawnable and switch over completely to MultiBot.

01/07/08 00:02:05 changed by Maverick

medorP (Prodem backwards) still needs to be converted to multibot

01/07/08 00:08:32 changed by milosh

Wipeout has been converted.

01/07/08 05:41:12 changed by dugwyler

Ok, that's set. Should be the last.

02/05/08 08:18:12 changed by dugwyler

  • status changed from assigned to closed.
  • resolution set to fixed.

All TWBot modules converted to MultiBot.


Add/Change #44 (Conversion of specific TWBot modules into MultiBot modules)




Change Properties
Action