#----------------------
# ● 插入任务
#----------------------
def new_quest(n1,n2,n3)
@list.push(n1)
@contents.push(n2)
@type.push(n3)
end
#----------------------
# ● 添加任务注释
#----------------------
def quest_illust(n1,n4)
for i in [email protected]
if @list == n1
@desc = n4
end
end
file = File.open("system/Questdata.rxdata", "wb")
Marshal.dump($game_system.desc, file)
file.close
end
#----------------------
# ● 完成任务(失效处理或完成处理)
#----------------------
def end_quest(n1,n2,n3)
for i in [email protected]
if @list == n1 and @contents == n2
@type = n3
end
end
end
分别用来插入新任务,给任务添加注释和结束任务。
4、稍微改造一下WindowHelp,使之适合用来显示任务注释。
把WindowHelp默认的initialize用这个替换:
def initialize
if $scene.is_a?(Scene_Quest)
super(10,215,620,255)
else
super(0, 0, 640, 64)
end
self.contents = Bitmap.new(width - 32, height - 32)
end
if x + self.contents.text_size(c).width >= self.width - 40
y += 1
x = 0
end
end
end
self.visible = true
end
复制代码
就在这段有个缺陷-_-。因为这段是以前别人给写的我直接拿来用了orz
缺陷就是当注释文字多了时帧数会明显下降,感觉应该是重复刷新helpwindow造成的。
将SceneQuest里的helpwindowupdate加上按键才刷新的条件,问题依旧orz
用以下这段set_text_new就没问题,所以可能是这个方法本身有点问题……orz正则表达式仍然完全不通,请高人指教。
附无错版的set_text_new方法:
def set_text_new(text, align = 0)
# 如果文本和对齐方式的至少一方与上次的不同
if text != @text or align != @align
# 再描绘文本
self.contents.clear
self.contents.font.color = normal_color
x = 4; y = 0
for c in text.scan(/./)
if x + self.contents.text_size(c).width >= self.width - 40
x = 4; y += 32
end
self.contents.draw_text(x, y, 40, 32, c, align)
x += self.contents.text_size(c).width
end
@text = text
@align = align
@actor = nil
end
self.visible = true
end
这个方法可以自动换行,缺点是没法手动换行……
#----------------------
# ● 插入任务
#----------------------
def new_quest(n1,n2,n3)
@list.push(n1)
@contents.push(n2)
@type.push(n3)
end
#----------------------
# ● 添加任务注释
#----------------------
def quest_illust(n1,n4)
for i in [email protected]
if @list == n1
@desc = n4
end
end
file = File.open("system/Questdata.rxdata", "wb")
Marshal.dump($game_system.desc, file)
file.close
end
#----------------------
# ● 完成任务(失效处理或完成处理)
#----------------------
def end_quest(n1,n2,n3)
for i in [email protected]
if @list == n1 and @contents == n2
@type = n3
end
end
end
分别用来插入新任务,给任务添加注释和结束任务。
4、稍微改造一下WindowHelp,使之适合用来显示任务注释。
把WindowHelp默认的initialize用这个替换:
def initialize
if $scene.is_a?(Scene_Quest)
super(10,215,620,255)
else
super(0, 0, 640, 64)
end
self.contents = Bitmap.new(width - 32, height - 32)
end
if x + self.contents.text_size(c).width >= self.width - 40
y += 1
x = 0
end
end
end
self.visible = true
end
复制代码
就在这段有个缺陷-_-。因为这段是以前别人给写的我直接拿来用了orz
缺陷就是当注释文字多了时帧数会明显下降,感觉应该是重复刷新helpwindow造成的。
将SceneQuest里的helpwindowupdate加上按键才刷新的条件,问题依旧orz
用以下这段set_text_new就没问题,所以可能是这个方法本身有点问题……orz正则表达式仍然完全不通,请高人指教。
附无错版的set_text_new方法:
def set_text_new(text, align = 0)
# 如果文本和对齐方式的至少一方与上次的不同
if text != @text or align != @align
# 再描绘文本
self.contents.clear
self.contents.font.color = normal_color
x = 4; y = 0
for c in text.scan(/./)
if x + self.contents.text_size(c).width >= self.width - 40
x = 4; y += 32
end
self.contents.draw_text(x, y, 40, 32, c, align)
x += self.contents.text_size(c).width
end
@text = text
@align = align
@actor = nil
end
self.visible = true
end
这个方法可以自动换行,缺点是没法手动换行……