Any one know of a good window msg script?(believe me i've search, i have a few one's but with either bug or the stuff that i need)
What i need:
*allow to change the background with a certain img like this
[spoiler](https://rmrk.net/proxy.php?request=http%3A%2F%2Fwww.geocities.com%2Fziegfred_03%2Fpng.PNG&hash=74f9b464473e1b497c45988940fa53063e967f73)[/spoiler]
(first box ,the small one, shows the name of the one telling the msg(or i just type the name i want w/c would be good), 2nd box for face set, 3nd box for actual message)
*the txt shown are one at a time but if i press enter the or the ok button the whole msg will be viewed
*has no bug like with the choices "ex: a:yes b:no c:nvm
*has the maximum capacity on which passes the default of the rmxp (the black arrow thing)
*and other stuff you mi8 think is good
I've never seen one that can do the first one, you'd probably need a custom one.
Ccoa's UMS is the most powerful message script:
http://www.hbgames.org/forums/showthread.php?t=9669
Also, please use capitalization, I don't want to go grammar/capitalization nazi on you.
The downloads are down on .org aren't they? That's the only way you can get to the script
QuoteI've never seen one that can do the first one, you'd probably need a custom one. by:falcom
i tot you would say that
QuoteWRONG!
Just to tell you...search around the thread of Ccoa's thread and you will find the mirror Trickster gave...Lemme find for you...here
Ok BYEBYE! Add resolved if no more problems and have a nice day
link doesnt work
i have a script which have almost everything i want but it has a small bug
when i press cancel or the "X" on the keyboard an error will occur
here is the script maybee you can fix it
[spoiler]Script:
Replace your Window_Message with 1 of these 2 scripts!
:thumbdown:
1-Letter-at-a-time Version!
CODE
#==================================
# Window_Message
#-------------------------------
# The message window.
#==================================
class Window_Message < Window_Selectable
attr_accessor :autoclosetime
attr_accessor :op
#-------------------------------
# Object Initialization
#-------------------------------
def initialize
super(80+64, 336, 480, 128)#(80, 304, 480, 160)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = $fontsize
self.contents.font.name = $fontface
self.visible = false
self.z = 9998
@fade_in = false
@fade_out = false
@contents_showing = false
@cursor_width = 0
@autoclosetime = -1
@op = 255
@refreshflag = false
self.active = false
self.index = -1
@update_text = true
self.windowskin = nil
end
#-------------------------------
# Garbage Collection
#-------------------------------
def dispose
terminate_message
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
super
end
#-------------------------------
# Message Termination Process
#-------------------------------
def terminate_message
self.active = false
self.pause = false
self.index = -1
self.contents.clear
@contents_showing = false
if $game_temp.message_proc != nil
$game_temp.message_proc.call
end
$game_temp.message_text = nil
$game_temp.message_proc = nil
$game_temp.choice_start = 99
$game_temp.choice_max = 0
$game_temp.choice_cancel_type = 0
$game_temp.choice_proc = nil
$game_temp.num_input_start = 99
$game_temp.num_input_variable_id = 0
$game_temp.num_input_digits_max = 0
if @gold_window != nil
@gold_window.dispose
@gold_window = nil
end
# ***ccoa***
#if there was a face showing, make it invisible
if $message_showing != nil
@message.dispose
@message = nil
end
if $face_showing != nil
@face.dispose
@face =nil
end
end
#-------------------------------
# Refresh
#-------------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.font.name = "Arial"
self.contents.font.size = 18
self.windowskin = nil
@x = @y = 0
@cursor_width = 0
@autoclosetime = -1
@refreshflag = true
@lineheight = 32
@active = ""
@a = ""
@centerflag = false
@rightflag = false
@bannerflag = false
@update_text = true
@text_skip = false
# ***ccoa***
# face for the message box
@face = Sprite.new
@face.visible = true
@message = Sprite.new
@message.visible = true
if $game_temp.choice_start == 0
@x = 8
end
if $game_temp.message_text != nil
@text = $game_temp.message_text
begin
last_text = @text.clone
@text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
end until @text == last_text
@text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end
@text.gsub!(/\\\\/) { "\000" }
@text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
@text.gsub!(/\\[Gg]/) { "\002" }
@text.gsub!(/\\[Ii]\[([0-9]+)\]/) { "\003[#{$1}]" }
@text.gsub!(/\\[Ff]\[([0-9]+)\]/) { "\004[#{$1}]" }
@text.gsub!(/\\[Aa]\[([0-9]+)\]/) { "\005[#{$1}]" }
@text.gsub!(/\\[Xx]/) { "\006" }
@text.gsub!(/\\[Rr]/) { "\007" }
@text.gsub!(/\\[Dd]/) { "\011" }
@text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\023[#{$1}]" }
@text.gsub!(/\\[Bb]/) { "\017" }
@text.gsub!(/\\[Ww]\[([0-9]+)\]/) { "\014[#{$1}]" }
@text.gsub!(/\\[Mm]\[([0-9]+)\]/) { "\015[#{$1}]" }
@text.gsub!(/\\[Oo]\[([0-9]+)\]/) { "\016[#{$1}]" }
@text.gsub!(/\\[Jj]\[([0-9]+)\]/) { "\013[#{$1}]" }
@text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "\021[#{$1}]" }
@text.gsub!(/\\[Kk]\[([0-9]+)\]/) { "\022[#{$1}]" }
end
def update_text
if @text != nil
while ((c = @text.slice!(/./m)) != nil)
if c == "\000"
c = "\\"
end
if c == "\001"
@text.sub!(/\[([0-9]+)\]/, "")
color = $1.to_i
if color >= 0 and color <= 7
self.contents.font.color = text_color(color)
end
next
end
if c == "\002"
if @gold_window == nil
@gold_window = Window_Gold.new
@gold_window.x = 560 - @gold_window.width
if $game_temp.in_battle
@gold_window.y = 192
else
@gold_window.y = self.y >= 128 ? 32 : 384
end
@gold_window.opacity = self.opacity
@gold_window.back_opacity = self.back_opacity
end
next
end
if c == "\003"
@text.sub!(/\[([0-9]+)\]/, "")
item_sub = $1.to_i
c = $data_items[item_sub].name
l = self.contents.text_size(c).width
draw_item_name($data_items[item_sub], @x, @y * 32 + 1)
@x = @x + l + 24
next
end
if c == "\004"
@text.sub!(/\[([0-9]+)\]/, "")
fontize = $1.to_i
case fontize
when 1
self.contents.font.name = "Arial"
when 2
self.contents.font.name = "High Tower Text"
when 3
self.contents.font.name = "Tw Cen MT"
when 4
self.contents.font.name = "Tahoma"
end
next
end
if c == "\005"
@text.sub!(/\[([0-9]+)\]/, "")
@autoclosetime = $1.to_i
next
end
if c == "\006"
@centerflag = true
next
end
if c == "\007"
@rightflag = true
next
end
if c == "\011"
self.contents.font.name = "Arial"
self.contents.font.size = 18
self.contents.font.color = normal_color
@lineheight = 32
next
end
if c == "\014"
@text.sub!(/\[([0-9]+)\]/, "")
w_sub = $1.to_i
c = $data_weapons[w_sub].name
l = self.contents.text_size(c).width
bitmap = RPG::Cache.icon($data_weapons[w_sub].icon_name)
self.contents.blt(@x+4, @y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
@x += 28
self.contents.draw_text(@x+4, 32 * @y, l+32, @lineheight, c)
@x = @x + l
next
end
if c == "\015"
@text.sub!(/\[([0-9]+)\]/, "")
a_sub = $1.to_i
c = $data_armors[a_sub].name
l = self.contents.text_size(c).width
bitmap = RPG::Cache.icon($data_armors[a_sub].icon_name)
self.contents.blt(@x+4, @y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
@x += 28
self.contents.draw_text(@x+4, 32 * @y, l+32, @lineheight, c)
@x = @x + l
next
end
if c == "\016"
@text.sub!(/\[([0-9]+)\]/, "")
@op = $1.to_i
next
end
if c == "\017"
@bannerflag = true
next
end
if c == "\018"
@text.sub!(/\[([0-9]+)\]/, "")
jump = $1.to_i
@x += jump
next
end
if c == "\021"
@text.sub!(/\[([0-9]+)\]/, "")
@lineheight = $1.to_i
next
end
if c == "\022"
@text.sub!(/\[([0-9]+)\]/, "")
skill_sub = $1.to_i
c = $data_skills[skill_sub].name
l = self.contents.text_size(c).width
bitmap = RPG::Cache.icon($data_skills[skill_sub].icon_name)
self.contents.blt(@x+4, @y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
@x += 28
self.contents.draw_text(@x+4, 32 * @y, l+32, @lineheight, c)
@x = @x + l
next
end
if c == "\023"
@text.sub!(/\[([0-9]+)\]/, "")
bigness = $1.to_i
self.contents.font.size = bigness
next
end
if c == "\n"
if @centerflag == true
@x = 448 - @x
@x = @x / 2
self.contents.draw_text(@x, 32 * @y, 448-@x, @lineheight, @a)
end
if @rightflag == true
@x = 448 - @x
self.contents.draw_text(@x, 32 * @y, 448-@x, @lineheight, @a)
end
if @bannerflag == true
@x = 448 - @x
@x = @x / 2
self.contents.draw_text(@x, 44, 448-@x, @lineheight, @a)
end
@a = ""
@centerflag = false
@rightflag = false
@bannerflag = false
if @y >= $game_temp.choice_start
@cursor_width = [@cursor_width, @x].max
end
@y += 1
@x = 0
if @y >= $game_temp.choice_start
@x = 8
end
next
end
# ***ccoa***
#display face?
if $message_showing != nil
#draw the face, then add the text to one side of it
@message.bitmap= RPG::Cache.picture($message_showing)
@message.x = 18
@message.y = 340
@message.z = 9998
@message.visible = true
else
@message.bitmap= nil
@message.x = 18
@message.y = 340
@message.z = 9998
@message.visible = false
end
#draw the face, then add the text to one side of it
if $face_showing != nil
@face.bitmap = RPG::Cache.picture($face_showing)
@face.x = 20
@face.y = 344
@face.z = 9999
@face.opacity = 255
@face.visible = true
if @centerflag == false && @rightflag == false && @bannerflag == false
self.contents.draw_text(4 + @x, 32 * @y, 40, @lineheight, c)
@x += self.contents.text_size(c).width
else
@a += c
@x += self.contents.text_size(c).width
end
if !@text_skip
#$game_system.se_play($data_system.decision_se)
return
end
else
@face.bitmap = nil
@face.x = 20
@face.y = 344
@face.z = 9999
@face.visible = false
# just put in the text
if @centerflag == false && @rightflag == false && @bannerflag == false
self.contents.draw_text(4 + @x, 32 * @y, 40, @lineheight, c)
@x += self.contents.text_size(c).width
else
@a += c
@x += self.contents.text_size(c).width
end
if !@text_skip
#$game_system.se_play($data_system.decision_se)
return
end
end
end
end
self.opacity = 0
if $game_temp.choice_max > 0
@item_max = $game_temp.choice_max
self.active = true
self.index = 0
end
if $game_temp.num_input_variable_id > 0
digits_max = $game_temp.num_input_digits_max
number = $game_variables[$game_temp.num_input_variable_ id]
@input_number_window = Window_InputNumber.new(digits_max)
@input_number_window.number = number
@input_number_window.x = self.x + 8
@input_number_window.y = self.y + $game_temp.num_input_start * 32
end
@update_text = false
end
end
#-------------------------------
# Reset the window in response to changes in the position or
# transparency
#-------------------------------
def reset_window
if $game_temp.in_battle
self.y = 16
else
case $game_system.message_position
when 0 # ?
self.y = 16
when 1 # ?
self.y = 160
when 2 # ?#???????????
self.y = 336
end
end
if $game_system.message_frame == 0
self.opacity = 255
else
self.opacity = 0
end
self.back_opacity = 160
end
#-------------------------------
# Frame Update
#-------------------------------
def update
super
if @refreshflag && @fade_in == false
self.contents_opacity = @op
end
if @autoclosetime == 0
@autoclosetime = -1
terminate_message
end
if @autoclosetime >= 1
@autoclosetime -= 1
end
if @fade_in
self.contents_opacity += 24
if @input_number_window != nil
@input_number_window.contents_opacity += 24
end
if self.contents_opacity >= @op
@fade_in = false
end
return
end
if @input_number_window != nil
@input_number_window.update
# ??
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se )
$game_variables[$game_temp.num_input_variable_id] =
@input_number_window.number
$game_map.need_refresh = true
@input_number_window.dispose
@input_number_window = nil
terminate_message
end
return
end
if @contents_showing
if $game_temp.choice_max == 0
self.pause = true
end
if @update_text
if Input.trigger?(Input::C)
@text_skip = true
end
update_text
return
end
if Input.trigger?(Input::B)
if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
$game_system.se_play($data_system.cancel_se)
$game_temp.choice_proc.call($game_temp.choice_can cel_type - 1)
terminate_message
end
end
if Input.trigger?(Input::C)
if $game_temp.choice_max > 0
$game_system.se_play($data_system.decision_se )
$game_temp.choice_proc.call(self.index)
end
@op = 255
terminate_message
end
return
end
if @fade_out == false and $game_temp.message_text != nil
@contents_showing = true
$game_temp.message_window_showing = true
reset_window
refresh
Graphics.frame_reset
self.visible = true
self.contents_opacity = 0
if @input_number_window != nil
@input_number_window.contents_opacity = 0
end
@fade_in = true
return
end
if self.visible
@fade_out = true
self.opacity -= 48
if self.opacity == 0
self.visible = false
@fade_out = false
$game_temp.message_window_showing = false
end
return
end
end
#-------------------------------
# Updates the cursor rectangle.
#-------------------------------
def update_cursor_rect
if @index >= 0
n = $game_temp.choice_start + @index
# ***ccoa***
# make sure the cursor appears in the correct spot for choice messages
if $message_showing != nil
self.cursor_rect.set(8, n * 32, @cursor_width, 32)
self.windowskin= RPG::Cache.windowskin("001-Blue01")
end
else
self.cursor_rect.empty
end
end
end
[/spoiler]
Syntax:
To show faces and windowskin
call this script,
CODE
$face_showing = 'your face file here'
$message_showing = 'your windowskin picture file here'
To stop showing faces/windowskin, use this:
CODE
$face_showing = nil
$message_showing = nil
just put the faceset and the bground pic on the picture and name it what ever you want.
Ok I edited that post with the link. it should work now. ;)
OKAY.....CLICK THIS : http://www.box.net/shared/nquh6q2u9f (http://www.box.net/shared/nquh6q2u9f)
tnx ^^ ill try this one later ill put on resolve after a few test =) :mex: