查看: 10485|回复: 23

[原创发布] SEP Window_Message XP对话窗口增强组件 v1.1

[复制链接]

遠航の猫咪

梦石
3
星屑
26947
在线时间
2423 小时
注册时间
2005-10-15
回帖
987

开拓者

发表于 2018-1-3 22:35:09 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 SailCat 于 2018-1-17 18:32 编辑

代码有近2200行,只贴注释好了,剩下的见范例工程。
更新:
v1.1
1. 增添了\~控制符,可以立即清除一切格式更改(包括颜色),恢复到默认的字体格式。
2. 增加了几个方便的宏替换操作,原理同1.0版的\Cn[str]一样。
3. 现在可以用-1\-2\-3这三个特殊值在\A控制符中,指定在头像、立绘上显示动画。
4. \^[0]可以用来禁用B键快速跳过本篇对话,强制显示关键对话。也可通过配置使跳过功能仅Debug模式可用。
5. 在显示有立绘的情况下,按A键可以暂时隐藏对话框,便于查看立绘,之后按A、B、C键均可恢复。
6. 窗口皮肤、色调和背景的不透明度可以自定义配置。默认与系统设置相同。
7. 优化了窗口进入和退出的效果,避免多段对话间不必要的延迟。
8. 在打字效果打开的情况下,文章翻页的效果可以改成逐行向上滚动(而不是暂停等待),由配置中的PAGE_EFFECT指定。
9. 在打字效果关闭的情况下,窗口会带字淡入,无字淡出,这同XP的默认效果保持一致。

其他修改(在窗口核心1.4 中):
1. 修正了\V[Pn]和\V[Tn]中n没有加1的问题,现在它们和\T及\P的n意义一致。
2. 修正了菜单状态窗口和对象状态窗口在人数不满4时行高错乱的问题。
3. 将原属于1.0对话窗口的控制符\* \_ \O(粗体、斜体、更改不透明度)以及新增的\~均改写到窗口底层,从而可以在对话窗口以外的窗口中使用(主要是在帮助窗口和对话窗口辅助的变量窗口中使用)。
4. 用HTML代码指定颜色现在不再需要(也不再允许)将前置#写作_,保留标准的#写法。

