Per 2016, RMID pindah ke RMID Discord (Invite link dihapus untuk mencegah spambot -Theo @ 2019). Posting sudah tidak bisa dilakukan lagi.
Mohon maaf atas ketidaknyamanannya dan mohon kerjasamanya.

Share | 
 

 Custom Battle Result Script

Topik sebelumnya Topik selanjutnya Go down 
Custom Battle Result Script Empty2011-05-24, 14:45
PostCustom Battle Result Script
#1
loloaziib 
Newbie
Newbie
loloaziib

Level 5
Posts : 11
Thanked : 0
Engine : RMVX
Skill : Intermediate
Type : Event Designer

Custom Battle Result Script Vide
hi,
aku cuma mau berbagi script ajah buat kalian.
ini ada Battle result script, jadi kalo abis menang battlenya. langsung muncul window level up gitu. kalo yang belom ngaerti apa maksudnya, coba aja scriptnya.
ini buatan A3D, dari forum bule...

Code:
#=================================================================
# ? 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 = 60
  WAIT_RUNNING_NUMBER = 20
  STEP_EXP = 1
  STEP_GOLD = 1
  SE_LEVELUP = ["007-System07", 100, 100]
  SE_NEWSKILL = ["007-System07", 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[i]
      @actor_level_before[i] = actor.level
      @resultlevel_window[i] = Window_ResultLevel.new(i)
      @resultskill_window[i] = 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[i]
          level_before = actor.level
          actor.exp += @resultreceive_window.exp
          if actor.level > level_before
            @resultlevel_window[i].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[i]
          if actor.next_rest_exp <= step_exp && actor.next_rest_exp != 0
            @resultlevel_window[i].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[i]
        for skill in $data_classes[actor.class_id].learnings
          if skill.level > @actor_level_before[i] && skill.level <= actor.level
            Audio.se_play("Audio/SE/" + A3D::SE_NEWSKILL[0], A3D::SE_NEWSKILL[1], A3D::SE_NEWSKILL[2])
            @resultskill_window[i].skill_id = skill.skill_id
            @resultskill_window[i].visible = true
            @resultskill_window[i].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[i].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[i].dispose
      @resultskill_window[i].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[i]
      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[i]
      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, "Lv.")
      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

cara makenya:
- copy kode diatas kemudian buka script editor script editor
- klik kanan pada tulisan main( ada di script paling bawah), kemudian klik kiri insert.
- abis itu beri nama script itu Battle_result.
- kemudian paste ke isi script tsb.
- klik OK.
- save project
- buat event yang langsung ke pertarungan yang musuhnya mudah.supaya kamu bisa lebih cepat menang
- jalankan game.

setelah kamu melawan musuh dan menang,penampakan battle_result nya bakal kaya gini.

Custom Battle Result Script Screen10

Credits
A3d from http://www.rmrk.net

semoga scipt ini berguna bagi yang membutuhkan.. :D


Terakhir diubah oleh loloaziib tanggal 2011-05-27, 23:09, total 1 kali diubah
Custom Battle Result Script Empty2011-05-24, 14:49
PostRe: Custom Battle Result Script
#2
nisamerica 
Living Skeleton
nisamerica

Kosong
Posts : 1668
Thanked : 25
Engine : RMVX
Skill : Very Beginner
Type : Artist
Awards:


Custom Battle Result Script Vide
Wow Aluxesnya cewe =)) =)) =))

Btw, ini ga papa disebar2? :D
BIasanya sih kudu make ijin? :D


Great script btw :thumbup:
Custom Battle Result Script Empty2011-05-24, 15:37
PostRe: Custom Battle Result Script
#3
loloaziib 
Newbie
Newbie
loloaziib

Level 5
Posts : 11
Thanked : 0
Engine : RMVX
Skill : Intermediate
Type : Event Designer

Custom Battle Result Script Vide
gpp kok, yang bikin scriptnya aja di sebar. yang penting udah kasih tau siapa yang ngebuat..

itu aluxesnya cewek gara-garanya mau nge test char buatan sendiri...
Custom Battle Result Script Empty2011-05-24, 15:50
PostRe: Custom Battle Result Script
#4
hyperkudit 
Pahlawan Super
hyperkudit

Level 5
Posts : 2288
Thanked : 30
Engine : RMXP
Skill : Very Beginner
Type : Artist
Awards:

Custom Battle Result Script Vide
wah aluxesnya cewe :D

btw bukan masalah dia nyebar2 apa enggak...
tapi kalo kita nyebarin karya orang tanpa sepengetahuan dan seijin si empunya kan gk enak juga :D
jadi mending minta ijin dulu untuk ngepost disini?
Custom Battle Result Script Empty2011-05-24, 15:58
PostRe: Custom Battle Result Script
#5
KID_VX 
Senior
Senior
KID_VX

Level 5
Posts : 959
Thanked : 24
Engine : Multi-Engine User
Skill : Very Beginner
Type : Developer

Custom Battle Result Script Vide
loloaziib wrote:
gpp kok, yang bikin scriptnya aja di sebar. yang penting udah kasih tau siapa yang ngebuat..

itu aluxesnya cewek gara-garanya mau nge test char buatan sendiri...

ya tetep aja bang
yang bikin scrit nya aja di sebar :), ya iyalah, dia kan yang bikin scriptnya, so tersrah dia mau di sebarin dimanapun juga,
nah kalo dikau kan buka pembuatnya, jadi dikau setidaknya harus meminta iizin dan tentunya mendapatkan konfirmasi kalo dirimu boleh menyebarkan tuh script buatan orang tersebut, kalo gak , nanti bisa di anggap pencurian , walopun di sertakan juga founder nya..
Dan forum ini juga mempunyai aturan :)

Enjoy 8)
Custom Battle Result Script Empty2011-05-24, 17:49
PostRe: Custom Battle Result Script
#6
nisamerica 
Living Skeleton
nisamerica

Kosong
Posts : 1668
Thanked : 25
Engine : RMVX
Skill : Very Beginner
Type : Artist
Awards:


Custom Battle Result Script Vide
Mungkin lebih baik kalo mo sharing kasih link langsung ke webnya dia aja, di sini cuma nampilin SS dan penjelasan :D

Boleh kan kalo gitu doang? :D
Custom Battle Result Script Empty2011-05-24, 18:19
PostRe: Custom Battle Result Script
#7
KID_VX 
Senior
Senior
KID_VX

Level 5
Posts : 959
Thanked : 24
Engine : Multi-Engine User
Skill : Very Beginner
Type : Developer

Custom Battle Result Script Vide
nisamerica wrote:
Mungkin lebih baik kalo mo sharing kasih link langsung ke webnya dia aja, di sini cuma nampilin SS dan penjelasan :D

Boleh kan kalo gitu doang? :D
nah kalo gitu gak ape ape :)
sebaiknya seperti itu saja :)

Enjoy 8)
Custom Battle Result Script Empty
PostRe: Custom Battle Result Script
#8
Sponsored content 




Custom Battle Result Script Vide
 

Custom Battle Result Script

Topik sebelumnya Topik selanjutnya Kembali Ke Atas 
Halaman 1 dari 1

Permissions in this forum:Anda tidak dapat menjawab topik
RPGMakerID :: Engines :: RMXP-