Advertiser Content
Seen July 16th, 2019
Posted July 16th, 2019
20 posts
173 Days
Im trying to debug and reassemble the move reminders (aka PokeManiac) Script that lets you choose an attack your Pokemon once knew. What I want is that it doesnt take Mushrooms of any sort to work properly. And I also want the textboxes of this script to be short. I want to use this script in a central Lobby where Im able to configure my Team as diverse a possible.

Does anyone have a script like this or knows how this script works?

#dynamic 0x800000
#org @start
special 0x187
compare LASTRESULT 0x2
if 0x1 goto 0x81A7AE0
special 0x188
lock
faceplayer
clearflag 0x2
clearflag 0x3
clearflag 0x4
checkflag 0x1
if 0x1 goto 0x817164F
msgbox 0x81A2B88 MSG_KEEPOPEN '"I'm the POKéMON MOVE MANIAC.\pI kn..."
setflag 0x1
goto 0x17164F

'---------------
#org 0x1A7AE0
release
end

'---------------
#org 0x17164F
checkitem 0x68 0x1
compare LASTRESULT 0x1
if 0x1 call 0x81717A8
checkitem 0x67 0x2
compare LASTRESULT 0x1
if 0x1 call 0x81717AC
checkflag 0x2
if 0x1 goto 0x8171687
checkflag 0x3
if 0x1 goto 0x8171696
goto 0x817179E

'---------------
#org 0x1717A8
setflag 0x2
return

'---------------
#org 0x1717AC
setflag 0x3
return

'---------------
#org 0x171687
checkflag 0x3
if 0x1 call 0x81717B0
goto 0x81716A5

'---------------
#org 0x171696
checkflag 0x2
if 0x1 call 0x81717B0
goto 0x81716A5

'---------------
#org 0x17179E
msgbox 0x81A2DE0 MSG_KEEPOPEN '"If your POKéMON need to learn a\nm..."
release
end

'---------------
#org 0x1717B0
setflag 0x4
return

'---------------
#org 0x1716A5
msgbox 0x81A2C63 MSG_YESNO '"Sniff, sniff[.]\nHm! You smell of ..."
compare LASTRESULT 0x0
if 0x1 goto 0x817179E
goto 0x81716BE

'---------------
#org 0x1716BE
msgbox 0x81A2CC3 MSG_KEEPOPEN '"Which POKéMON needs tutoring?"
special 0xDB
waitstate
compare 0x8004 0x6
if 0x4 goto 0x817179E
special 0x148
compare LASTRESULT 0x1
if 0x1 goto 0x8171790
compare 0x8005 0x0
if 0x1 goto 0x8171782
goto 0x81716F4

'---------------
#org 0x171790
msgbox 0x81A2E20 MSG_KEEPOPEN '"Hunh? There isn't a single move\nt..."
goto 0x81716BE

'---------------
#org 0x171782
msgbox 0x81A2CFC MSG_KEEPOPEN '"Sorry[.]\pIt doesn't appear as if ..."
goto 0x81716BE

'---------------
#org 0x1716F4
msgbox 0x81A2CE1 MSG_KEEPOPEN '"Which move should I teach?"
special 0xE0
waitstate
compare 0x8004 0x0
if 0x1 goto 0x81716BE
checkflag 0x4
if 0x1 goto 0x817175B
checkflag 0x2
if 0x1 goto 0x8171727
checkflag 0x3
if 0x1 goto 0x8171741
end

'---------------
#org 0x17175B
preparemsg 0x81A2D43 '"Then, I'll need a MUSHROOM or two...."
waitmsg
multichoice 0x0 0x0 0x33 0x1
copyvar 0x8000 LASTRESULT
compare 0x8000 0x0
if 0x1 goto 0x8171741
compare 0x8000 0x1
if 0x1 goto 0x8171727
end

'---------------
#org 0x171727
removeitem 0x68 0x1
textcolor 0x3
msgbox 0x81A2DB3 MSG_KEEPOPEN '"[player] handed over one\nBIG MUSH..."
call 0x81A6675
goto 0x817179E

'---------------
#org 0x171741
removeitem 0x67 0x2
textcolor 0x3
msgbox 0x81A2D85 MSG_KEEPOPEN '"[player] handed over two\nTINYMUSH..."
call 0x81A6675
goto 0x817179E

'---------------
#org 0x1A6675
copyvar 0x8012 0x8013
return


