Project1

标题: 仲秋启明三合一美化工程 [打印本页]

作者: 仲秋启明    时间: 2011-7-14 12:55
标题: 仲秋启明三合一美化工程
本帖最后由 仲秋启明 于 2011-7-14 12:56 编辑

一个的话太简短了,弄个三合一
一、显示图标Window_Command

几天前写的,写完后发现有一个日站游戏的方法和这个一样。别说我是抄的!!!
  1. #==============================================================================
  2. # ■ 显示图标的Window_Command BY 仲秋启明
  3. #------------------------------------------------------------------------------
  4. #  使用方法:在选项前加上"#{X}"即可
  5. #            比如:s1 = "#{12}" + Vocab::new_game
  6. #==============================================================================
  7. class Window_Command < Window_Selectable
  8.   #--------------------------------------------------------------------------
  9.   # ● 绘制项目
  10.   #     index   : 项目位置
  11.   #     enabled : 有效标志,false时项目半透明化
  12.   #--------------------------------------------------------------------------
  13.   def draw_item(index, enabled = true)
  14.     rect = item_rect(index)
  15.     rect.x += 4
  16.     rect.width -= 8
  17.     self.contents.clear_rect(rect)
  18.     self.contents.font.color = normal_color
  19.     self.contents.font.color.alpha = enabled ? 255 : 128
  20.     if /^(\d+)/ =~ @commands[index]
  21.       draw_icon($1.to_i, rect.x, rect.y, enabled)
  22.       rect.x += 26
  23.       rect.width -= 26
  24.       self.contents.draw_text(rect, $')
  25.     else
  26.       self.contents.draw_text(rect, commands[index])
  27.     end
  28.   end
  29. end
复制代码
二、不同的人有不同的战斗选项

KCG的那个太麻烦了,精简
  1. #==============================================================================
  2. # ■ 不同的人有不同的战斗选项 BY 仲秋启明
  3. #------------------------------------------------------------------------------
  4. #  KCG的那个太麻烦了于是就有了这个简单的方法
  5. #------------------------------------------------------------------------------
  6. #  使用方法:根据角色ID设定即可
  7. #==============================================================================
  8. class Window_ActorCommand < Window_Command
  9.   #--------------------------------------------------------------------------
  10.   # ● 设置
  11.   #     actor : 角色
  12.   #--------------------------------------------------------------------------
  13.   def setup(actor)
  14.     case actor.id
  15.     when 1 #原版
  16.      s1 = Vocab::attack
  17.      s2 = Vocab::skill
  18.      s3 = Vocab::guard
  19.      s4 = Vocab::item
  20.     when 2 #改
  21.      s1 =  "轰他"
  22.      s2 =  "飞腿"
  23.      s3 =  "格挡"
  24.      s4 = "吃饭"
  25.     else #原版
  26.      s1 = Vocab::attack
  27.      s2 = Vocab::skill
  28.      s3 = Vocab::guard
  29.      s4 = Vocab::item
  30.     end
  31.     if actor.class.skill_name_valid     # 是否指定职业技能文字
  32.       s2 = actor.class.skill_name       # 替换「技能」命令文字
  33.     end
  34.     @commands = [s1, s2, s3, s4]
  35.     @item_max = 4
  36.     refresh
  37.     self.index = 0
  38.   end
  39. end
复制代码
三、战斗精简头像显示

《黑狮子纹章》的方法需要再准备一个素材,为精简游戏体积
  1. #==============================================================================
  2. # ■ 战斗精简头像显示 BY 仲秋启明
  3. #------------------------------------------------------------------------------
  4. #  这个比《黑狮子纹章》的方法简单且不同准备多余素材
  5. #==============================================================================
  6. class Window_Base < Window
  7.   #--------------------------------------------------------------------------
  8.   # ● 绘制战斗状态头像
  9.   #     face_name  : 头像文件名
  10.   #     face_index : 头像号码
  11.   #     x     : 描画目标 X 坐标
  12.   #     y     : 描画目标 Y 坐标
  13.   #     size       : 显示大小
  14.   #--------------------------------------------------------------------------
  15.   def draw_status_face(face_name, face_index, x, y, size = 96)
  16.     bitmap = Cache.face(face_name)
  17.     rect = Rect.new(0, 0, 0, 0)
  18.     rect.x = face_index % 4 * 96 + (96 - size) / 2
  19.     rect.y = face_index / 4 * 96 + (96 - size) / 2 + 30
  20.     rect.width = 96
  21.     rect.height = 32
  22.     self.contents.blt(x, y, bitmap, rect)
  23.     bitmap.dispose
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 绘制战斗状态头像
  27.   #     actor : 角色
  28.   #     x     : 描画目标 X 坐标
  29.   #     y     : 描画目标 Y 坐标
  30.   #     size  : 绘制大小
  31.   #--------------------------------------------------------------------------
  32.   def draw_statu_face(actor, x, y)
  33.     draw_status_face(actor.face_name, actor.face_index, x, y)
  34.   end
  35. end
  36. class Window_BattleStatus < Window_Selectable
  37.   #--------------------------------------------------------------------------
  38.   # ● 描绘项目
  39.   #     index : 项目索引
  40.   #--------------------------------------------------------------------------
  41.   alias draw_face_item draw_item
  42.   def draw_item(index)
  43.     draw_face_item(index)
  44.     rect = item_rect(index)
  45.     actor = $game_party.members[index]
  46.     draw_statu_face(actor, 67, rect.y)  #坐标自己改
  47.   end
  48. end
复制代码
综合截图:没有好好排版



综合范例: 三合一.rar (240.56 KB, 下载次数: 401)
作者: lsu666666    时间: 2011-7-14 13:48
哇...启明大哥出手了....我接招 收下lol......
看到你的发帖都要认真看一下...T.T Y     

作者: DeathKing    时间: 2011-7-14 22:07
第一个撞了,囧rz。

http://deathking.is-programmer.com/posts/24779.html




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