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

Project1

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

[已经解决] 疑似BUG,喵大的地圖顯示變數

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

跳转到指定楼层
1
发表于 2016-3-6 17:09:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如題


試著查明原因很久,但依然不清楚如何觸發該BUG

BUG一次後,再次執行就可以進入遊戲,進入後無任何不良影響
已知當我對遊戲有所設定變動 (包含變數修改、人物起始位置改變、玩家初始時透明設定等)
就有一定機率跑出這個BUG

但是沒有規律可行,重複上述步驟不見得會發生
應該是哪邊出問題了

求解

点评

不是不提供,真的是忘記了>< 已經好多天沒睡好,腦袋不清醒  发表于 2016-3-6 21:39
回复一楼点评:你连出错的脚本时哪个都不愿意告诉我,我怎么检查?  发表于 2016-3-6 20:16
不给代码或者传送门咩……  发表于 2016-3-6 18:41
我用喵大的另一个脚本也出现了BUG,请大伙儿帮忙,本聪概不提供脚本范例,谁有幸帮助本聪的自行搜索下载去...  发表于 2016-3-6 17:51
[神性领域扩张:扩张神性领域]
说了等于没说.

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9414 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

2
发表于 2016-3-6 20:16:08 | 只看该作者
你连出错的代码是哪句都不告诉我,我怎么检查?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

3
 楼主| 发表于 2016-3-6 21:38:09 | 只看该作者
喵呜喵5 发表于 2016-3-6 20:16
你连出错的代码是哪句都不告诉我,我怎么检查?

