Team = {} local this = {} -- 获取队伍喊话信息 function Team.getteamrecruitlua(actor, msgID) local info = {} local teamId = getbaseinfo(actor, "teamid") if not teamId or teamId == 0 then sendluamsg(actor, LuaMessageIdToClient.TEAM_RECRUIT_CHANGE, info) return end local teamInfo = getteaminfo(actor, teamId) if teamInfo == nil then sendluamsg(actor, LuaMessageIdToClient.TEAM_RECRUIT_CHANGE, info) return end local allTeamMemberInfo = teamInfo["allteammemberinfo"] local leaderRid for index, value in ipairs(allTeamMemberInfo) do local leader = value["leader"] if leader == 1 then leaderRid = value["rid"] end end local targetactor if actor:toString() == tostring(leaderRid) then targetactor = actor end if actor:toString() ~= tostring(leaderRid) then targetactor = getactor(actor, leaderRid) end local teamShout = getplaydef(targetactor, tostring(teamId)) if teamShout == nil then sendluamsg(actor, LuaMessageIdToClient.TEAM_RECRUIT_CHANGE, info) return end info["activeid"] = teamShout[2] info["lowerlevel"] = tonumber(teamShout[3]) info["upperlevel"] = tonumber(teamShout[4]) -- local info = getteamrecruit(actor) sendluamsg(actor, LuaMessageIdToClient.TEAM_RECRUIT_CHANGE, info) end --给队员发送喊话信息 function Team.teamrecruitchange(actor, activeid, upperlevel, lowerlevel) local sendData = {} sendData["activeid"] = activeid sendData["upperlevel"] = tonumber(upperlevel) sendData["lowerlevel"] = tonumber(lowerlevel) sendluamsg(actor, LuaMessageIdToClient.TEAM_RECRUIT_CHANGE, sendData) end -- 队长一键同意审批记录 function Team.leaderAgreeApply(actor, msgData) -- agreeteamapply(actor) for _, v in pairs(msgData.list) do local Data = {} Data["type"] = 2 Data["leaderId"] = v.rid Team.onHandleTeamInviteApplyMsg(actor, Data) end end ---获取队伍所有成员rid function Team.GetAllMemberRids(actor) if actor == nil then return nil end local allMemberRids = {} local teamId = tonumber(getbaseinfo(actor, "teamid")) if teamId == nil or teamId == 0 then return allMemberRids end local teamInfo = getteaminfo(actor, teamId) if table.isNullOrEmpty(teamInfo) then return end local allTeamMemberInfo = teamInfo["allteammemberinfo"] if table.isNullOrEmpty(allTeamMemberInfo) then return allMemberRids; end for _, memberInfo in pairs(allTeamMemberInfo) do local rid = tonumber(memberInfo["rid"]) if rid ~= nil and rid > 0 then table.insert(allMemberRids, rid) end end return allMemberRids end --处理队伍邀请申请消息 function Team.onHandleTeamInviteApplyMsg(actor, msgData) if table.isNullOrEmpty(msgData) then return end --同职业人数不能超过2个 local count = 2 if msgData.type == 1 then --接受或拒绝入队邀请 local career = getrolefield(actor, "role.basic.career.basecareer") local lActor = getactor(msgData.leaderId) local memberRids = Team.GetAllMemberRids(lActor) for _, rid in ipairs(memberRids) do local mActor = getactor(rid) local m_career = getrolefield(mActor, "role.basic.career.basecareer") if career == m_career then count = count - 1 end if count == 0 then tipinfo(actor, "队伍里同职业不能超过2个!") replyinvitation(actor, msgData.leaderId, 0) return end end replyinvitation(actor, msgData.leaderId, 1) elseif msgData.type == 2 then --接受或拒绝入队申请 local tActor = getactor(msgData.leaderId) local t_career = getrolefield(tActor, "role.basic.career.basecareer") local memberRids = Team.GetAllMemberRids(actor) for _, rid in ipairs(memberRids) do local mActor = getactor(rid) local m_career = getrolefield(mActor, "role.basic.career.basecareer") if t_career == m_career then count = count - 1 end if count == 0 then tipinfo(actor, "队伍里同职业不能超过2个!") replyapply(actor, 0, msgData.leaderId) return end end replyapply(actor, 1, msgData.leaderId) end end -- 获取队伍所有成员位置 function Team.GetAllMemberPos(actor) local teamId = tonumber(getbaseinfo(actor, "teamid")) if teamId == nil or teamId == 0 then return end local teamInfo = getteaminfo(actor, teamId) if table.isNullOrEmpty(teamInfo) then return end local allTeamMemberInfo = teamInfo["allteammemberinfo"] if table.isNullOrEmpty(allTeamMemberInfo) then return end local posList = {} local unimapid = getbaseinfo(actor, "unimapid") local rid = getbaseinfo(actor, "rid") for _, memberInfo in pairs(allTeamMemberInfo) do local mrid = tonumber(memberInfo["rid"]) if mrid ~= nil and mrid > 0 and rid ~= mrid then local mActor = getactor(mrid) if unimapid == getbaseinfo(mActor, "unimapid") then local posX = getbaseinfo(mActor, "x") local posY = getbaseinfo(mActor, "y") local rolename = getbaseinfo(mActor, "rolename") table.insert(posList, { rid = mrid, rolename = rolename, x = posX, y = posY }) end end end sendluamsg(actor, LuaMessageIdToClient.RES_SEND_TEAMMATE_POSITION, posList) end