设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1537|回复: 5
打印 上一主题 下一主题

[已经解决] [解决]关于自动换行和文字音效冲突而导致文字音效失效

[复制链接]

Lv2.观梦者

梦石
0
星屑
330
在线时间
17 小时
注册时间
2022-1-1
帖子
45
跳转到指定楼层
1
发表于 2022-1-3 13:09:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 D_Lohy 于 2022-1-3 14:05 编辑

RT ,脚本如下X
自动换行和文字音效同时使用导致了文字音效脚本失效(单独使用没有问题)
有没有解决方法或者有别的可以脚本可以兼容呢?
文字音效作者:@喵呜喵5  (我自己加了一点东西X
自动换行作者:@iisnow
文字音效:
  1. =begin

  2. ===============================================================================
  3.   来自喵呜喵5加强的 ひきも記文字制作的效果音 的修改版
  4. ===============================================================================
  5. 《喵呜喵5加强的ひきも記的<★ RGSS3_メッセージ効果音 Ver1.1>》的修改版(?)
  6. 添加2个定义 一个是音量一个是声调XD
  7. =
  8. ===============================================================================
  9.   ひきも記文字效果音加强 By喵呜喵5
  10. ===============================================================================
  11. 【说明】
  12. ひきも記的《★ RGSS3_メッセージ効果音 Ver1.1》的修改版
  13. (原脚本:http://hikimoki.sakura.ne.jp/rgss3/script_neta/tmmessagese.rb)
  14. 使用的文字效果音分别命名为Cursor0、Cursor1、Cursor2……放到SE文件夹下
  15. 接着修改变量的数值,即可实现不同对话使用不同文字效果音,
  16. 不能实现一句对话中途修改效果音的效果,因为我懒得去研究转义字符怎么写……

  17. =
  18. ==============================================================================
  19. ★ RGSS3_メッセージ効果音 Ver1.1
  20. ==============================================================================

  21. 作者:tomoaky
  22. webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/)

  23. 文章の表示コマンド実行時、文字の表示と一緒に効果音を鳴らします。

  24. 制御文字 \B を使って効果音を再生するかどうかを設定できます。
  25. \B が出てくるたびに切り替わりますが AUTO_SE が true の場合は
  26. 最初から効果音が鳴る状態になっています。

  27. おまけ機能として文章の表示速度を変更することができます。

  28. 设定了游戏变量(初期设定是8号)的数值越大
  29. 显示速度越慢。1 是默认速度最低值。

  30. 使用游戏变量(初期设定)
  31.   0008
  32.   
  33. 2012.01.22  Ver1.1
  34.   おまけ機能の文章表示速度変更を追加
  35.   
  36. 2012.01.21  Ver1.0
  37.   公开

  38. =end

  39. module TMMESSAGESE

  40.   AUTO_SE = true    #true为自动播放
  41.   VN_MESSAGE_WAIT = 93  #设置文字显示速度的变量
  42.   SE_TYPE = 94          #设置使用哪个效果音的变量
  43.   SE_VOLUME = 95        #设置效果音音量的变量
  44.   SE_PITCH = 96         #设置效果音声调的变量

  45. end

  46. #==============================================================================
  47. # ■ Window_Message
  48. #==============================================================================
  49. class Window_Message
  50.   #--------------------------------------------------------------------------
  51.   # ● フラグのクリア
  52.   #--------------------------------------------------------------------------
  53.   alias tmmessagese_window_message_clear_flags clear_flags
  54.   def clear_flags
  55.     tmmessagese_window_message_clear_flags
  56.     @se_flag = TMMESSAGESE::AUTO_SE
  57.     @se_name = "Cursor"+$game_variables[TMMESSAGESE::SE_TYPE].to_s
  58.     @se_volume = $game_variables[TMMESSAGESE::SE_VOLUME]
  59.     @se_pitch = $game_variables[TMMESSAGESE::SE_PITCH]
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 一文字出力後のウェイト
  63.   #--------------------------------------------------------------------------
  64.   alias tmessagese_window_message_wait_for_one_character wait_for_one_character
  65.   def wait_for_one_character
  66.     [$game_variables[TMMESSAGESE::VN_MESSAGE_WAIT], 1].max.times do |i|
  67.       tmessagese_window_message_wait_for_one_character
  68.     end
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 文字效果音处理(?
  72.   #--------------------------------------------------------------------------
  73.   alias tmmessagese_window_message_process_normal_character process_normal_character
  74.   def process_normal_character(c, pos)
  75.     tmmessagese_window_message_process_normal_character(c, pos)
  76.     RPG::SE.new(@se_name,@se_volume,@se_pitch).play if @se_flag
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 制御文字の処理
  80.   #     code : 制御文字の本体部分(「\C[1]」なら「C」)
  81.   #     text : 描画処理中の文字列バッファ(必要なら破壊的に変更)
  82.   #     pos  : 描画位置 {:x, :y, :new_x, :height}
  83.   #--------------------------------------------------------------------------
  84.   alias tmmessage_window_message_process_escape_character process_escape_character
  85.   def process_escape_character(code, text, pos)
  86.     case code.upcase
  87.     when 'B'
  88.       @se_flag ^= true
  89.     else
  90.       tmmessage_window_message_process_escape_character(code, text, pos)
  91.     end
  92.   end
  93. end
复制代码



自动换行:
  1. class Window_Base

  2.   alias :iisnow_convert_escape_characters :convert_escape_characters
  3.   def convert_escape_characters(text)
  4.     result = iisnow_convert_escape_characters(text)
  5.     result.gsub!(/\ek/)          { "\k" }
  6.     result.gsub!(/\ef/)          { "\f" }
  7.     result
  8.   end

  9.   def process_character(c, text, pos)
  10.     case c
  11.     when "\r"  
  12.       return
  13.     when "\n"  
  14.       process_new_line(text, pos) if !@auto_n
  15.     when "\k"
  16.       @auto_n = false
  17.     when "\f"   
  18.       process_new_page(text, pos)
  19.     when "\e"   
  20.       process_escape_character(obtain_escape_code(text), text, pos)
  21.     else      
  22.       process_normal_character(c,text,pos)
  23.     end
  24.   end

  25.   def process_normal_character(c,text,pos)
  26.     @auto_n = true
  27.     text_width = text_size(c).width
  28.     if real_width - pos[:x] > text_width
  29.       draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], c)
  30.       pos[:x] += text_width
  31.     else
  32.       process_new_line(text,pos)
  33.       process_normal_character(c,text,pos)
  34.     end
  35.   end

  36.   def real_width
  37.     return self.width - 2 * standard_padding
  38.   end

  39. end

  40. class Window_Message

  41.   def process_normal_character(c,text,pos)
  42.     super
  43.     wait_for_one_character
  44.   end

  45. end
