Project1

标题: RyanBern的对话加强,如何在同一句话中切换表情? [打印本页]

作者: 无忧谷主幻    时间: 2026-2-27 21:54
标题: RyanBern的对话加强,如何在同一句话中切换表情?
对话加强中有一个\!   功能为等待玩家按回车再继续
我想让前半段中显示表情1,玩家按回车后显示显示后半段文章,表情也切换成表情2,应该怎么做?
想要达成的真正效果(假设只是同一段文章)



对话加强还需贴吗?应该人手一个吧

作者: 灯笼菜刀王    时间: 2026-2-28 10:45
本帖最后由 灯笼菜刀王 于 2026-2-28 10:49 编辑

我就没有, 我嫌这东西太麻烦功能也不足, 我用自己写的

另外我怀疑你贴出来的脚本和你截图里的不一致, 因为明显截图的头像是单独雪碧, 而脚本是直接在contonts上描绘头像

不管了, 反正我用你这个脚本处理, 用的是不同的脚本自己去整合进去, 原理一样

改两个地方,
1, 找到  @now_text.gsub!(/\\\\/) { "\000" }  这句, 下面增加一句
@now_text.gsub!(/\\[Ss][Ff]\[(.+?)\]/){"\031[#{$1}]"}

2, 找到           
# 另起一行的情况下
if c == "\n"

上面增加一段

  if c == "\031" #换头像
     @now_text.sub!(/\[(.+?)\]/, "")
     self.contents.fill_rect(0,0,@face_indent,@face_h,Color.new(0,0,0,0))
     @face_bitmap = RPG::Cache.face($1)
     self.contents.stretch_blt(Rect.new(0, 0, @face_indent - 4,@face_h),
     @face_bitmap, Rect.new(0, 0, @face_bitmap.width, @face_bitmap.height))
  end

※如果你用的脚本头像是单独雪碧, 那把上面那段的两个 self.contents 替换成对应的 雪碧.bitmap

这样, 用 \sf[图片名]  就可以在逐字显示到该指令的地方时切换头像(切换次数不限, 你写的下的话, 笑)
注意,替换的图片最好和之前的图标宽高一致,否则会变形

PS: 没有测试, 毕竟这脚本使用起来太啰嗦了
作者: lcx666s    时间: 2026-2-28 23:20
纯脚本问题可以直接发给AI修改,效率还是非常高的,可以试试
作者: 无忧谷主幻    时间: 2026-3-1 21:26
本帖最后由 无忧谷主幻 于 2026-3-1 23:17 编辑
灯笼菜刀王 发表于 2026-2-28 10:45
我就没有, 我嫌这东西太麻烦功能也不足, 我用自己写的

另外我怀疑你贴出来的脚本和你截图里的不一 ...


原头像没有消失,现头像把原头像以及部分竖条盖住了
还有这个口……



作者: 无忧谷主幻    时间: 2026-3-2 03:05
lcx666s 发表于 2026-2-28 23:20
纯脚本问题可以直接发给AI修改,效率还是非常高的,可以试试

有什么推荐吗?以前倒是用过豆包写代码,但水平很差,就很少用了
作者: 灯笼菜刀王    时间: 2026-3-2 12:04
无忧谷主幻 发表于 2026-3-1 21:26
原头像没有消失,现头像把原头像以及部分竖条盖住了
还有这个口……


前面不是说了嘛, 你贴的脚本和你截图用的脚本是不同的, 截图脚本的头像是另外的雪碧, 我还没学会掐指算出你给这个雪碧起了什么名字的法术, 笑

另外 ,口的话就在补充的那段脚本 end 上面加一个 c = ""
作者: 无忧谷主幻    时间: 2026-3-2 23:27
本帖最后由 无忧谷主幻 于 2026-3-3 00:01 编辑
灯笼菜刀王 发表于 2026-3-2 12:04
前面不是说了嘛, 你贴的脚本和你截图用的脚本是不同的, 截图脚本的头像是另外的雪碧, 我还没学会掐指算出 ...


脚本就这些,还是上截图吧,这总不应该是我P的图吧?


作者: 灯笼菜刀王    时间: 2026-3-3 09:35
你用的代码在脚本里叫"半身像", 不是"头像" , 不要欺负没用过该脚本的人

想改半身像, 补充的那段脚本替换成

          if c == "\031" #换头像
            @now_text.sub!(/\[(.+?)\]/, "") ;@face = $1 ; c = ""
            @left_picture.bitmap = RPG::Cache.face(@face) if @left_picture != nil
            @right_picture.bitmap = RPG::Cache.face(@face) if @right_picture != nil
          end


作者: 无忧谷主幻    时间: 2026-3-5 21:48
灯笼菜刀王 发表于 2026-3-3 09:35
你用的代码在脚本里叫"半身像", 不是"头像" , 不要欺负没用过该脚本的人

想改半身像, 补充的那段 ...

感谢,大部分解决了,就是切换头像后会空出一大块

顺便又复习了一下关于头像和半身像的区别,脚本的附带工程是这样的


作者: 灯笼菜刀王    时间: 2026-3-6 12:08


空白是你自己的问题, 这段脚本只替换半身像雪碧的bitmap, 不涉及任何对原本脚本的改动
作者: 无忧谷主幻    时间: 2026-3-6 20:03
灯笼菜刀王 发表于 2026-3-6 12:08
空白是你自己的问题, 这段脚本只替换半身像雪碧的bitmap, 不涉及任何对原本脚本的改动 ...

测试了一下,差不多明白了,换头像的命令必须在每一行的开始,如果中途插入甚至放到末尾就会出现这个问题


作者: 灯笼菜刀王    时间: 2026-3-7 11:53
无忧谷主幻 发表于 2026-3-6 20:03
测试了一下,差不多明白了,换头像的命令必须在每一行的开始,如果中途插入甚至放到末尾就会出现这个问题 ...

哦, 忘记处理代码长度

搜索  regex = /[\001-\006\016\017\020\021\024](\[.*?\]){0,1}/

在\024 后面加个 \031





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1