Requirements! Visual Basic 8 or higher
Brief Description:
I will show you how to make a quick and easy DragonFable Trainer as simple and quick as I can make it. I'll divide everything within this post for better understanding
Creating the Application:
• Open Visual Basic > New Project > Windows Form Application > Name it > Done
• First, we'll need a ShockWave Flash Player control○ To get that: Go to your ToolBox > Right Click somewhere inside the Toolbox > Select Choose Items... > and a pop up form will display
○ On the menu: Select the tab called COM Components > Scroll down and search for ShockWave Flash Object > Check the box besides it > Click Ok > Done
Reson you need to get this control is because this control is what the game runs on. This trainer simply changes the values of variables in the control, which is the real game. This is called changing the values of variables or simply putted, hacking.
• Now you need to design the layout of your program. Remember, the shockwave flash player will be called AxShockWaveFlash1 and also make sure you have the control in your form.
Coding the base of the program:
• At this point, you are now given the decision on how you going have your trainer work. Lucky for you, I will demonstrate some ways to code your base.
• First off, let me explain what exactly is the base of the program.○ The Base of the Program: This is what properties are going into your trainer. For the game to actually work, you'll have to set the properties of the Flash control. There are 2 properties you should worry about, Movie and Base.
○ Base: The base is a url of what the game is hosted on. Think of it as a base
○ Movie: The movie is another url that runs on the base.
• Back to what I was talking about .. coding your base: There are 3 ways you can have the base to be coded. (Manually, Pre-set and via server)○ Manually: This is when the user have to set the base of the program. (The Movie and Base) This is usually done by textboxes.
The user will have to execute an event, which will be posted below
Button1 is the executor
Textbox1 will hold the url for the base
Textbox2 will hold the urll for the movie
Code:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
AxShockwaveFlash1.Base = TextBox1.Text
AxShockwaveFlash1.Movie = TextBox2.Text
End Sub
○ Pre-set: This is when the url's of the Movie and the Base are already coded into the program
Example -
Code:
Dim Movie as String = "The Movie"
Dim Base as String = "The Base"
○ Via Server: [This is what I use for my trainers and this is the most suited way to load these strings.] Files via a server will hold these strings (url's of Movie and Base)
○ To use this, you will need a server to host the files on. The benefit of using this method is that you can change the property of the strings without having to update the program itself. For an example, if the Movie was updated, I can update the string so the program will automatically have the updated string without having to update the program and re-release it.
Using this code ..
You'll need a server. With that server, host 2 text files.
With one text file, the contents of it will only be the url of the Base
The other file will only be the url of the Movie
This code will open and read the contents of the files that is hosted on the server
Code:
Private Sub LoadBase()
Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create _
("") ' This is where the url of the hosted file will go
Dim response As System.Net.HttpWebResponse = request.GetResponse
Dim sr As System****.StreamReader = New System****.StreamReader(response.GetResponseStream())
AxShockWaveFlash1.Base = sr.ReadToEnd
sr.Close()
End Sub
Private Sub LoadMovie()
Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create _
("") ' This is where the url of the hosted file will go
Dim response As System.Net.HttpWebResponse = request.GetResponse
Dim sr As System****.StreamReader = New System****.StreamReader(response.GetResponseStream())
AxShockWaveFlash1.Movie = sr.ReadToEnd
sr.Close()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
LoadMovie() : LoadBase()
End Sub
Changing the Variables:
• This is similar to games such as Crossfire. They have addresses which represent something in the game. With DragonFable, these addresses are called variables. Each variable has a string the represents it.
○ For an example: your character strength points.
It is represented by this string. "character.origStats.intStr"
For a trainer to be actually called a trainer, it will need change the outputs of these variables
○ To change a variable:
As same as before, there are plenty of ways you can do this
Textbox1 is what will the new output will be
The code: AxShockWaveFlash1.SetVariable is what sets the new output of the variable
AxShockWaveFlash1.SetVariable("This is where variable will be", "This is what the output will be")
Code:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
AxShockWaveFlash1.SetVariable("character.origStats.intStr", Textbox1.Text)
End Sub
Note: If this code is executed, it will reset back to normal if not locked. To lock, use a timer instead.
Extra- Getting values of variables
• At some point you may just want to get the output of a variable. This can be done just as easy.
You will need to declare a string or integer, depending on what variable you're wanting to get, to store the output
When the code is launched, ThisOutput will = the variable
Code:
Dim ThisOutput as integer
ThisOutput = AxShockWaveFlash1.GetVariable("character.origStats.intStr")
Codes that you will need!
This is up to date as of today
Code:
Base: https://dragonfable.battleon.com/game/
Movie: https://dragonfable.battleon.com/game/gamefiles/core.swf?strFileName=game12_0_0.swf
Full Program Code:
Code:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Timer1.Start()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
AxShockwaveFlash1.Base = "https://dragonfable.battleon.com/game/"
AxShockwaveFlash1.Movie = "https://dragonfable.battleon.com/game/gamefiles/core.swf?strFileName=game12_0_0.swf"
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
AxShockwaveFlash1.SetVariable("character.origStats.intStr", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.origStats.intInt", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.origStats.intDex", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.origStats.intEnd", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.origStats.intCha", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.origStats.intLuk", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.origStats.intWis", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.intDefMelee", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.intDefPierce", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.intDefMagic", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.intBlock", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.intDodge", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.intParry", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.intCrit", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.intBonus", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.intDmgMin", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.intDmgMax", TextBox1.Text)
AxShockwaveFlash1.SetVariable("character.strElement", ComboBox4.SelectedText)
End Sub
Variables:
DRAGON
character.dragon.intBuff
character.dragon.intDebuff
_root.game.player.fullHeal
character.dragon.intHeal
character.dragon.intMelee
character.dragon.intMagic
_root.character.dragon.intMin
_root.character.dragon.intMax
_root.character.dragon.strItemName
_root.character.dragon.intTotalStats
_root.character.dragon.dateLastFed
_root.game.player.ItemCount
USER
character.dArmor.strArmorResists
_root.character.strQuests
_root.game.player.checkItemCount
_root.game.player.isHighEnufLevel
_root.battle.endBattle
_root.character.strSkills
_root.character.strArmor
character.strQuestFileName
character.strElement
character.intHP
character.intMP
character.intMaxHP
character.intMaxMP
characterintBlock
character.intDodge
characterintParry
character.intDefMagic
character.intDefRange
character.intDefMelee
character.intStr
character.intInt
character.intDex
character.intEnd
character.intCha
character.intLuk
character.intWis
character.intCrit
character.intBonus
character.intBoost
character.origStats.intStr
character.origStats.intInt
character.origStats.intDex
character.origStats.intEnd
character.origStats.intCha
character.origStats.intLuk
character.origStats.intWis
character.intDmgMin
character.intDmgMax
D Coins
_root.character.intCoins
_root.user.intAccessLevel
_root.quest.intEarnedExp
character.StrExperience
_root.quest.intEarnedSilver
_root.quest.intEarnedGold
_root.quest.intEarnedGems
_root.character.intExp
_root.character.intGems
_root.character.intGold
_root.character.intSilver
_root.character.intLevel
_root.character.intMaxBagSlots
character.dArmor.strArmorResists
character.intWeaponLevel
_root.character.intDragonAmulet
There are plenty more than just this
Includes a test project for you all to download below (Full VB project Source Code)
dpDesignsTestTrainer.rar - Jotti's malware scan
https://www.virustotal.com/file/8391...is/1342664569/ @
Nico