工作中常用函数
来源:互联网 发布:电脑画画软件下载 编辑:程序博客网 时间: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))
- 工作中常用函数
- 工作中常用的js函数
- 工作中常用 的自定义函数
- 工作中常用 的自定义函数
- 工作中常用的数据库的中技巧或函数
- 工作中常用专业术语
- 工作中常用滤波器
- 工作中常用的R语言函数(持续更新中……)
- 工作中常用的工具
- 工作中常用的命令
- 工作中常用的插件
- 工作中常用日语记录
- 工作中常用redis命令
- 工作中常用mysql语句
- 工作中常用redis命令
- git常用命令-工作中常用
- 工作中常用的网站
- 工作中常用的php递归实现无限极分类的2种函数
- 通过Js来修改页面元素
- 什么是Java对象分配率?
- 跳表(Skip List)的介绍以及查找插入删除等操作
- n皇后
- Android 隐藏标题栏以及设置全屏的方法
- 工作中常用函数
- 推送通知
- 年龄几何
- 分析算法时间复杂度
- 工作不要太看重钱?那看重什么!
- 第八周项目1-建立顺序串的算法库
- linux的crontab定时服务备份mysql数据
- Cocoa过滤器NSPredicate
- C++11中的原子操作(atomic operation)