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

Project1

 找回密码
 注册会员
搜索
楼主: 百里_飞柳
打印 上一主题 下一主题

[原创发布] 【老鹰的RGSS3脚本小巢】对话框扩展(9.6英语版)

[复制链接]

Lv1.梦旅人

梦石
0
星屑
102
在线时间
17 小时
注册时间
2021-7-4
帖子
3
31
发表于 2021-7-31 14:13:26 | 只看该作者
an_ice 发表于 2021-7-29 21:21
发现大佬还在更新脚本,来问一个很傻瓜的问题。就是我只想使用对话框提供的文字效果,但是不想让脚本中的对 ...

可能是我表达的不够清晰!我的意思是我想保留对话框的原本位置应该怎么设置,只要使用大佬的对话框,对话框就会到人物头上去,我想像13L一样用这个对话框,让对话框还是在屏幕下方,并且不跟随人物,但是不知道参数怎么设置。

点评

不要使用pop转义符,就是默认那样的了……  发表于 2021-7-31 15:27
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
102
在线时间
17 小时
注册时间
2021-7-4
帖子
3
32
发表于 2021-8-2 20:20:44 | 只看该作者
an_ice 发表于 2021-7-31 14:13
可能是我表达的不够清晰!我的意思是我想保留对话框的原本位置应该怎么设置,只要使用大佬的对话框,对话 ...

发现确实是复制大佬样例的时候没删\pop……我是傻瓜感谢大佬的耐心回复!!我懂了!
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
34710
在线时间
6739 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

33
 楼主| 发表于 2021-8-23 17:32:34 | 只看该作者
N多次更新后的自顶:

- 把词条系统(文字版)加入了DEMO中,并且与Addon关键词信息查看进行适配
- 对话框增加了 {{}} 格式文本来调用ruby脚本
- 修复了对话框中的几个奇怪的应该不会有人触发的bug
- Addon选择框扩展优化的注释排版,并且增加了选项的名称,用于制作一次性选项与选过选项的变色
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
14790
在线时间
2106 小时
注册时间
2017-9-28
帖子
662
34
发表于 2021-8-23 21:48:06 | 只看该作者
老鹰大大,这个对话拓展太醋虾了,比较头疼的是我发现和Sion防卡脚本有冲突,自己的工程事件比较多,比较依赖该脚本。
能麻烦您帮看看有方法解决吗?可以有偿!

