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

Project1

 找回密码
 注册会员
搜索
查看: 2378|回复: 2

[已经解决] 【已解决】“视界制限”脚本相关问题~

[复制链接]

Lv2.观梦者

梦石
0
星屑
275
在线时间
16 小时
注册时间
2019-4-9
帖子
24
发表于 2020-2-16 23:31:41 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 VIPArcher 于 2022-5-28 01:59 编辑

网上大神公开的一个视野限制脚本,我是通过一个B站UP主分享获取的,在使用过程中发现一个问题~
例如:A、B两个房间,设定房间B使用视野限制。
在房间A内做个密码箱(也就是变量事件),需要通过密码输入获取物品
问题是,当通过密码把A房间的密码箱打开后,再次进入到B房间,房间的视野限制脚本失效。
暂时只试了两个房间,没有试多个房间,不知道是不是变量触发后整个脚本都失效了~
想请大佬帮忙看下是哪里出了问题。附脚本内容。
RUBY 代码复制
  1. #==============================================================================
  2. # ★ RGSS3_视界制限 Ver1.1
  3. #==============================================================================
  4. =begin
  5.  
  6. 作者:tomoaky
  7. 首发网站:ひきも记 ([url]http://hikimoki.sakura.ne.jp/[/url])
  8.  
  9. 设定号码的地图限制视野。
  10.  
  11. 写在角色,职业,是在武器(防护具)的备注中的标签
  12. 能补正视野限制的尺寸。
  13. 例)<视界补正 32>
  14. 视界32点扩大広。
  15. 只有战斗成员进行视野补正价值的计算。
  16.  
  17. 游戏变量(默认情况下,#9),可以调整大小使用视图领域。
  18.  
  19. 加入上述所有设置,将获得的实际大小限制的能见度。
  20. 然而,如果尚未设置能见度限制的地图上都是无效的。
  21.  
  22. 因为每帧都会重绘整个屏幕的Sprite
  23. 将会有所加重。
  24.  
  25. 操作所需的图像
  26.   Graphics/System/sight_shadow.png
  27.  
  28. 游戏变量使用(默认设置)
  29.   0009
  30.  
  31. 2012.02.05  Ver1.1
  32.   ・调整Z坐标使计时器使不被遮住
  33.   ・加使用游戏变量补正视野限制尺寸的功能(通过变量可做成开/関效果)
  34.  
  35. 2012.01.20  Ver1.0
  36.   公开
  37.  
  38. =end
  39.  
  40. #==============================================================================
  41. # □ 设定项目
  42. #==============================================================================
  43. module TMBLSIGHT
  44.   # 指定几号的地图进行视界制限
  45.   # 例)SIGHT[3] = 128  # 设置地图号码3的视野能见度128点矩形
  46.   SIGHT = {}
  47.   SIGHT[2] = 300
  48.   SIGHT[4] = 300
  49.   SIGHT[6] = 300
  50.   SIGHT[7] = 300
  51.  
  52.   VN_SIGHT = 1    # 设定尺寸大小补正在游戏中使用的游戏变量
  53. end
  54.  
  55. #==============================================================================
  56. # □ RPG::BaseItem
  57. #==============================================================================
  58. class RPG::BaseItem
  59.   #--------------------------------------------------------------------------
  60.   # ○ 视界制限补正値
  61.   #--------------------------------------------------------------------------
  62.   def sight_power
  63.     unless @sight_power
  64.       @sight_power = /<视界补正\s*(\-*\d+)\s*>/ =~ @note ? $1.to_i : 0
  65.     end
  66.     @sight_power
  67.   end
  68. end
  69.  
  70. #==============================================================================
  71. # ■ Game_Actor
  72. #==============================================================================
  73. class Game_Actor
  74.   #--------------------------------------------------------------------------
  75.   # ○ 视界制限补正値
  76.   #--------------------------------------------------------------------------
  77.   def sight_power
  78.     result = 0
  79.     feature_objects.each {|object| result += object.sight_power}
  80.     result
  81.   end
  82. end
  83.  
  84. #==============================================================================
  85. # □ Sprite_SightShadow
  86. #==============================================================================
  87. class Sprite_SightShadow < Sprite
  88.   #--------------------------------------------------------------------------
  89.   # ● 物件初期化
  90.   #--------------------------------------------------------------------------
  91.   def initialize(viewport = nil)
  92.     super(viewport)
  93.     self.z = 199
  94.     self.bitmap = Bitmap.new(Graphics.width, Graphics.height)
  95.     @bitmap_shadow = Bitmap.new("Graphics/System/sight_shadow")
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ● 解放
  99.   #--------------------------------------------------------------------------
  100.   def dispose
  101.     self.bitmap.dispose
  102.     @bitmap_shadow.dispose
  103.     super
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 帧更新
  107.   #--------------------------------------------------------------------------
  108.   def update
  109.     super
  110.     if TMBLSIGHT::SIGHT[$game_map.map_id]
  111.       self.visible = true
  112.       self.bitmap.clear
  113.       w = TMBLSIGHT::SIGHT[$game_map.map_id]
  114.       $game_party.battle_members.each{|actor| w = [w + actor.sight_power, 48].max}
  115.       w = [w + $game_variables[TMBLSIGHT::VN_SIGHT], 48].max
  116.       x = $game_player.screen_x - w / 2
  117.       y = $game_player.screen_y - w / 2 - 16
  118.       rect = Rect.new(x, y, w, w)
  119.       self.bitmap.stretch_blt(rect, @bitmap_shadow, @bitmap_shadow.rect)
  120.       color = Color.new(0, 0, 0)
  121.       self.bitmap.fill_rect(0, 0, Graphics.width, y, color)
  122.       self.bitmap.fill_rect(0, y + w, Graphics.width, Graphics.height - y - w,
  123.         color)
  124.       self.bitmap.fill_rect(0, y, x, w, color)
  125.       self.bitmap.fill_rect(x + w, y, Graphics.width - x - w, w, color)
  126.     else
  127.       self.visible = false
  128.     end
  129.   end
  130. end
  131.  
  132. #==============================================================================
  133. # ■ Spriteset_Map
  134. #==============================================================================
  135. class Spriteset_Map
  136.   #--------------------------------------------------------------------------
  137.   # ● 物件初期化
  138.   #--------------------------------------------------------------------------
  139.   alias tmblsight_spriteset_map_initialize initialize
  140.   def initialize
  141.     tmblsight_spriteset_map_initialize
  142.     create_sight_shadow
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ○ 作成视界制限Sprite
  146.   #--------------------------------------------------------------------------
  147.   def create_sight_shadow
  148.     @sight_shadow_sprite = Sprite_SightShadow.new(@viewport2)
  149.   end
  150.   #--------------------------------------------------------------------------
  151.   # ● 解放
  152.   #--------------------------------------------------------------------------
  153.   alias tmblsight_spriteset_map_dispose dispose
  154.   def dispose
  155.     tmblsight_spriteset_map_dispose
  156.     dispose_sight_shadow
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ○ 解放视界制限Sprites
  160.   #--------------------------------------------------------------------------
  161.   def dispose_sight_shadow
  162.     @sight_shadow_sprite.dispose
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ● 帧更新
  166.   #--------------------------------------------------------------------------
  167.   alias tmblsight_spriteset_map_update update
  168.   def update
  169.     update_sight_shadow
  170.     tmblsight_spriteset_map_update
  171.   end
  172.   #--------------------------------------------------------------------------
  173.   # ○ 更新视界制限Sprites
  174.   #--------------------------------------------------------------------------
  175.   def update_sight_shadow
  176.     @sight_shadow_sprite.update if @sight_shadow_sprite
  177.   end
  178. end
头像被屏蔽

Lv4.逐梦者 (禁止发言)

梦石
0
星屑
5701
在线时间
922 小时
注册时间
2013-8-29
帖子
1468
发表于 2020-2-17 00:09:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
275
在线时间
16 小时
注册时间
2019-4-9
帖子
24
 楼主| 发表于 2020-2-17 01:31:18 | 显示全部楼层
chanszeman1018 发表于 2020-2-17 00:09
那密碼484用了1号变量?

是的~刚才一个大佬给我解释了~需要把变量的1改为一个不常用的编号~是编号冲突了~十分感谢~:)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-28 18:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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