• 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.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • 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.

Custom Animation Move (Elite Battle System)

So for anyone that wants my primal reversion animation (nothing major)

[PokeCommunity.com] Custom Animation Move (Elite Battle System)

Spoiler:

ill update this post when i figure out how to set up different signs like the official games.

the files for it are in the .zip below; put them in "Graphics/Animations" the last one is empty to show no symbol currently.

Good! Maybe i will draw something to change these circle (like original games).

Also, you can put this:
Code:
  def pbPrimalAnimation(attacker,pokemon)
    if !(pokemon.species!=383 || pokemon.form<1) && !CUSTOMANIMATIONS
      return GroudonAnimation(attacker,pokemon)
    elsif !(pokemon.species!=382 || pokemon.form<1) && !CUSTOMANIMATIONS
      return KyogreAnimation(userindex,targetindex)
    end
  end

  def GroudonAnimation(attacker,pokemon)
	blablabla
  end
  
  def KyogreAnimation(attacker,pokemon)
	mimimi
  end
Always when 'pbPrimalAnimation(attacker,pokemon)' is called, will be called one of them...

EDIT: Also, if you want the symbols:

https://www.deviantart.com/coolshallow/art/Primal-Kyogre-Alpha-Symbol-452752492

https://www.deviantart.com/coolshallow/art/Primal-Groudon-Omega-Symbol-452752056
 
Last edited:
Good! Maybe i will draw something to change these circle (like original games).

Also, you can put this:
Code:
  def pbPrimalAnimation(attacker,pokemon)
    if !(pokemon.species!=383 || pokemon.form<1) && !CUSTOMANIMATIONS
      return GroudonAnimation(attacker,pokemon)
    elsif !(pokemon.species!=382 || pokemon.form<1) && !CUSTOMANIMATIONS
      return KyogreAnimation(userindex,targetindex)
    end
  end

  def GroudonAnimation(attacker,pokemon)
	blablabla
  end
  
  def KyogreAnimation(attacker,pokemon)
	mimimi
  end
Always when 'pbPrimalAnimation(attacker,pokemon)' is called, will be called one of them...

EDIT: Also, if you want the symbols:

https://www.deviantart.com/coolshallow/art/Primal-Kyogre-Alpha-Symbol-452752492

https://www.deviantart.com/coolshallow/art/Primal-Groudon-Omega-Symbol-452752056


thanks! managed to figure it out; had to turn on the opacity stuff for it as its disabled(?) now shows image as shown in the original message; script updated; if you can make something for it could be cool to stand out more but not 100% needed (even figuring out how to make the circle black/dark would help) but again would stand out with a different animation
 
So for anyone that wants my primal reversion animation (nothing major)

[PokeCommunity.com] Custom Animation Move (Elite Battle System)


in the animation script at "def pbChangePokemon(attacker,pokemon)" under "for in battle sprite changes"
add
Code:
return pbPrimalAnimation(attacker,pokemon) if pokemon.isPrimal? && !CUSTOMANIMATIONS
under "return pbMegaAnimation"

