Project1

标题: 能否加个开关 [打印本页]

作者: y967    时间: 2016-7-21 12:41
标题: 能否加个开关
  1. #==============================================================================
  2. # ■ Sprite_Character
  3. #------------------------------------------------------------------------------
  4. #  角色显示用脚本。监视 Game_Character 类的实例、
  5. # 自动变化脚本状态。
  6. #==============================================================================

  7. class Sprite_Character < RPG::Sprite
  8.   #--------------------------------------------------------------------------
  9.   # ● 定义实例变量
  10.   #--------------------------------------------------------------------------
  11.   attr_accessor :character                # 角色
  12.   #--------------------------------------------------------------------------
  13.   # ● 初始化对像
  14.   #     viewport  : 查看端口
  15.   #     character : 角色 (Game_Character)
  16.   #--------------------------------------------------------------------------
  17.   def initialize(viewport, character = nil)
  18.     super(viewport)
  19.     [url=home.php?mod=space&uid=2631396]@character[/url] = character
  20.     [url=home.php?mod=space&uid=31758]@Shadow[/url] = RPG::Sprite.new(viewport)
  21.     update
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 更新画面
  25.   #--------------------------------------------------------------------------
  26.   def update
  27.     super
  28.     # 元件 ID、文件名、色相与现在的情况存在差异的情况下
  29.     if @tile_id != @character.tile_id or
  30.        @character_name != @character.character_name or
  31.        @character_hue != @character.character_hue
  32.       # 记忆元件 ID 与文件名、色相
  33.       @tile_id = @character.tile_id
  34.       @character_name = @character.character_name
  35.       @character_hue = @character.character_hue
  36.       # 元件 ID 为有效值的情况下
  37.       if @tile_id >= 384
  38.         self.bitmap = RPG::Cache.tile($game_map.tileset_name,
  39.           @tile_id, @character.character_hue)
  40.         self.src_rect.set(0, 0, 32, 32)
  41.         self.ox = 16
  42.         self.oy = 32
  43.       # 元件 ID 为无效值的情况下
  44.       else
  45.         self.bitmap = RPG::Cache.character(@character.character_name,
  46.           @character.character_hue)
  47.         @shadow.bitmap = RPG::Cache.character(@character.character_name,
  48.           @character.character_hue)
  49.         @shadow.flash(Color.new(0, 0, 0, 255), 1)
  50.         @shadow.angle = 180
  51.         @shadow.mirror = true
  52.         @cw = bitmap.width / 4
  53.         @ch = bitmap.height / 4
  54.         self.ox = @cw / 2
  55.         self.oy = @ch
  56.         @shadow.ox = @cw / 2
  57.         @shadow.oy = @ch / 2
  58.       end
  59.     end
  60.     # 设置可视状态
  61.     self.visible = (not @character.transparent)
  62.     @shadow.visible = (not @character.transparent)
  63.     # 图形是角色的情况下
  64.     if @tile_id == 0
  65.       # 设置传送目标的矩形
  66.       sx = @character.pattern * @cw
  67.       if $c3_总共可用的方向数 == 8
  68.         case @character.direction
  69.         when 2
  70.           sy = 0 * @ch
  71.         when 4
  72.           sy = 1 * @ch
  73.         when 6
  74.           sy = 2 * @ch
  75.         when 8
  76.           sy = 3 * @ch
  77.         when 1
  78.           sy = 4 * @ch
  79.         when 3
  80.           sy = 5 * @ch
  81.         when 7
  82.           sy = 6 * @ch
  83.         when 9
  84.           sy = 7 * @ch
  85.         end
  86.       else
  87.         sy = (@character.direction - 2) / 2 * @ch
  88.       end
  89.       self.src_rect.set(sx, sy, @cw, @ch)
  90.       @shadow.src_rect.set(sx, sy, @cw, @ch)
  91.     end
  92.     # 设置脚本的坐标
  93.     self.x = @character.screen_x
  94.     self.y = @character.screen_y
  95.     self.z = @character.screen_z(@ch)
  96.     @shadow.x = @character.screen_x
  97.     @shadow.y = @character.screen_y - 7
  98.     @shadow.z = 0
  99.     @shadow.zoom_y = 0.5
  100.     @shadow.zoom_x = 1
  101.     # 设置不透明度、合成方式、茂密
  102.     self.opacity = @character.opacity
  103.     @shadow.opacity = @character.opacity * 0.6
  104.     self.blend_type = @character.blend_type
  105.     self.bush_depth = @character.bush_depth
  106.     # 动画
  107.     if @character.animation_id != 0
  108.       animation = $data_animations[@character.animation_id]
  109.       animation(animation, true)
  110.       @character.animation_id = 0
  111.     end
  112.   end
  113. end
复制代码


能否给这个角色影子脚本加个开关

作者: 威风镰鼬    时间: 2016-7-21 14:44
我的话要屏蔽影子直接把99行改成if $game_switches[i]==true then @shadow.z = -999 else @shadow.z = 0 end 了/w\
我用的是va的影子脚本
作者: 英顺的马甲    时间: 2016-7-21 21:44
本帖最后由 英顺的马甲 于 2016-7-23 12:37 编辑
  1. $original_Sprite_Character = Sprite_Character.clone
  2. class Sprite_Character < $original_Sprite_Character
  3.   SHADOW_SWITCH = 1 # <================= 开关号
  4.   def update
  5.     super
  6.     @shadow.visible = $game_switches[SHADOW_SWITCH] && [email protected]
  7.   end
  8. end
复制代码





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