复制代码





LLLLLLLLLLLLLLohy吖

Lv2.观梦者

梦石
0
星屑
330
在线时间
17 小时
注册时间
2022-1-1
帖子
45
2
 楼主| 发表于 2022-1-3 13:52:23 | 只看该作者
笑死了,又在别人回答之前解决了》》》C
具体方法过会再说
LLLLLLLLLLLLLLohy吖
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
10715
在线时间
2028 小时
注册时间
2013-6-10
帖子
1498
3
发表于 2022-1-3 13:55:09 | 只看该作者
所以这是一个设问帖
✧٩(ˊωˋ*)و✧
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
330
在线时间
17 小时
注册时间
2022-1-1
帖子
45
4
 楼主| 发表于 2022-1-3 13:55:25 | 只看该作者
D_Lohy 发表于 2022-1-3 13:52
笑死了,又在别人回答之前解决了》》》C
具体方法过会再说

我去下载了原版本(网址 http://hikimoki.sakura.ne.jp/rgss3/script_neta/tmmessagese.rb)
把喵呜喵大大的加强版脚本替换掉了
就能用了X
LLLLLLLLLLLLLLohy吖
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
330
在线时间
17 小时
注册时间
2022-1-1
帖子
45
5
 楼主| 发表于 2022-1-3 13:58:54 | 只看该作者
小怪兽奇奇侠 发表于 2022-1-3 13:55
所以这是一个设问帖
✧٩(ˊωˋ*)و✧

雀食 有道理XD
LLLLLLLLLLLLLLohy吖
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
330
在线时间
17 小时
注册时间
2022-1-1
帖子
45
6
 楼主| 发表于 2022-1-3 14:00:37 | 只看该作者
D_Lohy 发表于 2022-1-3 13:55
我去下载了原版本(网址 http://hikimoki.sakura.ne.jp/rgss3/script_neta/tmmessagese.rb)
把喵呜喵大 ...

另外
  1. =begin
  2. ===============================================================================
  3. 自动换行 By喵呜喵5
  4. ===============================================================================

  5. 【说明】

  6. 显示文章的自动换行
  7. 咱不负责修正本脚本中出现的BUG,因为就算出现BUG我也不知道怎么修正……
  8. 修改了默认Window_Message中的
  9. process_normal_character(c, pos)
  10. 因此会与修改了相同内容的其他脚本不兼容

  11. =end

  12. #==============================================================================
  13. #  设定部分
  14. #==============================================================================

  15. module M5AuMes
  16.   Switch = 0  #这里设置开关,开关开启则不使用自动换行
  17. end

  18. #==============================================================================
  19. #  设定结束
  20. #==============================================================================

  21. #==============================================================================
  22. #  脚本部分
  23. #==============================================================================

  24. class Window_Message < Window_Base

  25.   def process_normal_character(c, pos)
  26.     super
  27.     if (pos[:x] + 4 + self.contents.text_size(c).width) > self.contents.width && !$game_switches[M5AuMes::Switch]
  28.       process_new_line(c, pos)
  29.     end        
  30.     wait_for_one_character
  31.   end

  32. end

  33. #==============================================================================
  34. #  脚本结束
  35. #==============================================================================
复制代码

自动换行脚本改成了喵呜喵5的
LLLLLLLLLLLLLLohy吖
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-16 13:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表