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

Project1

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

[已经解决] 帮忙看看脚本 谢啦

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
38 小时
注册时间
2009-11-30
帖子
71
跳转到指定楼层
1
发表于 2009-12-6 15:53:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这是梦幻群侠转里的脚本,就是把战斗中攻击防御之类的选项用图标显示,但当我插入鼠标系统脚本时却不能直接用鼠标选择‘攻击防御’之类的,请问这是怎么回事啊。高手能不能帮着改改。。





显示图标脚本
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

module Momo_IconCommand
  # 图标名称设定
  ATTACK_ICON_NAME = "攻击" # 攻撃
  SKILL_ICON_NAME = "法术"   # 特技
  GUARD_ICON_NAME = "防御"  # 防御
  ITEM_ICON_NAME = "道具"     # 物品
  BAOHU_ICON_NAME = "保护"
  ZHAO_ICON_NAME = "召唤"
  # X坐标修正
  X_PLUS = 0 - 62
  # Y坐标修正
  Y_PLUS = 0 - 311
  # 选择时图标的动作
  # 0:静止 1:放大
  SELECT_TYPE = 0
  # 闪烁时光芒的颜色
  FLASH_COLOR = Color.new(255, 255, 255, 128)
  # 闪烁时间
  FLASH_DURATION = 10
  # 闪烁间隔
  FLASH_INTERVAL = 40
  # 是否写出文字的名称
  COM_NAME_DROW = false
  # 文字名称是否移动
  COM_NAME_MOVE = false
  # 文字内容
  ATTACK_NAME = "攻击"    # 攻击
  SKILL_NAME = "特技"   # 特技
  GUARD_NAME = "防御"     # 防御
  ITEM_NAME = "物品"  # 物品
  BAOHU_NAME = "保护"
  ZHAO_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("")
    self.z = 9999
   @item_max = commands.size #项目数
   @commands = commands #指令数
   @column_max = 1
    @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
      @sprite.y = self.y + i*26
      @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
    @name_set[4] = Momo_IconCommand::BAOHU_NAME
    @name_set[5] = Momo_IconCommand::ZHAO_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
    com5 = Momo_IconCommand::BAOHU_ICON_NAME
    com6 = Momo_IconCommand::ZHAO_ICON_NAME
    @actor_command_window = Window_CommandIcon.new(0, 0, [com1, com2, com3, com4,com5,com6])
    @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
   
    @actor2_command_window = Window_CommandIcon.new(0, 0, [com1, com2, com3, com4,com5])
    @actor2_command_window.y = 160
    @actor2_command_window.back_opacity = 160
    @actor2_command_window.active = false
    @actor2_command_window.visible = false
    @actor2_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) - 360
    @actor_command_window.y = command_window_actor_y(@actor_index)
    @actor_command_window.need_reset
    @actor2_command_window.x = command_window_actor_x(@actor_index) - 360
    @actor2_command_window.y = command_window_actor_y(@actor_index)
    @actor2_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,使用和转载请保留此信息
#==============================================================================










































#==============================================================================
# ■ 完整鼠标系统(八方向)
#------------------------------------------------------------------------------
#  使用时务必配合专用寻路算法
#   By whbm
#==============================================================================
#下面做一下介绍与使用说明:
#    在屏幕上单击鼠标的时候,会自动进行寻路,这里为了速度更快并且为了进行迷
#宫时的难度寻路被限定在当时的屏幕内部。(否则玩家直接点到终点,呵呵....知道
#后果了吧)
#    在角色移动过程中再次单击鼠标(即双击)并在单击第二次鼠标的时候不松手,
#角色将会跟随鼠标方向移动。(这个应该好理解,不用多说吧)当角色贴着欲被启动
#的事件的时候,单击NPC即可启动事件。若未贴着,将会产生自动寻路到NPC附近的某
#点,那时在单击NPC即可。
#    当鼠标停在某些事件上时候会发现有不同的图标,设置方法为:宝箱事件请在事
#件的执行内容中添加 注释,注释内容为 Item 注意大小写。NPC事件请在事件的执行
#内容中添加 注释注释内容为 NPC 注意大小写。若不箱改变某事件的图标,则不要写
#那两个注释。
#    当把脚本转到您工程的时候千万别忘了那个寻路用的脚本。
#==============================================================================
class Game_Event
  attr_accessor :flag
end