[pre lang="ruby"]#==============================================================================
# ■ 窗口增强-对话窗口 v1.1 by SailCat
#------------------------------------------------------------------------------
#   方法:本脚本插入到Main之前使用,并依赖以下脚本:
#   依赖:窗口增强系统核心插件
#   版本:v1.1 (Build 180107)
#   效果:
#     1. 对话框逐字输出效果
#     2. 对话框控制功能增强
#     3. 对话框长文章显示支援
#     4. 手工续行和手工换行支援
#   配置:
#     1. 效果配置项
#     2. 脸图/立绘默认路径配置项
#     3. 自定义宏替换控制符配置项
#   冲突:其他同类脚本
#   说明:
#     1. 对话框逐字输出效果:默认开启,每帧显示1个字符。
#        如果要调整速度,请更改配置项中DEFAULT_TYPE_SPEED的值。
#        该值的含义为每隔n帧显示一个字符,如设为-1则会关闭逐字输出。
#        在逐字输出过程中,按C键可快速显示至页末,按B键可立即关闭本篇对话。
#     2. 对话框控制功能增强,支持窗口增强系统核心插件追加的全部控制符。
#        并额外支持下列控制符(以下除非特殊说明,“省略”参数连同括号省略):
#        1) 总括设置类(显示前解析,一段文章只解析一次,可写在文章任何位置)
#           \G[n]   打开n号数据窗口,n的含义为:
#             -1:步数;-2:游戏时间;-3:真实时间;0:金钱;正数:变量ID
#           \L[str] 左侧显示文件名为str的立绘,str为数字取角色立绘
#           \R[str] 同上,但是立绘在右侧显示
#           \L或\R  清除立绘图像,文章结束也会自动清除
#           \F[str] 显示文件名为str的头像,str为数字取角色头像
#           \F      清除头像,文章结束也会自动清除
#           \[str]  显示文字为str的人名框,str若省略(括号不省略)取本事件名称
#           \1[str] 人名框以1号文字色显示,颜色数字可以为0-63
#           \[      清除人名框,文章结束也会自动清除
#           \]      将头像和人名框改为靠右对齐(默认为靠左对齐)
#           \@[n]   在位置n显示对话框,n的含义如下:
#             负数(战斗内外通用):
#               -10:系统默认位置和尺寸;-5:对话框居于屏幕或战斗区正中
#               -1~-9:对话框吸附到边角(方位如小键盘),其中-2和-8会拉长占满
#             正数(战斗中的情况):
#               0:跟随当前战斗者;1~4:跟随我方角色;101~108:跟随敌方角色
#             正数(战斗外的情况):
#               0:跟随主角;1~999:跟随对应事件;省略:跟随本事件
#             对话框跟随事件时,会依事件位置的改变,真时更新位置
#             若写成1000(战斗外)或省略n(战斗中),对话框会全屏无边显示
#             对话框的位置设置为-2、-8、-10以外的值时,会自动根据内容调整大小
#           \^[n]   对话框全部显示完毕后,等n帧自动关闭,有输入等待时会失效
#                   若设为0的话,不会自动关闭,但按B键快速跳过的功能失效
#        2) 文本替换类(显示前解析,直接替换文本的显示内容)
#           \V[n:m] 替换为变量n的值,并按m位补前置零或套用m格式(不能嵌套使用)
#           \ [n]   替换为连续的n个空格(控制码就是空格本身)
#           \%[str] 将str作为脚本来执行并替换返回值,如执行失败则忽略
#           \%{str} 同上,如果脚本中含有方括号可用此格式书写
#           其余替换类控制码可见窗口增强核心插件
#        3) 文本控制类(显示过程中实时解析)
#           \,      停顿 1/4 秒(不随帧率变化)
#           \;      停顿 1/2 秒(不随帧率变化)
#           \.      停顿 1/1 秒(不随帧率变化)
#           \Z[n]   停顿 n 帧(默认设置下20帧为1秒)
#           \>      本行之后的内容快速显示至\<或行末
#           \<      取消快速显示
#           \:      行首缩进(下一行从此处开始)
#           \`      取消缩进(下一行从头开始)
#           \!      等待一个按键后继续
#           \![n]   如n为数字,等待一个按键继续并将按键记录n号变量
#                   如n为按键名(A/B/C/X/Y/Z/L/R/...),等待按这个特定的键后继续
#           \K[n]   将本篇文章打字速度更改为n
#           \O[n]   将文字不透明度更改为n
#           \A[n:m] 在本事件或本战斗者上显示n号动画,m一般为正数见总括设置的\@
#                   m取为负数的话,-1表示头像,-2表示左侧立绘,-3表示右侧立绘
#           \S[str] 播放SE,str省略会取配置部分设置的SE,str写1-12取对应系统SE
#           \B[n]   空n像素
#           \I[str] 显示文件名为str的图标(居中对齐)
#           \U[n]   文字加下划线效果,n的含义如下,如省略则终止下划线:
#             1:单划线;2:双划线;3:粗划线;4:点虚线;5:短虚线
#             6:长虚线;7:点划线;8:双点线;9:波浪线;-1:着重号
#           \X[n]   文字加删除线效果,n的含义如下,如省略则终止删除线:
#             1:单划线;2:双划线;3:粗划线;4:毛笔线;5:纯色块
#             6:字加框;7:横阴影;8:左阴影;9:右阴影;-1:单字框
#           \*      开始或者结束文字粗体
#           \_      开始或者结束文字斜体
#           \~      清除格式
#     3. 对话框长文章显示、手工续行和手工换行处理:
#        在输入文章的末尾打一个反斜杠(\)字符,将合并后续的文章为同一段文章。
#        文章的长度,如果最后没有选择项,没有上限,如果最后有选择项,最多98行。
#        在输入文章中间的换行行末打反斜杠字符,将取消这一行的换行,实现续行。
#        文章中可使用\/控制符,在一行中手工换新行。
#        长文章显示时会自动按窗口大小分页,可以选择按键继续或自动滚动继续效果。
#     4. 显示选择项和输入数值统一自动收纳,收纳不下会自动分页。
#     5. 选择项的文字中,不能使用字体改变大小和手工换行的控制符,会自动过滤。
#     6. 宏替换配置说明:
#        1) 宏替换的配置写作正规表达式形式。
#        2) 宏替换发生在所有替换及解析之前,因此对替换文本格式不作具体限定。
#           但建议不要和已有的控制符写法重复。
#        3) 宏替换的替换项支持用\1,\2等写法实现向后引用。
#        4) 默认示例的宏替换:
#           \Cn[str],相当于\C[n]str\C[0],即用n号颜色显示str
#           \Cn{str},同上,如果str部分有方括号可以用这个
#           \Un[str],\On[str],\Xn[str],\Kn[str],原理均同上
#     7. 立绘和脸图配置说明:
#        默认设置立绘在Portraits文件夹,脸图在Faces文件夹,可以在配置中修改。
#        如果要挂接到角色,请用行走图的文件名命名脸图,战斗图的文件名命名立绘。
#        脸图支持VX/VA的八合一脸图,参数中写作\F[文件名:1]~\F[文件名:8]即可。
#==============================================================================
[/pre]
欢迎测试:
WindowMessage.zip (560.3 KB, 下载次数: 308)

