📄 move_server.cc
字号:
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 + -