collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: LevelUp Window  (Gelesen 10056 mal)

Offline dauerzocer

  • RTP-Mapper
  • *
  • Beiträge: 23
LevelUp Window
« am: Mai 17, 2008, 00:12:12 »
1. Beschreibung
Das Script erschafft nach dem Kampf ein Fenster, in dem Erfahrungsbalken hochlaufen.
Dieselben Erfahrungsbalken sind auch im Status Menu zu finden.
Bei einem LevelUp wir ein Fenster mit den Veränderungen der Werte eingefügt.
Die Farbe der Erfahrungsbalken kann selbst bestimmt werden.
Man kann die Levelbalken nach dem Kampf in einem Options Menu ein- und ausstellen.
Ausserhalb kann der selbe Vorgang wie nach dem Kampf mit dem Script-Befehl:
$scene.display_level_up(erfahrung) aufgerufen werden. Wobei erfahrung die
Erfahrungsmenge angibt. Die Erfahrung muss nicht über ein weiteres Event verteilt werden.
2.Screenshots


3.Script
Spoiler for Hiden:
#
#LevelUp Script
#Author: dauerzocer
#Version: 2.5
#Datum: 14.6.2008
#-------------------------------------------------------------------------------------------------------------------------------
#Beschreibung:
# - Das Script erschafft nach dem Kampf ein Fenster, in dem Erfahrungsbalken hochlaufen.
# - Dieselben Erfahrungsbalken sind auch im Status Menu zu finden.
# - Bei einem LevelUp wir ein Fenster mit den Veränderungen der Werte eingefügt.
# - Die Farbe der Erfahrungsbalken kann selbst bestimmt werden.
# - Man kann die Levelbalken nach dem Kampf in einem Options Menu ein- und ausstellen.
# - Ausserhalb kann der selbe Vorgang wie nach dem Kampf mit dem Script-Befehl:
#   $scene.display_level_up(erfahrung) aufgerufen werden. Wobei erfahrung die
#   Erfahrungsmenge angibt. Die Erfahrung muss nicht über ein weiteres Event verteilt werden.
#--------------------------------------------------------------------------------------------------------------------------------
module LevelUp
  Fensterx = 544 #Breite des Spielfensters
  Fenstery = 416 #Höhe des Spielfensters
  Message =124 #Höhe des im Kampf verwendeten Message Windows
  Erfahrung = "Erf" #Abkürzung für Erfahrung
  Erfahrungs_Farbe = 3 #Farbe für den linken Teil des Erfahrungs Balkens
  Erfahrungs_Farbe2 = 4 #Farbe für den rechten Teil des Erfahrungs Balkens
  Einstellungen = "Optionen" #Vokabular für Einstellungen im Menu
