Project1
标题:
到底哪错了?
[打印本页]
作者:
lxmstc
时间:
2008-3-27 23:52
标题:
到底哪错了?
#==============================================================================
# ■ 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.bitmap = RPG::Cache.battler(@battler_name +"_d", @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
self.opacity = 255
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
if @battler.damage == nil and @battler.dead?
self.bitmap = RPG::Cache.battler(@battler_name +"_d", @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
self.opacity = 255
else
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
end
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.damage, @battler.critical)
@battler.animation_id = 0
end
# 伤害
if @battler.damage_pop
@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)
collapse
@battler_visible = false
else
@male=[001] #----每个角色用逗号隔开
if @male.include?(@battler.id)
#Audio.se_play("Audio/SE/SWDRSLGDIR_0358_1000-39") #--你的文件名是你自己音效的文件名
self.bitmap = RPG::Cache.battler(@battler_name +"_d", @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
self.opacity = 255
else
#Audio.se_play("Audio/SE/SWDRSLGDIR_0343_1001-39")
self.bitmap = RPG::Cache.battler(@battler_name +"_d", @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
self.opacity = 255
end
end
@battler_visible = false
end
end
# 设置活动块的坐标
if @flash_shake_switch == true
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = @battler.screen_z
@flash_shake_switch = false
end
if @flash_shake != 0 and @battler.damage != nil and RPG::BATTLER_JUMP
case @flash_shake
when 9..10
self.x = @battler.screen_x
self.y -=4
self.z = @battler.screen_z
when 6..8
self.x = @battler.screen_x
self.y -=2
self.z = @battler.screen_z
when 3..5
self.x = @battler.screen_x
self.y +=2
self.z = @battler.screen_z
when 2
self.x = @battler.screen_x
self.y += 4
self.z = @battler.screen_z
when 1
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = @battler.screen_z
end
@flash_shake -= 1
end
end
end
复制代码
为什么一用法术就会出:
127行发生了ArgumentError。wrong number of arguments(4 for 2)
昨天还好好的。 [LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
水迭澜
时间:
2008-3-27 23:54
你的参数数量不对啦~
animation(animation, @battler.animation_hit,@battler.damage,@battler.critical)
这个把后边两个去掉看看? [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
lxmstc
时间:
2008-3-27 23:59
那样就不会显示伤害了,那个参数在哪个脚本里可以改啊?
作者:
水迭澜
时间:
2008-3-28 00:02
那个要在RPG::Sprite里改,默认的脚本里没有
你用的这个是什么脚本?
把我下边这段复制到你的脚本里,替换127行前后相应那个位置……
# 动画
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
作者:
lxmstc
时间:
2008-3-28 00:07
就是能显示(也只能显示)死亡时图片的,我也不知道叫什么,是从灵儿续传里摘出来的,以前一直都没问题啊
作者:
水迭澜
时间:
2008-3-28 00:12
肯定是你漏了什么地方……
从已经完成的工程里提取脚本很容易出错的
问题现在解决了吗?
作者:
lxmstc
时间:
2008-3-28 00:15
没
作者:
lxmstc
时间:
2008-3-28 00:22
用了4楼的方法后伤害数值一出现就不会消失了,我还用了彩虹神剑脚本
作者:
lxmstc
时间:
2008-3-28 00:44
原来是和RTAB血槽起了冲突,给大家添麻烦了
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1