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

Project1

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

这个加强Command_Window窗口的脚本添加“绝技,逃跑”

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
205
在线时间
230 小时
注册时间
2008-7-8
帖子
233
跳转到指定楼层
1
发表于 2009-2-9 08:19:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这个加强Command_Window窗口的脚本添加“绝技,逃跑”
还有如果可以的话怎么才能在绝技选项里添加制定特技

http://rpg.blue/web/htm/news436.htm
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================


  4. #==============================================================================
  5. # ■ Window_Command
  6. #
  7. #     与Window_Command功能一致,不同点就是可以自己给定行、列的值,使菜单像轩辕剑
  8. # 系列的排列……
  9. #
  10. # 举例:                            行  列               -命令列表-
  11. #      Window_Command.new(160, ["攻击","法术","物品","绝技","防御","逃跑"],2)
  12. #==============================================================================

  13. #==============================================================================
  14. # ■ Window_Command
  15. #------------------------------------------------------------------------------
  16. #  一般的命令选择行窗口。
  17. #==============================================================================

  18. class Window_Command < Window_Selectable
  19. #--------------------------------------------------------------------------
  20. # ● 初始化对像
  21. #     width    : 每格的的宽
  22. #     row      : 行数   自己根据命令数算好行列的值,否则^^b
  23. #     column   : 列数
  24. #     commands : 命令字符串序列
  25. #--------------------------------------------------------------------------
  26. def initialize(width, commands, column=1)
  27.    row = commands.size / column
  28.    # 由命令的个数计算出窗口的宽和高
  29.    super(0, 0, width, row * 32 + 32)
  30.    @item_max = commands.size
  31.    @commands = commands
  32.    @row = row
  33.    @width_txt = (width-32)/column
  34.    @column_max = column
  35.    self.contents = Bitmap.new(width-32, @row * 32)
  36.    refresh
  37.    @item = []
  38.    self.index = 0
  39.    refresh
  40.    @oldindex = 0
  41. end
  42.   #--------------------------------------------------------------------------
  43.   # ● 刷新
  44.   #--------------------------------------------------------------------------
  45.   def refresh
  46.     self.contents.clear
  47.     for i in 0...@item_max
  48.       if i != self.index
  49.         draw_item_dis(i)
  50.       else
  51.         draw_item_active(i,@item[i])
  52.       end
  53.     end
  54.   end
  55. #--------------------------------------------------------------------------
  56. # ● 描绘项目
  57. #     index : 项目编号
  58. #     color : 文字色
  59. #--------------------------------------------------------------------------
  60. def draw_item(index, color)
  61.    self.contents.font.color = color
  62.    # 计算得出当前index所对应的内容所在的行
  63.    row_index = index / @column_max
  64.    for y in 0...@column_max
  65.      if index % @column_max == y
  66.        rect = Rect.new(y * @width_txt, 32 * row_index , @width_txt, 32)
  67.        self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  68.        self.contents.draw_text(rect, @commands[index],1)
  69.        break
  70.      end
  71.    end
  72. end
  73. #--------------------------------------------------------------------------
  74. # ● 项目无效化
  75. #     index : 项目编号
  76. #--------------------------------------------------------------------------
  77. def disable_item(index)
  78.    draw_item(index, disabled_color)
  79. end
  80.   #--------------------------------------------------------------------------
  81.   # ● 描绘项目
  82.   # index : 项目编号
  83.   # color : 文字色
  84.   #--------------------------------------------------------------------------
  85.   def draw_item_dis(index)
  86.     self.contents.font.size -= 6
  87.     self.contents.font.color = disabled_color
  88.     row_index = index / @column_max
  89.      for y in 0...@column_max
  90.        if index % @column_max == y
  91.          rect = Rect.new(y * @width_txt, 32 * row_index , @width_txt, 32)
  92.          self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  93.          self.contents.draw_text(rect, @commands[index],1)
  94.          break
  95.        end
  96.      end
  97.     self.contents.font.size += 6
  98.   end
  99.   def draw_item_active(index, type)
  100.     self.contents.font.color = Color.new(0,0,0,255)
  101.     row_index = index / @column_max
  102.    for y in 0...@column_max
  103.      if index % @column_max == y
  104.       self.contents.font.color = Color.new(0,0,0,255)
  105.        rect = Rect.new(y * @width_txt+1, 32 * row_index+1 , @width_txt, 32)
  106.        self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  107.        self.contents.draw_text(rect, @commands[index],1)      
  108.        rect = Rect.new(y * @width_txt, 32 * row_index , @width_txt, 32)
  109.         if type==1
  110.           self.contents.font.color = disabled_color
  111.         else
  112.           self.contents.font.color = Color.new(255,255,220,255)
  113.         end        
  114.        self.contents.draw_text(rect, @commands[index],1)
  115.        break
  116.      end
  117.    end
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ● 项目无效化
  121.   # index : 项目编号
  122.   #--------------------------------------------------------------------------
  123.   def disable_item(index)
  124.     @item[index] = 1
  125.   end  
  126. #--------------------------------------------------------------------------
  127. # ● 项目有效化
  128. #     index : 项目编号
  129. #--------------------------------------------------------------------------
  130. def able_item(index)
  131.    draw_item(index, normal_color)
  132. end
  133.   #--------------------------------------------------------------------------
  134.   # ● 更新光标举行
  135.   #--------------------------------------------------------------------------
  136.   def update_cursor_rect
  137.     # 光标位置不满 0 的情况下
  138.     if @index < 0
  139.       self.cursor_rect.empty
  140.       return
  141.     end
  142.     # 获取当前的行
  143.     row = @index / @column_max
  144.     # 当前行被显示开头行前面的情况下
  145.     if row < self.top_row
  146.       # 从当前行向开头行滚动
  147.       self.top_row = row
  148.     end
  149.     # 当前行被显示末尾行之后的情况下
  150.     if row > self.top_row + (self.page_row_max - 1)
  151.       # 从当前行向末尾滚动
  152.       self.top_row = row - (self.page_row_max - 1)
  153.     end
  154.     # 计算光标的宽
  155.     cursor_width = @width_txt
  156.     # 计算光标坐标
  157.     x = @index % @column_max * cursor_width
  158.     y = @index / @column_max * 32 - self.oy
  159.     # 更新国标矩形
  160.     self.cursor_rect.set(x, y, @width_txt, 32)
  161.   end
  162.     #--------------------------------------------------------------------------
  163.   # ● 刷新方法更新
  164.   #--------------------------------------------------------------------------
  165.   def update
  166.     super
  167.     #——这里使用的刷新方法比直接refresh节约很多内存
  168.     if self.index != @oldindex
  169.       @oldindex = self.index
  170.       refresh
  171.     end
  172.   end
  173. end

  174. #==============================================================================
  175. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  176. #==============================================================================

复制代码

就像这个一样:

(请忽略文字大小)
A man chooses; a slave obeys.
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2025-1-18 07:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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