end
#--------------------------------------------------------------------------------------------------------------------------------
class Scene_Map < Scene_Base
 
  def update_erf(main = false)
    Graphics.update unless main     # ????????
    Input.update unless main        # ???????
    $game_system.update             # ???????
    @spriteset.update               # ???????????
    @message_window.update          # ?????????????
  end
 
  def display_level_up(erfahrung)
  @message_window = Window_BattleMessage.new
   exp = erfahrung
   if $erfahrungs_balken_verteilung == false
     for actor in $game_party.existing_members
      last_level = actor.level
      last_skills = actor.skills
      actor.gain_exp(exp, true)
      if (last_level != actor.level) then
      $lvlup = Window_LevelUp.new(0,0,LevelUp::Fensterx,LevelUp::Fenstery-LevelUp::Message)
      $lvlup.anzeigen(actor, last_level)
      Input.update
      until(Input.trigger?(Input::C))
        update_erf
      end
      $lvlup.dispose
      $lvlup = nil
    end
    end
   else
   verteilen = 0
   @message_window.visible = false
   $erfahrung = Window_Erfahrung.new(0,0,LevelUp::Fensterx,LevelUp::Fenstery)
   $erfahrung.anzeigen
   while verteilen < exp
     Input.update
     if Input.trigger?(Input::cool.gif\" style=\"vertical-align:middle\" emoid=\"B)\" border=\"0\" alt=\"cool.gif\" /] then
       for actor in $game_party.existing_members
       last_level = actor.level
       last_skills = actor.skills
       actor.gain_exp(exp - verteilen -1, true)
       if (last_level != actor.level) then
         @message_window.visible = true
         $lvlup = Window_LevelUp.new(0,0,LevelUp::Fensterx,LevelUp::Fenstery-LevelUp::Message)
         $lvlup.anzeigen(actor, last_level)
         Input.update
         until(Input.trigger?(Input::C))
           update_erf
         end
         $lvlup.dispose
         $lvlup = nil
         @message_window.visible = false
     end
   end
   verteilen = exp
     end       
    for actor in $game_party.existing_members
       last_level = actor.level
       last_skills = actor.skills
       actor.gain_exp(1, true)
       if (last_level != actor.level) then
         @message_window.visible = true
         $lvlup = Window_LevelUp.new(0,0,LevelUp::Fensterx,LevelUp::Fenstery-LevelUp::Message)
         $lvlup.anzeigen(actor, last_level)
         Input.update
         until(Input.trigger?(Input::C))
           update_erf
         end
         $lvlup.dispose
         $lvlup = nil
         @message_window.visible = false
     end
   end
   verteilen += 1 
   Sound.play_cursor
   $erfahrung.update   
   end
    $erfahrung.dispose
    $erfahrung = nil
  end
end
 
end 
#--------------------------------------------------------------------------------------------------------------------------------
class Scene_Battle < Scene_Base
 
 def display_level_up   
   exp = $game_troop.exp_total
   if $erfahrungs_balken_verteilung == false
     for actor in $game_party.existing_members
      last_level = actor.level
      last_skills = actor.skills
      actor.gain_exp(exp, true)
      if (last_level != actor.level) then
      $lvlup = Window_LevelUp.new(0,0,LevelUp::Fensterx,LevelUp::Fenstery-LevelUp::Message)
      $lvlup.anzeigen(actor, last_level)
      Input.update
      until(Input.trigger?(Input::C))
        update_basic
      end
      $lvlup.dispose
      $lvlup = nil
    end
    end
   else
   verteilen = 0
   @message_window.visible = false
   $erfahrung = Window_Erfahrung.new(0,0,LevelUp::Fensterx,LevelUp::Fenstery)
   $erfahrung.anzeigen
   while verteilen < exp
     Input.update
     if Input.trigger?(Input::cool.gif\" style=\"vertical-align:middle\" emoid=\"B)\" border=\"0\" alt=\"cool.gif\" /] then
       for actor in $game_party.existing_members
       last_level = actor.level
       last_skills = actor.skills
       actor.gain_exp(exp - verteilen -1, true)
       if (last_level != actor.level) then
         @message_window.visible = true
         $lvlup = Window_LevelUp.new(0,0,LevelUp::Fensterx,LevelUp::Fenstery-LevelUp::Message)
         $lvlup.anzeigen(actor, last_level)
         Input.update
         until(Input.trigger?(Input::C))
           update_basic
         end
         $lvlup.dispose
         $lvlup = nil
         @message_window.visible = false
     end
   end
   verteilen = exp
     end       
    for actor in $game_party.existing_members
       last_level = actor.level
       last_skills = actor.skills
       actor.gain_exp(1, true)
       if (last_level != actor.level) then
         @message_window.visible = true
         $lvlup = Window_LevelUp.new(0,0,LevelUp::Fensterx,LevelUp::Fenstery-LevelUp::Message)
         $lvlup.anzeigen(actor, last_level)
         Input.update
         until(Input.trigger?(Input::C))
           update_basic
         end
         $lvlup.dispose
         $lvlup = nil
         @message_window.visible = false
     end
   end
   verteilen += 1 
   Sound.play_cursor
   $erfahrung.update   
   end
    $erfahrung.dispose
    $erfahrung = nil
  end
   wait_for_message
  end
 
end 
#--------------------------------------------------------------------------------------------------------------------------------
class Scene_Menu < Scene_Base
 
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    s7 = LevelUp::Einstellungen
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s7, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # ??????? 0 ????
      @command_window.draw_item(0, false)     # ????????
      @command_window.draw_item(1, false)     # ???????
      @command_window.draw_item(2, false)     # ??????
      @command_window.draw_item(3, false)     # ?????????
    end
    if $game_system.save_disabled             # ????????
      @command_window.draw_item(4, false)     # ???????
    end
  end
 
    def update_command_selection
    if Input.trigger?(Input::cool.gif\" style=\"vertical-align:middle\" emoid=\"B)\" border=\"0\" alt=\"cool.gif\" /]
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # ????
        $scene = Scene_Item.new
      when 1,2,3  # ????????????
        start_actor_selection
      when 4      # ???
        $scene = Scene_File.new(true, false, false)
      when 5
        $scene = Scene_Optionen.new
      when 6      # ?????
        $scene = Scene_End.new
      end
    end
  end
 
end
#--------------------------------------------------------------------------------------------------------------------------------
class Scene_Optionen_Erfahrung < Scene_Base

  def start
    super
    create_menu_background
    check_levelbalken
    create_command_window
    @help_window = Window_Help.new
    @help_window.set_text("Levelbalken")
  end
 
  def check_levelbalken
    if $erfahrungs_balken_verteilung == false
    @check = false
  else
    @check = true
  end
   
  def post_start
    super
    open_command_window
  end

  def pre_terminate
    super
    @help_window.dispose
    close_command_window
  end

  def terminate
    super
    dispose_command_window
    dispose_menu_background
  end

  def return_scene
    $scene = Scene_Optionen.new
  end

  def update
    super
    update_menu_background
    @command_window.update
    if Input.trigger?(Input::cool.gif\" style=\"vertical-align:middle\" emoid=\"B)\" border=\"0\" alt=\"cool.gif\" /]
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0 
        if @check == false
        $erfahrungs_balken_verteilung = true
        Sound.play_decision
        return_scene
      else
        Sound.play_buzzer
      end
      when 1 
        if @check == true
        $erfahrungs_balken_verteilung = false
        Sound.play_decision
       $scene = Scene_Optionen.new
     else
       Sound.play_buzzer
       end
       end
      end
    end
  end
 
  def update_menu_background
    super
    @menuback_sprite.tone.set(0, 0, 0, 128)
  end

  def create_command_window
    s1 = "An"
    s2 = "Aus"
    @command_window = Window_Command.new(172, [s1, s2])
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = (416 - @command_window.height) / 2
      if @check == false
      @command_window.draw_item(1, false)
    elsif @check == true
       @command_window.draw_item(0, false)
    end
    @command_window.openness = 0
  end

  def dispose_command_window
    @command_window.dispose
  end

  def open_command_window
    @command_window.open
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 255
  end

  def close_command_window
    @command_window.close
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 0
  end

end
#--------------------------------------------------------------------------------------------------------------------------------
class Scene_End < Scene_Base
 
  def return_scene
    $scene = Scene_Menu.new(6)
  end
 
end
#--------------------------------------------------------------------------------------------------------------------------------
class Scene_Optionen < Scene_Base

  def start
    super
    create_menu_background
    create_command_window
    @help_window = Window_Help.new
    @command_window.help_window = @help_window
    @help_window.set_text("Levelbalken nach dem Kampf ein oder ausstellen.")
  end
 
  def post_start
    super
    open_command_window
  end

  def pre_terminate
    super
    close_command_window
  end

  def terminate
    super
    @help_window.dispose
    dispose_command_window
    dispose_menu_background
  end

  def return_scene
    $scene = Scene_Menu.new(5)
  end

  def update
    super
    @help_window.update
    update_menu_background
    @command_window.update
    if Input.trigger?(Input::cool.gif\" style=\"vertical-align:middle\" emoid=\"B)\" border=\"0\" alt=\"cool.gif\" /]
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0 
        Sound.play_decision
        $scene = Scene_Optionen_Erfahrung.new
      end
    end
  end
 
  def update_menu_background
    super
    @menuback_sprite.tone.set(0, 0, 0, 128)
  end

  def create_command_window
    s1 = "Erf Verteilung"
    @command_window = Window_Command.new(250, [s1])
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = (416 - @command_window.height) / 2
    @command_window.openness = 0
  end

  def dispose_command_window
    @command_window.dispose
  end

  def open_command_window
    @command_window.open
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 255
  end

  def close_command_window
    @command_window.close
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 0
  end

end

class Scene_End < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end
#--------------------------------------------------------------------------------------------------------------------------------
class Window_LevelUp < Window_Base
 
  def anzeigen(charakter, altes_level)
    neue_level = charakter.level-altes_level
    draw_actor_face(charakter, 25, 25, size = 96)
    draw_actor_name(charakter, 150, 25)
    draw_actor_class(charakter, 250, 25)
    draw_actor_level(charakter, 350,75)
    draw_actor_level_edit(charakter, 150,75,neue_level)
    draw_differenz(300,75,charakter.level, altes_level)
    draw_actor_hp(charakter, 350,100 , width = 120)
    draw_actor_hp_edit(charakter, 150, 100, altes_level, width = 120)
    draw_differenz(300,100, charakter.maxhp_level(charakter.level), charakter.maxhp_level(altes_level))
    draw_actor_mp_edit(charakter, 150, 125, altes_level, width = 120)
    draw_actor_mp(charakter, 350,125, width = 120)
    draw_differenz(300,125, charakter.maxmp_level(charakter.level), charakter.maxmp_level(altes_level))
    draw_actor_atk_edit(charakter, 150, 150, altes_level)
    draw_actor_atk_edit(charakter, 350, 150, charakter.level)
    draw_differenz(300,150, charakter.atk_level(charakter.level), charakter.atk_level(altes_level))
    draw_actor_def_edit(charakter, 150, 175, altes_level)
    draw_actor_def_edit(charakter, 350, 175, charakter.level)
    draw_differenz(300,175, charakter.def_level(charakter.level), charakter.def_level(altes_level))
    draw_actor_spi_edit(charakter, 150 , 200 , altes_level)
    draw_actor_spi_edit(charakter, 350 , 200 , charakter.level)
    draw_differenz(300,200, charakter.spi_level(charakter.level), charakter.spi_level(altes_level))
    draw_actor_agi_edit(charakter, 150 , 225 , altes_level)
    draw_actor_agi_edit(charakter, 350 , 225 , charakter.level)
    draw_differenz(300,225, charakter.agi_level(charakter.level), charakter.agi_level(altes_level))
    draw_pfeile
  end
 
  def draw_pfeile
    draw_pfeil(300,235)
    draw_pfeil(300,85)
    draw_pfeil(300,110)
    draw_pfeil(300,135)
    draw_pfeil(300,160)
    draw_pfeil(300,185)
    draw_pfeil(300,210)
  end
   
  def draw_differenz(x, y, wert1, wert2)
    differenz = wert1-wert2
    meine_farbe = Color.new(0,255,255)
    self.contents.font.color = meine_farbe
    self.contents.draw_text(x, y, 32, WLH, "+")
    self.contents.draw_text(x+15,y, 32, WLH, differenz)
  end
 
end
#--------------------------------------------------------------------------------------------------------------------------------
class Window_Erfahrung < Window_Base
 
  def anzeigen
     @gruppen_größe = $game_party.existing_members.size
    durchgang = 0
    loop do
     charakter_anzeigen(durchgang)
     durchgang +=1
     break if durchgang >= @gruppen_größe
    end   
  end
 
  def charakter_anzeigen(char_nummer)
    if LevelUp::Fenstery/@gruppen_größe > 80 then
    draw_actor_face($game_party.existing_members[char_nummer], 25, char_nummer*(LevelUp::Fenstery/@gruppen_größe-5), size = 80)
    end
    draw_actor_name($game_party.existing_members[char_nummer], 150, char_nummer*(LevelUp::Fenstery/@gruppen_größe))
    draw_actor_class($game_party.existing_members[char_nummer], 150, (char_nummer*(LevelUp::Fenstery/@gruppen_größe))+25)
    draw_actor_level($game_party.existing_members[char_nummer], 150, (char_nummer*(LevelUp::Fenstery/@gruppen_größe))+50)
    draw_actor_erfahrung($game_party.existing_members[char_nummer], 300, (char_nummer*(LevelUp::Fenstery/@gruppen_größe))+25)
  end     
 
  def update
    super
    erneuern
  end
 
  def erneuern
    Graphics.update
    self.contents.clear
    anzeigen
  end
 
end
#--------------------------------------------------------------------------------------------------------------------------------
class Window_Base
 
  def draw_actor_erfahrung(actor, x , y, width =120)
    draw_actor_erfahrung_gauge(actor, x, y, width = 120)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, LevelUp::Erfahrung)
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.aktuelle_erfahrung, 2)
    else
      self.contents.draw_text(xr - 90, y, 40, WLH,actor. aktuelle_erfahrung, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.erfahrung_für_level, 2)
    end
  end
 
  def draw_actor_erfahrung_gauge(actor, x, y, width = 120)
    gw = width * actor.aktuelle_erfahrung / actor.erfahrung_für_level
    gc1 = text_color(LevelUp::Erfahrungs_Farbe)
    gc2 = text_color(LevelUp::Erfahrungs_Farbe2)
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
   
   def draw_actor_level_edit(actor, x, y, z)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::level_a)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 32, y, 24, WLH, actor.level - z, 2)
  end
 
  def draw_pfeil(x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, "-->") 
  end
   
  def draw_actor_hp_edit(actor, x, y, level, width = 120)
    draw_actor_hp_gauge_edit(actor, x, y, level, width = 120)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
    self.contents.font.color = hp_color(actor)
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.hp, 2)
    else
      self.contents.draw_text(xr - 90, y, 40, WLH, actor.hp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxhp_level(level), 2)
    end
  end
   
  def draw_actor_hp_gauge_edit(actor, x, y, level, width = 120)
    gw = width * actor.hp / actor.maxhp_level(level)
    gc1 = hp_gauge_color1
    gc2 = hp_gauge_color2
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
     
    def draw_actor_mp_edit(actor, x, y, level, width = 120)
    draw_actor_mp_gauge_edit(actor, x, y, level, width)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, Vocab::mp_a)
    self.contents.font.color = mp_color(actor)
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.mp, 2)
    else
      self.contents.draw_text(xr - 90, y, 40, WLH, actor.mp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxmp_level(level), 2)
    end
  end

  def draw_actor_mp_gauge_edit(actor, x, y, level, width = 120)
    gw = width * actor.mp / [actor.maxmp_level(level), 1].max
    gc1 = mp_gauge_color1
    gc2 = mp_gauge_color2
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
 
  def draw_actor_atk_edit(actor, x , y , level)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::atk)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 64, y, 24, WLH, actor.atk_level(level), 2)
  end
 
  def draw_actor_def_edit(actor, x , y , level)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::def)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 64, y, 24, WLH, actor.def_level(level), 2)
  end
 
  def draw_actor_spi_edit(actor, x , y , level)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::spi)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 64, y, 24, WLH, actor.spi_level(level), 2)
  end
 
  def draw_actor_agi_edit(actor, x , y , level)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::agi)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 64, y, 24, WLH, actor.agi_level(level), 2)
  end
 
