Project1

标题: 更新視界制限 Ver1.1(RMXA用、説明中文化、追加変数補正功能 [打印本页]

作者: tseyik    时间: 2012-2-3 14:13
标题: 更新視界制限 Ver1.1(RMXA用、説明中文化、追加変数補正功能
本帖最后由 tseyik 于 2015-2-17 11:58 编辑

原網站
http://hikimoki.sakura.ne.jp/index.html

修改這句
例)SIGHT[1] = 128  # 地圖1的視野能見度128点矩形
SIGHT[1] = 128
把這個圖片導入/放入SYSTEM(可修改)


可見度設定32

可見度設定128

在素材加入代碼

与木星ペンギン的迷你地圖(+迷你地圖増強)併用
範例(執行前需先save一次)
https://rpg.blue/forum.php?mod=r ... 513&pid=2579564
  1. #==============================================================================
  2. # ★ RGSS3_视界制限 Ver1.1
  3. #==============================================================================
  4. =begin

  5. 作者:tomoaky
  6. 首发网站:ひきも记 (http://hikimoki.sakura.ne.jp/)

  7. 设定号码的地图限制视野。

  8. 写在角色,职业,是在武器(防护具)的备注中的标签
  9. 能补正视野限制的尺寸。
  10. 例)<视界补正 32>
  11. 视界32点扩大広。
  12. 只有战斗成员进行视野补正价值的计算。

  13. 游戏变量(默认情况下,#9),可以调整大小使用视图领域。

  14. 加入上述所有设置,将获得的实际大小限制的能见度。
  15. 然而,如果尚未设置能见度限制的地图上都是无效的。

  16. 因为每帧都会重绘整个屏幕的Sprite
  17. 将会有所加重。

  18. 操作所需的图像
  19.   Graphics/System/sight_shadow.png
  20.   
  21. 游戏变量使用(默认设置)
  22.   0009

  23. 2012.02.05  Ver1.1
  24.   ・调整Z坐标使计时器使不被遮住
  25.   ・加使用游戏变量补正视野限制尺寸的功能(通过变量可做成开/関效果)
  26.   
  27. 2012.01.20  Ver1.0
  28.   公开

  29. =end

  30. #==============================================================================
  31. # □ 设定项目
  32. #==============================================================================
  33. module TMBLSIGHT
  34.   # 指定几号的地图进行视界制限
  35.   # 例)SIGHT[3] = 128  # 设置地图号码3的视野能见度128点矩形
  36.   SIGHT = {}
  37.   SIGHT[1] = 192

  38.   
  39.   VN_SIGHT = 9    # 设定尺寸大小补正在游戏中使用的游戏变量
  40. end

  41. #==============================================================================
  42. # □ RPG::BaseItem
  43. #==============================================================================
  44. class RPG::BaseItem
  45.   #--------------------------------------------------------------------------
  46.   # ○ 视界制限补正値
  47.   #--------------------------------------------------------------------------
  48.   def sight_power
  49.     unless @sight_power
  50.       @sight_power = /<视界补正\s*(\-*\d+)\s*>/ =~ @note ? $1.to_i : 0
  51.     end
  52.     @sight_power
  53.   end
  54. end

  55. #==============================================================================
  56. # ■ Game_Actor
  57. #==============================================================================
  58. class Game_Actor
  59.   #--------------------------------------------------------------------------
  60.   # ○ 视界制限补正値
  61.   #--------------------------------------------------------------------------
  62.   def sight_power
  63.     result = 0
  64.     feature_objects.each {|object| result += object.sight_power}
  65.     result
  66.   end
  67. end

  68. #==============================================================================
  69. # □ Sprite_SightShadow
  70. #==============================================================================
  71. class Sprite_SightShadow < Sprite
  72.   #--------------------------------------------------------------------------
  73.   # ● 物件初期化
  74.   #--------------------------------------------------------------------------
  75.   def initialize(viewport = nil)
  76.     super(viewport)
  77.     self.z = 199
  78.     self.bitmap = Bitmap.new(Graphics.width, Graphics.height)
  79.     @bitmap_shadow = Bitmap.new("Graphics/System/sight_shadow")
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● 解放
  83.   #--------------------------------------------------------------------------
  84.   def dispose
  85.     self.bitmap.dispose
  86.     @bitmap_shadow.dispose
  87.     super
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ● 帧更新
  91.   #--------------------------------------------------------------------------
  92.   def update
  93.     super
  94.     if TMBLSIGHT::SIGHT[$game_map.map_id]
  95.       self.visible = true
  96.       self.bitmap.clear
  97.       w = TMBLSIGHT::SIGHT[$game_map.map_id]
  98.       $game_party.battle_members.each{|actor| w = [w + actor.sight_power, 48].max}
  99.       w = [w + $game_variables[TMBLSIGHT::VN_SIGHT], 48].max
  100.       x = $game_player.screen_x - w / 2
  101.       y = $game_player.screen_y - w / 2 - 16
  102.       rect = Rect.new(x, y, w, w)
  103.       self.bitmap.stretch_blt(rect, @bitmap_shadow, @bitmap_shadow.rect)
  104.       color = Color.new(0, 0, 0)
  105.       self.bitmap.fill_rect(0, 0, Graphics.width, y, color)
  106.       self.bitmap.fill_rect(0, y + w, Graphics.width, Graphics.height - y - w,
  107.         color)
  108.       self.bitmap.fill_rect(0, y, x, w, color)
  109.       self.bitmap.fill_rect(x + w, y, Graphics.width - x - w, w, color)
  110.     else
  111.       self.visible = false
  112.     end
  113.   end
  114. end

  115. #==============================================================================
  116. # ■ Spriteset_Map
  117. #==============================================================================
  118. class Spriteset_Map
  119.   #--------------------------------------------------------------------------
  120.   # ● 物件初期化
  121.   #--------------------------------------------------------------------------
  122.   alias tmblsight_spriteset_map_initialize initialize
  123.   def initialize
  124.     tmblsight_spriteset_map_initialize
  125.     create_sight_shadow
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ○ 作成视界制限Sprite
  129.   #--------------------------------------------------------------------------
  130.   def create_sight_shadow
  131.     @sight_shadow_sprite = Sprite_SightShadow.new(@viewport2)
  132.   end
  133.   #--------------------------------------------------------------------------
  134.   # ● 解放
  135.   #--------------------------------------------------------------------------
  136.   alias tmblsight_spriteset_map_dispose dispose
  137.   def dispose
  138.     tmblsight_spriteset_map_dispose
  139.     dispose_sight_shadow
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ○ 解放视界制限Sprites
  143.   #--------------------------------------------------------------------------
  144.   def dispose_sight_shadow
  145.     @sight_shadow_sprite.dispose
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ● 帧更新
  149.   #--------------------------------------------------------------------------
  150.   alias tmblsight_spriteset_map_update update
  151.   def update
  152.     update_sight_shadow
  153.     tmblsight_spriteset_map_update
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ○ 更新视界制限Sprites
  157.   #--------------------------------------------------------------------------
  158.   def update_sight_shadow
  159.     @sight_shadow_sprite.update if @sight_shadow_sprite
  160.   end
  161. end
  162.   

复制代码

作者: 5439sims2    时间: 2012-2-3 14:48
T T 楼主你知道有个插入代码的功能吗?
作者: 凌依约    时间: 2012-2-3 18:20
这个脚本很棒啊 -w-
修改那个图片就可以达到各种视野范围的效果了吧?
作者: orzfly    时间: 2012-2-3 19:18
如果有点动态效果会很棒……
作者: tseyik    时间: 2012-2-3 19:19
本帖最后由 tseyik 于 2012-2-3 19:24 编辑
凌依约 发表于 2012-2-3 18:20
这个脚本很棒啊 -w-
修改那个图片就可以达到各种视野范围的效果了吧?


是的




如果高手可把図片名改成以変数處理
可以因応主角行動而変不同図片就更好了(不知可不可行)
作者: bro3886l47    时间: 2012-2-3 20:29
这个脚本有没有方法在游戏里控制开关呢?
作者: tseyik    时间: 2012-2-7 13:06
本帖最后由 tseyik 于 2012-2-7 17:42 编辑

更新RGSS3_視界制限 Ver1.1(RMXA用、追加変数補正功能……

2012.02.05  Ver1.1
  ・调整Z坐标使计时器使不被遮住
  ・加使用游戏变量补正视野限制尺寸的功能(通过变量可做成开/関效果)


初期64

変量9=64(加上初期64、可見度=128)

変量9=640




可設定職業/裝備武器/防具…増加可見度
例:以伐木手斧為例
在備註中加入
<視界補正 32>

不装備時


装備時



作者: wenxinaxin    时间: 2012-2-7 14:53
LZ,怎样关闭视界制限,怎样开启视界极限??
作者: tseyik    时间: 2012-2-7 15:25
本帖最后由 tseyik 于 2012-2-7 15:34 编辑
wenxinaxin 发表于 2012-2-7 14:53
LZ,怎样关闭视界制限,怎样开启视界极限??



可見度預設是由以下三個決定
可見度是1+2+3的総量
1:設置地圖號碼X視野能見度Y点矩形
例:  SIGHT = {}SIGHT[1] = 64  地圖號碼1視野能見度64点矩形

2:道具補正
例: @sight_power = /<視界補正\s*(\-*\d+)\s*>/ =~ @note ? $1.to_i : 0
  在備註中加入加入<視界補正 32>  裝備該道具會増加柤応修正(這情况下+32点)

3:変量補正:予設使用変量是0009  (VN_SIGHT = 9  )
  通過事件改変変量増減可見度
  上面是用了事件1.玩家触摸、変量9=640、
          事件2玩家触摸、変量9=64 
          事件3玩家触摸、変量9=0

當玩家触摸該物件時(上圖是魔法陣(藍/綠/白))、変量9就會産生相応変化(0/64/640)
作者: 残风水月    时间: 2012-2-7 16:10
那个。。难道用个并行事件显示张类似图片不能达到视野效果吗?
作者: tseyik    时间: 2012-2-7 20:09
在地圖上選一個地方
事件>新増事件
如下設定


再在別處
設定事件2(変量9=64)、事件3(変量9=0)
作者: gz29767562    时间: 2012-2-9 00:36
tseyik 发表于 2012-2-7 20:09
在地圖上選一個地方
事件>新増事件
如下設定

能把你做的工程发上来分享下吗?谢谢了。。
作者: tseyik    时间: 2012-2-9 01:20
gz29767562 发表于 2012-2-9 00:36
能把你做的工程发上来分享下吗?谢谢了。。

工程(使用字形PMingLiU)

Project1.part1.rar

878.91 KB, 下载次数: 2280

Project1.part2.rar

714.92 KB, 下载次数: 333


作者: gz29767562    时间: 2012-2-9 10:55
tseyik 发表于 2012-2-9 01:20
工程(使用字形PMingLiU)

谢谢你,现在很少有人这么负责了,太谢谢你了
作者: 流星的瞬间    时间: 2012-2-9 12:15
不错~~支持一下这脚本!!
作者: 迷蓝の海    时间: 2012-2-10 11:36
这样制作什么山洞里走的游戏就好办多了呢。
作者: huangaidehua    时间: 2012-7-28 11:45
问一下怎么才能让图片在最上层。。使图片不被覆盖。。所有pictures文件下的。。
作者: 1243852    时间: 2012-8-29 17:30
有办法让事件也发光吗??????某些火光,烛光啥的?
作者: tseyik    时间: 2012-8-29 20:19
1243852 发表于 2012-8-29 17:30
有办法让事件也发光吗??????某些火光,烛光啥的?

http://rpg.blue/thread-224000-1-1.html
用這個巴
[RMVA]日本的烛光系統-中文化
作者: 草莓    时间: 2012-8-29 22:03
@tseyik
tseyik吗?是幻想森林汉化STGBUILD的tseyik吗?
很意外能在6R看到你呢!!
作者: 痴呆小鬼    时间: 2013-1-31 16:55
这个脚本很赞,但是用在RPGVA还有点BUG啊......就是取消菜单的时候,会有一瞬间的解除视野限制
作者: louisa0129    时间: 2013-10-20 07:32
放入代码之后还没更改就直接测试游戏会出现112行有问题而无法测试的情况·····?求解~另外谢谢LZ分享的脚本
作者: 良特代顺    时间: 2013-10-30 21:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: lijiaweikkkk    时间: 2014-2-2 16:53
楼主请问用了这个脚本后立绘也会变黑怎么解决
作者: mmcmmcmmc    时间: 2014-2-4 16:03
请问如何改变灯光范围orz
还是不会
作者: 1450131341    时间: 2014-2-8 18:57
我用了一个小地图,开启烛光时小地图没了,有方法修改吗?
作者: 月初雪姬    时间: 2014-7-31 15:48
关闭菜单的时候,会有一瞬间的解除视野限制!
作者: 无端忆君    时间: 2017-11-24 09:34
谢谢这下就可以实现宠物小精灵的洞穴效果了
作者: lixinglixing022    时间: 2018-11-29 08:23
怎么放到我复制到我游戏里面不行啊!!!!!!!!!
作者: quyangyang    时间: 2022-1-30 22:16
为什么战斗的时候也是视野限制的,请问如何在战斗中解除视野限制




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1