
Insane-Bot Alpha 3 Release Notes |
Previously, one of the searches was more broad than it should have been, and you'd split a Turquoise Powder Pea when you should have split a Turquoise Pea. This has been fixed.
Changed sorting of comps produced from split to check to make sure the item just created is a comp before deciding that the split is complete (we were seeing some cases where it claimed the split didn't produce anything, or worse, claimed the split produced a breastplate, weapon, etc.).
The <Spell> element can now reference anothe spell array. E.g. you can now do:
<SpellArray Name="Foo">
<Spell Array="Bar" />
<Spell Name="Armor Other VI"/>
</SpellArray>
When merging in the spell arrays duplicate spells in nested arrays are removed (a duplicate spell will only get cast once in final array). Recursion is also checked -- if an array that has already been merged is requested again the merge aborts.
Added a Buff attribute to the SpellArray definition.
<SpellArray Name="Armor6" Buff="LifeSelf6">
<Spell Name="Armor Other VI"/>
</SpellArray>
The Spell array referred to by the Buff attribute is loaded before the rest of the Spell array.
This allows an alternative way to specifying what self-buffs should be checked prior to casting spells (this method can replace the buff array defined on the command).
Fixed a bug where the default Hints option always overrode the setting on a security rule.
The log filename entries in the registry may now use double parenthesis to surround the date format -- ((yymmdd)) -- as well as square brackets -- [[yymmdd]]. This was changed to correct a problem where the installer was stripping the [[ ]] format when creating the registry keys.
Rewrote the XSD to do a much better job of validating the Bot config XML. This included restricting the references in such a way that a speech block reference can only refer to a speech block, and not a timer, for instance.
If you have an empty <Text> block that you try to speak, the bot now no longer even tries. This avoids extra hits to the chat window and extra stuff being logged to the log files.
Gift sorting and stacking is now more reliable.
Added several more error traps to prevent error dialogs from causing the bot to fail
For examples of configuration settings discussed below see the complex sample XML file.
Performance has been greatly improved. You should now see a much smaller delay between casting spells than with previous builds. The bot will also switch between peace and combat mode less often.
Users and Security Rules can now be tied to specific bots using the Bot="" and ExcludeBot="" attributes. These functions the same as they previously did for Commands and Spells.
You may now apply level restrictions to Security Rules. The three Rules below
apply different access levels to followers of Allegro based on their character
level. Users level 19 and under receive Guest access. Users level 20 to 39
receive Normal access, and users level 40 and up receive PowerUser access.
<Rule Name="Allegro" Type="0" MaxCharLevel="19"
NewLevel="Guest" QueueMax="5" Hints="0" ReasonSpeech="Nothing" />
<Rule Name="Allegro" Type="0" MinCharLevel="20" MaxCharLevel="39" NewLevel="Normal"
QueueMax="5" Hints="0" ReasonSpeech="Nothing" />
<Rule Name="Allegro" Type="0" MinCharLevel="40" NewLevel="PowerUser" QueueMax="5"
Hints="0" ReasonSpeech="Nothing" />
In the complex configuration example file these restrictions are used to grant
different levels of spells (5, 6, or 7) based on character level. If
MinCharLevel is not included on a Rule it will default to 1. MaxCharLevel
defaults to 126.
Security levels may now be specified by name in the configuration file rather than value. The valid options for security level are: "None", "Unverified", "Public", "Guest", "Normal", "PowerUser", "Admin", and "SuperAdmin".
Insane-Bot can now grant special user access to anyone in a fellowship with
the bot character. The option below would grant any user in a fellowship with
the bot a minimum access level of "Normal". If a user is granted higher access
through a User or Rule option their higher level access overrides the Fellowship
level. Users granted elevated access through this option will revert to their
previous access level when they leave the fellowship. This option defaults to
"None".
<Option Name="FellowLevel" Value="Normal" />
This option sets the access level that will be granted to any user that is
not covered by a User or Rule option. The default access level is "Public". This
option can only be set to "None", "Public", "Guest" or "Normal" access. The
command below would refuse all access to any user not covered by a Rule or User
option.
<Option Name="DefaultAccessLevel" Value="None"
/>
This option sets whether the Hints option on security rules defaults to on (1) or off (0).
<Option Name="DefaultHints" Value="1" />
Split Threshold tells the bot when to split a pea. If the number of any
component falls below this setting the bot will attempt to split a pea for that
component if it has any.
<Option Name="SplitThreshold" Value="15" />
You can now modify the internal timers the bot uses for various operations.
There are five settings that can be changed:
<DefaultTimer Name="Advertise" Value="299"
Unit="Seconds" />
This setting controls how often one of the bots advertising emotes will be
preformed. Setting this to "0" will cause the bot to never advertise.
<DefaultTimer Name="Rebuff" Value="1"
Unit="Minutes" />
This setting controls how often the bot checks to see if any of the spells in
it’s BuffList spell array need to be recast. Setting this to "0" will cause the
bot to no longer automatically stay buffed. Buffs will still be checked prior to
running any command that has an associated BuffArray.
<DefaultTimer Name="RebuffBeforeExpire"
Value="1.5" Unit="Minutes" />
This sets how long before spell expiration the bot will recast the spell when
checking it’s buffs.
<DefaultTimer Name="ExpireUser" Value="2"
Unit="Hours" />
Any user not explicitly included in the User section of the configuration
file will be removed from the in memory user collection based on this timer
setting. This is done to decrease the memory footprint of the bot and improve
performance. In the example above a user would be removed from memory two hours
after their last command.
Note that removing a user from the in memory collection does not change their
access -- the user will be re-added normally when they next send a command.
<DefaultTimer Name="IDUser" Value="2"
Unit="Hours" />
This setting controls how often the bot will re-ID users to validate them.
Their level, allegiance, etc. will be refreshed on ID. In the example above a
user would be revalidated every two hours, regardless of how much they use the
bot in that time.
Users that are explicitly included in the Users section of the configuration
file will not be reevaluated.
The bot will now rotate its main log files at midnight each day, creating new files with the date as part of the filename.
Insane-Bot now supports running multiple bot characters on a single AC
account, and can switch between characters on the fly to execute commands. See
the "Alfredo" command in the complex configuration sample for an example of how
to switch characters.
This feature is largely untested, and may result in bot instability. This also
only works correctly when AC is running full screen.
Script-based commands will now execute, although the object model exposed to the script is incomplete at this point. A full OM will be included in Beta. Watch the Insane-Bot website for documentation on the scripting OM.
The "/bot off" command has been tweaked to pause bot processing in more cases. It will now pause the bot in the middle of casting spells.
If no talk type is specified for a Platinum burn string it will not longer be broadcast publicly if the bot is casting spells as part of a command. It will instead be targeted at the user who issued the command.