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

Project1

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

[已经过期] 求教于Scene_Battle4中状态效果问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2012-1-25
帖子
5
跳转到指定楼层
1
发表于 2012-4-4 10:11:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 宁静致远p 于 2012-4-4 15:25 编辑

小生是个脚本菜鸟,请各位老鸟不要见笑。
我是想在Scene_Battle4中添加一个效果:中了@active_battler.state?(38)   角色中了38号状态时每回合敌人损失100HP的血,开始的时候我是这样写的(在连续伤害后面添加)
      if@active_battler.hp > 0 and @active_battler.state?(38)      
     if@active_battler.state?(27)
     elsif @active_battler.animation_id = 96             # 显示96画
     @attr_accessor.hp-= 100 # 减少100HP
     @attr_accessor.sp-=100# 减少100精神
     @attr_accessor.damage = "红色剑灵低极效果" # 设置伤害文字为"红色剑灵低极效果"
     @attr_accessor.damage_pop = true             # 将伤害显示在屏幕上
  end
end
可是脚本出错,希望各位能帮助一下,谢谢
最好是可以显示出伤害,这里我用了伤害值美化脚本
  1. module RPG
  2.   class Sprite < ::Sprite
  3.     #--------------------------------------------------------------------------
  4.     # ● 伤害值描画
  5.     #--------------------------------------------------------------------------
  6.     def damage(value, critical)
  7.       # 释放伤害
  8.       dispose_damage
  9.       # 如果伤害值是数值
  10.       if value.is_a?(Numeric)
  11.         # 绝对值转为字符串
  12.         damage_string = value.abs.to_s
  13.       else
  14.         # 转为字符串
  15.         damage_string = value.to_s
  16.       end
  17.       # 初始化位图
  18.       bitmap = Bitmap.new(162, 64)
  19.       bitmap.font.name = "华文行楷" #Arial Black
  20.       bitmap.font.size = 32
  21.       # 伤害值是数值的情况下
  22.       if value.is_a?(Numeric)
  23.         # 分割伤害值字符串
  24.         damage_array = damage_string.scan(/./)
  25.         damage_x = 81 - damage_string.size * 9
  26.         # 伤害值为负的情况下
  27.         if value < 0
  28.           # 调用回复数字表
  29.           rect_y = 32
  30.         else
  31.           # 调用伤害数字表
  32.           rect_y = 0
  33.         end
  34.         # 循环伤害值字符串
  35.         for char in damage_array
  36.           number = char.to_i
  37.           # 显示伤害数字
  38.           bitmap.blt(damage_x, 32, RPG::Cache.picture("Damage"),
  39.             Rect.new(number * 18, rect_y, 18, 32))
  40.           # 后移一位
  41.           damage_x += 18
  42.         end
  43.       # 伤害值不是数值的情况
  44.       else
  45.         # 如果伤害值不是 Miss
  46.         unless value == "Miss"
  47.           # 系统默认描画字符串
  48.           bitmap.font.color.set(0, 0, 0)
  49.           bitmap.draw_text(-1, 27, 162, 36, damage_string, 1)
  50.           bitmap.draw_text(+1, 27, 162, 36, damage_string, 1)
  51.           bitmap.draw_text(-1, 29, 162, 36, damage_string, 1)
  52.           bitmap.draw_text(+1, 29, 162, 36, damage_string, 1)
  53.           bitmap.font.color.set(255, 255, 255)
  54.           bitmap.draw_text(0, 28, 162, 36, damage_string, 1)
  55.         # Miss 的情况下
  56.         else
  57.           # 显示未击中图画
  58.           bitmap.blt(36, 28, RPG::Cache.picture("Damage"), Rect.new(90, 64, 90, 32))
  59.         end
  60.       end
  61.       # 会心一击标志打开的情况
  62.       if critical
  63.         # 显示会心一击图画
  64.         bitmap.blt(36, 0, RPG::Cache.picture("Damage"), Rect.new(0, 64, 90, 32))
  65.       end
  66.       # 伤害值定位
  67.       @_damage_sprite = ::Sprite.new(self.viewport)
  68.       @_damage_sprite.bitmap = bitmap
  69.       @_damage_sprite.ox = 81
  70.       @_damage_sprite.oy = 20
  71.       @_damage_sprite.x = self.x
  72.       @_damage_sprite.y = self.y - self.oy / 2
  73.       @_damage_sprite.z = 3000
  74.       @_damage_duration = 40
  75.     end
  76.   end
  77. end
复制代码
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-9-22 02:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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