Advertiser Content

WolfPP

Discord: Wolf#1235

Male
Brazil
Seen 2 Hours Ago
Posted 11 Hours Ago
910 posts
1.3 Years
Guys!

Navigating on Discord, a person named "IkuTron (Adim)" asked to help add Z-Move to EBS using Amethys Rain's "Z-Move Add On" system (link here https://www.pokecommunity.com/showthread.php?t=393813). Even though I know from Luka's words that the system is incompatible, I am helping Adim, and incredible as it may seem, we are succeeding!
We managed to add the button in the battle without any problem, however when we press the button so that the pokemon uses the Z-Move it gives only the normal attack and not the z-move itself.
We have analyzed that the action comes from "pbUseZMove" but we do not know how to add this 'def' in the EBS script.

Could someone help us? Obviously when we finish, we will share with everyone in the forum to add and also by obvious will be the name in the credits of the people who helped us to make it happen.

I appreciate everyone's understanding!

Take a lock:
https://imgur.com/a/9aELbaS

Marin

Not Bored

Age 17
Male
Seen November 3rd, 2019
Posted July 11th, 2019
827 posts
3 Years
http://prntscr.com/l9pdtt
Pokemon Green Remix already has it installed if you want to look at it
Nice Zeak! Can you help me? on DS or pm here yet...
Ty ty!
Since this thread was made publicly, I'd rather it be discussed here for others to make use of it as well.

WolfPP

Discord: Wolf#1235

Male
Brazil
Seen 2 Hours Ago
Posted 11 Hours Ago
910 posts
1.3 Years
Since this thread was made publicly, I'd rather it be discussed here for others to make use of it as well.
Of course! Zeak haves script to z-power base (like buginiumz to use z-move 'Savage Spin-Out') and i will add after (like pack 2.0 lol)

We need help with this little thing:

So, the "issue" are here:

Spoiler:

      if Input.trigger?(Input::C) || (defined?($mouse) && cw.mouseOver? && $mouse.leftClick?)  # Confirm choice
        if cw.index < 4
          @ret=cw.index
          @battle.pbRegisterMegaEvolution(index) if mega
          @battle.pbRegisterZMove(index) if zmove
          pbSEPlay("SE_Select2")
          @lastmove[index]=@ret
          @idleTimer=-1
          @inCMx=false
          break
        else
          @lastmove[index]=cw.index
          pbPlayCancelSE()
          @ret=-1
          break
        end
      elsif Input.trigger?(Input::A) || (defined?($mouse) && cw.overZMove? && cw.overMega? && $mouse.leftClick?) # Use Mega Evolution
        if @battle.pbCanMegaEvolve?(index)
          if mega
            mega = false
          else
            mega = true
          end
          cw.megaButtonTrigger
          pbSEPlay("SE_Select3")
        end
        if @battle.pbCanZMove?(index) # Use Z-Move
          if zmove
            zmove = false
          else
            zmove = true
          end
          cw.zButtonTrigger
          pbSEPlay("SE_Select3")
        end


When i press z-move and use spirit shuckle, will use Z-move Sinister Arrow Raid.Ok! (look to attachments)

But, when i press z-move and use Quick Attack (example), will use Z-move Sinister Arrow Raid too, cuz i just copy and paste like Mega Evo.

Now, lets compare to 'original' script Z-Move add On:
Spoiler:

      if Input.trigger?(Input::C)   # Confirm choice
        ret=cw.index
#
        if cw.zButton==2
          if battler.pbCompatibleZMoveFromIndex?(ret)
            pbPlayDecisionSE()
            @lastmove[index]=ret
            return ret
          else
            @battle.pbDisplay(_INTL("{1} is not compatible with {2}!",PBMoves.getName(battler.moves[ret]),PBItems.getName(battler.item)))  
            @lastmove[index]=cw.index       
            return -1
          end
        else
          pbPlayDecisionSE()
          @lastmove[index]=ret
          return ret
        end 
      elsif Input.trigger?(Input::A)   # Use Mega Evolution
        #if @battle.pbCanMegaEvolve?(index)
        if @battle.pbCanMegaEvolve?(index) && !pbIsZCrystal?(battler.item)
          @battle.pbRegisterMegaEvolution(index)
          cw.megaButton=2
          pbPlayDecisionSE
        end