#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
#  处理地图的类。包含卷动以及可以通行的判断功能。
# 本类的实例请参考 $game_map 。
#==============================================================================
class Game_Map
  def show_rate(event)
    return 1
  end
  #--------------------------------------------------------------------------
  # ● 检查鼠标处是否有自定义的事件并返回类型
  #--------------------------------------------------------------------------
  def check_event_custom(mouse_x, mouse_y)
    for event in $game_map.events.values #循环所有事件检查
      rate =  show_rate(event)
      event_width = (RPG::Cache.character(event.character_name,event.character_hue).width / $c3_每一步的帧数) * rate
      event_height = (RPG::Cache.character(event.character_name,event.character_hue).height / 8) * rate
      if mouse_x > event.screen_x - event_width / 2 and mouse_x < event.screen_x + event_width / 2 and mouse_y + 32 > event.screen_y + 32 - event_height and mouse_y + 32 < event.screen_y + 32
        for i in 0...event.list.size
          if event.list.parameters[0] == "Item" #类型判断
            event.flag = 1
          elsif event.list.parameters[0] == "Npc" #类型判断
            event.flag = 2
          else
            event.flag = 0 if $game_player.get_mouse_sta != 2 #无标志
          end
          return event.flag #返回事件类型标志
        end
      end
    end
    return 0 if $game_player.get_mouse_sta != 2 #如果不是在跟随鼠标状态,则返回无标志
    return $mouse_icon_id #使鼠标图不变化
  end
  #--------------------------------------------------------------------------
  # ● 检查鼠标处是否有事件可以开启
  #--------------------------------------------------------------------------
  def check_event_custom_start(mouse_x, mouse_y)
    for event in $game_map.events.values #循环所有事件检查
      #事件角色图片宽度、高度
      rate =  show_rate(event)
      event_width = (RPG::Cache.character(event.character_name,event.character_hue).width / $c3_每一步的帧数) * rate
      event_height = (RPG::Cache.character(event.character_name,event.character_hue).height / 8) * rate
      #判断是否鼠标在事件上
      if mouse_x > event.screen_x - event_width / 2 and mouse_x < event.screen_x + event_width / 2 and mouse_y + 32 > event.screen_y + 32 - event_height and mouse_y + 32 < event.screen_y + 32
        way_x = $game_player.x - event.x
        way_y = $game_player.y - event.y
        if [1,0,-1].include?($game_player.x-event.x) and [1,0,-1].include?($game_player.y-event.y)
          for i in 0...event.list.size
            if ["Item","Npc"].include?(event.list.parameters[0]) #当事件属于自定义事件
              #判断主角朝向
              if way_x == -1
                p_direction = 3 if way_y == -1
                p_direction = 6 if way_y == 0
                p_direction = 9 if way_y == 1
              elsif way_x == 0
                p_direction = 2 if way_y == -1
                p_direction = 8 if way_y == 1
              else
                p_direction = 1 if way_y == -1
                p_direction = 4 if way_y == 0
                p_direction = 7 if way_y == 1
              end
              event.start #开启事件
              return 1, p_direction #返回即将开启事件以及角色朝向
            end
          end
        end
      end
    end
    return 0, 5 #返回不会开启事件以及角色朝向不变
  end
  #--------------------------------------------------------------------------
  # ● 检查鼠标处是否存在自定义事件 for 寻路
  #--------------------------------------------------------------------------
  def check_event_custom_exist(mouse_x, mouse_y)
    for event in $game_map.events.values #循环所有事件检查
      #事件角色图片宽度、高度
      rate =  show_rate(event)
      event_width = (RPG::Cache.character(event.character_name,event.character_hue).width / $c3_每一步的帧数) * rate
      event_height = (RPG::Cache.character(event.character_name,event.character_hue).height / 8) * rate
      if mouse_x > event.screen_x - event_width / 2 and mouse_x < event.screen_x + event_width / 2 and mouse_y + 32 > event.screen_y + 32 - event_height and mouse_y + 32 < event.screen_y + 32
        for i in 0...event.list.size
          return 1, event if ["Item", "Npc"].include?(event.list.parameters[0]) #返回存在自定义事件以及事件体
        end
      end
    end
    return 0, event #返回不存在自定义事件,以及事件体
  end
end
#=================以下两个用来调整战斗时的手感问题,可以自己试试。
$敌人选框扩大 = 20
$角色选框扩大 = 30


#==============================================================================
# ● API调用
#==============================================================================
$ShowCursor = Win32API.new("user32", "ShowCursor", 'i', 'l')
$GetCursorPos = Win32API.new("user32", "GetCursorPos", 'p', 'i')
$ScreenToClient = Win32API.new("user32", "ScreenToClient", 'ip', 'i')
$GetActiveWindow = Win32API.new("user32", "GetActiveWindow", nil, 'l')
$Window_HWND = $GetActiveWindow.call
$GetKeyState = Win32API.new("user32", "GetKeyState", 'i', 'i')
module Mouse  
LEFT = 0x01
RIGHT = 0x02

def self.init(sprite = nil)
   $ShowCursor.call(0)
   
   @show_cursor = false
   
   @mouse_sprite = Sprite.new
   @mouse_sprite.z = 99999
   @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/0050')

   @left_press = false
   @right_press = false
   @left_trigger = false
   @right_trigger = false
   @left_repeat = false
   @right_repeat = false
   @click_lock = false
   
   update
end
def self.exit
   @mouse_sprite.bitmap.dispose
   @mouse_sprite.dispose
   @show_cursor = true
   $ShowCursor.call(1)
end
def self.mouse_debug
   return @mouse_debug.bitmap
end
def self.update
   left_down = $GetKeyState.call(0x01)
   right_down = $GetKeyState.call(0x02)
   if Graphics.frame_count * 3 / Graphics.frame_rate != @total_sec
     @total_sec = Graphics.frame_count * 3 / Graphics.frame_rate
     @a = !@a
   end
   if $scene.is_a?(Scene_Map) == false
     $mouse_icon_id = 0
   end
   if $mouse_icon_id != $mouse_icon_id_last
     case $mouse_icon_id
     when 1
       if @a
         @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/GetItem1')
       else
         @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/GetItem2')
       end
     when 2
       if @a
         @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/TalkTo1')
       else
         @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/TalkTo2')
       end
     when 11
       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_LOWER_LEFT')
     when 12
       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_DOWN')
     when 13
       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_LOWER_RIGHT')
     when 14
       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_LEFT')
     when 16
       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_RIGHT')
     when 17
       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_UPPER_LEFT')
     when 18
       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_UP')
     when 19
       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/Mouse_UPPER_RIGHT')
     when 0
       @mouse_sprite.bitmap = Bitmap.new('Graphics/Icons/0050')
     end
     $mouse_icon_id_last = $mouse_icon_id
   end
   @click_lock = false
   mouse_x, mouse_y = self.get_mouse_pos
   if @mouse_sprite != nil
     @mouse_sprite.x = mouse_x
     @mouse_sprite.y = mouse_y
   end
   if left_down[7] == 1
     @left_repeat = (not @left_repeat)
     @left_trigger = (not @left_press)
     @left_press = true
   else
     @left_press = false
     @left_trigger = false
     @left_repeat = false
   end
   if right_down[7] == 1
     @right_repeat = (not @right_repeat)
     @right_trigger = (not @right_press)
     @right_press = true
   else
     @right_press = false
     @right_trigger = false
     @right_repeat = false
   end
