|
- -- 游戏房间邀请框Layout
- local ClubInviteRoomNew = class("ClubInviteRoomNew" , cc.UIView);
- ---
- -- 构造函数
- -- @param gID
- -- @param inviteInfo {userInfo = {uid, nick, icon}, gname, gamerule}
- -- @param clickCallback
- -- @param agreeCallback
- -- @return
- --
- function ClubInviteRoomNew:ctor(gID, inviteInfo, clickCallback,agreeCallback)
- ClubInviteRoomNew.super.ctor(self)
- local ui = loadUI("res/ui/ui_club/clubnew/ui_club_invite_room_new.ui")
- self.ui = ui;
- self:addChild(ui);
- --俱乐部id
- self.gid = gID;
- --邀请信息
- self.inviteInfo = inviteInfo;
- self.returnCallback = clickCallback;
- self.agreeCallback = nil
- if agreeCallback then
- self.agreeCallback = agreeCallback
- end
- end
-
- function ClubInviteRoomNew:onEnter()
- ClubInviteRoomNew.super.onEnter(self)
- --按钮注册事件
- self:registerButton();
- --设置默认界面
- self:setDefault();
- -- 监听事件
- self:bindEvent(app.hall , "onJoinRoomResponse", handler(self , self.onJoinRoomResponse));
- self:bindEvent(app.club_php , GAME_EVENT.CLUB_MEMBER_SET_SUCCESS, handler(self , self.onCloseView));
- -- 15秒后自动关闭
- self:runDelay(15, function ()
- self:onClose()
- end)
- end
- ---
- -- 注册按钮点击事件
- -- @return
- --
- function ClubInviteRoomNew:registerButton()
- --同意
- self.ui.Items.Button_agree:registerClick(handler(self , self.onClickAgree))
- --拒绝
- self.ui.Items.Button_disagree:registerClick(handler(self , self.onClickDisagree))
- self.ui.Items.Layout_BG:registerClick(handler(self , self.onClickDisagree))
- --屏蔽邀请
- self.ui.Items.CheckBox_pingbi:addEventListener(handler(self , self.onClickPingbi))
- end
- ---
- -- 设置默认界面
- -- @return
- --
- function ClubInviteRoomNew:setDefault()
- local inviteInfo = self.inviteInfo
-
- if inviteInfo.userInfo then
- --玩家头像
- local nodeHead = self.ui.Items.headImg;
- setPlayerHeadImage(inviteInfo.userInfo.uid, inviteInfo.userInfo.icon,nodeHead)
-
- --玩家昵称
- local nickname = getSubStringNickname(inviteInfo.userInfo.nick, self.ui.Items.Text_name)
- self.ui.Items.Text_name:setText(nickname);
- end
-
- local content = string.format("邀请你进入房间%s(%s)", inviteInfo.roomid or 0, inviteInfo.gamerule or "")
- self.ui.Items.Text_Tips:setText(content)
-
- if app.club_php:getCestIsOpen(self.gid) then
- local str = self.ui.Items.Text:getText()
- str = string.gsub(str, "玩家", "选手")
- self.ui.Items.Text:setText(str)
- end
- end
-
- function ClubInviteRoomNew:onClose()
- playBtnCloseEffect();
- if self.returnCallback then
- self.returnCallback()
- end
- self:removeFromParent()
- end
-
- function ClubInviteRoomNew:onCloseView()
- if self.returnCallback then
- self.returnCallback()
- end
- self:removeFromParent()
- end
-
- ---
- -- 同意请求
- -- @return
- --
- function ClubInviteRoomNew:onClickAgree()
- playBtnEffect()
-
- if self.agreeCallback then
- local parm = {
- roomid = self.inviteInfo.roomid,
- gid = self.gid,
- }
- setAgainGameInvitedata(parm)
- self.agreeCallback()
- return
- end
-
- local roomId = self.inviteInfo.roomid
- logD("ClubInviteRoomNew:onClickAgree() roomId = ", roomId)
- if not roomId then
- return
- end
-
- if not isEnableEnterRoom() then
- return
- end
-
- --同意后进入房间,赋值当前进入的俱乐部id
- app.club_php.clubID = self.gid
- local function doRequest(gameId, roomId)
- if not gameId or tonumber(gameId) <= 0 then
- showTooltip("房间号不存在")
- self:onClose()
- return
- end
- app.hall:requestJoinRoom(gameId, roomId)
- end
- app.hall:queryRoomId(roomId,doRequest)
- end
- ---
- -- 拒绝请求
- -- @return
- --
- function ClubInviteRoomNew:onClickDisagree()
- playBtnEffect()
- if self.returnCallback then
- self.returnCallback()
- end
- self:removeFromParent()
- end
- ---
- -- 监听加入房间返回事件
- -- @param event
- -- @return
- --
- function ClubInviteRoomNew:onJoinRoomResponse(event)
- if not event then
- return
- end
- local errCode = event.errCode
- if errCode ~= 0 then
- local errString = ENTER_ROOM_RET_STR[errCode] or "房间不存在"
- showTooltip(errString);
- end
- end
-
- --是否屏蔽玩家邀请
- function ClubInviteRoomNew:onClickPingbi()
- playBtnEffect()
- local isChoice = self.ui.Items.CheckBox_pingbi:getSelectedState()
- if isChoice then
- --local function okCallBack()
- --设置类型{1:邀请勿扰, $value 拒接邀请对象uid; 2:屏蔽开局用户, $value 1屏蔽0可见; 3:俱乐部置顶, $value 1置顶0取消置顶}
- local setType = 1;
- local playerId = nil
- local inviteInfo = self.inviteInfo
- if inviteInfo and inviteInfo.userInfo then
- playerId = inviteInfo.userInfo.uid
- app.club_php:requestMemberSet(self.gid, setType, playerId)
- end
- --end
-
- --local function cancelCallBack()
- -- self.ui.Items.CheckBox_pingbi:setSelectedState(false)
- --end
- --showConfirmDialog("是否屏蔽所有玩家5分钟内发出的邀请?", okCallBack, cancelCallBack);
- else
- --不允许取消屏蔽
- self.ui.Items.CheckBox_pingbi:setSelectedState(true)
- end
-
- end
-
- return ClubInviteRoomNew
|