Project1

标题: 求教此視界制限脚本如何在事件使用? [打印本页]

作者: harinlen    时间: 2012-8-31 14:19
标题: 求教此視界制限脚本如何在事件使用?
本帖最后由 harinlen 于 2012-8-31 15:53 编辑

这里有一个从外站找到的一个脚本:
但是,这个脚本要求在职业、武器或者防具的注释里加入視界補正才能启用该脚本,求教下在事件中如何写脚本才能启用这个效果??

最好带范例或者截图示范。

脚本在3L,而且这个脚本放在1L就会让浏览器无法显示,应该是一个论坛的一个bug吧。
也不知道是哪句变成这样的- -dsu_plus_rewardpost_czw
作者: chxush    时间: 2012-8-31 14:59
为什么我看不到楼主的脚本 我的浏览器又卖萌了????
作者: harinlen    时间: 2012-8-31 15:50
本帖最后由 harinlen 于 2012-8-31 15:57 编辑

将此PNG放在Graphic\System\下命名为sight_shadow.png

插入这个脚本:
RUBY 代码复制
  1. #==============================================================================
  2. # ★ RGSS3_視界制限 Ver1.11
  3. #==============================================================================
  4. =begin
  5.  
  6. 作者:tomoaky
  7. webサイト:ひきも記 ([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. 画面全体を覆うスプライトを毎フレーム再描画しているため
  23. 多少重くなります。
  24.  
  25. 動作に必要な画像
  26.   Graphics/System/sight_shadow.png
  27.  
  28. 使用するゲーム変数(初期設定)
  29.   0009
  30.  
  31. 2012.03.07  Ver1.11
  32.  ・メニューから復帰したときに視界制限が途切れる不具合を修正
  33.  
  34. 2012.02.05  Ver1.1
  35.   ・タイマーが隠れてしまわないようにZ座標を調整
  36.   ・ゲーム変数を使って視界制限サイズを補正する機能を追加
  37.  
  38. 2012.01.20  Ver1.0
  39.   公開
  40.  
  41. =end
  42.  
  43. #==============================================================================
  44. # □ 設定項目
  45. #==============================================================================
  46. module TMBLSIGHT
  47.   # 何番のマップをどれだけ視界制限するか
  48.   # 例)SIGHT[3] = 128  # 3番のマップの視界を128ドット四方に制限する
  49.   SIGHT = {}
  50.   SIGHT[3] = 256
  51.  
  52.   VN_SIGHT = 10    # 視界のサイズ補正に利用するゲーム変数番号
  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.   # ○ 視界制限スプライトの作成
  146.   #--------------------------------------------------------------------------
  147.   def create_sight_shadow
  148.     @sight_shadow_sprite = Sprite_SightShadow.new(@viewport2)
  149.     update_sight_shadow
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ● 解放
  153.   #--------------------------------------------------------------------------
  154.   alias tmblsight_spriteset_map_dispose dispose
  155.   def dispose
  156.     tmblsight_spriteset_map_dispose
  157.     dispose_sight_shadow
  158.   end
  159.   #--------------------------------------------------------------------------
  160.   # ○ 視界制限スプライトの解放
  161.   #--------------------------------------------------------------------------
  162.   def dispose_sight_shadow
  163.     @sight_shadow_sprite.dispose
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● フレーム更新
  167.   #--------------------------------------------------------------------------
  168.   alias tmblsight_spriteset_map_update update
  169.   def update
  170.     update_sight_shadow
  171.     tmblsight_spriteset_map_update
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ○ 視界制限スプライトの更新
  175.   #--------------------------------------------------------------------------
  176.   def update_sight_shadow
  177.     @sight_shadow_sprite.update if @sight_shadow_sprite
  178.   end
  179. end
���
作者: harinlen    时间: 2012-8-31 15:55
@zhixin1997 刚发现这个bug啊- -发在1L连评分按钮都按不下去- -是怎么评分的- -
作者: harinlen    时间: 2012-8-31 16:03
@Luciffer写错了- -不是评分是点评- -
作者: harinlen    时间: 2012-8-31 17:49
@54酱最好了~~>_<~~
作者: harinlen    时间: 2012-8-31 18:08
看来,还是要靠自己还发现啊!!
作者: 疯狂异形    时间: 2012-9-2 04:53
harinlen 发表于 2012-8-31 10:08
看来,还是要靠自己还发现啊!!

捏,此题无解,沉掉。




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