#-------------------------------------------------------- # 获得出生点位置(地形标记) # 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
7.png (48.76 KB, 下载次数: 11)
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |