Jump to content
New account registrations are disabed. This website is now an archive. Read more here.
Nisage

[XP] Battle Result Window

Recommended Posts

I had a level up notifier script, but thanks to the reboot, I lost it and the site I got it from. It wasn't Blizzards' or Akxivs'. When you leveled up, it would open a window, I think it showed the Character Sprite, it looked close to this.....

Level_Up_Stat.jpg

But with an XP style. I'm hoping the site didnt shut down, since some sites I tried to find are now gone :(

 

Edit: Oops, I ment a Battle Result Window :P Had the two mixed up. It would be close to the size like in the picture.

Share this post


Link to post
Share on other sites

Sorry if it's kind of late to be doing this or for bumping an old thread, but I think I might have what you we're looking for. The screenshot link is broken, but you said the battle result showed the sprites in it. I can't remember where I got this script from and it was probably a while ago. I hope this is what you were looking for.

 

 

#=================================================================

# ■ Battle Result by A3D Ver. 1.02

# Useful : show battle result in a different way

# Effect to default script : this code will replace methode "start_phase5" & "update_phase5" in Scene_Battle

# How to install : in script editor, insert all the code above main

# Note : this script is for non-commercial use only, give credit if use

# Contact : A3D (hyper_s@hotmail.com)

#=================================================================

 

module A3D

WAIT_WINDOW_APPEAR = 90

WAIT_RUNNING_NUMBER = 50

STEP_EXP = 1

STEP_GOLD = 1

SE_LEVELUP = ["levelup", 100, 100]

SE_NEWSKILL = ["newskill", 100, 100]

FONT_NAME = "Tahoma"

FONT_SIZE = 22

end

 

#==============================================================================

# ■ Scene_Battle

#==============================================================================

 

class Scene_Battle

 

#--------------------------------------------------------------------------

# ● After battle phase start

#--------------------------------------------------------------------------

def start_phase5

# It moves to phase 5

@phase = 5

# Performing battle end ME

$game_system.me_play($game_system.battle_end_me)

# You reset to BGM before the battle starting

$game_system.bgm_play($game_temp.map_bgm)

# Initializing EXP, the gold and the treasure

exp = 0

gold = 0

treasures = []

# Loop

for enemy in $game_troop.enemies

# When the enemy hides and it is not state

unless enemy.hidden

# Adding acquisition EXP and the gold

exp += enemy.exp

gold += enemy.gold

# Treasure appearance decision

if rand(100) < enemy.treasure_prob

if enemy.item_id > 0

treasures.push($data_items[enemy.item_id])

end

if enemy.weapon_id > 0

treasures.push($data_weapons[enemy.weapon_id])

end

if enemy.armor_id > 0

treasures.push($data_armors[enemy.armor_id])

end

end

end

end

# Treasure acquisition

for item in treasures

case item

when RPG::Item

$game_party.gain_item(item.id, 1)

when RPG::Weapon

$game_party.gain_weapon(item.id, 1)

when RPG::Armor

$game_party.gain_armor(item.id, 1)

end

end

# Create Variable & Window

@phase5_step = 1

@wait_window_appear = A3D::WAIT_WINDOW_APPEAR

@wait_running_number = A3D::WAIT_RUNNING_NUMBER

@resultreceive_window = Window_ResultReceive.new(exp, gold, treasures)

@resultgold_window = Window_ResultGold.new

@resultparty_window = Window_ResultParty.new

@actor_level_before = []

@resultlevel_window = []

@resultskill_window = []

for i in 0...$game_party.actors.size

actor = $game_party.actors

@actor_level_before = actor.level

@resultlevel_window = Window_ResultLevel.new(i)

@resultskill_window = Window_ResultSkill.new(i)

end

end

#--------------------------------------------------------------------------

# ● Update Phase 5

#--------------------------------------------------------------------------

def update_phase5

case @phase5_step

when 1 # EXP & Gold Phase

update_phase5_step1

when 2 # Skill Phase

update_phase5_step2

when 3 # Delete Window Phase

update_phase5_step3

end

end

#--------------------------------------------------------------------------

# ● Update Phase 5 Step 1

#--------------------------------------------------------------------------

def update_phase5_step1

# Wait Count Before Window Appear

if @wait_window_appear > 0

@wait_window_appear -= 1

if @wait_window_appear == 0

@resultreceive_window.visible = true

@resultgold_window.visible = true

@resultparty_window.visible = true

$game_temp.battle_main_phase = false

end

return

end

# Wait Count Before Running Number

if @wait_running_number > 0

@wait_running_number -= 1

return

end

# Change Item Page

if Input.trigger?(Input::RIGHT)

if @resultreceive_window.max_page != 1

$game_system.se_play($data_system.cursor_se)

@resultreceive_window.page = @resultreceive_window.page == 1 ? 2 : 1

@resultreceive_window.refresh

end

end

# EXP & Gold Rolling

if (@resultreceive_window.exp != 0 || @resultreceive_window.gold != 0)

# Input C to Shortcut Calculation

if Input.trigger?(Input::C)

for i in 0...$game_party.actors.size

actor = $game_party.actors

level_before = actor.level

actor.exp += @resultreceive_window.exp

if actor.level > level_before

@resultlevel_window.visible = true

Audio.se_play("Audio/SE/" + A3D::SE_LEVELUP[0], A3D::SE_LEVELUP[1], A3D::SE_LEVELUP[2])

end

end

$game_party.gain_gold(@resultreceive_window.gold)

@resultreceive_window.exp = 0

@resultreceive_window.gold = 0

@resultreceive_window.refresh

@resultgold_window.refresh

@resultparty_window.refresh

end

# EXP

if @resultreceive_window.exp != 0

step_exp = @resultreceive_window.exp >= A3D::STEP_EXP.abs ? A3D::STEP_EXP.abs : @resultreceive_window.exp

for i in 0...$game_party.actors.size

actor = $game_party.actors

if actor.next_rest_exp <= step_exp && actor.next_rest_exp != 0

@resultlevel_window.visible = true

Audio.se_play("Audio/SE/" + A3D::SE_LEVELUP[0], A3D::SE_LEVELUP[1], A3D::SE_LEVELUP[2])

end

actor.exp += step_exp

end

@resultreceive_window.exp -= step_exp

@resultreceive_window.refresh

@resultparty_window.refresh

end

# Gold

if @resultreceive_window.gold != 0

step_gold = @resultreceive_window.gold >= A3D::STEP_GOLD.abs ? A3D::STEP_GOLD.abs : @resultreceive_window.gold

$game_party.gain_gold(step_gold)

@resultreceive_window.gold -= step_gold

@resultreceive_window.refresh

@resultgold_window.refresh

end

return

end

# Input C to Bypass Step

if Input.trigger?(Input::C)

@phase5_step = 2

return

end

end

#--------------------------------------------------------------------------

# ● Update Phase 5 Step 2

#--------------------------------------------------------------------------

def update_phase5_step2

# Change Item Page

if Input.trigger?(Input::RIGHT)

if @resultreceive_window.max_page != 1

$game_system.se_play($data_system.cursor_se)

@resultreceive_window.page = @resultreceive_window.page == 1 ? 2 : 1

@resultreceive_window.refresh

end

end

# Initialize Skill Phase

if @initialized_skill_phase == nil

for i in 0...$game_party.actors.size

actor = $game_party.actors

for skill in $data_classes[actor.class_id].learnings

if skill.level > @actor_level_before && skill.level <= actor.level

Audio.se_play("Audio/SE/" + A3D::SE_NEWSKILL[0], A3D::SE_NEWSKILL[1], A3D::SE_NEWSKILL[2])

@resultskill_window.skill_id = skill.skill_id

@resultskill_window.visible = true

@resultskill_window.refresh

@skill_phase_active = true

end

end

end

@initialized_skill_phase = true

end

# If Skill Phase Active, Show Window

if @skill_phase_active != nil

if @resultskill_window[0].x != 456

