123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- ---@class UnionElectionInfo
- UnionElectionInfo = class()
- local this = UnionElectionInfo
- ---@class UnionProto.UnionInfo
- ---@field unionId number @行会id
- ---@field unionName string @行会名字
- ---@field unionLevel number @行会等级
- ---@field unionExp number @行会经验
- ---@field unionCapital number @ 行会资金
- ---@field grade string @战盟评分
- ---@field announcement string @招募公告
- ---@field unionArmband number @行会臂章
- ---@field leaderOnTime number @盟主上位时间
- ---@field unionMemberInfo UnionProto.UnionMemberInfo[] @成员信息
- ---@class UnionProto.UnionMemberInfo
- ---@field name string @名称
- ---@field memberId number @成员id
- ---@field level number @等级
- ---@field position number @1表示盟主,2表示副盟主,3表示战斗队长,4表示精英,5表示成员
- ---@field onlineState number @1表示在线,0表示不在线
- ---@field time number @离线时间
- ---@field fightValue number @ 战力
- ---@field devote number @ 贡献值
- ---@field career number @需要职业 战士1 法师2 弓箭手3
- ---@class UnionProto.ViewUnionRes
- ---@field unionInfo UnionProto.UnionInfo
- function this:ctor()
- end
- function this:Reset()
- self.electionData = nil
- self.replaceData = nil
- self.campaignData = nil
- end
- function this:Init()
- self:InitData()
- self:RegistMessages()
- end
- function this:InitData()
- end
- function this:RegistMessages()
- --竞选与取代
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_UNION_RUN_FOR_LEADER_DATA , self.RES_UNION_RUN_FOR_LEADER_DATA , self)
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_PLAYER_RUN_FOR_LEADER_VOTE, self.RES_PLAYER_RUN_FOR_LEADER_VOTE, self)
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_PLAYER_RUN_FOR_LEADER, self.RES_PLAYER_RUN_FOR_LEADER, self)
- --弹劾
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_SEND_UNION_IMPEACH_INFO, self.RES_SEND_UNION_IMPEACH_INFO, self)
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_UNION_IMPEACH_LEADER, self.RES_UNION_IMPEACH_LEADER, self)
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_UNION_IMPEACH_VOTE, self.RES_UNION_IMPEACH_VOTE, self)
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_GET_UNION_INFO, self.RES_GET_UNION_INFO, self)
- end
- function this:RES_GET_UNION_INFO(_, message)
- self.MyUnionInfo = message
- end
- --更新竞选数据
- function this:RES_UNION_RUN_FOR_LEADER_DATA(id, data)
- if data.isreplace == nil then
- self.electionData = nil
- self.replaceData = nil
- else
- if data.isreplace == false then
- self.electionData = data
- else
- self.replaceData = data
- end
- end
- SL:onLUAEvent(LUA_EVENT_ELECTION_DATA_CHANGE, data.isreplace)
- end
- --更新投票数据
- function this:RES_PLAYER_RUN_FOR_LEADER_VOTE(id, data)
- local rid = tostring(data["1"])
- local ticket = data["2"]
- local dataList = self:GetElectionDataList()
- if dataList then
- if dataList[rid] then
- dataList[rid].count = dataList[rid].count + ticket
- else
- dataList[rid] = {}
- dataList[rid].count = ticket
- end
- SL:onLUAEvent(LUA_EVENT_ELECTION_DATA_CHANGE, false)
- end
- end
- --发起竞选/取代成功后跳转对应功能
- function this:RES_PLAYER_RUN_FOR_LEADER(id, message)
- if message == 2 or message == "2" then
- SL:onLUAEvent(LUA_EVENT_CHANGE_UNION_FUNCTION, "replaceToggle")
- else
- SL:onLUAEvent(LUA_EVENT_CHANGE_UNION_FUNCTION, "electionToggle")
- end
- end
- --更新战盟弹劾数据
- function this:RES_SEND_UNION_IMPEACH_INFO(id, message)
- self.campaignData = message
- SL:onLUAEvent(LUA_EVENT_UNION_CAMPAIGN_DATA)
- end
- --发起弹劾盟主成功后跳转弹劾页面
- function this:RES_UNION_IMPEACH_LEADER(id, message)
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_GET_UNION_IMPEACH_INFO)
- SL:onLUAEvent(LUA_EVENT_CHANGE_UNION_FUNCTION, "campaignToggle")
- end
- --弹劾盟主投票数据变化
- function this:RES_UNION_IMPEACH_VOTE(id, message)
- if self.campaignData then
- if tonumber(message) == 1 then
- if not self.campaignData.agreelist then
- self.campaignData.agreelist = {}
- end
- table.insert(self.campaignData.agreelist, 1)
- else
- if not self.campaignData.disagreelist then
- self.campaignData.disagreelist = {}
- end
- table.insert(self.campaignData.disagreelist, 1)
- end
- end
- SL:onLUAEvent(LUA_EVENT_UNION_CAMPAIGN_VOTE_CHANGE)
- end
- --竞选人列表
- function this:GetElectionDataList()
- if self.electionData and self.electionData.ridlist and next(self.electionData.ridlist) then
- if self.MyUnionInfo and self.MyUnionInfo.memberinfos then
- local list = {}
- for i, v in pairs(self.electionData.ridlist) do
- if self.MyUnionInfo.memberinfos[i] then
- list[i] = v
- end
- end
- return list
- end
- return nil
- else
- return nil
- end
- end
- --竞选结束时间
- function this:GetElectionEndTime()
- return self.electionData and self.electionData.endtime or nil
- end
- --取代人列表
- function this:GetReplaceDataList()
- if self.replaceData and self.replaceData.ridlist and next(self.replaceData.ridlist) then
- if self.MyUnionInfo and self.MyUnionInfo.memberinfos then
- local list = {}
- for i, v in pairs(self.replaceData.ridlist) do
- if self.MyUnionInfo.memberinfos[i] then
- list[i] = v
- end
- end
- return list
- end
- return nil
- else
- return nil
- end
- end
- --取代结束时间
- function this:GetReplaceEndTime()
- return self.replaceData and self.replaceData.endtime or nil
- end
- --获取弹劾数据
- function this:GetCampaignData()
- return self.campaignData
- end
- --获取弹劾赞成的票数
- function this:GetCampaignAgreeNum()
- return self.campaignData and table.count(self.campaignData.agreelist) or 0
- end
- --获取弹劾反对的票数
- function this:GetCampaignOpposeNum()
- return self.campaignData and table.count(self.campaignData.disagreelist) or 0
- end
- --取代结束时间
- function this:GetCampaignEndTime()
- return self.campaignData and self.campaignData.endtime or nil
- end
- --获取加入战盟的时间(分钟)
- function this:GetJoinUnionTime()
- if table.isNullOrEmpty(self.MyUnionInfo) then
- return 0
- end
- for id, info in pairs(self.MyUnionInfo.memberinfos) do
- if id == tostring(SL:MeData_GetId()) then
- local time = (Time.GetServerTime() - tonumber(info.jointime)) // 1000
- return time//60
- end
- end
- return 0
- end
- --单位毫秒
- function this.FormatTimeStr(time)
- time = time // 1000
- local s = time % 60
- local m = time // 60 % 60
- local h = time // 3600 % 24
- return string.format("%d时%d分%d秒", h, m, s);
- end
|