end
def self.get_mouse_pos
   point_var = [0, 0].pack('ll')
   if $GetCursorPos.call(point_var) != 0
     if $ScreenToClient.call($Window_HWND, point_var) != 0
       x, y = point_var.unpack('ll')
       if (x < 0) or (x > 10000) then x = 0 end
       if (y < 0) or (y > 10000) then y = 0 end
       if x > 640 then x = 640 end
       if y > 480 then y = 480 end
       return x, y
     else
       return 0, 0
     end
   else
     return 0, 0
   end
end
def self.press?(mouse_code)
   if mouse_code == LEFT
     if @click_lock
       return false
     else
       return @left_press
     end
   elsif mouse_code == RIGHT
     return @right_press
   else
     return false
   end
end
def self.trigger?(mouse_code)
   if mouse_code == LEFT
     if @click_lock
       return false
     else
       return @left_trigger
     end
   elsif mouse_code == RIGHT
     return @right_trigger
   else
     return false
   end
end
def self.repeat?(mouse_code)
   if mouse_code == LEFT
     if @click_lock
       return false
     else
       return @left_repeat
     end
   elsif mouse_code == RIGHT
     return @right_repeat
   else
     return false
   end
end
def self.click_lock?
   return @click_lock
end
def self.click_lock
   @click_lock = true
end
def self.click_unlock
   @click_lock = false
end
end
module Input
if @self_update == nil
   @self_update = method('update')
   @self_press = method('press?')
   @self_trigger = method('trigger?')
   @self_repeat = method('repeat?')
end
def self.update
   @self_update.call
   Mouse.update
end
def self.press?(key_code)
   if @self_press.call(key_code)
     return true
   end
   if key_code == C
     return Mouse.press?(Mouse::LEFT)
   elsif key_code == B
     return Mouse.press?(Mouse::RIGHT)
   else
     return @self_press.call(key_code)
   end
end
def self.trigger?(key_code)
   if @self_trigger.call(key_code)
     return true
   end
   if key_code == C
     return Mouse.trigger?(Mouse::LEFT)
   elsif key_code == B
     return Mouse.trigger?(Mouse::RIGHT)
   else
     return @self_trigger.call(key_code)
   end
end
def self.repeat?(key_code)
   if @self_repeat.call(key_code)
     return true
   end
   if key_code == C
     return Mouse.repeat?(Mouse::LEFT)
   elsif key_code == B
     return Mouse.repeat?(Mouse::RIGHT)
   else
     return @self_repeat.call(key_code)
   end
end
end
class Window_Selectable
if @self_alias == nil
   alias self_update update
   @self_alias = true
end
def update
   self_update
   if self.active and @item_max > 0
     index_var = @index
     tp_index = @index
     mouse_x, mouse_y = Mouse.get_mouse_pos
     mouse_not_in_rect = true
     for i in 0...@item_max
       @index = i
       update_cursor_rect
       top_x = self.cursor_rect.x + self.x + 16
       top_y = self.cursor_rect.y + self.y + 16
       bottom_x = top_x + self.cursor_rect.width
       bottom_y = top_y + self.cursor_rect.height
       if (mouse_x > top_x) and (mouse_y > top_y) and
          (mouse_x < bottom_x) and (mouse_y < bottom_y)
         mouse_not_in_rect = false
         if tp_index != @index
           tp_index = @index
           $game_system.se_play($data_system.cursor_se)
         end
         break
       end
     end
     if mouse_not_in_rect
       @index = index_var
       update_cursor_rect
       Mouse.click_lock
     else
       Mouse.click_unlock               
     end
   end
end
end
class Window_NameInput
if @self_alias == nil
   alias self_update update
   @self_alias = true
end
def update
   self_update
   if self.active
     index_var = @index
     mouse_x, mouse_y = Mouse.get_mouse_pos
     mouse_not_in_rect = true
     for i in (0...CHARACTER_TABLE.size).to_a.push(180)
       @index = i
       update_cursor_rect
       top_x = self.cursor_rect.x + self.x + 16
       top_y = self.cursor_rect.y + self.y + 16
       bottom_x = top_x + self.cursor_rect.width
       bottom_y = top_y + self.cursor_rect.height
       if (mouse_x > top_x) and (mouse_y > top_y) and
          (mouse_x < bottom_x) and (mouse_y < bottom_y)
         mouse_not_in_rect = false
         break
       end
     end
     if mouse_not_in_rect
       @index = index_var
       update_cursor_rect
       Mouse.click_lock
     else
       Mouse.click_unlock
     end
   end
end
end
class Window_InputNumber
if @self_alias == nil
   alias self_update update
   @self_alias = true
