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

Project1

 找回密码
 注册会员
搜索
查看: 1185|回复: 1
打印 上一主题 下一主题

[已经过期] 连招显示伤害

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
34 小时
注册时间
2011-4-9
帖子
48
跳转到指定楼层
1
发表于 2011-6-26 15:45:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================


# ============================================================================
# 伤害效果美化 v1.0 by SailCat
# ============================================================================

# 脚本使用说明:

# 1.使用时需要将Damage.png复制到你的游戏的Graphics/Pictures目录下

# 2.Damage.png文件的格式:

#   大小为180 x 96

#   (0, 0) - (179, 31)为伤害值的数字表,其中每个数字宽18,高32

#   (0, 32) - (179, 63)为回复值(伤害负值)的数字表,其中每个数字宽18,高32

#   (0, 64) - (89, 95)为会心一击标记的图画,长宽为90 x 32

#   (90, 64) - (179, 95)为未命中标记的图画,长宽为90 x 32

# ============================================================================

module RPG

  class Sprite < ::Sprite

    #--------------------------------------------------------------------------

    # ● 伤害值描画

    #--------------------------------------------------------------------------

    def damage(value, critical,type=1)
      # 释放伤害

      dispose_damage

      # 如果伤害值是数值

      if value.is_a?(Numeric)

        # 绝对值转为字符串

        damage_string = value.abs.to_s

      else

        # 转为字符串

        damage_string = value.to_s

      end

      # 初始化位图

      bitmap = Bitmap.new(162, 64)

      bitmap.font.name = "Arial Black"

      bitmap.font.size = 32

      # 伤害值是数值的情况下

      if value.is_a?(Numeric)

        # 分割伤害值字符串

        damage_array = damage_string.scan(/./)

        damage_x = 81 - damage_string.size * 9

        # 伤害值为负的情况下

        if value < 0

          # 调用回复数字表

          rect_y = 32

        else

          # 调用伤害数字表

          rect_y = 0

        end

        # 循环伤害值字符串

        for char in damage_array

          number = char.to_i

          # 显示伤害数字
          bitmap.blt(damage_x, 32, RPG::Cache.picture("Damage"),

            Rect.new(number * 18, rect_y, 18, 32))

          # 后移一位

          damage_x += 18

        end

      # 伤害值不是数值的情况

      else

        # 如果伤害值不是 Miss

        unless value == "Miss"

          # 系统默认描画字符串

          bitmap.font.color.set(0, 0, 0)

          bitmap.draw_text(-1, 27, 162, 36, damage_string, 1)

          bitmap.draw_text(+1, 27, 162, 36, damage_string, 1)

          bitmap.draw_text(-1, 29, 162, 36, damage_string, 1)

          bitmap.draw_text(+1, 29, 162, 36, damage_string, 1)

          bitmap.font.color.set(255, 255, 255)

          bitmap.draw_text(0, 28, 162, 36, damage_string, 1)

        # Miss 的情况下

        else

          # 显示未击中图画

          bitmap.blt(36, 28, RPG::Cache.picture("Damage"), Rect.new(90, 64, 90, 32))

        end

      end

      # 会心一击标志打开的情况

      if critical

        # 显示会心一击图画
        bitmap.blt(36, 0, RPG::Cache.picture("Damage"), Rect.new(0, 64, 90, 32))

      end

      # 伤害值定位
     
      @_damage_sprite = ::Sprite.new(self.viewport)
      
      case type
      
      when 1
        
      @_damage_sprite.tone = Tone.new(105,0,200,255)  
      
      when 2
        
      @_damage_sprite.tone = Tone.new(0,0,0,0)
      
      end
      
      @_damage_sprite.bitmap = bitmap

      @_damage_sprite.ox = 81

      @_damage_sprite.oy = 20
      
      @_damage_sprite.x = self.x

      @_damage_sprite.y = self.y - self.oy / 2 - 16

      @_damage_sprite.z = 3000

      @_damage_duration = 40

    end

  end

end

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

这个脚本可以加点内容 加入连续打怪时  在一旁显示连招的数值 (就是打下1再打2。。。。停下就没有了)  在有些解迷游戏看过  但脚本 太复杂 我研究不出来    是地图打怪的哦

Lv3.寻梦者

梦石
0
星屑
1140
在线时间
381 小时
注册时间
2010-10-9
帖子
386

开拓者

2
发表于 2011-6-26 16:28:58 | 只看该作者
地图打怪的话,是不是应该吧连击写在攻击判定的地方而不是伤害值显示的地方那额??
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 06:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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