一些截图:
1.png
2.png
3.png
4.PNG
5.PNG
6.PNG

评分

参与人数 12星屑 +300 赞 +12 收起 理由
qw7971216 + 1 精品文章
dynamicDr + 1 我很赞同
文雅夕露 + 1
gforce + 1 精品文章
鑫晴 + 1 塞糖
水母书亚 + 1 塞糖
89444640 + 1 精品文章
天使喝可乐 + 1 精品文章
梦幻想 + 1 塞糖
RyanBern + 300 希望今后用得上

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2018-1-4 16:55:10 | 显示全部楼层
還沒仔細看腳本···
輔助線是像論壇的代碼那樣把要加輔助線的文字用[x][\x]之類的框起來對吧?
輔助線的顏色可以改嗎?有沒有刪除線(如果用到了日記系統之類的,那刪除線會派到用場)

点评

這裡面的npc是不是有幾個是你認識的人的名字233  发表于 2018-1-4 17:28
你可以在范例工程中看完和“林溪纱”的所有对话,问题自然解决  发表于 2018-1-4 17:27
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
回帖
1074
发表于 2018-1-4 19:42:10 | 显示全部楼层
本帖最后由 文雅夕露 于 2018-1-4 19:52 编辑

功能好齐全的对话脚本。
强制停顿的对话效果可以用按键跳过。
不知该怎么修改才能不让按键跳过关键对话?
在漫画对话框模式里可以添加头像吗...

点评

已在1.1版本中更新你要的效果  发表于 2018-1-7 13:55
所有模式的对话框都可以添加头像。禁用B键跳过可以查找Input.repeat?(B)注释掉那一一段相关代码。或者做一个只有1个选项的选择。  发表于 2018-1-4 20:49
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。
回复

使用道具 举报

梦石
0
星屑
35248
在线时间
4171 小时
注册时间
2007-12-15
回帖
9489
发表于 2018-1-6 06:23:35 | 显示全部楼层
本帖最后由 89444640 于 2018-1-6 07:08 编辑