then under "Def pbMegaAnimation"
add
Code:
   def pbPrimalAnimation(attacker,pokemon)
    for i in 0...4
      @sprites["battlebox#{i}"].visible=false if @sprites["battlebox#{i}"]
    end
    clearMessageWindow
    
    fp = {}    
    pkmn = @sprites["pokemon#{attacker.index}"]
    
    vector = @battle.doublebattle ? VECTOR2 : VECTOR1
    back = [email protected]?(attacker.index)
    @vector.set(getRealVector(attacker.index,back))
    wait(16,true)
    factor = pkmn.zoom_x
    
    fp["bg"] = ScrollingSprite.new(pkmn.viewport)
    fp["bg"].setBitmap("Graphics/Animations/ebPrimalBg")
    fp["bg"].speed = 32
    fp["bg"].opacity = 0
    
    # particle initialization
    for i in 0...16
      fp["c#{i}"] = Sprite.new(pkmn.viewport)
      fp["c#{i}"].z = pkmn.z + 10
      fp["c#{i}"].bitmap = pbBitmap(sprintf("Graphics/Animations/ebPrimal%03d",rand(4)+1))
      fp["c#{i}"].ox = fp["c#{i}"].bitmap.width/2
      fp["c#{i}"].oy = fp["c#{i}"].bitmap.height/2
      fp["c#{i}"].opacity = 0
    end
    
    # ray initialization
    rangle = []
    cx, cy = getCenter(pkmn,true)
    for i in 0...8; rangle.push((360/8)*i +  15); end
    for j in 0...8
      fp["r#{j}"] = Sprite.new(viewport)
      fp["r#{j}"].bitmap = pbBitmap("Graphics/Animations/ebPrimal005")
      fp["r#{j}"].ox = 0
      fp["r#{j}"].oy = fp["r#{j}"].bitmap.height/2
      fp["r#{j}"].opacity = 0
      fp["r#{j}"].zoom_x = 0
      fp["r#{j}"].zoom_y = 0
      fp["r#{j}"].x = cx
      fp["r#{j}"].y = cy
      a = rand(rangle.length)
      fp["r#{j}"].angle = rangle[a]
      fp["r#{j}"].z = pkmn.z + 2
      rangle.delete_at(a)
    end
    
    # ripple initialization
    for j in 0...3
      fp["v#{j}"] = Sprite.new(viewport)
      fp["v#{j}"].bitmap = pbBitmap("Graphics/Animations/ebPrimal006")
      fp["v#{j}"].ox = fp["v#{j}"].bitmap.width/2
      fp["v#{j}"].oy = fp["v#{j}"].bitmap.height/2
      fp["v#{j}"].x = cx
      fp["v#{j}"].y = cy
      fp["v#{j}"].opacity = 0
      fp["v#{j}"].zoom_x = 2
      fp["v#{j}"].zoom_y = 2
    end
    
    fp["primal"] = Sprite.new(pkmn.viewport)
    if isConst?(pokemon.species,PBSpecies,:GROUDON)
    fp["primal"].bitmap = pbBitmap("Graphics/Animations/ebPrimalGroudon")
    elsif isConst?(pokemon.species,PBSpecies,:KYOGRE)
    fp["primal"].bitmap = pbBitmap("Graphics/Animations/ebPrimalKyogre")
    else
    fp["primal"].bitmap = pbBitmap("Graphics/Animations/ebPrimal007")
    end
    fp["primal"].ox = fp["primal"].bitmap.width/2
    fp["primal"].oy = fp["primal"].bitmap.height/2
    fp["primal"].x = cx
    fp["primal"].y = cy
    fp["primal"].opacity = 0
    fp["primal"].z = pkmn.z + 20
    #fp["primal"].tone = Tone.new(1,0,0)
    
    fp["circle"] = Sprite.new(pkmn.viewport)
    fp["circle"].bitmap = Bitmap.new(pkmn.bitmap.width*1.25,pkmn.bitmap.height*1.25)
    fp["circle"].bitmap.drawCircle
    fp["circle"].ox = fp["circle"].bitmap.width/2
    fp["circle"].oy = fp["circle"].bitmap.height/2
    fp["circle"].tone = Tone.new(1,0,0)
    fp["circle"].x = cx
    fp["circle"].y = cy
    fp["circle"].z = pkmn.z + 10
    fp["circle"].zoom_x = 0
    fp["circle"].zoom_y = 0
      
    t = 0
    z = 0.02
    pbSEPlay("#{SE_EXTRA_PATH}Harden",120)
    for i in 0...128
      fp["bg"].opacity += 8
      fp["bg"].update
      #t += 8 if t < 255
      pkmn.tone = Tone.new(1,0,0)
      # particle animation
      for j in 0...16
        next if j > (i/8)
        if fp["c#{j}"].opacity == 0 && i < 72
          fp["c#{j}"].opacity = 255
          x, y = randCircleCord(96*factor)
          fp["c#{j}"].x = cx - 96*factor + x
          fp["c#{j}"].y = cy - 96*factor + y
        end
        x2 = cx
        y2 = cy
        x0 = fp["c#{j}"].x
        y0 = fp["c#{j}"].y
        fp["c#{j}"].x += (x2 - x0)*0.1
        fp["c#{j}"].y += (y2 - y0)*0.1
        fp["c#{j}"].opacity -= 16
      end
      
      # ray animation
      for j in 0...8
        if fp["r#{j}"].opacity == 0 && j <= (i%128)/16 && i < 96
          fp["r#{j}"].opacity = 255
          fp["r#{j}"].zoom_x = 0
          fp["r#{j}"].zoom_y = 0
        end
        fp["r#{j}"].opacity -= 4
        fp["r#{j}"].zoom_x += 0.05
        fp["r#{j}"].zoom_y += 0.05
      end
      
      # circle animation
      if i < 48
      elsif i < 64
        fp["circle"].zoom_x += factor/16.0
        fp["circle"].zoom_y += factor/16.0
      elsif i >= 124
        fp["circle"].zoom_x += factor
        fp["circle"].zoom_y += factor
      else
        z *= -1 if (i-96)%4 == 0
        fp["circle"].zoom_x += z
        fp["circle"].zoom_y += z
      end
      
      pbSEPlay("#{SE_EXTRA_PATH}Twine",80) if i == 40
      pbSEPlay("#{SE_EXTRA_PATH}Refresh") if i == 56
      
      if i >= 24
      # mega symbol animation
        if i >= 64
          fp["primal"].zoom_x += 0.04
          fp["primal"].zoom_y += 0.04
          fp["primal"].opacity -= 8
        elsif fp["primal"].zoom_y < factor
          fp["primal"].zoom_x += (factor-1)/16.0
          fp["primal"].zoom_y += (factor-1)/16.0
          fp["primal"].opacity += 16
        else
          fp["primal"].tone.red -= 16 if fp["primal"].tone.red > 0
          fp["primal"].tone.green -= 16 if fp["primal"].tone.green > 0
          fp["primal"].tone.blue -= 16 if fp["primal"].tone.blue > 0
        end   
        # ripple animation
        for j in 0...3
          next if j > (i-32)/8
          next if fp["v#{j}"].zoom_x <= 0
          fp["v#{j}"].opacity += 16
          fp["v#{j}"].zoom_x -= 0.05
          fp["v#{j}"].zoom_y -= 0.05
        end
      end
      wait(1,true)
    end
    pkmn.viewport.color = Color.new(255,255,255)
    pkmn.tone = Tone.new(0,0,0)
    pbDisposeSpriteHash(fp)
    fp["impact"] = Sprite.new(pkmn.viewport)
    fp["impact"].bitmap = pbBitmap("Graphics/Pictures/impact")
    fp["impact"].ox = fp["impact"].bitmap.width/2
    fp["impact"].oy = fp["impact"].bitmap.height/2
    fp["impact"].x = pkmn.viewport.rect.width/2
    fp["impact"].y = pkmn.viewport.rect.height/2
    fp["impact"].z = 999
    fp["impact"].opacity = 0
    pkmn.setPokemonBitmap(pokemon,back)
    pbPlayCry(pokemon)
    k = -2
    for i in 0...24
      fp["impact"].opacity += 64
      fp["impact"].angle += 180 if i%4 == 0
      fp["impact"].mirror = !fp["impact"].mirror if i%4 == 2
      k *= -1 if i%4 == 0
      pkmn.viewport.color.alpha -= 16
      moveEntireScene(0,k,true,true)
      wait(1,false)
    end
    for i in 0...16
      fp["impact"].opacity -= 64
      fp["impact"].angle += 180 if i%4 == 0
      fp["impact"].mirror = !fp["impact"].mirror if i%4 == 2
      wait(1)
    end
    @vector.set(vector)
    for i in 0...4
      @sprites["battlebox#{i}"].visible = true if @sprites["battlebox#{i}"]
    end
    fp["impact"].dispose
  end

