⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 move_server.cc

📁 多人走路RPG服务器 c++ socket
💻 CC
📖 第 1 页 / 共 2 页
字号:
					send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_SAY,V_MSG_NONE,buf1);					m_GameServer[server_n]->send_all2(buf,player_id);				 }				 break;			case MSG_MOVE:				if( player_id!=NONE ) {					unsigned int u_x,u_y;					sscanf(p_data,"%d|%d",&u_x,&u_y);					BaseGamePlayer *u;					if(m_GamePlayer[player_id]->SetXY(u_x,u_y))	{						u=m_GamePlayer[player_id];						sprintf(buf1,"%s|%d|%d",u->m_name,u_x,u_y);						send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_MOVE,SUB_MSG_MOVE_OTHER,buf1);						m_GameServer[server_n]->send_all(buf,NONE);					}				}				break;		*/		switch (p_msg1)	{			/*			case MSG_SAY:				//printf("\t\t			case MSG_SAY:\n");				break;*/			case MSG_USERLOG: //登陆消息				  switch (p_msg2) {							case SUB_MSG_LOGIN_ASK:							break;				  }				 break;			case MSG_SMILEY:	//表情消息				switch(p_msg2) {					case MSG_SMILEY_EXP:	//表情公仔						sscanf(p_data, "%d", &smiley);						if( player_id!=NONE && server_n!=NONE && smiley>=33 && smiley<=42){							sprintf(buf1,"%s|%d",m_GamePlayer[player_id]->m_name,smiley-33);							send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_SMILEY,MSG_SMILEY_EXP,buf1);							m_GameServer[server_n]->send_all2(buf,player_id);						}						break;					case MSG_SMILEY_STATE:	//人物状态						sscanf(p_data, "%d|%d", &mstate, &sstate);						if( player_id!=NONE && server_n!=NONE ){							u->UserBody.Change_Body_State(smiley);							sprintf(buf1,"%s|%d|%d", m_GamePlayer[player_id]->m_name, mstate, sstate);							send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_SMILEY,MSG_SMILEY_STATE,buf1);							m_GameServer[server_n]->send_all2(buf,player_id);						}						break;										case MSG_SMILEY_ASPECT:	//人物方向						sscanf(p_data, "%d", &smiley);						if( player_id!=NONE && server_n!=NONE ){							sprintf(buf1,"%s|%d", m_GamePlayer[player_id]->m_name, smiley);							send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_SMILEY,MSG_SMILEY_ASPECT,buf1);							m_GameServer[server_n]->send_all2(buf,player_id);						}						break;				}				break;			case MSG_GOODS:	//物品消息				switch(p_msg2) {					case MSG_GOODS_BODY_ADD:						break;					case MSG_GOODS_BODY_DROP:	//掉物品						if( player_id!=NONE && server_n!=NONE ){							//--mrb modify							sscanf(p_data, "%d|%d|%d|%d", &src_pos, &src_id, &mapx, &mapy);							//sscanf(p_data, "%d|%d", &src_pos, &src_id);							if(u->UserBody.m_st[src_pos].m_gid==src_id){								newdust=u->UserBody.m_st[src_pos];								u->DropBodyGoods(src_pos,src_id);								s->Add_Dust_TO_MAP(newdust,u->m_pos_x,u->m_pos_y);							}						}						break;					case MSG_GOODS_BODY_SHOW:	//身上物品列表						if( player_id!=NONE ){							u->GetBodyAllGoods();							u->GetBodyAllArm();						}						break;										case MSG_GOODS_BODY_SWAP_POS:	//交换物品						if( player_id!=NONE && server_n!=NONE ){							sscanf(p_data, "%d|%d|%d|%d", &src_pos,&src_id,&target_pos,&target_id);							if(u->SwapBodyGoods(src_pos,target_pos,src_id,target_id)){								send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_GOODS,MSG_GOODS_BODY_SWAP_POS,"1");							}else{								send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_GOODS,MSG_GOODS_BODY_SWAP_POS,"0");							}							u->AddSocketBuf(buf);						}						break;										case MSG_GOODS_BODY_USE:	//使用物品						if( player_id!=NONE && server_n!=NONE ){							sscanf(p_data, "%d|%d", &src_pos, &src_id);							if(u->UserBody.m_st[src_pos].m_gid==src_id){								//printf("\t\tGoodsDB[u->UserBody.m_st[src_pos].m_gid] = %d\n",GoodsDB[u->UserBody.m_st[src_pos].m_gid].m_effect.m_HP);								u->UserBody.HP += GoodsDB[u->UserBody.m_st[src_pos].m_gid].m_effect.m_HP ;								if(GoodsDB[u->UserBody.m_st[src_pos].m_gid].m_ext) 									s->Add_ExtMC_TO_MAP(src_id,u->m_pos_x,u->m_pos_y);								if(u->UseBodyGoods(src_pos,src_id)) 									u->GetHumanStates();							}else{								send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_GOODS,MSG_GOODS_BODY_USE,"0");							}						}						break;					case MSG_GOODS_DUST_SHOW:	//垃圾处理						if( player_id!=NONE && server_n!=NONE ){							s->Get_Dust_All_Goods(player_id);						}						break;					case MSG_GOODS_DUST_TAKE:	//执垃圾						if( player_id!=NONE && server_n!=NONE ){							//---mrb modify							//sscanf(p_data, "%d", &dust_id);							sscanf(p_data, "%d|%d|%d", &dust_id, &mapx, &mapy);							s->Take_Dust(player_id,dust_id,u->m_pos_x,u->m_pos_y);						}						break;					case MSG_GOODS_MARKET_ASK:	//交易请求						if( player_id!=NONE && server_n!=NONE ){							target_id=CheckPlayerExist(p_data);							if( target_id!=NONE ){								if(s->MarketEvent_ASK(player_id,target_id)){									send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_GOODS,MSG_GOODS_MARKET_ASK,"1");								}else{									send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_GOODS,MSG_GOODS_MARKET_ASK,"0");								}								u->AddSocketBuf(buf);							}						}						break;					case MSG_GOODS_MARKET_CANCEL:	//交易取消						if( player_id!=NONE && server_n!=NONE ){							target_id=CheckPlayerExist(u->UserBody.MarketPlayer);							s->MarketEventS(MSG_GOODS_MARKET_CANCEL, player_id, target_id, NONE, NONE, NONE);							send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_GOODS,MSG_GOODS_MARKET_CANCEL,"1");							u->AddSocketBuf(buf);						}						break;					case MSG_GOODS_MARKET_OK:	//确应交易请求						if( player_id!=NONE && server_n!=NONE ){							target_id=CheckPlayerExist(u->UserBody.MarketPlayer);							if(s->MarketEventS(MSG_GOODS_MARKET_OK, player_id, target_id, NONE, NONE, NONE)){								send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_GOODS,MSG_GOODS_MARKET_OK,"1");							}else{								send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_GOODS,MSG_GOODS_MARKET_OK,"0");							}							u->AddSocketBuf(buf);						}						break;					case MSG_GOODS_MARKET_NOTMOVE:	//固定要交易的物品列表						if( player_id!=NONE && server_n!=NONE ){							target_id=CheckPlayerExist(u->UserBody.MarketPlayer);							money=atoi(p_data);							s->MarketEventS(MSG_GOODS_MARKET_NOTMOVE, player_id, target_id, NONE, NONE, money);						}						break;										case MSG_GOODS_MARKET_ADD:	//增加交易物品						if( player_id!=NONE && server_n!=NONE ){							sscanf(p_data, "%d|%d", &src_pos, &target_pos);							target_id=CheckPlayerExist(u->UserBody.MarketPlayer);							if(s->MarketEventS(MSG_GOODS_MARKET_ADD, player_id, target_id, src_pos, target_pos, NONE)){								send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_GOODS,MSG_GOODS_MARKET_ADD,"1");								u->AddSocketBuf(buf);							}													}						break;										case MSG_GOODS_MARKET_DROP:	//减少交易物品						if( player_id!=NONE && server_n!=NONE ){							target_pos=atoi(p_data);							target_id=CheckPlayerExist(u->UserBody.MarketPlayer);							if(s->MarketEventS(MSG_GOODS_MARKET_DROP, player_id, target_id, NONE, target_pos, NONE)){								send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_GOODS,MSG_GOODS_MARKET_DROP,"1");								u->AddSocketBuf(buf);							}													}						break;					case MSG_GOODS_MARKET_SWAP:	//完成交易物品						if( player_id!=NONE && server_n!=NONE ){							sscanf(p_data, "%d|%d", &src_pos, &target_pos);							target_id=CheckPlayerExist(u->UserBody.MarketPlayer);//							s->MarketEventS(MSG_GOODS_MARKET_NOTMOVE, player_id, target_id, NONE, NONE, NONE);							s->MarketEventS(MSG_GOODS_MARKET_SWAP, player_id, target_id, NONE, NONE, NONE);						}						break;					case MSG_GOODS_BODY_SALE:	//卖出物品						if( player_id!=NONE && server_n!=NONE ){							money=u->Sale_Body_Goods(p_data);							u->UserBody.MoneyOperate(money);						}						break;				}				break;			case MSG_BODY_S:				switch(p_msg2){					case MSG_BODY_MY_STATE:	//返回自身状态						if( player_id!=NONE && server_n!=NONE ){							u->GetHumanStates();						}						break;					case MSG_BODY_OTHER_STATE:	//返回别人状态						if( player_id!=NONE && server_n!=NONE ){							target_id=CheckPlayerExist(p_data);							if( target_id!=NONE ){								s->GetHumanStates(player_id,target_id);							}						}						break;				}				break;						case MSG_SHOP_S:				switch(p_msg2){										case MSG_SHOP_SHOW_LIST:	//返回物品列表						if( player_id!=NONE && server_n!=NONE ){							u->Get_Shop_Goods(atoi(p_data));						}						break;					case MSG_SHOP_BUY_LIST:	//购买物品列						sscanf(p_data, "%d|%s", &shop_id, buf_tmp);						if( player_id!=NONE && server_n!=NONE ){							if(u->Buy_Shop_Goods(shop_id,buf_tmp)){								send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_SHOP_S,MSG_SHOP_BUY_LIST,"1");							}else{								send_cmd_msg(buf,V_MSG_USERLEVEL,MSG_SHOP_S,MSG_SHOP_BUY_LIST,"0");							}							u->AddSocketBuf(buf);						}						break;				}				break;			case MSG_AIM_S:								int TmpMoney;				sscanf(p_data, "%d", &TmpMoney);						u->AIMEventS( p_msg2, TmpMoney );	//家明				break;			case MSG_GM_CMD :				//	kbird::	GM Command				if( !strcmp(u->UserLevel,"master") || !strcmp(u->UserLevel,"sysop") ){					GmCommand(p_msg2,p_data) ;				}else{					//	return error				}				break;		}}void mytrace(const char *str,int level){	//printf("info:%s\n",str);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -