Project1

标题: 【qwq】如何让某个脚本只在一个地图才会出现 [打印本页]

作者: 霧絲憂鬱    时间: 2014-2-7 08:55
标题: 【qwq】如何让某个脚本只在一个地图才会出现
qwq就是有个开场白,不需要用视野限制脚本,如何使这个脚本不在开场白出现?
作者: 余烬之中    时间: 2014-2-7 09:02
不使用这个脚本就可以了啊
你把脚本发上来 里面应该有开关的
作者: 霧絲憂鬱    时间: 2014-2-7 09:07
余烬之中 发表于 2014-2-7 09:02
不使用这个脚本就可以了啊
你把脚本发上来 里面应该有开关的

#==============================================================================
# ★ RGSS3_視界制限 Ver1.11
#==============================================================================
=begin

作者:tomoaky
webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/)

設定した番号のマップだけ視界を制限します。

アクター、職業、武器(防具)のメモ欄に下のようなタグを書き込むことで
視界制限のサイズを補正することができます。
例)<視界補正 32>
視界が 32 ドット広がります。
視界補正値の計算をおこなうのは戦闘メンバーのみとなります。

ゲーム変数(初期設定では9番)を使って視界のサイズを補正できます。

実際の視界制限サイズは上記の設定値をすべて加算したものになります。
ただし、マップに視界制限値が設定されていない場合はすべて無効です。

画面全体を覆うスプライトを毎フレーム再描画しているため
多少重くなります。

動作に必要な画像
  Graphics/System/sight_shadow.png
  
使用するゲーム変数(初期設定)
  0009

2012.03.07  Ver1.11
 ・メニューから復帰したときに視界制限が途切れる不具合を修正
  
2012.02.05  Ver1.1
  ・タイマーが隠れてしまわないようにZ座標を調整
  ・ゲーム変数を使って視界制限サイズを補正する機能を追加
  
2012.01.20  Ver1.0
  公開

=end

#==============================================================================
# □ 設定項目
#==============================================================================
module TMBLSIGHT
  # 何番のマップをどれだけ視界制限するか
  # 例)SIGHT[3] = 128  # 3番のマップの視界を128ドット四方に制限する
  SIGHT = {}
  
  SIGHT[1] = 200
  SIGHT[2] = 200
  SIGHT[3] = 500
  SIGHT[4] = 350
  SIGHT[5] = 350
  SIGHT[6] = 200
  SIGHT[7] = 200
  SIGHT[8] = 200
  SIGHT[9] = 200
  SIGHT[10] = 200
  SIGHT[11] = 200
  SIGHT[12] = 200
  SIGHT[13] = 200
  SIGHT[14] = 200
  SIGHT[15] = 200
  SIGHT[16] = 200
  SIGHT[17] = 400
  SIGHT[18] = 400
  SIGHT[19] = 200
  SIGHT[20] = 200
  SIGHT[21] = 250
  SIGHT[22] = 250
  SIGHT[23] = 250
  SIGHT[24] = 200
  SIGHT[25] = 200
  SIGHT[26] = 250
  SIGHT[27] = 250
  SIGHT[28] = 250
  SIGHT[29] = 250
  SIGHT[30] = 250
  SIGHT[31] = 200
  SIGHT[32] = 250
  SIGHT[33] = 250
  SIGHT[34] = 200
  SIGHT[35] = 250
  SIGHT[36] = 250
  SIGHT[37] = 250
  SIGHT[38] = 250
  SIGHT[39] = 450
  SIGHT[40] = 200
  SIGHT[41] = 250
  SIGHT[42] = 250
  SIGHT[43] = 250
  SIGHT[44] = 200
  SIGHT[45] = 150
  SIGHT[46] = 200
  SIGHT[47] = 200
  SIGHT[48] = 200
  SIGHT[49] = 200
  SIGHT[50] = 150
  SIGHT[51] = 150

  VN_SIGHT = 999   # 視界のサイズ補正に利用するゲーム変数番号
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 = 50#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
  #--------------------------------------------------------------------------
  # ○ 視界制限スプライトの作成
  #--------------------------------------------------------------------------
  def create_sight_shadow
    @sight_shadow_sprite = Sprite_SightShadow.new(@viewport2)
    update_sight_shadow
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  alias tmblsight_spriteset_map_dispose dispose
  def dispose
    tmblsight_spriteset_map_dispose
    dispose_sight_shadow
  end
  #--------------------------------------------------------------------------
  # ○ 視界制限スプライトの解放
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ○ 視界制限スプライトの更新
  #--------------------------------------------------------------------------
  def update_sight_shadow
    @sight_shadow_sprite.update if @sight_shadow_sprite
  end
end

  

作者: 余烬之中    时间: 2014-2-7 09:19
脚本中可以找到:
VN_SIGHT = 999   # 視界のサイズ補正に利用するゲーム変数番号
只要不打开这个开关视界效果就不会生效
等到你需要用的时候就打开这个开关

另外 发代码的方式:
比较短的代码


比较长的代码

作者: 神秘影子    时间: 2014-2-8 00:21
原晾我,回错帖了。。




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