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

Project1

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

[有事请教] 怎麽讓伤害美化数值显示SP损伤

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1237
在线时间
163 小时
注册时间
2019-10-4
帖子
217
跳转到指定楼层
1
发表于 2023-7-9 15:01:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
我覺得就是设置了SP损伤,但是原本这个脚本没有SP损伤的显示。导致出错脚本'Haguruma Damage伤害值美化的129行发生了TypeError.cannot convert nil into String,怎麽在這個傷害美化脚本上添加SP損傷呢?
  1. if self.state?(67)
  2.       # 设置伤害
  3.       self.sp = self.maxsp / 5
  4.       # 分散
  5.       if self.sp.abs > 0
  6.         amp = [self.sp.abs * 15 / 100, 1].max
  7.         self.sp += rand(amp+1) + rand(amp+1) - amp
  8.       end
  9.       end
  10.     # 过程结束
复制代码
  1. # ğÁ›ė֜ΦʼѢ©ӊЭѭӬذª ver0.90

  2. class Scene_Battle
  3.   alias :main_original :main
  4.   def atb_setup
  5.     for path in ["num_n", "num_c", "num_rh"]
  6.       for i in 0..9
  7.         RPG::Cache.numeric(path + i.to_s)
  8.       end
  9.     end
  10.     for path in ["critical", "miss"]
  11.       RPG::Cache.numeric(path)
  12.     end
  13.     main
  14.   end
  15. end

  16. module RPG
  17.   class Sprite < ::Sprite
  18.     def damage(value, critical)
  19.       dispose_damage
  20.       if value.is_a?(Numeric)
  21.         damage_string = value.abs.to_s
  22.       else
  23.         damage_string = value.to_s
  24.       end
  25.       if value.is_a?(Numeric)
  26.         damage_string = value.abs.to_s
  27.       else
  28.         damage_string = value.to_s
  29.       end
  30.       bitmap = Bitmap.new(160, 48)
  31.       if value.is_a?(Numeric)
  32.         if value >= 0
  33.           if critical
  34.             bitmap.draw_numlic(0, 12, 160, 36, value, 1, 1)
  35.           else
  36.             bitmap.draw_numlic(0, 12, 160, 36, value, 0, 1)
  37.           end
  38.         else
  39.           bitmap.draw_numlic(0, 12, 160, 36, value, 2, 1)
  40.         end
  41.       else
  42.         bitmap.draw_numlic(0, 12, 160, 36, value, 3, 1)
  43.       end
  44.       @_damage_sprite = ::Sprite.new
  45.       @_damage_sprite.bitmap = bitmap
  46.       @_damage_sprite.ox = 80 + self.viewport.ox
  47.       @_damage_sprite.oy = 20 + self.viewport.oy
  48.       @_damage_sprite.x = self.x + self.viewport.rect.x
  49.       @_damage_sprite.y = self.y - self.oy / 2 + self.viewport.rect.y
  50.       @_damage_sprite.z = 3000
  51.       @_damage_duration = 40
  52.     end
  53.   end
  54. end

  55. class Bitmap
  56.   def draw_numlic(x, y, width, height, value, element, align = 0)
  57.     if value.is_a?(Numeric)
  58.       value = value.abs
  59.       if value > 0
  60.         log = Math.log10(value).to_i
  61.       else
  62.         log = 0
  63.       end
  64.       filename = "num_"
  65.       case element
  66.       when 0
  67.         filename += "n"
  68.       when 1
  69.         file = RPG::Cache.numeric("critical")
  70.         blt(x + width / 2 - file.rect.width / 2, y - 12, file, file.rect)
  71.         filename += "c"
  72.       when 2
  73.         filename += "rh"
  74.       end
  75.       if align == 1
  76.         x += width / 2 - 13 - 9 * (log)
  77.       end
  78.       while log >= 0
  79.         case value / (10 ** log)
  80.         when 0
  81.           file = RPG::Cache.numeric(filename + "0")
  82.         when 1
  83.           file = RPG::Cache.numeric(filename + "1")
  84.         when 2
  85.           file = RPG::Cache.numeric(filename + "2")
  86.         when 3
  87.           file = RPG::Cache.numeric(filename + "3")
  88.         when 4
  89.           file = RPG::Cache.numeric(filename + "4")
  90.         when 5
  91.           file = RPG::Cache.numeric(filename + "5")
  92.         when 6
  93.           file = RPG::Cache.numeric(filename + "6")
  94.         when 7
  95.           file = RPG::Cache.numeric(filename + "7")
  96.         when 8
  97.           file = RPG::Cache.numeric(filename + "8")
  98.         when 9
  99.           file = RPG::Cache.numeric(filename + "9")
  100.         end
  101.         blt(x, y, file, file.rect)
  102.         x += 18
  103.         value %= 10 ** log
  104.         log -= 1
  105.       end
  106.     else
  107.       case value
  108.       when ""
  109.         return
  110.       when "Miss"
  111.         file = RPG::Cache.numeric("miss")
  112.       else
  113.         file = RPG::Cache.numeric(value)
  114.       end
  115.       if align == 1
  116.         x += width / 2 - file.rect.width / 2
  117.       end
  118.       blt(x, y, file, file.rect)
  119.     end
  120.   end
  121. end

  122. module RPG
  123.   module Cache
  124.     def self.numeric(filename)
  125.       self.load_bitmap("Graphics/String/", filename)
  126.     end
  127.   end
复制代码
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-5-3 05:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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