• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • 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.

Script Help Thread (DO NOT REQUEST SCRIPTS)

Status
Not open for further replies.
50
Posts
11
Years
    • Seen Jan 4, 2021
    That's not a level script, I think you're talking about the green script tile in advance map. Open A-map and change:

    Var number: 5240
    Unknown: 03 00

    Thank you VERY much! I'm sort-of new at scripting, so please excuse my lack of knowledge for terminology withing scripting. Once again, thank you.
     

    DrFuji

    [I]Heiki Hecchara‌‌[/I]
    1,691
    Posts
    14
    Years
  • You are setting the flag at a subroutine that's executed only if the flag is set. This the subroutine is never executed and whatever value is in variable 0x9002 is being displayed @continue instead. My hunch is 0x9002 holds nidoran male's number.

    But if the flag isn't set that's then it goes to to the pointer rather than the other way around. The if command was comparing the flag's status to 0x0 rather than 0x1.

    I'm not entirely sure what could be causing the problem though. Have you decompiled the script to see if any commands are messed up (since you're working with already inserted scripts), Nossab Blue?

    I got some problems, so when the mom talks to the player i want the player to face the mom, I do not receive the running shoes from her either and it says Received pokeballs in not what i want it to say like it says it twice once in light green and the other regular, it is the same with potions.

    Edit:
    Here's the new script

    Spoiler:

    There's no need to have the script branch off to the @take section if you want everything to activate. You can also turn the play by using the applymovement command but instead of using the mother's Event Number, use 0xFF (which is the player's). The running shoes are given by setting the flag 0x8C0. Finally, the command 'giveitem' always displays an automatic message whenever you use it. If you want it to be silent then it would be better to use 'additem' instead.

    All-in-all, this script should be closer to what you want:

    Code:
    #dynamic 0x9C0000
    
    #org @start
    [COLOR="Red"]checkflag 0x8C0[/COLOR] // Changed to 0x8C0 since it is going to be set later on during the script anyway
    if 0x1 goto @done
    applymovement 0x0 @move
    [COLOR="red"]applymovement 0xFF @turn[/COLOR] // Added movement command for the player so they will face the mother
    waitmovement 0x0
    [COLOR="red"]msgbox @1 0x6[/COLOR] // Moved the @take section of the script here
    [COLOR="red"]additem 0x4 0x5[/COLOR] // Changed to additem
    msgbox @received2 0x6
    [COLOR="red"]additem 0xD 0x5[/COLOR] // Changed to additem
    msgbox @received3 0x6
    [COLOR="red"]setflag 0x8C0[/COLOR] // In Pokemon Emerald the Running Shoes are activated by the flag 0x8C0
    msgbox @received 0x6
    applymovement 0x0 @move_back
    waitmovement 0x0
    end
    
    #org @done
    release
    end
    
    #org @move
    #raw 0x08
    #raw 0x08
    #raw 0x0B
    #raw 0x0B
    #raw 0x0B
    #raw 0x0B
    #raw 0x0B
    #raw 0xFE
    
    #org @move_back
    #raw 0x0A
    #raw 0x0A
    #raw 0x0A
    #raw 0x0A
    #raw 0x0A
    #raw 0x09
    #raw 0x09
    #raw 0x03
    #raw 0xFE
    
    [COLOR="red"]#org @turn[/COLOR] // Player movements
    [COLOR="red"]#raw 0x2
    #raw 0xFE[/COLOR]
    
    #org @1
    = Wait [player]! You cannot be a recruit\nwithout the propper attier.
    
    #org @received
    = [Player] received the \c\h01ÊRUNNING\nSHOES!
    
    #org @received2
    = [Player] received \c\h01ÊPokéballs!
    
    #org @received3
    = [Player] received \c\h01ÊPotions![/spoiler]
     

    Blah

    Free supporter
    1,924
    Posts
    11
    Years
  • But if the flag isn't set that's then it goes to to the pointer rather than the other way around. The if command was comparing the flag's status to 0x0 rather than 0x1.

    I'm not entirely sure what could be causing the problem though. Have you decompiled the script to see if any commands are messed up (since you're working with already inserted scripts), Nossab Blue?

    Good eye, I didn't notice the if statement didn't check true. I sorta assumed it did because I always check for true. That being said, I can't find an error either. Are you sure your script is not overwriting other things? By that I'm asking if you repointed the script.
     
    241
    Posts
    11
    Years
  • I haven't decompiled it...I didn't know that would do anything actually. But I'm glad I'm not alone in having trouble finding the error...I'll try it and edit this post with the result.

    EDIT: I tried decompiling and recompiling it, and all it did was take off the first letter of each of the 3 strings when you are choosing the pokemon...

    EDIT2: @FBI agent- I'm fairly certain, because I used dynamic offsets for everything I changed...and the script caries out perfectly otherwise. The problem seems to be with recalling the variables, given the question mark pics I get on the second two balls. Are variables stored permanently, or only as long as the script runs?
     
    Last edited:

    thetripplenine

    tripple.
    98
    Posts
    11
    Years
  • But if the flag isn't set that's then it goes to to the pointer rather than the other way around. The if command was comparing the flag's status to 0x0 rather than 0x1.

    I'm not entirely sure what could be causing the problem though. Have you decompiled the script to see if any commands are messed up (since you're working with already inserted scripts), Nossab Blue?



    There's no need to have the script branch off to the @take section if you want everything to activate. You can also turn the play by using the applymovement command but instead of using the mother's Event Number, use 0xFF (which is the player's). The running shoes are given by setting the flag 0x8C0. Finally, the command 'giveitem' always displays an automatic message whenever you use it. If you want it to be silent then it would be better to use 'additem' instead.

    All-in-all, this script should be closer to what you want:

    Code:
    #dynamic 0x9C0000
    
    #org @start
    [COLOR="Red"]checkflag 0x8C0[/COLOR] // Changed to 0x8C0 since it is going to be set later on during the script anyway
    if 0x1 goto @done
    applymovement 0x0 @move
    [COLOR="red"]applymovement 0xFF @turn[/COLOR] // Added movement command for the player so they will face the mother
    waitmovement 0x0
    [COLOR="red"]msgbox @1 0x6[/COLOR] // Moved the @take section of the script here
    [COLOR="red"]additem 0x4 0x5[/COLOR] // Changed to additem
    msgbox @received2 0x6
    [COLOR="red"]additem 0xD 0x5[/COLOR] // Changed to additem
    msgbox @received3 0x6
    [COLOR="red"]setflag 0x8C0[/COLOR] // In Pokemon Emerald the Running Shoes are activated by the flag 0x8C0
    msgbox @received 0x6
    applymovement 0x0 @move_back
    waitmovement 0x0
    end
    
    #org @done
    release
    end
    
    #org @move
    #raw 0x08
    #raw 0x08
    #raw 0x0B
    #raw 0x0B
    #raw 0x0B
    #raw 0x0B
    #raw 0x0B
    #raw 0xFE
    
    #org @move_back
    #raw 0x0A
    #raw 0x0A
    #raw 0x0A
    #raw 0x0A
    #raw 0x0A
    #raw 0x09
    #raw 0x09
    #raw 0x03
    #raw 0xFE
    
    [COLOR="red"]#org @turn[/COLOR] // Player movements
    [COLOR="red"]#raw 0x2
    #raw 0xFE[/COLOR]
    
    #org @1
    = Wait [player]! You cannot be a recruit\nwithout the propper attier.
    
    #org @received
    = [Player] received the \c\h01ÊRUNNING\nSHOES!
    
    #org @received2
    = [Player] received \c\h01ÊPokéballs!
    
    #org @received3
    = [Player] received \c\h01ÊPotions![/spoiler]

    Thanks for helping me with all those times i needed help :D and now.
     

    Blah

    Free supporter
    1,924
    Posts
    11
    Years
  • I haven't decompiled it...I didn't know that would do anything actually. But I'm glad I'm not alone in having trouble finding the error...I'll try it and edit this post with the result.

    EDIT: I tried decompiling and recompiling it, and all it did was take off the first letter of each of the 3 strings when you are choosing the pokemon...

    EDIT2: @FBI agent- I'm fairly certain, because I used dynamic offsets for everything I changed...and the script caries out perfectly otherwise. The problem seems to be with recalling the variables, given the question mark pics I get on the second two balls. Are variables stored permanently, or only as long as the script runs?

    Post the decompiled script? They are stored permanently (with the exception of temporary variables).
     
    241
    Posts
    11
    Years
  • Ok here is the decompiled script.

    Code:
    '---------------
    #org 0x800000
    lock
    faceplayer
    setvar 0x4001 0x0
    checkflag 0x900
    if 0x0 call 0x8800040
    copyvar 0x4002 0x9000
    setvar 0x4003 0x4
    setvar 0x4004 0x7
    compare 0x4055 0x3
    if 0x4 goto 0x8169DE4
    compare 0x4055 0x2
    if 0x1 goto 0x8169BE1
    msgbox 0x818EA19 MSG_KEEPOPEN '"Those are POKé BALLS.\nThey contai..."
    release
    end
    
    '---------------
    #org 0x800040
    random 0x3
    copyvar 0x8008 LASTRESULT
    compare 0x8008 0x0
    if 0x1 call 0x880006E
    compare 0x8008 0x1
    if 0x1 call 0x8800075
    compare 0x8008 0x2
    if 0x1 call 0x880007C
    setflag 0x900
    return
    
    '---------------
    #org 0x169DE4
    msgbox 0x818EA45 MSG_KEEPOPEN '"That's PROF. OAK's last POKéMON."
    release
    end
    
    '---------------
    #org 0x169BE1
    applymovement 0x4 0x81A75EF
    waitmovement 0x0
    showpokepic 0x4002 0xA 0x3
    textcolor 0x0
    compare 0x4001 0x0
    if 0x1 goto 0x8169C14
    compare 0x4001 0x1
    if 0x1 goto 0x8169C33
    compare 0x4001 0x2
    if 0x1 goto 0x8169C52
    end
    
    '---------------
    #org 0x80006E
    setvar 0x9000 0x1
    return
    
    '---------------
    #org 0x800075
    setvar 0x9000 0x98
    return
    
    '---------------
    #org 0x80007C
    setvar 0x9000 0x115
    return
    
    '---------------
    #org 0x169C14
    msgbox 0x818E272 MSG_YESNO '"  see! BULBASAUR is your choice.\n..."
    compare LASTRESULT 0x1
    if 0x1 goto 0x8169C74
    compare LASTRESULT 0x0
    if 0x1 goto 0x8169C71
    end
    
    '---------------
    #org 0x169C33
    msgbox 0x818E207 MSG_YESNO '" m! SQUIRTLE is your choice.\nIt's..."
    compare LASTRESULT 0x1
    if 0x1 goto 0x8169C74
    compare LASTRESULT 0x0
    if 0x1 goto 0x8169C71
    end
    
    '---------------
    #org 0x169C52
    msgbox 0x818E194 MSG_YESNO '"Ah! CHARMANDER is your choice.\nYo..."
    compare LASTRESULT 0x1
    if 0x1 goto 0x8169C74
    compare LASTRESULT 0x0
    if 0x1 goto 0x8169C71
    end
    
    '---------------
    #org 0x169C74
    hidepokepic
    hidesprite LASTTALKED
    msgbox 0x818E2E5 MSG_KEEPOPEN '"This POKéMON is really quite\nener..."
    call 0x81A6675
    setflag 0x828
    setflag 0x291
    givepokemon 0x4002 0x5 0x0 0x0 0x0 0x0
    copyvar 0x4031 0x4001
    bufferpokemon 0x0 0x4002
    preparemsg 0x818E30D '"[player] received the [buffer1]\nf..."
    waitmsg
    fanfare 0x13E
    waitfanfare
    msgbox 0x81A56A7 MSG_YESNO '"Do you want to give a nickname to\..."
    compare LASTRESULT 0x1
    if 0x1 goto 0x8169CCC
    compare LASTRESULT 0x0
    if 0x1 goto 0x8169CDC
    end
    
    '---------------
    #org 0x169C71
    hidepokepic
    release
    end
    
    '---------------
    #org 0x1A6675
    copyvar 0x8012 0x8013
    return
    
    '---------------
    #org 0x169CCC
    setvar 0x8004 0x0
    call 0x81A74EB
    goto 0x8169CDC
    
    '---------------
    #org 0x169CDC
    closeonkeypress
    compare 0x4001 0x0
    if 0x1 goto 0x8169CFF
    compare 0x4001 0x1
    if 0x1 goto 0x8169D1F
    compare 0x4001 0x2
    if 0x1 goto 0x8169D0F
    end
    
    '---------------
    #org 0x1A74EB
    fadescreen 0x1
    special 0x9E
    waitstate
    return
    
    '---------------
    #org 0x169CFF
    applymovement 0x8 0x8169D62
    waitmovement 0x0
    goto 0x8169D2F
    
    '---------------
    #org 0x169D1F
    applymovement 0x8 0x8169D72
    waitmovement 0x0
    goto 0x8169D2F
    
    '---------------
    #org 0x169D0F
    applymovement 0x8 0x8169D6B
    waitmovement 0x0
    goto 0x8169D2F
    
    '---------------
    #org 0x169D2F
    textcolor 0x0
    msgbox 0x818DD34 MSG_KEEPOPEN '"[rival]: I'll take this one, then!"
    hidesprite 0x4004
    textcolor 0x3
    bufferpokemon 0x0 0x4003
    preparemsg 0x818DD52 '"[rival] received the [buffer1]\nfr..."
    waitmsg
    fanfare 0x13E
    waitfanfare
    setvar 0x4055 0x3
    checkflag 0x83E
    if 0x1 call 0x8169D5C
    release
    end
    
    '---------------
    #org 0x169D5C
    setvar 0x4070 0x1
    return
    
    
    '---------
    ' Strings
    '---------
    #org 0x18EA19
    = Those are POKé BALLS.\nThey contain POKéMON!
    
    #org 0x18EA45
    = That's PROF. OAK's last POKéMON.
    
    #org 0x18E272
    =  see! BULBASAUR is your choice.\nIt's very easy to raise.\pSo, [player], you want to go with\nthe GRASS POKéMON BULBASAUR?
    
    #org 0x18E207
    = m! SQUIRTLE is your choice.\nIt's one worth raising.\pSo, [player], you've decided on the\nWATER POKéMON SQUIRTLE?
    
    #org 0x18E194
    = Ah! CHARMANDER is your choice.\nYou should raise it patiently.\pSo, [player], you're claiming the\nFIRE POKéMON CHARMANDER?
    
    #org 0x18E2E5
    = This POKéMON is really quite\nenergetic!
    
    #org 0x18E30D
    = [player] received the [buffer1]\nfrom PROF. OAK!
    
    #org 0x1A56A7
    = Do you want to give a nickname to\nthis [buffer1]?
    
    #org 0x18DD34
    = [rival]: I'll take this one, then!
    
    #org 0x18DD52
    = [rival] received the [buffer1]\nfrom PROF. OAK!
    
    
    '-----------
    ' Movements
    '-----------
    #org 0x1A75EF
    #raw 0x3 'Face Right
    #raw 0xFE 'End of Movements
    
    #org 0x169D62
    #raw 0x10 'Step Down (Normal)
    #raw 0x10 'Step Down (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x11 'Step Up (Normal)
    #raw 0xFE 'End of Movements
    
    #org 0x169D72
    #raw 0x10 'Step Down (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x2E 'Face Up (Delayed)
    #raw 0xFE 'End of Movements
    
    #org 0x169D6B
    #raw 0x10 'Step Down (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x2E 'Face Up (Delayed)
    #raw 0xFE 'End of Movements
     

    Blah

    Free supporter
    1,924
    Posts
    11
    Years
  • Ok here is the decompiled script.

    Code:
    '---------------
    #org 0x800000
    lock
    faceplayer
    setvar 0x4001 0x0
    checkflag 0x900
    if 0x0 call 0x8800040
    copyvar 0x4002 0x9000
    setvar 0x4003 0x4
    setvar 0x4004 0x7
    compare 0x4055 0x3
    if 0x4 goto 0x8169DE4
    compare 0x4055 0x2
    if 0x1 goto 0x8169BE1
    msgbox 0x818EA19 MSG_KEEPOPEN '"Those are POKé BALLS.\nThey contai..."
    release
    end
    
    '---------------
    #org 0x800040
    random 0x3
    copyvar 0x8008 LASTRESULT
    compare 0x8008 0x0
    if 0x1 call 0x880006E
    compare 0x8008 0x1
    if 0x1 call 0x8800075
    compare 0x8008 0x2
    if 0x1 call 0x880007C
    setflag 0x900
    return
    
    '---------------
    #org 0x169DE4
    msgbox 0x818EA45 MSG_KEEPOPEN '"That's PROF. OAK's last POKéMON."
    release
    end
    
    '---------------
    #org 0x169BE1
    applymovement 0x4 0x81A75EF
    waitmovement 0x0
    showpokepic 0x4002 0xA 0x3
    textcolor 0x0
    compare 0x4001 0x0
    if 0x1 goto 0x8169C14
    compare 0x4001 0x1
    if 0x1 goto 0x8169C33
    compare 0x4001 0x2
    if 0x1 goto 0x8169C52
    end
    
    '---------------
    #org 0x80006E
    setvar 0x9000 0x1
    return
    
    '---------------
    #org 0x800075
    setvar 0x9000 0x98
    return
    
    '---------------
    #org 0x80007C
    setvar 0x9000 0x115
    return
    
    '---------------
    #org 0x169C14
    msgbox 0x818E272 MSG_YESNO '"  see! BULBASAUR is your choice.\n..."
    compare LASTRESULT 0x1
    if 0x1 goto 0x8169C74
    compare LASTRESULT 0x0
    if 0x1 goto 0x8169C71
    end
    
    '---------------
    #org 0x169C33
    msgbox 0x818E207 MSG_YESNO '" m! SQUIRTLE is your choice.\nIt's..."
    compare LASTRESULT 0x1
    if 0x1 goto 0x8169C74
    compare LASTRESULT 0x0
    if 0x1 goto 0x8169C71
    end
    
    '---------------
    #org 0x169C52
    msgbox 0x818E194 MSG_YESNO '"Ah! CHARMANDER is your choice.\nYo..."
    compare LASTRESULT 0x1
    if 0x1 goto 0x8169C74
    compare LASTRESULT 0x0
    if 0x1 goto 0x8169C71
    end
    
    '---------------
    #org 0x169C74
    hidepokepic
    hidesprite LASTTALKED
    msgbox 0x818E2E5 MSG_KEEPOPEN '"This POKéMON is really quite\nener..."
    call 0x81A6675
    setflag 0x828
    setflag 0x291
    givepokemon 0x4002 0x5 0x0 0x0 0x0 0x0
    copyvar 0x4031 0x4001
    bufferpokemon 0x0 0x4002
    preparemsg 0x818E30D '"[player] received the [buffer1]\nf..."
    waitmsg
    fanfare 0x13E
    waitfanfare
    msgbox 0x81A56A7 MSG_YESNO '"Do you want to give a nickname to\..."
    compare LASTRESULT 0x1
    if 0x1 goto 0x8169CCC
    compare LASTRESULT 0x0
    if 0x1 goto 0x8169CDC
    end
    
    '---------------
    #org 0x169C71
    hidepokepic
    release
    end
    
    '---------------
    #org 0x1A6675
    copyvar 0x8012 0x8013
    return
    
    '---------------
    #org 0x169CCC
    setvar 0x8004 0x0
    call 0x81A74EB
    goto 0x8169CDC
    
    '---------------
    #org 0x169CDC
    closeonkeypress
    compare 0x4001 0x0
    if 0x1 goto 0x8169CFF
    compare 0x4001 0x1
    if 0x1 goto 0x8169D1F
    compare 0x4001 0x2
    if 0x1 goto 0x8169D0F
    end
    
    '---------------
    #org 0x1A74EB
    fadescreen 0x1
    special 0x9E
    waitstate
    return
    
    '---------------
    #org 0x169CFF
    applymovement 0x8 0x8169D62
    waitmovement 0x0
    goto 0x8169D2F
    
    '---------------
    #org 0x169D1F
    applymovement 0x8 0x8169D72
    waitmovement 0x0
    goto 0x8169D2F
    
    '---------------
    #org 0x169D0F
    applymovement 0x8 0x8169D6B
    waitmovement 0x0
    goto 0x8169D2F
    
    '---------------
    #org 0x169D2F
    textcolor 0x0
    msgbox 0x818DD34 MSG_KEEPOPEN '"[rival]: I'll take this one, then!"
    hidesprite 0x4004
    textcolor 0x3
    bufferpokemon 0x0 0x4003
    preparemsg 0x818DD52 '"[rival] received the [buffer1]\nfr..."
    waitmsg
    fanfare 0x13E
    waitfanfare
    setvar 0x4055 0x3
    checkflag 0x83E
    if 0x1 call 0x8169D5C
    release
    end
    
    '---------------
    #org 0x169D5C
    setvar 0x4070 0x1
    return
    
    
    '---------
    ' Strings
    '---------
    #org 0x18EA19
    = Those are POKé BALLS.\nThey contain POKéMON!
    
    #org 0x18EA45
    = That's PROF. OAK's last POKéMON.
    
    #org 0x18E272
    =  see! BULBASAUR is your choice.\nIt's very easy to raise.\pSo, [player], you want to go with\nthe GRASS POKéMON BULBASAUR?
    
    #org 0x18E207
    = m! SQUIRTLE is your choice.\nIt's one worth raising.\pSo, [player], you've decided on the\nWATER POKéMON SQUIRTLE?
    
    #org 0x18E194
    = Ah! CHARMANDER is your choice.\nYou should raise it patiently.\pSo, [player], you're claiming the\nFIRE POKéMON CHARMANDER?
    
    #org 0x18E2E5
    = This POKéMON is really quite\nenergetic!
    
    #org 0x18E30D
    = [player] received the [buffer1]\nfrom PROF. OAK!
    
    #org 0x1A56A7
    = Do you want to give a nickname to\nthis [buffer1]?
    
    #org 0x18DD34
    = [rival]: I'll take this one, then!
    
    #org 0x18DD52
    = [rival] received the [buffer1]\nfrom PROF. OAK!
    
    
    '-----------
    ' Movements
    '-----------
    #org 0x1A75EF
    #raw 0x3 'Face Right
    #raw 0xFE 'End of Movements
    
    #org 0x169D62
    #raw 0x10 'Step Down (Normal)
    #raw 0x10 'Step Down (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x11 'Step Up (Normal)
    #raw 0xFE 'End of Movements
    
    #org 0x169D72
    #raw 0x10 'Step Down (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x2E 'Face Up (Delayed)
    #raw 0xFE 'End of Movements
    
    #org 0x169D6B
    #raw 0x10 'Step Down (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x13 'Step Right (Normal)
    #raw 0x2E 'Face Up (Delayed)
    #raw 0xFE 'End of Movements

    OH RIGHT! I remember now. Flags in the 900s overwrite variables in the 4000s!
    Change your variables to the 500s or the flag to the 200/201/203/204 (there are unused flags, but any unused, non-temporary flag would no).

    Here is proof:
    http://www.pokecommunity.com/showpost.php?p=6829256&postcount=158

    edit: Also your choice in variables aren't the best either, if you read this link.
     
    241
    Posts
    11
    Years
  • It works perfectly now. Of course, your rival still picks up a gen 1 starter no matter what, but I'm not sure how to avoid that...especially in the future rival battles...

    EDIT: Actually with a bit of manipulation I got the rival to pick up the correct pokemon as well. But idk how to then implement it in the battle...we shall see...
     
    Last edited:
    154
    Posts
    11
    Years
    • Seen Jan 8, 2017
    Can someone help me out with this set healing place script? Its for the players house in pallet town on FR, its just supposed to be the usual, if you lose, you spawn in front of your mom and she heals your pkmn, but every time i put it in, afterwards i cant walk into that part of the house, or the screen goes black and freezes. ive tried setting it to 03 and 05, both give me a black screen when i enter the room.
    Spoiler:
     

    karatekid552

    What happens if I push it?....
    1,771
    Posts
    11
    Years
  • Can someone help me out with this set healing place script? Its for the players house in pallet town on FR, its just supposed to be the usual, if you lose, you spawn in front of your mom and she heals your pkmn, but every time i put it in, afterwards i cant walk into that part of the house, or the screen goes black and freezes. ive tried setting it to 03 and 05, both give me a black screen when i enter the room.
    Spoiler:

    Sounds like a problem... You have your sethealingplace set up fine. Now, I'm assuming this is a level script, so it should be set to 02 and have an unused var attached.

    Just a nice list of vars and flags in FireRed: http://www.pokecommunity.com/showpost.php?p=6829256&postcount=158

    I don't have a copy of the original script in front of me, so is the only thing you changed was adding the sethealingplace? Just what did you add exactly?

    It works perfectly now. Of course, your rival still picks up a gen 1 starter no matter what, but I'm not sure how to avoid that...especially in the future rival battles...

    EDIT: Actually with a bit of manipulation I got the rival to pick up the correct pokemon as well. But idk how to then implement it in the battle...we shall see...

    You could set a var to the I.D. of the rivals starter Pokemon. Then, use that var to launch a different trainer battle at the time for a rival battle depending upon that var. You will need to set up several different trainers, one for each starter.
     
    Last edited:
    154
    Posts
    11
    Years
    • Seen Jan 8, 2017
    Sounds like a problem... You have your sethealingplace set up fine. Now, I'm assuming this is a level script, so it should be set to 02 and have an unused var attached.

    Just a nice list of vars and flags in FireRed: http://www.pokecommunity.com/showpost.php?p=6829256&postcount=158

    I don't have a copy of the original script in front of me, so is the only thing you changed was adding the sethealingplace? Just what did you add exactly?
    So i tried it with 02, and it didnt black screen when i went into the room, and everything wasfine, but then when i tried losing a battle, it said i scurried to a pokecenter and it sent me to the connection room where you would link battle/trade, then did the pokecenter healing script, instead of taking me to my house.
    This is the jpan hack engine, so all thats in that room is a basic script event which works just fine, its just a basic move and talk script, theres nothing else in the room.
     

    karatekid552

    What happens if I push it?....
    1,771
    Posts
    11
    Years
  • So i tried it with 02, and it didnt black screen when i went into the room, and everything wasfine, but then when i tried losing a battle, it said i scurried to a pokecenter and it sent me to the connection room where you would link battle/trade, then did the pokecenter healing script, instead of taking me to my house.
    This is the jpan hack engine, so all thats in that room is a basic script event which works just fine, its just a basic move and talk script, theres nothing else in the room.

    The use of JPAN's engine should be required in the problem description. There is a whole new set up for it requiring three parameters. See his documentation you received upon download.
     
    154
    Posts
    11
    Years
    • Seen Jan 8, 2017
    The use of JPAN's engine should be required in the problem description. There is a whole new set up for it requiring three parameters. See his documentation you received upon download.
    This is what i found about set healing, as far as i could tell, im doing it right, the worst part is that in my old hack i used this same script, and it worked fine, so i dont know what could be the problem. o-o
    Spoiler:

    Spoiler:
     

    karatekid552

    What happens if I push it?....
    1,771
    Posts
    11
    Years
  • This is what i found about set healing, as far as i could tell, im doing it right, the worst part is that in my old hack i used this same script, and it worked fine, so i dont know what could be the problem. o-o
    Spoiler:

    Spoiler:

    Just out of curiosity... Did you use the patch or the application? You may not have the changes with the application. This could be the difference between your two roms, if it is indeed the exact same script.

    Here is what I found:

    SetHealingPlace difference

    At a request, this command was changed to allow a greater number of healing points, that is to say nearly infinite (or at least the full map range of 65536 maps). This code was altered to a point of near-redundancy.
    Originaly, this code was a direct correlation between the Flight table and a table of PokéCenters and XY coordinates where the player would appear on. Now, we can add flight points by re-pointing the table to a new location and create more Flight flags on the map. But you could only appear on the PokéCenter the original flight table told you to. In fact, SetHealingPlace only placed the pre-determined flight position in memory, close to the escape-rope data. If you tried to set the flying number higher than the original one, the game would cancel the setting.

    The new version uses three variables, 0x405a, 0x405b and 0x405c as the map, X-position and Y-position respectively. The map is placed in the format 0xmmBB, being BB the Bank number and mm the map number. In AdvanceMap, the map number and bank are presented in Decimal form, so you need to place them in Hexadecimal form.

    For instance, to use the PokéCenter in Indigo Plateau (13,0), you would use setvar 0x405a 0x000d. To place them in the right place for the nurse, you would also use setvar 0x405b 0x000d setvar 0x405c 0x000c

    In the end, this method replaces SetHealingPlace altogether, and the old way doesn't work anymore. Using Sethealingplace is only useful in one occasion, and that is because sethealingplace 0x1 is the only one that doesn't call the default nurse animation. So, you can use sethealingplace 0x0 for all pokecenters and sethealingplace 0x1 for the places where there isn't a healing machine (like a campsite in the florest)


    And this is it for now. All the new features explained (some better than others, I admit). Now, I will add a small section of credits for the people I am grateful, and without which this hack could not exist or at least would have been much harder to make.

    You did get the .doc that came with your download, correct?
     
    154
    Posts
    11
    Years
    • Seen Jan 8, 2017
    Just out of curiosity... Did you use the patch or the application? You may not have the changes with the application. This could be the difference between your two roms, if it is indeed the exact same script.
    both of them i used lunar to apply the patch to a fr rom
     
    241
    Posts
    11
    Years
  • You could set a var to the I.D. of the rivals starter Pokemon. Then, use that var to launch a different trainer battle at the time for a rival battle depending upon that var. You will need to set up several different trainers, one for each starter.

    Yeah I figured I could do that if it came down to it...but I was hoping there was a less time-consuming way. Editing 3 sets of rival battles is bad enough...but oh well. At least it works.
     
    Status
    Not open for further replies.
    Back
    Top