for i in 0...$game_party.actors.size

@resultskill_window.x -= 23

end

return

end

else

@phase5_step = 3

return

end

# Input C to Bypass Step

if Input.trigger?(Input::C)

@phase5_step = 3

return

end

end

#--------------------------------------------------------------------------

# ● Update Phase 5 Step 3

#--------------------------------------------------------------------------

def update_phase5_step3

# Delete All Result-Window

@resultreceive_window.dispose

@resultgold_window.dispose

@resultparty_window.dispose

for i in 0...$game_party.actors.size

@resultlevel_window.dispose

@resultskill_window.dispose

end

battle_end(0)

end

 

end

 

#==============================================================================

# ■ Game_Actor

#==============================================================================

 

class Game_Actor

 

def next_rest_exp

return @exp_list[@level+1] > 0 ? (@exp_list[@level+1] - @exp) : 0

end

 

end

 

#==============================================================================

# ■ Window_ResultReceive

#==============================================================================

 

class Window_ResultReceive < Window_Base

#--------------------------------------------------------------------------

# ● Attr

#--------------------------------------------------------------------------

attr_accessor :exp

attr_accessor :gold

attr_accessor :page

attr_reader :max_page

#--------------------------------------------------------------------------

# ● Initialize

#--------------------------------------------------------------------------

def initialize(exp, gold, treasures)

super(40, 28, 224, 212)

self.contents = Bitmap.new(width - 32, height - 32)

self.contents.font.name = A3D::FONT_NAME

self.contents.font.size = A3D::FONT_SIZE

self.back_opacity = 160

self.visible = false

@exp = exp

@gold = gold

@treasures = treasures

@page = 1

@max_page = treasures.size > 4 ? 2 : 1

refresh

end

#--------------------------------------------------------------------------

# ● Refresh

#--------------------------------------------------------------------------

def refresh

self.contents.clear

self.contents.font.color = system_color

self.contents.draw_text(0, -8, self.width - 32, 32, "Exp")

self.contents.draw_text(0, 16, self.width - 32, 32, $data_system.words.gold)

self.contents.draw_text(0, 40, self.width - 32, 32, $data_system.words.item + " [" + @page.to_s + "/" + @max_page.to_s + "]" )

self.contents.font.color = normal_color

self.contents.draw_text(0, -8, self.width - 32, 32, @exp.to_s, 2)

self.contents.draw_text(0, 16, self.width - 32, 32, @gold.to_s, 2)

if @treasures.size == 0

self.contents.draw_text(0, 68, self.width - 32, 32, "Nothing")

elsif @treasures.size > 4

bitmap = RPG::Cache.windowskin($game_system.windowskin_name)

self.contents.blt(184, 116, bitmap, Rect.new(168, 24, 16, 16), 255)

end

y = 68

item_start_index = @page == 1 ? 0 : 4

for i in item_start_index...@treasures.size

item = @treasures

draw_item_name(item, 0, y)

y += 28

end

end

 

end

 

#==============================================================================

# ■ Window_ResultGold

#==============================================================================

 

class Window_ResultGold < Window_Base

#--------------------------------------------------------------------------

# ● Initialize

#--------------------------------------------------------------------------

def initialize

super(40, 240, 224, 52)

self.contents = Bitmap.new(width - 32, height - 32)

self.contents.font.name = A3D::FONT_NAME

self.contents.font.size = A3D::FONT_SIZE

self.back_opacity = 160

self.visible = false

refresh

end

#--------------------------------------------------------------------------

# ● Refresh

#--------------------------------------------------------------------------

def refresh

self.contents.clear

self.contents.font.color = system_color

self.contents.draw_text(0, -8, self.width - 32, 32, "Total " + $data_system.words.gold)

self.contents.font.color = normal_color

self.contents.draw_text(0, -8, self.width - 32, 32, $game_party.gold.to_s, 2)

end

 

end

 

#==============================================================================

# ■ Window_ResultParty

#==============================================================================

 

class Window_ResultParty < Window_Base

