• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Our friends from the Johto Times are hosting a favorite Pokémon poll - and we'd love for you to participate! Click here for information on how to vote for your favorites!
  • Serena, Kris, Dawn, Red - which Pokémon protagonist is your favorite? Let us know by voting in our grand final favorite protagonist poll!
  • 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)

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
 
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.
 
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.
 
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.
 
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.
 
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!
 
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:
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.
 
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!
 
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?
 
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:
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.
 
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:
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