工作中常用函数

来源:互联网 发布:电脑画画软件下载 编辑:程序博客网 时间:2024/05/16 05:57

//1房间服务器关闭时,房间服务端触发的函数

CAttemperEngineSink::OnAttemperEngineConclude


///2玩家进入房间,客户端调用的函数

CServerViewItem::OnSocketSubUserEnter

///3玩家游戏结算后,客户端同步数据

-----游戏房间发送

SendData(BG_COMPUTER,MDM_GR_USER,SUB_GR_USER_SCORE,&UserScore,sizeof(UserScore));

SendDataBatchToMobileUser(pIServerUserItem->GetTableID(),MDM_GR_USER,SUB_GR_USER_SCORE,&MobileUserScore,sizeof(MobileUserScore));

-----客户端接收

CServerViewItem::OnSocketSubUserScore

-----游戏服务器中查找玩家

IServerUserItem *pIServerUserItem = m_ServerUserManager.SearchUserItem(dwUserId);

virtual IServerUserItem * EnumUserItem(WORD wEnumIndex);
virtual IServerUserItem * SearchUserItem(DWORD dwUserID);
virtual IServerUserItem * SearchUserItem(LPCTSTR pszNickName);



-----协调服务器中查找玩家

CGlobalUserItem * SearchUserItemByUserID(DWORD dwUserID);
CGlobalUserItem * SearchUserItemByGameID(DWORD dwGameID);
CGlobalUserItem * SearchUserItemByNickName(LPCTSTR pszNickName);

CGlobalUserItem * EnumUserItem(POSITION & Position);
//枚举广场
CGlobalPlazaItem * EnumPlazaItem(POSITION & Position);
//枚举房间
CGlobalServerItem * EnumServerItem(POSITION & Position);

//释放用户

CGlobalInfoManger::FreeGlobalUserItem


////e:\永荣\游戏组件\常规游戏\蛇行亿年\蛇行亿年服务器\AndroidUserItemSink.cpp

//机器人中设置的定时器在 “IDI_ANDROID_PULSE: ---》 pAndroidUserItem->OnTimerPulse(dwTimerID,dwBindParameter);//用户脉冲”中调用

m_pIAndroidUserItem->SetGameTimer(IDI_CHANGE_BULLET, 8);

此调用只生效一次,所以如果涉及到倒计时的话,要在响应事件中重新调用SetGameTimer


///关闭游戏端1

CGlobalUnits * pGlobalUnits=CGlobalUnits::GetInstance();
IGameFrameView * pIGameFrameView=(IGameFrameView *)pGlobalUnits->QueryGlobalModule(MODULE_GAME_FRAME_VIEW,IID_IGameFrameView,VER_IGameFrameView);
CGameClientView *pGameClientView = (CGameClientView*)pIGameFrameView;
pGameClientView->SendEngineMessage(IDM_GAME_CLOSE,0,0);

///关闭游戏端2

PostMessage(WM_CLOSE,0,0);

///关闭游戏端3 采用这个关闭的话,游戏的消息会不干净,比如玩家在游戏中的状态未重置

HANDLE hself = GetCurrentProcess();
TerminateProcess(hself, 0);


////cyrlog
if(LOG_YONG)
{
  FILE *log;
  log=fopen("d:\log1.txt","a");
  fprintf(log,"\n");
  fclose(log);
}
//cyrlog

#define LOG_YONG 1
#define LOGYONGS(x) \
{\
if(LOG_YONG){ FILE *log;  \
log=fopen("d:\log1.txt","a");\
fprintf(log,"%s\n",x);\
fclose(log);\
}\
}
#define LOGYONGI(x,y) \
{\
if(LOG_YONG){ FILE *log;  \
log=fopen("d:\log1.txt","a");\
fprintf(log,"%s%d\n",x,y);\
fclose(log);\
}\
}


#define LOGYONGS(x) \
{\
if(LOG_YONG){ \
printf("%s\n",x);\
}\
}
#define LOGYONGI(x,y) \
{\
if(LOG_YONG){ \
printf("%s%d\n",x,y);\
}\
}
#define LOGYONGX(x,y) \
{\
if(LOG_YONG){ \
printf("%s%X\n",x,y);\
}\
}
#define LOGYONGF(x,y) \
{\
if(LOG_YONG){ \
printf("%s%f\n",x,y);\
}\
}


////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////窗口中加载网页  CWebPublicize       m_PublicizeRecord;

////CDlgInsureRecord.OnCreate 
CRect rcCreate(0,0,0,0);
m_PublicizeRecord.Create(NULL,NULL,WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN,rcCreate,this,IDC_PULICIZE_RECORD);
m_PublicizeRecord.SetBackGroundColor(m_pDlgInsureOperater->GetItemBackColor());

//构造地址
TCHAR szBillUrl[256]=TEXT("");


//获取对象
CGlobalWebLink * pGlobalWebLink=CGlobalWebLink::GetInstance();


//操作记录
_sntprintf(szBillUrl,CountArray(szBillUrl),TEXT("%s/%sUserService/UserService7.aspx"),pGlobalWebLink->GetPlatformLink(),pGlobalWebLink->GetValidateLink());
m_PublicizeRecord.Navigate(szBillUrl);


////CDlgInsureRecord.OnSize 

m_PublicizeRecord.SetWindowPos(NULL,0,0,cx,cy,SWP_NOZORDER);

//////CDlgInsureRecord.RefreshInsureRecord 

CWebBrowser * pWebBrowser=m_PublicizeRecord.GetWebBrowser();
pWebBrowser->Refresh();



///////////////////////////////////////当天的时间戳

//获取时间
SYSTEMTIME SystemTime;
GetLocalTime(&SystemTime);
DWORD dwTodayTickCount= GetTodayTickCount(SystemTime);


////////更改自己为管理员

update [THAccountsDB].[dbo].[AccountsInfo] set MasterRight=134217728,MasterOrder=5 where Accounts='yongrongya'

//////////填充矩形

CRect rect;
rect.left=nX-byOffset;
rect.top=nY-14;
rect.right=nX+byCount*7;
rect.bottom=nY+16;
pDC->FillRect(&rect,br1);

///////画矩形

BYTE byOffset=28;
pDC->Rectangle(nX-byOffset,nY-14,nX+byCount*7,nY+16);

//设置字体

CFont NewFont;
VERIFY(NewFont.CreateFont(12,0,0,0,FW_NORMAL,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_SWISS,TEXT("宋体")));
CFont * pOldFont = pDC->SelectObject(&NewFont);

//用户积分
TCHAR szScore[64];
LONGLONG lScore = m_lUserAddScore[i]==0?pClientUserItem->GetUserScore():(pClientUserItem->GetUserScore()-m_lUserAddScore[i]);
_sntprintf(szScore,CountArray(szScore),TEXT("金币:%I64d"),lScore);
DrawTextString(pDC,szScore,RGB(255,255,255),RGB(0,0,0),m_ptAvatar[i].x+((i==3||i==4)?-5:50)+3,m_ptAvatar[i].y+12*1+10);


pDC->SelectObject(pOldFont);
NewFont.DeleteObject();


///////解除被锁在其他房间里的玩家

delete from THTreasureDB.dbo.GameScoreLocker where UserID=

/////点在矩形中

CPoint MousePoint;
GetCursorPos(&MousePoint);
ScreenToClient(&MousePoint);
if(m_rectBet.PtInRect(MousePoint))



0 0
原创粉丝点击