Project1

标题: 很久以前的聪聪的烛光效果插件在关闭菜单的时候会忽然... [打印本页]

作者: 幻想党    时间: 2021-9-17 14:52
标题: 很久以前的聪聪的烛光效果插件在关闭菜单的时候会忽然...
如题,该怎么解决呢
作者: 幻想党    时间: 2021-9-17 14:58
    #==============================================================================
    # ■ 聪聪的多人烛光系统
    #------------------------------------------------------------------------------
    #   使用方法:
    #
    #    【事件脚本】输入:
    #    $game_system.candle_ch_new = [0,x,y,z...]
    #    0表示主角,x,y,z...表示事件编号,所有涉及的角色和事件周围会有烛光效果...
    #
    #    【事件脚本】输入:
    #    $game_system.candle_ch_new = []
    #    取消烛光效果显示,但环境仍然黑暗...
    #
    #    【事件脚本】输入:
    #    $game_system.candle_ch_new = nil
    #    取消烛光效果显示,且环境亮度还原...
    #
    #------------------------------------------------------------------------------
    #  
    #    转载请保留脚本来源:本脚本来自rpg.blue
    #                                                        作者:聪聪(正太君)
    #                                                                2016-05-11
    #==============================================================================
    class Candle
      # 设置暗处不透明度(0-255)...
      OPACITY = 128
      # 设置昏暗度(0-255)...
      DARK = 200
      #--------------------------------------------------------------------------
      # ● # 生成黑暗背景和烛光
      #--------------------------------------------------------------------------
      def candlelight
        @black_rect = Sprite.new
        @black_rect.bitmap = Bitmap.new(Graphics.width, Graphics.height)
        @black_rect.bitmap.fill_rect(0, 0, Graphics.width, Graphics.height, Color.new(DARK, DARK, DARK))
        @black_rect.blend_type = 2
        @black_rect.opacity = OPACITY
        @candle_rect = Sprite.new
        @candle_rect.bitmap = Cache.picture("Light0")
        @candle_rect.visible = false
        @candle_rect.ox = @candle_rect.bitmap.width / 2
        @candle_rect.oy = @candle_rect.bitmap.height / 2
      end
      #--------------------------------------------------------------------------
      # ● 设置有烛光的角色
      #--------------------------------------------------------------------------
      def set_candles(candle_ch)
        return if candle_ch == nil
        chs = candle_ch
        @game_lighterlist = [] if @game_lighterlist.nil?
        @game_lighterlist << $game_player if chs.include?(0)
        chs.each {|i| @game_lighterlist << $game_map.events[i] if i != 0}
        # 移除重复的角色
        @game_lighterlist.uniq!
        # 开启烛光功能
        candlelight
      end
      #--------------------------------------------------------------------------
      # ● 初始化烛光
      #--------------------------------------------------------------------------
      def initialize_candle(ch)
        lsx = @candle_rect.x = ch.screen_x - @candle_rect.ox
        lsy = @candle_rect.y = ch.screen_y - @candle_rect.oy - 16
        @black_rect.bitmap.blt(lsx, lsy, @candle_rect.bitmap, @black_rect.bitmap.rect)
      end
      #--------------------------------------------------------------------------
      # ● 更新烛光
      #--------------------------------------------------------------------------
      def update_candle
        if $game_system.candle_ch == $game_system.candle_ch_new and @black_rect
          @black_rect.bitmap.fill_rect(0, 0, Graphics.width, Graphics.height, Color.new(DARK, DARK, DARK))
          @game_lighterlist.each {|i| initialize_candle(i)}
        else
          dispose_candle
        end
      end
      #--------------------------------------------------------------------------
      # ● 释放烛光
      #--------------------------------------------------------------------------
      def dispose_candle
        @black_rect.dispose if @black_rect
        @candle_rect.dispose if @candle_rect
        @game_lighterlist.clear if @game_lighterlist
      end  
    end
     
    class Scene_Map < Scene_Base
      attr_reader   :candle
      #--------------------------------------------------------------------------
      # ● 开始后处理
      #--------------------------------------------------------------------------
      def post_start
        @candle = Candle.new
        @candle.set_candles($game_system.candle_ch)
      end
      #--------------------------------------------------------------------------
      # ● 更新画面
      #--------------------------------------------------------------------------
      alias :o_update :update
      def update
        o_update
        if $game_system.candle_ch != $game_system.candle_ch_new
          @candle.dispose_candle
          $game_system.candle_ch = $game_system.candle_ch_new
          @candle = Candle.new
          @candle.set_candles($game_system.candle_ch)
        end
        @candle.update_candle
      end
    end
     
    class Game_System
    attr_accessor :candle_ch
    attr_accessor :candle_ch_new
    end
作者: 幻想党    时间: 2021-9-19 18:34
有人吗?
作者: 幻想党    时间: 2021-10-15 14:45
C:\Users\Administrator.KA6ABFLRZY1UH56\Desktop\Project1\Graphics\Characters




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