end
#--------------------------------------------------------------------------------------------------------------------------------
class Window_Status < Window_Base
 
   def draw_basic_info(x, y)
    draw_actor_level(@actor, x, y + WLH * 0)
    draw_actor_state(@actor, x, y + WLH * 1)
    draw_actor_hp(@actor, x, y + WLH * 2)
    draw_actor_mp(@actor, x, y + WLH * 3)
    draw_actor_erfahrung(@actor, x , y + WLH * 4)
  end
 
end
#--------------------------------------------------------------------------------------------------------------------------------
class Game_Actor
 
  def maxhp_level(level)
    return actor.parameters[0, level]
  end
 
  def maxmp_level(level)
    return actor.parameters[1,level]
  end
 
  def atk_level(level)
    n = actor.parameters[2, level]
    for item in equips.compact do n += item.atk end
    return n
  end
 
  def def_level(level)
    n = actor.parameters[3, level]
    for item in equips.compact do n += item.def end
    return n
  end
 
  def spi_level(level)
    n = actor.parameters[4, level]
    for item in equips.compact do n += item.spi end
    return n
  end
 
  def agi_level(level)
    n = actor.parameters[5, level]
    for item in equips.compact do n += item.agi end
    return n
  end
 
  def erfahrung_für_level
    return @exp_list[@level+1] - @exp_list[@level]
  end
 
  def aktuelle_erfahrung
    return exp_s - @exp_list[@level]
  end
       
