| 赞 | 20 |
| VIP | |
| 好人卡 | |
| 积分 | 13 |
| 经验 | |
| 最后登录 | 2019-7-17 |
| 在线时间 | 995 小时 |
- 梦石
- 0
- 星屑
- 1297
- 在线时间
- 995 小时
- 注册时间
- 2014-12-14
- 回帖
- 2939

|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 Vortur 于 2016-11-29 18:04 编辑
应喵大的要求,特此说明:【修改版脚本、教程等额外的内容均与喵大无关】,转载此文,请务必将喵大的【原版】一并完整地转载。
[fold=使用须知]
写在最前面
tseyik 大曾发过一个文章居中脚本,可开关文章居中,遇到脸图,还可以智能避开。美中不足是,RM预设的控制符失效了。
tseyik转【文字居中】(见4#tseyik大的回复)
后某友人托喵大制作了【兼容控制符】的文章居中,本想敝帚自珍,后经罗琳兄感召,才想公开。经与喵大沟通,喵大欣然同意,终于有此一帖。
喵大的脚本兼容了控制符,取消了【遇到脸图,居中无效】的设定。
而后在下增加了【遇到脸图,居中无效】的功能,经喵大同意,在此一并放出。转载请将【原版脚本】一并完整地转载。
[/fold] [fold=喵大【文章居中】公开版:有脸图,依旧居中][pre lang="ruby"]=begin
===============================================================================
对话水平居中 - 公开版本 (Author:喵呜喵5)
===============================================================================
【免责声明】
使用本脚本即表示您已理解并将遵守以下事项
本脚本是由 Vortur 定制并决定公开的对话水平居中脚本的公开版本
本脚本以 CC BY-ND 3.0 CN(CC 署名-禁止演绎 3.0 中国大陆) 协议公开
https://creativecommons.org/licenses/by-nd/3.0/cn/
脚本的定制已经结束,作者已经完全停止针对本脚本的免费维护,包括但不仅限于:
提供脚本的使用帮助
解答脚本在功能上的任何问题
修正脚本出现的 BUG
调整脚本的兼容性
增加脚本的功能
任何关于本脚本使用上的不明事项,请联系脚本作者
——喵呜喵5(miaowm5@gmail.com) 2016年5月3日
===============================================================================
使用说明:
指定 ID 的开关打开时,对话文字水平居中
=end
module M5MC20160301
ID = 1
# 指定 ID 的开关打开时,启用本脚本
class Cal < Window_Message
def initialize
super
self.visible = false
end
def m5_20160301_create_cal
@m5_20160301_cal = Empty.new
end
def wait *args; end
def draw_text *args; end
def input_pause *args; end
def create_all_windows
@gold_window = @choice_window =
@number_window = @item_window = Empty.new
end
def cal(contents, text)
return 0 if text.empty?
return 0 unless $game_switches[ID]
self.contents.dispose
self.contents = contents.clone
text = text.lines.first.chomp
pos = {x: 0, y: 0, new_x: 0, height: Graphics.height}
process_character(text.slice!(0, 1), text, pos) until text.empty?
return [(self.contents.width - pos[:x]) / 2, 0].max
end
end
class Empty; def method_missing *args; self; end; end
end
class Window_Message
alias m5_20160301_initialize initialize
def initialize
m5_20160301_initialize
m5_20160301_create_cal
end
def m5_20160301_create_cal
@m5_20160301_cal = M5MC20160301::Cal.new
end
alias m5_20160301_dispose_all_windows dispose_all_windows
def dispose_all_windows
m5_20160301_dispose_all_windows
@m5_20160301_cal.dispose
end
alias m5_20160301_process_new_line process_new_line
def process_new_line(text, pos)
m5_20160301_process_new_line(text, pos)
pos[:x] = @m5_20160301_cal.cal(contents, text)
end
alias m5_20160301_new_page new_page
def new_page(text, pos)
m5_20160301_new_page(text, pos)
pos[:x] = @m5_20160301_cal.cal(contents, text)
end
end[/pre]
[/fold][fold=喵大【文章居中】修改版:有脸图,暂不居中]
[pre lang="ruby"]=begin
===============================================================================
对话水平居中 (Author:喵呜喵5) # 修改版(有脸图 暂不居中)
===============================================================================
重要注意: 此版本修改自 喵呜喵5 的 对话水平居中,修改版已取得原作者同意。所有修改内容与原作者无关。
===============================================================================
使用说明:
指定 ID 的开关打开时,对话文字水平居中
=end
#--------------------------------------------------------------------------
# ●
#--------------------------------------------------------------------------
module M5MC20160301
ID = 1
# 指定 ID 的开关打开时,启用本脚本
class Cal < Window_Message
def initialize
super
self.visible = false
end
def m5_20160301_create_cal
@m5_20160301_cal = Empty.new
end
def wait *args; end
def draw_text *args; end
def input_pause *args; end
def create_all_windows
@gold_window = @choice_window =
@number_window = @item_window = Empty.new
end
def cal(contents, text) #此处判断是否居中
return 0 if text.empty?
return 0 unless $game_switches[ID]
self.contents.dispose
self.contents = contents.clone
text = text.lines.first.chomp
pos = {x: 0, y: 0, new_x: 0, height: Graphics.height}
process_character(text.slice!(0, 1), text, pos) until text.empty?
return [(self.contents.width - pos[:x]) / 2, 0].max
end
end
class Empty
def method_missing *args
self
end
end
end
#--------------------------------------------------------------------------
# ● ↑模块结束 ↓显示文字信息的窗口
#--------------------------------------------------------------------------
class Window_Message
alias m5_20160301_initialize initialize
def initialize
m5_20160301_initialize
m5_20160301_create_cal
end
def m5_20160301_create_cal
@m5_20160301_cal = M5MC20160301::Cal.new
end
alias m5_20160301_dispose_all_windows dispose_all_windows
def dispose_all_windows
m5_20160301_dispose_all_windows
@m5_20160301_cal.dispose
end
# ●换行文字的处理
alias m5_20160301_process_new_line process_new_line
def process_new_line(text, pos)
m5_20160301_process_new_line(text, pos)
if $game_message.face_name.empty? #增设判断,避开脸图
then
pos[:x] = @m5_20160301_cal.cal(contents, text)
else
102
end
end
# ●翻页处理
alias m5_20160301_new_page new_page
def new_page(text, pos)
draw_face($game_message.face_name, $game_message.face_index, 0, 0) #补充脸
m5_20160301_new_page(text, pos)
if $game_message.face_name.empty? #增设判断,避开脸图
then
pos[:x] = @m5_20160301_cal.cal(contents, text)
else
102
end
end
end[/pre]
[/fold][fold=·教程说明 暂缺]·教程说明 暂缺
!!!注:修改版、教程等额外的内容均与喵大无关,转载请务必将喵大原版一并完整转载!
[/fold][fold=拓展内容]拓展:
【窗口居中、选项居中、选项文字居中等】
[/fold]
|
评分
-
查看全部评分
|