#--------------------------------------------------------
# 获得出生点位置(地形标记)
# 15 埋伏模式 防守方出生点
# 14 埋伏模式 攻击方出生点 正
# 13 埋伏模式 攻击方出生点 侧 1
# 12 埋伏模式 攻击方出生点 侧 2
# 11
# 10
# 9
# 8
# 7
# 6
#--------------------------------------------------------
def get_spawn_areas_terr_tag#def获取出生区域领土;范围标记
@efs_ambush_defender_spawn_0 = []#@efs伏击防御者出生点=[]
@efs_ambush_defender_spawn_1 = []
@efs_ambush_defender_spawn_2 = []
@efs_ambush_defender_spawn_3 = []
@efs_ambush_defender_spawn_4 = []
@efs_ambush_attacker_spawn_0 = []#@efs伏击攻击者出生点0=[]
@efs_ambush_attacker_spawn_1 = []#@efs伏击攻击者出生点1=[]
@efs_ambush_attacker_spawn_2 = []#@efs伏击攻击者出生点2=[]
@efs_ambush_attacker_spawn_3 = []#@efs伏击攻击者出生点3=[]
@efs_ambush_attacker_spawn_4 = []#@efs伏击攻击者出生点4=[]
for x in 0..$game_map.width-1#对于0..$游戏地图中的x。宽度-1
for y in 0..$game_map.height-1#对于0..$游戏地图中的y。高度-1
# 案例$游戏地图。地形标记(x,y)
case $game_map.terrain_tag(x,y)
when 15
# @efs伏击防御者出生点。推动([x,y])
@efs_ambush_defender_spawn_0.push ([x,y])
when 14
@efs_ambush_defender_spawn_1.push ([x,y])
when 13
@efs_ambush_defender_spawn_2.push ([x,y])
when 12
@efs_ambush_defender_spawn_3.push ([x,y])
when 11
@efs_ambush_defender_spawn_4.push ([x,y])
when 10
#@efs伏击攻击者生成0。推动([x,y])
@efs_ambush_attacker_spawn_0.push ([x,y])
when 9
# @efs伏击攻击者生成1。推动([x,y])
@efs_ambush_attacker_spawn_1.push ([x,y])
when 8
#@efs伏击攻击者生成2。推动([x,y])
@efs_ambush_attacker_spawn_2.push ([x,y])
when 7
@efs_ambush_attacker_spawn_3.push ([x,y])
when 6
@efs_ambush_attacker_spawn_4.push ([x,y])
end
end
end
end
#--------------------------------------------------------
# EFS系统:出生小队 (MODE: 伏击模式)
#--------------------------------------------------------
def spawn_groups_ambush#定义出生点队组伏击模式↑35
@current_leader = nil #@当前领导者=零
#获得空地
attacker_groups = @attacker.member#攻击者组=@攻击者。成员
defender_groups = @defender.member#防守队员组=@防守队员。成员
#空地=@efs伏击防御者出生点。克隆
space = @efs_ambush_defender_spawn.clone
#p space[0],space[1],space[2]
#领导check
#对于0..@团队组中的我。大小-1
for i in 0.. @team_groups.size-1
#对于0..@团队组[i]中的j。战士大小-1 #对于0..@团队组[i]中的j。战士大小-1
for j in 0.. @team_groups[i].fighter.size-1 #对于0..@团队组[i]中的j。战士大小-1
#@当前领导者=@团队团队[i]。战斗者[j]如果@团队[i].战斗者[j].是a?(EFS英雄)而不是@团队[i].战士[j].死了?
@current_leader = @team_groups[i].fighter[j] if @team_groups[i].fighter[j].is_a?(EFS_Hero) and not @team_groups[i].fighter[j].dead?
end #for j in 0.. @team_groups[i].fighter.size-1
end #for i in 0.. @team_groups.size-
#对于0中的i..防守队员组。大小-1
for i in 0.. defender_groups.size-1
# 对于0..防守队员组[i]中的j。战斗者尺寸-1
for j in 0.. defender_groups[i].fighter.size-1
if space.size == 0#如果空间。大小==0
print "无法散开队伍进行战斗"#打印"无法散开队伍进行战斗"
else#否则
a = space[0] #a=空地[0]
#下一步,如果防御者组[i.]战斗者[j.死了?
next if defender_groups[i].fighter[j].dead?
#生成战斗者
#使efs变戏法般地出现(a[0],a[1],DEF”,“防守队员”,2,防守队员组[i].战斗者[j]]
conjure_efs(a[0],a[1],"DEF","theplayer",2,defender_groups[i].fighter[j])
#防御者组[i]战士[j].设置队长组织随机数据(@当前首领,i+1)
defender_groups[i].fighter[j].setImoprtantData(@current_leader,i+1)
#防守队员组[i].战斗机[j].设定目标_xy(a[0],a[1])
defender_groups[i].fighter[j].set_goal_xy(a[0],a[1])
#删除空地
space.delete([a[0],a[1]])#空地删除([a[0],a[1]])
end #if
end #for j in 0.. @team_groups[i].fighter.size-1
end #for i in 0.. @team_groups.size-1
###########
numbers = 0 #数字=0
#对于0..@敌军组中的我。大小-1
for i in 0.. @enermy_groups.size-1
# 对于0..@敌军组[i]中的j。战士尺寸-1
for j in 0.. @enermy_groups[i].fighter.size-1
numbers+=1#数字+=1
end
end
#三分之一切割=数字/3
one_third_cut = numbers/3
#空格0=@efs_伏击_攻击_出生点_0
space0 = @efs_ambush_attacker_spawn_0
space1 = @efs_ambush_attacker_spawn_1
space2 = @efs_ambush_attacker_spawn_2
#计算器数字=0
counter_for_num = 0
#对于0..攻击者组中的i。尺寸-1
for i in 0.. attacker_groups.size-1
#对于0..攻击者组中的i。战斗者尺寸-1
for j in 0.. attacker_groups[i].fighter.size-1
#make_map_move(space)
if space.size == 0 #如果空地大小==0
print "无法散开队伍进行战斗" #打印"无法散开队伍进行战斗"
else#否则
#如果计数器的数字<三分之一切割
if counter_for_num < one_third_cut
a = space0[0] #a=空地0[0]
#然后 计数器的数字<三分之一切割*2
elsif counter_for_num < one_third_cut*2
a = space1[0]#a=空地1[0]
else #否则
a = space2[0]#a=空地2[0]
end
#counter2 += 1
#下一步,如果攻击组[i]。战斗机[j]。死了?
next if attacker_groups[i].fighter[j].dead?
#使efs变戏法般地出现(a[0],a[1],DEF”,“攻击队员”,2,攻击队员组[i].战斗者[j]]
conjure_efs(a[0],a[1],"ATK","player",8,attacker_groups[i].fighter[j])
#攻击者组[i]战士[j].设置队长组织随机数据(@当前首领,i+1)
attacker_groups[i].fighter[j].setImoprtantData(@current_leader,i+1)
##攻击队员组[i].战斗者[j].设定目标_xy(a[0],a[1])
attacker_groups[i].fighter[j].set_goal_xy(a[0],a[1])
#删除空地
if counter_for_num < one_third_cut#如果计数器的数字<三分之一切割
space0.delete([a[0],a[1]])#空格0.删除([a[0],a[1]])
#然后 计数器的数字<三分之一切割*2
elsif counter_for_num < one_third_cut*2
space1.delete([a[0],a[1]])##空格1.删除([a[0],a[1]])
else
space2.delete([a[0],a[1]])##空格2.删除([a[0],a[1]])
end
end #if
counter_for_num+=1#数字+=1的计数器
end #for j in 0.. @team_groups[i].fighter.size-1
end #for i in 0.. @team_groups.size-1
# 重置
@spriteset.dispose#@精灵放置。处理
@spriteset = Spriteset_Map.new#@精灵放置=精灵放置地图.新建
end