end
4. Demo
Demo Download
« Letzte Änderung: August 18, 2008, 22:23:56 von dauerzocer »

LevelUp Window

CornFlower

  • Gast
LevelUp Window
« Antwort #1 am: Mai 17, 2008, 00:50:28 »
hört sich nicht schlecht an, bin aber jetzt zu müde, werds mir mal morgen anschaun^^

CornFlower

LevelUp Window

ERZENGEL

  • Gast
LevelUp Window
« Antwort #2 am: Mai 17, 2008, 01:02:36 »
Wow.. guckt nett aus und jetzt fällt mir glattein, dass sowas beim VX gefehlt hat. Schöne Arbeit (^^) bis auf die beiden globalen Variablen, die man durch Konstanten außerhalb der Klasse Window_LevelUp platzieren sollte. Aber beides is unnötig, da wenn man beide Werte verkleinert nicht mehr alles angezeigt wird ;)

LevelUp Window

woratana

  • Gast
LevelUp Window
« Antwort #3 am: Mai 17, 2008, 05:21:31 »
Sounds good. :)
Very useful script, definitely.

Anyway, can you provide some screenshot please? :)

LevelUp Window

woratana

  • Gast
LevelUp Window
« Antwort #4 am: Mai 17, 2008, 05:22:03 »
Sounds good. :)
Very useful script, definitely.

