Project1
标题:
XP扣血数字不显示的问题
[打印本页]
作者:
时空守恒
时间:
2011-2-2 17:51
标题:
XP扣血数字不显示的问题
本帖最后由 IamI 于 2011-2-2 18:32 编辑
我想问问,原本的XP的战斗画面上会显示扣血的数字吗?我这边不能显示,怎么办?谢谢
作者:
忧雪の伤
时间:
2011-2-2 17:52
1、标题速度修改
2、请说明,你有没有改脚本
作者:
火星大人
时间:
2011-2-2 17:55
下载Arial字体
作者:
时空守恒
时间:
2011-2-2 18:19
回复
火星大人
的帖子
不是诶,我有那个字体啊。。。。:dizzy:
时空守恒于2011-2-2 18:20补充以下内容:
我没改脚本。。。。标题速度修改?不知道。。。
作者:
忧雪の伤
时间:
2011-2-2 18:29
本帖最后由 忧雪の伤 于 2011-2-2 18:38 编辑
没改脚本,有这个字体也显示不了?你确定你没改脚本。
#==============================================================================
# ■ Sprite_Battler
#------------------------------------------------------------------------------
# 战斗显示用活动块。Game_Battler 类的实例监视、
# 活动块的状态的监视。
#==============================================================================
class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :battler # 战斗者
#--------------------------------------------------------------------------
# ● 初始化对像
# viewport : 显示端口
# battler : 战斗者 (Game_Battler)
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
def dispose
if self.bitmap != nil
self.bitmap.dispose
end
super
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
super
# 战斗者为 nil 的情况下
if @battler == nil
self.bitmap = nil
loop_animation(nil)
return
end
# 文件名和色相与当前情况有差异的情况下
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# 获取、设置位图
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
# 如果是战斗不能或者是隐藏状态就把透明度设置成 0
if @battler.dead? or @battler.hidden
self.opacity = 0
end
end
# 动画 ID 与当前的情况有差异的情况下
if @battler.damage == nil and
@battler.state_animation_id != @state_animation_id
@state_animation_id = @battler.state_animation_id
loop_animation($data_animations[@state_animation_id])
end
# 应该被显示的角色的情况下
if @battler.is_a?(Game_Actor) and @battler_visible
# 不是主状态的时候稍稍降低点透明度
if $game_temp.battle_main_phase
self.opacity += 3 if self.opacity < 255
else
self.opacity -= 3 if self.opacity > 207
end
end
# 明灭
if @battler.blink
blink_on
else
blink_off
end
# 不可见的情况下
unless @battler_visible
# 出现
if not @battler.hidden and not @battler.dead? and
(@battler.damage == nil or @battler.damage_pop)
appear
@battler_visible = true
end
end
# 可见的情况下
if @battler_visible
# 逃跑
if @battler.hidden
$game_system.se_play($data_system.escape_se)
escape
@battler_visible = false
end
# 白色闪烁
if @battler.white_flash
whiten
@battler.white_flash = false
end
# 动画
if @battler.animation_id != 0
animation = $data_animations[@battler.animation_id]
animation(animation, @battler.animation_hit)
@battler.animation_id = 0
end
# 伤害
if @battler.damage_pop
damage(@battler.damage, @battler.critical)
@battler.damage = nil
@battler.critical = false
@battler.damage_pop = false
end
# korapusu
if @battler.damage == nil and @battler.dead?
if @battler.is_a?(Game_Enemy)
$game_system.se_play($data_system.enemy_collapse_se)
else
$game_system.se_play($data_system.actor_collapse_se)
end
collapse
@battler_visible = false
end
end
# 设置活动块的坐标
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = @battler.screen_z
end
end
复制代码
你重新覆盖这个脚本试试
如果不行,那就是下面出现的出现了问题(或者其他,先试试)
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)
if critical
bitmap.font.size = 20
bitmap.font.color.set(0, 0, 0)
bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
bitmap.font.color.set(255, 255, 255)
bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 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
复制代码
测试完毕……工程问题……用了也不卡
作者:
时空守恒
时间:
2011-2-2 19:33
回复
忧雪の伤
的帖子
谢谢帮我改标题:D
时空守恒于2011-2-2 19:34补充以下内容:
那个第二个代码怎么覆盖,覆盖在哪里?
时空守恒于2011-2-2 20:01补充以下内容:
第一个代码覆盖了没用,第二个代码怎么用?
作者:
忧雪の伤
时间:
2011-2-2 20:12
插入一个新的,MAIN之前
作者:
时空守恒
时间:
2011-2-2 20:44
回复
忧雪の伤
的帖子
不行啊。。。这下完了
作者:
忧雪の伤
时间:
2011-2-2 20:58
脚本
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
# ============================================================================
# 伤害效果美化 v1.0 by SailCat
# ============================================================================
# 脚本使用说明:
# 1.使用时需要将Damage.png复制到你的游戏的Graphics/Pictures目录下
# 2.Damage.png文件的格式:
# 大小为180 x 96
# (0, 0) - (179, 31)为伤害值的数字表,其中每个数字宽18,高32
# (0, 32) - (179, 63)为回复值(伤害负值)的数字表,其中每个数字宽18,高32
# (0, 64) - (89, 95)为会心一击标记的图画,长宽为90 x 32
# (90, 64) - (179, 95)为未命中标记的图画,长宽为90 x 32
# ============================================================================
module RPG
class Sprite < ::Sprite
#--------------------------------------------------------------------------
# ● 伤害值描画
#--------------------------------------------------------------------------
def damage(value, critical, sp_damage = false)
# 释放伤害
dispose_damage
# 如果伤害值是数值
if value.is_a?(Numeric)
# 绝对值转为字符串
damage_string = value.abs.to_s
else
# 转为字符串
damage_string = value.to_s
end
# 初始化位图
bitmap = Bitmap.new(162, 64)
bitmap.font.name = "Arial Black"
bitmap.font.size = 32
# 伤害值是数值的情况下
if value.is_a?(Numeric)
# 分割伤害值字符串
damage_array = damage_string.scan(/./)
damage_x = 81 - damage_string.size * 9
# 伤害值为负的情况下
if value < 0
# 调用回复数字表
rect_y = 32
else
# 调用伤害数字表
rect_y = 0
end
# 循环伤害值字符串
for char in damage_array
number = char.to_i
# 显示伤害数字
if sp_damage
bitmap.blt(damage_x, 32, Bitmap.new("Graphics/Damages/Damagesp"),
Rect.new(number * 18, rect_y, 18, 32))
damage_x += 18
else
bitmap.blt(damage_x, 32, Bitmap.new("Graphics/Damages/Damage"),
Rect.new(number * 18, rect_y, 18, 32))
damage_x += 18
end
end
# 伤害值不是数值的情况
else
# Miss 的情况下
if value == "Miss"
# 显示未击中图画
bitmap.blt(36, 28, Bitmap.new("Graphics/Damages/Damage"), Rect.new(90, 64, 90, 32))
end
# 免疫的情况下
if value == "Nothing"
# 显示未击中图画
bitmap.blt(36, 28, Bitmap.new("Graphics/Damages/Damage"), Rect.new(0, 96, 90, 32))
end
# 反射的情况下
if value == "Mirro return"
# 显示未击中图画
bitmap.blt(36, 28, Bitmap.new("Graphics/Damages/Damage"), Rect.new(90, 96, 90, 32))
end
end
# 会心一击标志打开的情况
if critical
# 显示会心一击图画
bitmap.blt(36, 0, Bitmap.new("Graphics/Damages/Damage"), Rect.new(0, 64, 90, 32))
end
# 伤害值定位
@_damage_sprite = ::Sprite.new(self.viewport)
@_damage_sprite.bitmap = bitmap
@_damage_sprite.ox = 81
@_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
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
复制代码
素材
Damagesp.png
(26.36 KB, 下载次数: 27)
下载附件
保存到相册
2011-2-2 20:57 上传
damage.png
(66.79 KB, 下载次数: 26)
下载附件
保存到相册
2011-2-2 20:57 上传
补充
之所以发上来这个是想试试,到底是不是脚本问题……如果显示的了就不是脚本问题了
作者:
时空守恒
时间:
2011-2-3 17:31
回复
忧雪の伤
的帖子
感谢感谢,可以了。:)不过就是那个素材数字图片怎么用??
时空守恒于2011-2-3 18:11补充以下内容:
那个是你放上来的图片怎么下?
时空守恒于2011-2-3 18:29补充以下内容:
你放上来的图片怎么下载?
时空守恒于2011-2-3 19:13补充以下内容:
不行啊,不如你把图片弄成附件
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1