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

Project1

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

[讨论] 继续汇报RGSS1隐蔽bug并预告一个东西

[复制链接]

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23186
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

跳转到指定楼层
1
发表于 2021-12-5 21:01:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
我真的是不知道RGSS1还能给我多少惊喜,或者惊吓了……

“天气设置”的设置时间和“等待”中的时间始终无法同步,最后发现问题在下面
Interpreter 5从329行开始的连续代码段如下:
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 更改图片色调
  3.   #--------------------------------------------------------------------------
  4.   def command_234
  5.     # 获取图片编号
  6.     number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
  7.     # 开始更改色调
  8.     $game_screen.pictures[number].start_tone_change(@parameters[1],
  9.       @parameters[2] * 2)
  10.     # 继续
  11.     return true
  12.   end
  13.   #--------------------------------------------------------------------------
  14.   # ● 删除图片
  15.   #--------------------------------------------------------------------------
  16.   def command_235
  17.     # 获取图片编号
  18.     number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
  19.     # 删除图片
  20.     $game_screen.pictures[number].erase
  21.     # 继续
  22.     return true
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 天候设置
  26.   #--------------------------------------------------------------------------
  27.   def command_236
  28.     # 设置天候
  29.     $game_screen.weather(@parameters[0], @parameters[1], @parameters[2])
  30.     # 继续
  31.     return true
  32.   end

注意234的第三个参数(@parameters[2])有*2的处理,但236没有这个处理。
结果就导致“天气设置”中的“帧”的定义和其他带“帧”的指令都不一样,因为RGSS1的事件系统是20,内部执行是40(不论开不开平滑),这导致天气在默认设置中是折半的。