end
def update
   self_update
   mouse_x, mouse_y = Mouse.get_mouse_pos
   if self.active and @digits_max > 0
     index_var = @index
     mouse_not_in_rect = true
     for i in 0...@digits_max
       @index = i
       update_cursor_rect
       top_x = self.cursor_rect.x + self.x + 16
       bottom_x = top_x + self.cursor_rect.width
       if (mouse_x > top_x) and (mouse_x < bottom_x)
         mouse_not_in_rect = false
         break
       end
     end
     if mouse_not_in_rect
       @index = index_var
       update_cursor_rect
       Mouse.click_lock
     else
       Mouse.click_unlock
     end
   end
   if @last_mouse_y == nil
     @last_mouse_y = mouse_y
   end
   check_pos = (@last_mouse_y - mouse_y).abs
   if check_pos > 10
     $game_system.se_play($data_system.cursor_se)
     place = 10 ** (@digits_max - 1 - @index)
     n = @number / place % 10
     @number -= n * place
     n = (n + 1) % 10 if mouse_y < @last_mouse_y
     n = (n + 9) % 10 if mouse_y > @last_mouse_y
     @number += n * place
     refresh
     @last_mouse_y = mouse_y
   end
end
end
class Scene_File
if @self_alias == nil
   alias self_update update
   @self_alias = true
end
def update
   mouse_x, mouse_y = Mouse.get_mouse_pos
   Mouse.click_lock
   idx = 0
   for i in @savefile_windows
     top_x = i.x + 16
     top_y = i.y + 16
     bottom_x = top_x + i.width
     bottom_y = top_y + i.height
     if (mouse_x > top_x) and (mouse_y > top_y) and
        (mouse_x < bottom_x) and (mouse_y < bottom_y)
       i.selected = true
       if @file_index != idx
         @file_index = idx
         $game_system.se_play($data_system.cursor_se)
       end            
       Mouse.click_unlock
     else
       i.selected = false
     end
     idx += 1
   end
   self_update
end
end
class Arrow_Enemy
if @self_alias == nil
   alias self_update update
   @self_alias = true
end
def update
   mouse_x, mouse_y = Mouse.get_mouse_pos
   idx = 0
   for i in $game_troop.enemies do
     if i.exist?
       top_x = i.screen_x - self.ox
       top_y = i.screen_y - self.oy
       bottom_x = top_x + self.src_rect.width
       bottom_y = top_y + self.src_rect.height
       if (mouse_x > top_x - $敌人选框扩大) and (mouse_y > top_y - $敌人选框扩大) and
          (mouse_x < bottom_x + $敌人选框扩大) and (mouse_y < bottom_y + $敌人选框扩大)
         if @index != idx
           $game_system.se_play($data_system.cursor_se)
           @index = idx
         end
       end
     end
     idx += 1
   end
   self_update
end
end
class Arrow_Actor
if @self_alias == nil
   alias self_update update
   @self_alias = true
end
def update
   mouse_x, mouse_y = Mouse.get_mouse_pos
   idx = 0
   for i in $game_party.actors do
     if i.exist?
       top_x = i.screen_x - self.ox
       top_y = i.screen_y - self.oy
       bottom_x = top_x + self.src_rect.width
       bottom_y = top_y + self.src_rect.height
       if (mouse_x > top_x - $角色选框扩大) and (mouse_y > top_y - $角色选框扩大) and
          (mouse_x < bottom_x + $角色选框扩大) and (mouse_y < bottom_y + $角色选框扩大)
         if @index != idx
           $game_system.se_play($data_system.cursor_se)
           @index = idx
         end
       end
     end
     idx += 1
   end
   self_update
end
end
#==============================================================================
# ■ Game_Player
#------------------------------------------------------------------------------
#  处理主角的类。事件启动的判定、以及地图的滚动等功能。
# 本类的实例请参考 $game_player。
#   鼠标控制角色的主程序
#==============================================================================
class Game_Player
if @self_alias == nil
   alias self_update update
   @self_alias = true
end
#--------------------------------------------------------------------------
# ● 得到鼠标的状态
#--------------------------------------------------------------------------
def get_mouse_sta
   return @mouse_sta
