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

Project1

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

[已经解决] 镜头脚本出错

[复制链接]

Lv2.观梦者

梦石
0
星屑
285
在线时间
17 小时
注册时间
2020-8-2
帖子
11
跳转到指定楼层
1
发表于 2020-10-21 19:51:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
镜头脚本出错 如图
%Q(
╔════╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═════╗
║ ╔══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╗ ║
╠─╣                            强化镜头功能                             ╠─╣
╠─╣                           by RPG Maker Source.                           ╠─╣
╠─╣                          www.rpgmakersource.com                          ╠─╣
║ ╚══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╝ ║
╠════╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═════╣
║ ┌────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────┐ ║
╠─┤ Version 1.0.1                   13/12/14                        DD/MM/YY ├─╣
║ └────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┘ ║
╠══════╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══════╣
║                                                                              ║
║               This work is protected by the following license:               ║
║     ╔══════════════════════════════════════════════════════════════════╗     ║
║     │                                                                  │     ║
║     │ Copyright ? 2014 Maker Systems.                                  │     ║
║     │                                                                  │     ║
║     │ This software is provided 'as-is', without any kind of           │     ║
║     │ warranty. Under no circumstances will the author be held         │     ║
║     │ liable for any damages arising from the use of this software.    │     ║
║     │                                                                  │     ║
║     │ Permission is granted to anyone to use this software on their    │     ║
║     │ free or commercial games made with a legal copy of RPG Maker     │     ║
║     │ VX Ace, as long as Maker Systems - RPG Maker Source is           │     ║
║     │ credited within the game.                                        │     ║
║     │                                                                  │     ║
║     │ Selling this code or any portions of it 'as-is' or as part of    │     ║
║     │ another code, is not allowed.                                    │     ║
║     │                                                                  │     ║
║     │ The original header, which includes this copyright notice,       │     ║
║     │ must not be edited or removed from any verbatim copy of the      │     ║
║     │ sotware nor from any edited version.                             │     ║
║     │                                                                  │     ║
║     ╚══════════════════════════════════════════════════════════════════╝     ║
║                                                                              ║
║                                                                              ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ 1. VERSION HISTORY.                                                        ▼ ║
╠══════════════════════════════════════════════════════════════════════════════╣
║                                                                              ║
║ ? Version 1.0.0, 08/12/14 - (DD/MM/YY).                                      ║
║                                                                              ║
║ ? Version 1.0.1, 13/12/14 - (DD/MM/YY).                                      ║
║                                                                              ║
╠══════════════════════════════════════════════════════════════════════════════╣
╠══════════════════════════════════════════════════════════════════════════════╣
║ 2. USER MANUAL.                                                            ▼ ║
╠══════════════════════════════════════════════════════════════════════════════╣
║                                                                              ║
║ ┌──────────────────────────────────────────────────────────────────────────┐ ║
║ │ ■ 说明.                                                          │ ║
║ └┬┬┬┬──────────────────────────────────────────────────────────────────┬┬┬┬┘ ║
║                                                                              ║
║  功能如下:
    1、镜头平滑移动
    2、镜头跟随事件
    3、镜头固定                                  ║
║                                                                              ║
║ ┌──────────────────────────────────────────────────────────────────────────┐ ║
║ │ ■ Configuration.                                                         │ ║
║ └┬┬┬┬──────────────────────────────────────────────────────────────────┬┬┬┬┘ ║
║                                                                              ║
║  "How do I change the strength of the deceleration effect?"                  ║
║  Right click anywhere in the script editor and select "Find" (or CTRL + F)   ║
║  search for "Deceleration_Value" (without quotation marks).                  ║
║                                                                              ║
║  You will see something like "Deceleration_Value = 22"                       ║
║                                                                              ║
║  Set the number after the equality sign to any numer you like, bigger or     ║
║  equal than 1. The bigger the number, the stronger the deceleration effect   ║
║  and thus the slower the camera movement when following the player. Small    ║
║  numbers result in a faster deceleration, default value is 22.               ║
║                                                                              ║
║ ┌──────────────────────────────────────────────────────────────────────────┐ ║
║ │ ■ 具体功能.                                                 │ ║
║ └┬┬┬┬──────────────────────────────────────────────────────────────────┬┬┬┬┘ ║
║                                                                              ║
║  可用脚本:                                 ║
║                                                                              ║
║  ┌───────────────────────────────┐                                           ║
║  │ ms_pro_cam_wait_for_scrolling │                                           ║
║  ├───────────────────────────────┴────────────────────────────────────────┐  ║
║  │ 开启:等待直至镜头移动结束
       意思是镜头移动结束后,才会执行下一个事件指令
       对默认的地图滚动、本脚本中镜头移动的呼出脚本两者都有效.                                                    │  ║
║  └────────────────────────────────────────────────────────────────────────┘  ║
║  ┌────────────────────────────────────┐                                      ║
║  │ ms_pro_cam_center_at(x, y, 时间) │                                      ║
║  ├────────────────────────────────────┴───────────────────────────────────┐  ║
║  │ 镜头中心移动到(x,y)坐标处,时间的单位是帧
║  │                                                                        │  ║
║  │ 注意: 同样适用于循环地图. 通常情况下,如果你从地图左上角移动镜头到左下角,
       镜头会经过画面中心处.    │  ║
║  │ 但如果你的地图是循环地图,镜头会寻找最短的移动路径,不经过画面中心              │  ║
║  │                                                                        │  ║
║  │ 例子: 镜头中心移动到(44,44)处,用时6秒     │  ║
║  │                                                                        │  ║
║  │ ms_pro_cam_center_at(44, 44, 360)                                      │  ║
║  └────────────────────────────────────────────────────────────────────────┘  ║
║  ┌───────────────────────────────────────┐                                   ║
║  │ ms_pro_cam_center_at_char(id, 时间) │                                   ║
║  ├───────────────────────────────────────┴────────────────────────────────┐  ║
║  │ 移动到目标处             │  ║
║  │                                                                        │  ║
║  │ (*) id = -1 时代表玩家, 0 代表当前事件, 1 或以上代表事件id.                               │  ║
║  └────────────────────────────────────────────────────────────────────────┘  ║
║  ┌──────────────────────────────────────────┐                                ║
║  │ ms_pro_cam_focus_on(id, 可取消?, 按键) │                                ║
║  ├──────────────────────────────────────────┴─────────────────────────────┐  ║
║  │ 镜头跟随目标                                    │  ║
║  │                                                                        │  ║
║  │ 例子,镜头跟随22号事件: ms_pro_cam_focus_on(22)                                    │  ║
║  │                                                                        │  ║
║  │ 镜头跟随玩家:                 │  ║
║  │ ms_pro_cam_focus_on(-1)                                                │  ║
║  │                                                                        │  ║
║  │ (*) "可取消" 替换为 true 或 false,代表能否通过一个按键取消镜头跟随,并
          自动将镜头目标跟随回玩家│  ║
║  │                                                                        │  ║
║  │ (*) "按键"是取消跟随镜头的按键,仅在"可取消?"设定为true时有效,默认为 :CTRL                                                      │  ║
║  │                                                                        │  ║
║  │ 默认可用按键:                         │  ║
║  │                                                                        │  ║
║  │ :DOWN :LEFT :RIGHT :UP (方向键)                                    │  ║
║  │ :A :B :C :X :Y :Z :L :R      │  ║
║  │ :SHIFT :CTRL :ALT                                                      │  ║
║  │ :F5 :F6 :F7 :F8 :F9                                                    │  ║
║  └────────────────────────────────────────────────────────────────────────┘  ║
║  ┌─────────────────────────────────────┐                                     ║
║  │ ms_pro_cam_character_on_screen?(id) │                                     ║
║  ├─────────────────────────────────────┴──────────────────────────────────┐  ║
║  │ 检查事件是否在画面中.                              │  ║
║  │                                                                        │  ║
║  │ 可以用于分支条件中,例如检查代表小偷的事件是否在画面中,如果不在玩家
       抓贼失败这样
      
       当然,id和之前一样,也可以代表玩家.                 │  ║
║  └────────────────────────────────────────────────────────────────────────┘  ║
║  ┌──────────────────────┐                                                    ║
║  │ ms_pro_cam_reset_str │                                                    ║
║  ├──────────────────────┴─────────────────────────────────────────────────┐  ║
║  │ 设定镜头移动的速度为默认值 │  ║
║  └────────────────────────────────────────────────────────────────────────┘  ║
║  ┌───────────────────────┐                                                   ║
║  │ ms_pro_cam_str(数值) │                                                   ║
║  ├───────────────────────┴────────────────────────────────────────────────┐  ║
║  │ 设定镜头移动加速度                                                             │  ║
║  │                                                                        │  ║
║  │ 数值越小,移动速度越快 (1 为默认速度)                                 │  ║
║  └────────────────────────────────────────────────────────────────────────┘  ║
║  ┌──────────────────────────────────────┐                                    ║
║  │ ms_pro_cam_ignore_player(true/false) │                                    ║
║  ├──────────────────────────────────────┴─────────────────────────────────┐  ║
║  │ 镜头是否固定在地图上,不跟随玩家移动       │  ║
║  └────────────────────────────────────────────────────────────────────────┘  ║
║  ┌────────────────────────┐                                                  ║
║  │ ms_pro_cam_lock_camera │                                                  ║
║  ├────────────────────────┴───────────────────────────────────────────────┐  ║
║  │ 锁定镜头                                                         │  ║
║  └────────────────────────────────────────────────────────────────────────┘  ║
║  ┌──────────────────────────┐                                                ║
║  │ ms_pro_cam_unlock_camera │                                                ║
║  ├──────────────────────────┴─────────────────────────────────────────────┐  ║
║  │ 解锁镜头                 │  ║
║  └────────────────────────────────────────────────────────────────────────┘  ║
║                                                                              ║
╠══════════════════════════════════════════════════════════════════════════════╣
╠══════════════════════════════════════════════════════════════════════════════╣
║ 3. NOTES.                                                                  ▼ ║
╠══════════════════════════════════════════════════════════════════════════════╣
║                                                                              ║
║  Have fun and enjoy!                                                         ║
║                                                                              ║
╠══════════════════════════════════════════════════════════════════════════════╣
╠══════════════════════════════════════════════════════════════════════════════╣
║ 4. CONTACT.                                                                ▼ ║
╠══════════════════════════════════════════════════════════════════════════════╣
║                                                                              ║
║  Keep in touch with us and be the first to know about new releases:          ║
║                                                                              ║
║  www.rpgmakersource.com                                                      ║
║  www.facebook.com/RPGMakerSource                                             ║
║  www.twitter.com/RPGMakerSource                                              ║
║  www.youtube.com/user/RPGMakerSource                                         ║
║                                                                              ║
║  Get involved! Have an idea for a system? Let us know.                       ║
║                                                                              ║
║  Spread the word and help us reach more people so we can continue creating   ║
║  awesome resources for you!                                                  ║
║                                                                              ║
╚══════════════════════════════════════════════════════════════════════════════╝)

