Hello. In this release, Grimoire is itself a proxy between the game client and the game server. This introduces some interesting possibilities, some of which have been implemented in this release.
You can make good use of the proxy if you are a plugin writer. It is possible to modify the contents of, or stop any and all packets from being sent. If you want to try it out, either make an attempt to figure out how yourself, or wait about a week; I'll write a small piece of documentation soon (and another plugin example). Below are two examples of message (packet) handlers that might be of some help.
This first one will stop dropItem packets (that makes the drops show up in game) if the following 3 conditions are met:
1. The bot is currently running
2. Item rejection is enabled
3. The item is not whitelisted
Code:
using System.Collections.Generic;
using System.Linq;
using Grimoire.Game;
using Grimoire.Game.Data;
using Grimoire.UI;
using Newtonsoft.Json.Linq;
namespace Grimoire.Networking.Handlers
{
public class HandlerDropItem : IJsonMessageHandler
{
// Ensures that this handler only receives dropItem packets
public string[] HandledCommands { get; } = {"dropItem"};
public void Handle(JsonMessage message)
{
JToken j = message.DataObject?["items"];
if (j != null)
{
InventoryItem item = j.ToObject<Dictionary<int, InventoryItem>>().First().Value;
if (BotManager.Instance.ActiveBotEngine.IsRunning)
{
var config = BotManager.Instance.ActiveBotEngine.Configuration;
/* If item rejection is enabled, and this item is not whitelisted,
stop the packet from being sent so that the drop will
not be shown at all */
message.Send = !(config.EnableRejection && config.Drops.All(
d => !d.Equals(item.Name, StringComparison.OrdinalIgnoreCase)));
}
World.OnItemDropped(item);
}
}
}
}
This one will remove animation- and aura information from the ct packet when the Disable player animations option is enabled:
Code:
using Newtonsoft.Json.Linq;
namespace Grimoire.Networking.Handlers
{
public class HandlerAnimations : IJsonMessageHandler
{
public string[] HandledCommands { get; } = {"ct"};
public void Handle(JsonMessage message)
{
if (message.DataObject["anims"] != null)
message.DataObject["anims"] = new JArray();
if (message.DataObject["a"] != null)
message.DataObject["a"] = new JArray();
}
}
}
Should you attempt to do this, when you have written a message handler it needs to be registered with the proxy in order to work. Register it by calling:
Grimoire.Networking.Proxy.Instance.RegisterHandler (...)
All packet types are supported (JSON, XML, XT)
Important information
This release will be here for about 1 week. I will be watching for bug reports and try to fix them all. When the week has passed, I will be releasing the full source code of Grimoire. This is because I most likely won't have time to work on the project anymore.
Code:
Grimoire 1.1
- Fixed critical issue with joining maps
- Fixed critical issue with resting while in combat
- Added a 'Send' button to the packet spammer window, used to send the packet in the textbox once
- The design window can now be used
Grimoire 1.2
- Updated UI slightly
- Improved map load complete check (it is now seemingly bulletproof)
- Fixed a mistake in the loading of a bot file
- Fixed a mistake in checking temp items
- Fixed a mistake in checking bank items
- Added a function to use skill X only when health is less than Y% (Called safe skill in the bot)
- Added a check that will cancel the current target if the current target is yourself
- Added a checkbox to the item whitelist. It allows you to configure whether the items in the whitelist should be picked up or not.
- Added a "Kill for items/temp items" function
- Streamlined the skill delay function. You can now set the skill delay to a minimum of 100 milliseconds, without problems.
- Added party/friend bot (Read the text file in the .zip before using!)
- Grabbers are now usable
Grimoire 1.2.1
- Fixed a critical error in the detection of monsters when killing for items/temp items
Grimoire 1.3
- Added configurable hotkeys. Hotkeys can also be saved and will be loaded when Grimoire is launched.
- Added function that enchants your currently equipped items with the specified enchantment. Level 51-65 only at this time.
- A help document explaining some of the more unusual functions is now included in the download
- The minimum value for the bot delay is now 500 (not recommended to decrease if your bot contains Join commands)
- Added a function that ensures the player is out of combat before joining a map
- Added fast travels
- Fixed critical bug where parts of the game would break if the player logs out
- Fixed error that occurs when the Debug (and possibly others) window is opened
- Fixed duplicate window bug
- Fixed issue with "Exit cell before completing quest" function
- Improved the performance a bit, the game now runs faster
Grimoire 1.4
- Fixed critical bug where drop names containing an apostrophe would be incorrectly handled, resulting in the bot rejecting the item
- Fullscreen has been enabled in the application
- Added "Auto bots" tab in the Bot window. (Only 2 bots at this time, I had to rush this release because of the critical bug)
- Fixed a minor bug in the "Kill for" function
Grimoire 1.5
- Added "Get all drops" option
- Added "Reject all drops" option
- Fixed critical calculation error when minimizing the application
- Added "Saved bots" tab in the Bot window (searches for .gbot files and displays them in a list box. Also searches all sub-directories)
- Modified the UI behavior when opening/closing windows
- Added manual input for login information so that you can run several Grimoire instances at once with different accounts
- Added armor customizer in Loaders
- Added armor customizer action in Hotkeys
- Added map load timeout. If the map has been loading for 60 seconds and isn't finished, it will be reloaded.
- Added "Set spawn point" option
- Fixed minor error in the processing of quests
- Added new bot command: "Accept quest"
- Added new bot command: Buy back (PLEASE READ THE HELP FILE!)
Grimoire 1.6
- Added option to load the test version of AQW
Grimoire 1.7
- Fixed autobots bug where all commands would be "Unknown"
- Added checks to make sure that bank items are always loaded when using bank commands
- Login information for the buy back command is no longer saved in bot files
- .dmbot compatibility; you can now load .dmbot files into Grimoire
- The bot can now pick up drops on the AQW test servers
- Auto relogin failure detection (read help.txt, this function is very useful)
- Auto relogin delay
- Auto relogin cmd delay
- The bot will no longer attempt to use a skill when you do not have enough mana
- Added option to complete quests with an item id (where you select a reward, like Voucher Item for instance)
- Grimoire can now be minimized to system tray
Grimoire 1.8
- New command: goto
- Option to automatically restart bot if player goes afk when the bot is running
- Fixed disconnection bug when loading quests
- Added option to merge bots
- New "If..." command: "Player is in room"
- New "If..." command: "Player is not in room"
- Lag killer and remove players options are temporarily disabled when relogging to avoid potential problems
- Added option to skip bot delay for "If..." and "Index up/down" commands
- New command: change bot delay (changes bot delay while the bot is running)
- Fixed certain errors when loading/saving bots
- Fixed "Skip Cutscene" option not working at all
- Fixed some bugs with using skills
- Resolved minor issues with certain item names
- Resolved minor issues with "greater than/less than" if statements
Grimoire 1.8.1
- Fixed quest completion bug
Grimoire 1.8.2
- Fixed another quest completion bug
- Fixed error that prevented the AQW test version from loading
Grimoire 1.9
- Added new if statements: "If number of monsters in cell is greater/less than"
- Added option to hide password when configuring the buy back command
- Added hotkey option: minimize Grimoire to system tray
- Quests where rewards are selected (such as Voucher Item) can now be added to the quest list for automatic completion
- Fixed critical bug where the bot wouldn't stop when disabling it
- Added option to save/load .xml files in the packet spammer
Grimoire 3.0
- The bot has been completely rewritten, severe bugs have been fixed including random crashes and disconnects.
- Added a timeout mechanism for bot commands, ensuring the bot does not get stuck
- Added possibility to specify an author and description for bots
- Improved the way saved bots are displayed
- Added option to kill random monster for items
- Added rest command that only executes if your HP is less than X%
- Added option to wait for all skills to cool down before attacking
- Added walk command
- The goto command now checks whether the player is in the same map or not before executing
- Added possibility to disable bot delay (further explained below)
- New if statements: "Level is less than", "Level is greater than", "Level is", "Gold is less than", "Gold is greater than"
- Improved .dmbot conversion, you no longer need to click a "small, gray, textless button"
- Added bot statistics
- Added option to automatically clear the debug output upon reaching 500 lines
- The skip cutscene option no longer disables lag killer
- Added attack bot option (slightly different than what you are used to)
- Added option to play a sound when one of the specified items are picked up by the bot
- Added possibility to add custom fast travels
- Added possibility of seeing all the data specified for a command: double click the command in the list
Grimoire 3.1
- Fixed critical bug: jump function was broken
Grimoire 3.2
- Fixed critical bug: item names with an ampersand in their names (&) caused errors when using bank and inventory commands
- Fixed mistake with "Rest if HP <X%"
- The bot now waits until the player is out of combat before executing accept and complete quest commands
- Text boxes in the bot manager now automatically clears the default text when clicked on
- Added support for Augoeides/Hidden Project
Grimoire 3.3
- When Grimoire is minimized, all open windows (such as the bot manager) are also minimized.
- Lag killer and remove players options are disable temporarily when auto relogging
- Added hotkeys. They are now operating system-wide meaning they will ALWAYS work when Grimoire is running. However, I have it made such that if Grimoire is minimized, hotkeys are ignored. EXCEPT if the hotkey is set to show/minimize Grimoire, then it will work regardless.
- Fixed the walk command (it was broken in the bot manager)
- Fixed errors with the AQW test version, everything was broken in previous versions
- Fixed bugs with the grabber
Grimoire 3.4
- Bot files are a bit different. You will have to re-create all of your bots, once again........... Just kidding, they are automatically converted but you should re-save them.
- The drops whitelist has been greatly improved and is now faster than ever.
- New command: load bot (has to be saved in the default Bots folder)
- Hopefully fixed some auto relogin bugs
- Improved and fixed a bug with the buy back, previously item whose names contained symbols could not be bought back
- Fixed kill-for command bugs
- Replace index up/down with goto index, although the old commands still work
- Moved everything from "Options" to Bot manager > Options so they are now part of .gbot files.
- The bot should now be a bit more lightweight because I rewrote some retarded code
- Removed metroframework (UI theme) to make my life easier because used Grimoire as part of a school project. Maybe I will get it back in the future, maybe not. If you like UI design and know some C#, feel free to create a UI that Grimoire might use.
Grimoire 3.5
- Implemented plugin system
- Rest if is no longer a command
- New command: logout
- Text can now be copied in the new grabber, triple click an item to edit/copy the text
- Added option to disable player animations
- New command: buy item
- The join command now ensures that you end up in the correct cell
- Safe skills can now be mana based
- "Exit combat before completing quest" now also works for the complete quest command
- There is now an option for controlling whether the bot is restarted when the player dies
- New command: labels. You add a label in the command list, and then you can goto that label with a goto label command (this removes all the index commands)
- Added option to set FPS
- Commands in the command list can now be edited by double clicking them
Grimoire 3.6
- Fixed bug where the whitelist would either pick up items or reject them, not both
- Fixed error that occured when clicking the buyback textbox
- Quests and bank items are now loaded if needed when the Load Bot command is executed
- Fixed merge option duplication bug
- Made it more clear that the bot does not have to be started to use infinite range, monster magnet etc...
- "Options" are now reapplied when auto-relogin finishes
- Fixed accept quest command bug
- Increased the command timeout for all kill commands
Grimoire 3.7
- Grimoire is now a proxy server
- Items will now not be shown at all instead of being rejected
- Disable player animations now functions properly (and wonderfully)
- Added packet tamperer (used to easily send any packets to both the client and the server)
- Items that contain extra spaces in their name (items and temp items) will no longer be a problem
https://www.virustotal.com/#/file/96...2ea8/detection
https://virusscan.jotti.org/en-US/fi...job/1wbf8bkqpm
https://www.virustotal.com/#/file/58...d72f/detection
https://virusscan.jotti.org/en-US/fi...job/lgv9syi2dd
https://www.virustotal.com/#/file/96...2ea8/detection
https://virusscan.jotti.org/en-US/fi...job/1wbf8bkqpm