Project1

标题: 如何定义伤害的颜色呢 [打印本页]

作者: 兔毛鹿    时间: 2008-12-23 00:21
标题: 如何定义伤害的颜色呢
我在Scene_Battle 4 的刷新画面 (主回合步骤 5 : 显示伤害) 下面添加以下脚本,效果为当角色的武器带有80号属性,吸取敌人数量为伤害值20%的SP,我希望角色吸收到敌人的SP伤害数字显示为蓝色,脚本应该怎么修改呢?



    if (wqpd(80) and @active_battler.current_action.basic == 0 and @active_battler.current_action.kind == 0)   
       @active_battler.animation_id = 98
       for target in @target_battlers
       if target.damage != nil and target.damage != "Miss"
       @active_battler.sp += (target.damage*0.2).to_i
       @active_battler.damage = 0 - (target.damage*0.2).to_i
       @active_battler.damage_pop = true   
       end
       end [LINE]1,#dddddd[/LINE]此贴于 2008-12-25 11:58:59 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]本贴由论坛斑竹redant结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^
作者: 兔毛鹿    时间: 2008-12-24 04:20

作者: dbshy    时间: 2008-12-24 19:46
并不是在Scene_Battle中
应该是在这改
RPG::Sprite damage
作者: 兔毛鹿    时间: 2008-12-24 20:04
我用了下面这个脚本,但是想把描写critical的彩色部分更换成SP的吸收,效果为:if sp_absorb ,敌人伤害除了数字显示掉血之外还有"SP吸收"的显示,同时攻击者身上显示蓝色的SP吸收数字,应该在哪里定义这个 sp_absorb 呢?

module RPG
  class Sprite < ::Sprite
    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(160, 48)
      bitmap.font.name = "黑体"
      bitmap.font.size = 28
      bitmap.font.color.set(0, 0, 0)
      bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
      bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
      bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
      bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
      if value.is_a?(Numeric) and value < 0
        bitmap.font.color.set(255, 255, 255)
      else
        bitmap.font.color.set(255, 0, 0)
      end
      bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
      if critical
        bitmap.font.size = 28
        bitmap.font.color.set(0, 0, 0)
        bitmap.draw_text(-1, -1, 160, 20, "超重击", 1)
        bitmap.draw_text(+1, -1, 160, 20, "超重击", 1)
        bitmap.draw_text(-1, +1, 160, 20, "超重击", 1)
        bitmap.draw_text(+1, +1, 160, 20, "超重击", 1)
        bitmap.font.color.set(255, 255, 255)
        bitmap.draw_text(0, 0, 160, 20, "超重击", 1)
      end

      @_damage_sprite = ::Sprite.new(self.viewport)
      @_damage_sprite.bitmap = bitmap
      @_damage_sprite.ox = 80
      @_damage_sprite.oy = 20
      @_damage_sprite.x = self.x
      @_damage_sprite.y = self.y - self.oy / 2
      @_damage_sprite.z = 3000
      @_damage_duration = 40   
    end
  end
end
作者: dbshy    时间: 2008-12-24 20:14
= =呃,好久没动RGSS,都忘记了,不好意思,好像不在damage中

等高手吧




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1