Sion防卡
RUBY 代码复制
  1. # 事件管理器 v1.1 bug 修正
  2. # 优化默认脚本事件运行效率
  3.  
  4. class Game_Event
  5.   attr(:copy_id, :map_id)
  6.   attr_accessor :copy_self_switch
  7.  
  8.   # 开始
  9.  
  10.   # 默认脚本距离屏幕比较远的事件是不会自主移动的
  11.  
  12.   # 这段脚本让全屏的事件都可以按照设置好的自身移动路线前进,如果静止的事件比较多会
  13.   # 比较省资源。如果不需要这个功能,就删除 开始 ~ 结束 之间的脚本
  14.  
  15.   def update_self_movement
  16.     if @stop_count > stop_count_threshold
  17.       case @move_type
  18.       when 1;  move_type_random
  19.       when 2;  move_type_toward_player
  20.       when 3;  move_type_custom
  21.       end
  22.     end
  23.   end
  24.  
  25.   # 结束
  26.  
  27.   alias_method :sEventManager_init_public_members, :init_public_members
  28.   def init_public_members #覆盖
  29.     @gridding = $game_map.gridding
  30.     sEventManager_init_public_members
  31.   end
  32.   def moveto(x, y) #修改父类方法
  33.     gridding_remove
  34.     super
  35.     gridding_insert
  36.   end
  37.   def move_straight(d, turn_ok = true) #修改父类方法
  38.     gridding_remove
  39.     super
  40.     gridding_insert
  41.   end
  42.   def move_diagonal(horz, vert) #修改父类方法
  43.     gridding_remove
  44.     super
  45.     gridding_insert
  46.   end
  47.   def gridding_remove
  48.     @gridding[@x][@y].delete(self)
  49.   end
  50.   def gridding_insert
  51.     @gridding[@x][@y].push(self)
  52.   end
  53. end
  54.  
  55. class Game_Map
  56.   attr(:gridding)
  57.   alias_method :sEventManager_setup_events, :setup_events
  58.   def setup_events
  59.     @gridding = Array.new(width + 1) { Array.new(height + 1) {[]} }
  60.     sEventManager_setup_events
  61.   end
  62.   def refresh_tile_events #覆盖
  63.   end
  64.   def events_xy(x, y) #覆盖
  65.     @gridding[x][y]
  66.   end
  67.   def events_xy_nt(x, y) #覆盖
  68.     @gridding[x][y].select {|event| !event.through}
  69.   end
  70.   def tile_events_xy(x, y) #覆盖
  71.     @gridding[x][y].select {|event| event.tile? && !event.through}
  72.   end
  73. end
  74. #
  75. # 精灵管理
  76. class Spriteset_Map
  77.   # 设置事件直径,如果你使用的事件图片较大可以适当增大这个数值
  78.   # 以防止事件进入画面但是没有显示出来。
  79.   EventRadius = 2
  80.   alias_method :sEventManager_create_characters, :create_characters
  81.   def create_characters
  82.     sEventManager_create_characters
  83.     setup_event_sprites
  84.   end
  85.   def setup_event_sprites
  86.     @events_sprites = {}
  87.     @character_sprites.each {|sp|
  88.       @events_sprites[sp.character] = sp if sp.character.class == Game_Event
  89.     }
  90.     @events_sprites.each_value {|sp| @character_sprites.delete(sp)}
  91.   end
  92.   alias_method :sEventManager_dispose_characters, :dispose_characters
  93.   def dispose_characters
  94.     @events_sprites.each_value {|sprite| sprite.dispose if sprite}
  95.     sEventManager_dispose_characters
  96.   end
  97.   alias_method :sEventManager_update_characters, :update_characters
  98.   def update_characters
  99.     sEventManager_update_characters
  100.     update_event_sprites
  101.   end
  102.   def update_event_sprites
  103.     ox = $game_map.display_x - EventRadius
  104.     ex = $game_map.display_x + Graphics.width / 32.0 + EventRadius - 1
  105.     oy = $game_map.display_y - EventRadius
  106.     ey = $game_map.display_y + Graphics.height / 32.0 + EventRadius - 0.875
  107.     mw = $game_map.width
  108.     mh = $game_map.height
  109.     lv = $game_map.loop_vertical?
  110.     lh = $game_map.loop_horizontal?
  111.     @events_sprites.each {|event, sprite|
  112.       x = event.real_x
  113.       y = event.real_y
  114.       if (x > ox && x < ex || lv && x + mw > ox && x + mw < ex) &&
  115.          (y > oy && y < ey || lh && y + mh > oy && y + mh < ey)
  116.         sprite ? sprite.update :
  117.           @events_sprites[event] = Sprite_Character.new(@viewport1, event)
  118.       elsif sprite
  119.         sprite.dispose
  120.         @events_sprites[event] = nil
  121.       end
  122.     }
  123.   end
  124. end
VA外站脚本汉化群:226308173   |    部分远古文件备份:https://wwzv.lanzoue.com/b02rac5pc  密码:acgm
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
34710
在线时间
6739 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

35
 楼主| 发表于 2021-8-23 22:19:29 | 只看该作者
Nil2018 发表于 2021-8-23 21:48
老鹰大大,这个对话拓展太醋虾了,比较头疼的是我发现和Sion防卡脚本有冲突,自己的工程事件比较多,比较依 ...

这个的确是我对话框有个bug,导致未找到精灵时直接报错
下个版本会修复,未找到精灵时取消pop效果

和这个插件的兼容如下,放到两个脚本的下面就可以了
  1. #=============================================================================
  2. # ○ 对话框扩展 兼容【事件管理器 v1.1 by Sion】
  3. # 放置于【事件管理器 v1.1 by Sion】与【对话框扩展 by老鹰】之下
  4. #=============================================================================
  5. class Window_EagleMessage
  6.   #--------------------------------------------------------------------------
  7.   # ● 获取pop对象的精灵(用于计算偏移值)
  8.   #--------------------------------------------------------------------------
  9.   def eagle_get_pop_sprite
  10.     # 地图场景中,所存储的并非精灵,需要再次检索
  11.     if pop_params[:type] == :map_chara
  12.       begin
  13.         SceneManager.scene.spriteset.character_sprites.each do |s|
  14.           return s if s.character == @eagle_pop_obj
  15.         end
  16.         SceneManager.scene.spriteset.events_sprites.each do |e, s|
  17.           return s if e == @eagle_pop_obj
  18.         end
  19.       rescue
  20.       end
  21.       return nil
  22.     end
  23.     return @eagle_pop_obj
  24.   end
  25. end
  26. class Spriteset_Map
  27.   attr_reader :events_sprites
  28. end
复制代码

点评

太感谢了!!(流泪  发表于 2021-8-23 22:43
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
34710
在线时间
6739 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

36
 楼主| 发表于 2021-10-24 22:16:48 | 只看该作者
值此程序员整数节日1024,给对话框的DEMO进行了更新

加上了最新写的 粒子发射器 插件,对话框可以使用 \pout 转义符调用粒子特效来移出文字
并且为 对话日志 等我的独立UI加上了炫酷的背景粒子连线的特效

大概没有人能看懂我的粒子系统的使用方法吧(瘫)
所以如果有什么有趣的粒子特效想法也欢迎大家讨论

然而现在这个 粒子发射器 还太菜了,只能进行粒子的发射,没法聚集……

回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
282
在线时间
45 小时
注册时间
2021-5-25
帖子
49
37
发表于 2021-11-4 12:41:44 | 只看该作者
我想问一下,如何让对话日志在打开和退出的时候有声音,就是打开菜单和退出菜单的那个声音
我在其中的好几个地方试图加上Sound.play_ok和Sound.play_cancel,但要么无效要么一直响
因为其它地方都是有音效的,就对话日志没有,感觉会很奇怪
然后我还改了一点地方,就是把那个退出的按钮改成只有X键,按Q键退出不了

点评

在里面的self.call方法,在ui_init前和ui_dispose后加上打开关闭音效  发表于 2021-11-4 14:58
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
282
在线时间
45 小时
注册时间
2021-5-25
帖子
49
38
发表于 2021-11-4 22:46:07 | 只看该作者
大大,我按你说的在ui_init和uidispose的前面和后面加上了Sound.play_ok还有Sound.play_cancel,但是不行,报错为undefined method 『play』 for Sound:Module……
我翻了一下脚本手册,再尝试了一下:
RUBY 代码复制
  1. #---
  2.   # 定义确定音效与取消音效
  3.   #---
  4.   def self.play_ook
  5.     play_system_sound(1)
  6.   end
  7.   def self.play_ccancel
  8.     play_system_sound(2)
  9.   end

然后底下相应地改成:
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 呼叫UI,并执行至结束
  3.   #--------------------------------------------------------------------------
  4.   def self.call
  5.     return if logs.size == 0
  6.     Sound.play_ook
  7.     ui_init
  8.     ui_update
  9.     ui_dispose
  10.     Sound.play_ccancel
  11.   end

还是失败……
所以要怎么加入打开和关闭音效呢?

点评

键盘坏掉了啦, 快去买个新的吧2333333  发表于 2021-11-4 23:18
Sound.play_ok 和 Sound.play_cancel ,名字错了  发表于 2021-11-4 23:10
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
282
在线时间
45 小时
注册时间
2021-5-25
帖子
49
39
发表于 2021-11-5 00:35:47 | 只看该作者
真的可以了,那个ook和ccancel是我重新定义的,所以不是打错了
一开始我添加的就是「Sound.play_ok」和cancel,但不知道为什么报错了,所以我参照帮助手册的Sound模块自己定义了一个
不管了,反正解决了就行
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
662
在线时间
47 小时
注册时间
2022-2-6
帖子
18
40
发表于 2023-9-1 01:56:56 | 只看该作者
你好!
我正在使用谷歌翻譯,希望沒問題。

我發現了一個錯誤。當我使用你最新的MessageEX腳本時這個“\pop[0]\pout[1]\cwave[1]信念之護,嚴峻無畏
同心之伴,創造奇蹟\cwave[0]\temp"

給出一個錯誤。它僅適用於舊腳本的演示。

另外,在 MessageEX 演示中,當與骨骼對話時,此事件“\cin”不起作用。

我怎樣才能解決這個問題?

点评

I fix the two bugs. Cause the partical system in DEMO is V2, and the new MessageEX is for partical V3. The MessageBox is not compatible with MessageEX v1.10.1,and I update it.  发表于 2023-9-1 20:27
我更新了下,是因为粒子系统已经更新到V3,而DEMO中的还是V2,所以出现了报错。 大文本框的报错也修复了,的确是它无法兼容对话框扩展v1.10.1。  发表于 2023-9-1 20:22
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 14:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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