RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
I need some help...

0 Members and 1 Guest are viewing this topic.

**
Rep: +0/-0Level 71
RMRK Junior
Hi there,

I'm new to the RPG Maker scene. I'm using Tankentai SBS and I would like to change the HUD of the battlescreen. I've been trying to find resources for the game that I'm making and I came across this HUD and would like to find. I've been looking everywhere and I cant seem to find it.

Any help would be appreaciated, thanks.

And hopefully its translated in English if possible.



***
Rep:
Level 74
I'm baaack!
I believe the script has been edited to reposition the attack bar and some custom graphics

**
Rep: +0/-0Level 71
RMRK Junior
It is indeed Star's script. Thanks for the help. I couldn't find the actual copy of the actual hp and mp bars so I did some Photoshop to get it as close to it as possible. Thank god there is plenty of screenshots on the web to help me make it all.

I have a slight problem that I can't seem to find how to fix. Whenever a battle starts, the HUD has an opacity on it until the first ATB bar gets filled up. I can't seem to find the setting in the script. I was wondering if you guys can help me out.

Here is what I'm talking about:



Here is the script. I edited it to fit the new bars.

Code: [Select]
#==============================================================================
# ?~…RGSS2
# STR33g1_BattleStatus 0.5 08/03/20
#==============================================================================
# ?Features
# Different HP/MP Gauge Flavor
# "Rolling" Numbers
# State Icon Cycle
#==============================================================================
# ?Materials
# This script requires several image skins.
# Skin images are placed in the .Graphics\System folder:
# Main Skin
# HP/MP Back Gauge Skin
# - No size limit.
# HP/MP Gauge
# - Normally two gauges
# - Width = Unlimited
# - Height = Gauge Height(Optional) * 2
# Numbers
# - 0123456789 is the order of number arrays
# - Width = One Frame Width(Any Size) * 10
# - Height = Unlimited
# State Skin
# State Icon Main Skin
# Main skin is separate.
# - No size limit.
#==============================================================================
# ?–? Window_BattleStatus
#==============================================================================

class Window_BattleStatus < Window_Selectable
# Skin File name
BTSKIN_00 = "atb_Btskin_main" # Main Skin
BTSKIN_01 = "atb_Btskin_hp" # HP(Gauge)
BTSKIN_02 = "atb_Btskin_mp" # MP(Gauge)
BTSKIN_04 = "Btskin_n00" # HP(Numbers)
BTSKIN_05 = "Btskin_n00" # MP(Numbers)
BTSKIN_03 = "atb_Btskin_state" # State
# Skin coordinates[ x, y]
BTSKIN_B_XY = [ 0, 0] # Standard Coordinates
BTSKIN_00XY = [ 0, 0] # Main Skin
BTSKIN_01XY = [138, 13] # HP(Gauge)
BTSKIN_02XY = [228, 13] # MP(Gauge)
BTSKIN_04XY = [148, 2] # HP(Numbers)
BTSKIN_05XY = [232, 2] # MP(Numbers)
BTSKIN_03XY = [104, 0] # State Skin
BTSKIN_06XY = [104, 0] # State
# Various Settings
#<--------------------------(Low values are fast)-------------------------->#
BTSKIN_01GS = 2 # HP Gauge Speed (Low values are fast)
BTSKIN_02GS = 4 # 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 = 2 # State Icon Scroll Speed
# (Values close to 1 are fast)
# ?f??f^?f??‚??f†?f??‚??‚???™
def set_xy
@x = []
@y = []
for i in 0...$game_party.members.size
x = 0
y = (i * 24)
@x[i] = x + 16 #+ STRRGSS2::ST_SX
@y[i] = y + 16 #+ STRRGSS2::ST_SY
end
end
# Set š?‡?‰€?“?“ to
@@f = false


