Project1

标题: 请教~~~伤害文字显示颜色问题。 [打印本页]

作者: 灯笼菜刀王    时间: 2008-6-20 05:47
标题: 请教~~~伤害文字显示颜色问题。
修改了下毒的效果。

def slip_damage_effect
    # 设置伤害
    self.damage = self.maxhp / 10
    # 分散
    if self.damage.abs > 0
      amp = [self.damage.abs * 15 / 100, 1].max
      self.damage += rand(amp+1) + rand(amp+1) - amp
    end
    # HP 的伤害减法运算
    if self.state?(48)  #再生
       self.hp += self.damage
     else
       self.hp -= self.damage
    end
    # 过程结束
    return true
  end

改成了自动回血效果,但是,显示的还是白色的数字,请问如何让它变绿色的?

顺便,再问一下,在脚本中如何给角色添加状态? [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: dbshy    时间: 2008-6-20 05:55
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 = "Arial Black"
      bitmap.font.size = 32
      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(176, 255, 144)
      else
        bitmap.font.color.set(255, 255, 255)
      end
      bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
end
end

加个if改一下 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 灯笼菜刀王    时间: 2008-6-20 06:05
@ @ 看不太懂~~~~~

要在哪里添加if?

if value.is_a?(Numeric) and value < 0
       bitmap.font.color.set(176, 255, 144)
     else
      ↓ 塞这里??
        bitmap.font.color.set(255, 255, 255)
     end

要加if什么?self.state?self.damage?

还有,这段脚本是在哪里?外挂的?


作者: dbshy    时间: 2008-6-20 06:18
加个变量判断一下就行了
作者: 灯笼菜刀王    时间: 2008-6-20 06:33
@ @

在这里加入一个变量
if value.is_a?(Numeric) and value < 0
      bitmap.font.color.set(176, 255, 144)
    elsif $game_variables[45] = 1
      bitmap.font.color.set(176, 255, 144)
    else
      bitmap.font.color.set(255, 255, 255)
    end
然后用事件打开,把上面整段加入到main前面。运行出错- -,这个脚本到底是那里的?为什么我搜索不到它,而外挂脚本也不行。

拜托- -,多打几个字,20个字以上。

作者: link006007    时间: 2008-6-20 06:36
按 F1 搜索 sprite
找到 RPG::Sprite

另 elsif $game_variables[45] == 1
[LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 灯笼菜刀王    时间: 2008-6-20 06:47
- -~~

谢谢楼上的提醒~~~~

颜色是变了...不过新的问题又来了- -,这样全部都变绿色~~看来还要重新定义...
作者: link006007    时间: 2008-6-20 06:48
应该是你的那个 elsif $game_variables[45] = 1错了  
应该elsif $game_variables[45] == 1


作者: 灯笼菜刀王    时间: 2008-6-20 06:59
是,我写错了,=是代入,==才是相等,我测试的时候是用==

只是,这样一改,只要45号变量还是1的时候,所有的伤害都是绿色~...

--------分割线-----------------

修改成功,再生的时候让变量为1,然后显示伤害完改回0就OK了,谢谢两位




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