Results 1 to 9 of 9
  1. #1
    DawgiiStylz's Avatar
    Join Date
    Aug 2009
    Gender
    male
    Location
    Dawg House
    Posts
    7,811
    Reputation
    219
    Thanks
    2,896
    My Mood
    Tired

    Creating your own DragonFable Trainer

    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()
    Code:
    
    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



    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=game13_1_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:
    Code:
    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

  2. The Following User Says Thank You to DawgiiStylz For This Useful Post:

    skerf (01-19-2014)

  3. #2
    Rance-Sama's Avatar
    Join Date
    Aug 2012
    Gender
    male
    Location
    Ice
    Posts
    6,322
    Reputation
    653
    Thanks
    8,883
    Great tutorial, stickied.

  4. #3
    DawgiiStylz's Avatar
    Join Date
    Aug 2009
    Gender
    male
    Location
    Dawg House
    Posts
    7,811
    Reputation
    219
    Thanks
    2,896
    My Mood
    Tired
    A lot of stuff I posted is closed :l
    Like my trainer, it'll still work. Its universal for DF and will always be updated without me doing anything
    https://www.mpgh.net/forum/220-dragonfable-df-hacks-cheats-trainers/586069-kootrainer-dragonfable-trainer-v3-advance.html
    Last edited by DawgiiStylz; 09-22-2013 at 02:07 PM.

  5. #4
    Eareland's Avatar
    Join Date
    Feb 2010
    Gender
    male
    Posts
    285
    Reputation
    35
    Thanks
    1,234
    My Mood
    Lonely
    Thanks for this :P

  6. #5
    Mayion's Avatar
    Join Date
    Oct 2012
    Gender
    male
    Location
    Bed
    Posts
    13,504
    Reputation
    4018
    Thanks
    8,372
    My Mood
    Twisted
    Good Job Great Tutorial
    I do not use any type of messenger outside of MPGH.
    Inactive but you can reach me through VM/PM.










     

    Donator - 30 August 2013
    Battlefield Minion - 26 October 2013

    Blackshot Minion - 14 January 2014/16 September 2014
    Minecraft Minion - 7 February 2014/16 September 2014
    WarRock Minion - 23 February 2014
    League of Legends Minion - 21 March 2014

    Minion+ - 15 May 2014
    Other Semi-Popular First Person Shooter Minion - 8 August 2014
    CrossFire Minion - 23 October 2014
    Programming Section Minion - 13 November 2014
    Marketplace Minion - 7 December 2014

    Official Middleman - 7 December 2014 - 27 June 2015
    Moderator - 29 December 2014
    Project Blackout Minion - 10 January 2015
    News Force Interviewer - January 2015
    Steam Games Minion - 21 March 2015
    Dragon Nest Minion - 31 March 2015
    Publicist - April 2015 - 21 September 2015
    Global Moderator - 25 August 2015
    Super User - 13 August 2016



  7. #6
    DawgiiStylz's Avatar
    Join Date
    Aug 2009
    Gender
    male
    Location
    Dawg House
    Posts
    7,811
    Reputation
    219
    Thanks
    2,896
    My Mood
    Tired
    You're welcome (:

  8. #7
    demexus's Avatar
    Join Date
    May 2013
    Gender
    male
    Posts
    1
    Reputation
    10
    Thanks
    0
    How do I make my trainer load .swf though?

  9. #8
    MGamer's Avatar
    Join Date
    Mar 2014
    Gender
    male
    Posts
    22
    Reputation
    10
    Thanks
    14
    My Mood
    Amused
    Quote Originally Posted by demexus View Post
    How do I make my trainer load .swf though?
    create a folder in your programs bin folder so for my example program called WindowsApplication1 i will be making a folder called swf to store the .swf files in

    so it will look like this if you look at its path

    \Documents\Visual Studio 2013\Projects\WindowsApplication1\WindowsApplicati on1\bin\Debug\Swf




    fill that folder with your .swf hacks and in your trainer make a button and double click it, and use this code

    Code:
    Me.AxShockwaveFlash1.LoadMovie(1, (Application.StartupPath & "/Swf/Example.swf"))
    so what this is doing is loading your swf hack onto the first layer of the game, i do recommend importing hacks on anything higher than 1 as this can cause issues with some of the game interface at times.

    so to change the layer just simple change the 1 before the Application.StartupPath.




    there we go should be good to go, made this quick so not proof reading so let me know if you have any further issues

  10. The Following User Says Thank You to MGamer For This Useful Post:

    AlpacaBong (03-23-2014)

  11. #9
    switjive17's Avatar
    Join Date
    Nov 2014
    Gender
    male
    Posts
    12
    Reputation
    10
    Thanks
    0
    My Mood
    Amused
    I keep getting errors that AxShockwaveFlash1 is not declared. Pelase help -_-

Similar Threads

  1. Writing your own C++ Trainer
    By l0ngcat in forum Game Hacking Tutorials
    Replies: 46
    Last Post: 03-06-2019, 10:29 PM
  2. [Tutorial] Creating your own DragonFable Trainer | dpDesigns
    By DawgiiStylz in forum Visual Basic Programming
    Replies: 8
    Last Post: 01-06-2013, 07:37 AM
  3. [Tutorial] Creating your own DragonFable Trainer! | dpDesigns
    By DawgiiStylz in forum DragonFable (DF) Hacks / Cheats / Trainers
    Replies: 3
    Last Post: 07-22-2012, 04:05 AM
  4. Create Your own ADVANCED Trainer
    By Twirlyman15 in forum Combat Arms Discussions
    Replies: 15
    Last Post: 02-27-2010, 06:58 AM