| 赞 | 0  | 
 
| VIP | 0 | 
 
| 好人卡 | 0 | 
 
| 积分 | 1 | 
 
| 经验 | 350 | 
 
| 最后登录 | 2020-5-5 | 
 
| 在线时间 | 0 小时 | 
 
 
 
 
 
Lv1.梦旅人 
	- 梦石
 - 0 
 
        - 星屑
 - 55 
 
        - 在线时间
 - 0 小时
 
        - 注册时间
 - 2009-1-19
 
        - 帖子
 - 23
 
 
 
 | 
	
用这个脚本! 
把它全部复制! 
插入即可! 
分  分  分  分  
 
 
 
#========================================================================== 
# 本脚本来自www.66RPG.com,使用和转载请保留此信息 
#==========================================================================  
 
module Momo_IconCommand 
  # 图标名称设定 
  ATTACK_ICON_NAME = "001-Weapon01" # 攻撃 
  SKILL_ICON_NAME = "044-Skill01"   # 特技 
  GUARD_ICON_NAME = "009-Shield01"  # 防御 
  ITEM_ICON_NAME = "032-Item01"     # 物品 
  # X坐标修正 
  X_PLUS = -40 
  # Y坐标修正 
  Y_PLUS = -180 
  # 选择时图标的动作 
  # 0:静止 1:放大 
  SELECT_TYPE = 0 
  # 闪烁时光芒的颜色 
  FLASH_COLOR = Color.new(255, 255, 255, 128) 
  # 闪烁时间 
  FLASH_DURATION = 10 
  # 闪烁间隔 
  FLASH_INTERVAL = 20 
  # 是否写出文字的名称 
  COM_NAME_DROW = true 
  # 文字名称是否移动 
  COM_NAME_MOVE = true 
  # 文字内容 
  ATTACK_NAME = "攻击"    # 攻击 
  SKILL_NAME = "特技"   # 特技 
  GUARD_NAME = "防御"     # 防御 
  ITEM_NAME = "物品"  # 物品 
  # 文字颜色 
  COM_NAME_COLOR = Color.new(255, 255, 255, 255) 
  # 文字坐标修正 
  COM_NAME_X_PLUS = 0 
  COM_NAME_Y_PLUS = 0 
end 
 
class Window_CommandIcon < Window_Selectable 
  attr_accessor :last_index 
  #------------------------------------------------------------------------ 
  # ● オブジェクト初期化 
  #------------------------------------------------------------------------ 
  def initialize(x, y, commands) 
    super(x, y, 32, 32) 
    # ウィンドウスキンに空文字列を指定してウィンドウを描画しないようにする 
    self.windowskin = RPG::Cache.windowskin("") 
    @item_max = commands.size 
    @commands = commands 
    @column_max = commands.size 
    @index = 0 
    @last_index = nil 
    @name_sprite = nil 
    @sprite = [] 
    refresh 
  end 
  def dispose 
    super 
    for sprite in @sprite 
      sprite.dispose unless sprite.nil? 
    end 
    @name_sprite.dispose unless @name_sprite.nil? 
  end 
  #------------------------------------------------------------------------ 
  # ● リフレッシュ 
  #------------------------------------------------------------------------ 
  def refresh 
    @name_sprite.dispose unless @name_sprite.nil? 
    for sprite in @sprite 
      sprite.dispose unless sprite.nil? 
    end 
    @name_sprite = nil 
    draw_com_name if Momo_IconCommand::COM_NAME_DROW 
    @sprite = [] 
    for i in 0...@item_max 
      draw_item(i) 
    end 
  end 
  #------------------------------------------------------------------------ 
  # ● 項目の描画 
  #------------------------------------------------------------------------ 
  def draw_item(index) 
    @sprite[index] = Sprite_Icon.new(nil, @commands[index]) 
    @sprite[index].z = self.z + 1 
  end 
  def draw_com_name 
    @name_sprite = Sprite_Comm_Name.new(nil, get_com_name) 
     
  end 
   
  # 更新 
  def update 
    super 
    icon_update 
    com_name_update if Momo_IconCommand::COM_NAME_DROW 
    if move_index? 
      @last_index = self.index 
    end 
  end 
  # アイコンの更新 
  def icon_update 
    for i in [email protected] 
      @sprite.active = (self.index == i) 
      @sprite.x = self.x + i * 24 
      @sprite.y = self.y + 0 
      @sprite.z = (self.index == i) ? self.z + 2 : self.z + 1 
      @sprite.visible = self.visible 
      @sprite.update 
    end 
  end 
  # コマンドネームの更新 
  def com_name_update 
    if move_index? 
      @name_sprite.name = get_com_name 
    end 
    @name_sprite.x = self.x - 12 + Momo_IconCommand::COM_NAME_X_PLUS 
    @name_sprite.y = self.y - 40 + Momo_IconCommand::COM_NAME_Y_PLUS 
    @name_sprite.z = self.z + 1 
    @name_sprite.active = self.active 
    @name_sprite.visible = self.visible 
    @name_sprite.update 
  end 
  def get_com_name 
    make_name_set if @name_set.nil? 
    name = @name_set[self.index] 
    name = "" if name.nil? 
    return name 
  end 
  def make_name_set 
    @name_set = [] 
    @name_set[0] = Momo_IconCommand::ATTACK_NAME 
    @name_set[1] = Momo_IconCommand::SKILL_NAME 
    @name_set[2] = Momo_IconCommand::GUARD_NAME 
    @name_set[3] = Momo_IconCommand::ITEM_NAME 
  end 
  def move_index? 
    return self.index != @last_index 
  end 
  def need_reset 
    @name_sprite.need_reset = true if Momo_IconCommand::COM_NAME_DROW 
  end 