#==============================================================================
# ** Maker Systems
#------------------------------------------------------------------------------
#  Module for our Systems.
#==============================================================================

module MakerSystems
  
  #============================================================================
  # ** Enhanced Camera
  #----------------------------------------------------------------------------
  #  Contains configurable values for the camera systems.
  #============================================================================
  
  module EnhancedCamera
   
    #------------------------------------------------------------------------
    # * 默认镜头滚动加速度.                                [OPT]
    #------------------------------------------------------------------------
    Deceleration_Value = 38
   
  end
  
end

#==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
#  Added methods to use in Script Call Event Command.
#==============================================================================

class Game_Interpreter
  
  #--------------------------------------------------------------------------
  # * Reset Deceleration Strength.                                      [NEW]
  #--------------------------------------------------------------------------
  def ms_pro_cam_reset_str
    # Set camera deceleration strength back to default.
    $game_map.ms_ecam_str =
    MakerSystems::EnhancedCamera::Deceleration_Value.to_f
  end
  #--------------------------------------------------------------------------
  # * Deceleration Strength.                                            [NEW]
  #--------------------------------------------------------------------------
  def ms_pro_cam_str(value)
    # Set camera deceleration strength.
    $game_map.ms_ecam_str = value.to_f
  end
  #--------------------------------------------------------------------------
  # * Ignore Player Toggle.                                             [NEW]
  #--------------------------------------------------------------------------
  def ms_pro_cam_ignore_player(value)
    # Set ignore player flag.
    $game_map.ms_ecam_ignore_player = value
  end
  #--------------------------------------------------------------------------
  # * Lock Camera.                                                      [NEW]
  #--------------------------------------------------------------------------
  def ms_pro_cam_lock_camera
    # Turns on camera lock flag.
    $game_map.ms_ecam_locked = true
  end
  #--------------------------------------------------------------------------
  # * Unlock Camera.                                                    [NEW]
  #--------------------------------------------------------------------------
  def ms_pro_cam_unlock_camera
    # Turns off camera lock flag.
    $game_map.ms_ecam_locked = false
  end
  #--------------------------------------------------------------------------
  # * Character on Screen?                                              [NEW]
  #--------------------------------------------------------------------------
  def ms_pro_cam_character_on_screen?(id)
    # Get character based on provided number (id).
    character = get_character(id)
    # Inside screen boundaries?
    character.screen_x > 0 && character.screen_x < Graphics.width &&
    character.screen_y > 0 && character.screen_y < Graphics.height
  end
  #--------------------------------------------------------------------------
  # * Focus on Character.                                               [NEW]
  #--------------------------------------------------------------------------
  def ms_pro_cam_focus_on(id, can_cancel = false, key = :CTRL)
    # Get character based on provided number (id).
    character = get_character(id)
    # Special handling if Player is the target.
    if character.is_a?(Game_Player)
      # Clears special character focus variable.
      $game_map.ms_ecam_target        = nil
      # Turns off ignore player flag.
      $game_map.ms_ecam_ignore_player = false
      # Moves camera back to player.
      $game_map.ms_ecam_center(character.real_x, character.real_y)
    else
      # Sets camera target to its new target character.
      $game_map.ms_ecam_target      = character
      # Sets cancel focus flag.
      $game_map.ms_ecam_cancel     = can_cancel
      # Sets cancel focus key.
      $game_map.ms_ecam_cancel_key = key
    end
  end
  #--------------------------------------------------------------------------
  # * Wait for Scrolling.                                               [NEW]
  #--------------------------------------------------------------------------
  def ms_pro_cam_wait_for_scrolling
    # Yield until scrolling is completed.
    Fiber.yield while $game_map.scrolling? || $game_map.ms_ecam_iterations
  end
  #--------------------------------------------------------------------------
  # * Center Camera at Position.                                        [NEW]
  #--------------------------------------------------------------------------
  def ms_pro_cam_center_at(x, y, frames)
    # Set camera location target.
    $game_map.ms_ecam_go_to(x, y, frames)
  end
  #--------------------------------------------------------------------------
  # * Center Camera at Character.                                       [NEW]
  #--------------------------------------------------------------------------
  def ms_pro_cam_center_at_char(id, frames)
    # Get character based on provided number (id).
    character = get_character(id)
    # Set camera location target.
    $game_map.ms_ecam_go_to(character.x, character.y, frames)
  end
  