#--------------------------------------------------------------------------

# ● Initialize

#--------------------------------------------------------------------------

def initialize

super(264, 28, 336, 264)

self.contents = Bitmap.new(width - 32, height - 32)

self.contents.font.name = A3D::FONT_NAME

self.contents.font.size = A3D::FONT_SIZE

self.back_opacity = 160

self.visible = false

refresh

end

#--------------------------------------------------------------------------

# ● Refresh

#--------------------------------------------------------------------------

def refresh

self.contents.clear

for i in 0...$game_party.actors.size

actor = $game_party.actors

y = 60 * i + 22

draw_actor_graphic(actor, 24, y + 28 )

draw_actor_name(actor, 64, y - 28)

self.contents.font.color = system_color

self.contents.draw_text(116, y, (self.width - 32), 32, "Lvl")

self.contents.draw_text(188, y, (self.width - 32), 32, "Next")

self.contents.font.color = normal_color

self.contents.draw_text(-140, y, (self.width - 32), 32, actor.level.to_s ,2)

self.contents.draw_text(0 , y, (self.width - 32), 32, actor.next_rest_exp_s ,2)

end

end

 

end

 

#==============================================================================

# ■ Window_ResultLevel

#==============================================================================

 

class Window_ResultLevel < Window_Base

#--------------------------------------------------------------------------

# ● Initialize

#--------------------------------------------------------------------------

def initialize(id)

super(332, 60 * id + 40, 124, 60)

self.contents = Bitmap.new(width - 32, height - 32)

self.contents.font.name = A3D::FONT_NAME

self.contents.font.size = A3D::FONT_SIZE

self.back_opacity = 160

self.visible = false

self.z = 200

refresh

end

#--------------------------------------------------------------------------

# ● Refresh

#--------------------------------------------------------------------------

def refresh

self.contents.clear

self.contents.draw_text(0, -2, self.width - 32, 32, "LEVEL UP!", 1)

end

 

end

 

#==============================================================================

# ■ Window_ResultSkill

#==============================================================================

 

class Window_ResultSkill < Window_Base

#--------------------------------------------------------------------------

# ● Attr

#--------------------------------------------------------------------------

attr_accessor :skill_id

#--------------------------------------------------------------------------

# ● Initialize

#--------------------------------------------------------------------------

def initialize(id)

super(640, 60 * id + 40, 200, 60)

self.contents = Bitmap.new(width - 32, height - 32)

self.contents.font.name = A3D::FONT_NAME

self.contents.font.size = A3D::FONT_SIZE

self.back_opacity = 160

self.visible = false

self.z = 200

@skill_id = nil

end

#--------------------------------------------------------------------------

# ● Refresh

#--------------------------------------------------------------------------

def refresh

self.contents.clear

if @skill_id == nil

return

end

skill = $data_skills[@skill_id]

bitmap = RPG::Cache.icon(skill.icon_name)

self.contents.blt(0, 2, bitmap, Rect.new(0, 0, 24, 24), 255)

self.contents.font.color = normal_color

self.contents.draw_text(32, -2, self.width - 64, 32, skill.name)

end

 

end

 

Share this post


Link to post
Share on other sites

Uh dude this is major neroposting. This guy is most like long gone or long found this script. I mean seriously this request was posted back in 2009. <_<

Share this post


Link to post
Share on other sites

Thats not necro-posting because people who find the topic and are looking for the same now have a solution. It's useful content, so its welcomed despite being a necropost.

 

But then shouldn't he of just made a new thread then, posting that he found a battle result if anyone needs it or something as I found a previous request for it, but it was posted 2 years ago?

Edited by bigace

Share this post


Link to post
Share on other sites

Yeah sure he could have done that, but just saying that useful necro-posting isn't against the rules. Its irrelevant to say this but its much easier for people to reply to topics than start their own, so it does offer an incentive to post useful content. But that's not really why the rule exists. So many members have made posts like yours though.

 

Also Nisage isn't long gone. He's got over 1k posts. He'll be back. They all come back...

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...