抱歉抱歉,百忙之下忘了最重要的事情@@
  1. =begin
  2. ===============================================================================
  3.   地图显示变量 By 喵呜喵5
  4. ===============================================================================

  5. 【说明】

  6.   在地图上显示变量,支持许多的自定义操作

  7. =end
  8. $m5script ||= {};raise("需要喵呜喵5基础脚本的支持") unless $m5script[:M5Base]
  9. $m5script[:M5Var20140815] = 20150803;M5script.version(20150706)
  10. module M5Var20140815;VAR_CONFIG =[
  11. =begin
  12. #==============================================================================
  13. #  设定部分
  14. #==============================================================================

  15.   下面的每一对大括号对应地图上的一个窗口,中间的内容就是窗口的属性
  16.   具体的格式请参考下面给出的范例(※注意每大括号最后的逗号)

  17.   添加内容的格式为:

  18.     需要设置的属性: 属性的值 ,

  19.   (※ 冒号和属性的值之间请加上空格,不要忘记每条设置最后的逗号)

  20.   可以设置的属性如下:

  21.   VAR      要显示的变量的ID
  22.   X        窗口左上角的X坐标
  23.   Y        窗口左上角的Y坐标
  24.   X2       窗口右下角的X坐标
  25.   Y2       窗口右下角的Y坐标
  26.   Z        窗口的Z高度,可以为负数
  27.            高度比较大的窗口将遮住高度比较低的窗口
  28.   HINT1    在变量的数值前面显示的提示文字(前后要加英文引号)
  29.   HINT2    在变量的数值后面显示的提示文字(前后要加英文引号)
  30.   POSX     窗口文字的起始X坐标
  31.   POSY     窗口文字的起始Y坐标
  32.   BACK     窗口的背景图片,文件放在Graphics/System/下(前后要加英文引号)
  33.            文件不存在时,窗口背景透明
  34.   SX       背景图片的X坐标
  35.   SY       背景图片的Y坐标
  36.   SWI      窗口的开关ID,当对应ID的开关打开时不显示这个窗口
  37.   INV_SWI  窗口的开关ID,当对应ID的开关【关闭】时不显示这个窗口
  38.   EVAL     窗口显示的内容变为代码的返回值,VAR属性将被忽略(需要双引号)
  39.            如果不懂意思的话请不要设置这个属性
  40.   SCENE    窗口只在特定的 Scene 才显示,如果不懂意思的话请不要设置这个属性

  41. =end

  42. #  {
  43. #  VAR:   1,
  44. #  X:     0,
  45. #  X2:    544,
  46. #  Y2:    416,
  47. #  HINT1: "\\i[10]1号变量的值是",
  48. #  HINT2: "的说(打开2号开关试试?)",
  49. #  SWI:   2,
  50. #  POSX: 50,
  51. #  },

  52. #  {
  53. #  VAR: 2,
  54. #  X2: 544,
  55. #  HINT1: "2号变量的\n值是:",
  56. #  BACK: "",
  57. #  },

  58. #  {
  59. #  X:       0,
  60. #  HINT1:   "这个是不显示变量数值的窗口\n",
  61. #  HINT2:   "仅当2号开关打开时才显示",
  62. #  INV_SWI:  2,
  63. #  },

  64. #  {
  65. #  EVAL:  "$game_player.x",
  66. #  HINT1: "玩家的地图X坐标为:",
  67. #  SCENE: Scene_Menu,
  68. #  },


  69.   ] # 请不要删除这行

  70.   Z = 200   # 如果窗口遮住其他不希望遮住的内容了,请调小这个数值

  71.   SWI = 11   # 对应ID的开关打开时,关闭本脚本的功能,不在地图上显示变量,
  72.             # 这个全局开关优先于各个窗口单独设置的开关
  73.             # 我的其他需要本脚本支持的脚本也会受到这个开关的影响而失效
  74.             # 如果不需要这个开关的话,这里请填 nil

  75.   INV_SWI = nil  # 对应ID的开关【关闭】时,关闭本脚本的功能,不在地图上显示变量,
  76.                  # 这个全局开关优先于各个窗口单独设置的开关以及上面设置的开关
  77.                  # 我的其他需要本脚本支持的脚本也会受到这个开关的影响而失效
  78.                  # 如果不需要这个开关的话,这里请填 nil

  79. #==============================================================================
  80. #  设定结束
  81. #==============================================================================
  82. class Window_Var < M5script::Window_Var
  83.   #--------------------------------------------------------------------------
  84.   # ● 开始处理
  85.   #--------------------------------------------------------------------------
  86.   def initialize(config,cal)
  87.     super(config,cal)
  88.     update
  89.     refresh if @config[:ONLY]
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # ● 获取窗口的设置
  93.   #--------------------------------------------------------------------------
  94.   def get_config(config)
  95.     super(config)
  96.     @config[:Z] += Z
  97.     @config[:HINT1] ||= ""
  98.     @config[:HINT2] ||= ""
  99.     @config[:POSX] ||= 0
  100.     @config[:POSY] ||= 0
  101.   end
  102.   #--------------------------------------------------------------------------
  103.   # ● 更新
  104.   #--------------------------------------------------------------------------
  105.   def update
  106.     super
  107.     return if update_close_judge
  108.     @background_sprite.opacity = 255 if @background_sprite and \
  109.     @background_sprite.opacity != 255
  110.     open if close?
  111.     update_content unless @config[:ONLY]
  112.   end
  113.   #--------------------------------------------------------------------------
  114.   # ● 更新窗口的关闭判断
  115.   #--------------------------------------------------------------------------
  116.   def update_close_judge
  117.     if close_judge
  118.       @background_sprite.opacity = 0 if @background_sprite and \
  119.       @background_sprite.opacity != 0
  120.       close if open?
  121.       return true
  122.     end
  123.     false
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● 窗口是否应该关闭? (true:关闭)
  127.   #--------------------------------------------------------------------------
  128.   def close_judge
  129.     return true if INV_SWI && !$game_switches[INV_SWI]
  130.     return true if SWI && $game_switches[SWI]
  131.     return true if @config[:INV_SWI] && !$game_switches[@config[:INV_SWI]]
  132.     return true if @config[:SWI] && $game_switches[@config[:SWI]]
  133.     false
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● 更新窗口内容
  137.   #--------------------------------------------------------------------------
  138.   def update_content
  139.     if @config[:EVAL] then refresh if eval(@config[:EVAL]) != @cont
  140.     else refresh if $game_variables[@config[:VAR]] != @cont
  141.     end
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # ● 描绘文字
  145.   #--------------------------------------------------------------------------
  146.   def refresh
  147.     if @config[:EVAL] then @cont = eval(@config[:EVAL])
  148.     else @cont = $game_variables[@config[:VAR]] rescue 0
  149.     end
  150.     if @config[:ONLY] then @word = "#{@config[:HINT1]}#{@config[:HINT2]}"
  151.     else @word = "#{@config[:HINT1]}#{@cont}#{@config[:HINT2]}"
  152.     end
  153.     update_placement
  154.     update_position
  155.     draw_text_ex(@config[:POSX], @config[:POSY], @word)
  156.   end
  157. end
  158. end # M5Var20140815
  159. #--------------------------------------------------------------------------
  160. # ● Scene_Base
  161. #--------------------------------------------------------------------------
  162. class Scene_Base
  163.   #--------------------------------------------------------------------------
  164.   # ● 生成窗口
  165.   #--------------------------------------------------------------------------
  166.   alias m5_20131103_start start
  167.   def start
  168.     m5_20131103_start
  169.     @m5_20140815_cal_size_window = M5script::Window_Cal.new
  170.     @m5_20140815_var_windows = []
  171.     (M5Var20140815::VAR_CONFIG + self.class.m5_20150517_window).each do |config|
  172.       next unless config
  173.       next unless self.class == (config[:SCENE] ? config[:SCENE] : Scene_Map)
  174.       if !(config[:VAR] || config[:EVAL])
  175.         next unless (config[:HINT1] || config[:HINT2])
  176.         config[:ONLY] = true
  177.       end
  178.       @m5_20140815_var_windows.push(
  179.         M5Var20140815::Window_Var.new(config,@m5_20140815_cal_size_window) )
  180.     end
  181.     @m5_20140815_var_windows.compact!
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ● 更新窗口
  185.   #--------------------------------------------------------------------------
  186.   alias m5_20131103_update update
  187.   def update
  188.     m5_20131103_update
  189.     return if scene_changing?
  190.     return unless @m5_20140815_var_windows
  191.     @m5_20140815_var_windows.each {|window| window.update if window}
  192.   end
  193.   #--------------------------------------------------------------------------
  194.   # ● 释放窗口
  195.   #--------------------------------------------------------------------------
  196.   alias m5_20131103_terminate terminate
  197.   def terminate
  198.     m5_20131103_terminate
  199.     return unless @m5_20140815_var_windows
  200.     @m5_20140815_var_windows.each {|window| window.dispose if window}
  201.   end
  202.   #--------------------------------------------------------------------------
  203.   # ● 为其他脚本提供的接口
  204.   #--------------------------------------------------------------------------
  205.   def self.m5_20150517_window(config = nil)
  206.     @m5_20150517_add_window ||= []
  207.     return @m5_20150517_add_window unless config
  208.     hash = { EVAL: "#{config}.text", SCENE: self }
  209.     [:X, :Y, :X2, :Y2, :Z, :BACK, :SX, :SY, :POSX, :POSY, :SWI,
  210.       :INV_SWI].each do |key|
  211.       hash[key] = config.const_get(key) rescue nil
  212.     end
  213.     @m5_20150517_add_window.push hash
  214.   end
  215. end
