RPGVX.net

  RPG-Maker VX => VX Technik [Frageforum] => Thema gestartet von: Khaelen am April 27, 2011, 00:53:22

Titel: Sidview Bar Texturen ändern
Beitrag von: Khaelen am April 27, 2011, 00:53:22
Servus

Hab da mal wieder n neues Prob...und zwar diesmal mit dem Takentai SBS v3.4d + ATB 1.2c (natürlich für Takentai SBS) + KGC_Overdrive

so das ganze sieht dann so aus:

(http://www.pix6.de/pics/4db747c5d38de.jpg)

nun würd ich jedoch gern die Texturen der Lebens und Manabalken ändern...also nichtnur simpel einfärben sondern komplett ändern...
Hatte mal bei einem älteren Projekt wo ich das SBS 3.3 STRATB+STR11b_XP Battle Style+KGC_Overdrive genutzt habees ungefär so wie es gern hätte.
das ganze sieht so aus:

(http://www.pix6.de/pics/4db7486d459b8.jpg)

nun konnte ich bei dem älteren Projekt auch dei Balkentexturen beliebeig ändern da sie als Grafikdatei beilagen...das problem bei dem alten SBS war allerdings das es sehr oft probleme machte...also nicht stabil lief usw. und das man keine Events für Kämpfe setzen konnte wie z.B. transformation der Gegner usw. ...außerdem war das hndling des scripts sehr kompliziert und belegte einiges an Variablen und Schaltern und Techniken slots....was die Datenbank sehr unübersichtlich und unschön macht.

hat zufällig wer ne Idee wie das ganze machbar wäre? könnte mich auch mit nem anderen KS anfreunden...nur sollte es:
A. ein sideview system sein das Charsetes wie das bei Takentai unterstützt
B. es MUß auf jeden fall mit KGC_overdrive kompatibel sein
C. es sollte ein ATB system verwenden oder es sollte möglich sein eines ein zu fügen

wie immer bin ich für jede Idee und Anregung dankbar

mfg Tom
Titel: Re: Sidview Bar Texturen ändern
Beitrag von: Syforc am Mai 14, 2011, 22:07:24
Hier, bitte schön


#==============================================================================
# ?–? Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Selectable
  # Skin File name
  BTSKIN_00 = "Btskin_main"   # Main Skin
  BTSKIN_01 = "Btskin_hp"     # HP(Gauge)
  BTSKIN_02 = "Btskin_mp"     # MP(Gauge)
  BTSKIN_04 = "Btskin_n00"    # HP(Numbers)
  BTSKIN_05 = "Btskin_n00"    # MP(Numbers)
  BTSKIN_03 = "Btskin_state1"  # State
  # Skin coordinates[  x,  y]
  BTSKIN_B_XY = [-179, -17]     # ?Ÿ??–??™
  BTSKIN_00XY = [-35, 17]     #Main Skin
  BTSKIN_01XY = [-19,  25]     # HP(gauge)
  BTSKIN_02XY = [-15, 41]     # MP(gauge)
  BTSKIN_04XY = [ 24, 16]     # HP(numbers)
  BTSKIN_05XY = [ 28, 35]     # MP(numbers)
  BTSKIN_03XY = [ 23, 31]     # ?‚??ƒ†?ƒ??ƒˆ?‚??‚??ƒ?
  BTSKIN_06XY = [ 66, -8]     # ?‚??ƒ†?ƒ??ƒˆ
  # Various Settings
  BTSKIN_01GS = 4             # HP Gauge Speed (Low values are fast)
  BTSKIN_02GS = 6             # MP Gauge Speed(Low values are fast)
  BTSKIN_04SS = 8             # HP Rolling Numbers Speed(Low values are fast)
  BTSKIN_05SS = 2             # MP Rolling Numbers Speed(Low values are fast)
  BTSKIN_04NS = 4             # HP Maximum Digits
  BTSKIN_05NS = 4             # MP Maximum Digits
  BTSKIN_06WH = [24,24]       # [State Width, Height]
  BTSKIN_06SC = 3             # State Icon Scroll Speed
                              # (Values close to 1 are fast)
  # ?ƒ??ƒˆ?ƒ??‚??ƒ†?ƒ??‚??‚???™
  def set_xy
    @x = []
    @y = []
    for i in 0...$game_party.members.size
      x = (i * 153) + 40
      y = 3
      @x[i] = x + 176#+ STRRGSS2::ST_SX
      @y[i] = y + 16#+ STRRGSS2::ST_SY
    end
  end
  # ??š?‡?‰€?“?“??
  @@f = false
 
 
  #--------------------------------------------------------------------------
  # ?˜… ?‚??‚??ƒ??‚??‚?
  #--------------------------------------------------------------------------
  alias initialize_str33 initialize
  def initialize(f = false)
    initialize_str33
    unless @@f
      @f = @@f = true
    else
      @f = false
    end
    set_xy
    @s_sprite = []
    @s_party = []
    @s_lv = []
    @opacity = 255
    self.contents.dispose
    self.create_contents
    self.back_opacity = 0
    self.opacity = 0
    #@column_max = $game_party.actors.size
    @viewport = Viewport.new(0, 480-128, 640, 128)
    @hpgw = (Cache.system(BTSKIN_01)).width
    @mpgw = (Cache.system(BTSKIN_02)).width
    @viewport.z = self.z - 1
    @state_opacity = []
    @item_max = $game_party.members.size
    return unless @f
    for i in 0...@item_max
      draw_item(i)
    end
    update
  end
  #--------------------------------------------------------------------------
  # ?—? ?ƒ??ƒ•?ƒ??ƒƒ?‚??ƒ???—
  #--------------------------------------------------------------------------
  def refresh
    # :-)
  end
 
   #--------------------------------------------------------------------------
  # ?—? ?‚??ƒ†?ƒ??ƒˆ???”?
  #--------------------------------------------------------------------------
  def draw_actor_state(actor)
    icon = Cache.system("Iconset")
    w = actor.states.size * 24
    w = 24 if w < 1
    bitmap = Bitmap.new(w, BTSKIN_06WH[1])
    count = 0
    for state in actor.states
      icon_index = state.icon_index
      x = 24 * count
      rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
      bitmap.blt(x, 0, icon, rect)
      count += 1
    end
    return bitmap
  end
  #--------------------------------------------------------------------------
  # ?—? ??‰??œ?ˆ?
  #--------------------------------------------------------------------------
   def name_bitmap(actor)
     bitmap = Bitmap.new(100, 24)
     bitmap.font.size = 20
     bitmap.draw_text_f(-4, 40, 100, 24, actor.name)
     return bitmap
   end
  #--------------------------------------------------------------------------
  # ?—? ?‚??ƒ†?ƒ??ƒˆ?•??–?—
  #--------------------------------------------------------------------------
  def state_size(actor)
    return actor.states.size
  end
  #--------------------------------------------------------------------------
  # ?—? ?‚??‚??ƒ†?ƒ??œ?ˆ?
  #--------------------------------------------------------------------------
  def draw_item(index)
    return unless @f
    actor = $game_party.members[index]
    #
    @s_sprite[index] = []
    s = @s_sprite[index]
    # ?ƒ??‚??ƒ??‚??‚??ƒ?
    s[0] = Sprite.new(@viewport)
    s[0].bitmap = Cache.system(BTSKIN_00)
    s[0].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_00XY[0]
    s[0].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_00XY[1]
    s[0].z = 0
    # HP
    s[1] = Sprite.new(@viewport)
    s[1].bitmap = Cache.system(BTSKIN_01)
    s[1].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_01XY[0]
    s[1].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_01XY[1]
    s[1].z = 4
    w = s[1].bitmap.width
    h = s[1].bitmap.height / 2
    s[1].src_rect.set(0, 0, w, h)
    s[2] = Sprite.new(@viewport)
    s[2].bitmap = Cache.system(BTSKIN_01)
    s[2].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_01XY[0]
    s[2].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_01XY[1]
    s[2].z = 3
    s[2].src_rect.set(0, h, w, h)
    s[11] = 96
    s[6] = Sprite_strNumbers.new(@viewport, BTSKIN_04, BTSKIN_04NS)
    s[6].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_04XY[0]
    s[6].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_04XY[1]
    s[6].z = 5
    s[13] = actor.hp
    s[6].update(s[13])
    # MP
    s[3] = Sprite.new(@viewport)
    s[3].bitmap = Cache.system(BTSKIN_02)
    s[3].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_02XY[0]
    s[3].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_02XY[1]
    s[3].z = 4
    w = s[3].bitmap.width
    h = s[3].bitmap.height / 2
    s[3].src_rect.set(0, 0, w, h)
    s[4] = Sprite.new(@viewport)
    s[4].bitmap = Cache.system(BTSKIN_02)
    s[4].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_02XY[0]
    s[4].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_02XY[1]
    s[4].z = 3
    s[4].src_rect.set(0, h, w, h)
    s[12] = 56
    s[7] = Sprite_strNumbers.new(@viewport, BTSKIN_05, BTSKIN_05NS)
    s[7].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_05XY[0]
    s[7].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_05XY[1]
    s[7].z = 5
    s[14] = actor.mp
    s[7].update(s[14])
    # ?‚??ƒ†?ƒ??ƒˆ
    s[5] = Viewport.new(0, 0, BTSKIN_06WH[0], BTSKIN_06WH[1])
    s[5].rect.x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_06XY[0] + @viewport.rect.x
    s[5].rect.y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_06XY[1] + @viewport.rect.y
    s[5].z = @viewport.z + 1
    s[8] = Sprite.new(@viewport)
    s[8].bitmap = Cache.system(BTSKIN_03)
    s[8].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_03XY[0]
    s[8].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_03XY[1]
    s[8].z = -2
    s[9] = Plane.new(s[5])
    s[9].bitmap = draw_actor_state(actor)
    s[10] = state_size(actor)
    # ??œ???‚??ƒ†?ƒ??‚??‚??
    s[11] = ((@hpgw * (actor.hp / (actor.maxhp * 1.0))) + 1).truncate
    if actor.maxmp != 0
      s[12] = ((@mpgw * (actor.mp / (actor.maxmp * 1.0))) + 1).truncate
    else
      s[12] = 0
    end
     s[15] = Sprite.new(@viewport)
     s[15].bitmap = name_bitmap(actor)
     s[15].x = @x[index] + 4
     s[15].y = @y[index] + 2
     s[15].z = 255
    s[1].src_rect.width = s[11]
    s[2].src_rect.width = s[11]
    s[3].src_rect.width = s[12]
    s[4].src_rect.width = s[12]
    s[6].update(s[13])
    s[7].update(s[14])
    # ???–?
    for l in [0,1,2,3,4,8,9,15]
      s[l].opacity = 0
    end
    for l in [6,7]
      s[l].o = 0
    end
    # ?ƒ…??˜?†?(actor, x, y, size = 151)
    @s_lv[index] = actor.level
    @s_party[index] = [actor.name, actor.hp, actor.maxhp,
                       actor.mp, actor.maxmp, actor.states]
    #
     x = index * 61 - 20
     y = 90
     s[16] = Sprite.new
     s[16].bitmap = Cache.system("HUD_" + actor.name)
     s[16].x = @x[index] + 10 - 227
     s[16].y = @y[index] + -4 + 225
     s[16].z = 0
   end
  #--------------------------------------------------------------------------
  # ?—? ?‚??ƒ–?‚??‚??‚??ƒˆ?–‹?”?
  #--------------------------------------------------------------------------
  def dispose       
    super
    return unless @f
    for i in 0...@s_sprite.size
      for l in [0,1,2,3,4,8,9,15,16]
        @s_sprite[i][l].bitmap.dispose
        @s_sprite[i][l].dispose
      end
      for l in [5,6,7]
        @s_sprite[i][l].dispose
      end
    end
    @@f = false
  end
  #--------------------------------------------------------------------------
  # ?—? ?ƒ•?ƒ??ƒ??ƒ??›??–?
  #--------------------------------------------------------------------------
  def update
    super
    return unless @f
    for i in 0...@s_sprite.size
      s = @s_sprite[i]
      a = $game_party.members[i]
      m = @s_party[i]
      @state_opacity[i] = 0 if @state_opacity[i] == nil
      # ??€??˜Ž??‚??ƒƒ?ƒ—
      @state_opacity[i] += 8
      if @opacity < 272
        @opacity += 8
        for l in [0,1,2,3,4,15]
          s[l].opacity = @opacity
        end
        for l in [6,7]
          s[l].o = @opacity
        end
      end
      # ??‰??›??–?
      if a.name != m[0]
        s[15].bitmap.dispose
        s[15].bitmap = name_bitmap(a)
        m[0] = a.name
      end
      # HP/MP?›??–?
      update_hp(s,a,m)
      update_mp(s,a,m)
      # ?‚??ƒ†?ƒ??ƒˆ?›??–?
      if s[10] > BTSKIN_06WH[0] / 24 and (Graphics.frame_count % BTSKIN_06SC) == 0
        s[9].ox += 1
      end
      if s[10] > 0 and @state_opacity[i] < 272
        for l in [8,9]
          s[l].opacity = @state_opacity[i]
        end
      end
      if a.states != m[5]
        m[5] = a.states
        s[9].ox = 0
        s[9].bitmap.dispose
        s[9].bitmap = draw_actor_state($game_party.members[i])
        s[10] = state_size($game_party.members[i])
        @state_opacity[i] = 0
        for l in [8,9]
          s[l].opacity = @state_opacity[i]
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # ?—? ?ƒ•?ƒ??ƒ??ƒ??›??–? (HP)
  #--------------------------------------------------------------------------
  def update_hp(s,a,m)
    # HP??‚‹??‚‹
    if a.hp != s[13]
      c = 0; c = 1 if a.hp < a.maxhp / 4; c = 2 if a.hp == 0
      if s[13] > a.hp
        s[13] -= BTSKIN_04SS
        s[13] = a.hp if s[13] < a.hp
      else
        s[13] += BTSKIN_04SS
        s[13] = a.hp if s[13] > a.hp
      end
      s[6].update(s[13], c)
    end
    # HP
    if a.hp != m[1]
      s[11] = ((@hpgw * (a.hp / (a.maxhp * 1.0))) + 1).truncate
      m[1] = a.hp
    end
    sr = s[1].src_rect
    if sr.width != s[11]
      sp = BTSKIN_01GS
      sr.width = (s[11] + (s[1].src_rect.width * (sp - 1))) / sp
      sr.width = 2 if sr.width <= 1 and a.hp > 0
    end
    sr = s[2].src_rect
    sp = 2
    if sr.width != s[1].src_rect.width and (Graphics.frame_count % sp) == 0
      if sr.width < s[1].src_rect.width
        sr.width += 1
      else
        sr.width -= 1
      end
    end
    sr.width = 2 if sr.width <= 1 and a.hp > 0
  end
  #--------------------------------------------------------------------------
  # ?—? ?ƒ•?ƒ??ƒ??ƒ??›??–? (MP)
  #--------------------------------------------------------------------------
  def update_mp(s,a,m)
    # MP??‚‹??‚‹
    if a.mp != s[14]
      c = 0; c = 1 if a.mp < a.maxmp / 4
      if s[14] > a.mp
        s[14] -= BTSKIN_05SS
        s[14] = a.mp if s[14] < a.mp
      else
        s[14] += BTSKIN_05SS
        s[14] = a.mp if s[14] > a.mp
      end
      s[7].update(s[14], c)
    end
    # MP
    if a.mp != m[3]
      if a.maxmp != 0
        s[12] = ((@mpgw * (a.mp / (a.maxmp * 1.0))) + 1).truncate
      else
        s[12] = 0
      end
      m[3] = a.mp
    end
    sr = s[3].src_rect
    if sr.width != s[12]
      sp = BTSKIN_02GS
      sr.width = (s[12] + (s[3].src_rect.width * (sp - 1))) / sp
      sr.width = 2 if sr.width <= 1 and a.mp > 0
    end
    sr = s[4].src_rect
    sp = 2
    if sr.width != s[3].src_rect.width and (Graphics.frame_count % sp) == 0
      if sr.width < s[3].src_rect.width
        sr.width += 1
      else
        sr.width -= 1
      end
    end
    sr.width = 2 if sr.width <= 1 and a.mp > 0
  end
end

#==============================================================================
# ?–? Sprite_strNumber
#==============================================================================
class Sprite_strNumber < Sprite
  #--------------------------------------------------------------------------
  # ?—? ?‚??ƒ–?‚??‚??‚??ƒˆ?ˆ??œŸ?Œ–
  #--------------------------------------------------------------------------
  def initialize(v, gra, n = 0)
    @n = n
    super(v)
    self.bitmap = Cache.system(gra)
    @w = self.bitmap.width/10
    @h = self.bitmap.height/3
    self.src_rect = Rect.new(@n*@w, 0, @w, @h)
  end
  #--------------------------------------------------------------------------
  # ?—? ?ƒ•?ƒ??ƒ??ƒ??›??–?
  #--------------------------------------------------------------------------
  def update(n = -1, c = 0)
    @n = n
    self.src_rect.x = @n*@w
    self.src_rect.y = c*@h
  end
end
#==============================================================================
# ?–? Sprite_strNumbers
#==============================================================================
class Sprite_strNumbers
  attr_accessor :x
  attr_accessor :y
  attr_accessor :z
  attr_accessor :o
  #--------------------------------------------------------------------------
  # ?—? ?‚??ƒ–?‚??‚??‚??ƒˆ?ˆ??œŸ?Œ–
  #--------------------------------------------------------------------------
  def initialize(v, gra, n = 4, s = 0)
    @n = n # ??•?
    @x = 0
    @y = 0
    @z = 0
    @o = 255
    @sprite = []
    # ?—?–“??š
    b = Cache.system(gra)
    @s = b.width / 10 - s
    # ?‚??ƒ—?ƒ??‚??ƒˆ?œ?ˆ?
    for i in 0...n
      @sprite[i] = Sprite_strNumber.new(v, gra)
    end
    update
  end
  #--------------------------------------------------------------------------
  # ?—? ?ƒ•?ƒ??ƒ??ƒ??›??–?
  #--------------------------------------------------------------------------
  def update(v = 0, c = 0)
    val = []
    # ?•??€??‚’?…??ˆ—???
    for i in 0...@n
      if (10 ** (i)) == 0
        val[i] = v % 10
      else
        val[i] = v / (10 ** (i)) % 10
      end
    end
    val = val.reverse
    # ?…ˆ??0?‚’?–?‚Š?™??
    for i in 0...@n
      if val[i] == 0 and @n != i + 1
        val[i] = -1
      else
        break
      end
    end
    # ?‚??ƒ—?ƒ??‚??ƒˆ?›??–?
    for i in 0...@n
      @sprite[i].update(val[i], c)
      @sprite[i].x = @x + (i * @s)
      @sprite[i].y = @y
      @sprite[i].z = @z
      @sprite[i].opacity = @o
    end
  end
  #--------------------------------------------------------------------------
  # ?—? ??€??˜Ž????”?
  #--------------------------------------------------------------------------
  def o=(val)
    @o = val
    for i in 0...@n
      @sprite[i].opacity = @o
    end
  end
  #--------------------------------------------------------------------------
  # ?—? ?‚??ƒ–?‚??‚??‚??ƒˆ?–‹?”?
  #--------------------------------------------------------------------------
  def dispose
    for i in 0...@sprite.size
      @sprite[i].bitmap.dispose
      @sprite[i].dispose
    end
  end
end


#==============================================================================
# ?–? Bitmap
#==============================================================================
# This script controls the shadow behind actor names for *STR33g1_Battle Status.

class Bitmap
  #--------------------------------------------------------------------------
  # ?—? ?–‡?—??–?‚Š??”?
  #--------------------------------------------------------------------------
  def draw_text_f(x, y, width, height, str, align = 0, color = Color.new(64,32,128))
    shadow = self.font.shadow
    b_color = self.font.color.dup
    font.shadow = true
    font.color = color
    draw_text(x + 1, y, width, height, str, align)
    draw_text(x - 1, y, width, height, str, align)
    draw_text(x, y + 1, width, height, str, align)
    draw_text(x, y - 1, width, height, str, align)
    font.color = b_color
    draw_text(x, y, width, height, str, align)
    font.shadow = shadow
  end
  def draw_text_f_rect(r, str, align = 0, color = Color.new(64,32,128))
    draw_text_f(r.x, r.y, r.width, r.height, str, align = 0, color)
  end
end

Das ist von Starcat, also gehen die Credits an ihn. Aber ich hab mir eben das Paket gesaugt, dass FlipelyFlip hochgeladen hat im Screenshotthread. Danke für das Paket, Flip  :haha:

Viel Spaß damit.

mfG Syforc
Titel: Re: Sidview Bar Texturen ändern
Beitrag von: FlipelyFlip am Mai 15, 2011, 02:34:39
heyey,

wie Syforc schon sagte, ist das mit dem Pakte möglich welches du hier findest: link (http://www.mediafire.com/?45hdpo67q4j84x7)

Der User heißt Star und nicht starcat ;)

Die Grafiken in der Demo sind zum teil von mir selbst.
die Scripts findest du in den .txt (:

lg flip
Titel: Re: Sidview Bar Texturen ändern
Beitrag von: Khaelen am Mai 16, 2011, 00:06:40
Danke...hab allerdings nun ne etwas andere Lösund gefunden ;) Auch wenn ich immer noch nicht lebens und Manabalken ändern kann so konnt ich doch wenigstens den Rest so anpassen wie ich es haben wollte...dennoch danke für die Hilfe ;)

Muß nun nurnoch dieses blöde ATB Menu ingame aufrufen können...aber das bastel ich mir bestimmt iwie auch noch zusammen ;)

mfg Tom
SimplePortal 2.3.3 © 2008-2010, SimplePortal