MateModel = MateModel or BaseClass(BaseVo, true) local MateModel = MateModel function MateModel:__init() MateModel.Instance = self self:Reset() end function MateModel:Reset() self.game_info = nil self.basic_info = nil self.connect_message = nil self.cut_connect_message = nil self.ship_basic = nil self.select_game_info = nil self.invite_info = nil self:ResetMusicGameInfo() self.music_play_role = 0 self:ResetSelectGameInfo() self:ResetBallStatus() self:ResetBallFlyInfo() self.red_game = {} self.red_mark = {} self.red_ship = false self.red_gift = false self.find_friend_data = {} self.mate_daily_list_info = {}--羁绊日常列表 self.mate_daily_other_list_info = {}--羁绊日常路人列表 self.mate_daily_task_need_chat_role = {}--记录当天需要进行私聊任务的玩家id列表 self.mate_daily_task_need_share_mate_role = {}--记录当天需要进行分享羁绊任务的玩家id列表 self.mate_daily_red = false--羁绊日常红点 self.force_turn_mate_first_red_false = false self.mate_shop_red = false--商店红点 self.mate_shop_red_list = {} self.mate_first_get_friend_red = false--首次结成羁绊的一次性红点 self.last_click_up_btn_time = 0 --上次点击信物升级按钮的时间戳 end function MateModel:GetInstance() if MateModel.Instance == nil then MateModel.Instance = MateModel.New() end return MateModel.Instance end function MateModel:GetOpenNeed( ) local open_lv = Config.Moduleid[149].open_lv local task_id = Config.Moduleid[149].task_id local open_day = Config.Moduleid[149].open_day return open_lv, task_id, open_day end function MateModel:GetKeyValueConf( key ) if not key then return end if Config.Matekeyvalue[key] then return Config.Matekeyvalue[key].value_content end end function MateModel:GetMyUseTitle( ) local mate_name,mate_title = "","" local data = self:GetBasicByRoleId(RoleManager.Instance.mainRoleInfo.mate_title_role_id) if data then mate_name = data.name mate_title = data.title end return mate_name,mate_title end --判断是否已经羁绊 function MateModel:GetIsMateByRoleId( role_id ) if not role_id then return false end local basic = self:GetBasicInfo() if basic then for k,v in pairs(basic) do if v.role_id == role_id then return true end end end return false end function MateModel:ChangeFriendInfo( tag, role_id, value ) if role_id and value and tag then for k,v in pairs(self:GetBasicInfo()) do if v.role_id == role_id then v[tag] = value return end end end end function MateModel:AddDailyReward( role_id,day ) if role_id and day then for k,v in pairs(self:GetBasicInfo()) do if v.role_id == role_id then for k,v in pairs(v.anniversary) do table.insert( v, {day = day} ) end end end end end function MateModel:GetBasicByRoleId( role_id ) if role_id then local basic = self:GetBasicInfo() if basic then for k,v in pairs(basic) do if v.role_id == role_id then return v end end end end end --是否没有羁绊好友 function MateModel:IsNoMateFriend( ) local basic_data = self:GetBasicInfo() if not basic_data or TableSize(basic_data) == 0 then return true end return false end function MateModel:GetBasicInfo( ) return self.basic_info or {} end function MateModel:SetBasicInfo( value ) self.basic_info = value end function MateModel:GetConnectMessage( ) return self.connect_message or {} end function MateModel:SetConnectMessage( value ) self.connect_message = value end function MateModel:GetCutConnectMessage( ) return self.cut_connect_message or {} end function MateModel:SetCutConnectMessage( value ) self.cut_connect_message = value end ------------------------- --友谊的小船 function MateModel:GetShipBasic( ) return self.ship_basic or {} end function MateModel:SetShipBasic( value ) self.ship_basic = value end function MateModel:GetShipIsMax( ) local basic = self:GetShipBasic() if basic and basic.stage then if self:GetShipConfNext( basic.stage,basic.star ) then return false else return true end end end function MateModel:GetShipConf( stage,star ) if stage and star then return Config.Mateboat[ stage .. "@" .. star ] end end function MateModel:GetShipConfNext( stage,star ) if stage and star then if Config.Mateboat[ stage .. "@" .. star+1 ] then return Config.Mateboat[ stage .. "@" .. star+1 ] elseif Config.Mateboat[ stage+1 .. "@" .. star ] then return Config.Mateboat[ stage+1 .. "@" .. 1 ] end end end --获得当前的对应配置 function MateModel:GetCurShipConf( ) local data = self:GetShipBasic() if not data or not data.stage then return end return self:GetShipConf(data.stage, data.star) end function MateModel:GetShipPower( stage,star ) local power = 0 local conf = self:GetShipConf( stage,star ) if conf then power = power + GetFighting(stringtotable(conf.attr),true) end local list_info = self:GetSkillList( ) local skill_temp = false for i,v in ipairs(list_info) do if not self:GetSkillIsLock(v.skill_id,stage) then skill_temp = SkillManager:getInstance():getSkillFromConfig(v.skill_id) if skill_temp and skill_temp.lvs and skill_temp.lvs[1] and tonumber(skill_temp.lvs[1].power) then power = power + tonumber(skill_temp.lvs[1].power) end end end return power end function MateModel:GetLastNextPicture( picture_id ) local last_id,next_id = 0,0 local cur_conf = nil for k,v in pairs(Config.Mateboat) do if v.picture == picture_id then cur_conf = v break end end if cur_conf then if Config.Mateboat[ cur_conf.stage-1 .. "@" .. 1 ] then last_id = Config.Mateboat[ cur_conf.stage-1 .. "@" .. 1 ].picture end if Config.Mateboat[ cur_conf.stage+1 .. "@" .. 1 ] then next_id = Config.Mateboat[ cur_conf.stage+1 .. "@" .. 1 ].picture end end return last_id,next_id end function MateModel:GetSkillList( ) local tab = {} for k,v in pairs(Config.Mateboatskill) do table.insert( tab, v ) end local function sort_call( a,b ) return a.stage < b.stage end table.sort( tab, sort_call ) return tab end function MateModel:GetSkillIsLock( skill_id,stage ) if not skill_id then return "未解锁" end if not stage then local basic = self:GetShipBasic() if not basic then return "未解锁" end stage = basic.stage end for k,v in pairs(Config.Mateboatskill) do if v.skill_id == skill_id then if v.stage <= stage then return false,v.stage else return ChineseNumber(v.stage) .. "阶解锁",v.stage end end end return "未解锁",99 end ------------------------- --纪念日相关 function MateModel:GetMarkListConf( ) return Config.Mateanniversary end function MateModel:GetMarkConfByDay( day ) day = day or 1 for k,v in pairs(Config.Mateanniversary) do if v.day == day then return v end end end function MateModel:GetMarkIsHave(role_id, day) if not role_id or not day then return false end local basic = self:GetBasicByRoleId( role_id ) if not basic then return false end for k,v in pairs(basic.anniversary) do if v.day == day then return true end end return false end function MateModel:GetMateDay( role_id ) if not role_id then return 0 end local basic = self:GetBasicByRoleId( role_id ) if not basic then return 0 end return math.ceil((TimeUtil:getServerTime() - basic.time)/86400) end function MateModel:GetMarkCan( role_id,day ) if not role_id or not day then return false end local is_have = self:GetMarkIsHave(role_id, day) if is_have then return false end return self:GetMateDay(role_id) >= day end function MateModel:GetMarkIsMax( day ) day = day or 0 for k,v in pairs(Config.Mateanniversary) do if v.day > day then return false end end return true end --纪念日相关 ------------------------- --获取称号的属性加成 function MateModel:GetTitleAttrByLv( lv ) lv = lv or 1 local data = {} for k,v in pairs(Config.Matelv) do if v.lv == lv then data = stringtotable(v.attr) break end end return data end --小游戏信息 function MateModel:GetGameInfo( act_id ) if not self.game_info then return false end if not act_id then return self.game_info else for k,v in pairs(self.game_info) do if v.act_id == act_id then return v end end end return false end function MateModel:SetGameInfo( value ) if value and TableSize(value) > 1 then local function sort_call( a,b ) return a.act_id < b.act_id end table.sort( value, sort_call ) end self.game_info = value end --小游戏选中信息 function MateModel:ResetSelectGameInfo( ) self.select_game_info = nil end function MateModel:GetSelectGameInfo( ) return self.select_game_info end function MateModel:SetSelectGameInfo( value,op_type ) if value then value.status = op_type end self.select_game_info = value end --小游戏邀请信息 function MateModel:GetInviteInfo( ) return self.invite_info or {} end function MateModel:SetInviteInfo( value ) self.invite_info = value or {} self:CheckInviteDot() end function MateModel:CheckInviteDot( ) local friend_list = self:GetInviteInfo() local need_list = {} for k,v in pairs(friend_list) do if v.type == 2 then table.insert( need_list, v ) end end if TableSize(need_list) > 0 then MsgManager:getInstance():Add({type=Config.ConfigMainIcon.TipType.mate_game_invite}) else MsgManager:getInstance():Remove(Config.ConfigMainIcon.TipType.mate_game_invite) end end -- function MateModel:RemoveInviteInfo( role_id ) -- local basic = self:GetInviteInfo() -- for k,v in pairs(basic) do -- if v.role_id == role_id then -- v = nil -- end -- end -- self:CheckInviteDot() -- end ------------------------- function MateModel:GetMusicGameInfo( ) return self.music_game_info end function MateModel:SetMusicGameInfo( value ) self.music_game_info = value end function MateModel:ResetMusicGameInfo( ) self.music_game_info = nil self.music_score = nil end function MateModel:GetMusicScore( ) return self.music_score end function MateModel:SetMusicScore( value ) self.music_score = value end function MateModel:GetMusicPlayRole( ) return self.music_play_role or 0 end function MateModel:SetMusicPlayRole( value ) self.music_play_role = value end function MateModel:GetMusicDotConf( group,id ) -- if group and id then -- return Config.Materhythmmasterbit[group .. "@" ..id] -- else -- return Config.Materhythmmasterbit["1@1"] -- end return nil end function MateModel:GetMusicConf( music_id ) -- music_id = music_id or 0 -- for k,v in pairs(Config.Materhythmmastermusic) do -- if v.music_id == music_id then -- return v -- end -- end return nil end --抛接球基础信息 function MateModel:GetBallInfo( ) return self.ball_info end function MateModel:SetBallInfo( value ) self.ball_info = value end --抛接球飞行信息 function MateModel:GetBallFlyInfo( ) return self.ball_fly_info end function MateModel:SetBallFlyInfo( value ) self.ball_fly_info = value end function MateModel:ResetBallFlyInfo( ) self.ball_fly_info = nil end function MateModel:GetMusicLowScoreByLv( lv ) -- lv = lv or 1 -- for k,v in pairs(Config.Materhythmmasteraward) do -- if v.lv == lv then -- return v.score_low -- end -- end -- return 99 return 99 end function MateModel:GetMusicLvByScore( score ) -- score = score or 0 -- if score == 0 then return 0 end -- local max = 0 -- for k,v in pairs(Config.Materhythmmasteraward) do -- if score >= v.score_low and score <= v.score_high then -- return v.lv -- end -- max = max > v.lv and max or v.lv -- end -- return max return 0 end function MateModel:GetBallLowScoreByLv( lv ) -- lv = lv or 1 -- for k,v in pairs(Config.Matecatchballaward) do -- if v.lv == lv then -- return v.hit_low -- end -- end return 99 end function MateModel:GetBallLvByScore( score ) -- score = score or 0 -- if score == 0 then return 0 end -- local max = 0 -- for k,v in pairs(Config.Matecatchballaward) do -- if score >= v.hit_low and score <= v.hit_high then -- return v.lv -- end -- max = max > v.lv and max or v.lv -- end -- return max return 0 end function MateModel:GetBallStatus( ) return self.ball_status end function MateModel:SetBallStatus( value ) self.ball_status = value end function MateModel:ResetBallStatus( ) self.ball_status = nil end function MateModel:GetGameRedDot( check_new,game_id ) do return false end ------------------------- local mask_data = CookieWrapper.Instance:GetCookie(CookieLevelType.Common,CookieKey.MATE_GAME_RED_SHOW) or {} local today_id = TimeUtil:GetToDayThreeHourStr() mask_data[today_id] = mask_data[today_id] or {} ------------------------- if game_id and mask_data[today_id][game_id] then return false end if not self:GetGameInfo() then return false end if check_new then self.red_game = {} local data = self:GetGameInfo(MateConst.GameActId.Music) self.red_game[MateConst.GameActId.Music] = data.is_open == 1 and data.daily_score < self:GetMusicLowScoreByLv(6) local data = self:GetGameInfo(MateConst.GameActId.Ball) self.red_game[MateConst.GameActId.Ball] = data.is_open == 1 and data.daily_score < self:GetBallLowScoreByLv(6) ------------------------- if mask_data[today_id][MateConst.GameActId.Music] then self.red_game[MateConst.GameActId.Music] = false end if mask_data[today_id][MateConst.GameActId.Ball] then self.red_game[MateConst.GameActId.Ball] = false end end if game_id then ------------------------- --判断是否有伙伴 local basic_data = self:GetBasicInfo( ) if not (basic_data and TableSize(basic_data) > 0) then return false end ------------------------- return self.red_game[game_id] and (not mask_data[today_id][game_id]) else for k,v in pairs(self.red_game) do if v then ------------------------- --判断是否有伙伴 local basic_data = self:GetBasicInfo( ) if not (basic_data and TableSize(basic_data) > 0) then return false end ------------------------- return true end end return false end end function MateModel:GetShipRedDot( check_new ) if check_new then self.red_ship = false if self:GetShipIsMax() then self.red_ship = false else local cost_id = self:GetKeyValueConf("ship_item") self.red_ship = GoodsModel:getInstance():GetTypeGoodsNum( cost_id ) > 0 end end return self.red_ship end function MateModel:GetTaskRedDot( ) if self:IsFinishAllMarriageTask( 3 ) then else local has_can_get = false--可领取 local status = false for i=1,3 do --0未接任务1接任务未完成2已完成任务未领取3任务完成并已领取奖励 status = self:GetTaskStatusById( MateConst.SingleDogTask[i] ) if status == 2 then return true end if status ~= 3 then return false end end end return false end function MateModel:GetMarkRedDot( check_new,role_id ) if check_new then self.red_mark = {} local basic = self:GetBasicInfo() if basic then for k,v in pairs(basic) do self.red_mark[v.role_id] = false for c,d in pairs(Config.Mateanniversary) do if self:GetMarkCan( v.role_id,d.day ) then self.red_mark[v.role_id] = true break end end end end end if role_id then return self.red_mark[role_id] or false else for k,v in pairs(self.red_mark) do if v then return true end end end end --羁绊日常红点 function MateModel:GetMateDailyRed(check_new) if check_new then self.mate_daily_red = false for k,v in pairs(self.mate_daily_list_info) do if v.state == 1 or v.state == 0 then--可以做任务和可以领奖时都要给红点 self.mate_daily_red = true end end end return self.mate_daily_red end --商店红点 有抽奖券买的时候要红点 function MateModel:GetMateShopRed(check_new) if check_new then self.mate_shop_red = false self.mate_shop_red_list = {} local goods_list = ShopModel:getInstance():GetGoodsListInfo(ShopType.MATE) if goods_list then for i,v in pairs(goods_list) do for m,n in pairs(v) do if n.goods_id == 102305 then--龙神单抽券限购必买,需要给红点 local left_num = n.quota_num - n.sold_out local have_num = GoodsModel:getInstance():GetSpecialScore(MateConst.MateMoneyId) if have_num >= n.price*n.discount/100 then if left_num > 0 then self.mate_shop_red = true self.mate_shop_red_list[n.goods_id] = true end end end end end end end return self.mate_shop_red end function MateModel:GetMateShopRedById(goods_id) return self.mate_shop_red_list[goods_id] and self.mate_shop_red_list[goods_id] or false end --首次结成羁绊一次性红点 function MateModel:GetFirstGetFriendRed(force_turn_false) if force_turn_false then self.force_turn_mate_first_red_false = true self.mate_first_get_friend_red = false return self.mate_first_get_friend_red end if self.force_turn_mate_first_red_false then self.mate_first_get_friend_red = false return self.mate_first_get_friend_red end local have_no_mate = self:IsNoMateFriend() if not have_no_mate then--有羁绊了就读缓存,判断是否引导过 local cookie_mate_first_state = CookieWrapper.Instance:GetCookie(CookieLevelType.Account,CookieKey.MATE_FIRST_GET_FRIEND) if cookie_mate_first_state and cookie_mate_first_state == 1 then--表示已经记录过了,不再执行首次红点的引导更名操作 self.mate_first_get_friend_red = false else--没存状态说明需要引导红点 self.mate_first_get_friend_red = true end else--没有羁绊,则不管缓存,不给引导红点 self.mate_first_get_friend_red = false end return self.mate_first_get_friend_red end function MateModel:GetGameRewardList( ) -- local data = {} -- for k,v in pairs(Config.Materhythmmasteraward) do -- data[v.lv] = v -- end -- return data return {} end function MateModel:GetGameTodayGetLv( ) local score_music = 0 local score_ball = 0 local lv_music = false local lv_ball = false local basic_music = self:GetGameInfo( MateConst.GameActId.Music ) local basic_ball = self:GetGameInfo( MateConst.GameActId.Ball ) if basic_music then score_music = basic_music.daily_score lv_music = self:GetMusicLvByScore( score_music ) end if basic_ball then score_ball = basic_ball.daily_score lv_ball = self:GetBallLvByScore( score_ball ) end return {[MateConst.GameActId.Music] = lv_music, [MateConst.GameActId.Ball] = lv_ball} end function MateModel:GetBallAwardListAndLv( data ) -- if not data then return {},1 end -- local lv = 1 -- local game_info = self:GetGameInfo(MateConst.GameActId.Ball) -- local cur_score = data.hits -- local last_score = game_info and game_info.daily_score or 0 -- if last_score >= cur_score then return {},1 end -- local result = {} -- for k,v in pairs(Config.Matecatchballaward) do -- if cur_score >= v.hit_low then -- lv = lv >= v.lv and lv or v.lv -- end -- if cur_score >= v.hit_low then -- if last_score < v.hit_low or last_score == 0 then -- local temp = stringtotable(v.award) -- for a,b in pairs(temp) do -- local have = false -- for c,d in pairs(result) do -- if d[2] == b[2] and d[1] == b[1] then -- d[3] = d[3] + b[3] -- have = true -- end -- end -- if not have then -- table.insert( result, b ) -- end -- end -- end -- end -- end -- return result,lv return {},1 end function MateModel:GetMusicAwardListAndLv( data ) -- if not data then return {},1 end -- local lv = 1 -- local game_info = self:GetGameInfo(MateConst.GameActId.Music) -- local cur_score = data.score -- local last_score = game_info and game_info.daily_score or 0 -- if last_score >= cur_score then return {},1 end -- local result = {} -- for k,v in pairs(Config.Materhythmmasteraward) do -- if cur_score >= v.score_low then -- lv = lv >= v.lv and lv or v.lv -- end -- if cur_score >= v.score_low then -- if last_score < v.score_low or last_score == 0 then -- local temp = stringtotable(v.award) -- for a,b in pairs(temp) do -- local have = false -- for c,d in pairs(result) do -- if d[2] == b[2] and d[1] == b[1] then -- d[3] = d[3] + b[3] -- have = true -- end -- end -- if not have then -- table.insert( result, b ) -- end -- end -- end -- end -- end -- return result,lv return {},1 end function MateModel:GetGameWaitStatus( ) return self.game_wait_status or {} end function MateModel:SetGameWaitStatus( value ) self.game_wait_status = value end --获取羁绊任务状态 function MateModel:GetSingleDogTaskStatus( ) local cur_id = 0 local over_id = 0 for k,v in ipairs(MateConst.SingleDogTask) do cur_id = k local task = TaskModel:GetTaskById( v ) if task then if TaskModel:getInstance():IsTaskProgressFinish(task) then --任务完成可领取奖励 cur_id = k break elseif TaskModel:getInstance():IsTaskFinished(task) then --上一个已完成的任务 over_id = k end end end if cur_id == 0 and over_id ~= 0 then --全部任务都完成了 cur_id = over_id end return cur_id,over_id end --获取羁绊任务状态 function MateModel:GetTaskStatusById( task_id ) local status = 0--0未接任务1接任务未完成2已完成任务未领取3任务完成并已领取奖励 local task = TaskModel:getInstance():GetTaskById(task_id) if task then status = TaskModel:getInstance():IsTaskProgressFinish(task) and 2 or 1 elseif TaskModel:getInstance():IsTaskFinished(task_id) then status = 3 end return status end --判定是否完成所有任务(或者是否有任务都在status状态) function MateModel:IsFinishAllMarriageTask( status ) --0未接任务1接任务未完成2已完成任务未领取3任务完成并已领取奖励 local conf = MateConst.SingleDogTask local result = true if status then for i=1,3 do if self:GetTaskStatusById( conf[i] ) ~= status then result = false break end end else for i=1,3 do if self:GetTaskStatusById( conf[i] ) ~= 3 then result = false break end end end return result end --交友大厅 查看信息 function MateModel:GetFindFriendData( my_info_is_new ) if my_info_is_new then local my_data = false for k,v in pairs(self.find_friend_data) do if v.role_id == RoleManager.Instance.mainRoleInfo.role_id then my_data = table.remove(self.find_friend_data,k) break end end if my_data then table.insert( self.find_friend_data, 1, my_data ) end end return self.find_friend_data or {} end --交友大厅 查看信息 function MateModel:SetFindFriendData( value ) local level = RoleManager.Instance.mainRoleInfo.level local vip_flag = RoleManager.Instance.mainRoleInfo.vip_flag local sex = RoleManager.Instance.mainRoleInfo.sex local power = RoleManager.Instance.mainRoleInfo.fighting for k,v in pairs(value) do v.dis_lv = math.abs(level - v.level) v.dis_sex = sex == v.sex and 0 or 1 end ------------------------- if #value > 1 then local function sort_call( a,b ) if a.type > b.type then --置顶信息在普通信息之下 return true elseif a.type == b.type then if a.dis_lv < b.dis_lv then --等级与玩家当前等级差值从小到大排序 return true elseif a.dis_lv == b.dis_lv then if a.dis_sex > b.dis_sex then -- 性别与玩家不同的在上 return true end end end end table.sort( value, sort_call ) end self.find_friend_data = value end --通过类型id判读是否是羁绊信物 function MateModel:GetIsMateShipByTypeId( type_id ) if not type_id then return false end if not self.ship_list_by_typeid then self.ship_list_by_typeid = {} for k,v in pairs(Config.Mateboat) do self.ship_list_by_typeid[v.goods_id] = true end end return self.ship_list_by_typeid[type_id] and true or false end --获得已激活的羁绊信物技能 function MateModel:GetActiveSkillList( stage,star ) local list_info = self:GetSkillList( ) local result = {} for k,v in pairs(list_info) do table.insert( result, {skill_id = v.skill_id, skill_lv = 1, is_lock = self:GetSkillIsLock(v.skill_id, stage)} ) end return result end --羁绊拍照活动信息 function MateModel:GetPhotoActInfo( ) return self.photo_act_info end function MateModel:SetPhotoActInfo( value ) self.photo_act_info = value end --增送/收 羁绊点红点 function MateModel:GetGiftRedDot( check_new ) if check_new then self.red_gift = false local basic = self:GetBasicInfo( ) for k,v in pairs(basic) do local have_get = SocialityModel.getInstance():IsInGiftRoleList(v.role_id,SocialityModel.TicketType.Mate)--对方已经赠送 local no_send = not SocialityModel.getInstance():IsInSendRoleList(v.role_id,SocialityModel.TicketType.Mate)--未赠送给对方 if have_get and SocialityModel.getInstance():GetTicketsGiftState(v.role_id,SocialityModel.TicketType.Mate) == 0 then --好友有赠送--未领取 self.red_gift = true break elseif no_send then --未赠送给对方 self.red_gift = true break end end end return self.red_gift end --14953 日常任务列表信息 function MateModel:SetMateDailyListInfo(vo) --前端给随机任务描述,如果重新那协议数据发现任务内容没变,就保持跟之前的随机数一致 for k,v in pairs(vo.mate_list) do for m,n in pairs(self.mate_daily_list_info) do if n.role_id == v.role_id and n.task_id == v.task_id then if n.random_num then v.random_num = n.random_num end end end end self.mate_daily_list_info = vo.mate_list self.mate_daily_other_list_info = vo.list local sort_func = function ( a, b ) return a.role_id < b.role_id end table.sort(self.mate_daily_list_info, sort_func) table.sort(self.mate_daily_other_list_info, sort_func) for k,v in pairs(self.mate_daily_list_info) do if v.task_id == 2 and v.state == 0 then--找到私聊任务,私聊任务需要前端去判断是否触发并通知后端 self.mate_daily_task_need_chat_role[v.role_id] = true else self.mate_daily_task_need_chat_role[v.role_id] = nil end if v.task_id == 4 and v.state == 0 then--找到分享羁绊任务,同私聊任务,需要前端判断触发并通知后端 self.mate_daily_task_need_share_mate_role[v.role_id] = true else self.mate_daily_task_need_share_mate_role[v.role_id] = nil end if not v.random_num then local task_cfg = self:GetMateDailyTaskCfgById(v.task_id) local condition_tb = stringtotable(Trim(task_cfg.condition)) v.random_num = math.random(1, TableSize(condition_tb)) end end end function MateModel:GetMateDailyTaskNeedChatData( ) return self.mate_daily_task_need_chat_role end function MateModel:GetMateDailyTaskNeedShareData( ) return self.mate_daily_task_need_share_mate_role end function MateModel:GetMateDailyListInfo( ) return self.mate_daily_list_info end function MateModel:GetMateDailyOtherListInfo( ) return self.mate_daily_other_list_info end --14954 更新日常任务状态 function MateModel:UpdateMateDailyState(vo) for k,v in pairs(vo.mate_list) do for m,n in pairs(self.mate_daily_list_info) do if n.role_id == v.role_id then n.progress = v.progress n.state = v.state end end end end --获取日常任务对应配置 function MateModel:GetMateDailyTaskCfgById(task_id) return Config.Matedailytask[task_id] and Config.Matedailytask[task_id] or nil end --更新任务领奖状态 function MateModel:UpdateMateDailyRewardState(vo) for k,v in pairs(self.mate_daily_list_info) do if vo.role_id == v.role_id and v.state == 1 then v.state = 2 break end end end function MateModel:SetMateAdBtnWorldPos(x, y) self.mate_ad_btn_pos_x = x self.mate_ad_btn_pos_y = y end function MateModel:GetMateAdBtnWorldPos() return self.mate_ad_btn_pos_x, self.mate_ad_btn_pos_y end function MateModel:SetMateAdRewardStatus(bool) self.have_get_matead_reward = bool or false end function MateModel:GetMateAdRewardStatus() return self.have_get_matead_reward end