复制代码
[神性领域扩张:扩张神性领域]
说了等于没说.
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9414 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

4
发表于 2016-3-6 22:09:21 | 只看该作者
duzine 发表于 2016-3-6 21:38
抱歉抱歉,百忙之下忘了最重要的事情@@

使用了哪个需要本脚本支持的脚本?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

5
 楼主| 发表于 2016-3-6 22:30:51 | 只看该作者
喵呜喵5 发表于 2016-3-6 22:09
使用了哪个需要本脚本支持的脚本?

有一個,事件提示
  1. =begin
  2. ===============================================================================
  3.   事件提示 By喵呜喵5
  4. ===============================================================================

  5. 【说明】

  6.   在地图上显示主角面前事件的提示文字

  7.   在要显示文字的事件在事件指令列表的开头插入一个 注释 指令,注释的内容为:

  8.     <提示 要显示的文字>

  9.   即可

  10. =end
  11. $m5script ||= {}
  12. raise("需要喵呜喵5地图显示变量脚本的支持") unless $m5script[:M5Var20140815]
  13. $m5script[:M5EC20150129] = 20150519
  14. M5script.version(20150519,"喵呜喵5地图显示变量脚本版本过低",:M5Var20140815)
  15. module M5EC20150129
  16. #==============================================================================
  17. #  设定部分
  18. #==============================================================================

  19.   X = 0

  20.   # 设置窗口左侧的X坐标(不需要设置而是由脚本自动计算的话,填写nil)

  21.   Y = nil

  22.   # 设置窗口上方的Y坐标(不需要设置而是由脚本自动计算的话,填写nil)

  23.   X2 = 544

  24.   # 设置窗口右侧的X坐标(不需要设置而是由脚本自动计算的话,填写nil)

  25.   Y2 = 416

  26.   # 设置窗口下方的Y坐标(不需要设置而是由脚本自动计算的话,填写nil)

  27.   POSX = 10

  28.   # 设置提示文字的起始X坐标

  29.   POSY = 0

  30.   # 设置提示文字的起始Y坐标

  31.   SWI = 0

  32.   # 对应ID的开关打开时,不显示窗口

  33.   BACK = ""

  34.   # 设置窗口的背景图片,不需要则填入nil。背景图片素材放到 Graphics\System 目录下

  35.   SX = 0

  36.   # 设置背景图片的X坐标

  37.   SY = 0

  38.   # 设置背景图片的Y坐标

  39.   Z = -50

  40.   # 如果窗口遮住不希望遮住的内容了,调小这个数值(可以为负数)

  41. #==============================================================================
  42. #  脚本部分
  43. #==============================================================================
  44.   def self.text
  45.     x = $game_map.round_x_with_direction($game_player.x, $game_player.direction)
  46.     y = $game_map.round_y_with_direction($game_player.y, $game_player.direction)
  47.     event = $game_map.events[$game_map.event_id_xy(x, y)]
  48.     return "" unless event && event.list
  49.     return M5script.read_event_note($game_map.map_id, event.id, "提示","")
  50.   end
  51. end
  52. class Scene_Map; m5_20150517_window(M5EC20150129); end
复制代码
[神性领域扩张:扩张神性领域]
说了等于没说.
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9414 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

6
发表于 2016-3-6 23:42:28 | 只看该作者
事件提示脚本已更新
https://rpg.blue/home.php?mod=sp ... o=blog&id=13986
虽然我仍然觉得不会出现这个BUG,并且测试的时候也无法测试出来
姑且加了异常处理,至少不会强制报错了

顺便问一句,你对游戏地图做出改动后重新进入游戏是开始新游戏还是读取存档

点评

這個BUG我目前也測不出個正常觸發流程,不過我是重新開始新遊戲  发表于 2016-3-7 10:05
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 08:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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