📄 gobangdeal.java
字号:
packstringbuffer.append(commstructnode.getUserId());
packstringbuffer.append(UniversalDefine.SUBDIVISION );
packstringbuffer.append(stepnum);
packstringbuffer.append(UniversalDefine.SUBDIVISION );
packstringbuffer.append(commstructnode.getRoomId());
packstringbuffer.append(UniversalDefine.SUBDIVISION );
packstringbuffer.append(commstructnode.getTableid());
packstring = packstringbuffer.toString();
socketmanager.sendpacket(packstring,true);
}
// 对对家求和的响应
public void AgreeOppTie(CommStructNode commstructnode,int stepnum,String oppmind){
this.commstructnode = commstructnode;
maingameevent.setCommNode(commstructnode);
StringBuffer packstringbuffer = new StringBuffer();
packstringbuffer.append("000");
packstringbuffer.append(UniversalDefine.DIVISION);
packstringbuffer.append(MudleDefine.GOBANGMUDLE);
packstringbuffer.append(UniversalDefine.DIVISION);
packstringbuffer.append(GobangOperateId.opptie);
packstringbuffer.append(UniversalDefine.DIVISION);
packstringbuffer.append(commstructnode.getUserId());
packstringbuffer.append(UniversalDefine.SUBDIVISION );
packstringbuffer.append(stepnum);
packstringbuffer.append(UniversalDefine.SUBDIVISION );
packstringbuffer.append(oppmind);
packstringbuffer.append(UniversalDefine.SUBDIVISION );
packstringbuffer.append(commstructnode.getRoomId());
packstringbuffer.append(UniversalDefine.SUBDIVISION );
packstringbuffer.append(commstructnode.getTableid());
packstring = packstringbuffer.toString();
socketmanager.sendpacket(packstring,true);
}
//用户认输
public void UserSurrender(CommStructNode commstructnode,int stepnum){
this.commstructnode = commstructnode;
maingameevent.setCommNode(commstructnode);
StringBuffer packstringbuffer = new StringBuffer();
packstringbuffer.append("000");
packstringbuffer.append(UniversalDefine.DIVISION);
packstringbuffer.append(MudleDefine.GOBANGMUDLE);
packstringbuffer.append(UniversalDefine.DIVISION);
packstringbuffer.append(GobangOperateId.usersurrender);
packstringbuffer.append(UniversalDefine.DIVISION);
packstringbuffer.append(commstructnode.getUserId());
packstringbuffer.append(UniversalDefine.SUBDIVISION );
packstringbuffer.append(stepnum);
packstringbuffer.append(UniversalDefine.SUBDIVISION );
packstringbuffer.append(commstructnode.getRoomId());
packstringbuffer.append(UniversalDefine.SUBDIVISION );
packstringbuffer.append(commstructnode.getTableid());
packstring = packstringbuffer.toString();
socketmanager.sendpacket(packstring,true);
}
// 用户在线检测
public void setCheckFlag(String userid ){
StringBuffer packstringbuffer = new StringBuffer();
packstringbuffer.append("000");
packstringbuffer.append(UniversalDefine.DIVISION);
packstringbuffer.append(MudleDefine.GOBANGMUDLE);
packstringbuffer.append(UniversalDefine.DIVISION);
packstringbuffer.append(GobangOperateId.onlinecheck);
packstringbuffer.append(UniversalDefine.DIVISION);
packstringbuffer.append(userid);
socketmanager.sendpacket(packstringbuffer.toString(),false);
}
//用户退出游戏
public void ExitGame(String userid){
StringBuffer packstringbuffer = new StringBuffer();
packstringbuffer.append("000");
packstringbuffer.append(UniversalDefine.DIVISION);
packstringbuffer.append(MudleDefine.GOBANGMUDLE);
packstringbuffer.append(UniversalDefine.DIVISION);
packstringbuffer.append(GobangOperateId.userexit);
packstringbuffer.append(UniversalDefine.DIVISION);
packstringbuffer.append(userid);
socketmanager.sendpacket(packstringbuffer.toString(),false);
}
//数据重发
public void ReSend(){
socketmanager.sendpacket(packstring,true);
}
//供socketmanager调用,表示接收到数据
public void RecvieData(String recpacket) {
// TODO 自动生成方法存根
StringTokenizer stringtokenizer = new StringTokenizer(recpacket, UniversalDefine.DIVISION);
String errcode = "";
String serviceid = "";
String operateid = "";
String body = "";
try {
if (stringtokenizer.hasMoreTokens()) {
errcode = stringtokenizer.nextToken(); //取得错误号
}
if (stringtokenizer.hasMoreTokens()) {
serviceid = stringtokenizer.nextToken(); //取得业务号
}
if (stringtokenizer.hasMoreTokens()) {
operateid = stringtokenizer.nextToken(); //取得操作码
}
if (stringtokenizer.hasMoreTokens()) {
body = stringtokenizer.nextToken(); //取得业务数据
}
if(serviceid.equals(SocketManager.ITORECONNECT)){//与服务器断开正准备重连
gameeventdeal.handleEvent(GobangEvent.TORECONNECT,maingameevent);
}else if(serviceid.equals(SocketManager.IRECONNECT)){//与服务器重连成功
gameeventdeal.handleEvent(GobangEvent.RECONNECT,maingameevent);
}else if(serviceid.equals(SocketManager.IDISCONNECT)){//无法重新连接的服务器
gameeventdeal.handleEvent(GobangEvent.DISCONNECT,maingameevent);
}
if ( !serviceid.equals(MudleDefine.GOBANGMUDLE)){ //不是本模块需要处理的数据
if(serviceid.equals(MudleDefine.UNIVERMUDLE)&&operateid.equals(UniOperateId.modify)){
//是跨模块资料修改
ModifyRespond(body);
}
return;
}
if ( operateid.equals(GobangOperateId.roomlist) ) { //获取房间列表响应
RoomInfoRespond(body);
}else if(operateid.equals(GobangOperateId.otherinroom)){//其他用户进入房间
RoomListModify(body);
}else if(operateid.equals(GobangOperateId.otheroutroom)){//其他用户退出房间
RoomListModify(body);
}else if( operateid.equals(GobangOperateId.usercount ) ){ //获取用户游戏统计响应
UserCountRespond(body);
}else if( operateid.equals(GobangOperateId.roomin)){ //获取大厅信息响应
GetUserInfoRespond(body);
}else if( operateid.equals(GobangOperateId.roomout)){ //退出房间响应
ExitRoomRespond(body);
}else if(operateid.equals(GobangOperateId.usersit)){ //用户坐下响应
UserSitRespond(body);
}else if(operateid.equals(GobangOperateId.userup)){ //用户站起响应
UserUpRespond(body);
}else if(operateid.equals(GobangOperateId.oppusersit)){ //对家坐下响应
OppUserSitRespond(body);
}else if(operateid.equals(GobangOperateId.otherusersit)){//其他用户坐下响应
OtherUserSitRespond(body);
}else if(operateid.equals(GobangOperateId.otheruserup)){//其他用户站起响应
OtherUserUpRespond(body);
}else if(operateid.equals(GobangOperateId.userready)){//用户准备好响应
UserReadyRespond(body);
}else if(operateid.equals(GobangOperateId.otheruserready)){//房间里其他用户准备好响应
OtherReadyRespond(body);
}else if(operateid.equals(GobangOperateId.userstart)){//用户开始游戏响应
UserStartRespond(body);
}else if(operateid.equals(GobangOperateId.otheruserstart)){//房间里其他用户开始游戏响应
OtherStartRespond(body);
}else if(operateid.equals(GobangOperateId.gaming)){//用户游戏下子响应
UserPlayRespond(body);
}else if(operateid.equals(GobangOperateId.oppgaming)){//对家游戏下子响应
OppPlayRespond(body);
}else if(operateid.equals(GobangOperateId.othergameover)){//大厅里其他用户一盘游戏结束响应
OtherGameOver(body);
}else if(operateid.equals(GobangOperateId.otherinfo)){//大厅里其他用户退出游戏响应
OtherInfoRecive(body);
}else if(operateid.equals(GobangOperateId.otheruserexit)){//大厅里其他用户退出游戏响应
OtherExit(body);
}else if(operateid.equals(GobangOperateId.usergiveup)){//用户放弃下子操作响应
UserGiveUpRespond(body);
}else if(operateid.equals(GobangOperateId.oppgiveup)){//对家放弃下子操作响应
OppGiveUpRespond(body);
}else if(operateid.equals(GobangOperateId.userregret)){//用户请求悔棋操作响应
UserRegretRespond(body);
}else if(operateid.equals(GobangOperateId.oppregret)){//对家请求悔棋操作响应
OppRegretRequest(body);
}else if(operateid.equals(GobangOperateId.agreeoppregret)){//同意对家悔棋操作响应
AgreenOppRegret(body);
}else if(operateid.equals(GobangOperateId.usertie)){//用户求和操作响应
UserTieRespond(body);
}else if(operateid.equals(GobangOperateId.opptie)){//对家求和操作响应
OppTie(body);
}else if(operateid.equals(GobangOperateId.agreeopptie)){//同意对家求和操作响应
AgreenOppTie(body);
}else if(operateid.equals(GobangOperateId.usersurrender)){//用户投降操作响应
UserSurrenderRespond(body);
}else if(operateid.equals(GobangOperateId.oppsurrender)){//对家投降操作响应
OppSurrender(body);
}
} catch (Exception e) {
e.printStackTrace();
}
}
//用户资料修改
public void ModifyRespond(String body){
String succflag;
StringTokenizer stringtokenizer = new StringTokenizer(body, ";");
if (stringtokenizer.hasMoreTokens()) {
succflag = stringtokenizer.nextToken(); //取得资料修改是否成功标志
if ( succflag.equals("0") ){ //资料修改成功
commstructnode.setUserId(stringtokenizer.nextToken());
maingameevent.setCommNode(commstructnode);
gameeventdeal.handleEvent(GobangEvent.MODIFYSUCCESSFUL,maingameevent);
}
}else{ //失败
gameeventdeal.handleEvent(GobangEvent.MODIFYFAIL,maingameevent);
}
}
//从服务器接收到房间列表信息
private void RoomInfoRespond(String body){
StringTokenizer stringtokenizer = new StringTokenizer(body, UniversalDefine.SUBDIVISION);
if (stringtokenizer.hasMoreTokens())
if(stringtokenizer.nextToken().equals("0")){
for(int i = 0; i < ROOM_COUNT; i ++){
if (stringtokenizer.hasMoreTokens()) {
StringTokenizer roominfotokenizer = new StringTokenizer(stringtokenizer.nextToken(),UniversalDefine.$DIVISION); //取得房间信息
if(roominfotokenizer.hasMoreTokens()){
roomstruct[i].roomnum=Integer.parseInt(roominfotokenizer.nextToken());
}
if(roominfotokenizer.hasMoreTokens()){
roomstruct[i].capacity = Integer.parseInt(roominfotokenizer.nextToken());
}
if(roominfotokenizer.hasMoreTokens()){
roomstruct[i].onlinenum = Integer.parseInt(roominfotokenizer.nextToken());
}
}
}
}
if(gameeventdeal != null)
gameeventdeal.handleEvent(GobangEvent.ROOMINFORECEIVE,maingameevent);
}
//其他用户进入\退出房间
public void RoomListModify(String body){
int roomnum=0;
int onlinenum = 0;
StringTokenizer stringtokenizer = new StringTokenizer(body, UniversalDefine.SUBDIVISION);
if (stringtokenizer.hasMoreTokens()){
roomnum = Integer.parseInt(stringtokenizer.nextToken());
}
if (stringtokenizer.hasMoreTokens()){
onlinenum = Integer.parseInt(stringtokenizer.nextToken());
}
for(int i = 0 ; i < ROOM_COUNT; i++){
if(roomstruct[i].roomnum == roomnum){
roomstruct[i].onlinenum = onlinenum;
}
}
gameeventdeal.handleEvent(GobangEvent.ROOMINFOMODIFY,maingameevent);
}
//用户游戏数据统计响应
private void UserCountRespond(String body){
StringTokenizer stringtokenizer = new StringTokenizer(body, UniversalDefine.SUBDIVISION);
if (stringtokenizer.hasMoreTokens())
if(stringtokenizer.nextToken().equals("0")){
if (stringtokenizer.hasMoreTokens()) {
commstructnode.SetCount(stringtokenizer.nextToken());
}
}
gameeventdeal.handleEvent(GobangEvent.USERCOUNTRECEIVE,maingameevent);
}
//获取大厅信息的响应
private void GetUserInfoRespond(String body){
int tempid=0,tempseq=0,i=0,j=0;
String userid="",nickname="",picture="",usertype="",status="";
String tableid = "",tableseq="";
StringTokenizer stringtokenizer = new StringTokenizer(body, UniversalDefine.SUBDIVISION);
StringTokenizer userinfotokenizer = new StringTokenizer("$",UniversalDefine.$DIVISION); //取得玩家信息 的字符串初始化
if (stringtokenizer.hasMoreTokens())
if(stringtokenizer.nextToken().equals("0")){
while(stringtokenizer.hasMoreTokens()) {
if(j>=TABLE_COUNT*2){ //大厅48个座位
break;
}
j++;
userinfotokenizer.ResetString(stringtokenizer.nextToken()); //取得大厅里的坐着的玩家信息
if(userinfotokenizer.hasMoreTokens()){
userid=userinfotokenizer.nextToken();
}
if(userinfotokenizer.hasMoreTokens()){
nickname = userinfotokenizer.nextToken();
}
if(userinfotokenizer.hasMoreTokens()){
picture = userinfotokenizer.nextToken();
}
if(userinfotokenizer.hasMoreTokens()){
usertype = userinfotokenizer.nextToken();
}
if(userinfotokenizer.hasMoreTokens()){
status = userinfotokenizer.nextToken();
}
if(userinfotokenizer.hasMoreTokens()){
tableid = userinfotokenizer.nextToken();
}
if(userinfotokenizer.hasMoreTokens()){
tableseq =userinfotokenizer.nextToken();
}
if(tableid.equals("0")||tableid.equals("")||tableseq.equals("")){
i = 0;
}
else
{
tempid = Integer.parseInt(tableid);
tempseq = Integer.parseInt(tableseq);
i = tempid*2 - 1 + tempseq;
}
if(i!=0){
player[i].userid = userid;
player[i].nickname = nickname;
player[i].picture = picture;
player[i].usertype = usertype;
player[i].status = status;
player[i].tableid = tableid;
player[i].tableseq = tableseq;
}
}
}
gameeventdeal.handleEvent(GobangEvent.HALLINFORECEIVE,maingameevent);
}
//用户退出房间响应
private void ExitRoomRespond(String body){
StringTokenizer stringtokenizer = new StringTokenizer(body, UniversalDefine.SUBDIVISION);
if (stringtokenizer.hasMoreTokens())
if(stringtokenizer.nextToken().equals("0")){
commstructnode.setRoomId("");
commstructnode.setTableId("");
commstructnode.setTableSeq(0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -