简单改了一下,你可能需要Game_Character#direction来判断角色朝向。
改之后的效果为:
角色面向左,则会攻击角色左侧(不含正上方和正下方),上下范围为1的所有敌人。
角色面向右,则会攻击角色右侧(不含正上方和正下方),上下范围为1的所有敌人。
#============================================== def skill_鬼斩 #------------------------------------------ # 角色击中boss的处理 #------------------------------------------ for boss in $game_map.events.values next if boss.return_erased2 next if boss.list == nil next if boss.list[0].code != 108 next if boss.list[1].parameters[0] != "Boss" #当boss的生命大于0 if boss.hp >0 #px 等于 角色的X坐标 px = $game_player.x #py 等于 角色的Y坐标 py = $game_player.y # 朝向判定(仅对左右有效)Modified case $game_player.direction when 4 d = -1 when 6 d = 1 else d = 0 end #判断角色与boss之间的距离 是否在 指定范围内 if (boss.x - px) * d > 0 && (py - boss.y).abs <= 1 # Modified #随机数 10 case rand(10) #当随机数 等于 0到8 之间的任何一个数的时候 when 0..8 #boss显示技能的动画 boss.animation_id = $data_skills[@skill.id].animation2_id #执行伤害 boss.damage = $data_skills[@skill.id].power + @ppp.str + @ppp.atk boss.damage*= 100-$data_skills[@skill.id].variance+rand($data_skills[@skill.id].variance*2+1) boss.damage/= 100 boss.damage_pop = true #boss跳一下 boss.jump(0, 0) #当随机数 等于 9 的时候 when 9 #boss显示技能的动画 boss.animation_id = $data_skills[@skill.id].animation2_id #执行伤害 boss.damage = $data_skills[@skill.id].power*2 + @ppp.str + @ppp.atk boss.damage*= 100-$data_skills[@skill.id].variance+rand($data_skills[@skill.id].variance*2+1) boss.damage/= 100 boss.damage_pop = true boss.critical = true #boss跳一下 boss.jump(0, 0) end # 增加连击 $game_variables[$变量段+10] += 1 #连击维持时间恢复 $lianjie = $game_party.actors[0].dex #显示消息 Mess_Text.write ("#{boss.list[2].parameters[0]}受到#{boss.damage.to_i}伤害。") end #if end #if end #for
#==============================================
def skill_鬼斩
#------------------------------------------
# 角色击中boss的处理
#------------------------------------------
for boss in $game_map.events.values
next if boss.return_erased2
next if boss.list == nil
next if boss.list[0].code != 108
next if boss.list[1].parameters[0] != "Boss"
#当boss的生命大于0
if boss.hp >0
#px 等于 角色的X坐标
px = $game_player.x
#py 等于 角色的Y坐标
py = $game_player.y
# 朝向判定(仅对左右有效)Modified
case $game_player.direction
when 4
d = -1
when 6
d = 1
else
d = 0
end
#判断角色与boss之间的距离 是否在 指定范围内
if (boss.x - px) * d > 0 && (py - boss.y).abs <= 1 # Modified
#随机数 10
case rand(10)
#当随机数 等于 0到8 之间的任何一个数的时候
when 0..8
#boss显示技能的动画
boss.animation_id = $data_skills[@skill.id].animation2_id
#执行伤害
boss.damage = $data_skills[@skill.id].power + @ppp.str + @ppp.atk
boss.damage*= 100-$data_skills[@skill.id].variance+rand($data_skills[@skill.id].variance*2+1)
boss.damage/= 100
boss.damage_pop = true
#boss跳一下
boss.jump(0, 0)
#当随机数 等于 9 的时候
when 9
#boss显示技能的动画
boss.animation_id = $data_skills[@skill.id].animation2_id
#执行伤害
boss.damage = $data_skills[@skill.id].power*2 + @ppp.str + @ppp.atk
boss.damage*= 100-$data_skills[@skill.id].variance+rand($data_skills[@skill.id].variance*2+1)
boss.damage/= 100
boss.damage_pop = true
boss.critical = true
#boss跳一下
boss.jump(0, 0)
end
# 增加连击
$game_variables[$变量段+10] += 1
#连击维持时间恢复
$lianjie = $game_party.actors[0].dex
#显示消息
Mess_Text.write ("#{boss.list[2].parameters[0]}受到#{boss.damage.to_i}伤害。")
end #if
end #if
end #for
|