赞 | 4 |
VIP | 0 |
好人卡 | 0 |
积分 | 78 |
经验 | 15725 |
最后登录 | 2024-11-24 |
在线时间 | 1346 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 7827
- 在线时间
- 1346 小时
- 注册时间
- 2015-8-15
- 帖子
- 753
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
把图中的可能使用改为平时
# module RPG class Skill#技能类 #类型: 0 是 正常技能(默认RPG MAKER 技能) # 1 是 SRPG技能 # 2 是 EFS技能 def type #定义类型 #类型=@名称。拆分(/,/)[1] type = @name.split(/;/)[1] # #返回类型!=无类型至i:0 return type != nil ? type.to_i : 0 end def name#定义名称 # 名称=@名称。拆分(/,/)[0] name = @name.split(/,/)[0] #返回名称!=无名称:“” return name != nil ? name : "" end def range##定义射程区域 #射程区域=@名称。拆分(/,/)[1] range = @name.split(/,/)[1] #返回射程区域!=无射程区域至i:2 return range != nil ? range.to_i : 2 end #---<范围魔法>--- def area#定义魔法范围 #魔法范围@名称。拆分(/,/)[2] area = @name.split(/,/)[2] #返回魔法范围!=魔法范围至i:2 return area != nil ? area.to_i : 2 end #---<范围魔法>--- # 0 : 使用后无法行动 # 1 : 使用后可以行动 # 2 : 行动后无法使用,且使用后无法行动 # 3 : 行动后无法使用,且使用后可以行动 def cost_type#定义成本类型 ##魔法范围@名称。拆分(/,/)[3] area = @name.split(/,/)[3] #返回魔法范围!=无?魔法范围至i:0 return area != nil ? area.to_i : 0 end def scope#定义能力范围 #如果元素集。包括(Wzj::技能用于敌方区域) if @element_set.include?(Wzj::SKILL_FOR_ENEMY_AREA) return 8 #返回 8 #否则元素集。包括(Wzj::我们的技能领域) elsif @element_set.include?(Wzj::SKILL_FOR_US_AREA) return 9 #返回 9 #否则元素集。包括(Wzj::我们区域的技能_HP0) elsif @element_set.include?(Wzj::SKILL_FOR_US_AREA_HP0) return 10#返回 10 else#否则 return @scope#返回@范围 end end end
# module RPG
class Skill#技能类
#类型: 0 是 正常技能(默认RPG MAKER 技能)
# 1 是 SRPG技能
# 2 是 EFS技能
def type #定义类型
#类型=@名称。拆分(/,/)[1]
type = @name.split(/;/)[1]
# #返回类型!=无类型至i:0
return type != nil ? type.to_i : 0
end
def name#定义名称
# 名称=@名称。拆分(/,/)[0]
name = @name.split(/,/)[0]
#返回名称!=无名称:“”
return name != nil ? name : ""
end
def range##定义射程区域
#射程区域=@名称。拆分(/,/)[1]
range = @name.split(/,/)[1]
#返回射程区域!=无射程区域至i:2
return range != nil ? range.to_i : 2
end
#---<范围魔法>---
def area#定义魔法范围
#魔法范围@名称。拆分(/,/)[2]
area = @name.split(/,/)[2]
#返回魔法范围!=魔法范围至i:2
return area != nil ? area.to_i : 2
end
#---<范围魔法>---
# 0 : 使用后无法行动
# 1 : 使用后可以行动
# 2 : 行动后无法使用,且使用后无法行动
# 3 : 行动后无法使用,且使用后可以行动
def cost_type#定义成本类型
##魔法范围@名称。拆分(/,/)[3]
area = @name.split(/,/)[3]
#返回魔法范围!=无?魔法范围至i:0
return area != nil ? area.to_i : 0
end
def scope#定义能力范围
#如果元素集。包括(Wzj::技能用于敌方区域)
if @element_set.include?(Wzj::SKILL_FOR_ENEMY_AREA)
return 8 #返回 8
#否则元素集。包括(Wzj::我们的技能领域)
elsif @element_set.include?(Wzj::SKILL_FOR_US_AREA)
return 9 #返回 9
#否则元素集。包括(Wzj::我们区域的技能_HP0)
elsif @element_set.include?(Wzj::SKILL_FOR_US_AREA_HP0)
return 10#返回 10
else#否则
return @scope#返回@范围
end
end
end
class Scene_Map #======================================================= # SRPG技能关联 # 格式: 技能ID => 执行技能的名字 #======================================================= #,6,10,9技能_千和箭头(@攻击者,@技能,目标) SRPG_SKILLS = { 1 => "skill_ten_thousand_arrows(@attacker, @skill,target)", 2 => "skill_zhenfen_morale(@attacker, @skill,target)", 3 => "", 4 => "skill_distory_morale(@attacker, @skill,target)" } #======================================================= # SRPG技能发动条件 # 格式: 技能ID => 检查技能的method名字 # 如果空的,则可以使用 #======================================================= #,6,10,9 #SRPG_可使用SRPG技能 SRPG_SKILLS_CAN_USE = { 1 => "check_skill_ten_thousand_arrows(self.army)", 2 => "", 3 => "", 4 => "" } def get_srpg_skills_can_use_list#定义获取srpg技能可以使用列表 return SRPG_SKILLS_CAN_USE.clone#返回 SRPG技能可用。克隆 end #======================================================= # SRPG技能 1 : 万箭齐发 #======================================================= #定义技能_千和箭头(@攻击者,@技能,目标) def skill_ten_thousand_arrows(attacker,skill,target) #攻击者。事件转向xy(目标事件.x,目标。事件.y) attacker.event.turn_toward_xy(target.event.x,target.event.y) #目标事件转向方向xy(攻击者.事件.x,攻击者.事件.y) target.event.turn_toward_xy(attacker.event.x,attacker.event.y) #攻击者。事件伤害=“放箭!" attacker.event.damage = "放箭!" #攻击者。事件关键=错误 attacker.event.critical = false #攻击者。事件伤害弹出=真 attacker.event.damage_pop = true #播放动画(攻击者、攻击者、事件、角色名称+“-atk-1”) play_anime(attacker,attacker.event.character_name + "-atk-1") #目标列表=[] target_list = [] #目标成员。每个执行|组| target.member.each do|group| #组战士每个都做|f| group.fighter.each do|f| #下一个如果f死了? next if f.dead? # 目标列表.推送 f target_list.push f end end #全部阵亡=假 all_killed = false #数字位数=0 num_hit = 0 #总和=0.0 sum = 0.0 #攻击者。成员每个执行|组| attacker.member.each do|group| ##组战士每个都做|f| group.fighter.each do|f| if target_list.size == 0 all_killed = true break end next if f.dead? or f.is_a?(EFS_Infantry) or f.is_a?(EFS_Horseman) or f.is_a?(EFS_Hero) or f.is_a?(EFS_Object) Audio.se_play("Audio/SE/"+f.s_shoot_se+ (rand(f.s_shoot_se_num)+1).to_s,80, 100) wait_a_moment(true,4) Audio.se_play("Audio/SE/"+f.s_pass_by_se+ (rand(f.s_pass_by_se_num)+1).to_s,80, 100) wait_a_moment(true,4) #如果射中 if rand(101) <= f.accuracy #p attacker.event.x - target.event.x,attacker.event.y a = f.give_me_a_arrow_obj(attacker.event,target.event.x-attacker.event.x,target.event.y-attacker.event.y,true) $game_map.missiles.push a $scene.spriteset.add_missiles(a) target.event.animation_id = 153 Audio.se_play("Audio/SE/"+f.s_atk_se+ (rand(f.s_atk_se_num)+1).to_s,80, 100) wait_a_moment(true,4) num_hit += 1 t = target_list[rand(target_list.size)] damage = f.s_bro_atk + [f.s_base_atk - t.armor_hp_max,rand(5)+5].max t.recieve_damage(damage) if t.dead? target_list.delete(t) end sum += damage target.event.damage = damage target.event.critical = false target.event.damage_pop = true else #如果没射中 a = f.give_me_a_arrow_obj(attacker.event,target.event.x-attacker.event.x,target.event.y-attacker.event.y,false) $game_map.missiles.push a $scene.spriteset.add_missiles(a) target.event.damage = "Miss" target.event.critical = false target.event.damage_pop = true target.event.animation_id = 135 Audio.se_play("Audio/SE/"+f.s_drop_se+ (rand(f.s_drop_se_num)+1).to_s,80, 100) wait_a_moment(true,4) end #if zhong end #group break if all_killed end #attacker target.event.damage = sum.round target.event.critical = true target.event.damage_pop = true Notification.post("命中"+target.the_name+"中的"+num_hit.to_s+"人,共计造成"+sum.round.to_s+"点伤害。") if all_killed for id in @armies.keys if @armies[id].all_dead? next if @dealed_death_actors.include?(id) deaths_disappear(id) end end end target.delete_all_dead wait_a_moment(true) end #============================================== def check_skill_ten_thousand_arrows(attacker) sum = 0 attacker.member.each do|group| group.fighter.each do|f| next if f.dead? or f.is_a?(EFS_Infantry) or f.is_a?(EFS_Horseman) or f.is_a?(EFS_Hero) or f.is_a?(EFS_Object) sum += 1 end end return sum >=5 end #======================================================= # SRPG技能 2 : 振奋士气 #======================================================= #定义-skill振奋士气(攻击者、技能、目标) def skill_zhenfen_morale(attacker,skill,target) # 目标添加常量状态(10) target.add_const_state(10) end #======================================================= # SRPG技能 4 : 士气打击 #======================================================= #定义技能分散士气(攻击者、技能、目标) #def-skill distory士气(攻击者、技能、目标) def skill_distory_morale(attacker,skill,target) # 目标添加常量状态(5) target.add_const_state(5) end
class Scene_Map
#=======================================================
# SRPG技能关联
# 格式: 技能ID => 执行技能的名字
#=======================================================
#,6,10,9技能_千和箭头(@攻击者,@技能,目标)
SRPG_SKILLS = {
1 => "skill_ten_thousand_arrows(@attacker, @skill,target)",
2 => "skill_zhenfen_morale(@attacker, @skill,target)",
3 => "",
4 => "skill_distory_morale(@attacker, @skill,target)"
}
#=======================================================
# SRPG技能发动条件
# 格式: 技能ID => 检查技能的method名字
# 如果空的,则可以使用
#=======================================================
#,6,10,9
#SRPG_可使用SRPG技能
SRPG_SKILLS_CAN_USE = {
1 => "check_skill_ten_thousand_arrows(self.army)",
2 => "",
3 => "",
4 => ""
}
def get_srpg_skills_can_use_list#定义获取srpg技能可以使用列表
return SRPG_SKILLS_CAN_USE.clone#返回 SRPG技能可用。克隆
end
#=======================================================
# SRPG技能 1 : 万箭齐发
#=======================================================
#定义技能_千和箭头(@攻击者,@技能,目标)
def skill_ten_thousand_arrows(attacker,skill,target)
#攻击者。事件转向xy(目标事件.x,目标。事件.y)
attacker.event.turn_toward_xy(target.event.x,target.event.y)
#目标事件转向方向xy(攻击者.事件.x,攻击者.事件.y)
target.event.turn_toward_xy(attacker.event.x,attacker.event.y)
#攻击者。事件伤害=“放箭!"
attacker.event.damage = "放箭!"
#攻击者。事件关键=错误
attacker.event.critical = false
#攻击者。事件伤害弹出=真
attacker.event.damage_pop = true
#播放动画(攻击者、攻击者、事件、角色名称+“-atk-1”)
play_anime(attacker,attacker.event.character_name + "-atk-1")
#目标列表=[]
target_list = []
#目标成员。每个执行|组|
target.member.each do|group|
#组战士每个都做|f|
group.fighter.each do|f|
#下一个如果f死了?
next if f.dead?
# 目标列表.推送 f
target_list.push f
end
end
#全部阵亡=假
all_killed = false
#数字位数=0
num_hit = 0
#总和=0.0
sum = 0.0
#攻击者。成员每个执行|组|
attacker.member.each do|group|
##组战士每个都做|f|
group.fighter.each do|f|
if target_list.size == 0
all_killed = true
break
end
next if f.dead? or f.is_a?(EFS_Infantry) or f.is_a?(EFS_Horseman) or f.is_a?(EFS_Hero) or f.is_a?(EFS_Object)
Audio.se_play("Audio/SE/"+f.s_shoot_se+ (rand(f.s_shoot_se_num)+1).to_s,80, 100)
wait_a_moment(true,4)
Audio.se_play("Audio/SE/"+f.s_pass_by_se+ (rand(f.s_pass_by_se_num)+1).to_s,80, 100)
wait_a_moment(true,4)
#如果射中
if rand(101) <= f.accuracy
#p attacker.event.x - target.event.x,attacker.event.y
a = f.give_me_a_arrow_obj(attacker.event,target.event.x-attacker.event.x,target.event.y-attacker.event.y,true)
$game_map.missiles.push a
$scene.spriteset.add_missiles(a)
target.event.animation_id = 153
Audio.se_play("Audio/SE/"+f.s_atk_se+ (rand(f.s_atk_se_num)+1).to_s,80, 100)
wait_a_moment(true,4)
num_hit += 1
t = target_list[rand(target_list.size)]
damage = f.s_bro_atk + [f.s_base_atk - t.armor_hp_max,rand(5)+5].max
t.recieve_damage(damage)
if t.dead?
target_list.delete(t)
end
sum += damage
target.event.damage = damage
target.event.critical = false
target.event.damage_pop = true
else #如果没射中
a = f.give_me_a_arrow_obj(attacker.event,target.event.x-attacker.event.x,target.event.y-attacker.event.y,false)
$game_map.missiles.push a
$scene.spriteset.add_missiles(a)
target.event.damage = "Miss"
target.event.critical = false
target.event.damage_pop = true
target.event.animation_id = 135
Audio.se_play("Audio/SE/"+f.s_drop_se+ (rand(f.s_drop_se_num)+1).to_s,80, 100)
wait_a_moment(true,4)
end #if zhong
end #group
break if all_killed
end #attacker
target.event.damage = sum.round
target.event.critical = true
target.event.damage_pop = true
Notification.post("命中"+target.the_name+"中的"+num_hit.to_s+"人,共计造成"+sum.round.to_s+"点伤害。")
if all_killed
for id in @armies.keys
if @armies[id].all_dead?
next if @dealed_death_actors.include?(id)
deaths_disappear(id)
end
end
end
target.delete_all_dead
wait_a_moment(true)
end
#==============================================
def check_skill_ten_thousand_arrows(attacker)
sum = 0
attacker.member.each do|group|
group.fighter.each do|f|
next if f.dead? or f.is_a?(EFS_Infantry) or f.is_a?(EFS_Horseman) or f.is_a?(EFS_Hero) or f.is_a?(EFS_Object)
sum += 1
end
end
return sum >=5
end
#=======================================================
# SRPG技能 2 : 振奋士气
#=======================================================
#定义-skill振奋士气(攻击者、技能、目标)
def skill_zhenfen_morale(attacker,skill,target)
# 目标添加常量状态(10)
target.add_const_state(10)
end
#=======================================================
# SRPG技能 4 : 士气打击
#=======================================================
#定义技能分散士气(攻击者、技能、目标)
#def-skill distory士气(攻击者、技能、目标)
def skill_distory_morale(attacker,skill,target)
# 目标添加常量状态(5)
target.add_const_state(5)
end
|
|