喵星人
- UID
- 93
- 功勋
- 0 功勋
- 现金
- 11386 Ziny
- 猫币
- 389 Cat
|
发表于 2015-2-23 09:10:49
|
显示全部楼层
本帖最后由 风萧萧兮易水寒 于 2015-2-23 09:15 编辑
class Game_Battler
alias lqc_skill_effect skill_effect
#在技能实现的脚本上附加一段判断,希望不会增加太多计算量吧……
def skill_effect(user, skill)
effective = lqc_skill_effect(user, skill)
if user.is_a?(Game_Actor)
灵能 = false
圣堂 = false
#在角色的所有技能当中寻找有没有名字叫做“灵能涌动”和“圣堂之光”的
#如果有其他触发式被动技能的话也可以像这么写
for i in 0...user.skills.size
t_skill = $data_skills[user.skills[(i)]]
if t_skill.name == "灵能涌动"
灵能 = true
if user.maxsp_plus_灵能 == nil
user.maxsp_plus_灵能 = 0
user.int_plus_灵能 = 0
end
end
if t_skill.name == "圣堂之光"
圣堂 = true
end
end
end
#如果有灵能涌动的话可以增加属性,增加的幅度和上限与是否有圣堂之光有关
if 灵能
user.maxsp_plus_灵能 = [[(user.maxsp_plus_灵能 + 500),0].max,(圣堂 ? 6000 : 5000)].min
user.int_plus_灵能 = [[(user.int_plus_灵能 + (圣堂 ? 30 : 20)),0].max,(圣堂 ? 450 : 400)].min
end
#能量脉冲直接用脚本实现就不需要带事件了
if skill.name == "能量脉冲"
#满5000时先复活
if user.maxsp_plus_灵能 >= 5000
for actor in $game_party.actors
#当然,1号状态都是战斗不能
actor.remove_state(1)
end
end
#对敌人造成maxsp*4的伤害
value = user.maxsp * 4
for enemy in $game_troop.enemies
if enemy.exist?
enemy.hp -= value
if $game_temp.in_battle
enemy.damage = value
enemy.damage_pop = true
end
end
end
#对自己拥有maxsp*2的恢复
value = user.maxsp * 2
for actor in $game_party.actors
if actor.exist?
actor.hp += value
actor.hp = [actor.hp , actor.maxhp].min
if $game_temp.in_battle
actor.damage = value
actor.damage_pop = true
end
end
end
#灵能加成的sp清空
user.maxsp_plus_灵能 = 0
end
return effective
end
end
class Game_Actor < Game_Battler
#获取灵能脉冲增加值
def maxsp_plus_灵能
return @maxsp_plus_灵能
end
def int_plus_灵能
return @int_plus_灵能
end
#更改灵能脉冲增加值
def maxsp_plus_灵能=(maxsp_plus_灵能)
@maxsp_plus_灵能 = maxsp_plus_灵能
end
def int_plus_灵能=(int_plus_灵能)
@int_plus_灵能 = int_plus_灵能
end
#灵能脉冲增加值与一般增加分开计算
def maxsp
n = [[base_maxsp + @maxsp_plus + (@maxsp_plus_灵能 != nil ? @maxsp_plus_灵能 : 0), 0].max, 32767].min
for i in @states
n *= $data_states[(i)].maxsp_rate / 100.0
end
n = [[Integer(n), 0].max, 32767].min
@sp = [n,@sp].min
return n
end
def int
n = [[base_int + @int_plus + (($game_temp.in_battle and @int_plus_灵能 != nil) ? @int_plus_灵能 : 0), 1].max, 99999].min
for i in @states
n *= $data_states[(i)].int_rate / 100.0
end
n = [[Integer(n), 1].max, 99999].min
return n
end
end
{:6_338:}区区一个叶柳莎还那么多bug真是让人情何以堪
|
|