一、全体化/全域化
效果:当技能范围为敌单体时,攻击敌全体;
当技能范围为我方单体或自身时,攻击我方全体;
当技能范围为我方单体HP0时,攻击我方全体HP0;
当技能范围为无时,攻击战场上所有对象。
处理:前趋
脚本:
s=$scene.skill.scope
$scene.target_battlers=[]
$scene.set_target_battlers(2) if s==1
$scene.set_target_battlers(4) if s%4==3
$scene.set_target_battlers(6) if s==5
(t=$game_troop.enemies+$game_party.actors
for battler in t.clone
t.delete(battler) if not battler.exist?
end
$scene.target_battlers=t) if s==0
二、敌/己/全方随机对象
效果:当技能范围为敌单或敌全时,随机选定敌方单体;
当技能范围为我单或我全时,随机选定我方单体;
当技能范围为我单或我全HP0时,随机选定我方单体HP0;
当技能范围为无时,随机选定战场上一个对象;
当技能范围为自身时,不作处理。
处理:前趋
条件分歧:$scene.active_battler.is_a?(Game_Enemy)
脚本:
s=($scene.skill.scope+1)/2
t=$game_party.random_target_actor if s==1
t=$game_troop.random_target_enemy if s==2
t=$game_troop.random_target_enemy(true) if s==3
(x=$game_party.actors+$game_troop.enemies
t=x[rand(x.size)]) if s==0
$scene.target_battlers=[t]
除此以外的情况下
脚本:
s=($scene.skill.scope+1)/2
t=$game_troop.random_target_enemy if s==1
t=$game_party.random_target_actor if s==2
t=$game_party.random_target_actor(true) if s==3
(x=$game_troop.enemies+$game_party.actors
t=x[rand(x.size)]) if s==0
$scene.target_battlers=[t]
分歧结束
三、HP吸收
效果:攻击者增加等同于伤害值的HP
处理:后继
脚本:
a=$scene.active_battler
a.damage=0
for t in $scene.target_battlers
if t.damage.is_a?(Numeric)
a.damage -= t.damage
a.hp += t.damage
end
end
四、SP伤害
效果:本来伤害对方HP,改成伤害对方SP
处理:覆写
脚本:
a=$scene.active_battler
s=$scene.skill
for t in $scene.target_battlers
t1=t.clone.skill_effect(a,s)
if t1.damage.is_a?(Numeric)
t.damage=t1.damage
t.sp-=t.damage
end
end
$scene.state_apply
五、SP吸收
效果:攻击者增加等同于伤害值的SP。
处理:后继
脚本:
a=$scene.active_battler
a.damage=0
for t in $scene.target_battlers
if t.damage.is_a?(Numeric)
a.damage -= t.damage
a.sp += t.damage
end
end
六、SP同等伤害
效果:攻击对象损失等同于HP损失的SP。
处理:后继
脚本:
for t in $scene.target_battlers
t.sp-=t.damage if t.damage.is_a?(Numeric)
end
七、反馈
效果:攻击对象损失所有的SP,并损失相当于其SP损失量的HP(参考Starcraft的Feedback)。
处理:覆写
脚本:
s=$scene.skill
for t in $scene.target_battlers
t.damage=t.sp
t.sp=0
t.hp-=t.damage
end
$scene.state_apply
九、SP节约
效果:中了特定状态(例为22)发动技能只消耗常规一半的SP,中了另一状态(23)则无差别消耗1点SP。
处理:SP覆写
脚本:
s=$scene.skill
a=$scene.active_battler
if a.state?(22)
a.sp-=s.sp_cost/2
elsif a.state?(23)
a.sp-=[s.sp_cost,1].min
end
十、现有HP比例伤害
效果:按照技能的威力设置,和攻击对象的HP,计算损害百分比的HP,属性和防御修正有效。
处理:覆写
脚本:
s=$scene.skill
for t in $scene.target_battlers
e=t.element_correct(s.element_set)
t.damage=t.hp*s.power*e/10000
t.damage/=2 if t.guarding?
t.hp-=t.damage
end
$scene.state_apply
十一、现有HP差分比例伤害
效果:按照技能的威力设置,和攻击对象的HP与其最大HP的差值,计算损害百分比的HP,属性和防御修正无效。
处理:覆写
脚本:
s=$scene.skill
for t in $scene.target_battlers
t.damage=(t.maxhp-t.hp)*s.power/100
t.hp-=t.damage
end
$scene.state_apply
十二、最大HP比例伤害
效果:按照技能的威力设置,和攻击对象的最大HP,计算损害百分比的HP,属性有效,无视防御修正。
处理:覆写
脚本:
s=$scene.skill
for t in $scene.target_battlers
e=t.element_correct(s.element_set)
t.damage=t.maxhp*s.power*e/10000
t.hp-=t.damage
end
$scene.state_apply
十三、自身HP比例伤害
效果:按照技能的威力设置,和攻击者的HP,计算损害百分比的HP,属性和防御修正有效。
处理:覆写
脚本:
s=$scene.skill
a=$scene.active_battler
for t in $scene.target_battlers
e=t.element_correct(s.element_set)
t.damage=a.hp*s.power*e/10000
t.damage/=2 if t.guarding?
t.hp-=t.damage
end
$scene.state_apply
十四、自身HP差分比例伤害
效果:按照技能的威力设置,和攻击者的HP与其最大HP的差值,计算损害百分比的HP,属性有效,无视防御修正。
处理:覆写
脚本:
s=$scene.skill
a=$scene.active_battler
for t in $scene.target_battlers
e=t.element_correct(s.element_set)
t.damage=(a.maxhp-a.hp)*s.power*e/10000
t.hp-=t.damage
end
$scene.state_apply
十五、自身最大HP比例伤害
效果:按照技能的威力设置,和攻击者的最大HP,计算损害百分比的HP,属性和防御修正无效。
处理:覆写
脚本:
s=$scene.skill
a=$scene.active_battler
for t in $scene.target_battlers
t.damage=a.maxhp*s.power/100
t.hp-=t.damage
end
$scene.state_apply
十七、强制会心一击
效果:强制造成会心一击(伤害值2倍)。
处理:后继
脚本:
for t in $scene.target_battlers
if t.damage.is_a?(Numeric)
t.hp-=t.damage
t.damage*=2
end
end
十八、技能反射
效果:攻击对象有特定状态(24)时,技能被反射到另外一方的随机对象。
处理:前趋+后继
脚本(前趋):
x=$scene.target_battlers
x1=x.clone
for t in x1
if t.state?(24)
x.delete(t)
c=(t.is_a?(Game_Actor) ?
$game_troop.random_target_enemy :
$game_party.random_target_actor)
x.push(c)
end
end
@d=x.clone
脚本(后继):
for i in [email protected]
t=$scene.target_battlers
t1=@d
t.damage=t1.hp-t.hp
end
十九、复活对不死系反效果(即死)
效果:用复活类技能攻击对象为不死系(属性9)时,造成敌人无条件即死。
处理:覆写
脚本:
a=$scene.active_battler
s=$scene.skill
for t in $scene.target_battlers
if t.element_rate(9)>=150
t.add_state(1)
else
t.skill_effect(a,s)
end
end
二十、即死对不死系反效果(完全回复)
效果:用即死类技能攻击对象为不死系时,造成敌人完全回复。
处理:覆写
脚本:
a=$scene.active_battler
s=$scene.skill
for t in $scene.target_battlers
if t.element_rate(9)>=150
t.recover_all
else
t.skill_effect(a,s)
end
end 作者: SailCat 时间: 2006-9-27 06:41 标题: “公共事件的战斗特效”完美版(附20个范例) 本帖最后由 后知后觉 于 2009-12-13 17:42 编辑