• The Eevee Expo Game Jam #10 has concluded, congratulations to all participants! Now it's time for the judges to play through the games, and you can play along to vote who deserves the community choice spotlight.
    You can check out the submitted games here!
    Play through the games and provide some feedback to the devs while you're at it!
  • Hi, Guest!
    Some images might be missing as we move away from using embedded images, sorry for the mess!
    From now on, you'll be required to use a third party to host images. You can learn how to add images here, and if your thread is missing images you can request them here.
    Do not use Discord to host any images you post, these links expire quickly!
Resource icon

Standalone Ability Messages 1

A lot of people know the great Elite Battle System from Luka S.J., which comes with ability messages. However EBS is not suitable for all games, but some of you might still want to have the messages show up. SO here I'll show you how you can have that. Huge thanks to Luka S.J. for providing the code



What you need:
1) The code (provided here)
2) Graphics for the ability message (either make some yourself or get them from the official EBS download)


Step 1)
Create a new script section and call it "Abillity_Messages"

Step 2)
Copy and paste the following code.
This code is 100% from EBS
CODE=ruby]#=============================================================================
# Ability messages based on EBS
# Credits for code go to Luka S.J.
#=============================================================================

def showAbilityMessage(battler,hide=true)
return if battler.pokemon.nil?

effect=PBAbilities.getName(battler.ability)


bitmap=Bitmap.new("Graphics/Pictures/Battle/abilityMessage")
rect=(battler.index%2==0) ? Rect.new(0,56,280,56) : Rect.new(0,0,280,56)
baseColor=Color.new(225,225,225)#PokeBattle_SceneConstants::MESSAGEBASECOLOR
shadowColor=Color.new(32,32,32)#PokeBattle_SceneConstants::MESSAGESHADOWCOLOR

@sprites["abilityMessage"].bitmap.clear
@sprites["abilityMessage"].bitmap.blt(0,0,bitmap,rect)

bitmap=@sprites["abilityMessage"].bitmap
pbDrawOutlineText(bitmap,38,-3,280-38,bitmap.font.size,_INTL("{1}'s",battler.pokemon.name),baseColor,shadowColor,0)
pbDrawOutlineText(bitmap,0,27,280-28,bitmap.font.size,"#{effect}",baseColor,shadowColor,2)
@sprites["abilityMessage"].x=(battler.index%2==0) ? -280 : Graphics.width
o = @battle.doublebattle ? 30 : 0
@sprites["abilityMessage"].y=(battler.index%2==0) ? 150 + o : 150 - o
pbSEPlay("BW_ability")

10.times do
@sprites["abilityMessage"].x+=(battler.index%2==0) ? 28 : -28
@sprites["abilityMessage"].zoom_y+=0.1
Graphics.update
end

t=255
@sprites["abilityMessage"].tone=Tone.new(t,t,t)
50.times do
t-=25.5 if t > 0
@sprites["abilityMessage"].tone=Tone.new(t,t,t)
Input.update
Graphics.update
end
pbWait(20)
hideAbilityMessage(battler) if hide

end

def hideAbilityMessage(battler)
10.times do
@sprites["abilityMessage"].x+=(battler.index%2==0) ? -28 : 28
@sprites["abilityMessage"].zoom_y-=0.1
Graphics.update
end
end[/CODE]

Step 3)
In "PokeBattle_Battler" find
Ruby:
Expand Collapse Copy
  def initialize(btl,index)
    @battle       = btl
    @index        = index
    @hp           = 0
    @totalhp      = 0
    @fainted      = true
    @captured     = false
    @stages       = []
    @effects      = []
    @damagestate  = PokeBattle_DamageState.new
    pbInitBlank
    pbInitEffects(false)
    pbInitPermanentEffects
  end
and after that add the following code:
Ruby:
Expand Collapse Copy
def pbInitAbilMessage
    @viewport= Viewport.new(0,0,Graphics.width,Graphics.height)
    @viewport.z=999999
    @sprites={}
    @sprites["abilityMessage"]=Sprite.new(@viewport)
    @sprites["abilityMessage"].bitmap=Bitmap.new(280,68)
    pbSetSystemFont(@sprites["abilityMessage"].bitmap)
    @sprites["abilityMessage"].oy=@sprites["abilityMessage"].bitmap.height/2+6
    @sprites["abilityMessage"].zoom_y=0
    @sprites["abilityMessage"].z=99999
  end

Step 4)
In the previous mentioned "def initialize(btl,index)" add the following line right before the "end" tag
Ruby:
Expand Collapse Copy
pbInitAbilMessage

Step 5)
Place your graphic in Graphics\Pictures\Battle and name it "abilityMessage.png"

Step 6)
To show an ability message use
Ruby:
Expand Collapse Copy
 showAbilityMessage(battler)
where battler refers to the battler object. For example: If you want to show an ability message for Intimidate the whole code would look like this:

Ruby:
Expand Collapse Copy
# Intimidate
    if self.hasWorkingAbility(:INTIMIDATE) && onactive
      showAbilityMessage(self)
      PBDebug.log("[Ability triggered] #{pbThis}'s Intimidate")
      for i in 0...4
        if pbIsOpposing?(i) && !@battle.battlers[i].fainted?
          @battle.battlers[i].pbReduceAttackStatIntimidate(self)
        end
      end
    end

For questions and bug reports visit our Discord channel https://discord.gg/7msDPaN or post them here.
Credits
Luka S.J. | Code for Ability Message from Elite Battle System
  • Like
Reactions: TechSkylander1518
Author
Hollow_Ego
Views
2,320
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from Hollow_Ego

Back
Top