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

Project1

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

[有事请教] 用状态法制作的持续回复SP状态没法显示回复SP的具体数值

[复制链接]

Lv2.观梦者

梦石
0
星屑
288
在线时间
51 小时
注册时间
2025-5-5
帖子
9
跳转到指定楼层
1
发表于 昨天 03:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 YAOHUAN 于 2025-7-7 03:51 编辑

如题,用的是RTAB豪华版0.17b版本,脚本用的是伤害值美化系统整合SP版,按照论坛里的做法自己修改了RTAB里持续伤害的定义
可以做出持续回复SP的状态,但不会显示回复SP的数值,只会显示0,但SP确实回复了,就是不显示
试过去搜索找办法,可不是冲突就是办法残缺没有具体做法导致无法实现
走投无路了才发帖请求帮助的
附几张图片




第四张是实际测试的效果,那个带有sp回复状态的角色他是每回合恢复固定SP的
但是恢复的数字显示却是0,而且还是HP的伤害数字显示(sp回复那个状态的ID是97号,第一张图片脚本里的97号ID注释我还没改,所以注释上的内容是玄凝诀2,但实际的状态名是sp回复)
(哦对了,第三张图片那个HP数字显示的名字设置里本来是大写的,但是实际名字却是小写
但他的定义还是大写,所以伤害值美化系统脚本里的图片选取是没任何问题的)

Lv5.捕梦者

梦石
0
星屑
39848
在线时间
5779 小时
注册时间
2006-11-10
帖子
6661
2
发表于 昨天 09:40 | 只看该作者
关键在你第二张图那个 sp_damage 的判断上,  因为你没截图出来, 自己去检查"制作SP伤害"时, 这个判断是否准确
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
288
在线时间
51 小时
注册时间
2025-5-5
帖子
9
3
 楼主| 发表于 昨天 16:43 | 只看该作者
灯笼菜刀王 发表于 2025-7-7 09:40
关键在你第二张图那个 sp_damage 的判断上,  因为你没截图出来, 自己去检查"制作SP伤害"时, 这个判断是否准 ...

好的,我去看看
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
288
在线时间
51 小时
注册时间
2025-5-5
帖子
9
4
 楼主| 发表于 昨天 22:53 | 只看该作者
灯笼菜刀王 发表于 2025-7-7 09:40
关键在你第二张图那个 sp_damage 的判断上,  因为你没截图出来, 自己去检查"制作SP伤害"时, 这个判断是否准 ...

RUBY 代码复制
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #==============================================================================
  4.  
  5.  
  6. # ============================================================================
  7. # 伤害效果美化 v1.0 by SailCat
  8. # ============================================================================
  9. # 脚本使用说明:
  10. # 1.使用时需要将Damage.png复制到你的游戏的Graphics/Pictures目录下
  11. # 2.Damage.png文件的格式:
  12. #   大小为180 x 96
  13. #   (0, 0) - (179, 31)为伤害值的数字表,其中每个数字宽18,高32
  14. #   (0, 32) - (179, 63)为回复值(伤害负值)的数字表,其中每个数字宽18,高32
  15. #   (0, 64) - (89, 95)为会心一击标记的图画,长宽为90 x 32
  16. #   (90, 64) - (179, 95)为未命中标记的图画,长宽为90 x 32
  17. # ============================================================================
  18. module RPG
  19.   class Sprite < ::Sprite
  20.     #--------------------------------------------------------------------------
  21.     # ● 伤害值描画
  22.     #--------------------------------------------------------------------------
  23.     def damage(value, critical, sp_damage = false)
  24.       @_animation_duration = 5
  25.      # 释放伤害
  26.       dispose_damage
  27.       # 如果伤害值是数值
  28.       if value.is_a?(Numeric)
  29.         # 绝对值转为字符串
  30.         damage_string = value.abs.to_s
  31.       else
  32.         # 转为字符串
  33.         damage_string = value.to_s
  34.       end
  35.       # 初始化位图
  36.       bitmap = Bitmap.new(162, 64)
  37.       bitmap.font.name = "Arial Black"
  38.       bitmap.font.size = 32
  39.       # 伤害值是数值的情况下
  40.       if value.is_a?(Numeric)
  41.         # 分割伤害值字符串
  42.         damage_array = damage_string.scan(/./)
  43.         damage_x = 81 - damage_string.size * 9
  44.         # 伤害值为负的情况下
  45.         if value < 0
  46.           # 调用回复数字表
  47.           rect_y = 32
  48.         else
  49.           # 调用伤害数字表
  50.           rect_y = 0
  51.         end
  52.         # 循环伤害值字符串
  53.        for char in damage_array
  54.          number = char.to_i
  55.           # 显示伤害数字
  56.        if sp_damage
  57.          bitmap.blt(damage_x, 32, RPG::Cache.picture("Damagesp"),
  58.          Rect.new(number * 18, rect_y, 18, 32))
  59.          damage_x += 18
  60.       else
  61.          bitmap.blt(damage_x, 32, RPG::Cache.picture("Damage"),
  62.          Rect.new(number * 18, rect_y, 18, 32))
  63.          damage_x += 18
  64.       end
  65. end
  66.       # 伤害值不是数值的情况
  67.       else
  68.         # 如果伤害值不是 Miss
  69.         unless value == "Miss"
  70.           # 系统默认描画字符串
  71.           bitmap.font.color.set(0, 0, 0)
  72.           bitmap.draw_text(-1, 27, 162, 36, damage_string, 1)
  73.           bitmap.draw_text(+1, 27, 162, 36, damage_string, 1)
  74.           bitmap.draw_text(-1, 29, 162, 36, damage_string, 1)
  75.           bitmap.draw_text(+1, 29, 162, 36, damage_string, 1)
  76.           bitmap.font.color.set(255, 255, 255)
  77.           bitmap.draw_text(0, 28, 162, 36, damage_string, 1)
  78.         # Miss 的情况下
  79.         else
  80.           # 显示未击中图画
  81.           bitmap.blt(36, 28, RPG::Cache.picture("Damage"), Rect.new(90, 64, 90, 32))
  82.         end
  83.       end
  84.       # 会心一击标志打开的情况
  85.       if critical
  86.         # 显示会心一击图画
  87.         bitmap.blt(36, 0, RPG::Cache.picture("Damage"), Rect.new(0, 64, 90, 32))
  88.       end
  89.       # 伤害值定位
  90.       @_damage_sprite = ::Sprite.new(self.viewport)
  91.       @_damage_sprite.bitmap = bitmap
  92.       @_damage_sprite.ox = 81
  93.       @_damage_sprite.oy = 20
  94.       @_damage_sprite.x = self.x
  95.       @_damage_sprite.y = self.y - self.oy / 2
  96.       @_damage_sprite.z = 3000
  97.       @_damage_duration = 40
  98.     end
  99.   end
  100. end
  101. #==============================================================================
  102. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  103. #=============================================================================

额,我找了半天,不知道哪个是制作SP伤害的判断,所以我还是直接发代码框吧(这些代码是伤害值美化系统整合SP版的,没有私自做过改动)
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39848
在线时间
5779 小时
注册时间
2006-11-10
帖子
6661
5
发表于 5 小时前 | 只看该作者
YAOHUAN 发表于 2025-7-7 22:53
#==============================================================================
# 本脚本来自www.66 ...

sp_damage 是传递过来的参数,  那你要搜索  "damage("  这个关键词(半边括号不能少) , 然后在需要做成SP伤害显示的地方, 把第三个参数填 true
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
288
在线时间
51 小时
注册时间
2025-5-5
帖子
9
6
 楼主| 发表于 16 分钟前 | 只看该作者
灯笼菜刀王 发表于 2025-7-8 10:56
sp_damage 是传递过来的参数,  那你要搜索  "damage("  这个关键词(半边括号不能少) , 然后在需要做成SP ...

好的,明白了,我去试试看
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-8 16:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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