Project1

标题: 战斗中显示头像和特技人物特写脚本整合 [打印本页]

作者: tottoyea    时间: 2009-4-21 07:12
标题: 战斗中显示头像和特技人物特写脚本整合
各位好,我有个问题请教……
我使用了 Tabris_Air 的 发动特技前显示人物特写范例 For 非RTAB 脚本
和 玄月 的 战斗显示脚本新版。

可是,在显示特写时,用于战斗显示的图片无法清除……
个人觉得应该不会很难解决,可是我是初学者,不会写脚本,所以还请各位帮忙……

请参考下图:





就是红圈中的图片不知道如何清除?
当然特技施放完后还要还原……:)

谢谢!! [LINE]1,#dddddd[/LINE]此贴于 2009-4-22 10:32:06 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:版主帮忙结贴~
作者: tottoyea    时间: 2009-4-21 18:13
使用的两个脚本如下:
1.战斗中显示头像
  1. 用方法:
  2. 在Scene_Battle1的第41行左右插入这个

  3.    本帖相关代码如下:
  4. @face_window = Window_Battleface.new

  5. 并在其第71行之下插入这个

  6.    本帖相关代码如下:
  7. @face_window.dispose

  8. 然后将以下脚本插入main以上



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


2.施放特技时显示图片脚本
  1.     ########### 公共事件 ID 有效的情况下###########(提前动画)

  2. #●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  3.    
  4.     if @skill.id == 57
  5.       # 设置事件
  6.       common_event = $data_common_events[1]
  7.       $game_system.battle_interpreter.setup($data_common_events[1].list, 0)
  8.     end

  9. #●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  10. #当特技id为57时,执行1号公共事件

  11. #●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●   
复制代码

作者: 紫苏    时间: 2009-4-22 07:36
这种时候楼主应该上传一个测试工程,方便回答问题的兄弟能够直接调试,而不是让回答问题的人去现找一张测试图片现弄一个测试工程……
作者: tottoyea    时间: 2009-4-23 06:46
这种时候楼主应该上传一个测试工程,方便回答问题的兄弟能够直接调试,而不是让回答问题的人去现找一张测试图片现弄一个测试工程……


收到,范例来了~
请参考附件~
http://rpg.blue/upload_program/d ... ��例_120869113.rar

再次感谢!

作者: 紫苏    时间: 2009-4-23 07:41
以下引用tottoyea于2009-4-22 22:46:08的发言:
收到,范例来了~
请参考附件~
http://rpg.blue/upload_program/d/tottoyea_测试范例_120869113.rar


再次感谢!


无法找到该页
您正在搜索的页面可能已经删除、更名或暂时不可用。 {/gg}

[LINE]1,#dddddd[/LINE]
刚才 RP 了,url 多包涵了几个字符
已经下载了

[LINE]1,#dddddd[/LINE]
解决方法,在【战斗显示头像】脚本中修改窗口的 z 次序:
#--------------------------------------------------------------------------
# ● 初始化目标
#--------------------------------------------------------------------------
def initialize
   super(0, 0, 640, 480)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.opacity = 0
   self.z  = 150
   refresh
#    self.active = false
#    self.index = -1
end
end


这并不是图片没有被清除,而是显示头像的窗口 z 次序太高,又没有分配到 viewport 中,所以覆盖在图片的上面了~ [LINE]1,#dddddd[/LINE]版主对此帖的认可:『辛苦你了,请再接再厉...』,积分『+100』。 [LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
作者: 爱之永夜    时间: 2009-4-23 07:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: tottoyea    时间: 2009-4-23 17:15
解决方法,在【战斗显示头像】脚本中修改窗口的 z 次序:

#--------------------------------------------------------------------------
# ● 初始化目标
#--------------------------------------------------------------------------
def initialize
  super(0, 0, 640, 480)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.opacity = 0
  self.z  = 150
  refresh
#    self.active = false
#    self.index = -1
end
end


这并不是图片没有被清除,而是显示头像的窗口 z 次序太高,又没有分配到 viewport 中,所以覆盖在图片的上面了~


多谢!问题已解决!!

所以 self.z  = 150 是Z这个窗口的优先级么? Viewport又是什么…
呃,我还是自己努力学习吧!

再次再次感谢!
[LINE]1,#dddddd[/LINE]版主对此帖的评论:『请结帖认可你认为正确的答案』,积分『-0』。这些被扣积分的一半会用于对本帖正确答案的悬赏。




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