skill = @active_battler.action.skill
$skill_animation = {}
for i in [1]
name = skill.name
if $name_skill.split(/,/)[0]
if $name_skill != nil
kill = $name_skill.split(/X/)[1]
if kill == nil or kill == ""
kill = 1
end
#p kill
#p name
end
end
@animation_times = 1
@animation_times += $skill_animation[skill.id] if $skill_animation.keys.include?(skill.id)
for ii in 1..kill.to_i
####################################################3333
text = @active_battler.name + skill.message1
@message_window.add_instant_text(text)
unless skill.message2.empty?
wait(10)
@message_window.add_instant_text(skill.message2)
end
targets = @active_battler.action.make_targets
if @animation_times > 0
display_animation(targets, skill.animation_id)
@animation_times -= 1
end
@active_battler.mp -= @active_battler.calc_mp_cost(skill)
$game_temp.common_event_id = skill.common_event_id
for target in targets
target.skill_effect(@active_battler, skill)
display_action_effects(target, skill)
end
@message_window.clear
end
if $game_variables[183] >= 1 #技能连发用变量
skill = $data_skills[skill.id+1]
$game_variables[183] -= 1
@active_battler.action.set_skill(skill.id)
redo
end
end
if @active_battler.re_damage > 0 and target.hp > 0 and @active_battler.hp > 0
@active_battler.hp -= @active_battler.re_damage
@message_window.add_instant_text(target.name + '发动了反击!')
if $game_variables[181] == 2 #高速战斗
wait(30)
else
wait(40)
end
@message_window.add_instant_text(@active_battler.name + '受到了' + @active_battler.re_damage.to_s + '点伤害!')
if @active_battler.actor?
Sound.play_actor_damage
$game_troop.screen.start_shake(5, 5, 10)
else
Sound.play_enemy_damage
@active_battler.blink = true
end
if $game_variables[181] == 2 #高速战斗
wait(40)
else
wait(50)
end
end
end
end
module RPG
class Skill
def name
$name_skill = @name
name = @name.split(/,X/)[0]
return name != nil ? name : ""
end
end
end
这个是我在别人基础上改的的技能连发+多段伤害的脚本,你取需要的部分就行作者: 耀眼的毛玉 时间: 2013-12-7 10:43
因为不清楚你是否对脚本比较熟悉所以我帮你把需要的部分取下来好了
这个是技能连发+多段伤害的合体脚本
用法:
我设的控制技能连发的变量是183号变量,你可以自己更改
在Game_Battler的 def make_obj_damage_value(user, obj)的最后一个end前面加上如下内容
$game_variables[183] += X if obj.is_a?(RPG::Skill) and obj.id == Y
Y代表你说的“无意义技能”的编号,X代表你想让它接下来再放几个技能(这里默认你在skill数据库中把接下来要放的技能放在第一个技能后面)
另外附带的多段伤害技能,用法就是把数据库中技能的名字后面加上",X段数"就行了,我懒得把它拆出来所以权当附赠
class Scene_Battle < Scene_Base
def execute_action_skill
skill = @active_battler.action.skill
$skill_animation = {}
for i in [1]
name = skill.name
if $name_skill.split(/,/)[0]
if $name_skill != nil
kill = $name_skill.split(/X/)[1]
if kill == nil or kill == ""
kill = 1
end
end
end
@animation_times = 1
@animation_times += $skill_animation[skill.id] if $skill_animation.keys.include?(skill.id)
for ii in 1..kill.to_i
####################################################3333
text = @active_battler.name + skill.message1
@message_window.add_instant_text(text)
unless skill.message2.empty?
wait(10)
@message_window.add_instant_text(skill.message2)
end
targets = @active_battler.action.make_targets
if @animation_times > 0
display_animation(targets, skill.animation_id)
@animation_times -= 1
end
@active_battler.mp -= @active_battler.calc_mp_cost(skill)
$game_temp.common_event_id = skill.common_event_id
for target in targets
target.skill_effect(@active_battler, skill)
display_action_effects(target, skill)
end
@message_window.clear
end
if $game_variables[183] >= 1 #技能连发用变量
skill = $data_skills[skill.id+1]
$game_variables[183] -= 1
@active_battler.action.set_skill(skill.id)
redo
end
end
end
end
module RPG
class Skill
def name
$name_skill = @name
name = @name.split(/,X/)[0]
return name != nil ? name : ""
end
end
end作者: huihui99 时间: 2013-12-7 16:56 本帖最后由 huihui99 于 2013-12-7 17:03 编辑