What's up, so to get where you want this will be simple:
- First Spoiler contain a some background and me ranting about the state of the game to practice my english;
- Second Spoiler I'll get through what the plugin I have made do and how you can use it;
- Finally instructions to what you need to do to run the bots I made.
This pandemic is fucking with everyone and with the start of the quarantine in ~april (which will end when it's "ready o-clock" as Alina would say) I came back to this game after a 3 year hiatus. The nostalgia kicked in and I hand farmed a great part of the shit I missed to waste time as I had no other game I wished to play, and there is me, playing day after day as months go by and so the nostalgia, making me seek for communities related to AQW to do what I liked the most in the game: help one another.
I wandered by some social medias and found people who needed help; people minding their own business afking in yulgar and people criticizing AE. Honestly, this is nothing new, but the game is already reaching 12 years and it is the same 2D game I played as a kid back in the days, nothing changed neither improved, adding to the snowball of decadence this game haven been through.
This would be enough to make me get the fuck out and I was into that idea till I found AQLite and all the simple but effective shit it adds in to the game using all AQW already have, and this made me play for some more weeks before I got bored. So, when this happens, I used to acess this forum and see what I could do to add to this forum.
Well, 3 years ago RBot was released and I was interested in what I could do with it but I had no will left to play AQW, so I left that thought aside which brings me back to now where I wanted to do something different, and program a bot with C# looked cool, leading me to get some coding experience. The last 2 months I dived into RBot documentation and tried to apply some ideas to improve untill I reached the further it could get me (thanks to rodit, imbasu and mxsgx for creating scripts that I used as a base to learn). The C# script method was good but not much effective, guiding me to Grimoire plugins which was other thing I was insterested before I quitted the game.
So I downloaded visual studio (I have some background with windows forms) and the source code of Grimoire, had a good read to understand it and here we are, I made a plugin to shove the data I colected while I was redoing the story.
This plugin is recommended to whoever is doing history related quests
First you need to load the plugin, click in Tools then Plugin Manager (1); click "..." button (2) and find where you downloaded the file; then click in Load (3)
- > There you can put the quest ID's given in the text file (you can use the Grimoire Loader too) or any other quest ID you want, for multiple quests be sure to split then with a ',' and no spaces;
- > Works like the Grimoire Loader, any quest you want to show needs to be loaded first (by the loader or inside the game);
- > All quests that you loaded will fill the controls in the right side;
- > the "Index" number is used to add info in the row of same Index (see example below), "Clear fields" will reset all info controls;
- > Here you can type the location or get the actual location of your character (Get current button);
- > You can either type the monster name or click "Refresh" to get the monsters in the actual room in, "Add monster" will add all info (map, cell, pad and monster name) to the selected Index row in the upper table;
- > The info of a get map item, "Add get map" will add the map, item id and quantity of the item in selected Index row on the lower table;
- > Will add the commands (see example below).
In this example I will redo the Prologue chapter with the ID's I have:
First you load the quests to fill the tables:
As I already did the chapter, some quests will not appear but will be loaded still, and you can see we can now select a quest from the combo box options.
Now you only need to fill the info of the shown required items in the top table, here you can either use the left side controls or even click in a cell and edit directly in the table:
Some quests need get map items and although they show in the upper table (cause they are Temp Items in essence), you need to know what is the ID of the item. To know the number, use the Packet Sniffer/Logger of Grimoire and look for a packet like "%xt%zm%getMapItem%xxxx%38%", the number you need will be the last.
In this case the ID is 38 and we need 5 of it, so we fill the info of that item:
Note that now we have two of the same item and we don't want that. To delete the upper table info you can select the entire row to reveal the "Delete selected" button:
Just click it and it will delete the selected row(s)
To add the command you need to select a quest and click "Add command", it will look like this in the Bot Manager:
Or you can check "Labels" and the result will be like this:
*If you check "All" it will iterate through the quests in the combo box to add them all.
You noticed the list in the lower right corner, it is the sequence the quests will be added if "All" is checked. In this case, "Undead Assault" is not the first quest of the chapter, to change that you can drag and change the sequence to it's right position which is like this:
You can click update and the combo box will be updated too.
The button next to update will add a "Quest Verify" statement, which iterate backwards the sequence to see if the quest is avaible to accept, adding to the bot commands:
Some notes:
- If you delete the wrong item from the quest, you can click "Delete quest" and then click "Fill" again and it will reset the data for only that, or any other deleted quest which is still loaded;
- Editing directly on the table is faster if you already have all the info you need annotated, but you can do it while doing the quest using the monster and location grabbers;
- The monster combo box will only be activated when you click refresh, disabling the field you can type in until you click "Add monster";
- The "Select Drops" combo box you can use to add directly to the drop list, but it can show temporary items too as Reward items aparently don't record if they are temp or not;
- ** If the quest need a item from a shop or anything else that don't fit in a monster item or get map, delete the requirements and click "Add command", then manually place the commands as normal.
1 - You don't need the plugin to run the bots as it uses the Grimoire base commands;
2 - There is a QuestIDs.txt file that contains all the quests each bot runs, MAKE SURE TO LOAD THEM BEFORE STARTING, AS "QUEST AVAIBLE" STATEMENTS WON'T WORK WITHOUT THEM LOADED;
3 - Use Infinite Range (it should be already toggled but be sure), set your skills and delay (1000 is the safe to go);
I'll be honest, I didn't test all the bots as I made them first in RBot and used it's code to fill in on Grimoire so here is the updated ones.
The only change I made to the bots configuration was:
- Set the delay to 500 but without the 'skip if statements'; to balance the delay I removed the quest verifying of all the quests so the bot now only verifies when it is started (that was a silly idea as consecutive if statements without delay can mess up the bot big time);
- Confirmed that all of them have Infinite Attack Range and Skip Cutscenes enabled, now you can just start the bot if you have a class that don't need special combos.
That's a level 3 that I scouted with my main through the sagas (now level 34), I fixed the Chaos Finale too but most part of it need stronger classes
To the plugin I managed some issues and fixed other shenanigans, the interface is about the same:
Changes:
- Removed the index thing so now if you want to add the info, just select the row you want and click "To Selected" (works only for the monster ones, the get maps you can change directly on the table)
- Added more options to separate the quest ID's, now it doesn't throw a exception if something is wrong with the format
- Added tooltips to buttons and labels, just mouse over them
New scans:
Virus Total
Virscan