• 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] Making the player choose between 2 starters instead of 3?

  • 11
    Posts
    5
    Years
    • Seen Apr 14, 2020
    How would I go about it?
    Because of a busy 2 weeks I still havent figured out how script editing properly works, so any help is much appreciated :)

    Code:
    '---------------
    #org 0x169D78
    lock
    faceplayer
    setvar 0x4001 0x1
    setvar 0x4002 0x7
    setvar 0x4003 0x1
    setvar 0x4004 0x5
    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 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 0x169C14
    msgbox 0x818E272 MSG_YESNO '"I 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 '"Hm! 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
    = I 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
    = Hm! 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

    I have honestly no idea what 2 thirds of this even means...

    Would I also have to edit all 3 Rival scripts of each of his appearances or would it be enough to just "ignore" the first one and use the third one as a substitute?
    What I mean by that is:
    Let's say...
    Bulbasaur is now Riolu
    Charmander is now Houndour
    Squirtle is made inaccessible to the player
    If the player chooses Riolu(Bulbasaur), Rival goes for Houndour(Charmander) and all is well
    If the player chooses Houndour, Rival is supposed to go for Riolu. Now I would need to edit the Rival's movements so he actually picks Riolu-Ball and not Squirtle-Ball (which is non-existent), that I understand.
    BUT!
    Can I leave his Battle Scripts alone, so he uses the teams he picks with Squirtle?
    If my hypothesis is right, that would mean I would only need to edit the teams, and not the scripts itself, which should mean a bit less work and thus a bit less prone to bugging it up..?
     
    How would I go about it?
    Because of a busy 2 weeks I still havent figured out how script editing properly works, so any help is much appreciated :)

    Code:
    '---------------
    #org 0x169D78
    lock
    faceplayer
    setvar 0x4001 0x1
    setvar 0x4002 0x7
    setvar 0x4003 0x1
    setvar 0x4004 0x5
    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 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 0x169C14
    msgbox 0x818E272 MSG_YESNO '"I 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 '"Hm! 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
    = I 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
    = Hm! 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

    I have honestly no idea what 2 thirds of this even means...

    Would I also have to edit all 3 Rival scripts of each of his appearances or would it be enough to just "ignore" the first one and use the third one as a substitute?
    What I mean by that is:
    Let's say...
    Bulbasaur is now Riolu
    Charmander is now Houndour
    Squirtle is made inaccessible to the player
    If the player chooses Riolu(Bulbasaur), Rival goes for Houndour(Charmander) and all is well
    If the player chooses Houndour, Rival is supposed to go for Riolu. Now I would need to edit the Rival's movements so he actually picks Riolu-Ball and not Squirtle-Ball (which is non-existent), that I understand.
    BUT!
    Can I leave his Battle Scripts alone, so he uses the teams he picks with Squirtle?
    If my hypothesis is right, that would mean I would only need to edit the teams, and not the scripts itself, which should mean a bit less work and thus a bit less prone to bugging it up..?

    Learn how to script from scratch and everything will become much easier. Check Avara's scripting tutorial or DiegoIsAwesome's scripting tutorial if you like a written tutorial. Otherwise I would suggest checking Anthroyd's Generation III ROM hacking video tutorials.
     
    Back
    Top