#
        if @battle.pbCanZMove?(index)  # Use Z Move
          @battle.pbRegisterZMove(index)
          cw.zButton=2
          pbPlayDecisionSE()
        end  
#


Look here:
        if cw.zButton==2
          if battler.pbCompatibleZMoveFromIndex?(ret)
            pbPlayDecisionSE()
            @lastmove[index]=ret
            return ret
          else
            @battle.pbDisplay(_INTL("{1} is not compatible with {2}!",PBMoves.getName(battler.moves[ret]),PBItems.getName(battler.item))) 
            @lastmove[index]=cw.index       
            return -1
          end
We need to add 'if battler.pbCompatibleZMoveFromIndex?(ret)' to haver 'else @battle.pbDisplay(_INTL("{1} is not compatible with{2}!",PBMoves.getName(battler.moves[ret]),PBItems.getName(battler.item)))' to EBS buttons.

Now... How can i add? lol

EDIT:

All buttom and move its done. Below, how will be the buttons
Spoiler:

      # Confirm choice to use Mega Evolution
      if Input.trigger?(Input::C) || (defined?($mouse) && cw.mouseOver? && $mouse.leftClick?)
        if cw.index < 4
          @ret=cw.index
          @battle.pbRegisterMegaEvolution(index) if mega
          pbSEPlay("SE_Select2")
          @lastmove[index]=@ret
          @idleTimer=-1
          @inCMx=false
          cw.zButtonTrigger if zmove==true
          break
        else
          @lastmove[index]=cw.index
          pbPlayCancelSE()
          @ret=-1
          cw.zButtonTrigger if zmove==true
          break
        end
      # Confirm choice to use Z-Move (Move)
      elsif Input.trigger?(Input::M) || (defined?($mouse) && cw.mouseOver? && $mouse.leftClick?)
        if cw.index < 4
          @ret=cw.index
          @battler = battler
          @battle.pbRegisterZMove(index) if zmove 
          if @battler.pbCompatibleZMoveFromIndex?(@ret)
            pbSEPlay("SE_Select2")
            @lastmove[index]=@ret
            @idleTimer=-1
            @inCMx=false
            cw.zButtonTrigger if zmove==true
            break
          else
            pbSEPlay("GUI sel buzzer",100)
            Kernel.pbMessage(_INTL("{1} is not compatible with {2}!",PBMoves.getName(battler.moves[@ret]),PBItems.getName(battler.item)))
            @lastmove[index]=cw.index
            pbPlayCancelSE()
            @ret=-1
            cw.zButtonTrigger if zmove==true
            break
          end
        end
      elsif Input.trigger?(Input::A) || (defined?($mouse) && cw.overZMove? && $mouse.leftClick?)
        if @battle.pbCanZMove?(index) # Trigger Z-Move
          if zmove
            zmove = false
          else
            zmove = true
          end
          cw.zButtonTrigger
          pbSEPlay("SE_Select3")
        end
      elsif Input.trigger?(Input::E) || (defined?($mouse) && cw.overMega? && $mouse.leftClick?) # Use Mega Evolution
        if @battle.pbCanMegaEvolve?(index) # Trigger Mega Evolution
          if mega
            mega = false
          else
            mega = true
          end
          cw.megaButtonTrigger
          pbSEPlay("SE_Select3")
        end
      elsif Input.trigger?(Input::B) || (defined?($mouse) && (cw.goBack? || $mouse.rightClick?))  # Cancel fight menu
        @lastmove[index]=cw.index
        pbPlayCancelSE()
        @ret=-1
        break
      end
    end


'C' confirm choice to use normal move;
'M' confirm choice with Z-move ON, to use Z-move;
'E' trigger Mega Evolution;
'Z' trigger Z-Move.

Now, i need to create a Common Animation to "ZPower". How can i do that? Or who will help me? lol

WolfPP

Discord: Wolf#1235

Male
Brazil
Seen 2 Hours Ago
Posted 11 Hours Ago
910 posts
1.3 Years
ATT TIME!

Now Marshadow and Necrozma will change the form (if Necrozma is form>0; when finish the z-move, Marshadow back to form=0, like games and anime).

I need help to put a pbCommonAnimation to ultra burst

i try to copy and paste everywhere exist "MegaEvolution" and "MegaEvolution2" in animation script EBS and nothing :/

EDIT:

Anyone knows when can i put to ONLY MARSHADOW change your form to 1 for everytime hes use a move? And when hes finish back to normal?

pbAfterhit? pbBeforeHit? Where? lol

Ty ty!

WolfPP

Discord: Wolf#1235

Male
Brazil
Seen 2 Hours Ago
Posted 11 Hours Ago
910 posts
1.3 Years
When you use Z-move with Necrozma Dusk Mane or Dawn Wings, it will Ultra Burst to Ultra Necrozma and use your Z-move: Light Thats Burn the Sky:


When use your Z-move, Solgaleo, Lunala and Marshadow change your forms. And when finish, turn to normal form:




Guys, i need help to add some sound effects and a "StatUp" yellow. Anyone to help me?

Zeak6464

Zeak #3205 - Discord

Age 26
Male
USA
Seen 10 Hours Ago
Posted 2 Weeks Ago
747 posts
6.7 Years
When you use Z-move with Necrozma Dusk Mane or Dawn Wings, it will Ultra Burst to Ultra Necrozma and use your Z-move: Light Thats Burn the Sky:


When use your Z-move, Solgaleo, Lunala and Marshadow change your forms. And when finish, turn to normal form:



Guys, i need help to add some sound effects and a "StatUp" yellow. Anyone to help me?
you mean this kinda animation ?
https://pokemonfangames.com/resource/stats-change-animation/

WolfPP

Discord: Wolf#1235

Male
Brazil
Seen 2 Hours Ago
Posted 11 Hours Ago
910 posts
1.3 Years
you mean this kinda animation ?
https://pokemonfangames.com/resource/stats-change-animation/
Exactly. But more yellow, like original scene of Z-move

EDIT: Its Done!


I would like to add a few more things, such as the beginning of the mega evolution (center the screen for the pokemon that will make the move; it will have particular going towards it and an aura around).
How to do this in this script below?

I put like StatUp but edited to ZPower. (pbCommonAnimation("ZPower"))

Spoiler:

  #=============================================================================
  #  Common animations player
  #=============================================================================
  alias pbCommonAnimation_ebs pbCommonAnimation unless self.method_defined?(:pbCommonAnimation_ebs)
  def pbCommonAnimation(animname,user,target,hitnum=0)
    return false if ["Rain","Hail","Sandstorm","Sunny","ShadowSky","HealthDown"].include?(animname)
    return false if ["MegaEvolution","MegaEvolution2","Shadow"].include?(animname) && !CUSTOMANIMATIONS
    return false if ["UltraBurst","UltraBurst2"].include?(animname) && !CUSTOMANIMATIONS#
    anm = "pbCommonAnimation"+animname
    target = user if target.nil?
    # return pbCommonAnimationStatUp(user.index,target.index,hitnum)
    if eval("defined?(#{anm})")
      return eval("#{anm}(#{user.index},#{target.index},#{hitnum})") if !CUSTOMANIMATIONS
    end
    return pbCommonAnimation_ebs(animname,user,target,hitnum)
  end
 
  # Z-Power
  def pbCommonAnimationZPower(userindex,targetindex,hitnum=0)
    return if targetindex.nil?
    wait(16,true) if self.afterAnim
    poke = @sprites["pokemon#{targetindex}"]
    player = (targetindex%2==0)
    pt = {}
    rndx = []
    rndy = []
    tone = []
    timer = []
    speed = []
    endy = poke.y - poke.bitmap.height*(player ? 1.5 : 1)
    for i in 0...64
      s = rand(2)
      y = rand(64)+1
      c = [Color.new(238,216,22),Color.new(212,232,43),Color.new(230,242,36)][rand(3)]
      pt["#{i}"] = Sprite.new(poke.viewport)
      pt["#{i}"].bitmap = Bitmap.new(14,14)
      pt["#{i}"].bitmap.drawCircle(c)
      pt["#{i}"].ox = pt["#{i}"].bitmap.width/2
      pt["#{i}"].oy = pt["#{i}"].bitmap.height/2
      width = (96/poke.bitmap.width*0.5).to_i
      pt["#{i}"].x = poke.x + rand((64 + width)*poke.zoom_x - 16)*(s==0 ? 1 : -1)
      #pt["#{i}"].x = poke.x + (rand(poke.bitmap.width*poke.zoom_x*0.4)-8)*(s==0 ? 1 : -1)
      pt["#{i}"].y = poke.y
      pt["#{i}"].z = poke.z + (rand(2)==0 ? 1 : -1)
      r = rand(4)
      pt["#{i}"].zoom_x = poke.zoom_x*[1,0.9,0.95,0.85][r]*0.84
      pt["#{i}"].zoom_y = poke.zoom_y*[1,0.9,0.95,0.85][r]*0.84
      pt["#{i}"].opacity = 0
      pt["#{i}"].tone = Tone.new(128,128,128)
      tone.push(128)
      rndx.push(pt["#{i}"].x + rand(32)*(s==0 ? 1 : -1))
      rndy.push(endy - y*poke.zoom_y)
      timer.push(0)
      speed.push((rand(50)+1)*0.002)
    end
    pbSEPlay("Z-Move_Power_Up")
    for i in 0...64
      for j in 0...64
        next if j>(i*2)
        timer[j] += 1
        pt["#{j}"].x += (rndx[j] - pt["#{j}"].x)*speed[j]
        pt["#{j}"].y -= (pt["#{j}"].y - rndy[j])*speed[j]
        tone[j] -= 8 if tone[j] > 0 
        pt["#{j}"].tone = Tone.new(tone[j],tone[j],tone[j])
        pt["#{j}"].angle += 4
        if timer[j] > 8
          pt["#{j}"].opacity -= 8
          pt["#{j}"].zoom_x -= 0.02*poke.zoom_x if pt["#{j}"].zoom_x > 0
          pt["#{j}"].zoom_y -= 0.02*poke.zoom_y if pt["#{j}"].zoom_y > 0
        else
          pt["#{j}"].opacity += 25 if pt["#{j}"].opacity < 200
          pt["#{j}"].zoom_x += 0.025*poke.zoom_x
          pt["#{j}"].zoom_y += 0.025*poke.zoom_y
        end
      end
      wait(1,true)
    end
    pbDisposeSpriteHash(pt)
  end


Below, the mega evolution script. I want add this (whitout when pokemon stay all white lol and whitout background):

Spoiler:

  def pbMegaAnimation(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 = !@battle.pbIsOpposing?(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/ebMegaBg")
    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/ebMega%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/ebMega005")
      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/ebMega006")
      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["mega"] = Sprite.new(pkmn.viewport)
    fp["mega"].bitmap = pbBitmap("Graphics/Animations/ebMega007")
    fp["mega"].ox = fp["mega"].bitmap.width/2
    fp["mega"].oy = fp["mega"].bitmap.height/2
    fp["mega"].x = cx
    fp["mega"].y = cy
    fp["mega"].opacity = 0
    fp["mega"].z = pkmn.z + 20
    fp["mega"].tone = Tone.new(255,255,255)
    
    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"].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(t,t,t)
      # 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["mega"].zoom_x += 0.04
          fp["mega"].zoom_y += 0.04
          #fp["mega"].opacity -= 8
        elsif fp["mega"].zoom_y < factor
          fp["mega"].zoom_x += (factor-1)/16.0
          fp["mega"].zoom_y += (factor-1)/16.0
          #fp["mega"].opacity += 16
        else
          fp["mega"].tone.red -= 16 if fp["mega"].tone.red > 0
          fp["mega"].tone.green -= 16 if fp["mega"].tone.green > 0
          fp["mega"].tone.blue -= 16 if fp["mega"].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

Zeak6464

Zeak #3205 - Discord

Age 26
Male
USA
Seen 10 Hours Ago
Posted 2 Weeks Ago
747 posts
6.7 Years


I need to help with these two details.
1: I would like to center the screen for the pokemon that will do z-move;
2: I would like the Z-move symbol to overlap the pokemon image.

Can someone help me?
1: Look how Mega Animation zooms in on the pokemon doing it.
2: Can't tell you due to I don't see the animation script you are using.

WolfPP

Discord: Wolf#1235

Male
Brazil
Seen 2 Hours Ago
Posted 11 Hours Ago
910 posts
1.3 Years
1: Look how Mega Animation zooms in on the pokemon doing it.
2: Can't tell you due to I don't see the animation script you are using.
1: i tried but didnt works :/ idk how to add this part in the script animation;

2:
Spoiler:

  #  Common animations player
  #=============================================================================
  alias pbCommonAnimation_ebs pbCommonAnimation unless self.method_defined?(:pbCommonAnimation_ebs)
  def pbCommonAnimation(animname,user,target,hitnum=0)
    return false if ["Rain","Hail","Sandstorm","Sunny","ShadowSky","HealthDown"].include?(animname)
    return false if ["MegaEvolution","MegaEvolution2","Shadow"].include?(animname) && !CUSTOMANIMATIONS
    return false if ["UltraBurst","UltraBurst2"].include?(animname) && !CUSTOMANIMATIONS#
    anm = "pbCommonAnimation"+animname
    target = user if target.nil?
    # return pbCommonAnimationStatUp(user.index,target.index,hitnum)
    if eval("defined?(#{anm})")
      return eval("#{anm}(#{user.index},#{target.index},#{hitnum})") if !CUSTOMANIMATIONS #original
    end
    return pbCommonAnimation_ebs(animname,user,target,hitnum)
  end
 
  # Z-Power
  def pbCommonAnimationZPower(userindex,targetindex,hitnum=0)
    return if targetindex.nil?
    wait(16,true) if self.afterAnim
    poke = @sprites["pokemon#{targetindex}"]
    player = (targetindex%2==0)
    pt = {}
    rndx = []
    rndy = []
    tone = []
    timer = []
    speed = []
    fp = {}    

    vector = @battle.doublebattle ? VECTOR2 : VECTOR1
    back = !@battle.pbIsOpposing?(targetindex)
    factor = poke.zoom_x
    endy = poke.y - poke.bitmap.height*(player ? 1.5 : 1)

    # particle initialization
    for i in 0...16
      fp["c#{i}"] = Sprite.new(poke.viewport)
      fp["c#{i}"].z = poke.z + 10
      fp["c#{i}"].bitmap = pbBitmap(sprintf("Graphics/Animations/ebMega%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(poke,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/ebUltra005")
      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 = poke.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/ebUltra006")
      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
    # Z-Move Symbol
    cx, cy = getCenter(poke,true)
    for j in 0...3
      fp["v#{j}"] = Sprite.new(viewport)
      fp["v#{j}"].bitmap = pbBitmap("Graphics/Animations/ebZMove001")
      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
    # Yellow circle
    for i in 0...64
      s = rand(2)
      y = rand(64)+1
      c = [Color.new(238,216,22),Color.new(212,232,43),Color.new(230,242,36)][rand(3)]
      fp["#{i}"] = Sprite.new(poke.viewport)
      fp["#{i}"].bitmap = Bitmap.new(14,14)
      fp["#{i}"].bitmap.drawCircle(c)
      fp["#{i}"].ox = fp["#{i}"].bitmap.width/2
      fp["#{i}"].oy = fp["#{i}"].bitmap.height/2
      width = (96/poke.bitmap.width*0.5).to_i
      fp["#{i}"].x = poke.x + rand((64 + width)*poke.zoom_x - 16)*(s==0 ? 1 : -1)
      fp["#{i}"].y = poke.y
      fp["#{i}"].z = poke.z + (rand(2)==0 ? 1 : -1)
      r = rand(4)
      fp["#{i}"].zoom_x = poke.zoom_x*[1,0.9,0.95,0.85][r]*0.84
      fp["#{i}"].zoom_y = poke.zoom_y*[1,0.9,0.95,0.85][r]*0.84
      fp["#{i}"].opacity = 0
      fp["#{i}"].tone = Tone.new(128,128,128)
      tone.push(128)
      rndx.push(fp["#{i}"].x + rand(32)*(s==0 ? 1 : -1))
      rndy.push(endy - y*poke.zoom_y)
      timer.push(0)
      speed.push((rand(50)+1)*0.002)
    end

    for i in 0...64
      #### 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
      # 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
      #
      for j in 0...64
        next if j>(i*2)
        timer[j] += 1
        fp["#{j}"].x += (rndx[j] - fp["#{j}"].x)*speed[j]
        fp["#{j}"].y -= (fp["#{j}"].y - rndy[j])*speed[j]
        tone[j] -= 8 if tone[j] > 0 
        fp["#{j}"].tone = Tone.new(tone[j],tone[j],tone[j])
        fp["#{j}"].angle += 4
        if timer[j] > 8
          fp["#{j}"].opacity -= 8
          fp["#{j}"].zoom_x -= 0.02*poke.zoom_x if fp["#{j}"].zoom_x > 0
          fp["#{j}"].zoom_y -= 0.02*poke.zoom_y if fp["#{j}"].zoom_y > 0
        else
          fp["#{j}"].opacity += 25 if fp["#{j}"].opacity < 200
          fp["#{j}"].zoom_x += 0.025*poke.zoom_x
          fp["#{j}"].zoom_y += 0.025*poke.zoom_y
        end
      end
      wait(1,true)
    end
    pbDisposeSpriteHash(fp)
  end

  # Z Scream
  def pbCommonAnimationZScream(userindex,targetindex,hitnum=0)
    return if targetindex.nil?
    wait(16,true) if self.afterAnim
    poke = @sprites["pokemon#{targetindex}"]
    player = (targetindex%2==0)
    pt = {}
    rndx = []
    rndy = []
    tone = []
    timer = []
    speed = []
    fp = {}    

    vector = @battle.doublebattle ? VECTOR2 : VECTOR1
    back = !@battle.pbIsOpposing?(targetindex)
    factor = poke.zoom_x
    endy = poke.y - poke.bitmap.height*(player ? 1.5 : 1)

    fp["impact"] = Sprite.new(poke.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 = poke.viewport.rect.width/2
    fp["impact"].y = poke.viewport.rect.height/2
    fp["impact"].z = 999
    fp["impact"].opacity = 0
    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
      poke.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
  end


EDIT:
Guys, Z Symbol overlap the pokemon image (Mr.Gela from Relic Castle help us):

now, we only need to centralize the screen for the pokemon that will do z-move;


EDIT 2:
IT's Done!

Zeak6464, Mr.Gela and Coffee Guy give me a little (and important) help. Thanks guys!

Seen October 19th, 2019
Posted August 22nd, 2019
59 posts
2.2 Years
1: i tried but didnt works :/ idk how to add this part in the script animation;

2:
Spoiler:

  #  Common animations player
  #=============================================================================
  alias pbCommonAnimation_ebs pbCommonAnimation unless self.method_defined?(:pbCommonAnimation_ebs)
  def pbCommonAnimation(animname,user,target,hitnum=0)
    return false if ["Rain","Hail","Sandstorm","Sunny","ShadowSky","HealthDown"].include?(animname)
    return false if ["MegaEvolution","MegaEvolution2","Shadow"].include?(animname) && !CUSTOMANIMATIONS
    return false if ["UltraBurst","UltraBurst2"].include?(animname) && !CUSTOMANIMATIONS#
    anm = "pbCommonAnimation"+animname
    target = user if target.nil?
    # return pbCommonAnimationStatUp(user.index,target.index,hitnum)
    if eval("defined?(#{anm})")
      return eval("#{anm}(#{user.index},#{target.index},#{hitnum})") if !CUSTOMANIMATIONS #original
    end
    return pbCommonAnimation_ebs(animname,user,target,hitnum)
  end
 
  # Z-Power
  def pbCommonAnimationZPower(userindex,targetindex,hitnum=0)
    return if targetindex.nil?
    wait(16,true) if self.afterAnim
    poke = @sprites["pokemon#{targetindex}"]
    player = (targetindex%2==0)
    pt = {}
    rndx = []
    rndy = []
    tone = []
    timer = []
    speed = []
    fp = {}    

    vector = @battle.doublebattle ? VECTOR2 : VECTOR1
    back = !@battle.pbIsOpposing?(targetindex)
    factor = poke.zoom_x
    endy = poke.y - poke.bitmap.height*(player ? 1.5 : 1)

    # particle initialization
    for i in 0...16
      fp["c#{i}"] = Sprite.new(poke.viewport)
      fp["c#{i}"].z = poke.z + 10
      fp["c#{i}"].bitmap = pbBitmap(sprintf("Graphics/Animations/ebMega%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(poke,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/ebUltra005")
      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 = poke.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/ebUltra006")
      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
    # Z-Move Symbol
    cx, cy = getCenter(poke,true)
    for j in 0...3
      fp["v#{j}"] = Sprite.new(viewport)
      fp["v#{j}"].bitmap = pbBitmap("Graphics/Animations/ebZMove001")
      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
    # Yellow circle
    for i in 0...64
      s = rand(2)
      y = rand(64)+1
      c = [Color.new(238,216,22),Color.new(212,232,43),Color.new(230,242,36)][rand(3)]
      fp["#{i}"] = Sprite.new(poke.viewport)
      fp["#{i}"].bitmap = Bitmap.new(14,14)
      fp["#{i}"].bitmap.drawCircle(c)
      fp["#{i}"].ox = fp["#{i}"].bitmap.width/2
      fp["#{i}"].oy = fp["#{i}"].bitmap.height/2
      width = (96/poke.bitmap.width*0.5).to_i
      fp["#{i}"].x = poke.x + rand((64 + width)*poke.zoom_x - 16)*(s==0 ? 1 : -1)
      fp["#{i}"].y = poke.y
      fp["#{i}"].z = poke.z + (rand(2)==0 ? 1 : -1)
      r = rand(4)
      fp["#{i}"].zoom_x = poke.zoom_x*[1,0.9,0.95,0.85][r]*0.84
      fp["#{i}"].zoom_y = poke.zoom_y*[1,0.9,0.95,0.85][r]*0.84
      fp["#{i}"].opacity = 0
      fp["#{i}"].tone = Tone.new(128,128,128)
      tone.push(128)
      rndx.push(fp["#{i}"].x + rand(32)*(s==0 ? 1 : -1))
      rndy.push(endy - y*poke.zoom_y)
      timer.push(0)
      speed.push((rand(50)+1)*0.002)
    end

    for i in 0...64
      #### 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
      # 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
      #
      for j in 0...64
        next if j>(i*2)
        timer[j] += 1
        fp["#{j}"].x += (rndx[j] - fp["#{j}"].x)*speed[j]
        fp["#{j}"].y -= (fp["#{j}"].y - rndy[j])*speed[j]
        tone[j] -= 8 if tone[j] > 0 
        fp["#{j}"].tone = Tone.new(tone[j],tone[j],tone[j])
        fp["#{j}"].angle += 4
        if timer[j] > 8
          fp["#{j}"].opacity -= 8
          fp["#{j}"].zoom_x -= 0.02*poke.zoom_x if fp["#{j}"].zoom_x > 0
          fp["#{j}"].zoom_y -= 0.02*poke.zoom_y if fp["#{j}"].zoom_y > 0
        else
          fp["#{j}"].opacity += 25 if fp["#{j}"].opacity < 200
          fp["#{j}"].zoom_x += 0.025*poke.zoom_x
          fp["#{j}"].zoom_y += 0.025*poke.zoom_y
        end
      end
      wait(1,true)
    end
    pbDisposeSpriteHash(fp)
  end

  # Z Scream
  def pbCommonAnimationZScream(userindex,targetindex,hitnum=0)
    return if targetindex.nil?
    wait(16,true) if self.afterAnim
    poke = @sprites["pokemon#{targetindex}"]
    player = (targetindex%2==0)
    pt = {}
    rndx = []
    rndy = []
    tone = []
    timer = []
    speed = []
    fp = {}    

    vector = @battle.doublebattle ? VECTOR2 : VECTOR1
    back = !@battle.pbIsOpposing?(targetindex)
    factor = poke.zoom_x
    endy = poke.y - poke.bitmap.height*(player ? 1.5 : 1)

    fp["impact"] = Sprite.new(poke.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 = poke.viewport.rect.width/2
    fp["impact"].y = poke.viewport.rect.height/2
    fp["impact"].z = 999
    fp["impact"].opacity = 0
    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
      poke.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
  end


EDIT:
Guys, Z Symbol overlap the pokemon image (Mr.Gela from Relic Castle help us):

now, we only need to centralize the screen for the pokemon that will do z-move;


EDIT 2:
IT's Done!

Zeak6464, Mr.Gela and Coffee Guy give me a little (and important) help. Thanks guys!

Hey there! nice work. I am really a noob when it comes to scripting so could you help me with this? How were you able to implement Z move in ebs system? Can you give me the scripts?
Thanks.

WolfPP

Discord: Wolf#1235

Male
Brazil
Seen 2 Hours Ago
Posted 11 Hours Ago
910 posts
1.3 Years
Att to Z-move Animation (before to attack):


Hey there! nice work. I am really a noob when it comes to scripting so could you help me with this? How were you able to implement Z move in ebs system? Can you give me the scripts?
Thanks.
I will not share right now cuz im workin to finish. See if you can help us:

https://www.pokecommunity.com/showthread.php?p=9948306#post9948306
Seen October 19th, 2019
Posted August 22nd, 2019
59 posts
2.2 Years
Att to Z-move Animation (before to attack):

I checked the thread , you are looking for a spriter. I am not a spriter though I can help you in any thing else. Here is my discord tag: Pokemonspecialist#5478


I will not share right now cuz im workin to finish. See if you can help us:

https://www.pokecommunity.com/showthread.php?p=9948306#post9948306
I am not a spriter though I can help in something else. Here is my discord tag: Pokemonspecialist#5473
Seen October 31st, 2019
Posted October 1st, 2019
21 posts
1.5 Years
Then I guess the project will have been canceled. I had illusions at all, because essentials was removed by Nintendo and Luka deleted his YouTube channel and I think he has left it too. It's a shame. I don't think they're going to release version v18.0, even so I have some hope.
Look here.. https://reliccastle.com/threads/39/page-6#post-14826

WolfPP

Discord: Wolf#1235

Male
Brazil
Seen 2 Hours Ago
Posted 11 Hours Ago
910 posts
1.3 Years
Then I guess the project will have been canceled. I had illusions at all, because essentials was removed by Nintendo and Luka deleted his YouTube channel and I think he has left it too. It's a shame. I don't think they're going to release version v18.0, even so I have some hope.
You need to know more before you can make this kind of comment, IMO. I stopped doing just waiting for the release of the new versions, and before saying that I researched and witnessed both Luka and Maruno debates about the future of EBS and Essentials.

Look here.. https://reliccastle.com/threads/39/page-6#post-14826
You don't need to check RC forum for that. Maruno posted here too:
https://www.pokecommunity.com/showthread.php?t=423494

WolfPP

Discord: Wolf#1235

Male
Brazil
Seen 2 Hours Ago
Posted 11 Hours Ago
910 posts
1.3 Years
So to clarify myself, the project has not been canceled and is going ahead, right?

But what I don't understand is because it puts in the title add z moves in elite battle system and then goes and releases Maruno: "Conversely, I'm ignoring Z-Moves. They're stupid anyway, and I can spend my time on better things instead. " So you won't add z moves in essentials v18?
And I depend on Maruno to script Z-Move? I don't think so. So yes, I'll wait to adapt the script and then go back to the animation project as already said.
Advertiser Content