Anyway, can you provide some screenshot please? :)

LevelUp Window

Offline Agito Ace

  • Database-Verunstalter
  • **
  • Beiträge: 129
  • © AGITO RPG Game Developement 2005-2012
LevelUp Window
« Antwort #5 am: Mai 17, 2008, 10:24:21 »
nicht schlecht^^ könnte nützlich sein, aufjedenfall erst mal Danke^^.

LevelUp Window

Offline eugene222

  • König der Lügner
  • VX-Meister
  • ****
  • Beiträge: 675
LevelUp Window
« Antwort #6 am: Mai 17, 2008, 11:44:44 »
Jo, ist echt gut, werds nachher ausprobieren

LevelUp Window

Dainreth

  • Gast
LevelUp Window
« Antwort #7 am: Mai 17, 2008, 11:48:10 »
Werden diese Statusfenster dann im Standard-Kampfsystem eingeblendet oder wie kann man sich das vorstellen? Wäre schön, wenn du noch 'nen kleinen Screenshot zeigst, klingt aber interessant!

LevelUp Window

$@$uk€

  • Gast
LevelUp Window
« Antwort #8 am: Mai 17, 2008, 14:14:20 »
Zitat von: Dainreth
Werden diese Statusfenster dann im Standard-Kampfsystem eingeblendet oder wie kann man sich das vorstellen? Wäre schön, wenn du noch 'nen kleinen Screenshot zeigst, klingt aber interessant!

