DarkstaR
11-09-2015, 12:45 AM
This update will require you to go to install XenoBot from scratch.
This is the update. It's time to move on from XenoBot Apophis and bring XenoBot Binary to life.
http://i.imgur.com/OMDnJ71.png
XenoBot Binary, like its predecessor, is named by terms of the cosmos. It is inspired by binary star systems, where two dancing stars orbit one-another, spiraling closer and closer until they eventually collide to form a bigger, brighter star. For XenoBot, this collision was with some of the most successful people in our community. The OX team, Syntax (http://forums.xenobot.net/member.php?u=193) and Joshwa534 (http://forums.xenobot.net/member.php?u=6094), are now be a real part of XenoBot. They've proven themselves as the best scripting team in Tibia and, in partnership with them, XenoBot now start provides hundreds of free scripts with every XenoBot purchase.
But that's not all. We're in a world that has fallen in love with mobile. We're accustomed to having information and control of our lives at the tip of our fingers. XenoBot Binary now provides a seamless, simple monitoring interface that will give you on-demand, on-the-go information about the characters you're botting. We're keeping it simple, and calling this XenoBot Monitor.
http://i.imgur.com/v94OQiv.png
In your browser, on your phone, on the go, XenoBot Monitor will be there.
We also want to provide XenoBot Binary to new markets. Currently, many potential customers are either unable to use PayPal or can't afford to spend real cash on a bot. In partnership with PunktG (http://forums.xenobot.net/member.php?u=650), XenoBot now offers licences for KKs.
We've got a ton more stuff for you guys. There's EZ MWalls, QuickDC, Small BPs, Elastic Evasion, a Hotkey system, new Waypoints, and much more. If you don't believe me, you can just check out the massive changelog.
Changelog:
Added XenoMonitor to XenoSuite
XenoMonitor allows you to view details about the characters you're currently botting at http://monitor.xenobot.net
If you're using a script that supports logout functionality, you can remotely log your characters out from XenoMonitor
Added Get Scripts panel, where you can easily download hundreds of high-quality scripts for free.
Improved Diagnostic Information.
Walker:
Nearby waypoints (+5 and -5 of current) will be drawn.
Pathfinder:
Paths being followed by the bot will be highlighted:
Green for Walker
Pink for Targeting
Purple for Looter
Grey for Scripter
Looter:
Corpses will have their estimated loot values printed on them.
Targeting:
Targets will have information in the following format drawn over their heads:
Tr # Odr # Dng #
The number following "Tr" is the tier of the creature. Tier 1 creatures are the first ones Targeting will kill, Tier 2 are the second, etc.
The number following "Odr" is the order of the creature. If a creature is Order 3, it is the 3rd creature in line to be attacked in it's tier.
The number following "Dng" is the danger level of the creature. This directly corresponds to the priority set for the creature in Targeting.
And a ton of other peices of information.
Improved settings loading. If a .xbst file is loaded from a folder other than \Documents\XenoBot\Settings, it will be moved to that directory.
Improved Targeting to accept multiple names, separated by commas.
Improved Targeting to accept wildcards. Setting name as "*" will match all creatures.
Improved the Settings window, it's huge now.
Added Elastic Evade to Targeting.
Elastic evade will try to keep away from all creatures of the same configuration.
Fixed a bug that caused IPC scripts to sometimes freeze the client when they were killed.
Fixed the Shooter to shoot areas spells/runes on partied players, even when PvP safe is on.
Improved the Walker's pathing system to continually check for and take faster routes, even if it is already walking.
Improved the Pathfinder's accuracy when calculating long, off-screen paths.
Optimized Walker.Goto(), it will be much faster with large waypoint sets now.
Improved Ignore Unlisted in the looter, it will be much more accurate.
Improved the Looter to prioritize bodies that are worth more gold over bodies that are closer.
Added Loot First if Over X Gold. Bodies worth over X gold will be looted before the bot finishes killing creatures.
Added Ignore Bodies Under X Gold. Bodies worth less than X gold will be completely ignored.
Added the Target When Luring option to Dynamic Lure, allowing you to configure if creatures will be targeted while luring or not.
Added the Until option to Dynamic Lure, allowing you to stop attacking a mob once a set amount of creatures are remaining.
Note: so if the lure is on 5 creatures and until is at 2, you will kill 3 creatures and then start luring again
Added Path Through Ranged Creatures to the Pathfinding options, it will let the walker approach ranged creatures that may be blocking it's path
Added Quick DC. Saying 'exiva"d~"' in-game will trigger a quick re-connect, causing all creatures to drop aggro on you.
Modified Reconnect, it wont try to connect after SS now as to avoid IP ban (this is temporary, until a proper fix is found).
Added Visuals window
All visual-based tools from the Tools window will now show here.
Added the Small BPs option to the Visuals window, which will force all backpacks to open with only one row visible
Added the EZ MWalls option to the Visuals window. It will make magic walls easier to see.
Modified Show Diagnostic Information, it is in the new Visuals window.
Fixed Magic Wall Timers to show definite times on OT servers.
Fixed a bug that caused the Looter to use the wrong item IDs when multiple items shared the same name.
Fixed a bug that caused the Looter to get stuck if it ran out of cascading backpacks.
If an item comes up when there's no more room and no more cascading backpacks for it, it will be skipped.
Fixed a bug that caused the Keep Distance algorithm to move where it can't shoot a target.
Added a confirmation dialog to the Clear Waypoints action.
Fixed a bug where creature outfits wouldn't return the "body" color in the Scripter.
Added a Reload Scripts button to the Scripter. It will reload all running scripts.
Improved Walker.ConditionalGoto and Walker.Goto.
Notes:
Both functions now accept an optional final parameter. If it is true, they will make the jump relatively.
That is to say, instead of jumping the first to label with "name" starting at waypoint 0, they'll jump to
the first to label with "name" starting at the current waypoint
Added XenoBot.GetVersionInformation() to the Scripter.
Notes:
Will return a string representing the XenoBot version, similar to "Binary 15.11.10.1092" (example)
Added XenoBot.ShowConfigEditor() to the Scripter.
Notes:
This will open a config file in Documents\XenoBot\Configs with Notepad
Parameters:
The name of the config file, not including the path or .ini extension
Return Value:
True if the file exists, false otherwise
Added XenoBot.ShowDialog() to the Scripter.
Notes:
This function will display a dialog with some options to the user, and return once an option has been clicked
Parameters:
Title: the name of the dialog
Text: the question displayed above the buttons
Options: A table of options in the following format:
{
{"Option 1", 1},
{"Option 2", 2},
...,
{"Option N", N},
}
Each option must have a unique ID
Any number of options is supported.
24 or fewer options will show on a single page.
Above 24 options will automatically be paged.
An option with a blank name will add a spacer (blank space) instead of a button
Return Value:
If the function returns nil, it means that no option was selected.
Otherwise, it will have two return values in the format id, name.
So, you do:
local code, text = XenoBot.ShowDialog(...)
And code will either be nil or the id of the button that was pressed.
If code is not-null, text will be the text of the button.
Added Hotkeys class to the Scripter.
Notes:
This class allows you to bind hotkeys to scripts
Valid key codes:
Hotkeys.F1, Hotkeys.F2, Hotkeys.F3, Hotkeys.F4, Hotkeys.F5, Hotkeys.F6, Hotkeys.F7, Hotkeys.F8,
Hotkeys.F9, Hotkeys.F10, Hotkeys.F11, Hotkeys.F12, Hotkeys.PAGEUP, Hotkeys.PAGEDOWN, Hotkeys.INSERT,
Hotkeys.DELETE, Hotkeys.END, Hotkeys.HOME
Added Hotkeys.Register to the Scripter
Notes:
This will allow the script to see events for the given key code
Parameters:
key - the key code to register
Return value:
True if key registers, false if it fails (failure will happen if it is already registered or if it is an invalid key)
Added Hotkeys.Unregister to the Scripter
Notes:
This will cause the script to stop seeing events for the given key code
Parameters:
key - the key code to unregister
Return value:
True if key unregisters, false if it fails (failure will happen if it is not registered or if it is an invalid key)
Added Hotkeys.AddPressHandler to the Scripter
Notes:
This will add a key press event handler for all registered hotkeys
Multiple handlers can exist
Handler prototype should be (key, controlDown, shiftDown), where key is the key code
Parameters:
handler - the function to use as a handler
Return value:
nil
Added Hotkeys.AddReleaseHandler to the Scripter
Notes:
This will add a key release event handler for all registered hotkeys
Multiple handlers can exist
Handler prototype should be (key, controlDown, shiftDown), where key is the key code
Parameters:
handler - the function to use as a handler
Return value:
nil
Added VStand and HStand Waypoints to the Walker
These stands will work like regular stands, with some exceptions:
VStand will try to stand at loc.y-1 if loc is blocked, and loc.y+1 if loc and loc.y-1 are blocked.
HStand will try to stand at loc.x-1 if loc is blocked, and loc.x+1 if loc and loc.x-1 are blocked.
These stands will not use mapclick. Even if mapclick is turned on, they will use arrow keys.
These stands will not go up or down stairs, ramps, ladders, etc.
Added LOGOUT_COMMAND event to the Scripter.
Notes:
Register it using registerEventListener(), just like any other event.
If this event is registered, XenoMonitor will show a "Logout" button beneath the character. This event will get fired shortly after that button is pressed.
Callback Params:
x, y, z (they're strings, you will need to convert to integer)
Added SNAPBACK_RECEIVED event to the Scripter.
Notes: register it using registerEventListener(), just like any other event.
Callback Params: x, y, z (they're strings, you will need to convert to integer)
Added HUD.GetMainWindowDimensions to the Scripter
Notes: This already existed, but was not documented.
Parameters: none
Returns:
a table describing the dimensions of the screen
Added HUD.GetContainerDimensions() to the Scripter
Parameters: none
Returns:
a table describing the dimensions of all open containers
Added Walker.IsEnabled, Targeting.IsEnabled, and Looter.IsEnabled to the Scripter
Paramaters: none
Returns:
true or false depending on if the component is enabled or not
Added XenoBot.IsPaused to the Scripter
Parameters: none
Returns:
true if XenoBot is paused, false if not
Added XenoBot.GetUsername() to the Scripter
Notes: This already existed, but was not documented.
Parameters: none
Returns:
current username
Added XenoBot.IsInRealTibia() to the Scripter
Parameters: none
Returns:
True if in real Tibia, false if in Open Tibia
Added XenoBot.ShowDiagnostics() to the Scripter
Notes: turns on Diagnostic Information HUD
Added XenoBot.HideDiagnostics() to the Scripter
Notes: turns off Diagnostic Information HUD
Added HUD:Destroy() to the Scripter
Notes: This will completely destroy a HUD object. You shouldn't ever re-use it afterwards.
Parameters: none
Returns:
Not important
Here's a changelog of hot-fixes made as new bugs were discovered with the initial release:
Fixed a small bug where trial didn't work for some people.
This was a new bug with XenoBot Binary, fixed within 1 hour of release.
Fixed a bug that caused hotkeys not to work randomly.
This was a new bug with XenoBot Binary, fixed within 1 hour of release.
Fixed a bug that caused gotoLabel to work incorrectly when used directly instead of with the OOP API.
This was a new bug with XenoBot Binary, fixed within 6 hours of release.
Fixed a bug with the pagination on the Lua custom dialogs.
This was a new bug with XenoBot Binary, fixed within 6 hours of release.
Fixed a bug that caused the bot not to inject on Windows XP.
This was a new bug with XenoBot Binary, fixed within 6 hours of release.
Fixed a bug that caused "Loot First Over X" to skip bodies under X.
This was a new bug with XenoBot Binary, fixed within a day of release.
Fixed a bug that caused PvP safe to hit players.
This was a new bug with XenoBot Binary, fixed within a day of release.
Fixed a bug where Small BPs would cause wierd issues when Browse Field was used.
This was a new bug with XenoBot Binary, fixed within three days of release.
Fixed a bug that caused Targeting not to attack in rare cases.
This was a new bug with XenoBot Binary, fixed within three days of release.
Fixed various small debugs.
These were new to XenoBot Binary, many were fixed immedietely, some took a few days.
Fixed a bug with selling vials in Edron potion shop.
Fixed a small bug with Module:Delay and Module:Stop in the Scripter.
Added new information to the Diagnostic Information HUD.
Added functionality to detect when trying to use an unknown spell, and blacklist that spell so it won't be spammed.
Added Vampire Viscount corpse as a dustable corpse.
Added Self.Logout() to the Scripter.
Added ContainerOpenProxy to the Scripter.
Works like other proxies. See below for implementation example.
This is the update. It's time to move on from XenoBot Apophis and bring XenoBot Binary to life.
http://i.imgur.com/OMDnJ71.png
XenoBot Binary, like its predecessor, is named by terms of the cosmos. It is inspired by binary star systems, where two dancing stars orbit one-another, spiraling closer and closer until they eventually collide to form a bigger, brighter star. For XenoBot, this collision was with some of the most successful people in our community. The OX team, Syntax (http://forums.xenobot.net/member.php?u=193) and Joshwa534 (http://forums.xenobot.net/member.php?u=6094), are now be a real part of XenoBot. They've proven themselves as the best scripting team in Tibia and, in partnership with them, XenoBot now start provides hundreds of free scripts with every XenoBot purchase.
But that's not all. We're in a world that has fallen in love with mobile. We're accustomed to having information and control of our lives at the tip of our fingers. XenoBot Binary now provides a seamless, simple monitoring interface that will give you on-demand, on-the-go information about the characters you're botting. We're keeping it simple, and calling this XenoBot Monitor.
http://i.imgur.com/v94OQiv.png
In your browser, on your phone, on the go, XenoBot Monitor will be there.
We also want to provide XenoBot Binary to new markets. Currently, many potential customers are either unable to use PayPal or can't afford to spend real cash on a bot. In partnership with PunktG (http://forums.xenobot.net/member.php?u=650), XenoBot now offers licences for KKs.
We've got a ton more stuff for you guys. There's EZ MWalls, QuickDC, Small BPs, Elastic Evasion, a Hotkey system, new Waypoints, and much more. If you don't believe me, you can just check out the massive changelog.
Changelog:
Added XenoMonitor to XenoSuite
XenoMonitor allows you to view details about the characters you're currently botting at http://monitor.xenobot.net
If you're using a script that supports logout functionality, you can remotely log your characters out from XenoMonitor
Added Get Scripts panel, where you can easily download hundreds of high-quality scripts for free.
Improved Diagnostic Information.
Walker:
Nearby waypoints (+5 and -5 of current) will be drawn.
Pathfinder:
Paths being followed by the bot will be highlighted:
Green for Walker
Pink for Targeting
Purple for Looter
Grey for Scripter
Looter:
Corpses will have their estimated loot values printed on them.
Targeting:
Targets will have information in the following format drawn over their heads:
Tr # Odr # Dng #
The number following "Tr" is the tier of the creature. Tier 1 creatures are the first ones Targeting will kill, Tier 2 are the second, etc.
The number following "Odr" is the order of the creature. If a creature is Order 3, it is the 3rd creature in line to be attacked in it's tier.
The number following "Dng" is the danger level of the creature. This directly corresponds to the priority set for the creature in Targeting.
And a ton of other peices of information.
Improved settings loading. If a .xbst file is loaded from a folder other than \Documents\XenoBot\Settings, it will be moved to that directory.
Improved Targeting to accept multiple names, separated by commas.
Improved Targeting to accept wildcards. Setting name as "*" will match all creatures.
Improved the Settings window, it's huge now.
Added Elastic Evade to Targeting.
Elastic evade will try to keep away from all creatures of the same configuration.
Fixed a bug that caused IPC scripts to sometimes freeze the client when they were killed.
Fixed the Shooter to shoot areas spells/runes on partied players, even when PvP safe is on.
Improved the Walker's pathing system to continually check for and take faster routes, even if it is already walking.
Improved the Pathfinder's accuracy when calculating long, off-screen paths.
Optimized Walker.Goto(), it will be much faster with large waypoint sets now.
Improved Ignore Unlisted in the looter, it will be much more accurate.
Improved the Looter to prioritize bodies that are worth more gold over bodies that are closer.
Added Loot First if Over X Gold. Bodies worth over X gold will be looted before the bot finishes killing creatures.
Added Ignore Bodies Under X Gold. Bodies worth less than X gold will be completely ignored.
Added the Target When Luring option to Dynamic Lure, allowing you to configure if creatures will be targeted while luring or not.
Added the Until option to Dynamic Lure, allowing you to stop attacking a mob once a set amount of creatures are remaining.
Note: so if the lure is on 5 creatures and until is at 2, you will kill 3 creatures and then start luring again
Added Path Through Ranged Creatures to the Pathfinding options, it will let the walker approach ranged creatures that may be blocking it's path
Added Quick DC. Saying 'exiva"d~"' in-game will trigger a quick re-connect, causing all creatures to drop aggro on you.
Modified Reconnect, it wont try to connect after SS now as to avoid IP ban (this is temporary, until a proper fix is found).
Added Visuals window
All visual-based tools from the Tools window will now show here.
Added the Small BPs option to the Visuals window, which will force all backpacks to open with only one row visible
Added the EZ MWalls option to the Visuals window. It will make magic walls easier to see.
Modified Show Diagnostic Information, it is in the new Visuals window.
Fixed Magic Wall Timers to show definite times on OT servers.
Fixed a bug that caused the Looter to use the wrong item IDs when multiple items shared the same name.
Fixed a bug that caused the Looter to get stuck if it ran out of cascading backpacks.
If an item comes up when there's no more room and no more cascading backpacks for it, it will be skipped.
Fixed a bug that caused the Keep Distance algorithm to move where it can't shoot a target.
Added a confirmation dialog to the Clear Waypoints action.
Fixed a bug where creature outfits wouldn't return the "body" color in the Scripter.
Added a Reload Scripts button to the Scripter. It will reload all running scripts.
Improved Walker.ConditionalGoto and Walker.Goto.
Notes:
Both functions now accept an optional final parameter. If it is true, they will make the jump relatively.
That is to say, instead of jumping the first to label with "name" starting at waypoint 0, they'll jump to
the first to label with "name" starting at the current waypoint
Added XenoBot.GetVersionInformation() to the Scripter.
Notes:
Will return a string representing the XenoBot version, similar to "Binary 15.11.10.1092" (example)
Added XenoBot.ShowConfigEditor() to the Scripter.
Notes:
This will open a config file in Documents\XenoBot\Configs with Notepad
Parameters:
The name of the config file, not including the path or .ini extension
Return Value:
True if the file exists, false otherwise
Added XenoBot.ShowDialog() to the Scripter.
Notes:
This function will display a dialog with some options to the user, and return once an option has been clicked
Parameters:
Title: the name of the dialog
Text: the question displayed above the buttons
Options: A table of options in the following format:
{
{"Option 1", 1},
{"Option 2", 2},
...,
{"Option N", N},
}
Each option must have a unique ID
Any number of options is supported.
24 or fewer options will show on a single page.
Above 24 options will automatically be paged.
An option with a blank name will add a spacer (blank space) instead of a button
Return Value:
If the function returns nil, it means that no option was selected.
Otherwise, it will have two return values in the format id, name.
So, you do:
local code, text = XenoBot.ShowDialog(...)
And code will either be nil or the id of the button that was pressed.
If code is not-null, text will be the text of the button.
Added Hotkeys class to the Scripter.
Notes:
This class allows you to bind hotkeys to scripts
Valid key codes:
Hotkeys.F1, Hotkeys.F2, Hotkeys.F3, Hotkeys.F4, Hotkeys.F5, Hotkeys.F6, Hotkeys.F7, Hotkeys.F8,
Hotkeys.F9, Hotkeys.F10, Hotkeys.F11, Hotkeys.F12, Hotkeys.PAGEUP, Hotkeys.PAGEDOWN, Hotkeys.INSERT,
Hotkeys.DELETE, Hotkeys.END, Hotkeys.HOME
Added Hotkeys.Register to the Scripter
Notes:
This will allow the script to see events for the given key code
Parameters:
key - the key code to register
Return value:
True if key registers, false if it fails (failure will happen if it is already registered or if it is an invalid key)
Added Hotkeys.Unregister to the Scripter
Notes:
This will cause the script to stop seeing events for the given key code
Parameters:
key - the key code to unregister
Return value:
True if key unregisters, false if it fails (failure will happen if it is not registered or if it is an invalid key)
Added Hotkeys.AddPressHandler to the Scripter
Notes:
This will add a key press event handler for all registered hotkeys
Multiple handlers can exist
Handler prototype should be (key, controlDown, shiftDown), where key is the key code
Parameters:
handler - the function to use as a handler
Return value:
nil
Added Hotkeys.AddReleaseHandler to the Scripter
Notes:
This will add a key release event handler for all registered hotkeys
Multiple handlers can exist
Handler prototype should be (key, controlDown, shiftDown), where key is the key code
Parameters:
handler - the function to use as a handler
Return value:
nil
Added VStand and HStand Waypoints to the Walker
These stands will work like regular stands, with some exceptions:
VStand will try to stand at loc.y-1 if loc is blocked, and loc.y+1 if loc and loc.y-1 are blocked.
HStand will try to stand at loc.x-1 if loc is blocked, and loc.x+1 if loc and loc.x-1 are blocked.
These stands will not use mapclick. Even if mapclick is turned on, they will use arrow keys.
These stands will not go up or down stairs, ramps, ladders, etc.
Added LOGOUT_COMMAND event to the Scripter.
Notes:
Register it using registerEventListener(), just like any other event.
If this event is registered, XenoMonitor will show a "Logout" button beneath the character. This event will get fired shortly after that button is pressed.
Callback Params:
x, y, z (they're strings, you will need to convert to integer)
Added SNAPBACK_RECEIVED event to the Scripter.
Notes: register it using registerEventListener(), just like any other event.
Callback Params: x, y, z (they're strings, you will need to convert to integer)
Added HUD.GetMainWindowDimensions to the Scripter
Notes: This already existed, but was not documented.
Parameters: none
Returns:
a table describing the dimensions of the screen
Added HUD.GetContainerDimensions() to the Scripter
Parameters: none
Returns:
a table describing the dimensions of all open containers
Added Walker.IsEnabled, Targeting.IsEnabled, and Looter.IsEnabled to the Scripter
Paramaters: none
Returns:
true or false depending on if the component is enabled or not
Added XenoBot.IsPaused to the Scripter
Parameters: none
Returns:
true if XenoBot is paused, false if not
Added XenoBot.GetUsername() to the Scripter
Notes: This already existed, but was not documented.
Parameters: none
Returns:
current username
Added XenoBot.IsInRealTibia() to the Scripter
Parameters: none
Returns:
True if in real Tibia, false if in Open Tibia
Added XenoBot.ShowDiagnostics() to the Scripter
Notes: turns on Diagnostic Information HUD
Added XenoBot.HideDiagnostics() to the Scripter
Notes: turns off Diagnostic Information HUD
Added HUD:Destroy() to the Scripter
Notes: This will completely destroy a HUD object. You shouldn't ever re-use it afterwards.
Parameters: none
Returns:
Not important
Here's a changelog of hot-fixes made as new bugs were discovered with the initial release:
Fixed a small bug where trial didn't work for some people.
This was a new bug with XenoBot Binary, fixed within 1 hour of release.
Fixed a bug that caused hotkeys not to work randomly.
This was a new bug with XenoBot Binary, fixed within 1 hour of release.
Fixed a bug that caused gotoLabel to work incorrectly when used directly instead of with the OOP API.
This was a new bug with XenoBot Binary, fixed within 6 hours of release.
Fixed a bug with the pagination on the Lua custom dialogs.
This was a new bug with XenoBot Binary, fixed within 6 hours of release.
Fixed a bug that caused the bot not to inject on Windows XP.
This was a new bug with XenoBot Binary, fixed within 6 hours of release.
Fixed a bug that caused "Loot First Over X" to skip bodies under X.
This was a new bug with XenoBot Binary, fixed within a day of release.
Fixed a bug that caused PvP safe to hit players.
This was a new bug with XenoBot Binary, fixed within a day of release.
Fixed a bug where Small BPs would cause wierd issues when Browse Field was used.
This was a new bug with XenoBot Binary, fixed within three days of release.
Fixed a bug that caused Targeting not to attack in rare cases.
This was a new bug with XenoBot Binary, fixed within three days of release.
Fixed various small debugs.
These were new to XenoBot Binary, many were fixed immedietely, some took a few days.
Fixed a bug with selling vials in Edron potion shop.
Fixed a small bug with Module:Delay and Module:Stop in the Scripter.
Added new information to the Diagnostic Information HUD.
Added functionality to detect when trying to use an unknown spell, and blacklist that spell so it won't be spammed.
Added Vampire Viscount corpse as a dustable corpse.
Added Self.Logout() to the Scripter.
Added ContainerOpenProxy to the Scripter.
Works like other proxies. See below for implementation example.