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

Project1

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

[已经过期] VX显伤害脚本没效果

[复制链接]

Lv1.梦旅人

梦石
0
星屑
195
在线时间
2 小时
注册时间
2011-10-15
帖子
2
跳转到指定楼层
1
发表于 2011-11-2 09:45:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
#伤害值美化脚本  Beside--------------------------------------------------------
#66RPG 转载请保留此信息--------------------------------------------------------
class Game_Battler
  attr_accessor   :hp_damage
  attr_accessor   :mp_damage
  attr_accessor   :damage_pop
  attr_accessor   :critical
  alias ini initialize
  def initialize
    ini
    @damage_pop = false
  end
end

class Sprite_Base
  def initialize(viewport = nil)
    super(viewport)
    @use_sprite = true          # 活动块使用的标志
    @animation_duration = 0     # 动画剩余时间
    @_damage_duration = 0
  end
   def update
    super
    if @animation != nil
      @animation_duration -= 1
      if @animation_duration % 4 == 0
        update_animation
      end
    end
    @@animations.clear
     if @_damage_duration > 0
        @_damage_duration -= 1
        case @_damage_duration
        when 38..39
          @_damage_sprite.y -= 4
        when 36..37
          @_damage_sprite.y -= 2
        when 34..35
          @_damage_sprite.y += 2
        when 28..33
          @_damage_sprite.y += 4
        end
        @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32
        if @_damage_duration == 0
          dispose_damage
        end
      end
  end
  def damage(value, critical)
      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 = 23
      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, Cache.picture("Damage1"), Rect.new(number * 18, rect_y, 18, 32))
          damage_x += 18                         # 后移一位
        end
      else
        if value == "Evaded"  
          bitmap.blt(36, 28, Cache.picture("Damage1"), Rect.new(0, 96, 84, 32))
        else
          # 显示未击中图画
          bitmap.blt(36, 28, Cache.picture("Damage1"), Rect.new(90, 64, 90, 32))
        end
      end
      if critical                                # 会心一击标志打开的情况
        # 显示会心一击图画
        bitmap.blt(36, 0, Cache.picture("Damage1"), Rect.new(0, 64, 90, 32))
      end
      # 伤害值定位
      @_damage_sprite = Sprite_Base.new(self.viewport)
      @_damage_sprite.bitmap = bitmap
      @_damage_sprite.ox = 81
      @_damage_sprite.oy = 20
      @_damage_sprite.x = self.x
      @_damage_sprite.y = self.y - self.oy
      @_damage_sprite.z = 3000
      @_damage_duration = 40
    end
  def dispose_damage
    if @_damage_sprite != nil
      @_damage_sprite.bitmap.dispose
      @_damage_sprite.dispose
      @_damage_sprite = nil
      @_damage_duration = 0
    end
  end
end

class Sprite_Battler
  alias setup_new_effect_66RPG setup_new_effect
  def setup_new_effect
    setup_new_effect_66RPG
      if @battler.damage_pop
      if @battler.hp_damage != 0 and  @battler.hp_damage != nil
      damage(@battler.hp_damage, @battler.critical)
      end
      if @battler.mp_damage != 0 and  @battler.mp_damage != nil
      damage(@battler.mp_damage, @battler.critical)
      end
      if @battler.missed
      damage("Miss", @battler.critical)
      end
      if @battler.evaded
      damage("Evaded", @battler.critical)
      end
      @battler.damage_pop = false
      end
  end
end

class Scene_Battle
    def display_action_effects(target, obj = nil)
    unless target.skipped
      line_number = @message_window.line_number
      wait(10)
      target.damage_pop = true if target.is_a?(Game_Enemy)              
      display_critical(target, obj)
      display_damage(target, obj)
      display_state_changes(target, obj)
      @status_window.refresh
      if line_number == @message_window.line_number
        display_failure(target, obj) unless target.states_active?
      end
      if line_number != @message_window.line_number
        wait(30)
      end
      @message_window.back_to(line_number)
    end
  end
end


脚本是用的这个.可是完全没有效果.求助....

点评

把图片也发上来吧,如果没有的话回去找些这个脚本的人  发表于 2011-11-2 23:51

Lv1.梦旅人

梦石
0
星屑
50
在线时间
134 小时
注册时间
2009-3-29
帖子
470
2
发表于 2011-11-2 23:49:12 | 只看该作者
bitmap.blt(damage_x, 32, Cache.picture("Damage1"), Rect.new(number * 18, rect_y, 18, 32))

这个名叫Damage1的图片在哪呢?
黑之结界勇士
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
195
在线时间
2 小时
注册时间
2011-10-15
帖子
2
3
 楼主| 发表于 2011-11-4 09:43:35 | 只看该作者
本帖最后由 DARK萌萌 于 2011-11-4 09:48 编辑

额.在这.请看一下.


DARK萌萌于2011-11-4 09:48补充以下内容:
还有就是.我重新建立一个新的工程.把脚本拷进去.图片也加上还是同样无效果.所以应该不是脚本冲突啥的.

damage1.png (20.75 KB, 下载次数: 57)

damage1.png
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
354
在线时间
1036 小时
注册时间
2011-5-19
帖子
2098
4
发表于 2011-11-4 14:42:20 | 只看该作者
原楼主说过:
#将此图改名为damage1另存到游戏目录/Graphics/Pictures

楼主不知有没有放错地方了。
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 08:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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