Genau die selbe Frage hab ich auch^^
Also, könntest du oder vllt jemand anderes hier mal Screenshots reinsetzen?

edit:
Ok habs ausprobiert, bin aba nich so begeistert davon:
1. Nach jedem Kampf kann man dieses Fenster kurz sehen
2. Beim lvl up bleibt das fenster länger da, bis man Enter drückt,
ABER:
Nur von einem Helden, bei mir war das der 2. Also der 1. wurde gar nicht erwähnt da.
« Letzte Änderung: Mai 17, 2008, 14:22:38 von $@$uk€ »

LevelUp Window

Offline dauerzocer

  • RTP-Mapper
  • *
  • Beiträge: 23
LevelUp Window
« Antwort #9 am: Mai 17, 2008, 14:36:29 »
Zitat von: $@$uk€
Werden diese Statusfenster dann im Standard-Kampfsystem eingeblendet oder wie kann man sich das vorstellen? Wäre schön, wenn du noch 'nen kleinen Screenshot zeigst, klingt aber interessant!

Genau die selbe Frage hab ich auch^^
Also, könntest du oder vllt jemand anderes hier mal Screenshots reinsetzen?

edit:
Ok habs ausprobiert, bin aba nich so begeistert davon:
1. Nach jedem Kampf kann man dieses Fenster kurz sehen
2. Beim lvl up bleibt das fenster länger da, bis man Enter drückt,
ABER:
Nur von einem Helden, bei mir war das der 2. Also der 1. wurde gar nicht erwähnt da.

