| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- 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
|