end

#==============================================================================
# ** Game_Map
#------------------------------------------------------------------------------
#  Edited update_scroll and initialize.
#==============================================================================

class Game_Map
  
  #--------------------------------------------------------------------------
  # * Public Instance Variables.                                        [NEW]
  #--------------------------------------------------------------------------
  attr_accessor :ms_ecam_target, :ms_ecam_iterations, :ms_ecam_str,
                :ms_ecam_ignore_player, :ms_ecam_locked, :ms_ecam_cancel,
                :ms_ecam_cancel_key
  #--------------------------------------------------------------------------
  # * Alias Initialize.                                                 [NEW]
  #--------------------------------------------------------------------------
  alias_method(:ms_ecam_original_initialize, :initialize)
  #--------------------------------------------------------------------------
  # * Initialize.                                                       [MOD]
  #--------------------------------------------------------------------------
  def initialize
    # Original method.
    ms_ecam_original_initialize
    # Initializes deceleration strength.
    @ms_ecam_str = MakerSystems::EnhancedCamera::Deceleration_Value.to_f
  end
  #--------------------------------------------------------------------------
  # * Center Position.                                                  [NEW]
  #--------------------------------------------------------------------------
  def ms_ecam_center(target_real_x, target_real_y, hard = false)
    # Target position, centered.
    @ms_ecam_real_x = target_real_x - screen_tile_x / 2
    @ms_ecam_real_y = target_real_y - screen_tile_y / 2
    # Position correction for no horizontally looped maps.
    unless loop_horizontal?
      # Limit for the X axis.
      limit_x  = width  - screen_tile_x
      limit_x  = 0 if limit_x < 0
      # Keeps target position inside correct boundaries.
      @ms_ecam_real_x = 0       if @ms_ecam_real_x < 0
      @ms_ecam_real_x = limit_x if @ms_ecam_real_x > limit_x
    end
    # Position correction for no vertically looped maps.
    unless loop_vertical?
      # Limit for the Y axis.
      limit_y  = height - screen_tile_y
      limit_y  = 0 if limit_y < 0
      # Keeps target position inside correct boundaries.
      @ms_ecam_real_y = 0       if @ms_ecam_real_y < 0
      @ms_ecam_real_y = limit_y if @ms_ecam_real_y > limit_y
    end
    # Ensures correct target values in case of looping any axis.
    @ms_ecam_real_x %= width
    @ms_ecam_real_y %= height
    # No smooth movement?
    if hard
      # Sets display position now, without any smooth deceleration effect.
      @display_x = @ms_ecam_real_x
      @display_y = @ms_ecam_real_y
    end
  end
  #--------------------------------------------------------------------------
  # * Prepares Camera Target.                                           [NEW]
  #--------------------------------------------------------------------------
  def ms_ecam_go_to(target_x, target_y, period = 60.0)
    # Prevents execution of any kind of camera movement if locked flag is on.
    return if @ms_ecam_locked
    # Sets correct target positions.
    ms_ecam_center(target_x, target_y)
    # Gets correct X distance.
    @ms_ecam_x_amplitude = ms_ecam_correct_amplitude(@display_x,
                                   @ms_ecam_real_x, width, loop_horizontal?)
    # Gets correct Y distance.
    @ms_ecam_y_amplitude = ms_ecam_correct_amplitude(@display_y,
                                    @ms_ecam_real_y, height, loop_vertical?)
    # Initializes iteration counter.
    @ms_ecam_iterations = 0.0
    # Saves the original, starting position.
    @ms_ecam_x_original = @display_x
    @ms_ecam_y_original = @display_y
    # Sets period (time).
    @ms_ecam_period = period.to_f
  end
  #--------------------------------------------------------------------------
  # * Correct Amplitude.                                                [NEW]
  #--------------------------------------------------------------------------
  def ms_ecam_correct_amplitude(current, target, limit, condition)
    # Checks if looping in the desired axis.
    if condition
      # Returns shortest distance, crossing map borders if needed.
      if ((target - current) % limit) < ((current - target) % limit)
        (target - current) % limit
      else
        -((current - target) % limit)
      end
    else
      # Returns normal distance.
      target - current
    end
  end
  #--------------------------------------------------------------------------
  # * Alias Update Scroll.                                              [NEW]
  #--------------------------------------------------------------------------
  alias_method(:ms_ecam_original_update_scroll, :update_scroll)
  #--------------------------------------------------------------------------
  # * Update Scroll.                                                    [MOD]
  #--------------------------------------------------------------------------
  def update_scroll
    # Prevents execution of any kind of camera movement if locked flag is on.
    return if @ms_ecam_locked
    # If non player target for camera.
    if @ms_ecam_target
      # If can be cancelled by player input and the key is triggered.
      if @ms_ecam_cancel && Input.trigger?(@ms_ecam_cancel_key)
        # Clears target flag.
        @ms_ecam_target = nil
        # Moves camera back to player.
        ms_ecam_center($game_player.real_x, $game_player.real_y)
      else
        # Centers camera on target.
        ms_ecam_center(@ms_ecam_target.real_x, @ms_ecam_target.real_y, false)
      end
    end
    # Iterations pending?
    if @ms_ecam_iterations
      # Calculates period.
      period = (@ms_ecam_iterations / @ms_ecam_period) * 1.57
      # Sets new display positions.
      @display_x = @ms_ecam_x_original + @ms_ecam_x_amplitude * Math.sin(period)
      @display_y = @ms_ecam_y_original + @ms_ecam_y_amplitude * Math.sin(period)
      # Ensures correct display values.
      @display_x %= $game_map.width
      @display_y %= $game_map.height
      # If target positions were reached.
      if period == 1.57
        # Sets target position flag off.
        @ms_ecam_iterations = nil
        # Updates target positions.
        @ms_ecam_real_x = @display_x
        @ms_ecam_real_y = @display_y
      else
        # Updates iteration count.
        @ms_ecam_iterations += 1.0
      end
    else
      # Camera being moved by event commands?
      if scrolling?
        # Target position is actual display position.
        @ms_ecam_real_x = @display_x
        @ms_ecam_real_y = @display_y
      else
        # Moves camera. Correct step value with deceleration effect. X Axis.
        @display_x += ms_ecam_correct_amplitude(@display_x,
        @ms_ecam_real_x, width, loop_horizontal?) / @ms_ecam_str
        # Moves camera. Correct step value with deceleration effect. Y Axis.
        @display_y += ms_ecam_correct_amplitude(@display_y,
        @ms_ecam_real_y, height, loop_vertical?)  / @ms_ecam_str
        # Keeps map display values inside correct boundaries.
        @display_x %= width
        @display_y %= height
      end
    end
    # Original method.
    ms_ecam_original_update_scroll
  end
  