end
#--------------------------------------------------------------------------
# ● 完整鼠标系统
#--------------------------------------------------------------------------
def update
   mouse_x, mouse_y = Mouse.get_mouse_pos
   @mtp_x = mouse_x
   @mtp_y = mouse_y
   unless $game_system.map_interpreter.running? and @mouse_sta == 2 #鼠标状态不为跟随状态
     #得到鼠标图标方向
     $mouse_icon_id = $game_map.check_event_custom(mouse_x,mouse_y)  if not [11, 12, 13, 14, 16, 17, 18, 19].include?($mouse_icon_id)
   else
     #令鼠标图标为正常
     $mouse_icon_id = 0 if @mouse_sta != 2
   end
   
   #单击鼠标时进行判断寻路或跟随
   if Mouse.trigger?(Mouse::LEFT) #当点击鼠标时
     unless $game_system.map_interpreter.running? or
            @move_route_forcing or $game_temp.message_window_showing #各种无效情况的排除
       #初始化
       @mouse_sta = 1
       p_direction = 5
       #检查鼠标处能否开启事件
       event_start,p_direction = $game_map.check_event_custom_start(mouse_x, mouse_y)
       #若在移动中再次点击鼠标左键(即双击左键),则改鼠标状态为跟随状态
       @mouse_sta = 2 if @paths_id != nil and @paths_id != @paths.size
       if @mouse_sta != 2
         #鼠标状态不为跟随状态则取数据并初始化路径
         trg_x = (mouse_x + $game_map.display_x / 4) / 32
         trg_y = (mouse_y + $game_map.display_y / 4) / 32
         @paths = []
         @paths_id = 0
         if event_start == 0 #若不能开启事件
           if trg_x != $game_player.x or trg_y != $game_player.y #若目标不为自身则开始寻路
             find_path = Find_Path.new
             @paths = find_path.find_player_short_path(trg_x, trg_y, @mtp_x, @mtp_y)
           end
         else #若能开启事件则改变角色朝向
           @direction = p_direction
         end
       end
     end
   end

   #开始移动
   if @mouse_sta != nil and @mouse_sta == 1 #若鼠标状态为寻路状态
     unless moving? or $game_system.map_interpreter.running? or
            @move_route_forcing or $game_temp.message_window_showing #排除无效情况
       if @paths_id != nil and @paths != nil and @paths_id <= @paths.size #若没有完成路径
         case @paths[@paths_id] #判断路径
         when 6
           @last_move_x = true
           move_right
           @paths_id += 1
           @direction = 6
         when 4
           @last_move_x = true
           move_left
           @paths_id += 1
           @direction = 4
         when 2
           @last_move_x = false
           move_down
           @direction = 2
           @paths_id += 1
         when 8
           @last_move_x = false
           move_up
           @direction = 8
           @paths_id += 1
         #斜四方向
         when 1
           @last_move_x = false
           move_lower_left
           @direction = 1
           @paths_id += 1
         when 3
           @last_move_x = false
           move_lower_right
           @direction = 3
           @paths_id += 1
         when 7
           @last_move_x = false
           move_upper_left
           @direction = 7
           @paths_id += 1
         when 9
           @last_move_x = false
           move_upper_right
           @direction = 9
           @paths_id += 1
         end
       end
     end
   elsif @paths != nil and @mouse_sta == 2 #当鼠标状态为跟随,且在移动中
     if Mouse.press?(Mouse::LEFT) #持续按住鼠标
       unless moving? or $game_system.map_interpreter.running? or
              @move_route_forcing or $game_temp.message_window_showing #排除无效情况
         #跟随方向判断并跟随
         rate =  $game_map.show_rate(self)
         width = (RPG::Cache.character(self.character_name,self.character_hue).width / $c3_每一步的帧数) * rate
         height = (RPG::Cache.character(self.character_name,self.character_hue).height / 8) * rate
         self_ox = (self.screen_x - width / 2 + self.screen_x + width / 2) / 2
         self_oy = (self.screen_y - height + self.screen_y) / 2
         #self_ox = self.screen_x
         #self_oy = self.screen_y
         if (@mtp_x - self_ox)*(@mtp_x - self_ox) + (@mtp_y - self_oy)*(@mtp_y - self_oy) >= 961
           if @mtp_x > self_ox
             if self_oy - @mtp_y < 0.4 * (@mtp_x - self_ox) and
                @mtp_y - self_oy < 0.4 * (@mtp_x - self_ox)
               move_right
               $mouse_icon_id = 16
               @direction = 6
             end
             if @mtp_y - self_oy > - 0.4 * ( self_ox - @mtp_x ) and
                @mtp_y - self_oy < - 2.4 * ( self_ox - @mtp_x )
               move_lower_right
               $mouse_icon_id = 13
               @direction = 3
             end
             if @mtp_y - self_oy < 0.4 * ( self_ox - @mtp_x ) and
                @mtp_y - self_oy > 2.4 * ( self_ox - @mtp_x )
               move_upper_right
               $mouse_icon_id = 19
               @direction = 9
             end
             if @mtp_y - self_oy > 2.4 * ( @mtp_x - self_ox )
               move_down
               $mouse_icon_id = 12
               @direction = 2
             end
             if @mtp_y - self_oy < - 2.4 * ( @mtp_x - self_ox )
               move_up
               $mouse_icon_id = 18
               @direction = 8
             end
           end
           if @mtp_x < self_ox
             if @mtp_y - self_oy > - 0.4 * ( self_ox - @mtp_x ) and
                @mtp_y - self_oy < 0.4 * ( self_ox - @mtp_x )
               move_left
               $mouse_icon_id = 14
               @direction = 4
             end
             if @mtp_y - self_oy > 0.4 * ( self_ox - @mtp_x ) and
                @mtp_y - self_oy < 2.4 * ( self_ox - @mtp_x )
               move_lower_left
               $mouse_icon_id = 11
               @direction = 1
             end
             if @mtp_y - self_oy < - 0.4 * ( self_ox - @mtp_x ) and
                @mtp_y - self_oy > - 2.4 * ( self_ox - @mtp_x )
               move_upper_left
               $mouse_icon_id = 17
               @direction = 7
             end
             if @mtp_y - self_oy > 2.4 * ( self_ox - @mtp_x )
               move_down
               $mouse_icon_id = 12
               @direction = 2
             end
             if @mtp_y - self_oy < - 2.4 * ( self_ox - @mtp_x )
               move_up
               $mouse_icon_id = 18
               @direction = 8
             end
           end
         end
           #...................................................................
           if @mtp_x > self_ox
             if @mtp_y - self_oy > - 0.4 * ( @mtp_x - self_ox ) and
                @mtp_y - self_oy < 0.4 * ( @mtp_x - self_ox )
               $mouse_icon_id = 16
               @direction = 6
             end
             if @mtp_y - self_oy > 0.4 * ( @mtp_x - self_ox ) and
               @mtp_y - self_oy < 2.4 * ( @mtp_x - self_ox )
               $mouse_icon_id = 13
               @direction = 3
             end
             if @mtp_y - self_oy < - 0.4 * ( @mtp_x - self_ox ) and
               @mtp_y - self_oy > - 2.4 * ( @mtp_x - self_ox )
               $mouse_icon_id = 19
               @direction = 9
             end
             if @mtp_y - self_oy > 2.4 * ( @mtp_x - self_ox )
               $mouse_icon_id = 12
               @direction = 2
             end
             if @mtp_y - self_oy < - 2.4 * ( @mtp_x - self_ox )
               $mouse_icon_id = 18
               @direction = 8
             end
           end
           if @mtp_x < self_ox
             if @mtp_y - self_oy > - 0.4 * ( self_ox - @mtp_x ) and
                @mtp_y - self_oy < 0.4 * ( self_ox - @mtp_x )
               $mouse_icon_id = 14
               @direction = 4
             end
             if @mtp_y - self_oy > 0.4 * ( self_ox - @mtp_x ) and
                @mtp_y - self_oy < 2.4 * ( self_ox - @mtp_x )
               $mouse_icon_id = 11
               @direction = 1
             end
             if @mtp_y - self_oy < - 0.4 * ( self_ox - @mtp_x ) and
                @mtp_y - self_oy > - 2.4 * ( self_ox - @mtp_x )
               $mouse_icon_id = 17
               @direction = 7
             end
             if @mtp_y - self_oy > 2.4 * ( self_ox - @mtp_x )
               $mouse_icon_id = 12
               @direction = 2
             end
             if @mtp_y - self_oy < - 2.4 * ( self_ox - @mtp_x )
               $mouse_icon_id = 18
               @direction = 8
             end
           end
           #...................................................................
       end
     else #没状态的情况
       $mouse_icon_id = 0
       @mouse_sta = 0
       @paths_id = @paths.size #终止寻路移动
     end
   end
   self_update
end
end
Mouse.init
END { Mouse.exit }

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9418
在线时间
2749 小时
注册时间
2008-9-5
帖子
3544

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

2
发表于 2009-12-7 19:45:29 | 只看该作者
貌似鼠标脚本只和默认的选项光标配合哦。。。。
基于这个问题。。。明尼已经抛弃了鼠标脚本了。。。
再说鼠标系统也不是很好用的说哦。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
38 小时
注册时间
2009-11-30
帖子
71
3
 楼主| 发表于 2009-12-7 20:07:01 | 只看该作者
2# cinderelmini
没有修改的方法了吗  哪怕不要图标战斗也可以  只要保证脚本不冲突就可以
rpg爱好者
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9418
在线时间
2749 小时
注册时间
2008-9-5
帖子
3544

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

4
发表于 2009-12-7 20:11:57 | 只看该作者
把图标战斗脚本DELETE掉啊。。。
就是这段
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. module Momo_IconCommand
  5.   # 图标名称设定
  6.   ATTACK_ICON_NAME = "攻击" # 攻撃
  7.   SKILL_ICON_NAME = "法术"   # 特技
  8.   GUARD_ICON_NAME = "防御"  # 防御
  9.   ITEM_ICON_NAME = "道具"     # 物品
  10.   BAOHU_ICON_NAME = "保护"
  11.   ZHAO_ICON_NAME = "召唤"
  12.   # X坐标修正
  13.   X_PLUS = 0 - 62
  14.   # Y坐标修正
  15.   Y_PLUS = 0 - 311
  16.   # 选择时图标的动作
  17.   # 0:静止 1:放大
  18.   SELECT_TYPE = 0
  19.   # 闪烁时光芒的颜色
  20.   FLASH_COLOR = Color.new(255, 255, 255, 128)
  21.   # 闪烁时间
  22.   FLASH_DURATION = 10
  23.   # 闪烁间隔
  24.   FLASH_INTERVAL = 40
  25.   # 是否写出文字的名称
  26.   COM_NAME_DROW = false
  27.   # 文字名称是否移动
  28.   COM_NAME_MOVE = false
  29.   # 文字内容
  30.   ATTACK_NAME = "攻击"    # 攻击
  31.   SKILL_NAME = "特技"   # 特技
  32.   GUARD_NAME = "防御"     # 防御
  33.   ITEM_NAME = "物品"  # 物品
  34.   BAOHU_NAME = "保护"
  35.   ZHAO_NAME = "召唤"
  36.   # 文字颜色
  37.   COM_NAME_COLOR = Color.new(255, 255, 255, 255)
  38.   # 文字坐标修正
  39.   COM_NAME_X_PLUS = 0
  40.   COM_NAME_Y_PLUS = 0
  41. end

  42. class Window_CommandIcon < Window_Selectable
  43.   attr_accessor :last_index
  44.   #--------------------------------------------------------------------------
  45.   # ● オブジェクト初期化
  46.   #--------------------------------------------------------------------------
  47.   def initialize(x, y, commands)
  48.     super(x, y, 32, 32)
  49.     # ウィンドウスキンに空文字列を指定してウィンドウを描画しないようにする
  50.     self.windowskin = RPG::Cache.windowskin("")
  51.     self.z = 9999
  52.    @item_max = commands.size #项目数
  53.    @commands = commands #指令数
  54.    @column_max = 1
  55.     @index = 0
  56.     @last_index = nil
  57.     @name_sprite = nil
  58.     @sprite = []
  59.     refresh
  60.   end
  61.   def dispose
  62.     super
  63.     for sprite in @sprite
  64.       sprite.dispose unless sprite.nil?
  65.     end
  66.     @name_sprite.dispose unless @name_sprite.nil?
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● リフレッシュ
  70.   #--------------------------------------------------------------------------
  71.   def refresh
  72.     @name_sprite.dispose unless @name_sprite.nil?
  73.     for sprite in @sprite
  74.       sprite.dispose unless sprite.nil?
  75.     end
  76.     @name_sprite = nil
  77.     draw_com_name if Momo_IconCommand::COM_NAME_DROW
  78.     @sprite = []
  79.     for i in 0...@item_max
  80.       draw_item(i)
  81.     end
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 項目の描画
  85.   #--------------------------------------------------------------------------
  86.   def draw_item(index)
  87.     @sprite[index] = Sprite_Icon.new(nil, @commands[index])
  88.     @sprite[index].z = self.z + 1
  89.   end
  90.   def draw_com_name
  91.     @name_sprite = Sprite_Comm_Name.new(nil, get_com_name)
  92.    
  93.   end
  94.   
  95.   # 更新
  96.   def update
  97.     super
  98.     icon_update
  99.     com_name_update if Momo_IconCommand::COM_NAME_DROW
  100.     if move_index?
  101.       @last_index = self.index
  102.     end
  103.   end
  104.   # アイコンの更新
  105.   def icon_update
  106.     for i in [email protected]
  107.       @sprite.active = (self.index == i)
  108.       @sprite.x = self.x
  109.       @sprite.y = self.y + i*26
  110.       @sprite.z = (self.index == i) ? self.z + 2 : self.z + 1
  111.       @sprite.visible = self.visible
  112.       @sprite.update
  113.     end
  114.   end
  115.   # コマンドネームの更新
  116.   def com_name_update
  117.     if move_index?
  118.       @name_sprite.name = get_com_name
  119.     end
  120.     @name_sprite.x = self.x - 12 + Momo_IconCommand::COM_NAME_X_PLUS
  121.     @name_sprite.y = self.y - 40 + Momo_IconCommand::COM_NAME_Y_PLUS
  122.     @name_sprite.z = self.z + 1
  123.     @name_sprite.active = self.active
  124.     @name_sprite.visible = self.visible
  125.     @name_sprite.update
  126.   end
  127.   def get_com_name
  128.     make_name_set if @name_set.nil?
  129.     name = @name_set[self.index]
  130.     name = "" if name.nil?
  131.     return name
  132.   end
  133.   def make_name_set
  134.     @name_set = []
  135.     @name_set[0] = Momo_IconCommand::ATTACK_NAME
  136.     @name_set[1] = Momo_IconCommand::SKILL_NAME
  137.     @name_set[2] = Momo_IconCommand::GUARD_NAME
  138.     @name_set[3] = Momo_IconCommand::ITEM_NAME
  139.     @name_set[4] = Momo_IconCommand::BAOHU_NAME
  140.     @name_set[5] = Momo_IconCommand::ZHAO_NAME
  141.   end
  142.   def move_index?
  143.     return self.index != @last_index
  144.   end
  145.   def need_reset
  146.     @name_sprite.need_reset = true if Momo_IconCommand::COM_NAME_DROW
  147.   end
  148. end

  149. # アイコン用スプライト
  150. class Sprite_Icon < Sprite
  151.   attr_accessor :active
  152.   attr_accessor :icon_name
  153.   #--------------------------------------------------------------------------
  154.   # ● オブジェクト初期化
  155.   #--------------------------------------------------------------------------
  156.   def initialize(viewport, icon_name)
  157.     super(viewport)
  158.     @icon_name = icon_name
  159.     @last_icon = @icon_name
  160.     @count = 0
  161.     self.bitmap = RPG::Cache.icon(@icon_name)
  162.     self.ox = self.bitmap.width / 2
  163.     self.oy = self.bitmap.height / 2
  164.     @active = false
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   # ● 解放
  168.   #--------------------------------------------------------------------------
  169.   def dispose
  170.     if self.bitmap != nil
  171.       self.bitmap.dispose
  172.     end
  173.     super
  174.   end
  175.   #--------------------------------------------------------------------------
  176.   # ● フレーム更新
  177.   #--------------------------------------------------------------------------
  178.   def update
  179.     super
  180.     if @icon_name != @last_icon
  181.       @last_icon = @icon_name
  182.       self.bitmap = RPG::Cache.icon(@icon_name)
  183.     end
  184.     if @active
  185.       @count += 1
  186.       case Momo_IconCommand::SELECT_TYPE
  187.       when 0
  188.         icon_flash
  189.       when 1
  190.         icon_zoom
  191.       end
  192.       @count = 0 if @count == 20
  193.     else
  194.       icon_reset
  195.     end
  196.   end
  197.   def icon_flash
  198.     if @count % Momo_IconCommand::FLASH_INTERVAL == 0 or @count == 1
  199.       self.flash(Momo_IconCommand::FLASH_COLOR, Momo_IconCommand::FLASH_DURATION)
  200.     end
  201.   end
  202.   def icon_zoom
  203.     case @count
  204.     when 1..10
  205.       zoom = 1.0 + @count / 10.0
  206.     when 11..20
  207.       zoom = 2.0 - (@count - 10) / 10.0
  208.     end
  209.     self.zoom_x = zoom
  210.     self.zoom_y = zoom
  211.   end
  212.   def icon_reset
  213.     @count = 0
  214.     self.zoom_x = 1.0
  215.     self.zoom_y = 1.0
  216.   end
  217. end

  218. # コマンドネーム用スプライト
  219. class Sprite_Comm_Name < Sprite
  220.   attr_accessor :active
  221.   attr_accessor :name
  222.   attr_accessor :need_reset
  223.   #--------------------------------------------------------------------------
  224.   # ● オブジェクト初期化
  225.   #--------------------------------------------------------------------------
  226.   def initialize(viewport, name)
  227.     super(viewport)
  228.     @name = name
  229.     @last_name = nil
  230.     @count = 0
  231.     @x_plus = 0
  232.     @opa_plus = 0
  233.     @need_reset = false
  234.     @active = false
  235.     self.bitmap = Bitmap.new(160, 32)
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● 解放
  239.   #--------------------------------------------------------------------------
  240.   def dispose
  241.     if self.bitmap != nil
  242.       self.bitmap.dispose
  243.     end
  244.     super
  245.   end
  246.   #--------------------------------------------------------------------------
  247.   # ● フレーム更新
  248.   #--------------------------------------------------------------------------
  249.   def update
  250.     super
  251.     if @active
  252.       if need_reset?
  253.         @need_reset = false
  254.         @last_name = @name
  255.         text_reset
  256.       end
  257.       move_text if Momo_IconCommand::COM_NAME_MOVE
  258.     end
  259.   end
  260.   def move_text
  261.     @count += 1
  262.     @x_plus = [@count * 8, 80].min
  263.     self.x = self.x - 80 + @x_plus
  264.     self.opacity = @count * 25
  265.   end
  266.   def text_reset
  267.     @count = 0
  268.     @x_plus = 0
  269.     self.bitmap.clear
  270.     self.bitmap.font.color = Momo_IconCommand::COM_NAME_COLOR
  271.     self.bitmap.draw_text(0, 0, 160, 32, @name)
  272.   end
  273.   def need_reset?
  274.     return (@name != @last_name or @need_reset)
  275.   end
  276. end

  277. class Scene_Battle
  278.   #--------------------------------------------------------------------------
  279.   # ● プレバトルフェーズ開始
  280.   #--------------------------------------------------------------------------
  281.   alias scene_battle_icon_command_start_phase1 start_phase1
  282.   def start_phase1
  283.     com1 = Momo_IconCommand::ATTACK_ICON_NAME
  284.     com2 = Momo_IconCommand::SKILL_ICON_NAME
  285.     com3 = Momo_IconCommand::GUARD_ICON_NAME
  286.     com4 = Momo_IconCommand::ITEM_ICON_NAME
  287.     com5 = Momo_IconCommand::BAOHU_ICON_NAME
  288.     com6 = Momo_IconCommand::ZHAO_ICON_NAME
  289.     @actor_command_window = Window_CommandIcon.new(0, 0, [com1, com2, com3, com4,com5,com6])
  290.     @actor_command_window.y = 160
  291.     @actor_command_window.back_opacity = 160
  292.     @actor_command_window.active = false
  293.     @actor_command_window.visible = false
  294.     @actor_command_window.update
  295.    
  296.     @actor2_command_window = Window_CommandIcon.new(0, 0, [com1, com2, com3, com4,com5])
  297.     @actor2_command_window.y = 160
  298.     @actor2_command_window.back_opacity = 160
  299.     @actor2_command_window.active = false
  300.     @actor2_command_window.visible = false
  301.     @actor2_command_window.update
  302.    
  303.     scene_battle_icon_command_start_phase1
  304.   end
  305.   #--------------------------------------------------------------------------
  306.   # ● アクターコマンドウィンドウのセットアップ
  307.   #--------------------------------------------------------------------------
  308.   alias scene_battle_icon_command_phase3_setup_command_window phase3_setup_command_window
  309.   def phase3_setup_command_window
  310.     scene_battle_icon_command_phase3_setup_command_window
  311.     # アクターコマンドウィンドウの位置を設定
  312.     @actor_command_window.x = command_window_actor_x(@actor_index) - 360
  313.     @actor_command_window.y = command_window_actor_y(@actor_index)
  314.     @actor_command_window.need_reset
  315.     @actor2_command_window.x = command_window_actor_x(@actor_index) - 360
  316.     @actor2_command_window.y = command_window_actor_y(@actor_index)
  317.     @actor2_command_window.need_reset
  318.   end
  319.   def command_window_actor_x(index)
  320.     $game_party.actors[index].screen_x + Momo_IconCommand::X_PLUS
  321.   end
  322.   def command_window_actor_y(index)
  323.     $game_party.actors[index].screen_y + Momo_IconCommand::Y_PLUS
  324.   end
  325. end

  326. #==============================================================================
  327. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  328. #==============================================================================
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
38 小时
注册时间
2009-11-30
帖子
71
5
 楼主| 发表于 2009-12-7 20:21:00 | 只看该作者
4# cinderelmini

删除后有脚本错误 跳到 ■ Scene_Battle (分割定义 1)的
@actor2_command_window.update
rpg爱好者
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9418
在线时间
2749 小时
注册时间
2008-9-5
帖子
3544

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

6
发表于 2009-12-10 19:17:48 | 只看该作者
把@actor2_command_window.update改成@actor_command_window.update
看看吧。。。。
不过如果其他地方也有@actor2_command_window
都改成@actor_command_window
如果已经有@actor_command_window
就直接把所有的@actor2_command_window都删除了吧。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-26 10:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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