#--------------------------------------------------------------------------
# ?~… ?‚??‚??f??‚??‚?
#--------------------------------------------------------------------------
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 = 0
self.contents.dispose
self.create_contents
self.back_opacity = 0
self.opacity = 0
#@column_max = $game_party.actors.size
@viewport = Viewport.new(0, 416-128, 416, 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
#--------------------------------------------------------------------------
# ?—? ?f??f•?f??ff?‚??f???—
#--------------------------------------------------------------------------
def refresh
# :-)
end
#--------------------------------------------------------------------------
# ?—? ?‚??f†?f??f^???”?
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ?—? ??‰??o?^?
#--------------------------------------------------------------------------
def name_bitmap(actor)
bitmap = Bitmap.new(100, 24)
bitmap.font.size = 16
bitmap.draw_text_f(0, 0, 100, 24, actor.name)
return bitmap
end
#--------------------------------------------------------------------------
# ?—? ?‚??f†?f??f^?•??–?—
#--------------------------------------------------------------------------
def state_size(actor)
return actor.states.size
end
#--------------------------------------------------------------------------
# ?—? ?‚??‚??f†?f??o?^?
#--------------------------------------------------------------------------
def draw_item(index)
return unless @f
actor = $game_party.members[index]
#
@s_sprite[index] = []
s = @s_sprite[index]
# ?f??‚??f??‚??‚??f?
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])
# ?‚??f†?f??f^
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)
# ??o???‚??f†?f??‚??‚??
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 = 0
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
# ?f…??~?†?
@s_lv[index] = actor.level
@s_party[index] = [actor.name, actor.hp, actor.maxhp,
actor.mp, actor.maxmp, actor.states]
#
end
#--------------------------------------------------------------------------
# ?—? ?‚??f–?‚??‚??‚??f^?–‹?”?
#--------------------------------------------------------------------------
def dispose
super
return unless @f
for i in 0...@s_sprite.size
for l in [0,1,2,3,4,8,9,15]
@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
#--------------------------------------------------------------------------
# ?—? ?f•?f??f??f??›??–?
#--------------------------------------------------------------------------
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
# ??€??~Ž??‚??ff?f—
@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)
# ?‚??f†?f??f^?›??–?
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
#--------------------------------------------------------------------------
# ?—? ?f•?f??f??f??›??–? (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
#--------------------------------------------------------------------------
# ?—? ?f•?f??f??f??›??–? (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
#--------------------------------------------------------------------------
# ?—? ?‚??f–?‚??‚??‚??f^?^??oY?O–
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ?—? ?f•?f??f??f??›??–?
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ?—? ?‚??f–?‚??‚??‚??f^?^??oY?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
# ?‚??f—?f??‚??f^?o?^?
for i in 0...n
@sprite[i] = Sprite_strNumber.new(v, gra)
end
update
end
#--------------------------------------------------------------------------
# ?—? ?f•?f??f??f??›??–?
#--------------------------------------------------------------------------
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
# ?‚??f—?f??‚??f^?›??–?
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
#--------------------------------------------------------------------------
# ?—? ?‚??f–?‚??‚??‚??f^?–‹?”?
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# Draw shadow text
#--------------------------------------------------------------------------
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
self.font.name = "Verdana"
self.font.size = 20
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

And this does have something to do with the script, since I backed up my project before messing up with the script. Its fine in the original game.
« Last Edit: May 08, 2011, 09:39:55 PM by Demiak »

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
Try finding these lines in the initialize method:
Code: [Select]
self.back_opacity = 0
self.opacity = 0

Change it to:

Code: [Select]
self.back_opacity = 255
self.opacity = 255

No guarantees as I don't know how the script deals with the opacity of other sprites or whether it alters it after initialization and I don't have time to test it right now. Still, I think it is worth a try.

**
Rep: +0/-0Level 71
RMRK Junior
I figured it out...yay. It was close to what you thought modern algebra, but it was the @opacity = 0 a few lines before. The ones you thought set the opacity for the back panel of the actual Tankentai ABS.

I stumbled across another problem.  :P
I noticed that the HP numbers are spaced a little too wide if someone is using a big HP pool, like 1000 plus so I'm trying to find the setting to make the numbers appear closer together. Don't know if you guys see how far the numbers are from that screen, but they are definitely more spaced out that in the screen that I posted in my 1st post.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
Well, again just a guess, but find this:

Code: [Select]

@sprite = []
# ?—?–“??š
b = Cache.system(gra)
@s = b.width / 10 - s

Try changing the value of @s as I think that's the variable he uses for spacing.

**
Rep: +0/-0Level 71
RMRK Junior
Thanks for all the help guys. I finally managed to get the HUD I wanted. Thanks a bunch again.