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

Project1

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

[已经过期] 关于烛光脚本的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
624
在线时间
125 小时
注册时间
2013-10-25
帖子
56
跳转到指定楼层
1
发表于 2014-8-3 19:40:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
因为手电筒脚本实在是找不到于是我就用了烛光脚本代替
首先这个脚本是这样的
  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] = 420
  38.   SIGHT[2] = 500
  39.   SIGHT[3] = 420
  40.   SIGHT[83] = 420
  41.   
  42.   
  43.   VN_SIGHT = 1    # 设定尺寸大小补正在游戏中使用的游戏变量
  44. end

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

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

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

  119. #==============================================================================
  120. # ■ Spriteset_Map
  121. #==============================================================================
  122. class Spriteset_Map
  123.   #--------------------------------------------------------------------------
  124.   # ● 物件初期化
  125.   #--------------------------------------------------------------------------
  126.   alias tmblsight_spriteset_map_initialize initialize
  127.   def initialize
  128.     tmblsight_spriteset_map_initialize
  129.     create_sight_shadow
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ○ 作成视界制限Sprite
  133.   #--------------------------------------------------------------------------
  134.   def create_sight_shadow
  135.     @sight_shadow_sprite = Sprite_SightShadow.new(@viewport2)
  136.   end
  137.   #--------------------------------------------------------------------------
  138.   # ● 解放
  139.   #--------------------------------------------------------------------------
  140.   alias tmblsight_spriteset_map_dispose dispose
  141.   def dispose
  142.     tmblsight_spriteset_map_dispose
  143.     dispose_sight_shadow
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ○ 解放视界制限Sprites
  147.   #--------------------------------------------------------------------------
  148.   def dispose_sight_shadow
  149.     @sight_shadow_sprite.dispose
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ● 帧更新
  153.   #--------------------------------------------------------------------------
  154.   alias tmblsight_spriteset_map_update update
  155.   def update
  156.     update_sight_shadow
  157.     tmblsight_spriteset_map_update
  158.   end
  159.   #--------------------------------------------------------------------------
  160.   # ○ 更新视界制限Sprites
  161.   #--------------------------------------------------------------------------
  162.   def update_sight_shadow
  163.     @sight_shadow_sprite.update if @sight_shadow_sprite
  164.   end
  165. end
  166.   
复制代码
因为我想做出装备上手电筒之后开启烛光的效果,卸下的时候画面就变黑
于是我就故作聪明的把1号地图的视野能见度改成了9999,然后手电筒的视野补正值改成了-9900
然后写了一个这样的事件
然后运行游戏
然后BUG就出现了...装上手电筒之后倒是没问题,卸下手电筒整个画面就变成正常亮度的了.....谁来告诉我这个事件废脚本废应该怎么做...

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-8-3 19:46:08 | 只看该作者
本帖最后由 taroxd 于 2014-8-3 19:47 编辑

你是不是搞错了什么。
不装手电筒,视野范围为:9999  远大于地图大小,因此是正常亮度
装手电筒,视野为:9999 + (-9900) 为 99

也许,正确的设置为:
地图视野:24
手电筒补正:75

点评

你想要怎么样?全黑吗?  发表于 2014-8-3 20:39
我按照你的方法试了一下 摘掉手电筒之后仅仅就是光照范围缩小了而已...  发表于 2014-8-3 20:26
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
125 小时
注册时间
2013-10-25
帖子
56
3
 楼主| 发表于 2014-8-3 20:43:15 | 只看该作者
taroxd 发表于 2014-8-3 19:46
你是不是搞错了什么。
不装手电筒,视野范围为:9999  远大于地图大小,因此是正常亮度
装手电筒,视野为: ...

我的目的是戴上手电筒是开启烛光 摘下手电筒烛光效果关闭画面色调变暗

点评

那么,你的事件是并行处理的吗?  发表于 2014-8-3 20:48
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
125 小时
注册时间
2013-10-25
帖子
56
4
 楼主| 发表于 2014-8-3 20:54:28 | 只看该作者
taroxd 发表于 2014-8-3 19:46
你是不是搞错了什么。
不装手电筒,视野范围为:9999  远大于地图大小,因此是正常亮度
装手电筒,视野为: ...

是的
刚刚确认了一下

点评

啊,那就不知道了  发表于 2014-8-3 21:00
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 09:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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