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

Project1

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

[已经解决] 关于脚本控制问题。。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
19 小时
注册时间
2014-12-25
帖子
27
跳转到指定楼层
1
发表于 2015-1-3 03:15:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
紧接着问题又来了。。。QVQ
想用事件脚本来控制脚本开关。。
例如这个视野脚本。。

怎么写才能控制视野大小和开关。。

点评

但是这个部分没有说明是否可以使用开关控制,你需要提供一些脚本全体。  发表于 2015-1-3 03:43
这个得看脚本的具体说明,你截图的这个部分 SIGHT[3] = 128的意思是 在id3的地图进行128像素的四方限制。  发表于 2015-1-3 03:42

Lv1.梦旅人

梦石
0
星屑
50
在线时间
19 小时
注册时间
2014-12-25
帖子
27
2
 楼主| 发表于 2015-1-3 04:00:38 | 只看该作者
本帖最后由 绯红の夜魔 于 2015-1-3 04:11 编辑

脚本附上。
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[1] = 600
  51.   SIGHT[10] = 200
  52.   VN_SIGHT = 999   # 視界のサイズ補正に利用するゲーム変数番号
  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 = 50
  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

如此。。日语看不懂哎。。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
3
发表于 2015-1-3 05:11:30 | 只看该作者
你试试把下面这段写在 事件 - 脚本 里,然后激活事件试试。
  1. TMBLSIGHT::SIGHT[1] = XXX
复制代码
其中XXX是一个数值,从使用100和999进行测试。

如果我猜的没错可以控制1号地图的视线大小。

点评

成功了~大半夜的感谢指教~辛苦了。  发表于 2015-1-3 05:41

评分

参与人数 1星屑 +200 收起 理由
VIPArcher + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22948
在线时间
8638 小时
注册时间
2011-12-31
帖子
3367
4
发表于 2015-1-3 08:01:38 | 只看该作者
本帖最后由 tseyik 于 2015-1-3 08:08 编辑

1.2版本,(處理軽量化)
這脚本我在地球村有解譯過
https://rpg.blue/thread-221710-1-2.html
  1. #==============================================================================
  2. # ★ RGSS3_視界制限 Ver1.2
  3. #==============================================================================
  4. =begin

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

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

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

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

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

  16. プレイヤーの画面上の座標が常に変わるような状況(1画面分の小さなマップなど)、
  17. 視界補正値がリアルタイムに変化する状況などでは頻繁にスプライトの再描画を
  18. 実行するため処理が重くなります

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

  24. 2013.01.22  Ver1.2
  25.   ・毎フレーム再描画をおこなっていた処理を改善
  26.   ・環境によってエラー落ちの原因となる部分を修正
  27.   
  28. 2012.03.07  Ver1.11
  29.  ・メニューから復帰したときに視界制限が途切れる不具合を修正
  30.   
  31. 2012.02.05  Ver1.1
  32.   ・タイマーが隠れてしまわないようにZ座標を調整
  33.   ・ゲーム変数を使って視界制限サイズを補正する機能を追加
  34.   
  35. 2012.01.20  Ver1.0
  36.   公開

  37. =end

  38. #==============================================================================
  39. # □ 設定項目
  40. #==============================================================================
  41. module TMBLSIGHT
  42.   # 何番のマップをどれだけ視界制限するか
  43.   # 例)SIGHT[3] = 128  # 3番のマップの視界を128ドット四方に制限する
  44.   SIGHT = {}
  45.   SIGHT[3] = 256
  46.   
  47.   VN_SIGHT = 9    # 視界のサイズ補正に利用するゲーム変数番号
  48. end

  49. #==============================================================================
  50. # □ RPG::BaseItem
  51. #==============================================================================
  52. class RPG::BaseItem
  53.   #--------------------------------------------------------------------------
  54.   # ○ 視界制限の補正値
  55.   #--------------------------------------------------------------------------
  56.   def sight_power
  57.     unless @sight_power
  58.       @sight_power = /<視界補正\s*(\-*\d+)\s*>/ =~ @note ? $1.to_i : 0
  59.     end
  60.     @sight_power
  61.   end
  62. end

  63. #==============================================================================
  64. # ■ Game_Actor
  65. #==============================================================================
  66. class Game_Actor
  67.   #--------------------------------------------------------------------------
  68.   # ○ 視界制限の補正値
  69.   #--------------------------------------------------------------------------
  70.   def sight_power
  71.     feature_objects.inject(0) {|result, object| result + object.sight_power }
  72.   end
  73. end

  74. #==============================================================================
  75. # □ Sprite_SightShadow
  76. #==============================================================================
  77. class Sprite_SightShadow < Sprite
  78.   #--------------------------------------------------------------------------
  79.   # ● オブジェクト初期化
  80.   #--------------------------------------------------------------------------
  81.   def initialize(viewport = nil)
  82.     super(viewport)
  83.     self.z = 199
  84.     self.bitmap = Bitmap.new(Graphics.width, Graphics.height)
  85.     @bitmap_shadow = Bitmap.new("Graphics/System/sight_shadow")
  86.   end
  87.   #--------------------------------------------------------------------------
  88.   # ● 解放
  89.   #--------------------------------------------------------------------------
  90.   def dispose
  91.     self.bitmap.dispose
  92.     @bitmap_shadow.dispose
  93.     super
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● フレーム更新
  97.   #--------------------------------------------------------------------------
  98.   def update
  99.     super
  100.     if TMBLSIGHT::SIGHT[$game_map.map_id]
  101.       self.visible = true
  102.       w = TMBLSIGHT::SIGHT[$game_map.map_id]      # マップに設定された補正値
  103.       w += $game_variables[TMBLSIGHT::VN_SIGHT]   # ゲーム変数による補正値
  104.       $game_party.battle_members.each do |actor|
  105.         w = [w + actor.sight_power, 48].max       # 戦闘メンバーの補正値
  106.       end
  107.       x = $game_player.screen_x - w / 2
  108.       y = $game_player.screen_y - w / 2 - 16
  109.       if w != @last_w || x != @last_x || y != @last_y
  110.         @last_w = w
  111.         @last_x = x
  112.         @last_y = y
  113.         self.bitmap.clear
  114.         rect = Rect.new(x, y, w, w)
  115.         self.bitmap.stretch_blt(rect, @bitmap_shadow, @bitmap_shadow.rect)
  116.         color = Color.new(0, 0, 0)
  117.         self.bitmap.fill_rect(0, 0, Graphics.width, y, color)
  118.         self.bitmap.fill_rect(0, y + w, Graphics.width, Graphics.height - y - w, color)
  119.         self.bitmap.fill_rect(0, y, x, w, color)
  120.         self.bitmap.fill_rect(x + w, y, Graphics.width - x - w, w, color)
  121.       end
  122.     else
  123.       self.visible = false
  124.     end
  125.   end
  126. end

  127. #==============================================================================
  128. # ■ Spriteset_Map
  129. #==============================================================================
  130. class Spriteset_Map
  131.   #--------------------------------------------------------------------------
  132.   # ● オブジェクト初期化
  133.   #--------------------------------------------------------------------------
  134.   alias tmblsight_spriteset_map_initialize initialize
  135.   def initialize
  136.     tmblsight_spriteset_map_initialize
  137.     create_sight_shadow
  138.   end
  139.   #--------------------------------------------------------------------------
  140.   # ○ 視界制限スプライトの作成
  141.   #--------------------------------------------------------------------------
  142.   def create_sight_shadow
  143.     @sight_shadow_sprite = Sprite_SightShadow.new(@viewport2)
  144.     update_sight_shadow
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ● 解放
  148.   #--------------------------------------------------------------------------
  149.   alias tmblsight_spriteset_map_dispose dispose
  150.   def dispose
  151.     dispose_sight_shadow
  152.     tmblsight_spriteset_map_dispose
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ○ 視界制限スプライトの解放
  156.   #--------------------------------------------------------------------------
  157.   def dispose_sight_shadow
  158.     @sight_shadow_sprite.dispose
  159.   end
  160.   #--------------------------------------------------------------------------
  161.   # ● フレーム更新
  162.   #--------------------------------------------------------------------------
  163.   alias tmblsight_spriteset_map_update update
  164.   def update
  165.     update_sight_shadow
  166.     tmblsight_spriteset_map_update
  167.   end
  168.   #--------------------------------------------------------------------------
  169.   # ○ 視界制限スプライトの更新
  170.   #--------------------------------------------------------------------------
  171.   def update_sight_shadow
  172.     @sight_shadow_sprite.update if @sight_shadow_sprite
  173.   end
  174. end


复制代码

点评

感谢~不客气的使用了。  发表于 2015-1-3 15:19
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 12:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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