• 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!
NPB's Battle UI and even MORE more

Resource NPB's Battle UI and even MORE more 7.0

EmilySW

Rookie
Member
Joined
Jan 6, 2024
Posts
6
Is it still working on v21.1 ?
I tried to install it on a fresh version and I have this error upon compiling :

Ruby:
[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.2]

Error in Plugin: [NPB's Battle UI and Even MORE More]
Exception: NameError
Message: uninitialized constant SpriteWrapper

Backtrace:
[NPB's Battle UI and Even MORE More] Script.rb:18:in `<main>'
Section008:635:in `eval'
Section008:635:in `block (2 levels) in runPlugins'
Section008:625:in `each'
Section008:625:in `block in runPlugins'
Section008:616:in `each'
Section008:616:in `runPlugins'
Section401:28:in `mainFunctionDebug'
Section401:18:in `block in mainFunction'
Section014:80:in `pbCriticalCode'

SpriteWrapper isn't a thing anymore in v21, I searched for it in the script, but there were nothing
yeah just got same issie did anyone get it to work
 

ardicoozer

Cooltrainer
Member
Joined
Sep 29, 2020
Posts
150
here we go, for v21+..
just change name a pictures folder to UI and replace all inside script.rb NPB plugins folder with this.
Code:
class Battle::Scene
  MESSAGE_BASE_COLOR   = Color.new(0, 0, 0)
  MESSAGE_SHADOW_COLOR = Color.new(160, 160, 168)
end

class Battle::Scene::MenuBase
  TEXT_BASE_COLOR   = Battle::Scene::MESSAGE_BASE_COLOR
  TEXT_SHADOW_COLOR = Battle::Scene::MESSAGE_SHADOW_COLOR
end

class Battle::Scene::FightMenu < Battle::Scene::MenuBase
  attr_reader :battler
  attr_reader :shiftMode

  GET_MOVE_TEXT_COLOR_FROM_MOVE_BUTTON = false
end

class Battle::Scene::PokemonDataBox < BitmapWrapper
  def draw_shiny_icon
    return if !@battler.shiny?
    shiny_x = (@battler.opposes?(0)) ? 206 : -6   # Foe's/player's
    pbDrawImagePositions(self.bitmap, [["Graphics/UI/shiny", @spriteBaseX + shiny_x, 44]])
  end
end
    
class PokemonTrainerCard_Scene
  def pbDrawTrainerCardFront
    overlay = @sprites["overlay"].bitmap
    overlay.clear
    baseColor   = Color.new(255, 255, 255)
    shadowColor = Color.new(160, 160, 160)
    totalsec = $stats.play_time.to_i
    hour = totalsec / 60 / 60
    min = totalsec / 60 % 60
    time = (hour > 0) ? _INTL("{1}h {2}m", hour, min) : _INTL("{1}m", min)
    $PokemonGlobal.startTime = pbGetTimeNow if !$PokemonGlobal.startTime
    starttime = _INTL("{1} {2}, {3}",
                      pbGetAbbrevMonthName($PokemonGlobal.startTime.mon),
                      $PokemonGlobal.startTime.day,
                      $PokemonGlobal.startTime.year)
    textPositions = [
      [_INTL("Name"), 34, 70, 0, baseColor, shadowColor],
      [$player.name, 302, 70, 1, baseColor, shadowColor],
      [_INTL("ID No."), 332, 70, 0, baseColor, shadowColor],
      [sprintf("%05d", $player.public_ID), 468, 70, 1, baseColor, shadowColor],
      [_INTL("Money"), 34, 118, 0, baseColor, shadowColor],
      [_INTL("${1}", $player.money.to_s_formatted), 302, 118, 1, baseColor, shadowColor],
      [_INTL("Pokédex"), 34, 166, 0, baseColor, shadowColor],
      [sprintf("%d/%d", $player.pokedex.owned_count, $player.pokedex.seen_count), 302, 166, 1, baseColor, shadowColor],
      [_INTL("Time"), 34, 214, 0, baseColor, shadowColor],
      [time, 302, 214, 1, baseColor, shadowColor],
      [_INTL("Started"), 34, 262, 0, baseColor, shadowColor],
      [starttime, 302, 262, 1, baseColor, shadowColor]
    ]
    pbDrawTextPositions(overlay, textPositions)
    x = 72
    region = pbGetCurrentRegion(0) # Get the current region
    imagePositions = []
    8.times do |i|
      if $player.badges[i + (region * 8)]
        imagePositions.push(["Graphics/UI/Trainer Card/icon_badges", x, 310, i * 32, region * 32, 32, 32])
      end
      x += 48
    end
    pbDrawImagePositions(overlay, imagePositions)
  end
end

class Battle::Scene::PokemonDataBox < Sprite
  STATUS_ICON_HEIGHT = 24
  end
 

EmilySW

Rookie
Member
Joined
Jan 6, 2024
Posts
6
here we go, for v21+..
just change name a pictures folder to UI and replace all inside script.rb NPB plugins folder with this.
Code:
class Battle::Scene
  MESSAGE_BASE_COLOR   = Color.new(0, 0, 0)
  MESSAGE_SHADOW_COLOR = Color.new(160, 160, 168)
end

class Battle::Scene::MenuBase
  TEXT_BASE_COLOR   = Battle::Scene::MESSAGE_BASE_COLOR
  TEXT_SHADOW_COLOR = Battle::Scene::MESSAGE_SHADOW_COLOR
end

class Battle::Scene::FightMenu < Battle::Scene::MenuBase
  attr_reader :battler
  attr_reader :shiftMode

  GET_MOVE_TEXT_COLOR_FROM_MOVE_BUTTON = false
end

class Battle::Scene::PokemonDataBox < BitmapWrapper
  def draw_shiny_icon
    return if !@battler.shiny?
    shiny_x = (@battler.opposes?(0)) ? 206 : -6   # Foe's/player's
    pbDrawImagePositions(self.bitmap, [["Graphics/UI/shiny", @spriteBaseX + shiny_x, 44]])
  end
end
   
class PokemonTrainerCard_Scene
  def pbDrawTrainerCardFront
    overlay = @sprites["overlay"].bitmap
    overlay.clear
    baseColor   = Color.new(255, 255, 255)
    shadowColor = Color.new(160, 160, 160)
    totalsec = $stats.play_time.to_i
    hour = totalsec / 60 / 60
    min = totalsec / 60 % 60
    time = (hour > 0) ? _INTL("{1}h {2}m", hour, min) : _INTL("{1}m", min)
    $PokemonGlobal.startTime = pbGetTimeNow if !$PokemonGlobal.startTime
    starttime = _INTL("{1} {2}, {3}",
                      pbGetAbbrevMonthName($PokemonGlobal.startTime.mon),
                      $PokemonGlobal.startTime.day,
                      $PokemonGlobal.startTime.year)
    textPositions = [
      [_INTL("Name"), 34, 70, 0, baseColor, shadowColor],
      [$player.name, 302, 70, 1, baseColor, shadowColor],
      [_INTL("ID No."), 332, 70, 0, baseColor, shadowColor],
      [sprintf("%05d", $player.public_ID), 468, 70, 1, baseColor, shadowColor],
      [_INTL("Money"), 34, 118, 0, baseColor, shadowColor],
      [_INTL("${1}", $player.money.to_s_formatted), 302, 118, 1, baseColor, shadowColor],
      [_INTL("Pokédex"), 34, 166, 0, baseColor, shadowColor],
      [sprintf("%d/%d", $player.pokedex.owned_count, $player.pokedex.seen_count), 302, 166, 1, baseColor, shadowColor],
      [_INTL("Time"), 34, 214, 0, baseColor, shadowColor],
      [time, 302, 214, 1, baseColor, shadowColor],
      [_INTL("Started"), 34, 262, 0, baseColor, shadowColor],
      [starttime, 302, 262, 1, baseColor, shadowColor]
    ]
    pbDrawTextPositions(overlay, textPositions)
    x = 72
    region = pbGetCurrentRegion(0) # Get the current region
    imagePositions = []
    8.times do |i|
      if $player.badges[i + (region * 8)]
        imagePositions.push(["Graphics/UI/Trainer Card/icon_badges", x, 310, i * 32, region * 32, 32, 32])
      end
      x += 48
    end
    pbDrawImagePositions(overlay, imagePositions)
  end
end

class Battle::Scene::PokemonDataBox < Sprite
  STATUS_ICON_HEIGHT = 24
  end
omg thx ur a life saver il re set up with this!!! thx agin
 

Eco

Novice
Member
Joined
Feb 22, 2024
Posts
10
The badges seem to not be appearing in the trainer card now.
 

No pro bro

Novice
Member
Joined
Jun 9, 2021
Posts
25
Back
Top