end 
 
# アイコン用スプライト 
class Sprite_Icon < Sprite 
  attr_accessor :active 
  attr_accessor :icon_name 
  #------------------------------------------------------------------------ 
  # ● オブジェクト初期化 
  #------------------------------------------------------------------------ 
  def initialize(viewport, icon_name) 
    super(viewport) 
    @icon_name = icon_name 
    @last_icon = @icon_name 
    @count = 0 
    self.bitmap = RPG::Cache.icon(@icon_name) 
    self.ox = self.bitmap.width / 2 
    self.oy = self.bitmap.height / 2 
    @active = false 
  end 
  #------------------------------------------------------------------------ 
  # ● 解放 
  #------------------------------------------------------------------------ 
  def dispose 
    if self.bitmap != nil 
      self.bitmap.dispose 
    end 
    super 
  end 
  #------------------------------------------------------------------------ 
  # ● フレーム更新 
  #------------------------------------------------------------------------ 
  def update 
    super 
    if @icon_name != @last_icon 
      @last_icon = @icon_name 
      self.bitmap = RPG::Cache.icon(@icon_name) 
    end 
    if @active 
      @count += 1 
      case Momo_IconCommand::SELECT_TYPE 
      when 0 
        icon_flash 
      when 1 
        icon_zoom 
      end 
      @count = 0 if @count == 20 
    else 
      icon_reset 
    end 
  end 
  def icon_flash 
    if @count % Momo_IconCommand::FLASH_INTERVAL == 0 or @count == 1 
      self.flash(Momo_IconCommand::FLASH_COLOR, Momo_IconCommand::FLASH_DURATION) 
    end 
  end 
  def icon_zoom 
    case @count 
    when 1..10 
      zoom = 1.0 + @count / 10.0 
    when 11..20 
      zoom = 2.0 - (@count - 10) / 10.0 
    end 
    self.zoom_x = zoom 
    self.zoom_y = zoom 
  end 
  def icon_reset 
    @count = 0 
    self.zoom_x = 1.0 
    self.zoom_y = 1.0 
  end 
end 
 
# コマンドネーム用スプライト 
class Sprite_Comm_Name < Sprite 
  attr_accessor :active 
  attr_accessor :name 
  attr_accessor :need_reset 
  #------------------------------------------------------------------------ 
  # ● オブジェクト初期化 
  #------------------------------------------------------------------------ 
  def initialize(viewport, name) 
    super(viewport) 
    @name = name 
    @last_name = nil 
    @count = 0 
    @x_plus = 0 
    @opa_plus = 0 
    @need_reset = false 
    @active = false 
    self.bitmap = Bitmap.new(160, 32) 
  end 
  #------------------------------------------------------------------------ 
  # ● 解放 
  #------------------------------------------------------------------------ 
  def dispose 
    if self.bitmap != nil 
      self.bitmap.dispose 
    end 
    super 
  end 
  #------------------------------------------------------------------------ 
  # ● フレーム更新 
  #------------------------------------------------------------------------ 
  def update 
    super 
    if @active 
      if need_reset? 
        @need_reset = false 
        @last_name = @name 
        text_reset 
      end 
      move_text if Momo_IconCommand::COM_NAME_MOVE 
    end 
  end 
  def move_text 
    @count += 1 
    @x_plus = [@count * 8, 80].min  
    self.x = self.x - 80 + @x_plus 
    self.opacity = @count * 25 
  end 
  def text_reset 
    @count = 0 
    @x_plus = 0 
    self.bitmap.clear 
    self.bitmap.font.color = Momo_IconCommand::COM_NAME_COLOR 
    self.bitmap.draw_text(0, 0, 160, 32, @name) 
  end 
  def need_reset? 
    return (@name != @last_name or @need_reset) 
  end 
end 
 
class Scene_Battle 
  #------------------------------------------------------------------------ 
  # ● プレバトルフェーズ開始 
  #------------------------------------------------------------------------ 
  alias scene_battle_icon_command_start_phase1 start_phase1 
  def start_phase1 
    com1 = Momo_IconCommand::ATTACK_ICON_NAME 
    com2 = Momo_IconCommand::SKILL_ICON_NAME 
    com3 = Momo_IconCommand::GUARD_ICON_NAME 
    com4 = Momo_IconCommand::ITEM_ICON_NAME 
    @actor_command_window = Window_CommandIcon.new(0, 0, [com1, com2, com3, com4]) 
    @actor_command_window.y = 160 
    @actor_command_window.back_opacity = 160 
    @actor_command_window.active = false 
    @actor_command_window.visible = false 
    @actor_command_window.update 
    scene_battle_icon_command_start_phase1 
  end 
  #------------------------------------------------------------------------ 
  # ● アクターコマンドウィンドウのセットアップ 
  #------------------------------------------------------------------------ 
  alias scene_battle_icon_command_phase3_setup_command_window phase3_setup_command_window 
  def phase3_setup_command_window 
    scene_battle_icon_command_phase3_setup_command_window 
    # アクターコマンドウィンドウの位置を設定 
    @actor_command_window.x = command_window_actor_x(@actor_index) 
    @actor_command_window.y = command_window_actor_y(@actor_index) 
    @actor_command_window.need_reset 
  end 
  def command_window_actor_x(index) 
    $game_party.actors[index].screen_x + Momo_IconCommand::X_PLUS 
  end 
  def command_window_actor_y(index) 
    $game_party.actors[index].screen_y + Momo_IconCommand::Y_PLUS 
  end 
end 
 
#========================================================================== 
# 本脚本来自www.66RPG.com,使用和转载请保留此信息 
#========================================================================== 
  系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~ |   
 
 
 
 |