• 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.

Pokemon Contest scripts (in development)

1,224
Posts
10
Years
  • Looking at the code you've posted, it looks like you're duplicating a lot of unneeded data such as a move's name and description, you could load all the info you need from Moves.txt and only keep the bare minimum inside ContestMoves.txt (this will cut down a lot of time in adding all the contest data for the moves)

    Well I've actually already made the .txt for it, I made it prior to the compiler so I knew what I would be compiling. The description is important because I intend for it to tell you what the move does in contest, like how it did in Hoenn. I only did the name part because I am intending to match the moves by their internal names. This is not going as planned, because I'm not sure how to do that. If anyone could point me in the right direction there I would be appreciative.

    @zeak6464, I will post screenshots in a couple days, I'm currently waiting for a replacement charger port for my laptop because it broke, so I will after that and then I will resume this code
     
    1,748
    Posts
    14
    Years
  • I only did the name part because I am intending to match the moves by their internal names. This is not going as planned, because I'm not sure how to do that. If anyone could point me in the right direction there I would be appreciative.

    Well, you could do a loop from 0 to Move Count and check against the internal name like that.
     
    1,224
    Posts
    10
    Years
  • Well, you could do a loop from 0 to Move Count and check against the internal name like that.

    I ended up just using this
    Code:
     for i in 1..PBContestMoves.maxValue
          name=PBContestMoves.getName(i)
          if @currentmove==name
            @currentmove=getID(PBContestMoves,i)
          end
        end

    making good steps in this script. Should have a semi-usable version up in a bit.
     
    1,224
    Posts
    10
    Years
  • Okay, one last big thing I need help with. Then the basis of the script will be complete, and just need the move functions worked in. Which will take some time, but mostly just organizing how/when the functions work/take effect.

    I recreated a section similar to PBMove to let me access the movedata in a similar way to how the battles work

    Code:
    class PokemonContestTemp
      attr_accessor :pokemonContestMoveData
    
      def pbOpenContestMoveData
        if !self.pokemonContestMoveData
          pbRgssOpen("Data/contestmoves.dat","rb"){|f|
             self.pokemonContestMoveData=f.read
          }
        end
        if block_given?
          StringInput.open(self.pokemonContestMoveData) {|f| yield f }
        else
          return StringInput.open(self.pokemonContestMoveData)
        end
      end
    end
    
    
    
    class PBContestMoveData
      
    attr_reader :function,:hearts,:jam,:contestType
    
      def initialize(moveid)
        contestmovedata=nil
        if $PokemonContestTemp
          contestmovedata=$PokemonContstTemp.pbOpenContestMoveData
        else
          contestmovedata=pbRgssOpen("Data/contestmoves.dat")
        end
        contestmovedata.pos=moveid*7
        @contestType = contestmovedata.fgetb
        @hearts      = contestmovedata.fgetb
        @jam         = contestmovedata.fgetb
        @contestfunction    = contestmovedata.fgetw
        contestmovedata.close
      end
    end
    
    
    
    class PBContestMove
      attr_reader :function,:hearts,:jam,:contestType,:id     
    
    # Gets this move's type.
      def type
        contestmovedata=PBContestMoveData.new(@id)
        return contestmovedata.type
      end
    #gets the number of hearts
    def hearts
      contestmovedata=PBContestMoveData.new(@hearts)
      return contestmovedata.hearts
    end
    
    
    # Initializes this object to the specified move ID.
      def initialize(moveid)
        contestmovedata=PBContestMoveData.new(moveid)
        @id=moveid
      end
    end

    However, when I attempt to use the "hearts" function to find how many hearts to assign, it either returns 0 or returns 3. No idea why this is. Calling it using
    Code:
    @currentmove=getID(PBContestMoves,i)
      contestmovedata=PBContestMoveData.new(@currentmove.id)
        @currenthearts=contestmovedata.hearts
    where i is just a number in 1 through the max value of the contestmoves.txt

    help would be appreciated, because I cannot figure out why it's doing this.

    compiler script is posted above, I don't think I've made any important changes to it.
     

    Maruno

    Lead Dev of Pokémon Essentials
    5,286
    Posts
    16
    Years
    • Seen May 3, 2024
    From an earlier post, this is how you're gathering the data to save in contestmoves.dat:
    Code:
         contestmovedata[record[0]]=[
            record[3],  # Contest Type
            record[4],  # Hearts
            record[5],  # Jam
            record[6]   # Function Code
         ].pack("CCCv")
    Notice what you're packing here: CCCv. Byte byte byte word (which is two bytes). That makes 5 bytes per move in total.

    Here is how you're calling the data:
    Code:
        contestmovedata.pos=moveid*7
        @contestType = contestmovedata.fgetb
        @hearts      = contestmovedata.fgetb
        @jam         = contestmovedata.fgetb
        @contestfunction    = contestmovedata.fgetw
    There's a 7 in there, meaning you think that each move is packed into 7 bytes. They aren't. The number's wrong, which means you're getting gibberish by reading the wrong bytes - it seems to be coincidence that you only ever ended up with either 0 or 3 in your testing.

    Change the 7 to a 5.

    Incidentally, you don't need :hearts as an attr_reader in class PBContestMove, because that's just short for def hearts...end and you've got that method already. The same will apply to the other ones (except for :id) if/when you make methods for them.
     
    1,224
    Posts
    10
    Years
  • From an earlier post, this is how you're gathering the data to save in contestmoves.dat:
    Code:
         contestmovedata[record[0]]=[
            record[3],  # Contest Type
            record[4],  # Hearts
            record[5],  # Jam
            record[6]   # Function Code
         ].pack("CCCv")
    Notice what you're packing here: CCCv. Byte byte byte word (which is two bytes). That makes 5 bytes per move in total.

    Here is how you're calling the data:
    Code:
        contestmovedata.pos=moveid*7
        @contestType = contestmovedata.fgetb
        @hearts      = contestmovedata.fgetb
        @jam         = contestmovedata.fgetb
        @contestfunction    = contestmovedata.fgetw
    There's a 7 in there, meaning you think that each move is packed into 7 bytes. They aren't. The number's wrong, which means you're getting gibberish by reading the wrong bytes - it seems to be coincidence that you only ever ended up with either 0 or 3 in your testing.

    Change the 7 to a 5.

    Incidentally, you don't need :hearts as an attr_reader in class PBContestMove, because that's just short for def hearts...end and you've got that method already. The same will apply to the other ones (except for :id) if/when you make methods for them.

    Thank you so much! I did not know how the packing worked, so I didn't really notice that.

    Another main problem I had was that I was saying
    Code:
    @currentmove=getID(PBContestMoves,i)
      contestmovedata=PBContestMoveData.new(@currentmove.id)

    which the @currentmove.id part was redundant, it should have just been @currentmove. Which may have been why I was only getting the two numbers instead of others. It might be a couple days, but I should have a semi-working version of the script up soon now!
     
    1,224
    Posts
    10
    Years
  • Hopefully someone can help me figure out what's going on


    Current Code: WARNING, Lengthy
    I've marked where I think the problem starts up with #Error
    Edit: also marked other notable lines from the error message with their number
    Spoiler:


    Error Message
    Spoiler:


    The problem is that it keeps trying to use @pkmn3, though it appears to me that the script clearly says otherwise.
     
    Last edited:

    FL

    Pokémon Island Creator
    2,450
    Posts
    13
    Years
    • Seen May 4, 2024
    Change 'if target=@pkmn1' to 'if target==@pkmn1'.

    A code tip: Instead of using

    Code:
        if @applause==1
          @currenthearts=5
        elsif @applause==2
          @currenthearts=4
        elsif @applause==3
          @currenthearts=3
        elsif @applause==4
          @currenthearts=2  
        elsif @applause==0
          @currenthearts=6
        else
          @currenthearts=1
        end

    I suggest:

    Code:
    currentApplause = @applause
    currentApplause = 5 if currentApplause<0 || 5<currentApplause
    @currenthearts=[6,5,4,3,2,1]

    or

    Code:
    currentApplause = @applause
    currentApplause = 5 if currentApplause<0 || 5<currentApplause
    @currenthearts=6-currentApplause

    Do a similar thing when defining Contest type string.
     
    1,224
    Posts
    10
    Years
  • Change 'if target=@pkmn1' to 'if target==@pkmn1'.

    A code tip: Instead of using

    Code:
        if @applause==1
          @currenthearts=5
        elsif @applause==2
          @currenthearts=4
        elsif @applause==3
          @currenthearts=3
        elsif @applause==4
          @currenthearts=2  
        elsif @applause==0
          @currenthearts=6
        else
          @currenthearts=1
        end

    I suggest:

    Code:
    currentApplause = @applause
    currentApplause = 5 if currentApplause<0 || 5<currentApplause
    @currenthearts=[6,5,4,3,2,1]

    or

    Code:
    currentApplause = @applause
    currentApplause = 5 if currentApplause<0 || 5<currentApplause
    @currenthearts=6-currentApplause

    Do a similar thing when defining Contest type string.

    Wow, I can't believe I missed that.

    And that's very helpful, thank you so much!
     
    1,224
    Posts
    10
    Years
  • Okay, been making some major strides in this script, working on adding combos. For some reason I seem to be having trouble. I don't see anything wrong with these methods, but it should be returning true and it's not
    Spoiler:

    is there something I'm missing, or is the problem lying elsewhere?
     
    1,748
    Posts
    14
    Years
  • You're looping i twice which I'm sure that's not what you want.

    Code:
    def pbAssignCombos  #define all combos here.  first entry in array starts the combo, the rest are the options to follow it
         combo1=["BELLYDRUM","REST"]
         combo2=["CALMMIND","CONFUSION","DREAMEATER","FUTURESIGHT","LIGHTSCREEN","LUSTERPURGE","MEDITATE","MISTBALL","PSYBEAM","PSYCHIC","PSYCHOBOOST","PSYWAVE","REFLECT"]
         combo3=["CHARGE","SHOCKWAVE","SPARK","THUNDER","THUNDERBOLT","THUNDERPUNCH","THUNDERSHOCK","THUNDERWAVE","VOLTTACKLE","ZAPCANNON"]
         combo4=["CHARM","FLATTER","GROWL","REST","TAILWHIP"]
         combo5=["CONFUSION","FUTURESIGHT","KINESIS","PSYCHIC","TELEPORT"]
         combo6=["CURSE","DESTINYBOND","GRUDGE","MEANLOOK","SPITE"]
         combo7=["DEFENSECURL","ROLLOUT","TACKLE"]
         combo8=["DIVE","SURF"]
         combo9=["DOUBLETEAM","AGILITY","QUICKATTACK","TELEPORT"]
         combo10=["DRAGONBREATH","DRAGONCLAWDRAGONDANCE","DRAGONRAGE"]
         combo11=["DRAGONDANCE","DRAGONBREATH","DRAGONCLAW","DRAGONRAGE"]
         combo12=["DRAGONRAGE","DRAGONBREATH","DRAGONCLAW","DRAGONDANCE"]
         combo13=["EARTHQUAKE","ERUPTION","FISSURE"]
         combo14=["ENDURE","FLAIL","REVERSAL"]
         combo15=["FAKEOUT","ARMTHRUST","FEINTATTACK","KNOCKOFF","SEISMICTOSS","VITALTHROW"]
         combo16=["FIREPUNCH","ICEPUNCH","THUNDERPUNCH"]
         combo17=["FOCUSENERGY","ARMTHRUST","BRICKBREAK","CROSSCHOP","DOUBLEEDGE","DYNAMICPUNCH","FOCUSPUNCH","HEADBUTT","KARATECHOP","SKYUPPERCUT","TAKEDOWN"]
         combo18=["GROWTH","ABSORB","BULLETSEED","FRENZYPLANT","GIGADRAIN","LEECHSEED","MAGICALLEAF","MEGADRAIN","PETALDANCE","RAZORLEAF","SOLARBEAM","VINEWHIP"]
         combo19=["HAIL","AURORABEAM","BLIZZARD","HAZE","ICEBALL","ICEBEAM","ICICLESPEAR","ICYWIND","POWDERSNOW","SHEERCOLD","WEATHERBALL"]
         combo20=["HARDEN","DOUBLEEDGE","PROTECT","ROLLOUT","TACKLE","TAKEDOWN"]
         combo21=["HORNATTACK","HORNDRILL","FURYATTACK"]
         combo22=["HYPNOSIS","DREAMEATER"]
         combo23=["ICEPUNCH","FIREPUNCH","THUNDERPUNCH"]
         combo24=["KINESIS","CONFUSION","FUTURESIGHT","PSYCHIC","TELEPORT"]
         combo25=["LEER","BITE","FEINTATTACK","GLARE","HORNATTACK","SCARYFACE","SCRATCH","STOMP","TACKLE"]
         combo26=["LOCKON","SUPERPOWER","THUNDER","TRIATTACK","ZAPCANNON"]
         combo27=["MEANLOOK","DESTINYBOND","PERISHSONG"]
         combo28=["METALSOUND","METALCLAW"]
         combo29=["MINDREADER","DYNAMICPUNCH","HIJUMPKICK","SHEERCOLD","SUBMISSION","SUPERPOWER"]
         combo30=["MUDSPORT","MUDSLAP","WATERGUN","WATERSPORT"]
         combo31=["PECK","DRILLPECK","FURYATTACK"]
         combo32=["POUND","DOUBLESLAP","FEINTATTACK","SLAM"]
         combo33=["POWDERSNOW","BLIZZARD"]
         combo34=["PSYCHIC","CONFUSION","TELEPORT","FUTURESIGHT","KINESIS"]
         combo35=["RAGE","LEER","SCARYFACE","THRASH"]
         combo36=["RAINDANCE","BUBBLE","BUBBLEBEAM","CLAMP","CRABHAMMER","DIVE","HYDROCANNON","HYDROPUMP","MUDDYWATER","OCTAZOOKA","SURF","THUNDER","WATERGUN","WATERPULSE","WATERSPORT","WATERSPOUT","WATERFALL","WEATHERBALL","WHIRLPOOL"]
         combo37=["REST","SLEEPTALK","SNORE"]
         combo38=["ROCKTHROW","ROCKSLIDE","ROCKTOMB"]
         combo39=["SANDATTACK","MUDSLAP"]
         combo40=["SANDSTORM","MUDSHOT","MUDSLAP","MUDSPORT","SANDTOMB","SANDATTACK","WEATHERBALL"]
         combo41=["SCARYFACE","BITE","CRUNCH","LEER"]
         combo42=["SCRATCH","FURYSWIPES","SLASH"]
         combo43=["SING","PERISHSONG","REFRESH"]
         combo44=["SLUDGE","SLUDGEBOMB"]
         combo45=["SLUDGEBOMB","SLUDGE"]
         combo46=["SMOG","SMOKESCREEN"]
         combo47=["STOCKPILE","SPITUP","SWALLOW"]
         combo48=["SUNNYDAY","BLASTBURN","BLAZEKICK","EMBER","ERUPTION","FIREBLAST","FIREPUNCH","FIRESPIN","FLAMEWHEEL","FLAMETHROWER","HEATWAVE","MOONLIGHT","MORNINGSUN","OVERHEAT","SACREDFIRE","SOLARBEAM","SYNTHESIS","WEATHERBALL","WILLOWISP"]
         combo49=["SURF","DIVE"]
         combo50=["SWEETSCENT","POISONPOWDER","SLEEPOWDER","STUNSPORE"]
         combo51=["SWORDSDANCE","CRABHAMMER","CRUSHCLAW","CUT","FALSESWIPE","FURYCUTTER","SLASH"]
         combo52=["TAUNT","COUNTER","DETECT","MIRRORCOAT"]
         combo53=["THUNDERPUNCH","FIREPUNCH","ICEPUNCH"]
         combo54=["VICEGRIP","BIND","GUILLOTINE"]
         combo55=["WATERSPORT","MUDSPORT","REFRESH","WATERGUN"]
         combo56=["YAWN","REST","SLACKOFF"]
         #add more combos here
         #then add them to this multi array below
         @combos=[combo1,combo2,combo3,combo4,combo5,combo6,combo7,combo8,combo9,combo10,combo11,combo12,combo13,combo14,combo15,combo16,combo17,combo18,combo19,combo20,combo21,combo22,combo23,combo24,combo25,combo26,combo27,combo28,combo29,combo30,
         combo31,combo32,combo33,combo34,combo35,combo36,combo37,combo38,combo39,combo40,combo41,combo42,combo43,combo44,combo45,combo46,combo47,combo48,combo49,combo50,combo51,combo52,combo53,combo54,combo55,combo56]
      end
      
      def pbCheckforCombos
        case @currentpoke
        when @pkmn1
          oldmove=@pkmn1lastmove
        when @pkmn2
          oldmove=@pkmn2lastmove
        when @pkmn3
          oldmove=@pkmn3lastmove
        when @pkmn4
          oldmove=@pkmn4lastmove
        end
        for [COLOR="red"]j[/COLOR] in [email protected]
          [COLOR="red"]if oldmove==@combos[j][/COLOR]
            [COLOR="Red"]#j=i[/COLOR]
            for i in 1..@combos[j].length-1
            if @currentmovename==[COLOR="Red"]@combos[j][i][/COLOR]
              return true
            end
          end
        end
      end
    end
     
    Last edited:
    1,224
    Posts
    10
    Years
  • You're looping i twice which I'm sure that's not what you want.

    Code:
    def pbAssignCombos  #define all combos here.  first entry in array starts the combo, the rest are the options to follow it
         combo1=["BELLYDRUM","REST"]
         combo2=["CALMMIND","CONFUSION","DREAMEATER","FUTURESIGHT","LIGHTSCREEN","LUSTERPURGE","MEDITATE","MISTBALL","PSYBEAM","PSYCHIC","PSYCHOBOOST","PSYWAVE","REFLECT"]
         combo3=["CHARGE","SHOCKWAVE","SPARK","THUNDER","THUNDERBOLT","THUNDERPUNCH","THUNDERSHOCK","THUNDERWAVE","VOLTTACKLE","ZAPCANNON"]
         combo4=["CHARM","FLATTER","GROWL","REST","TAILWHIP"]
         combo5=["CONFUSION","FUTURESIGHT","KINESIS","PSYCHIC","TELEPORT"]
         combo6=["CURSE","DESTINYBOND","GRUDGE","MEANLOOK","SPITE"]
         combo7=["DEFENSECURL","ROLLOUT","TACKLE"]
         combo8=["DIVE","SURF"]
         combo9=["DOUBLETEAM","AGILITY","QUICKATTACK","TELEPORT"]
         combo10=["DRAGONBREATH","DRAGONCLAWDRAGONDANCE","DRAGONRAGE"]
         combo11=["DRAGONDANCE","DRAGONBREATH","DRAGONCLAW","DRAGONRAGE"]
         combo12=["DRAGONRAGE","DRAGONBREATH","DRAGONCLAW","DRAGONDANCE"]
         combo13=["EARTHQUAKE","ERUPTION","FISSURE"]
         combo14=["ENDURE","FLAIL","REVERSAL"]
         combo15=["FAKEOUT","ARMTHRUST","FEINTATTACK","KNOCKOFF","SEISMICTOSS","VITALTHROW"]
         combo16=["FIREPUNCH","ICEPUNCH","THUNDERPUNCH"]
         combo17=["FOCUSENERGY","ARMTHRUST","BRICKBREAK","CROSSCHOP","DOUBLEEDGE","DYNAMICPUNCH","FOCUSPUNCH","HEADBUTT","KARATECHOP","SKYUPPERCUT","TAKEDOWN"]
         combo18=["GROWTH","ABSORB","BULLETSEED","FRENZYPLANT","GIGADRAIN","LEECHSEED","MAGICALLEAF","MEGADRAIN","PETALDANCE","RAZORLEAF","SOLARBEAM","VINEWHIP"]
         combo19=["HAIL","AURORABEAM","BLIZZARD","HAZE","ICEBALL","ICEBEAM","ICICLESPEAR","ICYWIND","POWDERSNOW","SHEERCOLD","WEATHERBALL"]
         combo20=["HARDEN","DOUBLEEDGE","PROTECT","ROLLOUT","TACKLE","TAKEDOWN"]
         combo21=["HORNATTACK","HORNDRILL","FURYATTACK"]
         combo22=["HYPNOSIS","DREAMEATER"]
         combo23=["ICEPUNCH","FIREPUNCH","THUNDERPUNCH"]
         combo24=["KINESIS","CONFUSION","FUTURESIGHT","PSYCHIC","TELEPORT"]
         combo25=["LEER","BITE","FEINTATTACK","GLARE","HORNATTACK","SCARYFACE","SCRATCH","STOMP","TACKLE"]
         combo26=["LOCKON","SUPERPOWER","THUNDER","TRIATTACK","ZAPCANNON"]
         combo27=["MEANLOOK","DESTINYBOND","PERISHSONG"]
         combo28=["METALSOUND","METALCLAW"]
         combo29=["MINDREADER","DYNAMICPUNCH","HIJUMPKICK","SHEERCOLD","SUBMISSION","SUPERPOWER"]
         combo30=["MUDSPORT","MUDSLAP","WATERGUN","WATERSPORT"]
         combo31=["PECK","DRILLPECK","FURYATTACK"]
         combo32=["POUND","DOUBLESLAP","FEINTATTACK","SLAM"]
         combo33=["POWDERSNOW","BLIZZARD"]
         combo34=["PSYCHIC","CONFUSION","TELEPORT","FUTURESIGHT","KINESIS"]
         combo35=["RAGE","LEER","SCARYFACE","THRASH"]
         combo36=["RAINDANCE","BUBBLE","BUBBLEBEAM","CLAMP","CRABHAMMER","DIVE","HYDROCANNON","HYDROPUMP","MUDDYWATER","OCTAZOOKA","SURF","THUNDER","WATERGUN","WATERPULSE","WATERSPORT","WATERSPOUT","WATERFALL","WEATHERBALL","WHIRLPOOL"]
         combo37=["REST","SLEEPTALK","SNORE"]
         combo38=["ROCKTHROW","ROCKSLIDE","ROCKTOMB"]
         combo39=["SANDATTACK","MUDSLAP"]
         combo40=["SANDSTORM","MUDSHOT","MUDSLAP","MUDSPORT","SANDTOMB","SANDATTACK","WEATHERBALL"]
         combo41=["SCARYFACE","BITE","CRUNCH","LEER"]
         combo42=["SCRATCH","FURYSWIPES","SLASH"]
         combo43=["SING","PERISHSONG","REFRESH"]
         combo44=["SLUDGE","SLUDGEBOMB"]
         combo45=["SLUDGEBOMB","SLUDGE"]
         combo46=["SMOG","SMOKESCREEN"]
         combo47=["STOCKPILE","SPITUP","SWALLOW"]
         combo48=["SUNNYDAY","BLASTBURN","BLAZEKICK","EMBER","ERUPTION","FIREBLAST","FIREPUNCH","FIRESPIN","FLAMEWHEEL","FLAMETHROWER","HEATWAVE","MOONLIGHT","MORNINGSUN","OVERHEAT","SACREDFIRE","SOLARBEAM","SYNTHESIS","WEATHERBALL","WILLOWISP"]
         combo49=["SURF","DIVE"]
         combo50=["SWEETSCENT","POISONPOWDER","SLEEPOWDER","STUNSPORE"]
         combo51=["SWORDSDANCE","CRABHAMMER","CRUSHCLAW","CUT","FALSESWIPE","FURYCUTTER","SLASH"]
         combo52=["TAUNT","COUNTER","DETECT","MIRRORCOAT"]
         combo53=["THUNDERPUNCH","FIREPUNCH","ICEPUNCH"]
         combo54=["VICEGRIP","BIND","GUILLOTINE"]
         combo55=["WATERSPORT","MUDSPORT","REFRESH","WATERGUN"]
         combo56=["YAWN","REST","SLACKOFF"]
         #add more combos here
         #then add them to this multi array below
         @combos=[combo1,combo2,combo3,combo4,combo5,combo6,combo7,combo8,combo9,combo10,combo11,combo12,combo13,combo14,combo15,combo16,combo17,combo18,combo19,combo20,combo21,combo22,combo23,combo24,combo25,combo26,combo27,combo28,combo29,combo30,
         combo31,combo32,combo33,combo34,combo35,combo36,combo37,combo38,combo39,combo40,combo41,combo42,combo43,combo44,combo45,combo46,combo47,combo48,combo49,combo50,combo51,combo52,combo53,combo54,combo55,combo56]
      end
      
      def pbCheckforCombos
        case @currentpoke
        when @pkmn1
          oldmove=@pkmn1lastmove
        when @pkmn2
          oldmove=@pkmn2lastmove
        when @pkmn3
          oldmove=@pkmn3lastmove
        when @pkmn4
          oldmove=@pkmn4lastmove
        end
        for [COLOR="red"]j[/COLOR] in [email protected]
          [COLOR="red"]if oldmove==@combos[j][/COLOR]
            [COLOR="Red"]#j=i[/COLOR]
            for i in 1..@combos[j].length-1
            if @currentmovename==[COLOR="Red"]@combos[j][i][/COLOR]
              return true
            end
          end
        end
      end
    end

    Thank you so much! I did have to make one slight change,
    Code:
    if oldmove==@combos[j][COLOR="Red"][0][/COLOR]
    because it's supposed to check the first slot in the array instead of the array as a whole. It works great though now! I will update the script in the alpha soon.
     
    1,224
    Posts
    10
    Years
  • My bad, it seems like I removed that while editing and didn't realize it.

    It's no problem. On a related note, would you happen to know if I can store a multidimensional array in a $game_variables[] ? This function takes a bit of time to store the arrays, so I'd like to do that on start-up if I can so it only has to be done once.

    Edit 2: added it to settings instead.
     
    Last edited:
    1,224
    Posts
    10
    Years
  • Is there a place within the functions for move animations that resets the battler sprite afterwards or something? I don't find anything explicit, but in my rewrites of the scripts for this contest it seems to do this yet I don't see where this occurs.

    classes and methods used
    Spoiler:



    Edit: figured it out, just had to add in this line
    Code:
    cel[AnimFrame::MIRROR]=1
    about to update the post in Scripts and Tutorials
     
    Last edited:
    Back
    Top