end

#==============================================================================
# ** Game_Player
#------------------------------------------------------------------------------
#  Replaced update_scroll and center.
#==============================================================================

class Game_Player < Game_Character
  
  #--------------------------------------------------------------------------
  # * Update Scroll.                                                    [REP]
  #--------------------------------------------------------------------------
  def update_scroll(last_real_x, last_real_y)
    # Check if it is good to go.
    unless $game_map.ms_ecam_target        || $game_map.ms_ecam_iterations ||
           $game_map.ms_ecam_ignore_player || !moving?
      # Updates the camera centering.
      $game_map.ms_ecam_center(@real_x, @real_y)
    end
  end
  #--------------------------------------------------------------------------
  # * Center.                                                           [REP]
  #--------------------------------------------------------------------------
  def center(x, y)
    # Don't center if the camera is anchored to its position.
    return if $game_map.ms_ecam_locked
    # Center camera display position at once.
    $game_map.ms_ecam_center(x.to_f, y.to_f, true)
  end
  
end

Lv4.逐梦者

梦石
0
星屑
9330
在线时间
1257 小时
注册时间
2017-9-27
帖子
149
2
发表于 2020-10-22 08:29:29 | 只看该作者
在下测试过后确认脚本是没问题的,如果报错,其中一个原因是脚本冲突,另外的原因就是
RUBY 代码复制
  1. ╔════╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═════╗
  2. ║ ╔══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╗ ║
  3. ╠─╣                            强化镜头功能                             ╠─╣
  4. ╠─╣                           by RPG Maker Source.                           ╠─╣
  5. ╠─╣                          [url]www.rpgmakersource.com[/url]                          ╠─╣
  6. ║ ╚══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╝ ║
  7. ╠════╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═╤═╩═════╣
  8. ║ ┌────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────┐ ║
  9. ╠─┤ Version 1.0.1                   13/12/14                        DD/MM/YY ├─╣
  10. ║ └────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┘ ║
  11. ╠══════╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══════╣
  12. ║                                                                              ║
  13. ║               This work is protected by the following license:               ║
  14. ║     ╔══════════════════════════════════════════════════════════════════╗     ║
  15. ║     │                                                                  │     ║
  16. ║     │ Copyright ? 2014 Maker Systems.                                  │     ║
  17. ║     │                                                                  │     ║
  18. ║     │ This software is provided 'as-is', without any kind of           │     ║
  19. ║     │ warranty. Under no circumstances will the author be held         │     ║
  20. ║     │ liable for any damages arising from the use of this software.    │     ║
  21. ║     │                                                                  │     ║
  22. ║     │ Permission is granted to anyone to use this software on their    │     ║
  23. ║     │ free or commercial games made with a legal copy of RPG Maker     │     ║
  24. ║     │ VX Ace, as long as Maker Systems - RPG Maker Source is           │     ║
  25. ║     │ credited within the game.                                        │     ║
  26. ║     │                                                                  │     ║
  27. ║     │ Selling this code or any portions of it 'as-is' or as part of    │     ║
  28. ║     │ another code, is not allowed.                                    │     ║
  29. ║     │                                                                  │     ║
  30. ║     │ The original header, which includes this copyright notice,       │     ║
  31. ║     │ must not be edited or removed from any verbatim copy of the      │     ║
  32. ║     │ sotware nor from any edited version.                             │     ║
  33. ║     │                                                                  │     ║
  34. ║     ╚══════════════════════════════════════════════════════════════════╝     ║
  35. ║                                                                              ║
  36. ║                                                                              ║
  37. ╠══════════════════════════════════════════════════════════════════════════════╣
  38. 1. VERSION HISTORY.                                                        ▼ ║
  39. ╠══════════════════════════════════════════════════════════════════════════════╣
  40. ║                                                                              ║
  41. ║ ? Version 1.0.0, 08/12/14 - (DD/MM/YY).                                      ║
  42. ║                                                                              ║
  43. ║ ? Version 1.0.1, 13/12/14 - (DD/MM/YY).                                      ║
  44. ║                                                                              ║
  45. ╠══════════════════════════════════════════════════════════════════════════════╣
  46. ╠══════════════════════════════════════════════════════════════════════════════╣
  47. 2. USER MANUAL.                                                            ▼ ║
  48. ╠══════════════════════════════════════════════════════════════════════════════╣
  49. ║                                                                              ║
  50. ║ ┌──────────────────────────────────────────────────────────────────────────┐ ║
  51. ║ │ ■ 说明.                                                          │ ║
  52. ║ └┬┬┬┬──────────────────────────────────────────────────────────────────┬┬┬┬┘ ║
  53. ║                                                                              ║
  54. ║  功能如下:
  55.     1、镜头平滑移动
  56.     2、镜头跟随事件
  57.     3、镜头固定                                  ║
  58. ║                                                                              ║
  59. ║ ┌──────────────────────────────────────────────────────────────────────────┐ ║
  60. ║ │ ■ Configuration.                                                         │ ║
  61. ║ └┬┬┬┬──────────────────────────────────────────────────────────────────┬┬┬┬┘ ║
  62. ║                                                                              ║
  63. ║  "How do I change the strength of the deceleration effect?"                  ║
  64. ║  Right click anywhere in the script editor and select "Find" (or CTRL + F)   ║
  65. ║  search for "Deceleration_Value" (without quotation marks).                  ║
  66. ║                                                                              ║
  67. ║  You will see something like "Deceleration_Value = 22"                       ║
  68. ║                                                                              ║
  69. ║  Set the number after the equality sign to any numer you like, bigger or     ║
  70. ║  equal than 1. The bigger the number, the stronger the deceleration effect   ║
  71. ║  and thus the slower the camera movement when following the player. Small    ║
  72. ║  numbers result in a faster deceleration, default value is 22.               ║
  73. ║                                                                              ║
  74. ║ ┌──────────────────────────────────────────────────────────────────────────┐ ║
  75. ║ │ ■ 具体功能.                                                 │ ║
  76. ║ └┬┬┬┬──────────────────────────────────────────────────────────────────┬┬┬┬┘ ║
  77. ║                                                                              ║
  78. ║  可用脚本:                                 ║
  79. ║                                                                              ║
  80. ║  ┌───────────────────────────────┐                                           ║
  81. ║  │ ms_pro_cam_wait_for_scrolling │                                           ║
  82. ║  ├───────────────────────────────┴────────────────────────────────────────┐  ║
  83. ║  │ 开启:等待直至镜头移动结束
  84.        意思是镜头移动结束后,才会执行下一个事件指令
  85.        对默认的地图滚动、本脚本中镜头移动的呼出脚本两者都有效.                                                    │  ║
  86. ║  └────────────────────────────────────────────────────────────────────────┘  ║
  87. ║  ┌────────────────────────────────────┐                                      ║
  88. ║  │ ms_pro_cam_center_at(x, y, 时间) │                                      ║
  89. ║  ├────────────────────────────────────┴───────────────────────────────────┐  ║
  90. ║  │ 镜头中心移动到(x,y)坐标处,时间的单位是帧
  91. ║  │                                                                        │  ║
  92. ║  │ 注意: 同样适用于循环地图. 通常情况下,如果你从地图左上角移动镜头到左下角,
  93.        镜头会经过画面中心处.    │  ║
  94. ║  │ 但如果你的地图是循环地图,镜头会寻找最短的移动路径,不经过画面中心              │  ║
  95. ║  │                                                                        │  ║
  96. ║  │ 例子: 镜头中心移动到(4444)处,用时6秒     │  ║
  97. ║  │                                                                        │  ║
  98. ║  │ ms_pro_cam_center_at(44, 44, 360)                                      │  ║
  99. ║  └────────────────────────────────────────────────────────────────────────┘  ║
  100. ║  ┌───────────────────────────────────────┐                                   ║
  101. ║  │ ms_pro_cam_center_at_char(id, 时间) │                                   ║
  102. ║  ├───────────────────────────────────────┴────────────────────────────────┐  ║
  103. ║  │ 移动到目标处             │  ║
  104. ║  │                                                                        │  ║
  105. ║  │ (*) id = -1 时代表玩家, 0 代表当前事件, 1 或以上代表事件id.                               │  ║
  106. ║  └────────────────────────────────────────────────────────────────────────┘  ║
  107. ║  ┌──────────────────────────────────────────┐                                ║
  108. ║  │ ms_pro_cam_focus_on(id, 可取消?, 按键) │                                ║
  109. ║  ├──────────────────────────────────────────┴─────────────────────────────┐  ║
  110. ║  │ 镜头跟随目标                                    │  ║
  111. ║  │                                                                        │  ║
  112. ║  │ 例子,镜头跟随22号事件: ms_pro_cam_focus_on(22)                                    │  ║
  113. ║  │                                                                        │  ║
  114. ║  │ 镜头跟随玩家:                 │  ║
  115. ║  │ ms_pro_cam_focus_on(-1)                                                │  ║
  116. ║  │                                                                        │  ║
  117. ║  │ (*) "可取消" 替换为 truefalse,代表能否通过一个按键取消镜头跟随,并
  118.           自动将镜头目标跟随回玩家│  ║
  119. ║  │                                                                        │  ║
  120. ║  │ (*) "按键"是取消跟随镜头的按键,仅在"可取消?"设定为true时有效,默认为 :CTRL                                                      │  ║
  121. ║  │                                                                        │  ║
  122. ║  │ 默认可用按键:                         │  ║
  123. ║  │                                                                        │  ║
  124. ║  │ :DOWN :LEFT :RIGHT :UP (方向键)                                    │  ║
  125. ║  │ :A :B :C :X :Y :Z :L :R      │  ║
  126. ║  │ :SHIFT :CTRL :ALT                                                      │  ║
  127. ║  │ :F5 :F6 :F7 :F8 :F9                                                    │  ║
  128. ║  └────────────────────────────────────────────────────────────────────────┘  ║
  129. ║  ┌─────────────────────────────────────┐                                     ║
  130. ║  │ ms_pro_cam_character_on_screen?(id) │                                     ║
  131. ║  ├─────────────────────────────────────┴──────────────────────────────────┐  ║
  132. ║  │ 检查事件是否在画面中.                              │  ║
  133. ║  │                                                                        │  ║
  134. ║  │ 可以用于分支条件中,例如检查代表小偷的事件是否在画面中,如果不在玩家
  135.        抓贼失败这样
  136.  
  137.        当然,id和之前一样,也可以代表玩家.                 │  ║
  138. ║  └────────────────────────────────────────────────────────────────────────┘  ║
  139. ║  ┌──────────────────────┐                                                    ║
  140. ║  │ ms_pro_cam_reset_str │                                                    ║
  141. ║  ├──────────────────────┴─────────────────────────────────────────────────┐  ║
  142. ║  │ 设定镜头移动的速度为默认值 │  ║
  143. ║  └────────────────────────────────────────────────────────────────────────┘  ║
  144. ║  ┌───────────────────────┐                                                   ║
  145. ║  │ ms_pro_cam_str(数值) │                                                   ║
  146. ║  ├───────────────────────┴────────────────────────────────────────────────┐  ║
  147. ║  │ 设定镜头移动加速度                                                             │  ║
  148. ║  │                                                                        │  ║
  149. ║  │ 数值越小,移动速度越快 (1 为默认速度)                                 │  ║
  150. ║  └────────────────────────────────────────────────────────────────────────┘  ║
  151. ║  ┌──────────────────────────────────────┐                                    ║
  152. ║  │ ms_pro_cam_ignore_player(true/false) │                                    ║
  153. ║  ├──────────────────────────────────────┴─────────────────────────────────┐  ║
  154. ║  │ 镜头是否固定在地图上,不跟随玩家移动       │  ║
  155. ║  └────────────────────────────────────────────────────────────────────────┘  ║
  156. ║  ┌────────────────────────┐                                                  ║
  157. ║  │ ms_pro_cam_lock_camera │                                                  ║
  158. ║  ├────────────────────────┴───────────────────────────────────────────────┐  ║
  159. ║  │ 锁定镜头                                                         │  ║
  160. ║  └────────────────────────────────────────────────────────────────────────┘  ║
  161. ║  ┌──────────────────────────┐                                                ║
  162. ║  │ ms_pro_cam_unlock_camera │                                                ║
  163. ║  ├──────────────────────────┴─────────────────────────────────────────────┐  ║
  164. ║  │ 解锁镜头                 │  ║
  165. ║  └────────────────────────────────────────────────────────────────────────┘  ║
  166. ║                                                                              ║
  167. ╠══════════════════════════════════════════════════════════════════════════════╣
  168. ╠══════════════════════════════════════════════════════════════════════════════╣
  169. 3. NOTES.                                                                  ▼ ║
  170. ╠══════════════════════════════════════════════════════════════════════════════╣
  171. ║                                                                              ║
  172. ║  Have fun and enjoy!                                                         ║
  173. ║                                                                              ║
  174. ╠══════════════════════════════════════════════════════════════════════════════╣
  175. ╠══════════════════════════════════════════════════════════════════════════════╣
  176. 4. CONTACT.                                                                ▼ ║
  177. ╠══════════════════════════════════════════════════════════════════════════════╣
  178. ║                                                                              ║
  179. ║  Keep in touch with us and be the first to know about new releases:          ║
  180. ║                                                                              ║
  181. ║  [url]www.rpgmakersource.com[/url]                                                      ║
  182. ║  [url]www.facebook.com/RPGMakerSource[/url]                                             ║
  183. ║  [url]www.twitter.com/RPGMakerSource[/url]                                              ║
  184. ║  [url]www.youtube.com/user/RPGMakerSource[/url]                                         ║
  185. ║                                                                              ║
  186. ║  Get involved! Have an idea for a system? Let us know.                       ║
  187. ║                                                                              ║
  188. ║  Spread the word and help us reach more people so we can continue creating   ║
  189. ║  awesome resources for you!                                                  ║
  190. ║                                                                              ║
  191. ╚══════════════════════════════════════════════════════════════════════════════╝)

是不是把这段代码都放进脚本里面了?如果是的话,前面要加#才行
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 02:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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