# 在TXT模式还没有打开的时候
if !@is_read_txt
# TXT读取模式打开
if @text.slice!(/\\[Tt][Xx][Tt]\[(\w+)\]\[(\w+)\]/)!=nil
# 打开文件,成功打开后再进入后面部分
if @ts.open($1,$2)
# 根据显示模式确定需要打开行数
case $game_variables[1]
when 0 # 正常模式
@text = @ts.get_text(4)
when 1 # 图书模式
@text = @ts.get_text(12)
when 2 # 全屏模式
@text = @ts.get_text(15)
end
# 如果包含[END]
if @text.gsub!(/\[END\]/){""}!=nil
#退出TXT读取模式
@is_read_txt=false
else
#否则设置正在读取标志
@is_read_txt=true
end
end
else
if @text.slice!(/\\[Tt][Xx][Tt]\[(\w+)\]/)!=nil
# 打开文件,成功打开后再进入后面部分
if @ts.open($1,"")
# 根据显示模式确定需要打开行数
case $game_variables[1]
when 0 # 正常模式
@text = @ts.get_text(4)
when 1 # 图书模式
@text = @ts.get_text(12)
when 2 # 全屏模式
@text = @ts.get_text(15)
end
# 如果包含[END]
if @text.gsub!(/\[END\]/){""}!=nil
#退出TXT读取模式
@is_read_txt=false
else
#否则设置正在读取标志
@is_read_txt=true
end
end
end
end
end
# 如果取得的字符含"\\~"时
if @text.slice!(/\\~/)!=nil
# 跳过此次对话
terminate_message
# 设置跳过此次对话标志
@skip = true
# 直接返回等待连接后面部分
return
end
# 限制文字处理(注:这里是默认功能。)
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
#(注:后面将单个字符循环判断,所以这里将控制符全部换成单个字符)
# 为了方便将 "\\C" 变为 "\001"
@text.gsub!(/\\[Cc]\[([0-9#a-zA-Z]+)\]/) { "\001[#{$1}]" }
# "\\G" 变为 "\002"
@text.gsub!(/\\[Gg]/) { "\002" }
# "\\S" 字体大小(只修改第一个"\\S")
# 这里首先删掉能找到的第一个"\\S"
if @text.slice!(/\\[Ss]\[([0-9]+)\]/)!=nil
# 当找了"\\S"时满足上述条件,就设置文字大小
self.set_font_size($1.to_i)
end
# "\\O" 文字透明度(使用注意同上,模拟声音变小……)
if @text.slice!(/\\[Oo]\[([0-9]+)\]/)!=nil
self.set_font_op($1.to_i)
end
# 描绘文字
self.contents.draw_text(4+@x,@height*@y, @height, @height, c)
# x 为描绘文字宽度进行自增运算,计算下一个文字起始位置
@x += self.contents.text_size(c).width
# 操作了@type_mode个字符后就退出循环了,@type_mode为负则操作一次完成
i-=1
if i==0
break
end
end
end
# 如果@text处理结束了,就设置结束标志
if @text==nil or @text==""
@finish=true
end
end
end
[LINE]1,#dddddd[/LINE]版务信息:版主帮忙结贴~作者: 亮F 时间: 2008-9-29 16:28
好歹你把脚本发下吧~````
不要让别人去找~````````{/fd}作者: mieloko 时间: 2008-9-30 04:57
我已经重新编辑问题,并将脚本给出,哪位大侠帮我看看吧!!作者: 分子轨道理论 时间: 2008-9-30 05:26
if @right
# 绘制头像图片
self.contents.blt(348,0,@head_bmp,Rect.new(0,0,100,100))
# 显示角色姓名
if @name==nil
# 取得角色姓名到变量 c
c = $game_actors[head.to_i].name
# 描绘角色的姓名
self.contents.draw_text_s(348,104,100,24,c,1)
else
# 取得"???"到变量 c,当然这个"???"可以改为其他的默认值
c = @name
# 描绘角色的姓名
self.contents.draw_text_s(348,104,100,24,c,1)
end
else
# 绘制头像图片
self.contents.blt(0,0,@head_bmp,Rect.new(0,0,100,100)) # 显示角色姓名
if @name==nil
# 取得角色姓名到变量 c
c = $game_actors[head.to_i].name
# 描绘角色的姓名
self.contents.draw_text_s(0,104,100,24,c,1)
else
# 取得"???"到变量 c,当然这个"???"可以改为其他的默认值
c = @name
# 描绘角色的姓名
self.contents.draw_text_s(0,104,100,24,c,1)
end
end
# 恢复默认字色
self.contents.font.color = normal_color
# 恢复字体大小
self.contents.font.size=size
# 进行下一次循环
next
end