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

Project1

 找回密码
 注册会员
搜索
查看: 2655|回复: 10

[已经解决] 如何删除伤害显示文本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
80
在线时间
19 小时
注册时间
2017-2-27
帖子
21
发表于 2017-6-24 10:57:19 | 显示全部楼层 |阅读模式

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

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

x
此外,能不能提供一个VX的伤害显示脚本

如图所示

如图所示

Lv1.梦旅人

梦石
0
星屑
80
在线时间
19 小时
注册时间
2017-2-27
帖子
21
 楼主| 发表于 2017-6-24 11:02:01 | 显示全部楼层
下图是VA的Damage Popup脚本,有没有类似的VX脚本

就像这样

就像这样
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
19 小时
注册时间
2017-2-27
帖子
21
 楼主| 发表于 2017-6-24 11:05:21 | 显示全部楼层
我在Yanfly的VX专区里也没有找到,6R上也没有,哪位大神帮忙提供一个~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
19 小时
注册时间
2017-2-27
帖子
21
 楼主| 发表于 2017-6-24 11:50:37 | 显示全部楼层
VA的方法我会,求教VX的方法!!!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19269
在线时间
3073 小时
注册时间
2013-1-11
帖子
1288
发表于 2017-6-24 19:22:42 | 显示全部楼层
本帖最后由 张咚咚 于 2017-6-24 19:27 编辑

RUBY 代码复制
  1. class Scene_Battle < Scene_Base
  2.   alias new_start start
  3.   def start
  4.     new_start
  5.     @damage_ = Sprite_Damage.new
  6.   end
  7.   alias new_terminate terminate
  8.   def terminate
  9.     new_terminate
  10.     @damage_.dispose
  11.   end
  12.   alias new_update_basic update_basic
  13.   def update_basic(main = false)
  14.     new_update_basic(main)
  15.     @damage_.update
  16.   end
  17.   alias new_display_hp_damage display_hp_damage
  18.   def display_hp_damage(target, obj = nil)
  19.     @damage_.start_damage(target.screen_x, target.screen_y - 30, target.hp_damage, "")
  20.     new_display_hp_damage(target, obj)
  21.   end
  22. end
  23.  
  24.  
  25. class Sprite_Damage < Sprite_Base
  26.  
  27.   def initialize
  28.     super(Viewport.new(0, 0, 544, 416))
  29.     @xxx = 0
  30.     @yyy = 0
  31.     @_damage_duration = 0
  32.   end
  33.  
  34.   def start_damage(xxx, yyy, value, damage_type)
  35.     dispose
  36.     @xxx = xxx
  37.     @yyy = yyy
  38.     if value.is_a?(Numeric)
  39.       damage_string = value.abs.to_s
  40.     else
  41.       damage_string = value.to_s
  42.     end
  43.     bitmap = Bitmap.new(160, 48)
  44.     bitmap.font.name = "方正粗圆简体"
  45.     #暴击
  46.     if damage_type == "Critical"
  47.       #设置数值
  48.       bitmap.font.size = 22
  49.       bitmap.font.color.set(180, 0, 0)
  50.       bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  51.       bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  52.       bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  53.       bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  54.       bitmap.font.color.set(255, 0, 0)
  55.       bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
  56.       #设置文本
  57.       bitmap.font.size = 18
  58.       bitmap.font.color.set(180, 0, 0)
  59.       bitmap.draw_text(-1, -1, 160, 20, "暴击", 1)
  60.       bitmap.draw_text(+1, -1, 160, 20, "暴击", 1)
  61.       bitmap.draw_text(-1, +1, 160, 20, "暴击", 1)
  62.       bitmap.draw_text(+1, +1, 160, 20, "暴击", 1)
  63.       bitmap.font.color.set(255, 0, 0)
  64.       bitmap.draw_text(0, 0, 160, 20, "暴击", 1)
  65.     #伤害
  66.     elsif damage_type == ""
  67.       bitmap.font.size = 22
  68.       if value.is_a?(Numeric)
  69.         if value <= 0
  70.           bitmap.font.color.set(0, 180, 0)
  71.         else
  72.           bitmap.font.color.set(180, 0, 0)
  73.         end
  74.       else
  75.         bitmap.font.color.set(0, 0, 0)
  76.       end
  77.       bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  78.       bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  79.       bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  80.       bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  81.       if value.is_a?(Numeric)
  82.         if value <= 0
  83.           bitmap.font.color.set(0, 255, 0)
  84.         else
  85.           bitmap.font.color.set(255, 0, 0)
  86.         end
  87.       else
  88.         bitmap.font.color.set(255, 255, 255)
  89.       end
  90.       bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
  91.     end
  92.       @_damage_sprite = ::Sprite.new(self.viewport)
  93.       @_damage_sprite.bitmap = bitmap
  94.       @_damage_sprite.ox = 80
  95.       @_damage_sprite.oy = 20
  96.       @_damage_sprite.x = self.x
  97.       @_damage_sprite.y = self.y - self.oy
  98.       @_damage_sprite.z = 3000
  99.       @_damage_duration = 40
  100.       update
  101.   end
  102.  
  103.   def update
  104.     if @_damage_duration > 0
  105.       @_damage_sprite.x = @xxx
  106.       @_damage_sprite.y = @yyy
  107.       @_damage_duration -= 1
  108.       case @_damage_duration
  109.       when 38..39
  110.         @_damage_sprite.y -= 4
  111.       when 36..37
  112.         @_damage_sprite.y -= 2
  113.       when 34..35
  114.         @_damage_sprite.y += 2
  115.       when 28..33
  116.         @_damage_sprite.y += 4
  117.       end
  118.       @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32
  119.       dispose() if @_damage_duration == 0
  120.     end
  121.   end
  122.  
  123.   def dispose
  124.     if @_damage_sprite != nil
  125.       @_damage_sprite.bitmap.dispose
  126.       @_damage_sprite.dispose
  127.       @_damage_sprite = nil
  128.       @_damage_duration = 0
  129.     end
  130.   end
  131. end