'---------
' Strings
'---------
#org 0x1A2B88
= I'm the POKéMON MOVE MANIAC.\pI know every single move that\nPOKéMON learn growing up.\pI'm also a mushroom maniac.\pBring me two TINYMUSHROOMS,\nor one BIG MUSHROOM.\pIf you do that for me, I'll teach\na move to one POKéMON.

#org 0x1A2DE0
= If your POKéMON need to learn a\nmove, I need a MUSHROOM or two.

#org 0x1A2C63
= Sniff, sniff[.]\nHm! You smell of MUSHROOMS!\pDo you want me to teach a move\nto a POKéMON of yours?

#org 0x1A2CC3
= Which POKéMON needs tutoring?

#org 0x1A2E20
= Hunh? There isn't a single move\nthat I can teach an EGG.

#org 0x1A2CFC
= Sorry[.]\pIt doesn't appear as if I have a\nmove I can teach that POKéMON.

#org 0x1A2CE1
= Which move should I teach?

#org 0x1A2D43
= Then, I'll need a MUSHROOM or two.\nWhat are you going to give me?

#org 0x1A2DB3
= [player] handed over one\nBIG MUSHROOM in exchange.

#org 0x1A2D85
= [player] handed over two\nTINYMUSHROOMS in exchange.

DrFuji

Heiki Hecchara‌‌

Age 26
Male
Aussie
Seen 2 Days Ago
Posted 1 Week Ago
1,609 posts
10 Years
Here's a more readable version of the script with some comments that explain what's going on at particular points:

Spoiler:
#dynamic 0x800000

#org @start
special 0x187
compare 0x800D 0x2
if 0x1 goto @Error //Error checker that pops up in a ton of FR scripts
special 0x188
lock
faceplayer
clearflag 0x2
clearflag 0x3 // Clearing flags in case you've spoken to the Maniac before
clearflag 0x4 // All four of these flags reset upon leaving the map
checkflag 0x1 // Checking if you've spoken to the Maniac before
if 0x1 goto @MushroomCheck
msgbox @FirstIntro 0x2
setflag 0x1 // Lets the game know you've spoken to the Maniac once
goto @MushroomCheck

#org @Error
release
end

#org @MushroomCheck
checkitem 0x68 0x1 // Checking if the player has at least one Big Mushroom
compare 0x800D 0x1
if 0x1 call @HasOneLargeMushroom
checkitem 0x67 0x2 // Checking if the player has at least two Small Mushrooms
compare 0x800D 0x1
if 0x1 call @HasTwoSmallMushrooms
checkflag 0x2
if 0x1 goto @BothMushroomsCheck1
checkflag 0x3
if 0x1 goto @BothMushroomsCheck2
goto @End

#org @HasOneLargeMushroom
setflag 0x2 // Player has one Big Mushroom
return

#org @HasTwoSmallMushrooms
setflag 0x3 // Player has two Small Mushrooms
return

#org @BothMushroomsCheck1
checkflag 0x3 // Checking if the player has both types of mushroom
if 0x1 call @HaveBothMushrooms
goto @GotMushrooms

#org @BothMushroomsCheck2
checkflag 0x2 // This check is redundant as you would have gone to @BothMushroomsCheck1
if 0x1 call @HaveBothMushrooms
goto @GotMushrooms

#org @End
msgbox @EndingText 0x2
release
end

#org @HaveBothMushrooms
setflag 0x4 // Flag indicates that the player has both mushrooms
return

#org @GotMushrooms
msgbox @WantToTeachMove? 0x5
compare 0x800D 0x0
if 0x1 goto @End
goto @Continue

#org @Continue
msgbox @WhichPokemon 0x2
special 0xDB // Opens Pokemon Menu
waitstate
compare 0x8004 0x6 // Check if player pressed B or chose exit in the Pokemon menu
if 0x4 goto @End
special 0x148 // Check of some kind for the Pokemon you chose. Not much info.
compare 0x800D 0x1
if 0x1 goto @ChoseEgg // Player chose an Egg
compare 0x8005 0x0
if 0x1 goto @NotEnoughMoves // Pokemon has no moves to learn (e.g Ditto)
goto @TeachMoves

#org @ChoseEgg
msgbox @EggText 0x2
goto @Continue

#org @NotEnoughMoves
msgbox @NotEnoughMovesText 0x2
goto @Continue

