赞 | 0 |
VIP | 4 |
好人卡 | 2 |
积分 | 1 |
经验 | 7649 |
最后登录 | 2020-5-5 |
在线时间 | 182 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 60
- 在线时间
- 182 小时
- 注册时间
- 2009-4-22
- 帖子
- 208
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 gz29767562 于 2012-2-27 11:53 编辑
- #==============================================================================
- # ★ RGSS3_視界制限 Ver1.1
- #==============================================================================
- =begin
- 作者:tomoaky
- 首發網站:ひきも記 (http://hikimoki.sakura.ne.jp/)
- 設定號碼的地圖限制視野。
- 寫在角色,職業,是在武器(防護具)的備註中的標籤
- 能補正視野限制的尺寸。
- 例)<視界補正 32>
- 視界32點擴大広。
- 只有戰鬥成員進行視野補正價值的計算。
- 遊戲變量(默認情況下,#9),可以調整大小使用視圖領域。
- 加入上述所有設置,將獲得的實際大小限制的能見度。
- 然而,如果尚未設置能見度限制的地圖上都是無效的。
- 因為每幀都會重繪整個屏幕的Sprite
- 將會有所加重。
- 操作所需的圖像
- Graphics/System/sight_shadow.png
-
- 遊戲變量使用(默認設置)
- 0009
- 2012.02.05 Ver1.1
- ・調整Z坐標使計時器使不被遮住
- ・加使用遊戲變量補正視野限制尺寸的功能(通過變量可做成開/関效果)
-
- 2012.01.20 Ver1.0
- 公開
- =end
- #==============================================================================
- # □ 設定項目
- #==============================================================================
- module TMBLSIGHT
- # 指定幾號的地圖進行視界制限
- # 例)SIGHT[3] = 128 # 設置地圖號碼3的視野能見度128点矩形
- SIGHT = {}
- SIGHT[15] = 100
-
- VN_SIGHT = 9 # 設定尺寸大小補正在遊戲中使用的遊戲變量
- end
- #==============================================================================
- # □ RPG::BaseItem
- #==============================================================================
- class RPG::BaseItem
- #--------------------------------------------------------------------------
- # ○ 視界制限補正値
- #--------------------------------------------------------------------------
- def sight_power
- unless @sight_power
- @sight_power = /<視界補正\s*(\-*\d+)\s*>/ =~ @note ? $1.to_i : 0
- end
- @sight_power
- end
- end
- #==============================================================================
- # ■ Game_Actor
- #==============================================================================
- class Game_Actor
- #--------------------------------------------------------------------------
- # ○ 視界制限補正値
- #--------------------------------------------------------------------------
- def sight_power
- result = 0
- feature_objects.each {|object| result += object.sight_power}
- result
- end
- end
- #==============================================================================
- # □ Sprite_SightShadow
- #==============================================================================
- class Sprite_SightShadow < Sprite
- #--------------------------------------------------------------------------
- # ● 物件初期化
- #--------------------------------------------------------------------------
- def initialize(viewport = nil)
- super(viewport)
- self.z = 199
- self.bitmap = Bitmap.new(Graphics.width, Graphics.height)
- @bitmap_shadow = Bitmap.new("Graphics/System/sight_shadow")
- end
- #--------------------------------------------------------------------------
- # ● 解放
- #--------------------------------------------------------------------------
- def dispose
- self.bitmap.dispose
- @bitmap_shadow.dispose
- super
- end
- #--------------------------------------------------------------------------
- # ● 幀更新
- #--------------------------------------------------------------------------
- def update
- super
- if TMBLSIGHT::SIGHT[$game_map.map_id]
- self.visible = true
- self.bitmap.clear
- w = TMBLSIGHT::SIGHT[$game_map.map_id]
- $game_party.battle_members.each{|actor| w = [w + actor.sight_power, 48].max}
- w = [w + $game_variables[TMBLSIGHT::VN_SIGHT], 48].max
- x = $game_player.screen_x - w / 2
- y = $game_player.screen_y - w / 2 - 16
- rect = Rect.new(x, y, w, w)
- self.bitmap.stretch_blt(rect, @bitmap_shadow, @bitmap_shadow.rect)
- color = Color.new(0, 0, 0)
- self.bitmap.fill_rect(0, 0, Graphics.width, y, color)
- self.bitmap.fill_rect(0, y + w, Graphics.width, Graphics.height - y - w,
- color)
- self.bitmap.fill_rect(0, y, x, w, color)
- self.bitmap.fill_rect(x + w, y, Graphics.width - x - w, w, color)
- else
- self.visible = false
- end
- end
- end
- #==============================================================================
- # ■ Spriteset_Map
- #==============================================================================
- class Spriteset_Map
- #--------------------------------------------------------------------------
- # ● 物件初期化
- #--------------------------------------------------------------------------
- alias tmblsight_spriteset_map_initialize initialize
- def initialize
- tmblsight_spriteset_map_initialize
- create_sight_shadow
- end
- #--------------------------------------------------------------------------
- # ○ 作成視界制限Sprite
- #--------------------------------------------------------------------------
- def create_sight_shadow
- @sight_shadow_sprite = Sprite_SightShadow.new(@viewport2)
- end
- #--------------------------------------------------------------------------
- # ● 解放
- #--------------------------------------------------------------------------
- alias tmblsight_spriteset_map_dispose dispose
- def dispose
- tmblsight_spriteset_map_dispose
- dispose_sight_shadow
- end
- #--------------------------------------------------------------------------
- # ○ 解放視界制限Sprites
- #--------------------------------------------------------------------------
- def dispose_sight_shadow
- @sight_shadow_sprite.dispose
- end
- #--------------------------------------------------------------------------
- # ● 幀更新
- #--------------------------------------------------------------------------
- alias tmblsight_spriteset_map_update update
- def update
- update_sight_shadow
- tmblsight_spriteset_map_update
- end
- #--------------------------------------------------------------------------
- # ○ 更新視界制限Sprites
- #--------------------------------------------------------------------------
- def update_sight_shadow
- @sight_shadow_sprite.update if @sight_shadow_sprite
- end
- end
-
复制代码 我想问下这个脚本可以支持多张地图視界制限吗?可以的话,怎么操作呢,谢谢。哈哈 |
|