You need TWO things:
1) Visual BASIC 6.0 (Enterprise Edition Works Too. And VB6 Portable is a bit too buggy, but I think it will work).
2) Sothink SWF Decompiler. DOWNLOAD LINK:
http://www2.sothink.com/download/swfdec.zip
After installation, I guess it is good to restart (No?). After installation and restarting, Open Up VB6!
__________________________________________________ __________________________________________________ _____
Start a "New Project" and select "Standard EXE".
And you will be presented with a blank "Form1". There will be a toolbox on the left hand panel. Right click on the toolbox panel and select components. A window will open up, scroll down and select "Shockwave Flash" and then OK
Then you may maximize your form and put the Shockwave Flash Object on your Form.
Now, select the ShockwaveFlash object and locate your eyes to the Properties "mini"-window and scroll down and more and enter the following:
Now you have to add Textboxes to your Form, and make their Text Properties to the loading addresses of the game.
Now let us select the server and FlashVars for this shall we? Double Click on the Form, not any object. And then enter in this code for the FlashVars. This code will load AQ server 10 A.K.A AQ10. Add,
Code:
ShockwaveFlash1.FlashVars = "strGUI=medium&strServer=aq10&strLanguage=&strAuto Ad=no"
in between the:
Code:
Private Sub Form1_Load()
End Sub
So it should end up like this:
Code:
Private Sub Form1_Load()
ShockwaveFlash1.FlashVars = "strGUI=medium&strServer=aq10&strLanguage=&strAuto Ad=no"
End Sub
Now go to the drop down menu, and select "Form" and the second drop down menu should be on "Load" by default. This will lead us to EXACTLY where we were above, I'm just telling you of another way to get there.
Forget about that Timer1 in that picture, I put it there by accident and deleted it afterwards... It's nothing.
Now, to make the ShockwaveFlash object load the game file, we add in this code:
Code:
ShockwaveFlash1.Movie = Form1.Text2.Text
ShockwaveFlash1.Base = Form1.Text1.Text
And make it end up like this:
Code:
Private Sub Form_Load()
ShockwaveFlash1.Movie = Form1.Text2.Text
ShockwaveFlash1.Base = Form1.Text1.Text
ShockwaveFlash1.FlashVars = "strGUI=medium&strServer=aq10&strLanguage=&strAuto Ad=no"
End Sub
To test the trainer you have built so far, press F5. You can Login now.
__________________________________________________ __________________________________________________ _____
You must be wondering how to add "hacks" for it. Well, according to XHale, this is the "Hard Part". This is where the SWF Decompiler comes in.
Add a command button to your Form and change it's caption property to HP Hack. Now, Double Click it to bring up the code editor to give it a function to give you a HP hack. Now, use this code
Code:
Private Sub Command1_Click()
Call ShockwaveFlash1.SetVariable("<Variable Comes Here>", <Manipulated Value of the Variable comes here>)
End Sub
Now, the Variable is the root of the value we want to change/manipulate/hack. To locate a Variable, we need to decompile the Lore3386A.swf file and locate for all the Variables and take the one which we are looking for. To decompile the Lore3386A.swf, we first need to go to the movie address, which is
http://aq.battleon.com/Build30/engine/Lore3386A.swf, in Internet Explorer 6/7, go to the Tools toolbar option, and click on Sothink SWF Catcher. Then a window will open up, click on Lore3386A.swf and then Save it to the Desktop. Then open the Lore3386A.swf with Sothink SWF Decompiler, and start searching for the Variables under Lore3386A.swf > Action > MainMovie.
The Variable for HP is most likely to be "_root.player.intHealth" or "_root.monster.intHP". In AQ, it is HP, so the Variable for your character's HP is "_root.player.intHP" and the Variable for the your enemy's HP is "_root.monster.intHP". Thus, our code will become like this if we want to make OUR HP's Variable Value to 1337.
Code:
Private Sub Command1_Click()
Call ShockwaveFlash1.SetVariable("_root.player.intHP", 1337)
End Sub
If you want to change your HP to a custom value, add in a TextBox now, next to the Command Button (Actually, it really doesn't matter where it is as long as they are linking together through the codes, making them together just makes it easier to know what it is for). And make it's text property to "9999". TextBoxes have "text" as their "caption", and other objects have "caption", as their "text". This will make your HP change to 9999 instead of 1337, but you also have to do some editing to the code first too. We will edit Command1_Click's function to make it change the HP's value to the number specified by the user in the 3rd TextBox/Text3 object's "Text" property (The first two were for the loading addresses, remember?). Edit the code to:
Code:
Private Sub Command1_Click()
Call ShockwaveFlash1.SetVariable("_root.player.intHP", Text3.Text)
End Sub
You may now add more Command Buttons and functions to it, and instead of "intHP", you may also put "intMP" (in a separate/individual/new Command) for MP, and "intSP" for SP. BTW, "int" is "Integer", which is for numbers only. And "str" is "String", which is for words/numbers and have their own property/function (Not so sure about the String). There are MANY more Variables and roots. Some of them are:
intSTR
intDEX
intINT
intEND
intCHA
intLUK
You SHOULD be able to learn the rest yourself after reading this and I now HOPE that you have a sense of how Visual BASIC 6 works and all
credits to me
smaharar1