楼主,我感觉这个应该是对话框插件的需要调整的部分,用楼主的测试工程,未加任何修改,在队伍中只有1~3人的时候,显示的角色窗口特别难看。
未标题-1.png
xp默认窗口队伍成员是1~4人从上向下排列,每个角色占四分之一行

请问能否改回默认效果。
然后如果有时间的话,能不能附加一个这个帖子中
https://rpg.blue/thread-404957-1-1.html
用Characters/Face/ n_f
n代表角色所在编号
这样的方式显示小图片代替行走图的功能?
我感觉这个对很多人都较为实用的。

点评

另外一个问题已在1.1(窗口核心1.4)版本中修正。  发表于 2018-1-7 13:55
改draw_actor_graphic,这个其实属于菜单优化的范围了,下一步做。  发表于 2018-1-7 13:49
回复

使用道具 举报

遠航の猫咪

梦石
3
星屑
26947
在线时间
2423 小时
注册时间
2005-10-15
回帖
987

开拓者

 楼主| 发表于 2018-1-7 13:49:31 | 显示全部楼层
ver 1.1版本更新
回复

使用道具 举报

梦石
0
星屑
78
在线时间
6 小时
注册时间
2018-1-5
回帖
2
发表于 2018-1-17 02:40:54 | 显示全部楼层
战斗状态不太对呀。。某些角色一进去就是蓄力状态,而且buff类的特技一直miss。是兼容问题吗?

点评

有测试工程么看一下  发表于 2018-1-17 09:27
回复

使用道具 举报

梦石
0
星屑
78
在线时间
6 小时
注册时间
2018-1-5
回帖
2
发表于 2018-1-17 17:27:56 | 显示全部楼层
就是你的示例,数据库里战斗测试了一下

点评

1190和1196的@states_changed改为@state_changed,手滑多打了个s。。。  发表于 2018-1-17 18:29
那个工程里防具里铜盾改成了自动状态蓄力,然后另一个确实是我的bug,修改公共核心的1191和1192行将user.改为skill.即可,感谢测试。  发表于 2018-1-17 18:25

评分

参与人数 1星屑 +25 收起 理由
SailCat + 25 感谢测试

查看全部评分

回复

使用道具 举报

遠航の猫咪

梦石
3
星屑
26947
在线时间
2423 小时
注册时间
2005-10-15
回帖
987

开拓者

 楼主| 发表于 2018-1-17 18:33:26 | 显示全部楼层
感谢楼上的测试,范例工程已经修正并更新。
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复

使用道具 举报

梦石
0
星屑
504
在线时间
43 小时
注册时间
2018-2-19
回帖
60
发表于 2018-3-10 03:05:41 | 显示全部楼层
感谢楼主分享。
梦想是谁创造的,梦想是自己创造的。站起来吧。
                      梦想由我们自己来创造。
  无论未来有多么困难,在下都会尽全力走下去。
回复

使用道具 举报

梦石
0
星屑
35248
在线时间
4171 小时
注册时间
2007-12-15
回帖
9489
发表于 2020-1-31 10:55:40 | 显示全部楼层

对话自动送

猫大,求增加【对话框自动关闭】的功能。

需求
1、字越多等待自动关闭时间越长,每个字的等待时间在数脚本里可自行设置,
2、手动指定等待时间,(目的:以实现剧情中角色动作配合对话显示)
3、可以指定是否允许按键跳过这句对话(目的:普通无动作对话允许,大量动作配合对话不允许。)

非常感谢。

点评

哦果然有,这脚本功能太多了,没用过的还真没找到……谢谢猫大。  发表于 2020-1-31 11:27
私信怕不回,思来想去发这里了,抱歉,下次我开新帖吧  发表于 2020-1-31 11:24
\^[n]可以等待n帧自动关闭啊,禁止按键跳过你用\^[0],看前面脚本47行的注释  发表于 2020-1-31 11:24
你这个能不能私信他, 你这樣回貼算挖坟了  发表于 2020-1-31 11:20
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部