【工会技能】 优化 连续升级

dev_chengFeng
zhangqiang 2020-12-29 16:15:11 +08:00
parent 99d574ba27
commit 35f211a2a4
5 changed files with 237 additions and 25 deletions

View File

@ -228,6 +228,11 @@ GETALLGUILDSKILLRESPONSE = protobuf.Descriptor();
GETALLGUILDSKILLRESPONSE_SKILL_FIELD = protobuf.FieldDescriptor();
GUILDSKILLLEVELUPREQUEST = protobuf.Descriptor();
GUILDSKILLLEVELUPREQUEST_TYPE_FIELD = protobuf.FieldDescriptor();
GUILDSKILLLEVELUPREQUEST_BEFORELEVEL_FIELD = protobuf.FieldDescriptor();
GUILDSKILLLEVELUPREQUEST_AFTERLEVEL_FIELD = protobuf.FieldDescriptor();
GUILDSKILLLEVELUPRESPONSE = protobuf.Descriptor();
GUILDSKILLLEVELUPRESPONSE_TYPE_FIELD = protobuf.FieldDescriptor();
GUILDSKILLLEVELUPRESPONSE_CURLEVEL_FIELD = protobuf.FieldDescriptor();
RESETGUILDSKILLREQUEST = protobuf.Descriptor();
RESETGUILDSKILLREQUEST_TYPE_FIELD = protobuf.FieldDescriptor();
RESETGUILDSKILLRESPONSE = protobuf.Descriptor();
@ -2429,13 +2434,60 @@ GUILDSKILLLEVELUPREQUEST_TYPE_FIELD.default_value = 0
GUILDSKILLLEVELUPREQUEST_TYPE_FIELD.type = 5
GUILDSKILLLEVELUPREQUEST_TYPE_FIELD.cpp_type = 1
GUILDSKILLLEVELUPREQUEST_BEFORELEVEL_FIELD.name = "beforeLevel"
GUILDSKILLLEVELUPREQUEST_BEFORELEVEL_FIELD.full_name = ".rpc.protocols.GuildSkillLevelUpRequest.beforeLevel"
GUILDSKILLLEVELUPREQUEST_BEFORELEVEL_FIELD.number = 2
GUILDSKILLLEVELUPREQUEST_BEFORELEVEL_FIELD.index = 1
GUILDSKILLLEVELUPREQUEST_BEFORELEVEL_FIELD.label = 1
GUILDSKILLLEVELUPREQUEST_BEFORELEVEL_FIELD.has_default_value = false
GUILDSKILLLEVELUPREQUEST_BEFORELEVEL_FIELD.default_value = 0
GUILDSKILLLEVELUPREQUEST_BEFORELEVEL_FIELD.type = 5
GUILDSKILLLEVELUPREQUEST_BEFORELEVEL_FIELD.cpp_type = 1
GUILDSKILLLEVELUPREQUEST_AFTERLEVEL_FIELD.name = "afterLevel"
GUILDSKILLLEVELUPREQUEST_AFTERLEVEL_FIELD.full_name = ".rpc.protocols.GuildSkillLevelUpRequest.afterLevel"
GUILDSKILLLEVELUPREQUEST_AFTERLEVEL_FIELD.number = 3
GUILDSKILLLEVELUPREQUEST_AFTERLEVEL_FIELD.index = 2
GUILDSKILLLEVELUPREQUEST_AFTERLEVEL_FIELD.label = 1
GUILDSKILLLEVELUPREQUEST_AFTERLEVEL_FIELD.has_default_value = false
GUILDSKILLLEVELUPREQUEST_AFTERLEVEL_FIELD.default_value = 0
GUILDSKILLLEVELUPREQUEST_AFTERLEVEL_FIELD.type = 5
GUILDSKILLLEVELUPREQUEST_AFTERLEVEL_FIELD.cpp_type = 1
GUILDSKILLLEVELUPREQUEST.name = "GuildSkillLevelUpRequest"
GUILDSKILLLEVELUPREQUEST.full_name = ".rpc.protocols.GuildSkillLevelUpRequest"
GUILDSKILLLEVELUPREQUEST.nested_types = {}
GUILDSKILLLEVELUPREQUEST.enum_types = {}
GUILDSKILLLEVELUPREQUEST.fields = {GUILDSKILLLEVELUPREQUEST_TYPE_FIELD}
GUILDSKILLLEVELUPREQUEST.fields = {GUILDSKILLLEVELUPREQUEST_TYPE_FIELD, GUILDSKILLLEVELUPREQUEST_BEFORELEVEL_FIELD, GUILDSKILLLEVELUPREQUEST_AFTERLEVEL_FIELD}
GUILDSKILLLEVELUPREQUEST.is_extendable = false
GUILDSKILLLEVELUPREQUEST.extensions = {}
GUILDSKILLLEVELUPRESPONSE_TYPE_FIELD.name = "type"
GUILDSKILLLEVELUPRESPONSE_TYPE_FIELD.full_name = ".rpc.protocols.GuildSkillLevelUpResponse.type"
GUILDSKILLLEVELUPRESPONSE_TYPE_FIELD.number = 1
GUILDSKILLLEVELUPRESPONSE_TYPE_FIELD.index = 0
GUILDSKILLLEVELUPRESPONSE_TYPE_FIELD.label = 1
GUILDSKILLLEVELUPRESPONSE_TYPE_FIELD.has_default_value = false
GUILDSKILLLEVELUPRESPONSE_TYPE_FIELD.default_value = 0
GUILDSKILLLEVELUPRESPONSE_TYPE_FIELD.type = 5
GUILDSKILLLEVELUPRESPONSE_TYPE_FIELD.cpp_type = 1
GUILDSKILLLEVELUPRESPONSE_CURLEVEL_FIELD.name = "curlevel"
GUILDSKILLLEVELUPRESPONSE_CURLEVEL_FIELD.full_name = ".rpc.protocols.GuildSkillLevelUpResponse.curlevel"
GUILDSKILLLEVELUPRESPONSE_CURLEVEL_FIELD.number = 2
GUILDSKILLLEVELUPRESPONSE_CURLEVEL_FIELD.index = 1
GUILDSKILLLEVELUPRESPONSE_CURLEVEL_FIELD.label = 1
GUILDSKILLLEVELUPRESPONSE_CURLEVEL_FIELD.has_default_value = false
GUILDSKILLLEVELUPRESPONSE_CURLEVEL_FIELD.default_value = 0
GUILDSKILLLEVELUPRESPONSE_CURLEVEL_FIELD.type = 5
GUILDSKILLLEVELUPRESPONSE_CURLEVEL_FIELD.cpp_type = 1
GUILDSKILLLEVELUPRESPONSE.name = "GuildSkillLevelUpResponse"
GUILDSKILLLEVELUPRESPONSE.full_name = ".rpc.protocols.GuildSkillLevelUpResponse"
GUILDSKILLLEVELUPRESPONSE.nested_types = {}
GUILDSKILLLEVELUPRESPONSE.enum_types = {}
GUILDSKILLLEVELUPRESPONSE.fields = {GUILDSKILLLEVELUPRESPONSE_TYPE_FIELD, GUILDSKILLLEVELUPRESPONSE_CURLEVEL_FIELD}
GUILDSKILLLEVELUPRESPONSE.is_extendable = false
GUILDSKILLLEVELUPRESPONSE.extensions = {}
RESETGUILDSKILLREQUEST_TYPE_FIELD.name = "type"
RESETGUILDSKILLREQUEST_TYPE_FIELD.full_name = ".rpc.protocols.ResetGuildSkillRequest.type"
RESETGUILDSKILLREQUEST_TYPE_FIELD.number = 1
@ -3667,6 +3719,7 @@ GuildSendHelpRequest = protobuf.Message(GUILDSENDHELPREQUEST)
GuildSendHelpResponse = protobuf.Message(GUILDSENDHELPRESPONSE)
GuildSkill = protobuf.Message(GUILDSKILL)
GuildSkillLevelUpRequest = protobuf.Message(GUILDSKILLLEVELUPREQUEST)
GuildSkillLevelUpResponse = protobuf.Message(GUILDSKILLLEVELUPRESPONSE)
GuildTakeHelpBoxRequest = protobuf.Message(GUILDTAKEHELPBOXREQUEST)
GuildTakeHelpBoxResponse = protobuf.Message(GUILDTAKEHELPBOXRESPONSE)
GuildTakeHelpRewardRequest = protobuf.Message(GUILDTAKEHELPREWARDREQUEST)

View File

@ -34,6 +34,7 @@ function this.FightBattle( callBack)
local type = 0
local fightType = 0
local monsterId = 0
-- LogGreen("this.progress "..this.progress)
if this.progress == GuildCarDelayProType.Challenge then
local worldBossConfig = ConfigManager.GetConfigData(ConfigName.WorldBossConfig,GuildCarDelayManager.bossIndexId)
if worldBossConfig and worldBossConfig.MonsterId then
@ -41,14 +42,26 @@ function this.FightBattle( callBack)
end
fightType = 0
type = 1
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.GUILD_CAR_DELEAY_CHALLENGE, 1)
elseif this.progress == GuildCarDelayProType.Loot then
monsterId = this.heroDidData.uid
fightType = 1
type = 2
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.GUILD_CAR_DELEAY_LOOT, 1)
end
-- LogGreen("type "..type.." monsterId "..monsterId)
-- if monsterId then
-- LogGreen("type "..type.." monsterId "..monsterId)
-- else
-- LogGreen("type "..type.." monsterId nil")
-- end
if type <= 0 or not monsterId then
PopupTipPanel.ShowTip("阶段已变更无法战斗,请退出!")
return
else
if this.progress == GuildCarDelayProType.Challenge then
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.GUILD_CAR_DELEAY_CHALLENGE, 1)
elseif this.progress == GuildCarDelayProType.Loot then
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.GUILD_CAR_DELEAY_LOOT, 1)
end
end
NetManager.FastFightChallengeRequest(type,monsterId,function (msg)
this.score = msg.score
this.hurt = msg.hurt

View File

@ -29,6 +29,18 @@ function this.InitData(msg)
end
end
end
--连续升级后端回复 更新前端等级
function this.LongLvUpClickBackFun(msg)
local baceLv = math.floor(msg.curlevel/#allGuildSkillData[msg.type])
local addLv = msg.curlevel%#allGuildSkillData[msg.type]
for j = 1, #allGuildSkillData[msg.type] do
local curLv = baceLv
if j <= addLv then
curLv = curLv + 1
end
this.InitSingleData(msg.type,j,curLv)
end
end
function this.InitSingleData(_Profession,_TechId,_level)
--LogError("初始化公会数据 _Profession ".._Profession.. " _TechId ".._TechId .. " _level ".._level)
local singleSkillData = {}

View File

@ -36,6 +36,17 @@ local proInfo = {
local tabRedPotList = {}
local oldWarPowerValue = 0
local newWarPowerValue = 0
local oldLv
--长按升级状态
local _isClicked = false
local _isReqLvUp = false
local _isLongPress = false
this.timePressStarted = 0--监听长按事件
this.priThread = nil--协同程序播放升级属性提升值动画用
local isTriggerLongClick = false--长按是否升过级
--初始化组件(用于子类重写)
function GuildSkillUpLvPopup:InitComponent()
this.tabBox = Util.GetGameObject(self.gameObject, "bg/TabBox")
@ -56,6 +67,8 @@ function GuildSkillUpLvPopup:InitComponent()
materals[i] = Util.GetGameObject(self.gameObject,"bg/materialGrid/needGoldText ("..i..")")
end
this.TabCtrl = TabBox.New()
this.upLvTrigger = Util.GetEventTriggerListener(this.btnUpLv)
end
--绑定事件(用于子类重写)
@ -67,25 +80,34 @@ function GuildSkillUpLvPopup:BindEvent()
self:ClosePanel()
end)
Util.AddClick(this.btnUpLv,function()
if materialNoId > 0 then
PopupTipPanel.ShowTip(ConfigManager.GetConfigData(ConfigName.ItemConfig,materialNoId).Name..Language[11085])
return
if Time.realtimeSinceStartup - this.timePressStarted <= 0.4 then
this.LvUpClick(true)
end
NetManager.SinGleGuildSkillUpLv(curIndexChangeFun[curIndex],function(msg)
PopupTipPanel.ShowTip(Language[11086])
GuildSkillManager.SetSkillDataLv(curIndexChangeFun[curIndex],curSeletSkill.id,curSeletSkill.level + 1)
this.OnClickTabBtn(curIndex,true)
this.RefreshTabRedPoint(curIndex)
newWarPowerValue = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
if oldWarPowerValue ~= newWarPowerValue then
UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldWarPowerValue,newValue = newWarPowerValue})
Game.GlobalEvent:DispatchEvent(GameEvent.Player.OnChangeName)
oldWarPowerValue = newWarPowerValue
end
Game.GlobalEvent:DispatchEvent(GameEvent.Player.OnChangeName)
-- CheckRedPointStatus(RedPointType.Guild_Skill)
end)
end)
--长按升级按下状态
this._onPointerDown = function(Pointgo, data)
-- isTriggerLongClick = false
_isClicked = true
this.timePressStarted = Time.realtimeSinceStartup
oldLv = endLv
-- allAddProVal = PokemonManager.GetSinglePokemonAddProData(curPokemonData.dynamicId)
end
--长按升级抬起状态
this._onPointerUp = function(Pointgo, data)
LogPink("连续升级抬起请求升级 "..tostring(_isLongPress))
if _isLongPress then--and isTriggerLongClick
--连续升级抬起请求升级
LogPink("连续升级抬起请求升级 ")
this.LongLvUpClick(oldLv)
end
_isClicked = false
_isLongPress = false
end
this.upLvTrigger.onPointerDown = this.upLvTrigger.onPointerDown + this._onPointerDown
this.upLvTrigger.onPointerUp = this.upLvTrigger.onPointerUp + this._onPointerUp
FixedUpdateBeat:Add(this.OnUpdate, self)--长按方法注册
Util.AddClick(this.btnRest,function()
if endLv <= 0 then
PopupTipPanel.ShowTip(Language[11087])
@ -95,7 +117,7 @@ function GuildSkillUpLvPopup:BindEvent()
GuildSkillManager.GetResetGetDrop(curIndexChangeFun[curIndex]),curIndexChangeFun[curIndex],function()
-- CheckRedPointStatus(RedPointType.Guild_Skill)
GuildSkillManager.ResetGuildSkillData(curIndexChangeFun[curIndex])
this.OnClickTabBtn(curIndexChangeFun[curIndex],true)
this.OnClickTabBtn(curIndex,true)
this.RefreshTabRedPoint()
Game.GlobalEvent:DispatchEvent(GameEvent.Player.OnChangeName)
end)
@ -123,6 +145,20 @@ function GuildSkillUpLvPopup:OnShow()
this.TabCtrl:Init(this.tabBox, _TabData,curIndex)
oldWarPowerValue = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
end
--长按升级处理
function this.OnUpdate()
if _isClicked then
if Time.realtimeSinceStartup - this.timePressStarted > 0.4 then
_isLongPress = true
-- LogPink("_isReqLvUp "..tostring(_isReqLvUp))
if not _isReqLvUp then
_isReqLvUp = true
this.LvUpClick(false)
end
end
end
end
-- tab节点显示自定义
function this.TabAdapter(tab, index, status)
local tabLab = Util.GetGameObject(tab, "Text")
@ -162,7 +198,7 @@ function this.OnClickTabBtn(index,isNoLoadSprite)
end
--展示技能
function this.ShowSkillsAndPros(isNoLoadSprite)
this.titleText.text = Language[11088].._TabData[curIndexChangeFun[curIndex]].name
this.titleText.text = Language[11088].._TabData[curIndex].name
local isEqualityLv,maxLv
endLv,isEqualityLv,maxLv = GuildSkillManager.GetAllGuildSkillLv(curIndexChangeFun[curIndex])
Util.SetGray(this.btnRest, endLv <= 0)
@ -253,11 +289,103 @@ function this.RefreshTabRedPoint(index)
end
end
end
--长按升级结束后请求协议
function this.LongLvUpClick(oldLv)
local oldWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
NetManager.SinGleGuildSkillUpLv(curIndexChangeFun[curIndex],oldLv,endLv,function (msg)
-- GuildSkillManager.SetSkillDataLv(curIndex,curSeletSkill.id,msg.curlevel)
GuildSkillManager.LongLvUpClickBackFun(msg)
this.OnClickTabBtn(curIndex,true)
this.RefreshTabRedPoint(curIndex)
_isReqLvUp = false
if oldWarPowerValue ~= newWarPowerValue then
UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldWarPowerValue,newValue = newWarPowerValue})
Game.GlobalEvent:DispatchEvent(GameEvent.Player.OnChangeName)
oldWarPowerValue = newWarPowerValue
end
Game.GlobalEvent:DispatchEvent(GameEvent.Player.OnChangeName)
end)
end
--升级按钮点击事件处理
function this.LvUpClick(isSingleLvUp)
--各种判断能否升级
if materialNoId > 0 then
PopupTipPanel.ShowTip(ConfigManager.GetConfigData(ConfigName.ItemConfig,materialNoId).Name..Language[11085])
if not isSingleLvUp then
this.LongLvUpClick(oldLv)
_isClicked = false
_isLongPress = false
end
return
end
-- NetManager.SinGleGuildSkillUpLv(curIndex,function(msg)
-- PopupTipPanel.ShowTip(Language[11086])
-- GuildSkillManager.SetSkillDataLv(curIndex,curSeletSkill.id,curSeletSkill.level + 1)
-- this.OnClickTabBtn(curIndex,true)
-- this.RefreshTabRedPoint(curIndex)
-- newWarPowerValue = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
-- if oldWarPowerValue ~= newWarPowerValue then
-- UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldWarPowerValue,newValue = newWarPowerValue})
-- Game.GlobalEvent:DispatchEvent(GameEvent.Player.OnChangeName)
-- oldWarPowerValue = newWarPowerValue
-- end
-- Game.GlobalEvent:DispatchEvent(GameEvent.Player.OnChangeName)
-- -- CheckRedPointStatus(RedPointType.Guild_Skill)
-- end)
if isMaxLv then
if not isSingleLvUp then
this.LongLvUpClick(oldLv)
_isClicked = false
_isLongPress = false
end
return
end
if isSingleLvUp then
NetManager.SinGleGuildSkillUpLv(curIndexChangeFun[curIndex],endLv,endLv + 1,function(msg)
PopupTipPanel.ShowTip(Language[11086])
-- GuildSkillManager.SetSkillDataLv(msg.type,curSeletSkill.id,msg.curlevel)
GuildSkillManager.LongLvUpClickBackFun(msg)
this.OnClickTabBtn(curIndex,true)
this.RefreshTabRedPoint(curIndex)
newWarPowerValue = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
if oldWarPowerValue ~= newWarPowerValue then
UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldWarPowerValue,newValue = newWarPowerValue})
Game.GlobalEvent:DispatchEvent(GameEvent.Player.OnChangeName)
oldWarPowerValue = newWarPowerValue
end
Game.GlobalEvent:DispatchEvent(GameEvent.Player.OnChangeName)
-- CheckRedPointStatus(RedPointType.Guild_Skill)
end)
else
--前端先扣除材料
local curUpLvConsume = curSeletSkill.config.Consume
for i = 1, #curUpLvConsume do
BagManager.HeroLvUpUpdateItemsNum(curUpLvConsume[i][1],curUpLvConsume[i][2])
end
endLv = endLv + 1
-- GuildSkillManager.SetSkillDataLv(curIndex,curSeletSkill.id,curSeletSkill.level + 1)
GuildSkillManager.LongLvUpClickBackFun({type = curIndexChangeFun[curIndex],curlevel = endLv})
this.OnClickTabBtn(curIndex,true)
this.RefreshTabRedPoint(curIndex)
Timer.New(function ()
_isReqLvUp = false
end,0.3):Start()
PopupTipPanel.ShowTip(Language[11086])
end
end
--界面关闭时调用(用于子类重写)
function GuildSkillUpLvPopup:OnClose()
tabRedPotList = {}
HeroManager.UpdateHeroPowerProfession()--也许会卡
GuildSkillManager.UpdataHeroProList = {}
FixedUpdateBeat:Remove(this.OnUpdate, self)
end
--界面销毁时调用(用于子类重写)

View File

@ -3850,13 +3850,19 @@ function NetManager.GetAllGuildSkillData(func)
end)
end
--公会技能升级
function NetManager.SinGleGuildSkillUpLv(profession,func)
function NetManager.SinGleGuildSkillUpLv(profession,beforeLevel,afterLevel,func)
local data = Family_pb.GuildSkillLevelUpRequest()
LogPink("profession,beforeLevel,afterLevel "..profession.." "..beforeLevel.." "..afterLevel)
data.type = profession
data.beforeLevel = beforeLevel
data.afterLevel = afterLevel
local msg = data:SerializeToString()
Network:SendMessageWithCallBack(MessageTypeProto_pb.GUILD_SKILL_LEVEL_UP_REQUEST, MessageTypeProto_pb.GUILD_SKILL_LEVEL_UP_RESPONSE, msg, function(buffer)
local data = buffer:DataByte()
local msg = Family_pb.GuildSkillLevelUpResponse()
msg:ParseFromString(data)
if func then
func()
func(msg)
end
end)
end