自己找的一个地图显示伤害脚本改了改,插入到main之前,好像没什么问题

评分

参与人数 1梦石 +1 收起 理由
怪蜀黍 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
19 小时
注册时间
2017-2-27
帖子
21
 楼主| 发表于 2017-6-26 13:54:05 | 显示全部楼层
张咚咚 发表于 2017-6-24 19:22
class Scene_Battle < Scene_Base
  alias new_start start
  def start

感激不尽~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
19 小时
注册时间
2017-2-27
帖子
21
 楼主| 发表于 2017-6-26 14:15:42 | 显示全部楼层
@张咚咚 ……大神,这个脚本在敌方攻击的时候会出错啊……
无标题.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
19 小时
注册时间
2017-2-27
帖子
21
 楼主| 发表于 2017-6-26 14:18:05 | 显示全部楼层
此外,大神能不能把伤害显示的数字往画面上方放一点,否则好像会和敌人血条脚本显示的血条重合……
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19269
在线时间
3073 小时
注册时间
2013-1-11
帖子
1288
发表于 2017-6-26 22:06:54 | 显示全部楼层
本帖最后由 张咚咚 于 2017-6-26 22:12 编辑
OverTheHorizon 发表于 2017-6-26 14:18
此外,大神能不能把伤害显示的数字往画面上方放一点,否则好像会和敌人血条脚本显示的血条重合……{:4_113: ...


@damage_.start_damage(target.screen_x, target.screen_y - 30, target.hp_damage, "") if target.is_a?(Game_Enemy)
把上面这行替换原来的第十九行就不会出错了,显示位置调整这行的Y坐标就行了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
19 小时
注册时间
2017-2-27
帖子
21
 楼主| 发表于 2017-6-26 22:15:36 | 显示全部楼层
张咚咚 发表于 2017-6-26 22:06
@damage_.start_damage(target.screen_x, target.screen_y - 30, target.hp_damage, "") if target.is_a? ...

谢大神~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 20:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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