Project1

标题: 将这个脚本添加一个功能 [打印本页]

作者: .さっとりーん    时间: 2012-7-27 19:21
标题: 将这个脚本添加一个功能
站内搜索到的一个战斗显示头像的脚本
不过选择命令时没有显示状态图标,请添加这个功能
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ Window_BattleStatus
  6. #------------------------------------------------------------------------------
  7. #  显示战斗画面同伴状态的窗口。
  8. #==============================================================================

  9. class Window_BattleStatus < Window_Selectable
  10.   #--------------------------------------------------------------------------
  11.   # ● 初始化对像
  12.   #--------------------------------------------------------------------------
  13.   def initialize
  14.     super(48, 0, 416, 128)#416
  15.     self.contents.font.size = 18
  16.     refresh
  17.     self.active = false
  18.     @prev_index = @index
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 释放
  22.   #--------------------------------------------------------------------------
  23.   def dispose
  24.     super
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 刷新
  28.   #--------------------------------------------------------------------------
  29.   def refresh
  30.     self.contents.clear
  31.     @item_max = $game_party.members.size
  32.     for i in 0...@item_max
  33.       draw_item(i)
  34.     end
  35.     draw_6Rface(@index) if @index >= 0
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 描绘项目
  39.   #     index : 项目编号
  40.   #--------------------------------------------------------------------------
  41.    def draw_item(index)
  42.      rect = item_rect(index)
  43.      rect.x += 4
  44.      rect.width -= 8
  45.      self.contents.clear_rect(rect)
  46.      self.contents.font.color = normal_color
  47.      actor = $game_party.members[index]
  48.      draw_actor_name(actor, 124, rect.y + 2)
  49.      begin_x = self.contents.text_size(actor.name).width + 4
  50.      draw_actor_state(actor, begin_x, rect.y, 24)
  51.      draw_actor_hp(actor, 230, rect.y, 65)
  52.      draw_actor_mp(actor, 310, rect.y, 65)
  53.    end
  54.   #--------------------------------------------------------------------------
  55.   # ● 描绘人物头像
  56.   #     index : 项目编号
  57.   #--------------------------------------------------------------------------
  58.   def draw_6Rface(index)
  59.     rect = Rect.new(0, 0, 96, 96)
  60.     self.contents.clear_rect(rect)
  61.     actor = $game_party.members[index]
  62.     draw_actor_face(actor, 0,0, 96)
  63.   end  
  64.   #--------------------------------------------------------------------------
  65.   # ● 设置光标的位置
  66.   #     index : 新的光标位置
  67.   #--------------------------------------------------------------------------
  68.   def index=(index)
  69.     @index = index
  70.     update_cursor
  71.     refresh
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● 获取项目描画矩形
  75.   #     index : 项目编号
  76.   #--------------------------------------------------------------------------
  77.   def item_rect(index)
  78.     rect = Rect.new(0, 0, 0, 0)
  79.     rect.width = contents.width - 113
  80.     rect.height = WLH
  81.     rect.x = 113
  82.     rect.y = index / @column_max * WLH
  83.     return rect
  84.   end  
  85.   #--------------------------------------------------------------------------
  86.   # ● 更新光标矩形
  87.   #--------------------------------------------------------------------------
  88.   def update_cursor
  89.     if @index < 0                   # 光标位置不满 0 的情况下
  90.       self.cursor_rect.empty        # 光标无效
  91.     else                            # 光标位 0 以上的情况下
  92.       row = @index / @column_max    # 获取当前的行
  93.       if row < top_row              # 当前行被显示开头行前面的情况下
  94.         self.top_row = row          # 从当前行向开头行滚动
  95.       end
  96.       if row > bottom_row           # 当前行被显示末尾行之后的情况下
  97.         self.bottom_row = row       # 从当前行向末尾滚动
  98.       end
  99.       rect = item_rect(@index)      # 获取选择项的矩形
  100.       rect.y -= self.oy             # 矩形滚动的位置加起来
  101.       self.cursor_rect = rect       # 更新光标矩形
  102.     end
  103.     if @prev_index != @index
  104.       @prev_index = @index
  105.       draw_6Rface(@index)
  106.     end
  107.   end
  108. end

  109. #==============================================================================
  110. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  111. #==============================================================================
复制代码
dsu_plus_rewardpost_czw
作者: 食人族幽灵    时间: 2012-7-28 09:16
@版主直接丢水区吧!
作者: devilg    时间: 2012-7-30 09:24
这个脚本是在左上角画出玩家头像的?这是什么设定?

试试把脚本107行draw_6Rface(@index)改成refresh,可能会有点慢。如果过慢把draw_actor_state改一改加进去吧。




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