• 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?".
  • Forum moderator applications are now open! Click here for details.
  • 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