The PokéCommunity Forums Fan Games ROM Hacking Tools, Tutorials & Resources
Tutorial Fire Red Wonder Trade tut

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.


Reply
 
Thread Tools
  #1    
Old October 5th, 2017 (8:49 AM). Edited October 6th, 2017 by Harlee Quinn.
Harlee Quinn Harlee Quinn is offline
     
    Join Date: Aug 2017
    Posts: 12
    YOU NEED TO HAVE EITHER JPANS HACKED ENGINE INSTALLED BEFOREHAND INTO YOUR COPY OF FIRE RED
    OR THE HACK APPLIERS SPECIAL 0X62
    OR ELSE THIS WILL NOT WORK!!!!!


    THIS IS NOT STAND ALONE IT NEEDS JPANS HACKED ENGINE!!!!!

    Tools needed

    XSE
    AdvanceMap
    JPANS Hacked Engine

    So, as we all know Gen 3 lacks a major feature some of the later games have, which is wonder trading.
    As most know, you trade randomly with someone online to get a pokemon they randomly traded. Well, you need servers and online resources and some major coding knowledge I dont have cause im not a pro.

    What I do have thou is offline wonder trading that you can control which pokemon the player is able to receive. This is the result of 3 weeks of nonstop work so without much ado, lets make this simple. This guide also assumes you know the BASICS of scripting, like lock, faceplayer ect. Basic stuff, ya know?
    Any command questions as what does what, best resource i've found.
    http://sphericalice.com/romhacking/documents/script/

    Now, because it uses JPANS hacked engine it may or may not work well with a hack in progress. I don't know. I do know the below code works with either the full hacked base with cleared scripts or his nifty little tool to apply certain parts of the hacked engine. A quick google search will give you the hacked engine, if I need to reupload his engine myself I will do so. Last I checked the link on the thread here was broke.

    The filter is seperate from the code it's self because A) it makes it too long and B) because it puts wonder trading on an NPC i had different levels of the filter for the hack I was planning to build but gave up on due to personal limits.

    How to

    This is simple. Just open XSE, copy paste the clean script from below, add in the filter with whatever kinda modifications you want for the filter (explained below) and paste it into XSE. Make sure you insert the filter into the right spot. Then simply save it, then compile the script. Place the offset XSE gives you into a NPC on advancemap an enjoy randomly traded pokemon.

    This is the code, in its purity.

    Spoiler:

    #Dynamic 0x740000
    #org @starting
    lock
    faceplayer
    msgbox @qw MSG_YESNO
    compare LASTRESULT 0x1
    if 0x0 goto @end
    msgbox @by MSG_NORMAL
    special 0x9f
    waitstate
    compare 0x8004 0x6
    if 0x4 goto @end
    special 0x62
    goto @start

    #org @end
    msgbox @as MSG_NORMAL
    release
    end

    #org @start
    random 0x19C
    compare LASTRESULT 0x0
    if 0x1 goto @start
    compare LASTRESULT 0xFC
    if 0x1 goto @start
    compare LASTRESULT 0xFD
    if 0x1 goto @start
    compare LASTRESULT 0xFE
    if 0x1 goto @start
    compare LASTRESULT 0xFF
    if 0x1 goto @start
    compare LASTRESULT 0x100
    if 0x1 goto @start
    compare LASTRESULT 0x101
    if 0x1 goto @start
    compare LASTRESULT 0x102
    if 0x1 goto @start
    compare LASTRESULT 0x103
    if 0x1 goto @start
    compare LASTRESULT 0x104
    if 0x1 goto @start
    compare LASTRESULT 0x105
    if 0x1 goto @start
    compare LASTRESULT 0x106
    if 0x1 goto @start
    compare LASTRESULT 0x107
    if 0x1 goto @start
    compare LASTRESULT 0x108
    if 0x1 goto @start
    compare LASTRESULT 0x109
    if 0x1 goto @start
    compare LASTRESULT 0x10A
    if 0x1 goto @start
    compare LASTRESULT 0x10B
    if 0x1 goto @start
    compare LASTRESULT 0x10C
    if 0x1 goto @start
    compare LASTRESULT 0x10D
    if 0x1 goto @start
    compare LASTRESULT 0x10E
    if 0x1 goto @start
    compare LASTRESULT 0x10F
    if 0x1 goto @start
    compare LASTRESULT 0x110
    if 0x1 goto @start
    compare LASTRESULT 0x111
    if 0x1 goto @start
    compare LASTRESULT 0x112
    if 0x1 goto @start
    compare LASTRESULT 0x113
    if 0x1 goto @start
    compare LASTRESULT 0x114
    if 0x1 goto @start
    compare LASTRESULT 0x90
    if 0x1 goto @start
    compare LASTRESULT 0x91
    if 0x1 goto @start
    compare LASTRESULT 0x92
    if 0x1 goto @start
    compare LASTRESULT 0x96
    if 0x1 goto @start
    compare LASTRESULT 0x97
    if 0x1 goto @start
    compare LASTRESULT 0xF3
    if 0x1 goto @start
    compare LASTRESULT 0xF4
    if 0x1 goto @start
    compare LASTRESULT 0xF5
    if 0x1 goto @start
    compare LASTRESULT 0xF9
    if 0x1 goto @start
    compare LASTRESULT 0xFA
    if 0x1 goto @start
    compare LASTRESULT 0xFB
    if 0x1 goto @start
    compare LASTRESULT 0x191
    if 0x1 goto @start
    compare LASTRESULT 0x192
    if 0x1 goto @start
    compare LASTRESULT 0x193
    if 0x1 goto @start
    compare LASTRESULT 0x194
    if 0x1 goto @start
    compare LASTRESULT 0x195
    if 0x1 goto @start
    compare LASTRESULT 0x196
    if 0x1 goto @start
    compare LASTRESULT 0x197
    if 0x1 goto @start
    compare LASTRESULT 0x198
    if 0x1 goto @start
    compare LASTRESULT 0x199
    if 0x1 goto @start
    compare LASTRESULT 0x19A
    if 0x1 goto @start
    setvar 0x8004 LASTRESULT
    bufferpokemon 0x0 LASTRESULT
    goto @trade

    #org @trade
    showpokepic 0x800D 0x3 0x3
    givepokemon 0X800D 0X32 0x0 0x0 0x0 0x0
    preparemsg @get-msg
    fanfare 0x101
    waitmsg
    waitfanfare
    waitkeypress
    hidepokepic
    release
    end



    '---------
    ' Strings
    '---------
    #org @ty
    = Thank you!

    #org @qw
    = Do you want to Wonder Trade?\pThe choice is yours...

    #org @as
    = We hope to see you again.

    #org @by
    = Pick your Pokemon to give up.

    #org @get-msg
    = You got a [BUFFER1]\pTake good care of it!


    This is the code explained in full....
    Spoiler:

    #Dynamic 0x740000
    #org @starting
    lock
    faceplayer
    msgbox @qw MSG_YESNO yes no to wondertrading
    compare LASTRESULT 0x1
    if 0x0 goto @end player said no, end script.
    msgbox @by MSG_NORMAL
    special 0x9f choose your pokemon
    waitstate
    compare 0x8004 0x6 if cancel/B
    if 0x4 goto @end end script if last result
    special 0x62 deletes chosen pokemon
    goto @start


    #org @end
    msgbox @as MSG_NORMAL
    release
    end

    #org @start
    random 0x19C generates a random number from 0 to 412, can be changed
    FILTER HERE
    setvar 0x8004 LASTRESULT its necessary idk why
    bufferpokemon 0x0 LASTRESULT sets generated pkmn name to buffer1
    goto @trade

    #org @trade
    showpokepic 0x800D 0x3 0x3 shows the pokemon
    givepokemon 0X800D 0X32 0x0 0x0 0x0 0x0 gives you the pokemon
    preparemsg @get-msg you got that pokemon message
    fanfare 0x101
    waitmsg some fanfare, closing commands ect ect
    waitfanfare
    waitkeypress
    hidepokepic
    release
    end


    '---------
    ' Strings
    '---------
    #org @text
    = Searching.\pSearching..\pSearching...

    #org @ty
    = Thank you!

    #org @qw
    = Do you want to Wonder Trade?\pThe choice is yours...

    #org @as
    = We hope to see you again.

    #org @by
    = Pick your Pokemon to give up.

    #org @get-msg
    = You got a [BUFFER1]\pTake good care of it!


    Looks great, sounds great!

    BUT WAIT THERES MORE! If you didn't notice there is a blank spot in the @start string. That's cause that should have been labeled the filter string, but I accidentally made the filter with @start instead of @filter an after I set it like I did I gave up cause I had done too many, was a hassle. The filter section is easy, simply

    compare LASTRESULT 0xFFF
    if 0x1 goto @start

    where FFF is the pokemons hex code. If that pokemons number was generated then, it starts over an generates a new number until it found on not on the list. The list below is first comprised of Glitched pokemon that can appear through the glitch, gold bulbasaur and the blanks after celibi, while the rest of it is the legendary pokemon for gen 3. At the minimum to avoid messing things up, use 0x0 to 0x114 because those are the empty ingame slots.


    Spoiler:

    compare LASTRESULT 0x0
    if 0x1 goto @start
    compare LASTRESULT 0xFC
    if 0x1 goto @start
    compare LASTRESULT 0xFD
    if 0x1 goto @start
    compare LASTRESULT 0xFE
    if 0x1 goto @start
    compare LASTRESULT 0xFF
    if 0x1 goto @start
    compare LASTRESULT 0x100
    if 0x1 goto @start
    compare LASTRESULT 0x101
    if 0x1 goto @start
    compare LASTRESULT 0x102
    if 0x1 goto @start
    compare LASTRESULT 0x103
    if 0x1 goto @start
    compare LASTRESULT 0x104
    if 0x1 goto @start
    compare LASTRESULT 0x105
    if 0x1 goto @start
    compare LASTRESULT 0x106
    if 0x1 goto @start
    compare LASTRESULT 0x107
    if 0x1 goto @start
    compare LASTRESULT 0x108
    if 0x1 goto @start
    compare LASTRESULT 0x109
    if 0x1 goto @start
    compare LASTRESULT 0x10A
    if 0x1 goto @start
    compare LASTRESULT 0x10B
    if 0x1 goto @start
    compare LASTRESULT 0x10C
    if 0x1 goto @start
    compare LASTRESULT 0x10D
    if 0x1 goto @start
    compare LASTRESULT 0x10E
    if 0x1 goto @start
    compare LASTRESULT 0x10F
    if 0x1 goto @start
    compare LASTRESULT 0x110
    if 0x1 goto @start
    compare LASTRESULT 0x111
    if 0x1 goto @start
    compare LASTRESULT 0x112
    if 0x1 goto @start
    compare LASTRESULT 0x113
    if 0x1 goto @start
    compare LASTRESULT 0x114
    if 0x1 goto @start
    compare LASTRESULT 0x90
    if 0x1 goto @start
    compare LASTRESULT 0x91
    if 0x1 goto @start
    compare LASTRESULT 0x92
    if 0x1 goto @start
    compare LASTRESULT 0x96
    if 0x1 goto @start
    compare LASTRESULT 0x97
    if 0x1 goto @start
    compare LASTRESULT 0xF3
    if 0x1 goto @start
    compare LASTRESULT 0xF4
    if 0x1 goto @start
    compare LASTRESULT 0xF5
    if 0x1 goto @start
    compare LASTRESULT 0xF9
    if 0x1 goto @start
    compare LASTRESULT 0xFA
    if 0x1 goto @start
    compare LASTRESULT 0xFB
    if 0x1 goto @start
    compare LASTRESULT 0x191
    if 0x1 goto @start
    compare LASTRESULT 0x192
    if 0x1 goto @start
    compare LASTRESULT 0x193
    if 0x1 goto @start
    compare LASTRESULT 0x194
    if 0x1 goto @start
    compare LASTRESULT 0x195
    if 0x1 goto @start
    compare LASTRESULT 0x196
    if 0x1 goto @start
    compare LASTRESULT 0x197
    if 0x1 goto @start
    compare LASTRESULT 0x198
    if 0x1 goto @start
    compare LASTRESULT 0x199
    if 0x1 goto @start
    compare LASTRESULT 0x19A
    if 0x1 goto @start



    BUGS
    emme97 gave the fix for no pokemon selected, many thanks!

    Levels are set to 50 in this version here. I dont know if I can randomize them through this method, much less make the levels realistic an no impossible leveled pokemon without an excess of if this then that routines. Just a heads up, you will have to filter the pokemon out depending on the level you set it to.
    JPANS Hacked Engine Bug
    Kinda rare but still happened to me while trying to code this, cause I use clean roms after every 5 code changes. Every now and then when you add JPANS hacked engine it will corrupt special 0x9f and it will only act like your picking the first pokemon no matter what. Something duun goofed if thats your problem, I hope you have a backup cause I dont know how to fix that. BEWARE


    Happy Single Player Wonder Trading guys, I can't wait to see this in someones hack.
    Reply With Quote

    Relevant Advertising!

      #2    
    Old October 6th, 2017 (1:50 AM).
    eMMe97 eMMe97 is offline
       
      Join Date: Jan 2015
      Posts: 21
      Good job!!!
      I fixed it, now works perfectly. The last problem is the level of the Pokémon.
      The fiirst part till #org @end

      #Dynamic 0x740000
      #org @starting
      lock
      faceplayer
      msgbox @qw MSG_YESNO
      compare LASTRESULT 0x1
      if 0x0 goto @end
      msgbox @by MSG_NORMAL
      special 0x9f
      waitstate
      compare 0x8004 0x6
      if 0x4 goto @end
      special 0x62
      goto @start
      Reply With Quote
        #3    
      Old October 6th, 2017 (3:51 AM).
      Harlee Quinn Harlee Quinn is offline
         
        Join Date: Aug 2017
        Posts: 12
        Awesome, thanks eMMEe97, I'll update the code an credit you for the fix!

        I had it figured out once but the impossible levels are what would be a pain through this method like level 1 gyrados or level 10 venusaur for example without having some other kind of filter....
        Reply With Quote
          #4    
        Old October 7th, 2017 (5:13 AM).
        eMMe97 eMMe97 is offline
           
          Join Date: Jan 2015
          Posts: 21
          Ok I complete it!
          The only "bug" is that the new pokémon has the name of the old pokémon.

          If you have JPAN hacked engine installed

          #dynamic 0x800000
          #org @starting
          lock
          faceplayer
          msgbox @qw MSG_YESNO
          compare LASTRESULT 0x1
          if 0x0 goto @end
          msgbox @by MSG_NORMAL
          special 0x9f
          waitstate
          compare 0x8004 0x6
          if 0x4 goto @end
          goto @start

          #org @end
          msgbox @as MSG_NORMAL
          release
          end

          #org @start
          random 0x19C
          compare LASTRESULT 0x0
          if 0x1 goto @start
          compare LASTRESULT 0xFC
          if 0x1 goto @start
          compare LASTRESULT 0xFD
          if 0x1 goto @start
          compare LASTRESULT 0xFE
          if 0x1 goto @start
          compare LASTRESULT 0xFF
          if 0x1 goto @start
          compare LASTRESULT 0x100
          if 0x1 goto @start
          compare LASTRESULT 0x101
          if 0x1 goto @start
          compare LASTRESULT 0x102
          if 0x1 goto @start
          compare LASTRESULT 0x103
          if 0x1 goto @start
          compare LASTRESULT 0x104
          if 0x1 goto @start
          compare LASTRESULT 0x105
          if 0x1 goto @start
          compare LASTRESULT 0x106
          if 0x1 goto @start
          compare LASTRESULT 0x107
          if 0x1 goto @start
          compare LASTRESULT 0x108
          if 0x1 goto @start
          compare LASTRESULT 0x109
          if 0x1 goto @start
          compare LASTRESULT 0x10A
          if 0x1 goto @start
          compare LASTRESULT 0x10B
          if 0x1 goto @start
          compare LASTRESULT 0x10C
          if 0x1 goto @start
          compare LASTRESULT 0x10D
          if 0x1 goto @start
          compare LASTRESULT 0x10E
          if 0x1 goto @start
          compare LASTRESULT 0x10F
          if 0x1 goto @start
          compare LASTRESULT 0x110
          if 0x1 goto @start
          compare LASTRESULT 0x111
          if 0x1 goto @start
          compare LASTRESULT 0x112
          if 0x1 goto @start
          compare LASTRESULT 0x113
          if 0x1 goto @start
          compare LASTRESULT 0x114
          if 0x1 goto @start
          compare LASTRESULT 0x90
          if 0x1 goto @start
          compare LASTRESULT 0x91
          if 0x1 goto @start
          compare LASTRESULT 0x92
          if 0x1 goto @start
          compare LASTRESULT 0x96
          if 0x1 goto @start
          compare LASTRESULT 0x97
          if 0x1 goto @start
          compare LASTRESULT 0xF3
          if 0x1 goto @start
          compare LASTRESULT 0xF4
          if 0x1 goto @start
          compare LASTRESULT 0xF5
          if 0x1 goto @start
          compare LASTRESULT 0xF9
          if 0x1 goto @start
          compare LASTRESULT 0xFA
          if 0x1 goto @start
          compare LASTRESULT 0xFB
          if 0x1 goto @start
          compare LASTRESULT 0x191
          if 0x1 goto @start
          compare LASTRESULT 0x192
          if 0x1 goto @start
          compare LASTRESULT 0x193
          if 0x1 goto @start
          compare LASTRESULT 0x194
          if 0x1 goto @start
          compare LASTRESULT 0x195
          if 0x1 goto @start
          compare LASTRESULT 0x196
          if 0x1 goto @start
          compare LASTRESULT 0x197
          if 0x1 goto @start
          compare LASTRESULT 0x198
          if 0x1 goto @start
          compare LASTRESULT 0x199
          if 0x1 goto @start
          compare LASTRESULT 0x19A
          if 0x1 goto @start
          bufferpokemon 0x0 LASTRESULT
          goto @trade

          #org @trade
          showpokepic 0x800D 0x3 0x3
          preparemsg @get-msg
          fanfare 0x101
          waitmsg
          waitfanfare
          waitkeypress
          hidepokepic
          special 0x6
          copyvar 0x8005 LASTRESULT
          special 0x16
          special 0x6
          release
          end



          '---------
          ' Strings
          '---------
          #org @ty
          = Thank you!

          #org @qw
          = Do you want to Wonder Trade?\pThe choice is yours...

          #org @as
          = We hope to see you again.

          #org @by
          = Pick your Pokemon to give up.

          #org @get-msg
          = You got a [BUFFER1]\pTake good care of it!

          If you NON have JPAN Hacked Engine installed

          This is the original routine https://www.pokecommunity.com/showpost.php?p=8513264&postcount=34, I modified it!

          .text
          .align 2
          .thumb
          .thumb_func
          .global Indexnumber_changeand20bytes_recalc

          main:
          push {r0-r3, lr}
          getpokeoffset:
          ldr r0, varnumber_8004
          ldrh r2, [r0]
          mov r0, #100
          mul r2, r0
          ldr r0, partystart
          add r3, r2, r0
          push {r3}
          getandsetnewindexnumber:
          ldr r0, vartocontainnewindexnumber
          mov r2, r0
          mov r1, #0xB
          ldr r0, [sp]
          ldr r3, pokeencrypt
          bl bxr3
          recalc20bytes:
          pop {r0}
          ldr r3, effectivestatsrecalc
          bl bxr3
          pop {r0-r3, pc}
          bxr3:
          bx r3

          .align 2
          varnumber_8004: .word 0x020370C0
          partystart: .word 0x02024284
          vartocontainnewindexnumber: .word 0x020370D0
          pokeencrypt: .word 0x0804037C+1
          effectivestatsrecalc: .word 0x0803e47c+1

          Insert the routine in free space and call asm in a script

          This is the script that i use

          #dynamic 0x800000
          #org @starting
          lock
          faceplayer
          msgbox @qw MSG_YESNO
          compare LASTRESULT 0x1
          if 0x0 goto @end
          msgbox @by MSG_NORMAL
          special 0x9f
          waitstate
          compare 0x8004 0x6
          if 0x4 goto @end
          goto @start

          #org @end
          msgbox @as MSG_NORMAL
          release
          end

          #org @start
          random 0x19C
          compare LASTRESULT 0x0
          if 0x1 goto @start
          compare LASTRESULT 0xFC
          if 0x1 goto @start
          compare LASTRESULT 0xFD
          if 0x1 goto @start
          compare LASTRESULT 0xFE
          if 0x1 goto @start
          compare LASTRESULT 0xFF
          if 0x1 goto @start
          compare LASTRESULT 0x100
          if 0x1 goto @start
          compare LASTRESULT 0x101
          if 0x1 goto @start
          compare LASTRESULT 0x102
          if 0x1 goto @start
          compare LASTRESULT 0x103
          if 0x1 goto @start
          compare LASTRESULT 0x104
          if 0x1 goto @start
          compare LASTRESULT 0x105
          if 0x1 goto @start
          compare LASTRESULT 0x106
          if 0x1 goto @start
          compare LASTRESULT 0x107
          if 0x1 goto @start
          compare LASTRESULT 0x108
          if 0x1 goto @start
          compare LASTRESULT 0x109
          if 0x1 goto @start
          compare LASTRESULT 0x10A
          if 0x1 goto @start
          compare LASTRESULT 0x10B
          if 0x1 goto @start
          compare LASTRESULT 0x10C
          if 0x1 goto @start
          compare LASTRESULT 0x10D
          if 0x1 goto @start
          compare LASTRESULT 0x10E
          if 0x1 goto @start
          compare LASTRESULT 0x10F
          if 0x1 goto @start
          compare LASTRESULT 0x110
          if 0x1 goto @start
          compare LASTRESULT 0x111
          if 0x1 goto @start
          compare LASTRESULT 0x112
          if 0x1 goto @start
          compare LASTRESULT 0x113
          if 0x1 goto @start
          compare LASTRESULT 0x114
          if 0x1 goto @start
          compare LASTRESULT 0x90
          if 0x1 goto @start
          compare LASTRESULT 0x91
          if 0x1 goto @start
          compare LASTRESULT 0x92
          if 0x1 goto @start
          compare LASTRESULT 0x96
          if 0x1 goto @start
          compare LASTRESULT 0x97
          if 0x1 goto @start
          compare LASTRESULT 0xF3
          if 0x1 goto @start
          compare LASTRESULT 0xF4
          if 0x1 goto @start
          compare LASTRESULT 0xF5
          if 0x1 goto @start
          compare LASTRESULT 0xF9
          if 0x1 goto @start
          compare LASTRESULT 0xFA
          if 0x1 goto @start
          compare LASTRESULT 0xFB
          if 0x1 goto @start
          compare LASTRESULT 0x191
          if 0x1 goto @start
          compare LASTRESULT 0x192
          if 0x1 goto @start
          compare LASTRESULT 0x193
          if 0x1 goto @start
          compare LASTRESULT 0x194
          if 0x1 goto @start
          compare LASTRESULT 0x195
          if 0x1 goto @start
          compare LASTRESULT 0x196
          if 0x1 goto @start
          compare LASTRESULT 0x197
          if 0x1 goto @start
          compare LASTRESULT 0x198
          if 0x1 goto @start
          compare LASTRESULT 0x199
          if 0x1 goto @start
          compare LASTRESULT 0x19A
          if 0x1 goto @start
          bufferpokemon 0x0 LASTRESULT
          goto @trade

          #org @trade
          showpokepic 0x800D 0x3 0x3
          preparemsg @get-msg
          fanfare 0x101
          waitmsg
          waitfanfare
          waitkeypress
          hidepokepic
          callasm 0x8FFFFFF
          release
          end

          '---------
          ' Strings
          '---------
          #org @ty
          = Thank you!

          #org @qw
          = Do you want to Wonder Trade?\pThe choice is yours...

          #org @as
          = We hope to see you again.

          #org @by
          = Pick your Pokemon to give up.

          #org @get-msg
          = You got a [BUFFER1]\pTake good care of it!

          the FFFFFF is the offset of the routine +1
          Reply With Quote
            #5    
          Old October 8th, 2017 (2:29 AM).
          DizzyEgg's Avatar
          DizzyEgg DizzyEgg is offline
             
            Join Date: Feb 2014
            Location: Poland
            Age: 20
            Gender: Male
            Nature: Quiet
            Posts: 716
            This is a really bad solution. This should be done in C and not in scripts.
            __________________
            Support Pokeruby!

            My works:
            Battle Engine Upgrade
            Pokemon Expansion
            Items/TMs/Tutors Expansion
            Various Features(Evo Methods, BW Repel, Levels Above 100, Trainers with EV, Nature Colored Stats)

            Emerald Features:
            Form Changes (KDS)
            Reply With Quote
              #6    
            Old October 8th, 2017 (5:30 AM).
            eMMe97 eMMe97 is offline
               
              Join Date: Jan 2015
              Posts: 21
              Perfect! You do it ;) :P
              Reply With Quote
                #7    
              Old October 8th, 2017 (5:30 AM).
              Harlee Quinn Harlee Quinn is offline
                 
                Join Date: Aug 2017
                Posts: 12
                Quote:
                Originally Posted by DizzyEgg View Post
                This is a really bad solution. This should be done in C and not in scripts.
                Then do it better. This is something I did for fun so it at least emulates it and posted so people can use an modify or even improve. So far, gen 3 games don't have anything similar that I've seen at least in any hack.
                Reply With Quote
                  #8    
                Old October 16th, 2017 (5:16 PM).
                Lunos's Avatar
                Lunos Lunos is offline
                Uruguayan Random Guy
                   
                  Join Date: Oct 2008
                  Location: Montevideo (Uruguay)
                  Gender: Male
                  Nature: Lonely
                  Posts: 1,183
                  Quote:
                  Originally Posted by eMMe97 View Post
                  -Snip-
                  Grabbed this and modified it a bit.
                  I've added the possibility to add a nickname to the Pokémon you obtain and I've also changed the script so it doesn't start unless you have 5 Pokémon or less in your team.
                  Spoiler:
                  Code:
                  #dynamic 0x71BBA0
                  
                  #org @start
                  faceplayer
                  lockall
                  msgbox @string1 0x5
                  compare 0x800D 0x1
                  if 0x0 goto @snippet1
                  countpokemon
                  copyvar 0x8000 0x800D
                  compare 0x8000 0x6
                  if 0x1 goto @snippet2
                  msgbox @string2 0x6
                  special 0x9F
                  waitstate
                  compare 0x8004 0x6
                  if 0x4 goto @snippet3
                  goto @snippet4
                  
                  #org @snippet1
                  msgbox @string3 0x6
                  releaseall
                  end
                  
                  #org @snippet2
                  msgbox @string4 0x6
                  releaseall
                  end
                  
                  #org @snippet3
                  msgbox @string5 0x6
                  releaseall
                  end
                  
                  #org @snippet4
                  random 0x19C
                  compare 0x800D 0x0
                  if 0x1 goto @snippet4
                  compare 0x800D 0xFC
                  if 0x1 goto @snippet4
                  compare 0x800D 0xFD
                  if 0x1 goto @snippet4
                  compare 0x800D 0xFE
                  if 0x1 goto @snippet4
                  compare 0x800D 0xFF
                  if 0x1 goto @snippet4
                  compare 0x800D 0x100
                  if 0x1 goto @snippet4
                  compare 0x800D 0x101
                  if 0x1 goto @snippet4
                  compare 0x800D 0x102
                  if 0x1 goto @snippet4
                  compare 0x800D 0x103
                  if 0x1 goto @snippet4
                  compare 0x800D 0x104
                  if 0x1 goto @snippet4
                  compare 0x800D 0x105
                  if 0x1 goto @snippet4
                  compare 0x800D 0x106
                  if 0x1 goto @snippet4
                  compare 0x800D 0x107
                  if 0x1 goto @snippet4
                  compare 0x800D 0x108
                  if 0x1 goto @snippet4
                  compare 0x800D 0x109
                  if 0x1 goto @snippet4
                  compare 0x800D 0x10A
                  if 0x1 goto @snippet4
                  compare 0x800D 0x10B
                  if 0x1 goto @snippet4
                  compare 0x800D 0x10C
                  if 0x1 goto @snippet4
                  compare 0x800D 0x10D
                  if 0x1 goto @snippet4
                  compare 0x800D 0x10E
                  if 0x1 goto @snippet4
                  compare 0x800D 0x10F
                  if 0x1 goto @snippet4
                  compare 0x800D 0x110
                  if 0x1 goto @snippet4
                  compare 0x800D 0x111
                  if 0x1 goto @snippet4
                  compare 0x800D 0x112
                  if 0x1 goto @snippet4
                  compare 0x800D 0x113
                  if 0x1 goto @snippet4
                  compare 0x800D 0x114
                  if 0x1 goto @snippet4
                  compare 0x800D 0x90
                  if 0x1 goto @snippet4
                  compare 0x800D 0x91
                  if 0x1 goto @snippet4
                  compare 0x800D 0x92
                  if 0x1 goto @snippet4
                  compare 0x800D 0x96
                  if 0x1 goto @snippet4
                  compare 0x800D 0x97
                  if 0x1 goto @snippet4
                  compare 0x800D 0xF3
                  if 0x1 goto @snippet4
                  compare 0x800D 0xF4
                  if 0x1 goto @snippet4
                  compare 0x800D 0xF5
                  if 0x1 goto @snippet4
                  compare 0x800D 0xF9
                  if 0x1 goto @snippet4
                  compare 0x800D 0xFA
                  if 0x1 goto @snippet4
                  compare 0x800D 0xFB
                  if 0x1 goto @snippet4
                  compare 0x800D 0x191
                  if 0x1 goto @snippet4
                  compare 0x800D 0x192
                  if 0x1 goto @snippet4
                  compare 0x800D 0x193
                  if 0x1 goto @snippet4
                  compare 0x800D 0x194
                  if 0x1 goto @snippet4
                  compare 0x800D 0x195
                  if 0x1 goto @snippet4
                  compare 0x800D 0x196
                  if 0x1 goto @snippet4
                  compare 0x800D 0x197
                  if 0x1 goto @snippet4
                  compare 0x800D 0x198
                  if 0x1 goto @snippet4
                  compare 0x800D 0x199
                  if 0x1 goto @snippet4
                  compare 0x800D 0x19A
                  if 0x1 goto @snippet4
                  bufferpokemon 0x0 0x800D
                  goto @snippet5
                  
                  #org @snippet5
                  showpokepic 0x800D 0xA 0x3
                  fanfare 0x101
                  msgbox @string6 0x4
                  waitfanfare
                  closeonkeypress
                  hidepokepic
                  callasm 0x871A251
                  msgbox @string7 0x5
                  compare 0x800D 0x1
                  if 0x1 call @snippet6
                  msgbox @string5 0x6
                  releaseall
                  end
                  
                  #org @snippet6
                  countpokemon
                  subvar 0x800D 0x1
                  copyvar 0x8004 0x800D
                  fadescreen 0x1
                  special 0x9E
                  waitstate
                  return
                  
                  #org @string1
                  = Do you want to Wonder Trade?
                  
                  #org @string2
                  = Pick the Pokémon you wanna trade.
                  
                  #org @string3
                  = Come back anytime.
                  
                  #org @string4
                  = Your team is full.\nSorry, we can't Wonder Trade.
                  
                  #org @string5
                  = Come back anytime.
                  
                  #org @string6
                  = [player] got a [buffer1]!
                  
                  #org @string7
                  = Do you want to nickname it?


                  Unfortunately and as DizzyEgg said, this implementation of the Wonder Trade is awful and shouldn't be used in any serious project at all.
                  The nickname isn't the only thing that the Pokémon you've got keeps from your original Pokémon, it'll get the nature and moves that the original Pokémon had too, and I suppose the same thing applies to EVs and IVs.
                  __________________
                  Reply With Quote
                    #9    
                  Old October 18th, 2017 (3:25 PM).
                  Harlee Quinn Harlee Quinn is offline
                     
                    Join Date: Aug 2017
                    Posts: 12
                    Quote:
                    Originally Posted by Lunos View Post
                    I've added the possibility to add a nickname to the Pokémon you obtain and I've also changed the script so it doesn't start unless you have 5 Pokémon or less in your team.IVs.
                    Nice, I'll have to update top post when I get the chance.

                    Quote:
                    Originally Posted by Lunos View Post
                    The nickname isn't the only thing that the Pokémon you've got keeps from your original Pokémon, it'll get the nature and moves that the original Pokémon had too, and I suppose the same thing applies to EVs and IVs.
                    Nature IV's and moves transferring as well? Thats... Odd. I haven't seen that, at least in the version eMMe put up.

                    And I want to rephrase, I AM NEW TO THIS. Glad you made a better version, saw it on youtube first.
                    Reply With Quote
                      #10    
                    Old October 20th, 2017 (6:32 AM).
                    Junkyard Guard's Avatar
                    Junkyard Guard Junkyard Guard is offline
                    Check out my YouTube below!
                       
                      Join Date: Oct 2017
                      Location: North Carolina
                      Age: 26
                      Gender: Male
                      Nature: Relaxed
                      Posts: 53
                      Wow this is absolutely incredible! Good job!
                      __________________
                      If you like League of Legends, check out my channel! I make videos where I play with my friends and have a great time! Click Here!

                      Reply With Quote
                        #11    
                      Old October 20th, 2017 (11:41 AM).
                      Harlee Quinn Harlee Quinn is offline
                         
                        Join Date: Aug 2017
                        Posts: 12
                        Quote:
                        Originally Posted by Junkyard Guard View Post
                        Wow this is absolutely incredible! Good job!
                        Thanks dude, though the version Lunos put up might be more stable than this because its ASM an not a script like mine.
                        Reply With Quote
                        Reply

                        Quick Reply

                        Join the conversation!

                        Create an account to post a reply in this thread, participate in other discussions, and more!

                        Create a PokéCommunity Account

                        Sponsored Links
                        Thread Tools

                        Posting Rules
                        You may not post new threads
                        You may not post replies
                        You may not post attachments
                        You may not edit your posts

                        BB code is On
                        Smilies are On
                        [IMG] code is On
                        HTML code is Off

                        Forum Jump


                        All times are GMT -8. The time now is 1:19 AM.