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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: flzt5354
打印 上一主题 下一主题

[已经解决] 如何在战斗画面显示自定义的角色头像

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-7-25
帖子
411
11
 楼主| 发表于 2009-8-17 12:52:53 | 只看该作者
不知不觉中,3小时过去了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
7 小时
注册时间
2009-1-1
帖子
263
12
发表于 2009-8-17 12:57:24 | 只看该作者
我能!
  1. #战斗显示脚本新版。 作者:玄月
  2. #这是我第一次写外挂,所以有什么问题请多多包涵。
  3. #虽然我不知道这算不算外挂脚本,可是大家也凑合着用吧。
  4. #以前我也发过类似的脚本,可是那个他的z值无法调节,而且改动的地方很多
  5. #这次把它整合到一起,希望可以帮到大家,而且这次的用法也很简单了。
  6. #本人的思路就是想到既然可以在窗口中显示角色行走图,那么显示脸图也是可以的吧
  7. #鉴于战斗脚本还不是很熟练,所以只是在Window_Base里新建了一个项目来显示脸图而已
  8. #如果还有更好的方法请大家不吝赐教,谢谢了。
  9.    
  10. class Window_Base < Window
  11.   def draw_actor_face(actor, x, y)
  12.   #----------------------------------------------------
  13.   #自定义角色脸图文件夹设定
  14.   #----------------------------------------------------
  15.   #以下定义角色脸图储存文件夹母文件夹。必须定义,否则会出错
  16.   #参照格式:Graphics/pictures/
  17.   $face1 = "Graphics/system/battle/battlehead/"
  18.   #以下定义角色脸图储存文件夹子文件夹。不定义子文件夹则留空
  19.   $face2 = ""
  20.   #--------------------------------------------------------------------------
  21.   # ● 脸图的描绘
  22.   #     actor : 角色
  23.   #     x     : 描画目标 X 坐标RPG::Cache.picture
  24.   #     y     : 描画目标 Y 坐标
  25.   #--------------------------------------------------------------------------
  26.   #----------------------------------------------------------------------------
  27.   #●脸图位置判定开始
  28.   #----------------------------------------------------------------------------
  29.   #判定脸图名称
  30.   #此为使用角色id作为脸图名称,若不使用则注释掉本行并取消使用角色名称作为
  31.   #脸图名称的注释
  32.   #test = actor.id
  33.   #此为使用角色名称作为脸图名称,若不使用则注释掉本行并取消使用角色id作为
  34.   #脸图名称的注释
  35.   test = actor.name + ""
  36.   #判定脸图位置
  37.   #这是自定义的文件夹,若不使用则注释掉本行并取消默认文件夹的注释
  38.   bitmap = Bitmap.new($face1+$face2+ "#{test}.png")
  39.   #这是默认的文件夹,若不使用则注释掉本行并取消自定义文件夹的注释
  40.   #bitmap = RPG::Cache.picture("#{test}")  
  41.   #----------------------------------------------------------------------------
  42.   #●脸图位置判定结束,生成脸图
  43.   #----------------------------------------------------------------------------
  44.     cw = bitmap.width
  45.     ch = bitmap.height
  46.     src_rect = Rect.new(0, 0, cw, ch)
  47.     self.contents.blt(x , y  , bitmap, src_rect)#(x - cw / 2, y - ch, bitmap, src_rect)
  48.   end
  49. end
  50. class Window_Battleface < Window_Base
  51.   #--------------------------------------------------------------------------
  52.   # ● 初始化目标
  53.   #--------------------------------------------------------------------------
  54.   def initialize
  55.     super(0, 0, 640, 480)
  56.     self.contents = Bitmap.new(width - 32, height - 32)
  57.     self.opacity = 0
  58.     self.z  = 199
  59.     refresh
  60. #    self.active = false
  61. #    self.index = -1
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● 刷新
  65.   #--------------------------------------------------------------------------
  66. def refresh
  67.     self.contents.clear
  68.     @item_max = $game_party.actors.size
  69.     for i in 0...$game_party.actors.size
  70.       x = i * 160-30
  71.       y = 260
  72.       actor = $game_party.actors[i]
  73.       draw_actor_face(actor, x + 8, y )
  74.       #draw_actor_graphic(actor, x - 40, y + 80)
  75.       #actor = $game_party.actors[i]
  76.     end
  77.   end
  78. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-7-25
帖子
411
13
 楼主| 发表于 2009-8-17 14:34:16 | 只看该作者
本帖最后由 flzt5354 于 2009-8-17 14:40 编辑

这脚本怎么用的- -我设置了也没效果
  1. class Window_Base < Window
  2.   def draw_actor_face(actor, x, y)
  3.   #----------------------------------------------------
  4.   #自定义角色脸图文件夹设定
  5.   #----------------------------------------------------
  6.   #以下定义角色脸图储存文件夹母文件夹。必须定义,否则会出错
  7.   #参照格式:Graphics/pictures/
  8.   $face1 = "Graphics/pictures/"
  9.   #以下定义角色脸图储存文件夹子文件夹。不定义子文件夹则留空
  10.   $face2 = ""
  11.   #--------------------------------------------------------------------------
  12.   # ● 脸图的描绘
  13.   #     actor : 角色
  14.   #     x     : 描画目标 X 坐标RPG::Cache.picture
  15.   #     y     : 描画目标 Y 坐标
  16.   #--------------------------------------------------------------------------
  17.   #----------------------------------------------------------------------------
  18.   #●脸图位置判定开始
  19.   #----------------------------------------------------------------------------
  20.   #判定脸图名称
  21.   #此为使用角色id作为脸图名称,若不使用则注释掉本行并取消使用角色名称作为
  22.   #脸图名称的注释
  23.   #test = actor.id
  24.   #此为使用角色名称作为脸图名称,若不使用则注释掉本行并取消使用角色id作为
  25.   #脸图名称的注释
  26.   test = actor.name + ""
  27.   #判定脸图位置
  28.   #这是自定义的文件夹,若不使用则注释掉本行并取消默认文件夹的注释
  29.   bitmap = Bitmap.new($face1+$face2+ "#{test}.png")
  30.   #这是默认的文件夹,若不使用则注释掉本行并取消自定义文件夹的注释
  31.   #bitmap = RPG::Cache.picture("#{test}")  
  32.   #----------------------------------------------------------------------------
  33.   #●脸图位置判定结束,生成脸图
  34.   #----------------------------------------------------------------------------
  35.     cw = bitmap.width
  36.     ch = bitmap.height
  37.     src_rect = Rect.new(0, 0, cw, ch)
  38.     self.contents.blt(x , y  , bitmap, src_rect)#(x - cw / 2, y - ch, bitmap, src_rect)
  39.   end
  40. end
  41. class Window_Battleface < Window_Base
  42.   #--------------------------------------------------------------------------
  43.   # ● 初始化目标
  44.   #--------------------------------------------------------------------------
  45.   def initialize
  46.     super(0, 0, 640, 480)
  47.     self.contents = Bitmap.new(width - 32, height - 32)
  48.     self.opacity = 0
  49.     self.z  = 199
  50.     refresh
  51. #    self.active = false
  52. #    self.index = -1
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 刷新
  56.   #--------------------------------------------------------------------------
  57. def refresh
  58.     self.contents.clear
  59.     @item_max = $game_party.actors.size
  60.     for i in 0...$game_party.actors.size
  61.       x = i * 160-30
  62.       y = 260
  63.       actor = $game_party.actors[i]
  64.       draw_actor_face(actor, x + 8, y )
  65.       #draw_actor_graphic(actor, x - 40, y + 80)
  66.       #actor = $game_party.actors[i]
  67.     end
  68.   end
  69. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-7-25
帖子
411
14
 楼主| 发表于 2009-8-17 18:53:57 | 只看该作者
自动顶帖机器
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
73 小时
注册时间
2008-7-9
帖子
234
15
发表于 2009-8-18 04:28:54 | 只看该作者
本帖最后由 well 于 2009-8-18 04:40 编辑

draw_actor_face(actor, x, y)
按你的要求是在battle_status窗口里调用的样子
class Window_Battleface
新建的这个窗口类是个范例吧,示范如何调用。
好像也可以在scene_battle里开一个这类窗口。调调窗口Z值和x,y大概就可以了。
别忘了dispose
血瞳睨世

也来玩一下养小龙吧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
7 小时
注册时间
2009-1-1
帖子
263
16
发表于 2009-8-18 11:38:43 | 只看该作者
哦 我望了 要在Scene_Battle 1生成其他窗口那里加入
    @face_window = Window_Battleface.new
释放窗口那里增加    @face_window.dispose
坐标自己修改一下 我这个只是配合了自己的游戏
坐标需要自己修改
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 00:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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