Kann es sein, dass du Veränderungen an deinem Kampfsystem vorgenommen hast?

LevelUp Window

$@$uk€

  • Gast
LevelUp Window
« Antwort #10 am: Mai 17, 2008, 14:43:21 »
nein hab ich nich, ich hab das standard kampfsystem und hab nix dran manipuliert

LevelUp Window

Offline Dib

  • Pixeler
  • Mr. MACK-Tile
  • ***
  • Beiträge: 292
    • invaderdib.blog.de
LevelUp Window
« Antwort #11 am: Mai 17, 2008, 15:30:04 »
jop das ist bei mir auch ich hab in mein spiel zwei charaktere und bei mir zeigt er nur den zweiten charakter

LevelUp Window

Offline dauerzocer

  • RTP-Mapper
  • *
  • Beiträge: 23
LevelUp Window
« Antwort #12 am: Mai 18, 2008, 12:06:25 »
So ich hab das Script nochmal überarbeitet nach den Kampf erscheint es nur noch, wenn es einen LevelUp gab und bei 2 Charakteren mit LevelUP zeigt es die Fenster nacheinander an.

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']
# Script erstellt ein Fenster mit den Status veränderungen einen Charas bei einem Level Up
class Scene_Battle < Scene_Base
 
  def display_level_up
   
    exp = $game_troop.exp_total
    for actor in $game_party.existing_members
      last_level = actor.level
      last_skills = actor.skills
      actor.gain_exp(exp, true)
      if (last_level != actor.level) then
        lvlup = Window_LevelUp.new(0,0,$fensterx,$fenstery-124) # Das Fenster wir erschaffen
        lvlup.anzeigen(actor, last_level)
        Input.update
        until(Input.trigger?(Input::C))
          update_basic
        end
        lvlup.dispose
    end
   end      
    wait_for_message
  end
 
end

class Window_LevelUp < Window_Base # Einstellungen des Fensters
 
  $fensterx = 544 # Maße des Spiel Fensters
  $fenstery = 416
 
  def anzeigen(charakter, altes_level) # erzeugt Elemente des Fensters
    neue_level = charakter.level-altes_level
    draw_actor_face(charakter, 25, 25, size = 96)
    draw_actor_name(charakter, 150, 25)
    draw_actor_class(charakter, 250, 25)
    draw_actor_level(charakter, 350,75)
    draw_actor_level_edit(charakter, 150,75,neue_level)
    draw_differenz(300,75,charakter.level, altes_level)
    draw_actor_hp(charakter, 350,100 , width = 120)
    draw_actor_hp_edit(charakter, 150, 100, altes_level, width = 120)
    draw_differenz(300,100, charakter.maxhp_level(charakter.level), charakter.maxhp_level(altes_level))
    draw_actor_mp_edit(charakter, 150, 125, altes_level, width = 120)
    draw_actor_mp(charakter, 350,125, width = 120)
    draw_differenz(300,125, charakter.maxmp_level(charakter.level), charakter.maxmp_level(altes_level))
    draw_actor_atk_edit(charakter, 150, 150, altes_level)
    draw_actor_atk_edit(charakter, 350, 150, charakter.level)
    draw_differenz(300,150, charakter.atk_level(charakter.level), charakter.atk_level(altes_level))
    draw_actor_def_edit(charakter, 150, 175, altes_level)
    draw_actor_def_edit(charakter, 350, 175, charakter.level)
    draw_differenz(300,175, charakter.def_level(charakter.level), charakter.def_level(altes_level))
    draw_actor_spi_edit(charakter, 150 , 200 , altes_level)
    draw_actor_spi_edit(charakter, 350 , 200 , charakter.level)
    draw_differenz(300,200, charakter.spi_level(charakter.level), charakter.spi_level(altes_level))
    draw_actor_agi_edit(charakter, 150 , 225 , altes_level)
    draw_actor_agi_edit(charakter, 350 , 225 , charakter.level)
    draw_differenz(300,225, charakter.agi_level(charakter.level), charakter.agi_level(altes_level))
    draw_pfeile
  end
 
  def draw_pfeile #erschafft alle zuweisungd Pfeile
    draw_pfeil(300,235)
    draw_pfeil(300,85)
    draw_pfeil(300,110)
    draw_pfeil(300,135)
    draw_pfeil(300,160)
    draw_pfeil(300,185)
    draw_pfeil(300,210)
  end
   
  def draw_differenz(x, y, wert1, wert2) #erschaft die Anzeige des Atributts zuwachses
    differenz = wert1-wert2
    meine_farbe = Color.new(0,255,255)
    self.contents.font.color = meine_farbe
    self.contents.draw_text(x, y, 32, WLH, "+")
    self.contents.draw_text(x+15,y, 32, WLH, differenz)
  end
 