以及预告下面这个插件(调试中等稳妥解决上面这个bug,应该就差不多了):
RUBY 代码复制
  1. #==============================================================================
  2. # ■ [Sprite Custom Weather] 精灵增强-粒子天气 v1.0 by SailCat
  3. # /req [Sprite] 精灵增强系统核心 v1.0
  4. #------------------------------------------------------------------------------
  5. #   方法:本脚本插入到Main之前使用
  6. #   依赖:精灵增强系统核心
  7. #   版本:v1.0 (Build 211202)
  8. #   效果:
  9. #     1. 可以自定义天气的强度(可超过事件系统1-9的范围)
  10. #     2. 可以自定义天气的种类(共8种,不限于系统默认的晴风雨雪)
  11. #     3. 动画天气效果(警告:过度使用可能会有性能损失)
  12. #     4. 利用天气引擎实现粒子动画效果(可以和天气同屏渲染,注意性能)
  13. #   配置:天气强度上限、八种默认天气的粒子行为参数、天气粒子色彩、屏显范围
  14. #   冲突:无
  15. #   说明:
  16. #     1. 自定义天气使用插件命令实现,具体为:
  17. #        cmd_custom_weather(天气种类, 强度表, 延迟帧[, 自定义图片表[, 动画表]])
  18. #        其中最后两个参数可选
  19. #        a) 天气种类为任意0-255的数值,也可写作字符串,具体如下
  20. #           数值   字符串   含义      数值   字符串   含义
  21. #            1     rain     下雨       16    sand     扬沙
  22. #            2     storm    刮风       32    hail     冰雹
  23. #            4     snow     下雪       64    sleet    冻雨
  24. #            8     dust     浮尘      128    petal    花雨
  25. #           若要多种天气同屏显示,可用数值的和表示,或用逗号隔开多个天气
  26. #           如 5 表示 雨夹雪 的天气,也可写成 "rain,snow"
  27. #           如 146 表示 风吹沙起花落 的天气,也可写成 "storm,petal,sand"
  28. #           写作 0 表示没有天气,也可以用事件“天气设置”为“无”来关掉天气
  29. #        b) 强度表可以只写一个数字,表示指定的天气种类统一设为该强度
  30. #           也可以写成数组形式,表示按天气种类的顺序分别指定强度
  31. #           若天气种类用数值表示,则按数字从小到大的顺序指定
  32. #           若天气种类用字符串表示,则按字符串中的顺序指定
  33. #           天气强度的数值设为1-9与事件系统“天气设置”相同,10以上为扩展强度
  34. #        c) 延迟帧的含义和事件系统的“天气设置”相同,即在X帧之后渐变达到强度
  35. #        d) 自定义图片表为字符串数组形式(若只有1个天气元素可省略数组)
  36. #           与指定的天气种类逐一对应,用以代替系统默认的天气粒子图片
  37. #        e) 动画表为动画ID的数组形式(若只有1个天气元素可省略数组)
  38. #           与指定的天气种类逐一对应,表示在这些天气粒子上同时播放对应ID的动画
  39. #        (注:由于XP内建支持雾图形功能,多云、阴、沙尘暴、雾、霾等强阴影天气,
  40. #        建议使用雾图形功能实现)
  41. #     2. 粒子动画使用插件命令实现,具体为:
  42. #        cmd_particle_setup(发射器编号, 粒子元件名, 发射器设置, 粒子设置, 强度)
  43. #        a) 发射器编号为1-8的值,是控制发射器的凭据,对同一个发射器的反复设置会
  44. #           覆盖前一次的设置,其逻辑类似于显示图片
  45. #           可以在设置中更改最大并发数,注意性能问题
  46. #        b) 粒子元件名即粒子的元件图片名称,要放在Graphics/Pictures文件夹中
  47. #        c) 发射器设置为一个长度为3的数组:[粒子再生率, 关键帧表, 缓动类型]
  48. #           粒子再生率是一个自然数,表示发射器每帧最多可增加或减少该数目的粒子
  49. #           关键帧表是粒子发射器的移动位置变化表,以{帧数=>Rect}的hash形式表示
  50. #           每一帧的Rect表示粒子发射器在这一帧可生成粒子的范围区域
  51. #           缓动类型是粒子发射器在两个相邻关键帧间的移动补间方式,用字符串表示
  52. #           "linear": 表示粒子发射器在两个关键帧之间线性补间处理(默认)
  53. #           "static": 表示粒子发射器在两个关键帧之间不进行补间处理
  54. #           "smooth": 表示粒子发射器在两个关键帧之间平滑补间处理
  55. #           "slow": 表示粒子发射器在两个关键帧之间慢速补间处理(比smooth平滑)
  56. #           "hasty": 表示粒子发射器在两个关键帧之间急动补间处理
  57. #           "fast": 表示粒子发射器在两个关键帧之间快速补间处理(比hasty急动)
  58. #           "circular": 表示粒子发射器在两个关键帧之间圆性补间处理
  59. #           "axial": 表示粒子发射器在两个关键帧之间轴性补间处理
  60. #        d) 粒子设置是一个长度为10的数组,可任选以下两种方式之一表示:
  61. #           i. [0, 水平初速, 垂直初速, 淡出, 水平加速, 垂直加速, 动力, 自旋,
  62. #               放大率, 放大加速]
  63. #           ii.[1, 移向, 移速, 淡出, 转向, 加速, 动力, 自旋, 放大率, 放大加速]
  64. #           具体效果可以参考脚本配置区中默认天气粒子的设置
  65. #        e) 强度和天气设置相同,强度1同时发射8个粒子,强度每+1,同时发射粒子+4
  66. #     3. 粒子动画的实时控制用插件命令实现,具体为:
  67. #        cmd_particle_control(发射器编号, 命令[, 参数])
  68. #        发射器编号就是生成粒子动画时指定的编号
  69. #        命令为以下五个字符串之一:
  70. #        "change": 更改粒子动画的元件名为参数指定的新文件名
  71. #        "max": 更改粒子动画的强度上限为新的参数指定的值,发射器将缓缓再生粒子
  72. #        "fade": 无参数,阻止发射器中粒子的再生行为,所有粒子消失后,消除发射器
  73. #        "kill": 无参数,立即停止粒子动画,清除一切粒子,并消除发射器
  74. #        "proc": 参数指定一个Proc,更改发射器的粒子清除判定规则
  75. #                默认规则为粒子进入画面无效区域,或者粒子淡出到指定透明度以下
  76. #     4. 本插件改变了在事件中连续设定天气的解释逻辑,每当设定一个延迟帧不为0的
  77. #        天气(包括用事件指令和插件命令设定时),如果此时已经有天气变化的预约调
  78. #        用,不会覆盖调用天气变化,而是追加为排队的调用。
  79. #        如果确需覆盖调用,可插入一个延迟帧为0的天气指令,这会清空预约队列。
  80. #==============================================================================

评分

参与人数 1+1 收起 理由
taeckle + 1 大神威武!

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

3
发表于 2021-12-8 20:51:45 | 只看该作者
说起来我一直没搞清楚,事件执行速度减半(20帧)是怎么做到的……
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7921
在线时间
1049 小时
注册时间
2012-4-3
帖子
1271

开拓者

2
发表于 2021-12-5 21:50:38 手机端发表。 | 只看该作者
修复bug·good!
如果只是时间帧还好吧,毕竟实际用到天气还是要实机测试的,当场发现时间不够什么的,手动加时也可以加到合适为止。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-10 23:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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