• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Change OW in script

Danny0317

Fluorite's back, brah
  • 1,067
    Posts
    11
    Years
    • Age 25
    • Seen Nov 19, 2023
    Fired red part by Jotta from WaH. All I did was translate the important parts. And the RSE part
    This tutorial is FR only. Emerald and Ruby part in the bottom.

    Screenies soon, maybe,

    Step 1.

    Open NSE Classic, go to the OW you want, and open Advanced mode. You will see Pointer 1, Pointer 2, and Pointer 3. Look at pointer 3, and write it down or something.

    Step 2.

    Do this to them. (This is an example) 3A00A0 => A0003A. So format is (first two numbers)(middle two numbers)(third two numbers).

    Step 3.

    When you want the OW to change, put this:
    writebytetooffset 0x 0x02020648
    writebytetooffset 0x 0x02020649
    writebytetooffset 0x 0x0202064A

    But in the end it should look like this:
    writebytetooffset 0xA0 0x02020648
    writebytetooffset 0x00 0x02020649
    writebytetooffset 0x3A 0x0202064A

    Why? Because this:
    1º-A0 2º-00 3º-3A

    Step 4.
    Now you need to refresh the screen. Use a fadescreen or a warp.

    Step 5.

    This only applies if you want to do this to an OW that uses a different pallet.
    Now open, advance map, and place the OW you want to become somewhere. Now go there in visual advance and open pallet view. Find his/her pal. Now get the colors from it (not the first). Now for example, if the color is 1234, you would need to make it 34 12.

    Step 6.

    Do all of the pallet stuff to this.
    writebytetooffset 0x 0x20377FA
    writebytetooffset 0x 0x20377FB
    writebytetooffset 0x 0x20377FC
    writebytetooffset 0x 0x20377FD
    writebytetooffset 0x 0x20377FE
    writebytetooffset 0x 0x20377FF
    writebytetooffset 0x 0x2037800
    writebytetooffset 0x 0x2037801
    writebytetooffset 0x 0x2037802
    writebytetooffset 0x 0x2037803
    writebytetooffset 0x 0x2037804
    writebytetooffset 0x 0x2037805
    writebytetooffset 0x 0x2037806
    writebytetooffset 0x 0x2037807
    writebytetooffset 0x 0x2037808
    writebytetooffset 0x 0x2037809
    writebytetooffset 0x 0x203780A
    writebytetooffset 0x 0x203780B
    writebytetooffset 0x 0x203780C
    writebytetooffset 0x 0x203780D
    writebytetooffset 0x 0x203780E
    writebytetooffset 0x 0x203780F
    writebytetooffset 0x 0x2037810
    writebytetooffset 0x 0x2037811
    writebytetooffset 0x 0x2037812
    writebytetooffset 0x 0x2037813
    writebytetooffset 0x 0x2037814
    writebytetooffset 0x 0x2037815
    writebytetooffset 0x 0x2037816
    writebytetooffset 0x 0x2037817

    Step 7.

    Now put this in a level script.

    checkflag 0x"flag"
    if 0x1 goto 0x"offset2"
    end

    offset2:
    All your WBTO stuff.
    end

    Extra stuff

    WTBO for pal 2:

    writebytetooffset 0xBD 0x020377FA
    writebytetooffset 0x7F 0x020377FB
    writebytetooffset 0xD7 0x020377FC
    writebytetooffset 0x6A 0x020377FD
    writebytetooffset 0xFE 0x020377FE
    writebytetooffset 0x4A 0x020377FF
    writebytetooffset 0x5B 0x02037800
    writebytetooffset 0x3A 0x02037801
    writebytetooffset 0xDF 0x02037802
    writebytetooffset 0x12 0x02037803
    writebytetooffset 0xBE 0x02037804
    writebytetooffset 0x25 0x02037805
    writebytetooffset 0xD7 0x02037806
    writebytetooffset 0x11 0x02037807
    writebytetooffset 0x0F 0x02037808
    writebytetooffset 0x21 0x02037809
    writebytetooffset 0x89 0x0203780A
    writebytetooffset 0x31 0x0203780B
    writebytetooffset 0x29 0x0203780C
    writebytetooffset 0x2D 0x0203780D
    writebytetooffset 0x07 0x0203780E
    writebytetooffset 0x21 0x0203780F
    writebytetooffset 0xE7 0x02037810
    writebytetooffset 0x0C 0x02037811
    writebytetooffset 0x00 0x02037812
    writebytetooffset 0x00 0x02037813
    writebytetooffset 0x00 0x02037814
    writebytetooffset 0x7C 0x02037815
    writebytetooffset 0x20 0x02037816
    writebytetooffset 0x02 0x02037817


    WTBO for pal 4:

    writebytetooffset 0x5F 0x20377FA
    writebytetooffset 0x5B 0x20377FB
    writebytetooffset 0xFE 0x20377FC
    writebytetooffset 0x4A 0x20377FD
    writebytetooffset 0x5B 0x20377FE
    writebytetooffset 0x3A 0x20377FF
    writebytetooffset 0xF 0x2037800
    writebytetooffset 0x21 0x2037801
    writebytetooffset 0x9F 0x2037802
    writebytetooffset 0x5A 0x2037803
    writebytetooffset 0xBA 0x2037804
    writebytetooffset 0x3D 0x2037805
    writebytetooffset 0x11 0x2037806
    writebytetooffset 0x29 0x2037807
    writebytetooffset 0x12 0x2037808
    writebytetooffset 0x77 0x2037809
    writebytetooffset 0xC 0x203780A
    writebytetooffset 0x66 0x203780B
    writebytetooffset 0xE7 0x203780C
    writebytetooffset 0x24 0x203780D
    writebytetooffset 0x18 0x203780E
    writebytetooffset 0x6B 0x203780F
    writebytetooffset 0x31 0x2037810
    writebytetooffset 0x4A 0x2037811
    writebytetooffset 0x29 0x2037812
    writebytetooffset 0x2D 0x2037813
    writebytetooffset 0xFF 0x2037814
    writebytetooffset 0x7F 0x2037815
    writebytetooffset 0x0 0x2037816
    writebytetooffset 0x0 0x2037817

    Now compatible with emerald and ruby, a different method.

    Okay, create a person event in your map that you want to become. Put a level script or script tile in your map that the player can't avoid. Make it have this.

    setflag 0x(flag) (and make it the Person ID of the OW you wanna change into)
    hidesprite 0x(person event)

    and make sure it doesn't repeat.

    Now put a script tile below the person. The person is hidden and has a flag on them so it's not a problem. Now in that script tile, make sure it has this:

    fadescreen 0x1
    hidesprite 0xFF
    clearflag 0x(flag)
    showsprite 0x(person event)
    fadescreen 0x0

    And that should do the job.

    The effects go away once a warp happens. It is good to put a level script having the things.
     
    Last edited:
    Thanks, thanks I was looking for this for a long time.
     
    So here is something I did with this as a little test.
    Spoiler:


    And the script
    Spoiler:

    If you're gonna use that, plis modify the script :3
     
    Last edited:
    I wanna write a script like this situation: after the player talk to a crystalline rock's OW, it will disappear and Jirachi's OW appears at that moment, then go to battle with Jirachi. The following was the script I wrote, but it may got something mistakes: the crystalline rock's OW disappeared and Jirachi's OW wouldn't appear, could you please and please correct it for me?

    Spoiler:


    Here are the screenshots about the two person events which I did, are there any mistakes or not? Thanks in advance.
    The crystalline rock's OW person events:
    "image removed"

    Jirachi's OW person events:
    "image removed"
     
    Last edited:
    I wanna write a script like this situation: after the player talk to a crystalline rock's OW, it will disappear and Jirachi's OW appears at that moment, then go to battle with Jirachi. The following was the script I wrote, but it may got something mistakes: the crystalline rock's OW disappeared and Jirachi's OW wouldn't appear, could you please and please correct it for me?

    Spoiler:


    Here are the screenshots about the two person events which I did, are there any mistakes or not? Thanks in advance.
    The crystalline rock's OW person events:
    "image removed"

    Jirachi's OW person events:
    "image removed"

    I'm about to go to sleep right now, so I'll link this right before I do. It's a bit more updated and may be able to fix your problem. If not, I'd be glad to help you, but I have to finish a project then go to sleep and wake up at 6 :/

    https://www.pokecommunity.com/threads/334196
     
    This method is useless for LG/FR, since some ingame specials do the same. Pretty nice for R/S.

    which ingame specials change the player OW to a different OW?

    NOTE:
    In order to make a map where the player is always the different sprite, you need 2 map scripts:

    Script 0:
    Validates values, loads handler to 0x3000F28 [04]
    Flag: 4001 Value:0000 Script offset 2: offset to all your WBTO stuff.

    Script 1:
    On entering map/on menu close [07]
    Script offset: same offset as in Script 0

    Assuming you only had the two map scripts for each map that required this, you could use the same map script offset for each map.

    without both, every time the user opened his bag, it would reset their sprite...
     
    Last edited:
    I'm about to go to sleep right now, so I'll link this right before I do. It's a bit more updated and may be able to fix your problem. If not, I'd be glad to help you, but I have to finish a project then go to sleep and wake up at 6 :/

    https://www.pokecommunity.com/threads/334196

    I felt more confused after read it. Could you please and please help me to correct the script and the person events?
     
    I'm about to go to sleep right now, so I'll link this right before I do. It's a bit more updated and may be able to fix your problem. If not, I'd be glad to help you, but I have to finish a project then go to sleep and wake up at 6 :/

    https://www.pokecommunity.com/threads/334196

    I want to change the crystalline's OW to Jirachi's OW after talking to the crystalline's OW in Jirachi wildbattle script. Now the script I wrote maybe got some mistakes, the crystalline's disappeared but then Jirachi's OW wouldn't appear and it goes straight to battle with Jirachi directly. Jirachi's OW was hidden and put above the crystalline's OW.
     
    I want to change the crystalline's OW to Jirachi's OW after talking to the crystalline's OW in Jirachi wildbattle script. Now the script I wrote maybe got some mistakes, the crystalline's disappeared but then Jirachi's OW wouldn't appear and it goes straight to battle with Jirachi directly. Jirachi's OW was hidden and put above the crystalline's OW.

    Oh.. this tutorial was to change the player OW...

    Anyways, for a script like that to work you have to do something like this..

    (previous to this you have to set a flag that hides Jirachi.)

    talk to crystal
    wildbattle
    fadescreen
    setflag 0xcrystal flag
    hidesprite 0xcrystal
    clearflag 0xjirachi
    showsprite 0xjirachi
    fadescreen back

    if that doesn't work, then try replacing the hidesprites with spriteinvisibles
     
    Oh, my, I didn't know this existed!
    I just tried it out, works like a charm!
    [PokeCommunity.com] Change OW in script


    That's me, btw
     
    Back
    Top