end

class Window_Base
 
   def draw_actor_level_edit(actor, x, y, z)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::level_a)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 32, y, 24, WLH, actor.level - z, 2)
  end
 
  def draw_pfeil(x, y)
    self.contents.font.color = system_color #ermöglicht es einen Zuweisungspfeil abzubilden
    self.contents.draw_text(x, y, 32, WLH, "-->")  
  end
 
  def draw_actor_hp_edit(actor, x, y, level, width = 120)
    draw_actor_hp_gauge_edit(actor, x, y, level, width = 120)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
    self.contents.font.color = hp_color(actor)
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.hp, 2)
    else
      self.contents.draw_text(xr - 90, y, 40, WLH, actor.hp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxhp_level(level), 2)
    end
  end
   
  def draw_actor_hp_gauge_edit(actor, x, y, level, width = 120)
    gw = width * actor.hp / actor.maxhp_level(level)
    gc1 = hp_gauge_color1
    gc2 = hp_gauge_color2
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
     
    def draw_actor_mp_edit(actor, x, y, level, width = 120)
    draw_actor_mp_gauge_edit(actor, x, y, level, width)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, Vocab::mp_a)
    self.contents.font.color = mp_color(actor)
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.mp, 2)
    else
      self.contents.draw_text(xr - 90, y, 40, WLH, actor.mp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxmp_level(level), 2)
    end
  end

  def draw_actor_mp_gauge_edit(actor, x, y, level, width = 120)
    gw = width * actor.mp / [actor.maxmp_level(level), 1].max
    gc1 = mp_gauge_color1
    gc2 = mp_gauge_color2
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
 
  def draw_actor_atk_edit(actor, x , y , level)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::atk)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 64, y, 24, WLH, actor.atk_level(level), 2)
  end
 
  def draw_actor_def_edit(actor, x , y , level)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::def)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 64, y, 24, WLH, actor.def_level(level), 2)
  end
 
  def draw_actor_spi_edit(actor, x , y , level)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::spi)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 64, y, 24, WLH, actor.spi_level(level), 2)
  end
 
  def draw_actor_agi_edit(actor, x , y , level)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::agi)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 64, y, 24, WLH, actor.agi_level(level), 2)
  end
 
end

class Game_Actor #erweitert Game_Actor um Methoden mit welchem man die Stats eines Actors auf beliebigem Level abrufe nkann
 
  def maxhp_level(level)
    return actor.parameters[0, level]
  end
 
  def maxmp_level(level)
    return actor.parameters[1,level]
  end
 
  def atk_level(level)
    n = actor.parameters[2, level]
    for item in equips.compact do n += item.atk end
    return n
  end
 
  def def_level(level)
    n = actor.parameters[3, level]
    for item in equips.compact do n += item.def end
    return n
  end
 
  def spi_level(level)
    n = actor.parameters[4, level]
    for item in equips.compact do n += item.spi end
    return n
  end
 
  def agi_level(level)
    n = actor.parameters[5, level]
    for item in equips.compact do n += item.agi end
    return n
  end
   
end


LevelUp Window

CornFlower

  • Gast
LevelUp Window
« Antwort #13 am: Mai 18, 2008, 12:16:05 »
funktioniert dass dann auch bei 4 und mehr charkteren? XD

CornFlower

LevelUp Window

Offline Dib

  • Pixeler
  • Mr. MACK-Tile
  • ***
  • Beiträge: 292
    • invaderdib.blog.de
LevelUp Window
« Antwort #14 am: Mai 18, 2008, 12:51:03 »
das ist auf jedenfall besser dank dir

 


 Bild des Monats

rooftop party

Views: 3614
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal