Jump to content
New account registrations are disabed. This website is now an archive. Read more here.
  • 0
zahra

a Q about script

Question

i have a Q.i used script "Advanced Message Script R4".but i have an error:

 

Script 'Advanced Message Script' line 528: NoMethodError occured.

 

undefined method 'text_size?' for #<Bitmap:0x15d3dd8>

 

when i write nothing in message box ,i don't get any error(with face graphic) but when i write something,i get this error(with face graphic)

 

please answer if you know

 

this is line 528: @x += self.contents.text_size?.width

 

this is script

 

#===================================================

# ■ AMS - Advanced Message Script - R4 [update #2]

#===================================================

# For more infos and update, visit:

# www.dubealex.com (Creation Asylum)

#

# Edited, Fixed and Enhanced by: Dubealex

# Original Script Core by: XRXS Scripter (Jap Dudes)

# HTML Hexadecimal color feature from: Phylomorphis

#

# Special Thanks:

# Rabu: For enabling the Show Face feature in an encrypted project

#

# To found all my new features, search the following: #NEW

# To configure the button to skip the dialog, search: #SKIP_TEXT_CODE

#

# May 18, 2005

#===================================================

 

LETTER_BY_LETTER_MODE = true #Set the letter by letter mode ON/OFF

 

#===================================================

# ▼ CLASS AMS Begins

#===================================================

class AMS

 

attr_accessor :name_box_x_offset

attr_accessor :name_box_y_offset

attr_accessor :font_type

attr_accessor :name_font_type

attr_accessor :font_size

attr_accessor :name_font_size

attr_accessor :message_box_opacity

attr_accessor :name_box_skin

attr_accessor :name_box_text_color

attr_accessor :message_box_text_color

attr_accessor :message_box_skin

attr_accessor :name_box_width

attr_accessor :name_box_height

attr_accessor :message_width

attr_accessor :message_height

attr_accessor :message_x

attr_accessor :message_y_bottom

attr_accessor :message_y_middle

attr_accessor :message_y_top

attr_accessor :event_message_x_ofset

attr_accessor :event_message_y_ofset

 

def initialize

 

@name_box_x_offset = 0 #Choose the X axis offset of the name bos. default= 0

@name_box_y_offset = -10 #Choose the Y axis offset of the name bos. default= -10

@name_box_width = 8 #Choose the width of the Name Box. default= 8

@name_box_height = 26 #Choose the height of the Name Box. default= 26

 

@font_type = "Tahoma" #Choose the Font Name (Case Sensitive) for message box

@name_font_type = "Tahoma" #Choose the Font Name (Case Sensitive) for Name Box

@font_size = 22 #Choose the default Font Size for message box text

@name_font_size = 22 #Choose the deafault Font Size for Name Box text

@name_box_text_color=0 #Choose the Text Color of the Name Box

@message_box_text_color=0 #Choose the Text Color of the Message Box

 

@message_box_opacity = 160 #Choose the opacity of the message window. Default=160

@message_box_skin = "001-Blue01" #Choose the WindowSkin for the Message Box

@name_box_skin = "001-Blue01" #Choose the WindowSkin for the Name Box

 

@message_width = 480 #Choose the width size of the message box. Default=480

@message_height = 160 #Choose the height size of the message box. Default=160

@message_x = 80 #Choose the X position of the message box. Default=80

@message_y_bottom = 304 #Choose the Y bottom position of the message box. Default=304

@message_y_middle = 160 #Choose the Y middle position of the message box. Default=160

@message_y_top = 16 #Choose the Y top position of the message box. Default=16

 

@event_message_x_ofset = 0 #Choose the X position offset of the event message. Default=0

@event_message_y_ofset = 48 #Choose the Y position offset of the event message. Default=48

 

end

end

#===================================================

# ▲ CLASS AMS Ends

#===================================================

 

 

#===================================================

# ▼ Class Window_Message Begins

#===================================================

class Window_Message < Window_Selectable

 

alias xrxs9_initialize initialize

 

def initialize

 

@alex_skip = false

 

xrxs9_initialize

 

if $soundname_on_speak == nil then

$soundname_on_speak = ""

end

 

$gaiji_file = "./Graphics/Gaiji/sample.png"

 

if FileTest.exist?($gaiji_file)

@gaiji_cache = Bitmap.new($gaiji_file)

else

@gaigi_cache = nil

end

@opacity_text_buf = Bitmap.new(32, 32)

end

 

 

#--------------------------------------------------------------------------

 

alias xrxs9_terminate_message terminate_message

 

def terminate_message

 

if @name_window_frame != nil

@name_window_frame.dispose

@name_window_frame = nil

end

 

if @name_window_text != nil

@name_window_text.dispose

@name_window_text = nil

end

xrxs9_terminate_message

end

 

#--------------------------------------------------------------------------

 

def refresh

 

self.contents.clear

self.contents.font.color = text_color($ams.message_box_text_color)

self.contents.font.name = $ams.font_type

self.contents.font.size = $ams.font_size

self.windowskin = RPG::Cache.windowskin($ams.message_box_skin)

@x = @y = @max_x = @max_y = @indent = @lines = 0

@face_indent = 0

@opacity = 255

@cursor_width = 0

@write_speed = 0

@write_wait = 0

@mid_stop = false

@face_file = nil

@popchar = -2

 

if $game_temp.choice_start == 0

@x = 8

end

 

if $game_temp.message_text != nil

@now_text = $game_temp.message_text

if (/\A\\[Ff]\[(.+?)\]/.match(@now_text))!=nil then

@face_file = $1 + ".png"

@x = @face_indent = 128

if FileTest.exist?("Graphics/Pictures/" + $1 + ".png")

self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))

end

@now_text.gsub!(/\\[Ff]\[(.*?)\]/) { "" }

end

 

begin

last_text = @now_text.clone

@now_text.gsub!(/\\[Vv]\[([iiWwAaSs]?)([0-9]+)\]/) { convart_value($1, $2.to_i) }

end until @now_text == last_text

@now_text.gsub!(/\\[Nn]\[([0-9]+)\]/) do

$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""

end

 

#NEW

#Dubealex's Stop Skip Text ON-OFF

@now_text.gsub!(/\\[%]/) { "\100" }

#End new command

 

#NEW

#Dubealex's Show Monster Name Feature

@now_text.gsub!(/\\[Mm]\[([0-9]+)\]/) do

$data_enemies[$1.to_i] != nil ? $data_enemies[$1.to_i].name : ""

end

#End new command

 

#NEW

#Dubealex's Show Item Price Feature

@now_text.gsub!(/\\[Pp]rice\[([0-9]+)\]/) do

$data_items[$1.to_i] != nil ? $data_items[$1.to_i].price : ""

end

#End new command

 

#NEW

#Dubealex's Show Hero Class Name Feature

@now_text.gsub!(/\\[Cc]lass\[([0-9]+)\]/) do

$data_classes[$data_actors[$1.to_i].class_id] != nil ? $data_classes[$data_actors[$1.to_i].class_id].name : ""

end

#End new command

 

#NEW

#Dubealex's Show Current Map Name Feature

@now_text.gsub!(/\\[Mm]ap/) do

$game_map.name != nil ? $game_map.name : ""

end

#End new command

 

#NEW

#Dubealex's Choose Name Box Text Color

@now_text.gsub!(/\\[Zz]\[([0-9]+)\]/) do

$ams.name_box_text_color=$1.to_i

@now_text.sub!(/\\[Zz]\[([0-9]+)\]/) { "" }

end

#End new command

 

name_window_set = false

if (/\\[Nn]ame\[(.+?)\]/.match(@now_text)) != nil

name_window_set = true

name_text = $1

@now_text.sub!(/\\[Nn]ame\[(.*?)\]/) { "" }

end

 

if (/\\[Pp]\[([-1,0-9]+)\]/.match(@now_text))!=nil then

@popchar = $1.to_i

if @popchar == -1

@x = @indent = 48

@y = 4

end

@now_text.gsub!(/\\[Pp]\[([-1,0-9]+)\]/) { "" }

end

 

@max_choice_x = 0

if @popchar >= 0

@text_save = @now_text.clone

@max_x = 0

@max_y = 4

for i in 0..3

line = @now_text.split(/\n/)[3-i]

@max_y -= 1 if line == nil and @max_y <= 4-i

next if line == nil

line.gsub!(/\\\w\[(\w+)\]/) { "" }

cx = contents.text_size(line).width

@max_x = cx if cx > @max_x

if i >= $game_temp.choice_start

@max_choice_x = cx if cx > @max_choice_x

end

end

self.width = @max_x + 32 + @face_indent

self.height = (@max_y - 1) * 32 + 64

@max_choice_x -= 68

@max_choice_x -= @face_indent*216/128

else

@max_x = self.width - 32 - @face_indent

for i in 0..3

line = @now_text.split(/\n/)

next if line == nil

line.gsub!(/\\\w\[(\w+)\]/) { "" }

cx = contents.text_size(line).width

if i >= $game_temp.choice_start

@max_choice_x = cx if cx > @max_choice_x

end

end

@max_choice_x += 8

end

@cursor_width = 0

@now_text.gsub!(/\\\\/) { " 0" }

@now_text.gsub!(/\\[Cc]\[([0123456789ABCDEF#]+)\]/) { " 1[#{$1}]" }

@now_text.gsub!(/\\[Gg]/) { " 2" }

@now_text.gsub!(/\\[ss]\[([0-9]+)\]/) { " 3[#{$1}]" }

@now_text.gsub!(/\\[Aa]\[(.*?)\]/) { " 4[#{$1}]" }

 

#NEW

#Dubealex's Permanent Color Change

@now_text.gsub!(/\\[Cc]olor\[([0-9]+)\]/) do

$ams.message_box_text_color= $1.to_i

@now_text.sub!(/\\[Cc]\[([0-9]+)\]/) { "" }

end

#End of new command

 

#NEW

#Dubealex's Font Change Feature

@now_text.gsub(/\\[Tt]\[(.*?)\]/) do

buftxt = $1.to_s

$ams.font_type = buftxt

@now_text.sub!(/\\[Tt]\[(.*?)\]/) { "" }

end

#End of new command

 

@now_text.gsub!(/\\[.]/) { " 5" }

@now_text.gsub!(/\\[|]/) { " 6" }

@now_text.gsub!(/\\[>]/) { "16" }

@now_text.gsub!(/\\[<]/) { "17" }

@now_text.gsub!(/\\[!]/) { "20" }

@now_text.gsub!(/\\[~]/) { "21" }

@now_text.gsub!(/\\[Ee]\[([0-9]+)\]/) { "22[#{$1}]" }

@now_text.gsub!(/\\[ii]/) { "23" }

@now_text.gsub!(/\\[Oo]\[([0-9]+)\]/) { "24[#{$1}]" }

@now_text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "25[#{$1}]" }

@now_text.gsub!(/\\[bb]\[([0-9]+)\]/) { "26[#{$1}]" }

@now_text.gsub!(/\\[Rr]\[(.*?)\]/) { "27[#{$1}]" }

 

reset_window

 

if name_window_set

color=$ams.name_box_text_color

off_x = $ams.name_box_x_offset

off_y = $ams.name_box_y_offset

space = 2

x = self.x + off_x - space / 2

y = self.y + off_y - space / 2

w = self.contents.text_size(name_text).width + $ams.name_box_width + space

h = $ams.name_box_height + space

@name_window_frame = Window_Frame.new(x, y, w, h)

@name_window_frame.z = self.z + 1

x = self.x + off_x + 4

y = self.y + off_y

@name_window_text = Air_Text.new(x, y, name_text, color)

@name_window_text.z = self.z + 2

end

end

 

reset_window

 

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

end

 

#--------------------------------------------------------------------------

 

def update

 

super

 

if @fade_in

self.contents_opacity += 24

if @input_number_window != nil

@input_number_window.contents_opacity += 24

end

if self.contents_opacity == 255

@fade_in = false

end

return

end

@now_text = nil if @now_text == ""

 

if @now_text != nil and @mid_stop == false

if @write_wait > 0

@write_wait -= 1

return

end

text_not_skip = LETTER_BY_LETTER_MODE

while true

@max_x = @x if @max_x < @x

@max_y = @y if @max_y < @y

if (c = @now_text.slice!(/./m)) != nil

if c == " 0"

c = "\\"

end

 

if c == " 1"

@now_text.sub!(/\[([0123456789ABCDEF#]+)\]/, "")

temp_color = $1

color = temp_color.to_i

leading_x = temp_color.to_s.slice!(/./m)

if leading_x == "#"

self.contents.font.color = hex_color(temp_color)

next

end

if color >= 0 and color <= 7

self.contents.font.color = text_color(color)

end

next

end

 

if c == " 2"

if @gold_window == nil and @popchar <= 0

@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

c = ""

end

 

if c == " 3"

@now_text.sub!(/\[([0-9]+)\]/, "")

speed = $1.to_i

if speed >= 0 and speed <= 19

@write_speed = speed

end

c = ""

end

 

if c == " 4"

@now_text.sub!(/\[(.*?)\]/, "")

buftxt = $1.dup.to_s

if buftxt.match(/\//) == nil and buftxt != "" then

$soundname_on_speak = "Audio/SE/" + buftxt

else

$soundname_on_speak = buftxt.dup

end

c = ""

elsif c == " 4"

c = ""

end

 

if c == " 5"

@write_wait += 5

c = ""

end

 

if c == " 6"

@write_wait += 20

c = ""

end

 

if c == "16"

text_not_skip = false

c = ""

end

 

if c == "17"

text_not_skip = true

c = ""

end

 

if c == "20"

@mid_stop = true

c = ""

end

 

if c == "21"

terminate_message

return

end

 

if c == "23"

@indent = @x

c = ""

end

 

if c == "24"

@now_text.sub!(/\[([0-9]+)\]/, "")

@opacity = $1.to_i

color = self.contents.font.color

self.contents.font.name = $ams.font_type

self.contents.font.size = $ams.font_size

self.contents.font.color = Color.new(color.red, color.green, color.blue, color.alpha * @opacity / 255)

c = ""

end

 

if c == "25"

@now_text.sub!(/\[([0-9]+)\]/, "")

self.contents.font.size = [[$1.to_i, 6].max, 32].min

c = ""

end

 

if c == "26"

@now_text.sub!(/\[([0-9]+)\]/, "")

@x += $1.to_i

c = ""

end

 

if c == "27"

@now_text.sub!(/\[(.*?)\]/, "")

@x += ruby_draw_text(self.contents, @x, @y * line_height + (line_height - self.contents.font.size), $1, @opacity)

if $soundname_on_speak != ""

Audio.se_play($soundname_on_speak)

end

c = ""

end

 

if c == "30"

@now_text.sub!(/\[(.*?)\]/, "")

self.contents.blt(@x , @y * line_height + 8, RPG::Cache.icon($1), Rect.new(0, 0, 24, 24))

if $soundname_on_speak != ""

Audio.se_play($soundname_on_speak)

end

@x += 24

c = ""

end

 

if c == "\n"

@lines += 1

@y += 1

@x = 0 + @indent + @face_indent

if @lines >= $game_temp.choice_start

@x = 8 + @indent + @face_indent

@cursor_width = @max_choice_x

end

c = ""

end

 

if c == "22"

@now_text.sub!(/\[([0-9]+)\]/, "")

@x += gaiji_draw(4 + @x, @y * line_height + (line_height - self.contents.font.size), $1.to_i)

c = ""

end

 

#NEW

#Dubealex's Text Skip On/OFF Command

if c == "\100"

if @alex_skip==false

@alex_skip=true

else

@alex_skip=false

end

c = ""

end

#end of new command

 

if c != ""

self.contents.draw_text(0+@x, 32 * @y, 40, 32, c)

@x += self.contents.text_size?.width

if $soundname_on_speak != "" then

Audio.se_play($soundname_on_speak)

end

end

 

#SKIP_TEXT_CODE

 

# B = Escape, 0 (On The NumPad), X

# C = Enter, Space Bar and C

# A = Shift, Z

 

if Input.press?(Input::C) # <-- Change the value on that line

if @alex_skip==false

text_not_skip = false

end

end

else

text_not_skip = true

break

end

 

if text_not_skip

break

end

end

@write_wait += @write_speed

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 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_cancel_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

if @mid_stop

@mid_stop = false

return

else

terminate_message

end

end

return

end

 

if @fade_out == false and $game_temp.message_text != nil

@contents_showing = true

$game_temp.message_window_showing = true

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

 

#--------------------------------------------------------------------------

 

def get_character(parameter)

 

case parameter

when 0

return $game_player

else

events = $game_map.events

return events == nil ? nil : events[parameter]

end

end

 

#--------------------------------------------------------------------------

 

def reset_window

 

#MESSAGE_SIZE

#MESSAGE_POSITION

 

if @popchar >= 0

events = $game_map.events

if events != nil

character = get_character(@popchar)

x = [[character.screen_x - $ams.event_message_x_ofset - self.width / 2, 4].max, 636 - self.width].min

y = [[character.screen_y - $ams.event_message_y_ofset - self.height, 4].max, 476 - self.height].min

self.x = x

self.y = y

end

elsif @popchar == -1

self.x = -4

self.y = -4

self.width = 648

self.height = 488

else

if $game_temp.in_battle

self.y = 16

else

case $game_system.message_position

when 0

self.y = $ams.message_y_top

when 1

self.y = $ams.message_y_middle

when 2

self.y = $ams.message_y_bottom

end

self.x = $ams.message_x

if @face_file == nil

self.width = $ams.message_width

self.x = $ams.message_x

else

if self.width <= 600

self.width = 600

self.x -=60

end

end

self.height = $ams.message_height

end

end

self.contents = Bitmap.new(self.width - 32, self.height - 32)

self.contents.font.color = text_color($ams.message_box_text_color)

self.contents.font.name = $ams.font_type

self.contents.font.size = $ams.font_size

if @face_file != nil

self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))

end

if @popchar == -1

self.opacity = 255

self.back_opacity = 0

elsif $game_system.message_frame == 0

self.opacity = 255

self.back_opacity = $ams.message_box_opacity

else

self.opacity = 0

self.back_opacity = $ams.message_box_opacity

end

end

 

#--------------------------------------------------------------------------

 

def gaiji_draw(x, y, num)

 

if @gaiji_cache == nil

return 0

else

if @gaiji_cache.width < num * 24

return 0

end

 

if self.contents.font.size >= 20 and self.contents.font.size <= 24

size = 24

else

size = self.contents.font.size * 100 * 24 / 2200

end

 

self.contents.stretch_blt(Rect.new(x, y, size, size), @gaiji_cache, Rect.new(num * 24, 0, 24, 24))

 

if $soundname_on_speak != "" then

Audio.se_play($soundname_on_speak)

end

return size

end

end

 

#--------------------------------------------------------------------------

 

def line_height

return 32

 

if self.contents.font.size >= 20 and self.contents.font.size <= 24

return 32

else

return self.contents.font.size * 15 / 10

end

end

 

#--------------------------------------------------------------------------

 

def ruby_draw_text(target, x, y, str,opacity)

 

sizeback = target.font.size

target.font.size * 3 / 2 > 32 ? rubysize = 32 - target.font.size : rubysize = target.font.size / 2

rubysize = [rubysize, 6].max

opacity = [[opacity, 0].max, 255].min

split_s = str.split(/,/)

split_s[0] == nil ? split_s[0] = "" : nil

split_s[1] == nil ? split_s[1] = "" : nil

 

height = sizeback + rubysize

width = target.text_size(split_s[0]).width

 

target.font.size = rubysize

ruby_width = target.text_size(split_s[1]).width

target.font.size = sizeback

 

buf_width = [target.text_size(split_s[0]).width, ruby_width].max

 

width - ruby_width != 0 ? sub_x = (width - ruby_width) / 2 : sub_x = 0

 

if opacity == 255

target.font.size = rubysize

target.draw_text(x + sub_x, y - target.font.size, target.text_size(split_s[1]).width, target.font.size, split_s[1])

target.font.size = sizeback

target.draw_text(x, y, width, target.font.size, split_s[0])

return width

else

if @opacity_text_buf.width < buf_width or @opacity_text_buf.height < height

@opacity_text_buf.dispose

@opacity_text_buf = Bitmap.new(buf_width, height)

else

@opacity_text_buf.clear

end

@opacity_text_buf.font.size = rubysize

@opacity_text_buf.draw_text(0 , 0, buf_width, rubysize, split_s[1], 1)

@opacity_text_buf.font.size = sizeback

@opacity_text_buf.draw_text(0 , rubysize, buf_width, sizeback, split_s[0], 1)

if sub_x >= 0

target.blt(x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)

else

target.blt(x + sub_x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)

end

return width

end

end

 

#--------------------------------------------------------------------------

 

def convart_value(option, index)

option == nil ? option = "" : nil

option.downcase!

 

case option

when "i"

unless $data_items[index].name == nil

r = sprintf("30[%s]%s", $data_items[index].icon_name, $data_items[index].name)

end

when "w"

unless $data_weapons[index].name == nil

r = sprintf("30[%s]%s", $data_weapons[index].icon_name, $data_weapons[index].name)

end

when "a"

unless $data_armors[index].name == nil

r = sprintf("30[%s]%s", $data_armors[index].icon_name, $data_armors[index].name)

end

when "s"

unless $data_skills[index].name == nil

r = sprintf("30[%s]%s", $data_skills[index].icon_name, $data_skills[index].name)

end

else

r = $game_variables[index]

end

 

r == nil ? r = "" : nil

return r

end

 

#--------------------------------------------------------------------------

 

def dispose

terminate_message

 

if @gaiji_cache != nil

unless @gaiji_cache.disposed?

@gaiji_cache.dispose

end

end

 

unless @opacity_text_buf.disposed?

@opacity_text_buf.dispose

end

 

$game_temp.message_window_showing = false

if @input_number_window != nil

@input_number_window.dispose

end

super

end

 

#--------------------------------------------------------------------------

 

def update_cursor_rect

if @index >= 0

n = $game_temp.choice_start + @index

self.cursor_rect.set(8 + @indent + @face_indent, n * 32, @cursor_width, 32)

else

self.cursor_rect.empty

end

end

end

#=========================================

# ▲ CLASS Window_Message Ends

#=========================================

 

 

#=========================================

# ▼ Class Window_Frame Begins

#=========================================

class Window_Frame < Window_Base

 

def initialize(x, y, width, height)

super(x, y, width, height)

self.windowskin = RPG::Cache.windowskin($ams.name_box_skin)

self.contents = nil

end

 

#--------------------------------------------------------------------------

 

def dispose

super

end

end

#=========================================

# ▲ CLASS Window_Frame Ends

#=========================================

 

 

#=========================================

# ▼ CLASS Game_Map Additional Code Begins

#=========================================

class Game_Map

 

#Dubealex's Addition (from XRXS) to show Map Name on screen

def name

$map_infos[@map_id]

end

end

#=========================================

# ▲ CLASS Game_Map Additional Code Ends

#=========================================

 

 

#=========================================

# ▼ CLASS Scene_Title Additional Code Begins

#=========================================

class Scene_Title

 

#Dubealex's Addition (from XRXS) to show Map Name on screen

$map_infos = load_data("Data/MapInfos.rxdata")

for key in $map_infos.keys

$map_infos[key] = $map_infos[key].name

end

 

#Dubealex's addition to save data from the AMS in the save files

$ams = AMS.new

 

end

#=========================================

# ▲ CLASS Scene_Title Additional Code Ends

#=========================================

 

 

#=========================================

# ▼ CLASS Window_Base Additional Code Begins

#=========================================

class Window_Base < Window

 

#Dubealex Addition (from Phylomorphis) to use HTML Hex Code Colors

def hex_color(string)

red = 0

green = 0

blue = 0

if string.size != 6

print("Hex strings must be six characters long.")

print("White text will be used.")

return Color.new(255, 255, 255, 255)

end

for i in 1..6

s = string.slice!(/./m)

if s == "#"

print("Hex color string may not contain the \"#\" character.")

print("White text will be used.")

return Color.new(255, 255, 255, 255)

end

value = hex_convert(s)

if value == -1

print("Error converting hex value.")

print("White text will be used.")

return Color.new(255, 255, 255, 255)

end

case i

when 1

red += value * 16

when 2

red += value

when 3

green += value * 16

when 4

green += value

when 5

blue += value * 16

when 6

blue += value

end

end

return Color.new(red, green, blue, 255)

end

 

#--------------------------------------------------------------------------

 

def hex_convert(character)

case character

when "0"

return 0

when "1"

return 1

when "2"

return 2

when "3"

return 3

when "4"

return 4

when "5"

return 5

when "6"

return 6

when "7"

return 7

when "8"

return 8

when "9"

return 9

when "A"

return 10

when "B"

return 11

when "C"

return 12

when "D"

return 13

when "E"

return 14

when "F"

return 15

end

return -1

end

end

#=========================================

# ▲ CLASS Window_Base Additional Code Ends

#=========================================

 

 

#=========================================

# ▼ Class Air_Text Begins

#=========================================

class Air_Text < Window_Base

 

def initialize(x, y, designate_text, color=0)

 

super(x-16, y-16, 32 + designate_text.size * 12, 56)

self.opacity = 0

self.back_opacity = 0

self.contents = Bitmap.new(self.width - 32, self.height - 32)

w = self.contents.width

h = self.contents.height

self.contents.font.name = $ams.name_font_type

self.contents.font.size = $ams.name_font_size

self.contents.font.color = text_color(color)

self.contents.draw_text(0, 0, w, h, designate_text)

end

 

#--------------------------------------------------------------------------

 

def dispose

self.contents.clear

super

end

end

#==========================================

# ▲ CLASS Air_Text Ends

#==========================================

 

 

#===================================================

# ▼ CLASS Scene_Save Additional Code Begins

#===================================================

class Scene_Save < Scene_File

 

alias ams_original_write_save_data write_save_data

 

def write_save_data(file)

ams_original_write_save_data(file)

Marshal.dump($ams, file)

end

 

end

#===================================================

# ▲ CLASS Scene_Save Additional Code Ends

#===================================================

 

 

#===================================================

# ▼ CLASS Scene_Load Additional Code Begins

#===================================================

class Scene_Load < Scene_File

 

alias ams_original_read_save_data read_save_data

 

def read_save_data(file)

ams_original_read_save_data(file)

$ams = Marshal.load(file)

end

 

end

#===================================================

# ▲ CLASS Scene_Load Additional Code Ends

#===================================================

Edited by zahra

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Without a copy of said script (or a link to it), it will be hard to say anything about it.

Share this post


Link to post
Share on other sites
  • 0

I don't know who's the guy who wrote/modified this script, but he really sucks. This should be

text_size(c)

If I understand correctly.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...