the files for it are in the .zip below; put them in "Graphics/Animations" the last one is empty to show no symbol currently.

Do you still have the .zip? I don't see it in your post anywhere.
 
kinda stuck with locating where the weather animations are/where their handled. any idea? besides the first bit in EliteBattle_Animations;

Code:
case weather
    when PBWeather::RAINDANCE
      return 1
    when PBWeather::THUNDER
      return 1
    when PBWeather::HAIL
      return 3
    when PBWeather::SANDSTORM
      return 4
    when PBWeather::SUNNYDAY
      return 7

beyond this i cant really find anything about the animations creation
 
kinda stuck with locating where the weather animations are/where their handled. any idea? besides the first bit in EliteBattle_Animations;

Code:
case weather
    when PBWeather::RAINDANCE
      return 1
    when PBWeather::THUNDER
      return 1
    when PBWeather::HAIL
      return 3
    when PBWeather::SANDSTORM
      return 4
    when PBWeather::SUNNYDAY
      return 7

beyond this i cant really find anything about the animations creation

It's actually Essentials that handles the EBS animations for weather. The only tweaks done to EBS is when to invoke it, and how to position the viewport. This will change in a later iteration, but for now the weather animation is actually being borrowed from
Code:
class Weather
 
It's actually Essentials that handles the EBS animations for weather. The only tweaks done to EBS is when to invoke it, and how to position the viewport. This will change in a later iteration, but for now the weather animation is actually being borrowed from
Code:
class Weather

So If I wanted to change how busy the snow animation is in EBS where would I look in the script to change that?
 
I'm not sure if anyone will do this, but can anyone make a script for surf? That would be dope.
 
I mean, no one is posting animation scripts, so yeah it's kind of dead. If you want to make move animations, I suggest using the default Essentials Move Editor. To see default Essentials animations, go to Settings, and set "REPLACEMISSINGANIM" to true. If you need more help with the Essentials Move Animator, watch Thundaga's video, he knows it all.
 
I mean, no one is posting animation scripts, so yeah it's kind of dead. If you want to make move animations, I suggest using the default Essentials Move Editor. To see default Essentials animations, go to Settings, and set "REPLACEMISSINGANIM" to true. If you need more help with the Essentials Move Animator, watch Thundaga's video, he knows it all.

Also because a complete reboot of EBS is being worked on (called EBDX), which may make the current system obsolete imo. The new system comes probably when Essentials v18 does.
 
Last edited:
Also because a complete reboot of EBS is being worked on (called EBDX), which may make the current system obsolete imo. The new system comes with Essentials v18 which has Gen 7 coded, so you can bet that EBDX will have many, if not all, of the Gen 7 Moves animations bundled with it.

Wait a minute, is essentials v18 already out?
 
Also because a complete reboot of EBS is being worked on (called EBDX), which may make the current system obsolete imo. The new system comes with Essentials v18 which has Gen 7 coded, so you can bet that EBDX will have many, if not all, of the Gen 7 Moves animations bundled with it.

[PokeCommunity.com] Custom Animation Move (Elite Battle System)


Wait a minute, is essentials v18 already out?

No.
 

Wait... No... My whole life has been a lie.

What exactly is EBDX then?

Wait a minute, is essentials v18 already out?

Oh I see...
Wait lemme fix my post.

Also because a complete reboot of EBS is being worked on (called EBDX), which may make the current system obsolete imo. The new system comes probably when with Essentials v18 does which has Gen 7 coded, so you can bet that EBDX will have many, if not all, of the Gen 7 Moves animations bundled with it.
 
Last edited:
Back
Top