diff --git a/Assets/ManagedResources/~Lua/Message/MapInfoProto_pb.lua b/Assets/ManagedResources/~Lua/Message/MapInfoProto_pb.lua index 39112a70b8..c414ece36e 100644 --- a/Assets/ManagedResources/~Lua/Message/MapInfoProto_pb.lua +++ b/Assets/ManagedResources/~Lua/Message/MapInfoProto_pb.lua @@ -15,6 +15,7 @@ TRIALHEROINFO_STAR_FIELD = protobuf.FieldDescriptor(); TRIALHEROINFO_HEROHP_FIELD = protobuf.FieldDescriptor(); TRIALHEROINFO_LEVEL_FIELD = protobuf.FieldDescriptor(); TRIALHEROINFO_SKINID_FIELD = protobuf.FieldDescriptor(); +TRIALHEROINFO_POSITION_FIELD = protobuf.FieldDescriptor(); DIFFICULTMAPOPTION = protobuf.Descriptor(); DIFFICULTMAPOPTION_ID_FIELD = protobuf.FieldDescriptor(); DIFFICULTMAPOPTION_MAPDIFFICULTY_FIELD = protobuf.FieldDescriptor(); @@ -152,8 +153,11 @@ ENDLESSSETTEAMINDICATION_INFO_FIELD = protobuf.FieldDescriptor(); ENDLESSMAPCHANGE = protobuf.Descriptor(); ENDLESSMAPCHANGE_MAPID_FIELD = protobuf.FieldDescriptor(); ENDLESSMAPCHANGE_WORLDLEVEL_FIELD = protobuf.FieldDescriptor(); +TRIALSAVEHERO = protobuf.Descriptor(); +TRIALSAVEHERO_HEROID_FIELD = protobuf.FieldDescriptor(); +TRIALSAVEHERO_POSITION_FIELD = protobuf.FieldDescriptor(); TRIALHEROINFOSAVEREQUEST = protobuf.Descriptor(); -TRIALHEROINFOSAVEREQUEST_HEROIDS_FIELD = protobuf.FieldDescriptor(); +TRIALHEROINFOSAVEREQUEST_HEROES_FIELD = protobuf.FieldDescriptor(); TRIALHEROINFOSAVERESPONSE = protobuf.Descriptor(); TRIALHEROINFOSAVERESPONSE_HEROES_FIELD = protobuf.FieldDescriptor(); GETTRIALBOXREWARDREQUEST = protobuf.Descriptor(); @@ -325,11 +329,21 @@ TRIALHEROINFO_SKINID_FIELD.default_value = 0 TRIALHEROINFO_SKINID_FIELD.type = 5 TRIALHEROINFO_SKINID_FIELD.cpp_type = 1 +TRIALHEROINFO_POSITION_FIELD.name = "position" +TRIALHEROINFO_POSITION_FIELD.full_name = ".rpc.protocols.TrialHeroInfo.position" +TRIALHEROINFO_POSITION_FIELD.number = 7 +TRIALHEROINFO_POSITION_FIELD.index = 6 +TRIALHEROINFO_POSITION_FIELD.label = 1 +TRIALHEROINFO_POSITION_FIELD.has_default_value = false +TRIALHEROINFO_POSITION_FIELD.default_value = 0 +TRIALHEROINFO_POSITION_FIELD.type = 5 +TRIALHEROINFO_POSITION_FIELD.cpp_type = 1 + TRIALHEROINFO.name = "TrialHeroInfo" TRIALHEROINFO.full_name = ".rpc.protocols.TrialHeroInfo" TRIALHEROINFO.nested_types = {} TRIALHEROINFO.enum_types = {} -TRIALHEROINFO.fields = {TRIALHEROINFO_HEROID_FIELD, TRIALHEROINFO_TMPID_FIELD, TRIALHEROINFO_STAR_FIELD, TRIALHEROINFO_HEROHP_FIELD, TRIALHEROINFO_LEVEL_FIELD, TRIALHEROINFO_SKINID_FIELD} +TRIALHEROINFO.fields = {TRIALHEROINFO_HEROID_FIELD, TRIALHEROINFO_TMPID_FIELD, TRIALHEROINFO_STAR_FIELD, TRIALHEROINFO_HEROHP_FIELD, TRIALHEROINFO_LEVEL_FIELD, TRIALHEROINFO_SKINID_FIELD, TRIALHEROINFO_POSITION_FIELD} TRIALHEROINFO.is_extendable = false TRIALHEROINFO.extensions = {} DIFFICULTMAPOPTION_ID_FIELD.name = "Id" @@ -1619,21 +1633,49 @@ ENDLESSMAPCHANGE.enum_types = {} ENDLESSMAPCHANGE.fields = {ENDLESSMAPCHANGE_MAPID_FIELD, ENDLESSMAPCHANGE_WORLDLEVEL_FIELD} ENDLESSMAPCHANGE.is_extendable = false ENDLESSMAPCHANGE.extensions = {} -TRIALHEROINFOSAVEREQUEST_HEROIDS_FIELD.name = "heroIds" -TRIALHEROINFOSAVEREQUEST_HEROIDS_FIELD.full_name = ".rpc.protocols.TrialHeroInfoSaveRequest.heroIds" -TRIALHEROINFOSAVEREQUEST_HEROIDS_FIELD.number = 1 -TRIALHEROINFOSAVEREQUEST_HEROIDS_FIELD.index = 0 -TRIALHEROINFOSAVEREQUEST_HEROIDS_FIELD.label = 3 -TRIALHEROINFOSAVEREQUEST_HEROIDS_FIELD.has_default_value = false -TRIALHEROINFOSAVEREQUEST_HEROIDS_FIELD.default_value = {} -TRIALHEROINFOSAVEREQUEST_HEROIDS_FIELD.type = 9 -TRIALHEROINFOSAVEREQUEST_HEROIDS_FIELD.cpp_type = 9 +TRIALSAVEHERO_HEROID_FIELD.name = "heroId" +TRIALSAVEHERO_HEROID_FIELD.full_name = ".rpc.protocols.TrialSaveHero.heroId" +TRIALSAVEHERO_HEROID_FIELD.number = 1 +TRIALSAVEHERO_HEROID_FIELD.index = 0 +TRIALSAVEHERO_HEROID_FIELD.label = 1 +TRIALSAVEHERO_HEROID_FIELD.has_default_value = false +TRIALSAVEHERO_HEROID_FIELD.default_value = "" +TRIALSAVEHERO_HEROID_FIELD.type = 9 +TRIALSAVEHERO_HEROID_FIELD.cpp_type = 9 + +TRIALSAVEHERO_POSITION_FIELD.name = "position" +TRIALSAVEHERO_POSITION_FIELD.full_name = ".rpc.protocols.TrialSaveHero.position" +TRIALSAVEHERO_POSITION_FIELD.number = 2 +TRIALSAVEHERO_POSITION_FIELD.index = 1 +TRIALSAVEHERO_POSITION_FIELD.label = 1 +TRIALSAVEHERO_POSITION_FIELD.has_default_value = false +TRIALSAVEHERO_POSITION_FIELD.default_value = 0 +TRIALSAVEHERO_POSITION_FIELD.type = 5 +TRIALSAVEHERO_POSITION_FIELD.cpp_type = 1 + +TRIALSAVEHERO.name = "TrialSaveHero" +TRIALSAVEHERO.full_name = ".rpc.protocols.TrialSaveHero" +TRIALSAVEHERO.nested_types = {} +TRIALSAVEHERO.enum_types = {} +TRIALSAVEHERO.fields = {TRIALSAVEHERO_HEROID_FIELD, TRIALSAVEHERO_POSITION_FIELD} +TRIALSAVEHERO.is_extendable = false +TRIALSAVEHERO.extensions = {} +TRIALHEROINFOSAVEREQUEST_HEROES_FIELD.name = "heroes" +TRIALHEROINFOSAVEREQUEST_HEROES_FIELD.full_name = ".rpc.protocols.TrialHeroInfoSaveRequest.heroes" +TRIALHEROINFOSAVEREQUEST_HEROES_FIELD.number = 1 +TRIALHEROINFOSAVEREQUEST_HEROES_FIELD.index = 0 +TRIALHEROINFOSAVEREQUEST_HEROES_FIELD.label = 3 +TRIALHEROINFOSAVEREQUEST_HEROES_FIELD.has_default_value = false +TRIALHEROINFOSAVEREQUEST_HEROES_FIELD.default_value = {} +TRIALHEROINFOSAVEREQUEST_HEROES_FIELD.message_type = TRIALSAVEHERO +TRIALHEROINFOSAVEREQUEST_HEROES_FIELD.type = 11 +TRIALHEROINFOSAVEREQUEST_HEROES_FIELD.cpp_type = 10 TRIALHEROINFOSAVEREQUEST.name = "TrialHeroInfoSaveRequest" TRIALHEROINFOSAVEREQUEST.full_name = ".rpc.protocols.TrialHeroInfoSaveRequest" TRIALHEROINFOSAVEREQUEST.nested_types = {} TRIALHEROINFOSAVEREQUEST.enum_types = {} -TRIALHEROINFOSAVEREQUEST.fields = {TRIALHEROINFOSAVEREQUEST_HEROIDS_FIELD} +TRIALHEROINFOSAVEREQUEST.fields = {TRIALHEROINFOSAVEREQUEST_HEROES_FIELD} TRIALHEROINFOSAVEREQUEST.is_extendable = false TRIALHEROINFOSAVEREQUEST.extensions = {} TRIALHEROINFOSAVERESPONSE_HEROES_FIELD.name = "heroes" @@ -2377,6 +2419,7 @@ TowerRewardResponse = protobuf.Message(TOWERREWARDRESPONSE) TrialHeroInfo = protobuf.Message(TRIALHEROINFO) TrialHeroInfoSaveRequest = protobuf.Message(TRIALHEROINFOSAVEREQUEST) TrialHeroInfoSaveResponse = protobuf.Message(TRIALHEROINFOSAVERESPONSE) +TrialSaveHero = protobuf.Message(TRIALSAVEHERO) UseAddHpItemRequest = protobuf.Message(USEADDHPITEMREQUEST) UseTowerBuffRequest = protobuf.Message(USETOWERBUFFREQUEST) UseTowerBuffResponse = protobuf.Message(USETOWERBUFFRESPONSE) diff --git a/Assets/ManagedResources/~Lua/Modules/Formation/FormationEditPopup.lua b/Assets/ManagedResources/~Lua/Modules/Formation/FormationEditPopup.lua index ed5b56f0d3..f5a1e4b447 100644 --- a/Assets/ManagedResources/~Lua/Modules/Formation/FormationEditPopup.lua +++ b/Assets/ManagedResources/~Lua/Modules/Formation/FormationEditPopup.lua @@ -74,23 +74,31 @@ function FormationEditPopup:BindEvent() --选定按钮 Util.AddClick(this.BtnSure, function() local go=function() - local dids={} + local heros={} for i, v in ipairs(choosedList) do - table.insert(dids,v.did) + local hero = {} + hero.heroId = v.did + hero.position = #choosedList + 1 + table.insert(heros,hero) end - table.sort(dids,function (a,b) - if HeroManager.GetSingleHeroData(a).warPower >= HeroManager.GetSingleHeroData(b).warPower then - return a > b - else - return a < b - end + table.sort(heros,function (a,b) + return HeroManager.GetSingleHeroData(a.heroId).warPower > HeroManager.GetSingleHeroData(b.heroId).warPower end) + for i = 1, #heros do + heros[i].position = i + end if #choosedList <= maxNum and #choosedList > 0 then - NetManager.TrialHeroInfoSaveRequest(dids,function(msg) + NetManager.TrialHeroInfoSaveRequest(heros,function(msg) PopupTipPanel.ShowTip(Language[10670]) - MapManager.trialHeroInfo = msg.heroes + local heros = msg.heroes + if heros and #heros > 1 then + table.sort(heros,function (a,b) + return a.position < b.position + end) + end + MapManager.trialHeroInfo = heros if func~=nil then --保存完毕后 将英雄did合集传递过去 此时我拥有这些英雄 不用担心英雄已被删除 - func(dids) + func(heros) end PlayerPrefs.SetInt(PlayerManager.uid.."Trial",1)--设置森罗红点关 CheckRedPointStatus(RedPointType.Trial) diff --git a/Assets/ManagedResources/~Lua/Modules/Net/NetManager.lua b/Assets/ManagedResources/~Lua/Modules/Net/NetManager.lua index 4dbde51371..9093f5690f 100644 --- a/Assets/ManagedResources/~Lua/Modules/Net/NetManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Net/NetManager.lua @@ -366,10 +366,14 @@ function this.MapInfoRequest(mapModeId,func) local msg = MapInfoProto_pb.MapEnterResponse() msg:ParseFromString(data) MapManager.curMapId = msg.mapId - MapManager.trialHeroInfo=msg.infos - for i = 1, #msg.infos do - Log("Id:"..msg.infos[i].tmpId.." 动态Id:"..msg.infos[i].heroId) + + local heros = msg.infos + if heros then + table.sort(heros,function (a,b) + return a.position < b.position + end) end + MapManager.trialHeroInfo = heros MapTrialManager.curTowerLevel = msg.curTower MapTrialManager.bombUsed = msg.bombUsed MapTrialManager.killCount=msg.killCount @@ -4178,10 +4182,12 @@ function NetManager.GetTreasureOfHeavenRewardRequest(uid,func) end --森罗幻境请求保存上阵 -function NetManager.TrialHeroInfoSaveRequest(heroIds,func) +function NetManager.TrialHeroInfoSaveRequest(heros,func) local data = MapInfoProto_pb.TrialHeroInfoSaveRequest() - for i = 1, #heroIds do - data.heroIds:append(heroIds[i]) + for i = 1, #heros do + local c = data.heroes:add() + c.heroId = heros[i].heroId + c.position = heros[i].position end local msg = data:SerializeToString()