- 288
- Posts
- 6
- Years
- Seen Feb 3, 2025
I've made a mini script for a new VS sequence in battles with 2 opposing trainers. By default, essentials disables the animation when there's more than one opposing trainer, so this adds an animation that works when there are 2 opposing trainers and no partner as well as one that works with 2 opposing trainers and a partner trainer, assuming each trainer has a vsBar and vsTrainer sprite. It's pretty much the same with v17 vs v18, but I'll post 2 versions so it doesn't get confused.
Double Battle Sequence WITHOUT Partner:
Double Battle Sequence WITH Partner:
v17:
v18:
Note that I haven't included the player sprite or the names of the trainers, but I think it works out better visually that way.
Double Battle Sequence WITHOUT Partner:
Double Battle Sequence WITH Partner:
v17:
Spoiler:
Find "def pbBattleAnimationOverride(viewport,battletype=0,foe=nil)" in the PField_Visuals script section, and paste the following above the line with "return false". Make sure to delete the "end" above this line so it's not duplicated.
Code:
elsif (battletype==1 || battletype==3) && foe.length==2 # Against two trainers
trainer1id = (foe[0][0].trainertype rescue -1)
trainer2id = (foe[1][0].trainertype rescue -1)
if trainer1id>=0 && trainer2id>=0
trainer3id = ($PokemonGlobal.partner[0] rescue -1)
if trainer3id>=0
t1bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer1id)) rescue nil
t1bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer1id) if !pbResolveBitmap(t1bargraphic)
t1graphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,trainer1id)) rescue nil
t1graphic = sprintf("Graphics/Transitions/vsTrainer%d",trainer1id) if !pbResolveBitmap(t1graphic)
t2bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer2id)) rescue nil
t2bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer2id) if !pbResolveBitmap(t2bargraphic)
t2graphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,trainer2id)) rescue nil
t2graphic = sprintf("Graphics/Transitions/vsTrainer%d",trainer2id) if !pbResolveBitmap(t2graphic)
p2bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer3id)) rescue nil
p2bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer3id) if !pbResolveBitmap(p2bargraphic)
p2graphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,trainer3id)) rescue nil
p2graphic = sprintf("Graphics/Transitions/vsTrainer%d",trainer3id) if !pbResolveBitmap(p2graphic)
if pbResolveBitmap(t1bargraphic) && pbResolveBitmap(t1graphic) && pbResolveBitmap(t2bargraphic) &&
pbResolveBitmap(t2graphic) && pbResolveBitmap(p2bargraphic) && pbResolveBitmap(p2graphic)
outfit = ($Trainer) ? $Trainer.outfit : 0
# Set up
viewplayer1 = Viewport.new(0,Graphics.height/5-10,Graphics.width/2,128)
viewplayer1.z = viewport.z
viewplayer2 = Viewport.new(0,Graphics.height*3/5-10,Graphics.width/2,128)
viewplayer2.z = viewport.z
viewopp1 = Viewport.new(Graphics.width/2,Graphics.height/5-10,Graphics.width,128)
viewopp1.z = viewport.z
viewopp2 = Viewport.new(Graphics.width/2,Graphics.height*3/5-10,Graphics.width,128)
viewopp2.z = viewport.z
viewvs = Viewport.new(0,0,Graphics.width,Graphics.height)
viewvs.z = viewport.z
fade = Sprite.new(viewport)
fade.bitmap = BitmapCache.load_bitmap("Graphics/Transitions/vsFlash")
fade.tone = Tone.new(-255,-255,-255)
fade.opacity = 100
overlay = Sprite.new(viewport)
overlay.bitmap = Bitmap.new(Graphics.width,Graphics.height)
pbSetSystemFont(overlay.bitmap)
p1bargraphic = sprintf("Graphics/Transitions/vsBar%s_%d",getConstantName(PBTrainers,$Trainer.trainertype),outfit) rescue nil
p1bargraphic = sprintf("Graphics/Transitions/vsBar%d_%d",$Trainer.trainertype,outfit) if !pbResolveBitmap(p1bargraphic)
if !pbResolveBitmap(p1bargraphic)
pb1argraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,$Trainer.trainertype)) rescue nil
end
p1bargraphic = sprintf("Graphics/Transitions/vsBar%d",$Trainer.trainertype) if !pbResolveBitmap(p1bargraphic)
xoffset = (((Graphics.width/2)/10).round)*10
bar1 = Sprite.new(viewplayer1)
bar1.bitmap = BitmapCache.load_bitmap(p1bargraphic)
bar1.x = -xoffset
bar2 = Sprite.new(viewopp1)
bar2.bitmap = BitmapCache.load_bitmap(t1bargraphic)
bar2.x = xoffset
bar3 = Sprite.new(viewplayer2)
bar3.bitmap = BitmapCache.load_bitmap(p2bargraphic)
bar3.x = -xoffset
bar4 = Sprite.new(viewopp2)
bar4.bitmap = BitmapCache.load_bitmap(t2bargraphic)
bar4.x = xoffset
vs = Sprite.new(viewvs)
vs.bitmap = BitmapCache.load_bitmap("Graphics/Transitions/vs")
vs.ox = vs.bitmap.width/2
vs.oy = vs.bitmap.height/2
vs.x = Graphics.width/2
vs.y = Graphics.height/1.7
vs.visible = false
flash = Sprite.new(viewvs)
flash.bitmap = BitmapCache.load_bitmap("Graphics/Transitions/vsFlash")
flash.opacity = 0
# Animation
10.times do
bar1.x += xoffset/10
bar2.x -= xoffset/10
bar3.x += xoffset/10
bar4.x -= xoffset/10
pbWait(1)
end
pbSEPlay("Vs flash")
pbSEPlay("Vs sword")
flash.opacity = 255
bar1.dispose
bar2.dispose
bar3.dispose
bar4.dispose
bar1 = AnimatedPlane.new(viewplayer1)
bar1.bitmap = BitmapCache.load_bitmap(p1bargraphic)
bar2 = AnimatedPlane.new(viewopp1)
bar2.bitmap = BitmapCache.load_bitmap(t1bargraphic)
bar3 = AnimatedPlane.new(viewplayer2)
bar3.bitmap = BitmapCache.load_bitmap(p2bargraphic)
bar4 = AnimatedPlane.new(viewopp2)
bar4.bitmap = BitmapCache.load_bitmap(t2bargraphic)
p1graphic = sprintf("Graphics/Transitions/vsTrainer%s_%d",getConstantName(PBTrainers,$Trainer.trainertype),outfit) rescue nil
p1graphic = sprintf("Graphics/Transitions/vsTrainer%d_%d",$Trainer.trainertype,outfit) if !pbResolveBitmap(p1graphic)
if !pbResolveBitmap(p1graphic)
p1graphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,$Trainer.trainertype)) rescue nil
end
p1graphic = sprintf("Graphics/Transitions/vsTrainer%d",$Trainer.trainertype) if !pbResolveBitmap(p1graphic)
player = Sprite.new(viewplayer1)
player.bitmap = BitmapCache.load_bitmap(p1graphic)
player.x = -xoffset
partner = Sprite.new(viewplayer2)
partner.bitmap = BitmapCache.load_bitmap(p2graphic)
partner.x = -xoffset
partner.mirror = true
trainer1 = Sprite.new(viewopp1)
trainer1.bitmap = BitmapCache.load_bitmap(t1graphic)
trainer1.x = xoffset#+Graphics.width/2
trainer1.tone = Tone.new(-255,-255,-255)
trainer2 = Sprite.new(viewopp2)
trainer2.bitmap = BitmapCache.load_bitmap(t2graphic)
trainer2.x = xoffset#+Graphics.width/2
trainer2.tone = Tone.new(-255,-255,-255)
25.times do
flash.opacity -= 51 if flash.opacity>0
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
pbWait(1)
end
11.times do
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
player.x += xoffset/10
partner.x += xoffset/10
trainer1.x -= xoffset/10
trainer2.x -= xoffset/10
pbWait(1)
end
2.times do
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
player.x -= xoffset/20
partner.x -= xoffset/20
trainer1.x += xoffset/20
trainer2.x += xoffset/20
pbWait(1)
end
10.times do
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
pbWait(1)
end
val = 2
flash.opacity = 255
vs.visible = true
trainer1.tone = Tone.new(0,0,0)
trainer2.tone = Tone.new(0,0,0)
pbSEPlay("Vs sword")
70.times do
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
flash.opacity -= 25.5 if flash.opacity>0
vs.x += val
vs.y -= val
val = 2 if vs.x<=(Graphics.width/2)-2
val = -2 if vs.x>=(Graphics.width/2)+2
pbWait(1)
end
30.times do
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
vs.zoom_x += 0.2
vs.zoom_y += 0.2
pbWait(1)
end
flash.tone = Tone.new(-255,-255,-255)
10.times do
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
flash.opacity += 25.5
pbWait(1)
end
# End
player.dispose
partner.dispose
trainer1.dispose
trainer2.dispose
flash.dispose
vs.dispose
bar1.dispose
bar2.dispose
bar3.dispose
bar4.dispose
overlay.dispose
fade.dispose
viewvs.dispose
viewopp1.dispose
viewplayer1.dispose
viewopp2.dispose
viewplayer2.dispose
viewport.color = Color.new(0,0,0,255)
return true
end
else
t1bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer1id)) rescue nil
t1bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer1id) if !pbResolveBitmap(t1bargraphic)
t1graphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,trainer1id)) rescue nil
t1graphic = sprintf("Graphics/Transitions/vsTrainer%d",trainer1id) if !pbResolveBitmap(t1graphic)
t2bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer2id)) rescue nil
t2bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer2id) if !pbResolveBitmap(t2bargraphic)
t2graphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,trainer2id)) rescue nil
t2graphic = sprintf("Graphics/Transitions/vsTrainer%d",trainer2id) if !pbResolveBitmap(t2graphic)
if pbResolveBitmap(t1bargraphic) && pbResolveBitmap(t1graphic) && pbResolveBitmap(t2bargraphic) &&
pbResolveBitmap(t2graphic)
outfit = ($Trainer) ? $Trainer.outfit : 0
# Set up
viewplayer1 = Viewport.new(0,Graphics.height/5-10,Graphics.width/2,128)
viewplayer1.z = viewport.z
viewplayer2 = Viewport.new(0,Graphics.height*3/5-10,Graphics.width/2,128)
viewplayer2.z = viewport.z
#viewopp = Viewport.new(Graphics.width/2,Graphics.height/3,Graphics.width/2,128)
viewopp1 = Viewport.new(0,Graphics.height/5-10,Graphics.width,128)
viewopp1.z = viewport.z
viewopp2 = Viewport.new(0,Graphics.height*3/5-10,Graphics.width,128)
viewopp2.z = viewport.z
viewvs = Viewport.new(0,0,Graphics.width,Graphics.height)
viewvs.z = viewport.z
fade = Sprite.new(viewport)
fade.bitmap = BitmapCache.load_bitmap("Graphics/Transitions/vsFlash")
fade.tone = Tone.new(-255,-255,-255)
fade.opacity = 100
overlay = Sprite.new(viewport)
overlay.bitmap = Bitmap.new(Graphics.width,Graphics.height)
pbSetSystemFont(overlay.bitmap)
p1bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer1id)) rescue nil
p1bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer1id) if !pbResolveBitmap(p1bargraphic)
p2bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer2id)) rescue nil
p2bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer2id) if !pbResolveBitmap(p2bargraphic)
#if !pbResolveBitmap(pbargraphic)
# pbargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,$Trainer.trainertype)) rescue nil
#end
#pbargraphic = sprintf("Graphics/Transitions/vsBar%d",$Trainer.trainertype) if !pbResolveBitmap(pbargraphic)
xoffset = (((Graphics.width/2)/10).round)*10
bar1 = Sprite.new(viewplayer1)
bar1.bitmap = BitmapCache.load_bitmap(p1bargraphic)
bar1.x = -xoffset
bar2 = Sprite.new(viewopp1)
bar2.bitmap = BitmapCache.load_bitmap(t1bargraphic)
bar2.x = xoffset
bar3 = Sprite.new(viewplayer2)
bar3.bitmap = BitmapCache.load_bitmap(p2bargraphic)
bar3.x = -xoffset
bar4 = Sprite.new(viewopp2)
bar4.bitmap = BitmapCache.load_bitmap(t2bargraphic)
bar4.x = xoffset
vs = Sprite.new(viewvs)
vs.bitmap = BitmapCache.load_bitmap("Graphics/Transitions/vs")
vs.ox = vs.bitmap.width/2
vs.oy = vs.bitmap.height/2
vs.x = Graphics.width/4
vs.y = Graphics.height/2
vs.visible = false
flash = Sprite.new(viewvs)
flash.bitmap = BitmapCache.load_bitmap("Graphics/Transitions/vsFlash")
flash.opacity = 0
# Animation
10.times do
bar1.x += xoffset/10
bar2.x -= xoffset/10
bar3.x += xoffset/10
bar4.x -= xoffset/10
# pbWait(1)
end
pbSEPlay("Vs flash")
pbSEPlay("Vs sword")
flash.opacity = 255
bar1.dispose
bar2.dispose
bar3.dispose
bar4.dispose
bar1 = AnimatedPlane.new(viewplayer1)
bar1.bitmap = BitmapCache.load_bitmap(p1bargraphic)
bar2 = AnimatedPlane.new(viewopp1)
bar2.bitmap = BitmapCache.load_bitmap(t1bargraphic)
bar3 = AnimatedPlane.new(viewplayer2)
bar3.bitmap = BitmapCache.load_bitmap(p2bargraphic)
bar4 = AnimatedPlane.new(viewopp2)
bar4.bitmap = BitmapCache.load_bitmap(t2bargraphic)
#pgraphic = sprintf("Graphics/Transitions/vsTrainer%s_%d",getConstantName(PBTrainers,$Trainer.trainertype),outfit) rescue nil
#pgraphic = sprintf("Graphics/Transitions/vsTrainer%d_%d",$Trainer.trainertype,outfit) if !pbResolveBitmap(pgraphic)
#if !pbResolveBitmap(pgraphic)
# pgraphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,$Trainer.trainertype)) rescue nil
#end
#pgraphic = sprintf("Graphics/Transitions/vsTrainer%d",$Trainer.trainertype) if !pbResolveBitmap(pgraphic)
#player = Sprite.new(viewplayer)
#player.bitmap = BitmapCache.load_bitmap(pgraphic)
#player.x = -xoffset
trainer1 = Sprite.new(viewopp1)
trainer1.bitmap = BitmapCache.load_bitmap(t1graphic)
trainer1.x = xoffset+Graphics.width/2
trainer1.tone = Tone.new(-255,-255,-255)
trainer2 = Sprite.new(viewopp2)
trainer2.bitmap = BitmapCache.load_bitmap(t2graphic)
trainer2.x = xoffset+Graphics.width/2
trainer2.tone = Tone.new(-255,-255,-255)
#trainer.zoom_x *= 1.3
#trainer.zoom_y *= 1.3
25.times do
flash.opacity -= 51 if flash.opacity>0
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
pbWait(1)
end
11.times do
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
# player.x += xoffset/10
trainer1.x -= xoffset/10
trainer2.x -= xoffset/10
pbWait(1)
end
2.times do
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
# player.x -= xoffset/20
trainer1.x += xoffset/20
trainer2.x += xoffset/20
pbWait(1)
end
10.times do
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
#trainer.x -= xoffset/10
pbWait(1)
end
val = 4
flash.opacity = 255
vs.visible = true
trainer1.tone = Tone.new(0,0,0)
trainer2.tone = Tone.new(0,0,0)
=begin
trainer1name = foe[0][0].name
trainer2name = foe[1][0].name
textpos = [
# [$Trainer.name,Graphics.width/4,(Graphics.height/1.5)+10,2,
# Color.new(248,248,248),Color.new(12*6,12*6,12*6)],
[trainer1name,(Graphics.width/4)+(Graphics.width/2),(Graphics.height/5)+10,2,
Color.new(248,248,248),Color.new(12*6,12*6,12*6)],
[trainer2name,(Graphics.width/4)+(Graphics.width/2),(Graphics.height*3/5)+10,2,
Color.new(248,248,248),Color.new(12*6,12*6,12*6)]
]
pbDrawTextPositions(overlay.bitmap,textpos)
=end
pbSEPlay("Vs sword")
35.times do
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
#trainer.x -= xoffset/10
flash.opacity -= 25.5 if flash.opacity>0
vs.x += val
# vs.y -= val
val = 4 if vs.x<=(Graphics.width/2)-2
val = 0 if vs.x>=(Graphics.width/2)+2
pbWait(1)
end
30.times do
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
trainer1.x -= xoffset/30
trainer2.x -= xoffset/30
vs.zoom_x += 0.2
vs.zoom_y += 0.2
pbWait(1)
end
flash.tone = Tone.new(-255,-255,-255)
10.times do
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
trainer1.x -= xoffset/30
trainer2.x -= xoffset/30
flash.opacity += 25.5
pbWait(1)
end
# End
#player.dispose
trainer1.dispose
trainer2.dispose
flash.dispose
vs.dispose
bar1.dispose
bar2.dispose
bar3.dispose
bar4.dispose
overlay.dispose
fade.dispose
viewvs.dispose
viewopp1.dispose
viewplayer1.dispose
viewopp2.dispose
viewplayer2.dispose
viewport.color = Color.new(0,0,0,255)
return true
end
end
end
end
v18:
Spoiler:
Find "def pbBattleAnimationOverride(viewport,battletype=0,foe=nil)" in the PField_Visuals script section, and paste the following above the line with "return false". Make sure to delete the "end" above this line so it's not duplicated.
Code:
elsif (battletype==1 || battletype==3) && foe.length==2 # Against two trainers
trainer1id = (foe[0].trainertype rescue -1)
trainer2id = (foe[1].trainertype rescue -1)
if trainer1id>=0 && trainer2id>=0
trainer3id = ($PokemonGlobal.partner[0] rescue -1)
if trainer3id>=0
t1bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer1id)) rescue nil
t1bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer1id) if !pbResolveBitmap(t1bargraphic)
t1graphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,trainer1id)) rescue nil
t1graphic = sprintf("Graphics/Transitions/vsTrainer%d",trainer1id) if !pbResolveBitmap(t1graphic)
t2bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer2id)) rescue nil
t2bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer2id) if !pbResolveBitmap(t2bargraphic)
t2graphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,trainer2id)) rescue nil
t2graphic = sprintf("Graphics/Transitions/vsTrainer%d",trainer2id) if !pbResolveBitmap(t2graphic)
p2bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer3id)) rescue nil
p2bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer3id) if !pbResolveBitmap(p2bargraphic)
p2graphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,trainer3id)) rescue nil
p2graphic = sprintf("Graphics/Transitions/vsTrainer%d",trainer3id) if !pbResolveBitmap(p2graphic)
if pbResolveBitmap(t1bargraphic) && pbResolveBitmap(t1graphic) && pbResolveBitmap(t2bargraphic) &&
pbResolveBitmap(t2graphic) && pbResolveBitmap(p2bargraphic) && pbResolveBitmap(p2graphic)
outfit = ($Trainer) ? $Trainer.outfit : 0
# Set up
viewplayer1 = Viewport.new(0,Graphics.height/5-10,Graphics.width/2,128)
viewplayer1.z = viewport.z
viewplayer2 = Viewport.new(0,Graphics.height*3/5-10,Graphics.width/2,128)
viewplayer2.z = viewport.z
viewopp1 = Viewport.new(Graphics.width/2,Graphics.height/5-10,Graphics.width,128)
viewopp1.z = viewport.z
viewopp2 = Viewport.new(Graphics.width/2,Graphics.height*3/5-10,Graphics.width,128)
viewopp2.z = viewport.z
viewvs = Viewport.new(0,0,Graphics.width,Graphics.height)
viewvs.z = viewport.z
fade = Sprite.new(viewport)
fade.bitmap = BitmapCache.load_bitmap("Graphics/Transitions/vsFlash")
fade.tone = Tone.new(-255,-255,-255)
fade.opacity = 100
overlay = Sprite.new(viewport)
overlay.bitmap = Bitmap.new(Graphics.width,Graphics.height)
pbSetSystemFont(overlay.bitmap)
p1bargraphic = sprintf("Graphics/Transitions/vsBar%s_%d",getConstantName(PBTrainers,$Trainer.trainertype),outfit) rescue nil
p1bargraphic = sprintf("Graphics/Transitions/vsBar%d_%d",$Trainer.trainertype,outfit) if !pbResolveBitmap(p1bargraphic)
if !pbResolveBitmap(p1bargraphic)
pb1argraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,$Trainer.trainertype)) rescue nil
end
p1bargraphic = sprintf("Graphics/Transitions/vsBar%d",$Trainer.trainertype) if !pbResolveBitmap(p1bargraphic)
xoffset = (((Graphics.width/2)/10).round)*10
bar1 = Sprite.new(viewplayer1)
bar1.bitmap = BitmapCache.load_bitmap(p1bargraphic)
bar1.x = -xoffset
bar2 = Sprite.new(viewopp1)
bar2.bitmap = BitmapCache.load_bitmap(t1bargraphic)
bar2.x = xoffset
bar3 = Sprite.new(viewplayer2)
bar3.bitmap = BitmapCache.load_bitmap(p2bargraphic)
bar3.x = -xoffset
bar4 = Sprite.new(viewopp2)
bar4.bitmap = BitmapCache.load_bitmap(t2bargraphic)
bar4.x = xoffset
vs = Sprite.new(viewvs)
vs.bitmap = BitmapCache.load_bitmap("Graphics/Transitions/vs")
vs.ox = vs.bitmap.width/2
vs.oy = vs.bitmap.height/2
vs.x = Graphics.width/2
vs.y = Graphics.height/1.7
vs.visible = false
flash = Sprite.new(viewvs)
flash.bitmap = BitmapCache.load_bitmap("Graphics/Transitions/vsFlash")
flash.opacity = 0
# Animation
10.times do
bar1.x += xoffset/10
bar2.x -= xoffset/10
bar3.x += xoffset/10
bar4.x -= xoffset/10
pbWait(1)
end
pbSEPlay("Vs flash")
pbSEPlay("Vs sword")
flash.opacity = 255
bar1.dispose
bar2.dispose
bar3.dispose
bar4.dispose
bar1 = AnimatedPlane.new(viewplayer1)
bar1.bitmap = BitmapCache.load_bitmap(p1bargraphic)
bar2 = AnimatedPlane.new(viewopp1)
bar2.bitmap = BitmapCache.load_bitmap(t1bargraphic)
bar3 = AnimatedPlane.new(viewplayer2)
bar3.bitmap = BitmapCache.load_bitmap(p2bargraphic)
bar4 = AnimatedPlane.new(viewopp2)
bar4.bitmap = BitmapCache.load_bitmap(t2bargraphic)
p1graphic = sprintf("Graphics/Transitions/vsTrainer%s_%d",getConstantName(PBTrainers,$Trainer.trainertype),outfit) rescue nil
p1graphic = sprintf("Graphics/Transitions/vsTrainer%d_%d",$Trainer.trainertype,outfit) if !pbResolveBitmap(p1graphic)
if !pbResolveBitmap(p1graphic)
p1graphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,$Trainer.trainertype)) rescue nil
end
p1graphic = sprintf("Graphics/Transitions/vsTrainer%d",$Trainer.trainertype) if !pbResolveBitmap(p1graphic)
player = Sprite.new(viewplayer1)
player.bitmap = BitmapCache.load_bitmap(p1graphic)
player.x = -xoffset
partner = Sprite.new(viewplayer2)
partner.bitmap = BitmapCache.load_bitmap(p2graphic)
partner.x = -xoffset
partner.mirror = true
trainer1 = Sprite.new(viewopp1)
trainer1.bitmap = BitmapCache.load_bitmap(t1graphic)
trainer1.x = xoffset#+Graphics.width/2
trainer1.tone = Tone.new(-255,-255,-255)
trainer2 = Sprite.new(viewopp2)
trainer2.bitmap = BitmapCache.load_bitmap(t2graphic)
trainer2.x = xoffset#+Graphics.width/2
trainer2.tone = Tone.new(-255,-255,-255)
25.times do
flash.opacity -= 51 if flash.opacity>0
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
pbWait(1)
end
11.times do
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
player.x += xoffset/10
partner.x += xoffset/10
trainer1.x -= xoffset/10
trainer2.x -= xoffset/10
pbWait(1)
end
2.times do
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
player.x -= xoffset/20
partner.x -= xoffset/20
trainer1.x += xoffset/20
trainer2.x += xoffset/20
pbWait(1)
end
10.times do
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
pbWait(1)
end
val = 2
flash.opacity = 255
vs.visible = true
trainer1.tone = Tone.new(0,0,0)
trainer2.tone = Tone.new(0,0,0)
pbSEPlay("Vs sword")
70.times do
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
flash.opacity -= 25.5 if flash.opacity>0
vs.x += val
vs.y -= val
val = 2 if vs.x<=(Graphics.width/2)-2
val = -2 if vs.x>=(Graphics.width/2)+2
pbWait(1)
end
30.times do
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
vs.zoom_x += 0.2
vs.zoom_y += 0.2
pbWait(1)
end
flash.tone = Tone.new(-255,-255,-255)
10.times do
bar1.ox -= 16
bar2.ox += 16
bar3.ox -= 16
bar4.ox += 16
flash.opacity += 25.5
pbWait(1)
end
# End
player.dispose
partner.dispose
trainer1.dispose
trainer2.dispose
flash.dispose
vs.dispose
bar1.dispose
bar2.dispose
bar3.dispose
bar4.dispose
overlay.dispose
fade.dispose
viewvs.dispose
viewopp1.dispose
viewplayer1.dispose
viewopp2.dispose
viewplayer2.dispose
viewport.color = Color.new(0,0,0,255)
return true
end
else
t1bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer1id)) rescue nil
t1bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer1id) if !pbResolveBitmap(t1bargraphic)
t1graphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,trainer1id)) rescue nil
t1graphic = sprintf("Graphics/Transitions/vsTrainer%d",trainer1id) if !pbResolveBitmap(t1graphic)
t2bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer2id)) rescue nil
t2bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer2id) if !pbResolveBitmap(t2bargraphic)
t2graphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,trainer2id)) rescue nil
t2graphic = sprintf("Graphics/Transitions/vsTrainer%d",trainer2id) if !pbResolveBitmap(t2graphic)
if pbResolveBitmap(t1bargraphic) && pbResolveBitmap(t1graphic) && pbResolveBitmap(t2bargraphic) &&
pbResolveBitmap(t2graphic)
outfit = ($Trainer) ? $Trainer.outfit : 0
# Set up
viewplayer1 = Viewport.new(0,Graphics.height/5-10,Graphics.width/2,128)
viewplayer1.z = viewport.z
viewplayer2 = Viewport.new(0,Graphics.height*3/5-10,Graphics.width/2,128)
viewplayer2.z = viewport.z
#viewopp = Viewport.new(Graphics.width/2,Graphics.height/3,Graphics.width/2,128)
viewopp1 = Viewport.new(0,Graphics.height/5-10,Graphics.width,128)
viewopp1.z = viewport.z
viewopp2 = Viewport.new(0,Graphics.height*3/5-10,Graphics.width,128)
viewopp2.z = viewport.z
viewvs = Viewport.new(0,0,Graphics.width,Graphics.height)
viewvs.z = viewport.z
fade = Sprite.new(viewport)
fade.bitmap = BitmapCache.load_bitmap("Graphics/Transitions/vsFlash")
fade.tone = Tone.new(-255,-255,-255)
fade.opacity = 100
overlay = Sprite.new(viewport)
overlay.bitmap = Bitmap.new(Graphics.width,Graphics.height)
pbSetSystemFont(overlay.bitmap)
p1bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer1id)) rescue nil
p1bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer1id) if !pbResolveBitmap(p1bargraphic)
p2bargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,trainer2id)) rescue nil
p2bargraphic = sprintf("Graphics/Transitions/vsBar%d",trainer2id) if !pbResolveBitmap(p2bargraphic)
#if !pbResolveBitmap(pbargraphic)
# pbargraphic = sprintf("Graphics/Transitions/vsBar%s",getConstantName(PBTrainers,$Trainer.trainertype)) rescue nil
#end
#pbargraphic = sprintf("Graphics/Transitions/vsBar%d",$Trainer.trainertype) if !pbResolveBitmap(pbargraphic)
xoffset = (((Graphics.width/2)/10).round)*10
bar1 = Sprite.new(viewplayer1)
bar1.bitmap = BitmapCache.load_bitmap(p1bargraphic)
bar1.x = -xoffset
bar2 = Sprite.new(viewopp1)
bar2.bitmap = BitmapCache.load_bitmap(t1bargraphic)
bar2.x = xoffset
bar3 = Sprite.new(viewplayer2)
bar3.bitmap = BitmapCache.load_bitmap(p2bargraphic)
bar3.x = -xoffset
bar4 = Sprite.new(viewopp2)
bar4.bitmap = BitmapCache.load_bitmap(t2bargraphic)
bar4.x = xoffset
vs = Sprite.new(viewvs)
vs.bitmap = BitmapCache.load_bitmap("Graphics/Transitions/vs")
vs.ox = vs.bitmap.width/2
vs.oy = vs.bitmap.height/2
vs.x = Graphics.width/4
vs.y = Graphics.height/2
vs.visible = false
flash = Sprite.new(viewvs)
flash.bitmap = BitmapCache.load_bitmap("Graphics/Transitions/vsFlash")
flash.opacity = 0
# Animation
10.times do
bar1.x += xoffset/10
bar2.x -= xoffset/10
bar3.x += xoffset/10
bar4.x -= xoffset/10
# pbWait(1)
end
pbSEPlay("Vs flash")
pbSEPlay("Vs sword")
flash.opacity = 255
bar1.dispose
bar2.dispose
bar3.dispose
bar4.dispose
bar1 = AnimatedPlane.new(viewplayer1)
bar1.bitmap = BitmapCache.load_bitmap(p1bargraphic)
bar2 = AnimatedPlane.new(viewopp1)
bar2.bitmap = BitmapCache.load_bitmap(t1bargraphic)
bar3 = AnimatedPlane.new(viewplayer2)
bar3.bitmap = BitmapCache.load_bitmap(p2bargraphic)
bar4 = AnimatedPlane.new(viewopp2)
bar4.bitmap = BitmapCache.load_bitmap(t2bargraphic)
#pgraphic = sprintf("Graphics/Transitions/vsTrainer%s_%d",getConstantName(PBTrainers,$Trainer.trainertype),outfit) rescue nil
#pgraphic = sprintf("Graphics/Transitions/vsTrainer%d_%d",$Trainer.trainertype,outfit) if !pbResolveBitmap(pgraphic)
#if !pbResolveBitmap(pgraphic)
# pgraphic = sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,$Trainer.trainertype)) rescue nil
#end
#pgraphic = sprintf("Graphics/Transitions/vsTrainer%d",$Trainer.trainertype) if !pbResolveBitmap(pgraphic)
#player = Sprite.new(viewplayer)
#player.bitmap = BitmapCache.load_bitmap(pgraphic)
#player.x = -xoffset
trainer1 = Sprite.new(viewopp1)
trainer1.bitmap = BitmapCache.load_bitmap(t1graphic)
trainer1.x = xoffset+Graphics.width/2
trainer1.tone = Tone.new(-255,-255,-255)
trainer2 = Sprite.new(viewopp2)
trainer2.bitmap = BitmapCache.load_bitmap(t2graphic)
trainer2.x = xoffset+Graphics.width/2
trainer2.tone = Tone.new(-255,-255,-255)
#trainer.zoom_x *= 1.3
#trainer.zoom_y *= 1.3
25.times do
flash.opacity -= 51 if flash.opacity>0
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
pbWait(1)
end
11.times do
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
# player.x += xoffset/10
trainer1.x -= xoffset/10
trainer2.x -= xoffset/10
pbWait(1)
end
2.times do
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
# player.x -= xoffset/20
trainer1.x += xoffset/20
trainer2.x += xoffset/20
pbWait(1)
end
10.times do
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
#trainer.x -= xoffset/10
pbWait(1)
end
val = 4
flash.opacity = 255
vs.visible = true
trainer1.tone = Tone.new(0,0,0)
trainer2.tone = Tone.new(0,0,0)
=begin
trainer1name = foe[0][0].name
trainer2name = foe[1][0].name
textpos = [
# [$Trainer.name,Graphics.width/4,(Graphics.height/1.5)+10,2,
# Color.new(248,248,248),Color.new(12*6,12*6,12*6)],
[trainer1name,(Graphics.width/4)+(Graphics.width/2),(Graphics.height/5)+10,2,
Color.new(248,248,248),Color.new(12*6,12*6,12*6)],
[trainer2name,(Graphics.width/4)+(Graphics.width/2),(Graphics.height*3/5)+10,2,
Color.new(248,248,248),Color.new(12*6,12*6,12*6)]
]
pbDrawTextPositions(overlay.bitmap,textpos)
=end
pbSEPlay("Vs sword")
35.times do
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
#trainer.x -= xoffset/10
flash.opacity -= 25.5 if flash.opacity>0
vs.x += val
# vs.y -= val
val = 4 if vs.x<=(Graphics.width/2)-2
val = 0 if vs.x>=(Graphics.width/2)+2
pbWait(1)
end
30.times do
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
trainer1.x -= xoffset/30
trainer2.x -= xoffset/30
vs.zoom_x += 0.2
vs.zoom_y += 0.2
pbWait(1)
end
flash.tone = Tone.new(-255,-255,-255)
10.times do
bar1.ox += 16
bar2.ox += 16
bar3.ox += 16
bar4.ox += 16
trainer1.x -= xoffset/30
trainer2.x -= xoffset/30
flash.opacity += 25.5
pbWait(1)
end
# End
#player.dispose
trainer1.dispose
trainer2.dispose
flash.dispose
vs.dispose
bar1.dispose
bar2.dispose
bar3.dispose
bar4.dispose
overlay.dispose
fade.dispose
viewvs.dispose
viewopp1.dispose
viewplayer1.dispose
viewopp2.dispose
viewplayer2.dispose
viewport.color = Color.new(0,0,0,255)
return true
end
end
end
end
Note that I haven't included the player sprite or the names of the trainers, but I think it works out better visually that way.
Last edited: