Project1

标题: 每回合自動回復SP的字體 [打印本页]

作者: mmm999xp    时间: 2016-10-1 22:13
标题: 每回合自動回復SP的字體
我是用RTAB战斗脚本,然后在RTAB脚本中弄了每回合自动回复SP,但是,战斗中有自动回复SP,但是显示出来的字体却是绿色的,照理说应该要是蓝色的(回复SP的那种颜色),有什么办法,可以把回复的字体从绿色改成蓝色 (要讓18號狀態會每回合回復25%的SP)

回寫.png (531 KB, 下载次数: 18)

顯示的字體是綠色的

顯示的字體是綠色的

腳本.png (200.02 KB, 下载次数: 20)

腳本.png

作者: 2357691704    时间: 2016-10-2 08:56
这不关你这个RTAB战斗系统脚本的事,请修改伤害美化脚本中回复sp的颜色(要特定状态颜色不同还需条件分支)。
作者: yang1zhi    时间: 2016-10-2 09:46
这应该是用图片显示的
你找到游戏目录下,这个伤害的图片
把颜色改一下
作者: mmm999xp    时间: 2016-10-2 11:43
谢谢各位解答,但是我想了很久却不知道该如何添加,我的伤害字体图片是如下图,RTAB伤害美化的脚本,怕乱改会出错...






RUBY 代码复制
  1. # ダメージ表示改造(RTAB用) ver 1.02
  2. # 配布元・サポートURL
  3. # [url]http://members.jcom.home.ne.jp/cogwheel/[/url]
  4.  
  5. class Scene_Battle
  6.   alias :atb_setup_original :atb_setup
  7.   def atb_setup
  8.     for path in ["num", "critical", "miss", "levelup", "newskill", "learning"]
  9.       RPG::Cache.numeric(path)
  10.     end
  11.     atb_setup_original
  12.   end
  13. end
  14.  
  15. module RPG
  16.   class Sprite < ::Sprite
  17.     WIDTH = 18                  # 文字幅
  18.     HEIGHT = 20                 # クリティカルの文字・高さ
  19.     def damage(value, critical, type = 0)
  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) and value >= 0
  26.         if type == 0
  27.           if critical
  28.             d_bitmap = draw_damage(value, 1)
  29.           else
  30.             d_bitmap = draw_damage(value, 0)
  31.           end
  32.         else
  33.           d_bitmap = draw_damage(value, 2)
  34.         end
  35.       else
  36.         if type == 0
  37.           d_bitmap = draw_damage(value, 3)
  38.         else
  39.           d_bitmap = draw_damage(value, 4)
  40.         end
  41.       end
  42.       if type == 2
  43.         d_bitmap = draw_damage(value, 5)
  44.       end
  45.       num = @_damage.size
  46.       if type != 2
  47.         @_damage.push([::Sprite.new, 40, 0, rand(40) - 20, rand(30) + 50])
  48.       else
  49.         @_damage.push([::Sprite.new, 40, 0, rand(20) - 10, rand(20) + 60])
  50.       end
  51.       @_damage[num][0].bitmap = d_bitmap
  52.       @_damage[num][0].ox = d_bitmap.width / 2
  53.       @_damage[num][0].oy = d_bitmap.height / 2
  54.       if self.battler.is_a?(Game_Actor)
  55.         @_damage[num][0].x = self.x + self.viewport.ox
  56.         @_damage[num][0].y = self.y - self.oy / 2
  57.       else
  58.         @_damage[num][0].x = self.x + self.viewport.rect.x -
  59.                             self.ox + self.src_rect.width / 2
  60.         @_damage[num][0].y = self.y - self.oy * self.zoom_y / 2 +
  61.                             self.viewport.rect.y
  62.         @_damage[num][0].zoom_x = self.zoom_x
  63.         @_damage[num][0].zoom_y = self.zoom_y
  64.         @_damage[num][0].z = 3000
  65.       end
  66.     end
  67.     def draw_damage(value, element)
  68.       width = 0
  69.       if value.is_a?(Numeric)
  70.         value = value.abs
  71.         fig = value.to_s.size - 1
  72.         file = RPG::Cache.numeric("num")
  73.         d_width = WIDTH * fig + file.rect.width / 10
  74.         if element == 1
  75.           critical = RPG::Cache.numeric("critical")
  76.           d_width = [d_width, critical.rect.width].max
  77.           d_bitmap = Bitmap.new(d_width+36, HEIGHT + file.rect.height / 5)
  78.           d_x = 0#(width - critical.rect.width / 10) / 2
  79.           d_bitmap.blt(d_x+fig*(fig/1.6), 0, critical, critical.rect)
  80.          # 会心一击表现效果强化
  81.           Audio.se_play("Audio/SE/"+"Clip10",100,100)
  82.       $game_screen.start_flash(Color.new(255,255,255),10)
  83.        $game_screen.start_shake(3,9,10)
  84.         else
  85.           d_bitmap = Bitmap.new(d_width, HEIGHT + file.rect.height / 5)
  86.         end
  87.         d_x = ((d_width) - (WIDTH * fig + file.rect.width / 10)) / 2
  88.         while fig >= 0
  89.           d_bitmap.blt(d_x, HEIGHT, file, Rect.new((value / (10 ** fig)) *
  90.             file.rect.width / 10, element * file.rect.height / 5,
  91.             file.rect.width / 10, file.rect.height / 5))
  92.           d_x += WIDTH
  93.           value %= 10 ** fig
  94.           fig -= 1
  95.         end
  96.       else
  97.         case value
  98.         when "Miss"
  99.           file = RPG::Cache.numeric("miss")
  100.         when "Level up!"
  101.           file = RPG::Cache.numeric("levelup")
  102.         when "New Skill!"
  103.           file = RPG::Cache.numeric("newskill")
  104.         when "Learning!"
  105.           file = RPG::Cache.numeric("learning")
  106.         else
  107.           return Bitmap.new(1, 1)
  108.         end
  109.         d_bitmap = file
  110.       end
  111.       return d_bitmap
  112.     end
  113.   end
  114.   module Cache
  115.     def self.numeric(filename)
  116.       self.load_bitmap("Graphics/String/", filename)
  117.     end
  118.   end
  119. end

num.png (30.82 KB, 下载次数: 22)

希望是在最下面那個藍色字體

希望是在最下面那個藍色字體

作者: yang1zhi    时间: 2016-10-2 22:01
你上面那个图片上,伤害是绿色。
那么也就是说是采取了第四行,绿色。
所以你只要把第四行颜色改掉。


你可以把绿色和蓝色的换一下位置,尺寸不要变
作者: 夜狠简单    时间: 2016-10-3 00:10
本帖最后由 夜狠简单 于 2016-10-5 22:21 编辑
放到RTAB伤害之后


把18号状态连续伤害 取消
效果图


摘自方法来源:问一下RTAB能不能做每回合回复MP
https://rpg.blue/forum.php?mod=viewthread&tid=76320
(出处: 66RPG)

作者: mmm999xp    时间: 2016-10-3 00:32
yang1zhi 发表于 2016-10-2 22:01
你上面那个图片上,伤害是绿色。
那么也就是说是采取了第四行,绿色。
所以你只要把第四行颜色改掉。

如果是每回合自动回HP,显示的字是绿色的,但是我用的是每回合自动回复SP,但系统也是显示绿色的,照理说回复SP的字体颜色应该要是蓝色才对,我使用物品回复SP,也都是显示蓝色的字体,惟独使用”每回合自动回复SP" 他却是显示绿色的字体
作者: mmm999xp    时间: 2016-10-5 19:55
yang1zhi 发表于 2016-10-2 22:01
你上面那个图片上,伤害是绿色。
那么也就是说是采取了第四行,绿色。
所以你只要把第四行颜色改掉。

我是个脚本盲...具体而言该怎么改好,怕自己乱改会改出冲突来......麻烦yang1zhi大师教一下
作者: soulsaga    时间: 2016-10-5 21:10
脚本里搜这张伤害数字图像的文件名字应该可以找到相关的位置..




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