예제 #1
0
//初始化函数
BOOL CShortMessage::OnInitDialog()
{
	CSkinDialogEx::OnInitDialog();

	m_cbButtonState[BST_MAX]=BUT_EXIST|BUT_DISABLE;
	m_cbButtonState[BST_MIN]=BUT_EXIST|BUT_NORMAL;

	//设置标题
	if (m_pTargetUserItem!=NULL)
	{
		TCHAR szTitle[256];
		_snprintf(szTitle,sizeof(szTitle),TEXT("[ %s ] - [ %s ]"),m_pTargetUserItem->GetUserData()->szName,m_strRoomName);
		SetWindowText(szTitle);
	}

	//信息代理
	if (m_MessageProxyHelper.CreateInstance()==false) return false;
	if (m_MessageProxyHelper->SetRichEditHwnd(&m_RecvMessage)==false) return false;

	//按钮皮肤
	m_BtExpression.SetButtonImage(g_GlobalUnits.m_WhisperViewImage.uBtExpression,g_GlobalUnits.m_PlatformResourceModule->GetResInstance(),false);

	//设置控件
	m_RecvMessage.SetBackgroundColor(FALSE,RGB(230,249,255));
	m_SendMessage.LimitText(MAX_CHAT_LEN);
	m_SendMessage.SetFocus();

	//消息头
	TCHAR szTitle[128]=TEXT("");
	_snprintf(szTitle,CountArray(szTitle),TEXT("【温馨提示】"));
	m_MessageProxyHelper->InsertGeneralString(szTitle,RGB(255,0,0),MS_NORMAL,false);

	//预警信息
	TCHAR szMessage[128] ;
	_snprintf(szMessage,CountArray(szMessage),TEXT("客服人员不会以任何形式向您索取您的帐户信息,请玩家提高警惕,保护好自己帐号密码!"));
	m_MessageProxyHelper->InsertShtickString(szMessage,RGB(0,0,0),MS_NORMAL,true);

	return FALSE;
}
예제 #2
0
파일: GameLogic.cpp 프로젝트: vsanth/kkj
//或等于
CChiHuRight & CChiHuRight::operator |= ( DWORD dwRight )
{
	//验证权位
	if( !IsValidRight( dwRight ) ) return *this;

	for( BYTE i = 0; i < CountArray(m_dwRightMask); i++ )
	{
		if( (dwRight&m_dwRightMask[i]) || (i==0&&dwRight<0x10000000) )
			m_dwRight[i] |= (dwRight&MASK_CHI_HU_RIGHT);
	}

	return *this;
}
예제 #3
0
//扣除扑克
void CGameClientDlg::DeductionTableCard(bool bHeadCard)
{
	if (bHeadCard==true)
	{
		//切换索引
		BYTE cbHeapCount=m_cbHeapCardInfo[m_wHeapHand][0]+m_cbHeapCardInfo[m_wHeapHand][1];
		if (cbHeapCount==HEAP_FULL_COUNT)
			m_wHeapHand=(m_wHeapHand+1)%CountArray(m_cbHeapCardInfo);

		//减少扑克
		m_cbLeftCardCount--;
		m_cbHeapCardInfo[m_wHeapHand][0]++;

		//堆立扑克
		WORD wHeapViewID=SwitchViewChairID(m_wHeapHand);
		WORD wMinusHeadCount=m_cbHeapCardInfo[m_wHeapHand][0];
		WORD wMinusLastCount=m_cbHeapCardInfo[m_wHeapHand][1];
		m_GameClientView.m_HeapCard[wHeapViewID].SetCardData(wMinusHeadCount,wMinusLastCount,HEAP_FULL_COUNT);
	}
	else
	{
		//切换索引
		BYTE cbHeapCount=m_cbHeapCardInfo[m_wHeapTail][0]+m_cbHeapCardInfo[m_wHeapTail][1];
		if (cbHeapCount==HEAP_FULL_COUNT)
			m_wHeapTail=(m_wHeapTail+3)%CountArray(m_cbHeapCardInfo);

		//减少扑克
		m_cbLeftCardCount--;
		m_cbHeapCardInfo[m_wHeapTail][1]++;

		//堆立扑克
		WORD wHeapViewID=SwitchViewChairID(m_wHeapTail);
		WORD wMinusHeadCount=m_cbHeapCardInfo[m_wHeapTail][0];
		WORD wMinusLastCount=m_cbHeapCardInfo[m_wHeapTail][1];
		m_GameClientView.m_HeapCard[wHeapViewID].SetCardData(wMinusHeadCount,wMinusLastCount,HEAP_FULL_COUNT);
	}

	return;
}
예제 #4
0
//发送坐下失败
void CTableFrame::SendSitFailedPacket(IServerUserItem * pIServerUserItem, LPCTSTR pszFailedDescribe)
{
	//构造数据
	CMD_GR_SitFailed SitFailed;
	memset(&SitFailed,0,sizeof(SitFailed));
	lstrcpyn(SitFailed.szFailedDescribe,pszFailedDescribe,CountArray(SitFailed.szFailedDescribe));

	//发送数据
	WORD wSendSize=sizeof(SitFailed)-sizeof(SitFailed.szFailedDescribe)+CountString(SitFailed.szFailedDescribe);
	m_pIGameServiceFrame->SendData(pIServerUserItem,MDM_GR_USER,SUB_GR_SIT_FAILED,&SitFailed,wSendSize);

	return;
}
//设置密码
VOID CPasswordControl::SetUserPassword(LPCTSTR pszPassword)
{
	//设置控件
	INT nPasswordLen=lstrlen(pszPassword);
	m_edPassword.SetWindowText((nPasswordLen>0)?TEXT("********"):TEXT(""));

	//设置变量
	m_bModify=false;
	m_bFalsity=true;
	lstrcpyn(m_szPassword,pszPassword,CountArray(m_szPassword));

	return;
}
예제 #6
0
//收到消息
void CShortMessage::OnRecvMessage(TCHAR * szSendName, TCHAR * szMessage, COLORREF crColor, bool bMeMessage)
{
	//获取时间
	SYSTEMTIME SystemTime;
	GetLocalTime(&SystemTime);

	//消息头
	TCHAR szTitle[128]=TEXT("");
	_snprintf(szTitle,CountArray(szTitle),TEXT("%s %02d:%02d:%02d\n   "),szSendName,SystemTime.wHour,SystemTime.wMinute,SystemTime.wSecond);
	m_MessageProxyHelper->InsertGeneralString(szTitle,(bMeMessage==true)?RGB(0,128,64):RGB(0,0,255),MS_NORMAL,false);

	//插入消息
	m_MessageProxyHelper->InsertShtickString(szMessage,crColor,MS_NORMAL,true);
	m_MessageProxyHelper->InsertGeneralString(TEXT(""),crColor,MS_NORMAL,true);

	//写入文件
	try
	{
		TCHAR szTitle[128]=TEXT("");
		_snprintf(szTitle,CountArray(szTitle),TEXT("[%s] %u/%u/%u %02d:%02d:%02d"),szSendName,SystemTime.wYear, SystemTime.wMonth, SystemTime.wDay,SystemTime.wHour,SystemTime.wMinute,SystemTime.wSecond);

		//写入文件
		CFile MsgFile;
		if(MsgFile.Open(m_strMsgFileName, CFile::modeWrite|CFile::modeNoTruncate|CFile::modeCreate))
		{
			MsgFile.SeekToEnd() ;
			MsgFile.Write(szTitle, UINT(strlen(szTitle))) ;
			MsgFile.Write("\r\n", UINT(strlen("\r\n"))) ;
		
			MsgFile.Write(szMessage, UINT(strlen(szMessage))) ;
			MsgFile.Write("\r\n\r\n", UINT(strlen("\r\n\r\n"))) ;
			MsgFile.Close() ;
		}

	}
	catch(...){}

	return;
}
예제 #7
0
//更新关系
const tagCompanionItem * __cdecl CCompanionManager::UpdateCompanionItem(DWORD dwUserID, LPCTSTR pszAccounts, LPCTSTR pszFace)
{
	tagCompanionItem * pCompanionItem=NULL;
	for (INT_PTR i=0;i<m_CompanionItemActive.GetCount();i++)
	{
		pCompanionItem=m_CompanionItemActive[i];
		ASSERT(pCompanionItem!=NULL);
		if (pCompanionItem->dwUserID==dwUserID)
		{
			//设置数据
			m_bNeedUpdate=true;
			lstrcpyn(pCompanionItem->szFace,pszFace,CountArray(pCompanionItem->szFace));
			lstrcpyn(pCompanionItem->szAccounts,pszAccounts,CountArray(pCompanionItem->szAccounts));

			//更新界面
			m_DlgCompanionManager.UpdateCompanionItem(pCompanionItem,false);

			return pCompanionItem;
		}
	}
	return NULL;
}
예제 #8
0
//取消申请
bool CTableFrameSink::OnUserCancelBanker(IServerUserItem *pICancelServerUserItem)
{
	//当前庄家
	if (pICancelServerUserItem->GetChairID()==m_wCurrentBanker && m_pITableFrame->GetGameStatus()!=GS_FREE)
	{
		//发送消息
		m_pITableFrame->SendGameMessage(pICancelServerUserItem,TEXT("游戏已经开始,不可以取消当庄!"),SMT_INFO|SMT_EJECT);
		return true;
	}

	//存在判断
	for (WORD i=0; i<m_ApplyUserArray.GetCount(); ++i)
	{
		//获取玩家
		WORD wChairID=m_ApplyUserArray[i];
		IServerUserItem *pIServerUserItem=m_pITableFrame->GetServerUserItem(wChairID);

		//条件过滤
		if (pIServerUserItem==NULL) 
			continue;
		if (pIServerUserItem->GetUserID()!=pICancelServerUserItem->GetUserID()) 
			continue;

		//删除玩家
		m_ApplyUserArray.RemoveAt(i);

		if (m_wCurrentBanker!=wChairID)
		{
			//构造变量
			CMD_S_CancelBanker CancelBanker;
			ZeroMemory(&CancelBanker,sizeof(CancelBanker));

			//设置变量
			lstrcpyn(CancelBanker.szCancelUser,pIServerUserItem->GetAccounts(),CountArray(CancelBanker.szCancelUser));

			//发送消息
			m_pITableFrame->SendTableData(INVALID_CHAIR, SUB_S_CANCEL_BANKER, &CancelBanker, sizeof(CancelBanker));
			m_pITableFrame->SendLookonData(INVALID_CHAIR, SUB_S_CANCEL_BANKER, &CancelBanker, sizeof(CancelBanker));
		}
		else if (m_wCurrentBanker==wChairID)
		{
			//切换庄家 
			m_wCurrentBanker=INVALID_CHAIR;
			ChangeBanker(true);
		}

		return true;
	}

	return false;
}
예제 #9
0
//连接事件
bool CEditUnderWrite::OnEventMissionLink(INT nErrorCode)
{
	//错误判断
	if (nErrorCode!=0L)
	{
		//错误提示
		CInformation Information(m_pParentWnd);
		Information.ShowMessageBox(TEXT("服务器连接失败,个性签名更新失败!"),MB_ICONERROR,30L);

		return true;
	}

	//设置变量
	m_bNeedSend=false;

	//变量定义
	ASSERT(GetMissionManager()!=NULL);
	CMissionManager * pMissionManager=GetMissionManager();

	//用户信息
	CGlobalUserInfo * pGlobalUserInfo=CGlobalUserInfo::GetInstance();
	tagGlobalUserData * pGlobalUserData=pGlobalUserInfo->GetGlobalUserData();

	//变量定义
	CMD_GP_ModifyUnderWrite ModifyUnderWrite;
	ZeroMemory(&ModifyUnderWrite,sizeof(ModifyUnderWrite));

	//设置数据
	ModifyUnderWrite.dwUserID=pGlobalUserData->dwUserID;
	lstrcpyn(ModifyUnderWrite.szUnderWrite,m_szUnderWrite,CountArray(ModifyUnderWrite.szUnderWrite));
	lstrcpyn(ModifyUnderWrite.szPassword,pGlobalUserData->szPassword,CountArray(ModifyUnderWrite.szPassword));

	//发送数据
	WORD wHeadSize=sizeof(ModifyUnderWrite)-sizeof(ModifyUnderWrite.szUnderWrite);
	pMissionManager->SendData(MDM_GP_USER_SERVICE,SUB_GP_MODIFY_UNDER_WRITE,&ModifyUnderWrite,wHeadSize+CountStringBuffer(ModifyUnderWrite.szUnderWrite));

	return true;
}
예제 #10
0
//保存输入
bool CDlgRegWizardAccount::SaveInputInfo()
{
	//变量定义
	CString strAccount;
	TCHAR szPassword[LEN_PASSWORD]=TEXT("");

	//保存输入
	GetDlgItemText(IDC_ACCOUNTS,strAccount);
	GetDlgItemText(IDC_PASSWORD,m_szPassword,CountArray(m_szPassword));
	GetDlgItemText(IDC_PASSWORD2,szPassword,CountArray(szPassword));

	//效验用户名
	strAccount.TrimLeft();
	strAccount.TrimRight();
	if (strAccount.IsEmpty())
	{
		ShowInformation(TEXT("用户帐号不能为空,请重新输入!"),MB_ICONERROR);
		m_edAccounts.SetFocus();
		return false;
	}
	lstrcpyn(m_szAccounts,strAccount,sizeof(m_szAccounts));

	//效验密码
	if (m_szPassword[0]==0)
	{
		ShowInformation(TEXT("登录密码不能为空,请重新输入!"),MB_ICONERROR);
		m_edPassword.SetFocus();
		return false;
	}
	if (lstrcmp(m_szPassword,szPassword)!=0)
	{
		ShowInformation(TEXT("两次输入的登录密码不相同,请重新输入!"),MB_ICONERROR);
		m_edPassword2.SetFocus();
		return false;
	}

	return true;
}
예제 #11
0
//索引切换
WORD CCardControl::SwitchCardPoint(CPoint & MousePoint)
{
	//基准位置
	int nXPos=MousePoint.x-m_ControlPoint.x;
	int nYPos=MousePoint.y-m_ControlPoint.y;

	//范围判断
	if ((nXPos<0)||(nXPos>m_ControlSize.cx)) return INVALID_ITEM;
	if ((nYPos<POS_SHOOT)||(nYPos>m_ControlSize.cy)) return INVALID_ITEM;

	//牌列子项
	if (nXPos<CARD_WIDTH*CountArray(m_CardItemArray))
	{
		WORD wViewIndex=(WORD)(nXPos/CARD_WIDTH)+m_wCardCount;
		if (wViewIndex>=CountArray(m_CardItemArray)) return wViewIndex-CountArray(m_CardItemArray);
		return INVALID_ITEM;
	}

	//当前子项
	if ((m_CurrentCard.cbCardData!=0)&&(nXPos>=(m_ControlSize.cx-CARD_WIDTH))) return CountArray(m_CardItemArray);

	return INVALID_ITEM;
}
예제 #12
0
//地区信息
VOID CDlgRegWizardUserInfo::LoadAreaInfo(LPCTSTR pszCity)
{
	//工作目录
	TCHAR szDirectory[MAX_PATH]=TEXT("");
	CWHService::GetWorkDirectory(szDirectory,CountArray(szDirectory));

	//变量定义
	TCHAR szAreaFile[MAX_PATH],szItem[20],szAreaRead[CountArray(m_szArea)];
	_sntprintf(szAreaFile,CountArray(szAreaFile),TEXT("%s\\AreaInfo.INI"),szDirectory);

	//读取资料
	m_comArea.ResetContent();
	UINT nCount=GetPrivateProfileInt(pszCity,TEXT("COUNT"),0,szAreaFile);
	for (UINT i=0;i<nCount;i++)
	{
		szAreaRead[0]=0;
		_sntprintf(szItem,CountArray(szItem),TEXT("Item%d"),i);
		GetPrivateProfileString(pszCity,szItem,TEXT(""),szAreaRead,sizeof(szAreaRead),szAreaFile);
		if ((szAreaRead[0]!=0)&&(m_comArea.FindString(0,szAreaRead)==LB_ERR)) m_comArea.AddString(szAreaRead);
	}

	return;
}
예제 #13
0
//保存输入
bool CDlgRegWizardUserInfo::SaveInputInfo()
{
	//用户年龄
	INT nCurSel=m_comAge.GetCurSel();
	if (nCurSel==LB_ERR)
	{
		TCHAR szBuffer[16];
		m_comAge.GetWindowText(szBuffer,CountArray(szBuffer));
		m_cbAge=(BYTE)_tstoi(szBuffer);
	}
	else m_cbAge=(BYTE)m_comAge.GetItemData(nCurSel);

	//用户性别
	nCurSel=m_comGender.GetCurSel();
	m_cbGender=(nCurSel!=LB_ERR)?(BYTE)m_comGender.GetItemData(nCurSel):GENDER_UNKNOW;

	//区域信息
	m_comArea.GetWindowText(m_szArea,CountArray(m_szArea));
	m_comCity.GetWindowText(m_szCity,CountArray(m_szCity));
	m_comProvince.GetWindowText(m_szProvince,CountArray(m_szProvince));
	
	return true;
}
예제 #14
0
//获取连接
bool CGameServerDlg::InitDataBaseParameter(tagDataBaseParameter & DataBaseParameter)
{
	//获取路径
	TCHAR szWorkDir[MAX_PATH]=TEXT("");
	CWHService::GetWorkDirectory(szWorkDir,CountArray(szWorkDir));

	//构造路径
	TCHAR szIniFile[MAX_PATH]=TEXT("");
	_sntprintf(szIniFile,CountArray(szIniFile),TEXT("%s\\ServerParameter.ini"),szWorkDir);

	//读取配置
	CWHIniData IniData;
	IniData.SetIniFilePath(szIniFile);

	//连接信息
	DataBaseParameter.wDataBasePort=(WORD)IniData.ReadInt(TEXT("PlatformDB"),TEXT("DBPort"),1433);
	IniData.ReadEncryptString(TEXT("PlatformDB"),TEXT("DBAddr"),NULL,DataBaseParameter.szDataBaseAddr,CountArray(DataBaseParameter.szDataBaseAddr));
	IniData.ReadEncryptString(TEXT("PlatformDB"),TEXT("DBUser"),NULL,DataBaseParameter.szDataBaseUser,CountArray(DataBaseParameter.szDataBaseUser));
	IniData.ReadEncryptString(TEXT("PlatformDB"),TEXT("DBPass"),NULL,DataBaseParameter.szDataBasePass,CountArray(DataBaseParameter.szDataBasePass));
	IniData.ReadEncryptString(TEXT("PlatformDB"),TEXT("DBName"),szPlatformDB,DataBaseParameter.szDataBaseName,CountArray(DataBaseParameter.szDataBaseName));

	return true;
}
예제 #15
0
//发送游戏消息
bool __cdecl CTableFrame::SendGameMessage(IServerUserItem * pIServerUserItem, LPCTSTR lpszMessage, WORD wMessageType)
{
	//构造数据包
	CMD_GF_Message Message;
	Message.wMessageType=wMessageType;
	lstrcpyn(Message.szContent,lpszMessage,CountArray(Message.szContent));
	Message.wMessageLength=CountString(Message.szContent);

	//发送数据
	WORD wSendSize=sizeof(Message)-sizeof(Message.szContent)+Message.wMessageLength*sizeof(TCHAR);
	m_pIGameServiceFrame->SendData(pIServerUserItem,MDM_GF_FRAME,SUB_GF_MESSAGE,&Message,wSendSize);

	return true;
}
예제 #16
0
	void			IAndroid::GetClientSerial(tagClientSerial & ClientSerial)
	{
		//获取版本
		OSVERSIONINFO OSVerInfo;
		OSVerInfo.dwOSVersionInfoSize=sizeof(OSVerInfo);
		GetVersionEx(&OSVerInfo);
		ClientSerial.dwSystemVer=MAKELONG(OSVerInfo.dwMajorVersion,OSVerInfo.dwMinorVersion);

		//网卡标识
		ZeroMemory(ClientSerial.dwComputerID,sizeof(ClientSerial.dwComputerID));
		WORD wMacSize=GetMACAddress((BYTE *)ClientSerial.dwComputerID,sizeof(ClientSerial.dwComputerID));

		//硬盘标识
		WORD wIndex=(wMacSize+sizeof(DWORD)-1)/sizeof(DWORD);
		LPCTSTR pszHardDisk[]={TEXT("C:\\"),TEXT("D:\\"),TEXT("E:\\")};
		for (WORD i=wIndex;i<CountArray(ClientSerial.dwComputerID);i++)
		{
			ASSERT(CountArray(pszHardDisk)>(i-wIndex));
			GetVolumeInformation(pszHardDisk[i-wIndex],NULL,0,&ClientSerial.dwComputerID[i],NULL,NULL,0,NULL);
		}

		return;
	}
//获取密码
LPCTSTR CPasswordControl::GetUserPassword(TCHAR szPassword[LEN_PASSWORD])
{
	//控件密码
	if (m_bModify==true)
	{
		m_bModify=false;
		m_edPassword.GetWindowText(m_szPassword,CountArray(m_szPassword));
	}

	//拷贝密码
	lstrcpyn(szPassword,m_szPassword,LEN_PASSWORD);

	return szPassword;
}
예제 #18
0
//重画函数
void CScoreView::OnPaint() 
{
	CPaintDC dc(this); 

	//设置 DC
	dc.SetBkMode(TRANSPARENT);
	dc.SetTextColor(RGB(250,250,250));
	dc.SelectObject(&CSkinAttribute::m_DefaultFont);

	//绘画背景
	CImageHandle ImageHandle(&m_ImageBack);
	m_ImageBack.BitBlt(dc,0,0);

	//显示分数
	CRect rcDraw;
	TCHAR szBuffer[64]=TEXT("");
	for (WORD i=0;i<CountArray(m_szUserName);i++)
	{
		//用户名字
		rcDraw.left=20;
		rcDraw.right=80;
		rcDraw.top=i*20+58;
		rcDraw.bottom=rcDraw.top+12;
		dc.DrawText(m_szUserName[i],lstrlen(m_szUserName[i]),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS);

		//用户积分
		rcDraw.left=120;
		rcDraw.right=190;
		_snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lGameScore[i]);
		dc.DrawText(szBuffer,lstrlen(szBuffer),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS);
	}

	//显示税收
	rcDraw.left=20;
	rcDraw.right=80;
	rcDraw.top=i*20+58;
	rcDraw.bottom=rcDraw.top+12;
	LPCTSTR pszTax=TEXT("交易税");
	dc.DrawText(pszTax,lstrlen(pszTax),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS);

	//显示税收
	rcDraw.left=120;
	rcDraw.right=190;
	rcDraw.top=i*20+58;
	rcDraw.bottom=rcDraw.top+12;
	_snprintf(szBuffer,sizeof(szBuffer),"%ld",m_lGameTax);
	dc.DrawText(szBuffer,lstrlen(szBuffer),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS);

	return;
}
예제 #19
0
void ExChangeManager::OnUseExChangeCode(CRoleEx* pRole,CL_Cmd_RoleUseExChangeCode* pMsg)
{
	if (!pMsg || !pRole)
	{
		ASSERT(false);
		return;
	}
	//ÏòÊý¾Ý¿â½øÐвéѯ ¶Ò»»Âë¶ÔÓ¦µÄID 
	DBR_Cmd_QueryExChange msg;
	SetMsgInfo(msg, DBR_QueryExChange, sizeof(DBR_Cmd_QueryExChange));
	msg.dwUserID = pRole->GetUserID();
	TCHARCopy(msg.ExChangeCode, CountArray(msg.ExChangeCode), pMsg->ExChangeCode, _tcslen(pMsg->ExChangeCode));
	g_FishServer.SendNetCmdToDB(&msg);
}
예제 #20
0
//鼠标消息
void CControlWnd::OnLButtonDown(UINT nFlags, CPoint Point)
{
	__super::OnLButtonDown(nFlags, Point);

	//索引判断
	if (m_cbCurrentItem!=0xFF)
	{
		//变量定义
		BYTE cbIndex=0;
		BYTE cbItemKind[4]={WIK_LEFT,WIK_CENTER,WIK_RIGHT,WIK_PENG};

		//类型子项
		for (BYTE i=0;i<CountArray(cbItemKind);i++)
		{
			if (((m_cbActionMask&cbItemKind[i])!=0)&&(m_cbCurrentItem==cbIndex++))
			{
				AfxGetMainWnd()->PostMessage(IDM_CARD_OPERATE,cbItemKind[i],m_cbCenterCard);
				return;
			}
		}

		//杠牌子项
		for (BYTE i=0;i<CountArray(m_cbGangCard);i++)
		{
			if ((m_cbGangCard[i]!=0)&&(m_cbCurrentItem==cbIndex++))
			{
				AfxGetMainWnd()->PostMessage(IDM_CARD_OPERATE,WIK_GANG,m_cbGangCard[i]);
				return;
			}
		}

		//错误断言
		ASSERT(FALSE);
	}

	return;
}
예제 #21
0
//配置信息
bool CClientKernel::OnIPCConfig(const IPC_Head * pHead, const void * pIPCBuffer, WORD wDataSize, HWND hWndSend)
{
	ASSERT(pHead->wMainCmdID==IPC_MAIN_CONFIG);
	switch (pHead->wSubCmdID)
	{
	case IPC_SUB_SERVER_INFO:	//房间信息
		{
			//效验参数
			ASSERT(wDataSize>=sizeof(IPC_GF_ServerInfo));
			if (wDataSize<sizeof(IPC_GF_ServerInfo)) return false;

			//处理数据
			IPC_GF_ServerInfo * pServerInfo=(IPC_GF_ServerInfo *)pIPCBuffer;
			m_wTableID=pServerInfo->wTableID;
			m_wChairID=pServerInfo->wChairID;
			m_dwUserID=pServerInfo->dwUserID;
			m_ServerAttribute.wKindID=pServerInfo->wKindID;
			m_ServerAttribute.wServerID=pServerInfo->wServerID;
			m_ServerAttribute.wGameGenre=pServerInfo->wGameGenre;
			m_ServerAttribute.wChairCount=pServerInfo->wChairCount;
			m_ServerAttribute.dwVideoAddr=pServerInfo->dwVideoAddr;
			m_ServerAttribute.cbHideUserInfo=pServerInfo->cbHideUserInfo;
			lstrcpyn(m_ServerAttribute.szKindName,pServerInfo->szKindName,CountArray(m_ServerAttribute.szKindName));
			lstrcpyn(m_ServerAttribute.szServerName,pServerInfo->szServerName,CountArray(m_ServerAttribute.szServerName));

			//设置视频
			CVideoServiceManager * pVideoServiceManager=CVideoServiceManager::GetInstance();
			if ( pVideoServiceManager!=NULL) pVideoServiceManager->SetVideoServiceInfo(pServerInfo->dwUserID,htonl(pServerInfo->dwVideoAddr),PORT_VIDEO_SERVER);

			//更新标题
			UpdateGameTitle();

			return true;
		}
	}
	return false;
}
예제 #22
0
//绘画数字
VOID CDlgInsureGame::DrawNumberString(CDC * pDC, SCORE lScore, INT nXPos, INT nYPos)
{
	//转换逗号
	TCHAR szControl[128]=TEXT("");
	CString cs;

	//转换格式
	MakeString(cs,lScore);
	_sntprintf(szControl,CountArray(szControl),TEXT("%s"),cs);

	//变量定义
	INT nXDrawPos=nXPos;
	INT nScoreLength=lstrlen(szControl);

	//绘画判断
	if (nScoreLength>0L)
	{
		//获取大小
		CSize SizeNumber;
		SizeNumber.SetSize(m_ImageNumber.GetWidth()/12L,m_ImageNumber.GetHeight());

		//绘画数字
		for (INT i=0;i<nScoreLength;i++)
		{
			//绘画逗号
			if (szControl[i]==TEXT(','))
			{
				m_ImageNumber.DrawImage(pDC,nXDrawPos,nYPos,SizeNumber.cx,SizeNumber.cy,SizeNumber.cx*10L,0L);
			}

			//绘画点号
			if (szControl[i]==TEXT('.'))
			{
				m_ImageNumber.DrawImage(pDC,nXDrawPos,nYPos,SizeNumber.cx,SizeNumber.cy,SizeNumber.cx*11L,0L);
			}

			//绘画数字
			if (szControl[i]>=TEXT('0')&&szControl[i]<=TEXT('9'))
			{
				m_ImageNumber.DrawImage(pDC,nXDrawPos,nYPos,SizeNumber.cx,SizeNumber.cy,SizeNumber.cx*(szControl[i]-TEXT('0')),0L);
			}

			//设置位置
			nXDrawPos+=SizeNumber.cx;
		}
	}

	return;
}
예제 #23
0
//初始化函数
BOOL CDlgOption::OnInitDialog()
{
    __super::OnInitDialog();

    //获取位置
    CRect rcClient,rcFrame;
    GetClientRect(&rcClient);
    rcFrame.left=BUTTON_BAR_WIDTH+15;
    rcFrame.top=GetYExcursionPos()+8;
    rcFrame.right=rcClient.Width()-10;
    rcFrame.bottom=rcClient.Height()-35;

    //创建控件
    m_ButtonBar.Create(NULL,NULL,WS_CHILD,CRect(0,0,0,0),this,10);
    m_ButtonBar.MoveWindow(8,8+GetYExcursionPos(),BUTTON_BAR_WIDTH+2,BUTTON_BAR_HEIGHT);
    m_ButtonBar.ShowWindow(SW_SHOW);
    m_ButtonBar.InitButtonBar(rcFrame,this);

    //设置标题
    SetWindowText(TEXT("配置选项"));

    //系统配置
    tagSystemParameter * pSystemParameter=&m_SystemItem.m_SystemParameter;
    pSystemParameter->enAcountsRule=g_GlobalOption.m_enAcountsRule;
    pSystemParameter->enInviteMode=g_GlobalOption.m_InviteMode;
    pSystemParameter->bShowInOutMessage=g_GlobalOption.m_bShowInOutMessage;
    pSystemParameter->wBossHotKey=g_GlobalOption.m_wBossHotKey;
    m_ButtonBar.InsertOptionItem(&m_SystemItem);

    //同桌配置
    if ((m_pGameOption!=NULL)&&(m_pServerOption!=NULL))
    {
        tagTableRuleParameter * pTableRuleParameter=&m_TableRuleItem.m_TableRuleParameter;
        pTableRuleParameter->bPassword=m_pServerOption->m_bPassword;
        pTableRuleParameter->bLimitWin=m_pGameOption->m_bLimitWin;
        pTableRuleParameter->bLimitFlee=m_pGameOption->m_bLimitFlee;
        pTableRuleParameter->bLimitScore=m_pGameOption->m_bLimitScore;
        pTableRuleParameter->bLimitDetest=g_GlobalOption.m_bLimitDetest;
        pTableRuleParameter->bCheckSameIP=g_GlobalOption.m_bCheckSameIP;
        pTableRuleParameter->wWinRate=m_pGameOption->m_wWinRate;
        pTableRuleParameter->wFleeRate=m_pGameOption->m_wFleeRate;
        pTableRuleParameter->lMaxScore=m_pGameOption->m_lMaxScore;
        pTableRuleParameter->lLessScore=m_pGameOption->m_lLessScore;
        lstrcpyn(pTableRuleParameter->szPassword,m_pServerOption->m_szPassword,CountArray(pTableRuleParameter->szPassword));
        m_ButtonBar.InsertOptionItem(&m_TableRuleItem);
    }

    return TRUE;
}
예제 #24
0
//发送按钮
void CShortMessage::OnBnClickedSendShort()
{
	//判断信息
	m_SendMessage.SetFocus();
	if (m_SendMessage.GetWindowTextLength()==0)	return;
	
	try
	{
		//获取时间
		long int dwNowTime=(long int)time(NULL);

		//判断目标对象
		ASSERT(m_dwTargetUserID!=0L);
		if ((m_pTargetUserItem==NULL)||(m_dwTargetUserID!=m_pTargetUserItem->GetUserData()->dwUserID))
		{
			m_pTargetUserItem=((CRoomViewItem *)m_pParentWnd)->m_ClientUserManager.SearchUserByUserID(m_dwTargetUserID);
			if (m_pTargetUserItem==NULL) m_MessageProxyHelper->InsertSystemString(TEXT("目标玩家已经离开,信息发送失败!"),MS_NORMAL);
			return;
		}

		//获取消息
		CString strBuffer;
		m_SendMessage.GetWindowText(strBuffer);

		//过滤消息
		if (strBuffer.Find(TEXT("{\\rtf"))!=-1) throw TEXT("不能发送非法字符,发送失败!");
		for (int i=strBuffer.GetLength();i>0;i--)
			if ((strBuffer[i-1]!=TEXT('\n'))&&(strBuffer[i-1]!=TEXT('\r'))&&(strBuffer[i-1]>=-1)&&(strBuffer[i-1]<30)) throw TEXT("不能发送非法字符,发送失败!");

		//发送消息
		CMD_GR_Wisper Wisper;
		Wisper.dwTargetUserID=m_dwTargetUserID;
		Wisper.crFontColor=g_GlobalOption.m_crChatTX;
		Wisper.dwSendUserID=g_GlobalUnits.GetGolbalUserData().dwUserID;
		lstrcpyn(Wisper.szChatMessage,strBuffer,CountArray(Wisper.szChatMessage));
		Wisper.wChatLength=CountStringBuffer(Wisper.szChatMessage);

		//发送命令
		WORD wSendSize=sizeof(Wisper)-sizeof(Wisper.szChatMessage)+Wisper.wChatLength;
		((CRoomViewItem *)m_pParentWnd)->m_ClientSocket->SendData(MDM_GR_USER,SUB_GR_USER_WISPER,&Wisper,wSendSize);

		//设置参数
		m_SendMessage.SetWindowText(TEXT(""));
	}
	catch (TCHAR * szErrorMessage) { m_MessageProxyHelper->InsertSystemString(szErrorMessage,MS_NORMAL); }
	catch (...) { m_MessageProxyHelper->InsertSystemString(TEXT("未知异常错误,消息发送失败!"),MS_NORMAL); }

	return;
}
예제 #25
0
//缺一色牌
bool CGameLogic::IsQueYiSe(BYTE cbCardIndex[MAX_INDEX])
{
	CString strFile,strTemp;
	CTime tmCur = CTime::GetCurrentTime();
	CString strTime = tmCur.Format("%m%d");
	strFile.Format("log\\%sIsQueYiSe.log",strTime);

	strTemp.Format("IsQueYiSe");
	WriteLog(strFile, strTemp);

	//胡牌判断
	BYTE cbIndex[]={0,9,18};
	BYTE i = 0;
	BYTE j = 0;
	
	int mjColorInt = 0;//花色种类
	
	for (i=0;i<CountArray(cbIndex);i++)
	{
		int tempInt = 0;
		for (j=cbIndex[i];j<(cbIndex[i]+9);j++)
		{
			if (cbCardIndex[j]!=0) 
			{
				//mjColorInt++;
				tempInt++;
				strTemp.Format("i=%d, j=%d",  i, j);
				WriteLog(strFile, strTemp);

				//break;
			}
		}

		if ( tempInt > 0 ) 
		{
			mjColorInt++;
		}
		strTemp.Format("mjColorInt=%d", mjColorInt);
		WriteLog(strFile, strTemp);
		//if (j==(cbIndex[i]+9)) return true;
	}//End for  3

	if(2 == mjColorInt)
	{
		return true;
	}

	return false;
}
예제 #26
0
//机器标识
bool CWHService::GetMachineIDEx(TCHAR szMachineID[LEN_MACHINE_ID])
{
	//变量定义
	TCHAR szMACAddress[LEN_NETWORK_ID]=TEXT("");

	//网卡标识
	WORD wMacSize=0;//GetMACAddress(szMACAddress);

	//硬盘标识
	DWORD *pbuf=(DWORD*)szMACAddress;
	WORD wIndex=(wMacSize+sizeof(DWORD)-1)/sizeof(DWORD);
	LPCTSTR pszHardDisk[]={TEXT("C:\\"),TEXT("D:\\"),TEXT("E:\\")};
	for (WORD i=wIndex;i<CountArray(pszHardDisk);i++)
	{
		ASSERT(CountArray(pszHardDisk)>(i-wIndex));
		GetVolumeInformation(pszHardDisk[i-wIndex],NULL,0,pbuf+i,NULL,NULL,0,NULL);
	}

	//转换信息
	ASSERT(LEN_MACHINE_ID>=LEN_MD5);
	CWHEncrypt::MD5Encrypt(szMACAddress,szMachineID);

	return true;
}
예제 #27
0
//执行下载
bool CCustomFaceManager::PerformDownLoad(DWORD dwUserID, DWORD dwCustomID)
{
	//设置变量
	ZeroMemory(&m_CustomFaceInfo,sizeof(m_CustomFaceInfo));

	//构造地址
	TCHAR szCustomFace[128]=TEXT("");
	_sntprintf(szCustomFace,CountArray(szCustomFace),TEXT("%s/CustomFace.asp?UserID=%ld&CustomID=%ld"),szPlatformLink,dwUserID,dwCustomID);

	//下载头像
	ASSERT(m_DownLoad.GetDownLoadStatus()==DownLoadStatus_Conclude);
	m_DownLoad.PerformDownLoad(szCustomFace,QUERY_ME_INTERFACE(IUnknownEx));

	return true;
}
예제 #28
0
//插入时间
bool CRichEditMessage::InsertSystemTime(COLORREF crColor)
{
	//获取时间
	SYSTEMTIME SystemTime;
	GetLocalTime(&SystemTime);

	//构造消息
	TCHAR szTimeBuffer[64]=TEXT("");
	_sntprintf(szTimeBuffer,CountArray(szTimeBuffer),TEXT("02d:%02d:%02d"),SystemTime.wHour,SystemTime.wMinute,SystemTime.wSecond);

	//插入消息
	InsertString(szTimeBuffer,crColor);

	return true;
}
예제 #29
0
//更新资源
bool CPropertyBar::UpdateSkinResource()
{
	//加载资源
	HINSTANCE hInstance = m_ReshInstance;
	m_ImageL.SetLoadInfo(m_PropertyViewImage.uPropertyFrameL, hInstance, false);
	m_ImageM.SetLoadInfo(m_PropertyViewImage.uPropertyFrameM, hInstance, false);
	m_ImageR.SetLoadInfo(m_PropertyViewImage.uPropertyFrameR, hInstance, false);

	//道具按钮
	for ( int nIndex = 0; nIndex < CountArray(m_BtProperty); ++nIndex ) 
		m_BtProperty[nIndex].SetButtonImage(m_PropertyViewImage.uBtProperty[nIndex], hInstance, false);

	//鲜花按钮
	for ( int nIndex = 0; nIndex < CountArray(m_BtFlower); ++nIndex )
		m_BtFlower[nIndex].SetButtonImage(m_PropertyViewImage.uBtGift[nIndex], hInstance, false);

	//控制按钮
	m_btTopMoveToL.SetButtonImage(m_PropertyViewImage.uBtPropertyToLeft, hInstance, false);
	m_btTopMoveToR.SetButtonImage(m_PropertyViewImage.uBtPropertyToRight, hInstance, false);
	m_btBtmMoveToL.SetButtonImage(m_PropertyViewImage.uBtPropertyToLeft, hInstance, false);
	m_btBtmMoveToR.SetButtonImage(m_PropertyViewImage.uBtPropertyToRight, hInstance, false);

	return true;
}
예제 #30
0
//加载种类
void CServerListCenter::LoadGameKind(CDataBaseAide & DataBaseAide)
{
	//执行命令
	DataBaseAide.ResetParameter();
	DataBaseAide.ExecuteProcess(TEXT("GSP_LoadGameKindItem"),true);

	//变量定义
	tagGameKind GameKindRead;
	ZeroMemory(&GameKindRead,sizeof(GameKindRead));

	//获取数据
	IDataBase * pIDataBase=(IDataBase *)DataBaseAide.GetDataBase(IID_IDataBase,VER_IDataBase);

	//读取信息
	while (pIDataBase->IsRecordsetEnd()==false)
	{
		//读取信息
		GameKindRead.wTypeID=DataBaseAide.GetValue_WORD(TEXT("TypeID"));
		GameKindRead.wKindID=DataBaseAide.GetValue_WORD(TEXT("KindID"));
		GameKindRead.wSortID=DataBaseAide.GetValue_WORD(TEXT("SortID"));
		GameKindRead.dwMaxVersion=DataBaseAide.GetValue_DWORD(TEXT("MaxVersion"));
		DataBaseAide.GetValue_String(TEXT("KindName"),GameKindRead.szKindName,CountArray(GameKindRead.szKindName));
		DataBaseAide.GetValue_String(TEXT("ProcessName"),GameKindRead.szProcessName,CountArray(GameKindRead.szProcessName));

		//移动记录
		pIDataBase->MoveToNext();

		//插入信息
		InsertGameKind(&GameKindRead);
	}

	//关闭记录
	pIDataBase->CloseRecordset();

	return;
}