#org @TeachMoves
msgbox @WhichMove 0x2
special 0xE0 // Move relearning special
waitstate
compare 0x8004 0x0
if 0x1 goto @Continue
checkflag 0x4 // Various checks to determine how the player will pay
if 0x1 goto @EndingBothMushrooms
checkflag 0x2
if 0x1 goto @EndingBigMushroom
checkflag 0x3
if 0x1 goto @EndingSmallMushroom
end

#org @EndingBothMushrooms
preparemsg @WhichMushroom
waitmsg // Choosing which Mushroom to pay with as the player has both
multichoice 0x0 0x0 0x33 0x1
copyvar 0x8000 0x800D
compare 0x8000 0x0
if 0x1 goto @EndingSmallMushroom
compare 0x8000 0x1
if 0x1 goto @EndingBigMushroom
end

#org @EndingBigMushroom
removeitem 0x68 0x1
textcolor 0x3
msgbox @GiveBigMushroom 0x2
call @Unknown
goto @End

#org @EndingSmallMushroom
removeitem 0x67 0x2
textcolor 0x3
msgbox @GiveSmallMushrooms 0x2
call @Unknown
goto @End

#org @Unknown
copyvar 0x8012 0x8013 // idk
return

#org @FirstIntro
= I'm the POKéMON MOVE MANIAC.\pI know every single move that\nPOKéMON learn growing up.\pI'm also a mushroom maniac.\pBring me two TINYMUSHROOMS,\nor one BIG MUSHROOM.\pIf you do that for me, I'll teach\na move to one POKéMON.

#org @EndingText
= If your POKéMON need to learn a\nmove, I need a MUSHROOM or two.

#org @WantToTeachMove?
= Sniff, sniff[.]\nHm! You smell of MUSHROOMS!\pDo you want me to teach a move\nto a POKéMON of yours?

#org @WhichPokemon
= Which POKéMON needs tutoring?

#org @EggText
= Hunh? There isn't a single move\nthat I can teach an EGG.

#org @NotEnoughMovesText
= Sorry[.]\pIt doesn't appear as if I have a\nmove I can teach that POKéMON.

#org @WhichMove
= Which move should I teach?

#org @WhichMushroom
= Then, I'll need a MUSHROOM or two.\nWhat are you going to give me?

#org @GiveBigMushroom
= [player] handed over one\nBIG MUSHROOM in exchange.

#org @GiveSmallMushrooms
= [player] handed over two\nTINYMUSHROOMS in exchange.


Most of the script is dealing with how the player is going to pay for the service and not the actual relearning of moves itself. If you don't want the player to pay for the service, here's a really short script that will get everything done, just change the text to whatever you want.

Spoiler:
#dynamic 0x800000

#org @start
checkflag 0x1
if 0x1 goto @Continue
setflag 0x1
msgbox @FirstInteraction 0x2
goto @Continue

#org @Continue
msgbox @WantToTeachMove? 0x5
compare 0x800D 0x0
if 0x1 goto @End
goto @ChoosePokemon

#org @ChoosePokemon
msgbox @WhichPokemon 0x2
special 0xDB
waitstate
compare 0x8004 0x6
if 0x4 goto @End
special 0x148
compare 0x800D 0x1
if 0x1 goto @ChoseEgg
compare 0x8005 0x0
if 0x1 goto @NotEnoughMoves
msgbox @WhichMove 0x2
special 0xE0
waitstate
goto @End

#org @ChoseEgg
msgbox @EggText 0x2
goto @ChoosePokemon

#org @NotEnoughMoves
msgbox @NotEnoughMovesText 0x2
goto @ChoosePokemon

#org @End
msgbox @EndingText 0x2
release
end

#org @FirstInteraction
= I'm the POKéMON MOVE MANIAC.\pI know every single move that\nPOKéMON learn growing up.

#org @WantToTeachMove?
= Do you want me to teach a move\nto a POKéMON of yours?

#org @WhichPokemon
= Which POKéMON needs tutoring?

#org @EggText
= Hunh? There isn't a single move\nthat I can teach an EGG.

#org @NotEnoughMovesText
= Sorry[.]\pIt doesn't appear as if I have a\nmove I can teach that POKéMON.

#org @WhichMove
= Which move should I teach?

#org @EndingText
= If your POKéMON need to learn a\nmove, you know where I am.
Advertiser Content