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

Project1

 找回密码
 注册会员
搜索

新手求个VA显血脚本

查看数: 2176 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-8-20 02:57

正文摘要:

本帖最后由 a86533024 于 2013-8-20 03:01 编辑 搜索了几个显血脚本 都不能用, RUBY 代码复制#==============================================================================# F08 ...

回复

Vortur 发表于 2015-9-9 11:52:18
本帖最后由 Vortur 于 2015-9-16 23:30 编辑
熊喵酱 发表于 2013-8-20 06:47
首先三連帖不好....

還有其實MOG的血條腳本就可以用的说~


求问:
第109行:
@Hide = @enemy.hp_meter_active[1]
从“/url”字样开始出现错误,后面相当长的一段文字为紫红色,直到下一个“/”。
如图:




怎么解决呢?为什么?

十分感谢VIPArcher 君!!

以下抄自https://rpg.blue/thread-341966-1-1.html第三条:

RUBY 代码复制
  1. [url=home.php?mod=space&uid=32466]@Index[/url]  = 1
  2. @index = 1

上述两行代码是完全一样。只不过当你用代码框框起来发帖之后,排在最前那句就被错误解析为“艾特Index”用户,导致使用时报错。出错后打开脚本编辑器会自动定位到那一行,把论坛加上去的方括号以及里面的内容删掉(@xxx前后各有一段),然后首字母改成小写就行(首字母肯定要小写)。顺便 Ctrl + F 搜索“[/url]”看看还有没有别的错处。各位在上传脚本的时候,发现被错误解析的@变量,修改一下,后面不要加空格就好(@index += 1 写成 @index+= 1,可在脚本编辑器内 Ctrl + H 快速替换)。当然还有其它错误解析的情况,不过都比较罕见,这里不介绍了,各位自求多福吧。

点评

看VA提问区置顶贴的图书馆的Q&A第三条  发表于 2015-9-9 12:18
a86533024 发表于 2013-8-20 13:29:08
76213585 发表于 2013-8-20 06:47
首先三連帖不好....

還有其實MOG的血條腳本就可以用的说~

MOG的显血我有,只想找个持续显血的,

点评

把 def update中的 update fade #起來就可以了...  发表于 2013-8-21 01:39
熊喵酱 发表于 2013-8-20 06:47:30
首先三連帖不好....

還有其實MOG的血條腳本就可以用的说~

腳本:
  1. #==============================================================================
  2. # +++ MOG - Enemy HP Meter  (v1.0) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # http://www.atelier-rgss.com/
  6. #==============================================================================
  7. # Apresenta um medidor animado com o HP do inimigo.
  8. #==============================================================================
  9. # Para ocultar o HP do inimigo use a TAG abaixo na caixa de notas.
  10. #
  11. # <Hide HP>
  12. #
  13. #==============================================================================
  14. # Serão necessários as imagens.
  15. #
  16. # Battle_Enemy_HP_Layout.png
  17. # Battle_Enemy_HP_Meter.png
  18. #
  19. #==============================================================================
  20. module MOG_ENEMY_HP
  21.    #Posição geral do medidor em relação ao battler.
  22.    POSITION_CORRECTION = [0,0]
  23.    #Posição do medidor de HP.
  24.    HP_METER_POSITION = [0,0]
  25.    #Prioridade do medidor na tela.
  26.    PRIORITY_Z = 101   
  27. end

  28. #==============================================================================
  29. # ■ Game Enemy
  30. #==============================================================================
  31. class Game_Enemy < Game_Battler

  32.   attr_accessor :hp_meter_active               
  33.   
  34.   #--------------------------------------------------------------------------
  35.   # ● Initialize
  36.   #--------------------------------------------------------------------------
  37.   alias mog_enemy_hp_initialize initialize
  38.   def initialize(index, enemy_id)
  39.       mog_enemy_hp_initialize(index, enemy_id)
  40.       hide = enemy.note =~ /<Hide HP>/i ? true : false
  41.       @hp_meter_active = [false,hide]
  42.   end  

  43. end

  44. #==============================================================================
  45. # ■ Game_Battler
  46. #==============================================================================
  47. class Game_Battler < Game_BattlerBase
  48.   
  49.   #--------------------------------------------------------------------------
  50.   # ● Item Apply
  51.   #--------------------------------------------------------------------------  
  52.    alias mog_enemy_hp_item_apply item_apply
  53.    def item_apply(user, item)
  54.        mog_enemy_hp_item_apply(user, item)
  55.        if self.is_a?(Game_Enemy)
  56.           self.hp_meter_active[0] = true if @result.hp_damage != 0
  57.        end
  58.    end

  59.   #--------------------------------------------------------------------------
  60.   # ● Regenerate HP
  61.   #--------------------------------------------------------------------------
  62.   alias mog_enemy_hp_regenerate_hp regenerate_hp
  63.   def regenerate_hp
  64.       mog_enemy_hp_regenerate_hp
  65.       if self.is_a?(Game_Enemy)
  66.          self.hp_meter_active[0] = true if @result.hp_damage != 0      
  67.       end         
  68.   end
  69.    
  70. end
  71.   

  72. #==============================================================================
  73. # ■ Battle_Hud
  74. #==============================================================================
  75. class Enemy_HP
  76.   include MOG_ENEMY_HP
  77.   
  78.   #--------------------------------------------------------------------------
  79.   # ● Initialize
  80.   #--------------------------------------------------------------------------   
  81.   def initialize(viewport = nil,enemy,image)
  82.       @enemy = enemy
  83.       @image = image
  84.       @fade_time = -1
  85.       create_layout   
  86.       create_hp_meter      
  87.       b_pos = [enemy.screen_x - (@layout.width / 2) + POSITION_CORRECTION[0], enemy.screen_y + POSITION_CORRECTION[1] - (@layout.height / 2)]
  88.       @layout.opacity = 0
  89.       @org_pos1 = [b_pos[0],b_pos[1]]
  90.       @layout.x = @org_pos1[0]
  91.       @layout.y = @org_pos1[1]
  92.       @layout.visible = false
  93.       @hp_meter.opacity = 0
  94.       @hp_meter.visible = false
  95.       @org_pos2 = [b_pos[0] + HP_METER_POSITION[0], b_pos[1] + HP_METER_POSITION[1]]
  96.       @hp_meter.x = @org_pos2[0]
  97.       @hp_meter.y = @org_pos2[1]
  98.       @hp_meter.viewport = viewport
  99.       @hp_meter.z = PRIORITY_Z
  100.       @layout.viewport = viewport
  101.       @layout.z = PRIORITY_Z
  102.       @enemy.hp_meter_active[0] = false
  103.       [url=home.php?mod=space&uid=94902]@Hide[/url] = @enemy.hp_meter_active[1]
  104.   end
  105.   
  106.   #--------------------------------------------------------------------------
  107.   # ● Create HP Meter
  108.   #--------------------------------------------------------------------------        
  109.   def create_layout
  110.       @layout = Sprite.new
  111.       @layout.bitmap = @image[0]
  112.   end
  113.    
  114.   #--------------------------------------------------------------------------
  115.   # ● Create HP Meter
  116.   #--------------------------------------------------------------------------      
  117.   def create_hp_meter
  118.       @meter_cw = @image[1].width
  119.       @meter_ch = @image[1].height / 2      
  120.       @hp_meter = Sprite.new
  121.       @hp_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  122.       @hp_width_old = @meter_cw * @enemy.hp / @enemy.mhp
  123.     end  
  124.   
  125.   #--------------------------------------------------------------------------
  126.   # ● Hp Flow Update
  127.   #--------------------------------------------------------------------------
  128.   def update_hp_flow
  129.       return if [email protected]     
  130.       hp_width = @meter_cw * @enemy.hp / @enemy.mhp
  131.       @hp_meter.bitmap.clear      
  132.       execute_damage_flow(hp_width)
  133.       hp_src_rect = Rect.new(0, 0,hp_width, @meter_ch)
  134.       @hp_meter.bitmap.blt(0,0, @image[1], hp_src_rect)
  135.   end
  136.    
  137.   #--------------------------------------------------------------------------
  138.   # ● Execute Damage Flow
  139.   #--------------------------------------------------------------------------
  140.   def execute_damage_flow(hp_width)
  141.       n = (@hp_width_old - hp_width).abs * 3 / 100
  142.       damage_flow = [[n, 2].min,0.5].max
  143.       @hp_width_old -= damage_flow
  144.       if @hp_width_old <= hp_width
  145.          @hp_width_old = hp_width
  146.       end   
  147.       src_rect_old = Rect.new(0,@meter_ch,@hp_width_old, @meter_ch)
  148.       @hp_meter.bitmap.blt(0,0, @image[1], src_rect_old)      
  149.   end   
  150.   
  151.   #--------------------------------------------------------------------------
  152.   # ● Dispose
  153.   #--------------------------------------------------------------------------      
  154.   def dispose
  155.       @layout.bitmap.dispose
  156.       @layout.dispose
  157.       @hp_meter.bitmap.dispose
  158.       @hp_meter.dispose
  159.   end
  160.   
  161.   #--------------------------------------------------------------------------
  162.   # ● Update
  163.   #--------------------------------------------------------------------------      
  164.   def update
  165.       return if @hide
  166.       update_fade   
  167.       update_visible
  168.       update_hp_flow
  169.       refresh if @enemy.hp_meter_active[0]
  170.   end  
  171.   
  172.   #--------------------------------------------------------------------------
  173.   # ● Update Fade
  174.   #--------------------------------------------------------------------------        
  175.   def update_fade
  176.       @fade_time -= 1 if @fade_time > 0
  177.       return if @fade_time != 0
  178.       @layout.opacity -= 10
  179.       @hp_meter.opacity -= 10
  180.       @layout.x += 1
  181.       @hp_meter.x += 1
  182.       @fade_time = -1 if @layout.opacity == 0
  183.   end  
  184.   
  185.   #--------------------------------------------------------------------------
  186.   # ● Update Visible
  187.   #--------------------------------------------------------------------------        
  188.   def update_visible
  189.       return if [email protected]
  190.       vis = can_visible?
  191.       @layout.visible = vis
  192.       @hp_meter.visible = vis
  193.   end
  194.   
  195.   #--------------------------------------------------------------------------
  196.   # ● Refresh
  197.   #--------------------------------------------------------------------------         
  198.   def refresh     
  199.       @enemy.hp_meter_active[0] = false
  200.       @layout.opacity = 255
  201.       @hp_meter.opacity = 255   
  202.       @layout.visible = true
  203.       @hp_meter.visible = true
  204.       @fade_time = 60
  205.       @layout.x = @org_pos1[0]
  206.       @layout.y = @org_pos1[1]
  207.       @hp_meter.x = @org_pos2[0]
  208.       @hp_meter.y = @org_pos2[1]      
  209.       hp_width = @meter_cw * @enemy.hp / @enemy.mhp
  210.       @hp_width_old = hp_width if @hp_width_old < hp_width
  211.       update_hp_flow
  212.   end
  213.   
  214.   #--------------------------------------------------------------------------
  215.   # ● Can Visible?
  216.   #--------------------------------------------------------------------------         
  217.   def can_visible?
  218.       return false if @layout.opacity == 0      
  219.       return true
  220.   end
  221.    
  222. end

  223. #==============================================================================
  224. # ■ Spriteset Battle
  225. #==============================================================================
  226. class Spriteset_Battle
  227.   
  228.   #--------------------------------------------------------------------------
  229.   # ● Initialize
  230.   #--------------------------------------------------------------------------  
  231.   alias mog_enemy_hp_initialize initialize
  232.   def initialize
  233.       mog_enemy_hp_initialize
  234.       create_enemy_hp      
  235.   end
  236.   
  237.   #--------------------------------------------------------------------------
  238.   # ● Create Battle Hud
  239.   #--------------------------------------------------------------------------   
  240.   def create_enemy_hp   
  241.       ie1 = Cache.system("Battle_Enemy_HP_Layout")
  242.       ie2 = Cache.system("Battle_Enemy_HP_Meter")
  243.       @enemy_hp_images = [ie1,ie2]
  244.       @enemy_hp = []      
  245.       for i in $game_troop.members
  246.           @enemy_hp.push(Enemy_HP.new(@viewport1,i,@enemy_hp_images))
  247.       end
  248.   end
  249.   
  250.   #--------------------------------------------------------------------------
  251.   # ● Dispose
  252.   #--------------------------------------------------------------------------      
  253.   alias mog_enemy_hp_dispose dispose
  254.   def dispose
  255.       mog_enemy_hp_dispose
  256.       dispose_enemy_hp
  257.   end  
  258.   
  259.   #--------------------------------------------------------------------------
  260.   # ● Dispose Enemy HP
  261.   #--------------------------------------------------------------------------        
  262.   def dispose_enemy_hp
  263.       return if @enemy_hp_images == nil
  264.       @enemy_hp_images.each {|sprite| sprite.dispose }
  265.       @enemy_hp_images.clear
  266.       @enemy_hp.each {|sprite| sprite.dispose }
  267.       @enemy_hp.clear
  268.   end
  269.   
  270.   #--------------------------------------------------------------------------
  271.   # ● Update
  272.   #--------------------------------------------------------------------------        
  273.   alias mog_enemy_hp_update update
  274.   def update
  275.       mog_enemy_hp_update
  276.       update_enemy_hp
  277.   end
  278.   
  279.   #--------------------------------------------------------------------------
  280.   # ● Update Enemy HP
  281.   #--------------------------------------------------------------------------         
  282.   def update_enemy_hp
  283.       return if @enemy_hp_images == nil
  284.       @enemy_hp.each {|sprite| sprite.update }
  285.   end  
  286. end

  287. $mog_rgss3_enemy_hp_meter = true
复制代码
素材的話在介:

System.zip

7.48 KB, 下载次数: 95

评分

参与人数 1梦石 +1 收起 理由
Sion + 1 感谢帮忙

查看全部评分

a86533024 发表于 2013-8-20 03:19:24
我用的 sideview100 的汉化版,.还有几个MOG的脚本.
a86533024 发表于 2013-8-20 03:06:18
RUBY 代码复制
  1. #==============================================================================
  2. # 功能:战斗中显示敌人血和蓝于敌人脚下
  3. # 适用:RMVX Ace
  4. # 作者:殇殃 2012.3.10
  5. # 使用方法:复制整个脚本插入到Main之前
  6. # 注意:由于血条是显示在敌人脚下,所以敌群的位置不能太靠底部,不然会被挡住。
  7. # 可以自行更改坐标修改显示位置、血条的颜色等。
  8. #==============================================================================
  9. # ■ Window_Base
  10. #------------------------------------------------------------------------------
  11. #  游戏中全部窗口的超级类。
  12. #==============================================================================
  13.  
  14. class Window_Base < Window
  15. #--------------------------------------------------------------------------
  16. # ● 描绘敌人HP
  17. #--------------------------------------------------------------------------
  18. def draw_enemy_hp(enemy, x, y, width = 80)
  19. draw_gauge(x, y, width, enemy.hp_rate, hp_gauge_color1, hp_gauge_color2)
  20. self.contents.font.size = 20
  21. self.contents.font.color = system_color
  22. self.contents.draw_text(x, y, 30, line_height, Vocab::hp_a)
  23. self.contents.font.color = hp_color(enemy)
  24. self.contents.draw_text(x + width - 64, y, 64, line_height, enemy.hp, 2)
  25. #一个数字占16像素
  26. end
  27. def draw_enemy_name(enemy, x, y)
  28. self.contents.font.size = 15
  29. self.contents.font.color = normal_color
  30. self.contents.draw_text(x, y,104, line_height, enemy.name)
  31. end
  32. #--------------------------------------------------------------------------
  33. # ● 绘制敌人MP
  34. #--------------------------------------------------------------------------
  35. def draw_enemy_mp(enemy, x, y, width = 80)
  36. self.contents.font.size = 20
  37. draw_gauge(x, y, width, enemy.mp_rate, mp_gauge_color1, mp_gauge_color2)
  38. self.contents.font.color = system_color
  39. self.contents.draw_text(x, y, 30, line_height, Vocab::mp_a)
  40. self.contents.font.color = mp_color(enemy)
  41. self.contents.draw_text(x + width - 64, y, 64, line_height, enemy.mp, 2)
  42. end
  43. end
  44. #==============================================================================
  45. # ■ Sprite_Battler
  46. #------------------------------------------------------------------------------
  47. #  战斗显示用活动块。Game_Battler 类的实例监视、
  48. # 活动块的状态的监视、活动块状态自动变化。
  49. #==============================================================================
  50.  
  51. class Sprite_Battler < Sprite_Base
  52. #--------------------------------------------------------------------------
  53. # ● 初始化对象
  54. # viewport : 视区
  55. # battler : 战斗者 (Game_Battler)
  56. #--------------------------------------------------------------------------
  57. def initialize(viewport, battler = nil)
  58. super(viewport)
  59. [url=home.php?mod=space&uid=133701]@battler[/url] = battler
  60. @battler_visible = false
  61. @effect_type = nil
  62. @effect_duration = 0
  63. if @battler.is_a?(Game_Enemy)
  64. width = 24 + 80#边距12*2+血条的长度(在draw_enemy_hp中定义)
  65. height = 24 + 24*3 #边距12*2+line_height*2
  66. x = @battler.screen_x - width/2 #screen_x是怪物图片水平方向上的中点位置
  67. y = @battler.screen_y - 12 #边距12,显示HP/MP的窗口无边框
  68. @enemy_hpmp_window = Window_Base.new(x, y, width, height)
  69. @enemy_hpmp_window.opacity = 0
  70. @enemy_hpmp_window.contents = Bitmap.new(width - 24, height - 24)#位图比窗口小24像素取消边框
  71. @enemy_hpmp_window.draw_enemy_hp(@battler, 0, 0)
  72. @old_hp = -1
  73. @enemy_hpmp_window.draw_enemy_mp(@battler, 0, 24)
  74. @old_mp = -1
  75. @enemy_hpmp_window.draw_enemy_name(@battler, 0, 48)
  76. @old_name = nil
  77. end
  78. end
  79. #--------------------------------------------------------------------------
  80. # ● 释放
  81. #--------------------------------------------------------------------------
  82. def dispose
  83. if self.bitmap != nil
  84. self.bitmap.dispose
  85. @enemy_hpmp_window.dispose
  86. end
  87. super
  88. end
  89. #--------------------------------------------------------------------------
  90. # ● 更新画面
  91. #--------------------------------------------------------------------------
  92. def update
  93. super
  94. if @battler == nil
  95. self.bitmap = nil
  96. else
  97. @use_sprite = @battler.use_sprite?
  98. if @use_sprite
  99. update_bitmap
  100. update_origin
  101. update_position
  102. end
  103. setup_new_effect
  104. setup_new_animation
  105. update_effect
  106. if @enemy_hpmp_window != nil and (@old_hp != @battler.hp or @old_mp != @battler.mp)
  107. if @battler.hp == 0
  108. @enemy_hpmp_window.hide
  109. else
  110. @enemy_hpmp_window.contents.clear
  111. @enemy_hpmp_window.draw_enemy_hp(@battler, 0, 0)
  112. @old_hp = @battler.hp
  113. @enemy_hpmp_window.draw_enemy_mp(@battler, 0, 24)
  114. @old_mp = @battler.mp
  115. @enemy_hpmp_window.draw_enemy_name(@battler, 0, 48)
  116. @old_mp = @battler.name
  117. @enemy_hpmp_window.show #怪物死后再被复活
  118. end #if battler.hp == 0
  119. end
  120. end #if @battler == nil
  121. end
  122.  
  123. end



这个用了人物会消失,而且战斗画面会卡住没反映

求大神给个能用的显血脚本  
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-17 19:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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