liwei 5 лет назад
Родитель
Сommit
86964399f5
3232 измененных файлов: 1094642 добавлений и 0 удалений
  1. +3
    -0
      俱乐部/Bin/Debug_Unicode/Parameter.ini
  2. Двоичные данные
      俱乐部/Bin/Debug_Unicode/ServerParameter.ini
  3. Двоичные данные
      俱乐部/Bin/Release_Unicode/GameServer.pdb
  4. +6
    -0
      俱乐部/Bin/Release_Unicode/Parameter.ini
  5. Двоичные данные
      俱乐部/Bin/Release_Unicode/ServerParameter.ini
  6. +47
    -0
      俱乐部/Games/Normal/松滋晃晃血流/GameProject.sln
  7. Двоичные данные
      俱乐部/Games/Normal/松滋晃晃血流/GameProject.v12.suo
  8. +802
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidAI.cpp
  9. +123
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidAI.h
  10. +29
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.cpp
  11. +6
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.def
  12. +123
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.rc
  13. +27
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.sln
  14. Двоичные данные
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.suo
  15. +477
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.vcproj
  16. +339
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.vcproj.7.10.old
  17. +121
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.vcproj.ZGC-20110418DJO.Administrator.user
  18. +265
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.vcxproj
  19. +67
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.vcxproj.filters
  20. +339
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService03.vcproj
  21. +265
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService03.vcxproj
  22. +67
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService03.vcxproj.filters
  23. +4
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService03.vcxproj.user
  24. +477
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService05.vcproj
  25. +6
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidServiceD.def
  26. +92
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidServiceManager.cpp
  27. +46
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidServiceManager.h
  28. +1011
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidUserItemSink.cpp
  29. +140
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidUserItemSink.h
  30. +1257
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/GameLogic.cpp
  31. +276
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/GameLogic.h
  32. Двоичные данные
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/Release_Unicode/AndroidService.res
  33. +13
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/Res/AndroidService.rc2
  34. +16
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/Resource.h
  35. +7
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/Stdafx.cpp
  36. +94
    -0
      俱乐部/Games/Normal/松滋晃晃血流/机器人服务/Stdafx.h
  37. +1457
    -0
      俱乐部/Games/Normal/松滋晃晃血流/消息定义/CMD_Sparrow.h
  38. +1536
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/CardControl.cpp
  39. +447
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/CardControl.h
  40. +359
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/ControlWnd.cpp
  41. +87
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/ControlWnd.h
  42. +297
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/DirectSound.cpp
  43. +89
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/DirectSound.h
  44. +169
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/DrawSiceWnd.cpp
  45. +63
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/DrawSiceWnd.h
  46. +31
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.h
  47. +354
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.rc
  48. +1255
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.vcproj
  49. +913
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.vcproj.7.10.old
  50. +121
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.vcproj.ZGC-20110418DJO.Administrator.user
  51. +462
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.vcxproj
  52. +580
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.vcxproj.filters
  53. +4
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.vcxproj.user
  54. +913
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient03.vcproj
  55. +458
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient03.vcxproj
  56. +580
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient03.vcxproj.filters
  57. +7
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient03.vcxproj.user
  58. +1255
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient05.vcproj
  59. +132
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClientEngine.h
  60. +1091
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClientView.cpp
  61. +1253
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameLogic.cpp
  62. +268
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameLogic.h
  63. +65
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameOption.cpp
  64. +40
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameOption.h
  65. +276
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameScoreWnd.cpp
  66. +65
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameScoreWnd.h
  67. +82
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/ReadMe.txt
  68. +251
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/ScoreControl.cpp
  69. +82
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/ScoreControl.h
  70. +7
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/Stdafx.cpp
  71. +131
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/Stdafx.h
  72. +31
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/gameclient.cpp
  73. +1818
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/gameclientengine.cpp
  74. +168
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/gameclientview.h
  75. +63
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/resource.h
  76. +1586
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogic.cpp
  77. +128
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogic.h
  78. +1193
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogicCxz.cpp
  79. +128
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogicCxz.h
  80. +1463
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogicOther.cpp
  81. +128
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogicOther.h
  82. +3084
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogicZhiPai.cpp
  83. +147
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogicZhiPai.h
  84. +24
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameServer.cpp
  85. +122
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameServer.rc
  86. +390
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameServer.vcxproj
  87. +6
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameServer.vcxproj.user
  88. +210
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameServerManager.cpp
  89. +56
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameServerManager.h
  90. +122
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/LogString.cpp
  91. +10
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/LogString.h
  92. +55
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/ReadMe.txt
  93. +12
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/ReplayRecordManager.cpp
  94. +25
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/ReplayRecordManager.h
  95. +13
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/Res/GameServer.rc2
  96. +16
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/Resource.h
  97. +7
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/Stdafx.cpp
  98. +104
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/Stdafx.h
  99. +2777
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/TableFrameSink.cpp
  100. +260
    -0
      俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/TableFrameSink.h

+ 3
- 0
俱乐部/Bin/Debug_Unicode/Parameter.ini Просмотреть файл

@@ -0,0 +1,3 @@
[Server]
ServerID=6810
Level=1

Двоичные данные
俱乐部/Bin/Debug_Unicode/ServerParameter.ini Просмотреть файл


Двоичные данные
俱乐部/Bin/Release_Unicode/GameServer.pdb Просмотреть файл


+ 6
- 0
俱乐部/Bin/Release_Unicode/Parameter.ini Просмотреть файл

@@ -0,0 +1,6 @@
[Server]
Level=3
ServerID=6810
Gamelog=0
[OpenDCS]
Value=1

Двоичные данные
俱乐部/Bin/Release_Unicode/ServerParameter.ini Просмотреть файл


+ 47
- 0
俱乐部/Games/Normal/松滋晃晃血流/GameProject.sln Просмотреть файл

@@ -0,0 +1,47 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "游戏服务器", "游戏服务器\GameServer.vcxproj", "{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "机器人服务", "机器人服务\AndroidService.vcxproj", "{E50AB39C-E7B1-4310-B49D-D14C60243A5A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_Unicode|Win32 = Debug_Unicode|Win32
Debug|Win32 = Debug|Win32
DebugVD|Win32 = DebugVD|Win32
Release_Unicode|Win32 = Release_Unicode|Win32
Release|Win32 = Release|Win32
ReleaseVD|Win32 = ReleaseVD|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Debug_Unicode|Win32.ActiveCfg = Debug_Unicode|Win32
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Debug_Unicode|Win32.Build.0 = Debug_Unicode|Win32
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Debug|Win32.ActiveCfg = Debug|Win32
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Debug|Win32.Build.0 = Debug|Win32
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.DebugVD|Win32.ActiveCfg = DebugVD|Win32
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.DebugVD|Win32.Build.0 = DebugVD|Win32
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Release_Unicode|Win32.ActiveCfg = Release_Unicode|Win32
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Release_Unicode|Win32.Build.0 = Release_Unicode|Win32
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Release|Win32.ActiveCfg = Release|Win32
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Release|Win32.Build.0 = Release|Win32
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.ReleaseVD|Win32.ActiveCfg = ReleaseVD|Win32
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.ReleaseVD|Win32.Build.0 = ReleaseVD|Win32
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Debug_Unicode|Win32.ActiveCfg = Debug_Unicode|Win32
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Debug_Unicode|Win32.Build.0 = Debug_Unicode|Win32
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Debug|Win32.ActiveCfg = Debug|Win32
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Debug|Win32.Build.0 = Debug|Win32
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.DebugVD|Win32.ActiveCfg = Debug_Unicode|Win32
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.DebugVD|Win32.Build.0 = Debug_Unicode|Win32
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Release_Unicode|Win32.ActiveCfg = Release_Unicode|Win32
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Release_Unicode|Win32.Build.0 = Release_Unicode|Win32
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Release|Win32.ActiveCfg = Release|Win32
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Release|Win32.Build.0 = Release|Win32
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.ReleaseVD|Win32.ActiveCfg = Release_Unicode|Win32
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.ReleaseVD|Win32.Build.0 = Release_Unicode|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Двоичные данные
俱乐部/Games/Normal/松滋晃晃血流/GameProject.v12.suo Просмотреть файл


+ 802
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidAI.cpp Просмотреть файл

@@ -0,0 +1,802 @@
#include "StdAfx.h"
#include ".\androidai.h"
/////////////////////////////////////////////////////////////////////////////////////
//CAndroidAIBase
CAndroidAIBase::CAndroidAIBase()
{
memset(m_byCardData,0xff,sizeof(m_byCardData));
}
CAndroidAIBase::~CAndroidAIBase()
{
}
//设置牌
void CAndroidAIBase::SetCardData( const BYTE cbCardData[],BYTE byCardCount, tagWeaveItem wi[MAX_WEAVE], BYTE cbWeaveCount )
{
//复制牌
CopyMemory(m_byCardData,cbCardData,sizeof(BYTE)*byCardCount);
m_byCardCount = byCardCount;
//初始化
ZeroMemory(m_bSelect,sizeof(m_bSelect));
//
ZeroMemory(m_byThreeCard,sizeof(m_byThreeCard));
m_byThreeCount = 0;
ZeroMemory(m_byGoodThreeCard,sizeof(m_byGoodThreeCard));
m_byGoodThreeCount = 0;
//
ZeroMemory(m_byTwoCard,sizeof(m_byTwoCard));
m_byTwoCount = 0;
ZeroMemory(m_byGoodTwoCard,sizeof(m_byGoodTwoCard));
m_byGoodTwoCount = 0;
//
ZeroMemory(m_byRemainThree,sizeof(m_byRemainThree));
m_byRemainThreeCount = 0;
ZeroMemory(m_byRemainTwo,sizeof(m_byRemainTwo));
m_byRemainTwoCount = 0;
//
m_nMaxScoreThree = m_nMaxScoreTwo = 0;
m_nActionScore = 0;
m_nScoreThree = m_nScoreTwo = 0;
//
m_bHaveJiang = false;
//
m_byBadlyCard = 0xff;
//胡牌限制条件
m_cbColorCount = 0;
ZeroMemory( m_cbColor,sizeof(m_cbColor) );
m_cbMinColorCount = MAX_COUNT;
//搜索花色
for( BYTE i = 0; i < byCardCount; i++ )
{
m_cbColor[(cbCardData[i]/9)]++;
}
for( BYTE i = 0; i < cbWeaveCount; i++ )
{
m_cbColor[(wi[i].cbCenterCard&MASK_COLOR)>>4]++;
}
for( BYTE i = 0; i < 3; i++ )
{
if( m_cbColor[i] > 0 )
m_cbColorCount++;
if( m_cbColor[i] < m_cbMinColorCount )
m_cbMinColorCount = m_cbColor[i];
}
}
//获取最差牌
BYTE CAndroidAIBase::GetBadlyCard()
{
return m_byBadlyCard;
}
//获取最大分
int CAndroidAIBase::GetMaxScore()
{
return m_nActionScore+m_nMaxScoreThree+m_nMaxScoreTwo;
}
//两只牌是否是边的
bool CAndroidAIBase::IsEdge( BYTE byCard1,BYTE byCard2 )
{
if( 0 == byCard1%9 || 8 == byCard2%9 )
return true;
return false;
}
//搜索相同牌
bool CAndroidAIBase::SearchSameCard( BYTE byCardData,BYTE &byIndex1,BYTE &byIndex2 )
{
//
byIndex1 = FindIndex(byCardData);
if( byIndex1 == 0xff ) return false;
byIndex2 = FindIndex(byCardData,byIndex1+1);
if( byIndex2 == 0xff ) return false;
return true;
}
//搜索连牌
bool CAndroidAIBase::SearchLinkCard( BYTE byCardData,BYTE &byIndex1,BYTE &byIndex2 )
{
//效验
if( byCardData >= 27 ) return false;
//第二,三只
BYTE byCard1 = byCardData+1;
BYTE byCard2 = byCardData+2;
if( byCard1 >= 27 || byCard2 >= 27 || byCardData/9 != byCard1/9 || byCardData/9 != byCard2/9 )
return false;
//寻找
byIndex1 = FindIndex(byCard1);
if( byIndex1 == 0xff ) return false;
byIndex2 = FindIndex(byCard2);
if( byIndex2 == 0xff ) return false;
return true;
}
//搜索两只同牌
bool CAndroidAIBase::SearchSameCardRemain( BYTE byCardData,BYTE &byIndex,BYTE byStart )
{
byIndex = FindIndexRemain(byCardData,byStart);
return 0xff==byIndex?false:true;
}
//搜索有卡连牌
bool CAndroidAIBase::SearchLinkCardRemain( BYTE byCardData,BYTE byLinkType,BYTE &byIndex,BYTE byStart )
{
//验证
if( byCardData >= 27 ) return false;
//判断类型
BYTE byCard1 = 0xff;
if( 0 == byLinkType ) //紧连
byCard1 = byCardData+1;
else if( 1 == byLinkType ) //有卡
byCard1 = byCardData+2;
//过滤
if( byCard1 >= 27 || byCardData/9 != byCard1/9 ) return false;
byIndex = FindIndexRemain(byCard1,byStart);
return 0xff==byIndex?false:true;
}
//搜索牌
BYTE CAndroidAIBase::FindIndex( BYTE byCardData,BYTE byStart )
{
for( BYTE i = byStart; i < m_byCardCount; i++ )
{
if( byCardData == m_byCardData[i] && !m_bSelect[i] )
return i;
}
return 0xff;
}
//在移除最佳三只后搜索牌
BYTE CAndroidAIBase::FindIndexRemain( BYTE byCardData,BYTE byStart )
{
for( BYTE i = byStart; i < m_byRemainThreeCount; i++ )
{
if( byCardData == m_byRemainThree[i] && !m_bSelect[i] )
return i;
}
return 0xff;
}
//移除牌
bool CAndroidAIBase::RemoveCard( BYTE byCardIndex )
{
//效验
ASSERT( m_byCardCount > 0 );
if( m_byCardCount == 0 ) return false;
ASSERT( byCardIndex >= 0 && byCardIndex < MAX_INDEX );
if( byCardIndex < 0 || byCardIndex >= MAX_INDEX ) return false;
//删除
BYTE byCount = m_byCardCount;
m_byCardCount = 0;
bool bFound = false;
for( BYTE i = 0; i < byCount; i++ )
{
if( i == byCardIndex )
{
bFound = true;
continue;
}
m_byCardData[m_byCardCount++] = m_byCardData[i];
}
if( bFound )
m_byCardData[byCount-1] = 0xff;
return bFound;
}
//移除牌值
bool CAndroidAIBase::RemoveCardData( BYTE byCardData )
{
//效验
ASSERT( m_byCardCount > 0 );
if( m_byCardCount == 0 ) return false;
//删除
BYTE byCount = m_byCardCount;
m_byCardCount = 0;
bool bFound = false;
for( BYTE i = 0; i < byCount; i++ )
{
if( !bFound && m_byCardData[i] == byCardData )
{
bFound = true;
continue;
}
m_byCardData[m_byCardCount++] = m_byCardData[i];
}
if( bFound)
m_byCardData[byCount-1] = 0xff;
return bFound;
}
/////////////////////////////////////////////////////////////////////////////////////
//CAndroidAI
CAndroidAI::CAndroidAI(void)
{
ZeroMemory(m_byEnjoinOutCard,sizeof(m_byEnjoinOutCard));
m_byEnjoinOutCount = 0;
}
CAndroidAI::~CAndroidAI(void)
{
}
//思考
void CAndroidAI::Think()
{
//重置
m_nMaxScoreThree = 0;
m_nMaxScoreTwo = 0;
//分析三只
AnalyseThree();
//如果没三只
BYTE i;
if( m_nMaxScoreThree == 0 || m_byRemainThreeCount == 0 )
{
m_byRemainThreeCount = m_byCardCount;
for( i = 0; i < m_byRemainThreeCount; i++ )
m_byRemainThree[i] = m_byCardData[i];
}
//分析两只
AnalyseTwo();
if( m_nMaxScoreTwo == 0 )
{
m_byRemainTwoCount = m_byRemainThreeCount;
for( i = 0; i < m_byRemainTwoCount; i++ )
m_byRemainTwo[i] = m_byRemainThree[i];
}
//如果全部是两只
if( m_byRemainTwoCount == 0 )
{
SearchTwo();
return;
}
//分析一只
AnalyseOne();
}
//从最佳两只牌组合中搜索最差牌
BYTE CAndroidAI::GetBadlyIn2Card()
{
BYTE byBadly = 0xff;
int nMin = 33;
int nScore;
BYTE byCard;
for( BYTE i = 0; i < m_byGoodTwoCount*2; i++ )
{
byCard = m_byGoodTwoCard[i];
if( IsEnjoinOutCard(byCard) ) continue;
if( byCard >= 27 ) //如果是字
{
nScore = 2;
}
else if( byCard%9 == 0 || byCard%9 == 8 ) //如果是一或者九
{
nScore = 6;
}
else
{
nScore = 10;
}
nScore += AddScore(byCard);
//去除一种花色
if( m_cbColorCount == 3 && m_cbColor[(byCard/9)] == m_cbMinColorCount )
nScore -= 10;
if( nScore < nMin )
{
nMin = nScore;
byBadly = byCard;
}
}
return byBadly;
}
//从最佳三只牌组合中搜索最差牌
BYTE CAndroidAI::GetBadlyIn3Card()
{
BYTE byBadly = 0xff;
int nMin = 33;
int nScore;
BYTE byCard;
for( BYTE i = 0; i < m_byGoodThreeCount*3; i++ )
{
byCard = m_byGoodThreeCard[i];
if( IsEnjoinOutCard(byCard) ) continue;
if( byCard >= 27 ) //如果是字
{
nScore = 2;
}
else if( byCard%9 == 0 || byCard%9 == 8 ) //如果是一或者九
{
nScore = 6;
}
else
{
nScore = 10;
}
nScore += AddScore(byCard);
//去除一种花色
if( m_cbColorCount == 3 && m_cbColor[(byCard/9)] == m_cbMinColorCount )
nScore -= 10;
if( nScore < nMin )
{
nMin = nScore;
byBadly = byCard;
}
}
return byBadly;
}
//设置禁止出的牌
void CAndroidAI::SetEnjoinOutCard( const BYTE cbEnjoinOutCard[],BYTE cbEnjoinOutCount )
{
m_byEnjoinOutCount = cbEnjoinOutCount;
if( m_byEnjoinOutCount > 0 )
{
CopyMemory(m_byEnjoinOutCard,cbEnjoinOutCard,sizeof(BYTE)*cbEnjoinOutCount);
}
}
//模拟操作
void CAndroidAI::SetAction( BYTE byActionMask,BYTE byActionCard )
{
//验证
ASSERT( byActionCard >=0 && byActionCard < 34 );
if( byActionCard >= 34 ) return;
//枚举
switch( byActionMask )
{
case WIK_LEFT:
{
m_nActionScore = 300;
VERIFY( RemoveCardData(byActionCard+1) );
VERIFY( RemoveCardData(byActionCard+2) );
//禁止出的牌
m_byEnjoinOutCount = 0;
m_byEnjoinOutCard[m_byEnjoinOutCount++] = byActionCard;
if( byActionCard%9 < 7 )
m_byEnjoinOutCard[m_byEnjoinOutCount++] = byActionCard+3;
break;
}
case WIK_CENTER:
{
m_nActionScore = 300;
VERIFY( RemoveCardData(byActionCard-1) );
VERIFY( RemoveCardData(byActionCard+1) );
//禁止出的牌
m_byEnjoinOutCount = 0;
m_byEnjoinOutCard[m_byEnjoinOutCount++] = byActionCard;
break;
}
case WIK_RIGHT:
{
m_nActionScore = 300;
VERIFY( RemoveCardData(byActionCard-2) );
VERIFY( RemoveCardData(byActionCard-1) );
//禁止出的牌
m_byEnjoinOutCount = 0;
m_byEnjoinOutCard[m_byEnjoinOutCount++] = byActionCard;
if( byActionCard%9 > 3 )
m_byEnjoinOutCard[m_byEnjoinOutCount++] = byActionCard-3;
break;
}
case WIK_PENG:
{
m_nActionScore = 300;;
VERIFY( RemoveCardData(byActionCard) );
VERIFY( RemoveCardData(byActionCard) );
//禁止出的牌
m_byEnjoinOutCount = 0;
m_byEnjoinOutCard[m_byEnjoinOutCount++] = byActionCard;
break;
}
case WIK_GANG:
{
VERIFY( RemoveCardData(byActionCard) );
BYTE byIndex = FindIndex(byActionCard);
if( byIndex != 0xff )
{
m_nActionScore = 300;
VERIFY( RemoveCardData(byActionCard) );
VERIFY( RemoveCardData(byActionCard) );
byIndex = FindIndex(byActionCard);
if( byIndex != 0xff )
VERIFY( RemoveCardData(byActionCard) );
}
break;
}
default:
ASSERT( FALSE );
}
}
//重置得分
void CAndroidAI::ResetScore()
{
m_nActionScore = m_nMaxScoreThree = m_nMaxScoreTwo = 0;
}
//加权
int CAndroidAI::AddScore( BYTE byCardData )
{
int nScore = 0;
if( byCardData >= 27 )
{
return 0;
}
if( byCardData%9 != 0 && FindIndex(byCardData-1) != 0xff ) //如果剩余的牌中有比其少一的牌
{
if( byCardData%9 != 1 ) //如果当前牌不是二类即加3
{
nScore += 3;
}
else
{
nScore += 1;
}
}
if( byCardData%9 != 8 && FindIndex(byCardData+1) != 0xff ) //如果剩余的牌中有比起多一个的牌
{
if( byCardData%9 != 7 )
{
nScore += 3;
}
else
{
nScore += 1;
}
}
if( byCardData%9 > 1 && FindIndex(byCardData-2) != 0xff ) //如果剩余的牌中有比其少二的牌(如3—5,1_3等)
{
nScore += 2;
}
if( byCardData%9 < 7 && FindIndex(byCardData+2) != 0xff ) //如果剩余的牌中有比其多二的牌
{
nScore += 2;
}
return nScore;
}
//分析三只
void CAndroidAI::AnalyseThree()
{
BYTE byIndex1,byIndex2;
BYTE i = 0;
for( ; i < m_byCardCount; i++ )
{
if( !m_bSelect[i] )
{
m_bSelect[i] = true;
//搜索三只
if( SearchSameCard(m_byCardData[i],byIndex1,byIndex2) )
{
//临时记录
m_byThreeCard[m_byThreeCount*3] = m_byCardData[i];
m_byThreeCard[m_byThreeCount*3+1] = m_byCardData[i];
m_byThreeCard[m_byThreeCount*3+2] = m_byCardData[i];
//递归
m_byThreeCount++;
m_nScoreThree += 300;
m_bSelect[byIndex1] = true;
m_bSelect[byIndex2] = true;
AnalyseThree();
m_bSelect[byIndex1] = false;
m_bSelect[byIndex2] = false;
m_nScoreThree -= 300;
m_byThreeCount--;
}
//搜索连牌
if( SearchLinkCard(m_byCardData[i],byIndex1,byIndex2) )
{
//临时记录
m_byThreeCard[m_byThreeCount*3] = m_byCardData[i];
m_byThreeCard[m_byThreeCount*3+1] = m_byCardData[i]+1;
m_byThreeCard[m_byThreeCount*3+2] = m_byCardData[i]+2;
//递归
m_byThreeCount++;
m_nScoreThree += 300;
m_bSelect[byIndex1] = true;
m_bSelect[byIndex2] = true;
AnalyseThree();
m_bSelect[byIndex1] = false;
m_bSelect[byIndex2] = false;
m_nScoreThree -= 300;
m_byThreeCount--;
}
m_bSelect[i] = false;
}
}
//如果搜索到分数更高的
if( m_nScoreThree > m_nMaxScoreThree )
{
//记录剩下的
m_byRemainThreeCount = 0;
m_nMaxScoreThree = m_nScoreThree;
for( i = 0; i < m_byCardCount; i++ )
{
if( !m_bSelect[i] )
m_byRemainThree[m_byRemainThreeCount++] = m_byCardData[i];
}
//记录最佳三只组合
m_byGoodThreeCount = m_byThreeCount;
CopyMemory(m_byGoodThreeCard,m_byThreeCard,sizeof(m_byThreeCard));
}
}
//分析两只
void CAndroidAI::AnalyseTwo()
{
BYTE byIndex;
BYTE i = 0;
for(; i < m_byRemainThreeCount; i++ )
{
if( !m_bSelect[i] )
{
m_bSelect[i] = true;
//搜索两只相同
if( SearchSameCardRemain(m_byRemainThree[i],byIndex,i+1) )
{
//临时记录
m_byTwoCard[m_byTwoCount*2] = m_byRemainThree[i];
m_byTwoCard[m_byTwoCount*2+1] = m_byRemainThree[byIndex];
//判断将
m_byTwoCount++;
int nGoodSame = 90;
if( !m_bHaveJiang )
{
m_bHaveJiang = true;
nGoodSame = 120;
}
//递归
m_nScoreTwo += nGoodSame;
m_bSelect[byIndex] = true;
AnalyseTwo();
m_bSelect[byIndex] = false;
if( 120 == nGoodSame )
m_bHaveJiang = false;
m_nScoreTwo -= nGoodSame;
m_byTwoCount--;
}
//搜索紧连牌
if( SearchLinkCardRemain(m_byRemainThree[i],0,byIndex,i+1) )
{
//临时记录
m_byTwoCard[m_byTwoCount*2] = m_byRemainThree[i];
m_byTwoCard[m_byTwoCount*2+1] = m_byRemainThree[byIndex];
//判断边
m_byTwoCount++;
int nGoodLink;
if( IsEdge(m_byRemainThree[i],m_byRemainThree[byIndex]) )
nGoodLink = 80;
else nGoodLink = 100;
//递归
m_nScoreTwo += nGoodLink;
m_bSelect[byIndex] = true;
AnalyseTwo();
m_bSelect[byIndex] = false;
m_nScoreTwo -= nGoodLink;
m_byTwoCount--;
}
//搜索有卡的连牌
if( SearchLinkCardRemain(m_byRemainThree[i],1,byIndex,i+1) )
{
//临时记录
m_byTwoCard[m_byTwoCount*2] = m_byRemainThree[i];
m_byTwoCard[m_byTwoCount*2+1] = m_byRemainThree[byIndex];
//判断边
m_byTwoCount++;
int nGoodLink;
if( IsEdge(m_byRemainThree[i],m_byRemainThree[byIndex]) )
nGoodLink = 70;
else nGoodLink = 90;
//递归
m_nScoreTwo += nGoodLink;
m_bSelect[byIndex] = true;
AnalyseTwo();
m_bSelect[byIndex] = false;
m_nScoreTwo -= nGoodLink;
m_byTwoCount--;
}
m_bSelect[i] = false;
}
}
//如果有分数更高的
if( m_nScoreTwo > m_nMaxScoreTwo )
{
//记录剩下的
m_nMaxScoreTwo = m_nScoreTwo;
m_byRemainTwoCount = 0;
for( i = 0; i < m_byRemainThreeCount; i++ )
{
if( !m_bSelect[i] )
m_byRemainTwo[m_byRemainTwoCount++] = m_byRemainThree[i];
}
//记录最佳两只组合
m_byGoodTwoCount = m_byTwoCount;
CopyMemory(m_byGoodTwoCard,m_byTwoCard,sizeof(m_byTwoCard));
}
}
//分析单只
void CAndroidAI::AnalyseOne()
{
BYTE byCard;
int nScore;
int nMin = 33;
for(int i = 0;i < m_byRemainTwoCount;i++ ) //找出最差的一张牌
{
byCard = m_byRemainTwo[i];
if( IsEnjoinOutCard(byCard) ) continue;
if( byCard >= 27 ) //如果是字
{
nScore = 2;
}
else if( byCard%9 == 0 || byCard%9 == 8 ) //如果是一或者九
{
nScore = 6;
}
else
{
nScore = 10;
}
nScore += AddScore(byCard);
//去除一种花色
if( m_cbColorCount == 3 && m_cbColor[(byCard/9)] == m_cbMinColorCount )
nScore -= 10;
if( nScore < nMin )
{
nMin = nScore;
m_byBadlyCard = byCard;
}
}
}
//从两只组合中分析
void CAndroidAI::SearchTwo()
{
//定义变量
BYTE byCardTwo[MAX_COUNT];
BYTE byCardTwoCount = 0;
bool bTeamHave = false;
//设置变量
for( int i = 0;i < m_byRemainThreeCount;i++ )
byCardTwo[byCardTwoCount++] = m_byRemainThree[i];
//仅有一对
if( byCardTwoCount == 2 ) //如果只有两张牌
{
if( byCardTwo[0] == byCardTwo[1] ) //胡牌
{
if( !IsEnjoinOutCard(byCardTwo[0]) )
m_byBadlyCard = byCardTwo[0];
return;
}
m_byRemainTwoCount = 2;
m_byRemainTwo[0] = byCardTwo[0];
m_byRemainTwo[1] = byCardTwo[1];
AnalyseOne();
}
else
{
bool bSameHave = false;
int nMinScore = 33;
int nScore[8];
memset(nScore,33,sizeof(nScore));
for( BYTE j = 0;j < byCardTwoCount/2;j++ ) //循环纪录每张牌的分数
{
if( byCardTwo[j*2] == byCardTwo[j*2 + 1] ) //对子
{
if( bSameHave )
{
nScore[j] = 6;
}
else
{
nScore[j] = 8;
bSameHave = true;
}
}
else if( byCardTwo[j*2] == byCardTwo[j*2+1] - 1 ) //紧连门子
{
if( byCardTwo[j*2]%9 == 0 || byCardTwo[j*2+1]%9 == 8 )
{
nScore[j] = 4;
}
else
{
nScore[j] = 7;
}
}
else //漏一个门子
{
if( byCardTwo[j*2]%9 == 0 || byCardTwo[j*2+1]%9 == 8 )
nScore[j] = 3;
else
nScore[j] = 5;
}
}
for( BYTE k = 0;k < byCardTwoCount/2;k++) //找出分数最小的一张牌就是最差的一张
{
if( nScore[k] < nMinScore )
{
if( byCardTwo[k*2] % 9 == 0 && !IsEnjoinOutCard(byCardTwo[k*2]) )
{
m_byBadlyCard = byCardTwo[k*2];
}
else if( byCardTwo[k*2+1] % 9 == 8 && !IsEnjoinOutCard(byCardTwo[k*2+1]) )
{
m_byBadlyCard = byCardTwo[k*2+1];
}
else
{
int nIndex = rand()%2;
if( IsEnjoinOutCard(byCardTwo[k*2+nIndex]) )
{
nIndex = (nIndex+1)%2;
if( IsEnjoinOutCard(byCardTwo[k*2+nIndex]) ) continue;
else m_byBadlyCard = byCardTwo[k*2+nIndex];
}
else m_byBadlyCard = byCardTwo[k*2+nIndex];
}
nMinScore = nScore[k];
}
}
}
}
//判断牌是否禁止出
bool CAndroidAI::IsEnjoinOutCard( BYTE byCard )
{
for( BYTE i = 0; i < m_byEnjoinOutCount; i++ )
{
if( byCard == m_byEnjoinOutCard[i] )
return true;
}
return false;
}
/////////////////////////////////////////////////////////////////////////////////////

+ 123
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidAI.h Просмотреть файл

@@ -0,0 +1,123 @@
#ifndef _ANDROIDAI_H_
#define _ANDROIDAI_H_
#pragma once
#include "GameLogic.h"
class CAndroidAIBase
{
public:
CAndroidAIBase();
~CAndroidAIBase();
//设置牌
void SetCardData( const BYTE cbCardData[],BYTE byCardCount, tagWeaveItem wi[MAX_WEAVE], BYTE cbWeaveCount );
//获取最差牌
BYTE GetBadlyCard();
//获取最大分
int GetMaxScore();
//思考
virtual void Think()=NULL;
protected:
//组合是否是边
bool IsEdge( BYTE byCard1,BYTE byCard2 );
//搜索相同牌
bool SearchSameCard( BYTE byCardData,BYTE &byIndex1,BYTE &byIndex2 );
//搜索连牌
bool SearchLinkCard( BYTE byCardData,BYTE &byIndex1,BYTE &byIndex2 );
//搜索两只同牌
bool SearchSameCardRemain( BYTE byCardData,BYTE &byIndex,BYTE byStart );
//搜索有卡连牌
bool SearchLinkCardRemain( BYTE byCardData,BYTE byLinkType,BYTE &byIndex,BYTE byStart );
//搜索牌
BYTE FindIndex( BYTE byCardData,BYTE byStart = 0 );
//在移除最佳三只后搜索牌
BYTE FindIndexRemain( BYTE byCardData,BYTE byStart = 0 );
public:
//移除牌
bool RemoveCard( BYTE byCardIndex );
//移除牌值
bool RemoveCardData( BYTE byCardData );
protected:
BYTE m_byCardData[MAX_COUNT]; //原始牌
BYTE m_byCardCount; //原始牌数
bool m_bSelect[MAX_COUNT]; //牌是否被选择
BYTE m_byThreeCard[MAX_COUNT]; //三张牌组合
BYTE m_byThreeCount; //三张牌组合数
BYTE m_byGoodThreeCard[MAX_COUNT]; //最佳三张牌组合
BYTE m_byGoodThreeCount; //最佳三张牌组合数
BYTE m_byTwoCard[MAX_COUNT]; //两只牌组合
BYTE m_byTwoCount; //两只牌组合数
BYTE m_byGoodTwoCard[MAX_COUNT]; //最佳两只牌组合
BYTE m_byGoodTwoCount; //最佳两只牌组合数
BYTE m_byRemainThree[MAX_COUNT]; //移去最佳三只组合后的牌
BYTE m_byRemainThreeCount; //移去最佳三只组合后的牌数
BYTE m_byRemainTwo[MAX_COUNT]; //移去最佳三只组合及两只组合后的牌
BYTE m_byRemainTwoCount; //移去最佳三只组合及两只组合后的牌数
int m_nMaxScoreThree; //最佳三只牌组合分数
int m_nMaxScoreTwo; //最佳两只牌组合分数
int m_nActionScore; //模拟操作得分
int m_nScoreThree; //临时三只牌组合分数
int m_nScoreTwo; //临时两只牌组合分数
bool m_bHaveJiang; //是否有将
BYTE m_byBadlyCard; //最差牌
//胡牌限制条件
BYTE m_cbColorCount; //花色数目
BYTE m_cbColor[4]; //花色数目
BYTE m_cbMinColorCount; //最少花色
};
class CAndroidAI:public CAndroidAIBase
{
public:
CAndroidAI(void);
~CAndroidAI(void);
//思考
virtual void Think();
//从最佳三只牌组合中搜索最差牌
BYTE GetBadlyIn3Card();
//从最佳两只牌组合中搜索最差牌
BYTE GetBadlyIn2Card();
//设置禁止出的牌
void SetEnjoinOutCard( const BYTE cbEnjoinOutCard[],BYTE cbEnjoinOutCount );
//模拟操作
void SetAction( BYTE byActionMask,BYTE byActionCard );
//重置得分
void ResetScore();
protected:
//加权
int AddScore( BYTE byCardData );
//分析三只
void AnalyseThree();
//分析两只
void AnalyseTwo();
//分析单只
void AnalyseOne();
//从两只组合中分析
void SearchTwo();
//判断牌是否禁止出
bool IsEnjoinOutCard( BYTE byCard );
protected:
BYTE m_byEnjoinOutCard[MAX_COUNT]; //禁止出的牌
BYTE m_byEnjoinOutCount; //禁止出的牌数
};
#endif

+ 29
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.cpp Просмотреть файл

@@ -0,0 +1,29 @@
#include "Stdafx.h"
#include "AfxDLLx.h"
//////////////////////////////////////////////////////////////////////////
//¾²Ì¬±äÁ¿
static AFX_EXTENSION_MODULE AndroidServiceDLL={NULL,NULL};
//////////////////////////////////////////////////////////////////////////
//DLL Ö÷º¯Êý
extern "C" INT APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
UNREFERENCED_PARAMETER(lpReserved);
if (dwReason==DLL_PROCESS_ATTACH)
{
if (!AfxInitExtensionModule(AndroidServiceDLL, hInstance)) return 0;
new CDynLinkLibrary(AndroidServiceDLL);
}
else if (dwReason==DLL_PROCESS_DETACH)
{
AfxTermExtensionModule(AndroidServiceDLL);
}
return 1;
}
//////////////////////////////////////////////////////////////////////////

+ 6
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.def Просмотреть файл

@@ -0,0 +1,6 @@
; AndroidService.def : 声明 DLL 的模块参数。
LIBRARY "AndroidService"
EXPORTS
; 此处可以是显式导出

+ 123
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.rc Просмотреть файл

@@ -0,0 +1,123 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// 中文(中华人民共和国) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"
"LANGUAGE 4, 2\r\n"
"#pragma code_page(936)\r\n"
"#include ""res\\AndroidService.rc2"" // 不是由 Microsoft Visual C++ 编辑过的资源\r\n"
"#include ""afxres.rc"" // 标准组件\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 8,1,0,1
PRODUCTVERSION 8,1,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080403a8"
BEGIN
VALUE "Comments", "DK"
VALUE "CompanyName", "DK"
VALUE "FileDescription", "机器人服务组件"
VALUE "FileVersion", "8, 1, 0, 1"
VALUE "InternalName", "AndroidService.dll"
VALUE "LegalCopyright", "DK保留所有权利。"
VALUE "OriginalFilename", "AndroidService.dll"
VALUE "ProductName", "机器人服务组件"
VALUE "ProductVersion", "8, 1, 0, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x804, 936
END
END
#endif // 中文(中华人民共和国) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE 4, 2
#pragma code_page(936)
#include "res\AndroidService.rc2" // 不是由 Microsoft Visual C++ 编辑过的资源
#include "afxres.rc" // 标准组件
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

+ 27
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.sln Просмотреть файл

@@ -0,0 +1,27 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "»úÆ÷ÈË·þÎñ", "AndroidService.vcproj", "{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
Debug_Unicode = Debug_Unicode
Release = Release
Release_Unicode = Release_Unicode
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Debug.ActiveCfg = Debug|Win32
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Debug.Build.0 = Debug|Win32
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Debug_Unicode.ActiveCfg = Debug_Unicode|Win32
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Debug_Unicode.Build.0 = Debug_Unicode|Win32
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Release.ActiveCfg = Release|Win32
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Release.Build.0 = Release|Win32
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Release_Unicode.ActiveCfg = Release_Unicode|Win32
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Release_Unicode.Build.0 = Release_Unicode|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal

Двоичные данные
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.suo Просмотреть файл


+ 477
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.vcproj Просмотреть файл

@@ -0,0 +1,477 @@
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="机器人服务"
ProjectGUID="{E50AB39C-E7B1-4310-B49D-D14C60243A5A}"
RootNamespace="AndroidService"
Keyword="MFCDLLProj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="false"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="true"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll"
LinkIncremental="2"
ModuleDefinitionFile=".\AndroidServiceD.def"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="Debug\AndroidServiceD.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Debug&#x0D;&#x0A;copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName)&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL"
RuntimeLibrary="2"
TreatWChar_tAsBuiltInType="true"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Release/SparrowXZAndroid.dll"
LinkIncremental="1"
ModuleDefinitionFile=".\AndroidService.def"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="Release\AndroidService.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release&#x0D;&#x0A;copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Debug_Unicode|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="2"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="false"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="true"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll"
LinkIncremental="2"
ModuleDefinitionFile=".\AndroidServiceD.def"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="Debug\AndroidServiceD.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\..\发布组件\服务器组件\Debug\Unicode&#x0D;&#x0A;copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\..\发布组件\服务器组件\Debug\Unicode\$(TargetFileName)&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Release_Unicode|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="2"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL"
RuntimeLibrary="2"
TreatWChar_tAsBuiltInType="true"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Release/SparrowXZAndroid.dll"
LinkIncremental="1"
ModuleDefinitionFile=".\AndroidService.def"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="Release\AndroidService.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release&#x0D;&#x0A;copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)&#x0D;&#x0A;"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="源文件"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\AndroidAI.cpp"
>
</File>
<File
RelativePath=".\AndroidService.cpp"
>
</File>
<File
RelativePath=".\AndroidServiceManager.cpp"
>
</File>
<File
RelativePath=".\AndroidUserItemSink.cpp"
>
</File>
<File
RelativePath=".\GameLogic.cpp"
>
</File>
<File
RelativePath=".\Stdafx.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug_Unicode|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release_Unicode|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="头文件"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\AndroidAI.h"
>
</File>
<File
RelativePath=".\AndroidServiceManager.h"
>
</File>
<File
RelativePath=".\AndroidUserItemSink.h"
>
</File>
<File
RelativePath=".\GameLogic.h"
>
</File>
<File
RelativePath=".\Resource.h"
>
</File>
<File
RelativePath=".\Stdafx.h"
>
</File>
</Filter>
<Filter
Name="资源文件"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File
RelativePath=".\AndroidService.rc"
>
</File>
<File
RelativePath=".\res\AndroidService.rc2"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

+ 339
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.vcproj.7.10.old Просмотреть файл

@@ -0,0 +1,339 @@
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="机器人服务"
ProjectGUID="{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}"
SccProjectName=""
SccAuxPath=""
SccLocalPath=""
SccProvider=""
Keyword="MFCDLLProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="2"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll"
LinkIncremental="2"
ModuleDefinitionFile=".\AndroidServiceD.def"
GenerateDebugInformation="TRUE"
SubSystem="2"
ImportLibrary="Debug\AndroidServiceD.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Debug
copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName)
"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="2"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL"
RuntimeLibrary="2"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Release/SparrowXZAndroid.dll"
LinkIncremental="1"
ModuleDefinitionFile=".\AndroidService.def"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="Release\AndroidService.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)
"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Debug_Unicode|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfMFC="2"
CharacterSet="1">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll"
LinkIncremental="2"
ModuleDefinitionFile=".\AndroidServiceD.def"
GenerateDebugInformation="TRUE"
SubSystem="2"
ImportLibrary="Debug\AndroidServiceD.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Debug
copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName)
"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release_Unicode|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfMFC="2"
CharacterSet="1">
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL"
RuntimeLibrary="2"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Release/SparrowXZAndroid.dll"
LinkIncremental="1"
ModuleDefinitionFile=".\AndroidService.def"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="Release\AndroidService.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)
"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="源文件"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<File
RelativePath=".\AndroidAI.cpp">
</File>
<File
RelativePath=".\AndroidService.cpp">
</File>
<File
RelativePath=".\AndroidServiceManager.cpp">
</File>
<File
RelativePath=".\AndroidUserItemSink.cpp">
</File>
<File
RelativePath=".\GameLogic.cpp">
</File>
<File
RelativePath=".\Stdafx.cpp">
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Debug_Unicode|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release_Unicode|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="头文件"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
<File
RelativePath=".\AndroidAI.h">
</File>
<File
RelativePath=".\AndroidServiceManager.h">
</File>
<File
RelativePath=".\AndroidUserItemSink.h">
</File>
<File
RelativePath=".\GameLogic.h">
</File>
<File
RelativePath=".\Resource.h">
</File>
<File
RelativePath=".\Stdafx.h">
</File>
</Filter>
<Filter
Name="资源文件"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
<File
RelativePath=".\AndroidService.rc">
</File>
<File
RelativePath=".\res\AndroidService.rc2">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

+ 121
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.vcproj.ZGC-20110418DJO.Administrator.user Просмотреть файл

@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioUserFile
ProjectType="Visual C++"
Version="8.00"
ShowAllFiles="false"
>
<Configurations>
<Configuration
Name="Debug|Win32"
>
<DebugSettings
Command=""
WorkingDirectory=""
CommandArguments=""
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="ZGC-20110418DJO"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment=""
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
>
<DebugSettings
Command=""
WorkingDirectory=""
CommandArguments=""
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="ZGC-20110418DJO"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment=""
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
<Configuration
Name="Debug_Unicode|Win32"
>
<DebugSettings
Command=""
WorkingDirectory=""
CommandArguments=""
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="ZGC-20110418DJO"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment=""
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
<Configuration
Name="Release_Unicode|Win32"
>
<DebugSettings
Command=""
WorkingDirectory=""
CommandArguments=""
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="ZGC-20110418DJO"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment=""
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
</Configurations>
</VisualStudioUserFile>

+ 265
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.vcxproj Просмотреть файл

@@ -0,0 +1,265 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug_Unicode|Win32">
<Configuration>Debug_Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Unicode|Win32">
<Configuration>Release_Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>机器人服务</ProjectName>
<ProjectGuid>{E50AB39C-E7B1-4310-B49D-D14C60243A5A}</ProjectGuid>
<RootNamespace>AndroidService</RootNamespace>
<Keyword>MFCDLLProj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Debug\</OutDir>
<IntDir>Debug\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Release\</OutDir>
<IntDir>Release\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<TargetName>SparrowXZAndroid</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>SparrowXZAndroid</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../运行/Debug/SparrowXZAndroid.dll</OutputFile>
<ModuleDefinitionFile>.\AndroidServiceD.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<ImportLibrary>Debug\AndroidServiceD.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\服务器组件\Debug
copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../运行/Release/SparrowXZAndroid.dll</OutputFile>
<ModuleDefinitionFile>.\AndroidService.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>Release\AndroidService.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\服务器组件\Release
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../../运行/Debug/Unicode/SparrowXZAndroid.dll</OutputFile>
<ModuleDefinitionFile>.\AndroidServiceD.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<ImportLibrary>Debug\AndroidServiceD.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir ..\..\..\..\Publish\Server\Debug_Unicode\
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\..\Publish\Server\Debug_Unicode\$(TargetFileName)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../../运行/Release/unicode/SparrowXZAndroid.dll</OutputFile>
<ModuleDefinitionFile>.\AndroidService.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>Release\AndroidService.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir ..\..\..\..\Publish\Server\Release_Unicode
copy /y ..\..\..\..\运行\Release\Unicode\$(TargetFileName) ..\..\..\..\Publish\Server\Release_Unicode\$(TargetFileName)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="AndroidAI.cpp" />
<ClCompile Include="AndroidService.cpp" />
<ClCompile Include="AndroidServiceManager.cpp" />
<ClCompile Include="AndroidUserItemSink.cpp" />
<ClCompile Include="GameLogic.cpp" />
<ClCompile Include="Stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="AndroidAI.h" />
<ClInclude Include="AndroidServiceManager.h" />
<ClInclude Include="AndroidUserItemSink.h" />
<ClInclude Include="GameLogic.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="Stdafx.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="AndroidService.rc" />
</ItemGroup>
<ItemGroup>
<None Include="res\AndroidService.rc2" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

+ 67
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService.vcxproj.filters Просмотреть файл

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="资源文件">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="AndroidAI.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="AndroidService.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="AndroidServiceManager.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="AndroidUserItemSink.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="GameLogic.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Stdafx.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="AndroidAI.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="AndroidServiceManager.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="AndroidUserItemSink.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="GameLogic.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="Resource.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="Stdafx.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="AndroidService.rc">
<Filter>资源文件</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<None Include="res\AndroidService.rc2">
<Filter>资源文件</Filter>
</None>
</ItemGroup>
</Project>

+ 339
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService03.vcproj Просмотреть файл

@@ -0,0 +1,339 @@
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="机器人服务"
ProjectGUID="{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}"
SccProjectName=""
SccAuxPath=""
SccLocalPath=""
SccProvider=""
Keyword="MFCDLLProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="2"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll"
LinkIncremental="2"
ModuleDefinitionFile=".\AndroidServiceD.def"
GenerateDebugInformation="TRUE"
SubSystem="2"
ImportLibrary="Debug\AndroidServiceD.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Debug
copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName)
"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="2"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL"
RuntimeLibrary="2"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Release/SparrowXZAndroid.dll"
LinkIncremental="1"
ModuleDefinitionFile=".\AndroidService.def"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="Release\AndroidService.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)
"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Debug_Unicode|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfMFC="2"
CharacterSet="1">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT;_UNICODE"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../../运行/Debug/Unicode/SparrowXZAndroid.dll"
LinkIncremental="2"
ModuleDefinitionFile=".\AndroidServiceD.def"
GenerateDebugInformation="TRUE"
SubSystem="2"
ImportLibrary="$(OutDir)\AndroidServiceD.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\..\发布组件\服务器组件\Debug\Unicode
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\..\发布组件\服务器组件\Debug\Unicode\$(TargetFileName)
"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release_Unicode|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfMFC="2"
CharacterSet="1">
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL"
RuntimeLibrary="2"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Release/SparrowXZAndroid.dll"
LinkIncremental="1"
ModuleDefinitionFile=".\AndroidService.def"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="Release\AndroidService.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)
"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="源文件"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<File
RelativePath=".\AndroidAI.cpp">
</File>
<File
RelativePath=".\AndroidService.cpp">
</File>
<File
RelativePath=".\AndroidServiceManager.cpp">
</File>
<File
RelativePath=".\AndroidUserItemSink.cpp">
</File>
<File
RelativePath=".\GameLogic.cpp">
</File>
<File
RelativePath=".\Stdafx.cpp">
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Debug_Unicode|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release_Unicode|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="头文件"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
<File
RelativePath=".\AndroidAI.h">
</File>
<File
RelativePath=".\AndroidServiceManager.h">
</File>
<File
RelativePath=".\AndroidUserItemSink.h">
</File>
<File
RelativePath=".\GameLogic.h">
</File>
<File
RelativePath=".\Resource.h">
</File>
<File
RelativePath=".\Stdafx.h">
</File>
</Filter>
<Filter
Name="资源文件"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
<File
RelativePath=".\AndroidService.rc">
</File>
<File
RelativePath=".\res\AndroidService.rc2">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

+ 265
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService03.vcxproj Просмотреть файл

@@ -0,0 +1,265 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug_Unicode|Win32">
<Configuration>Debug_Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Unicode|Win32">
<Configuration>Release_Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>机器人服务</ProjectName>
<ProjectGuid>{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}</ProjectGuid>
<SccProjectName />
<SccAuxPath />
<SccLocalPath />
<SccProvider />
<Keyword>MFCDLLProj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>14.0.25123.0</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Debug\</OutDir>
<IntDir>Debug\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Release\</OutDir>
<IntDir>Release\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<TargetName>SparrowXZAndroid</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>SparrowXZAndroid</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>../../../运行/Debug/SparrowXZAndroid.dll</OutputFile>
<ModuleDefinitionFile>.\AndroidServiceD.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<ImportLibrary>Debug\AndroidServiceD.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\服务器组件\Debug
copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName)
</Command>
</PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>../../../运行/Release/SparrowXZAndroid.dll</OutputFile>
<ModuleDefinitionFile>.\AndroidService.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>Release\AndroidService.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\服务器组件\Release
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)
</Command>
</PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>../../../../运行/Debug/Unicode/SparrowXZAndroid.dll</OutputFile>
<ModuleDefinitionFile>.\AndroidServiceD.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<ImportLibrary>$(OutDir)AndroidServiceD.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<PostBuildEvent>
<Command>mkdir ..\..\..\..\Publish\Server\Debug_Unicode\
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\..\Publish\Server\Debug_Unicode\$(TargetFileName)
</Command>
</PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>../../../运行/Release/SparrowXZAndroid.dll</OutputFile>
<ModuleDefinitionFile>.\AndroidService.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>Release\AndroidService.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\服务器组件\Release
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)
</Command>
</PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="AndroidAI.cpp" />
<ClCompile Include="AndroidService.cpp" />
<ClCompile Include="AndroidServiceManager.cpp" />
<ClCompile Include="AndroidUserItemSink.cpp" />
<ClCompile Include="GameLogic.cpp" />
<ClCompile Include="Stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="AndroidAI.h" />
<ClInclude Include="AndroidServiceManager.h" />
<ClInclude Include="AndroidUserItemSink.h" />
<ClInclude Include="GameLogic.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="Stdafx.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="AndroidService.rc" />
</ItemGroup>
<ItemGroup>
<None Include="res\AndroidService.rc2" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

+ 67
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService03.vcxproj.filters Просмотреть файл

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="资源文件">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="AndroidAI.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="AndroidService.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="AndroidServiceManager.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="AndroidUserItemSink.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="GameLogic.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Stdafx.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="AndroidAI.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="AndroidServiceManager.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="AndroidUserItemSink.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="GameLogic.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="Resource.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="Stdafx.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="AndroidService.rc">
<Filter>资源文件</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<None Include="res\AndroidService.rc2">
<Filter>资源文件</Filter>
</None>
</ItemGroup>
</Project>

+ 4
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService03.vcxproj.user Просмотреть файл

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

+ 477
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidService05.vcproj Просмотреть файл

@@ -0,0 +1,477 @@
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="机器人服务"
ProjectGUID="{E50AB39C-E7B1-4310-B49D-D14C60243A5A}"
RootNamespace="AndroidService"
Keyword="MFCDLLProj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="false"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="true"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll"
LinkIncremental="2"
ModuleDefinitionFile=".\AndroidServiceD.def"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="Debug\AndroidServiceD.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Debug&#x0D;&#x0A;copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName)&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL"
RuntimeLibrary="2"
TreatWChar_tAsBuiltInType="true"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Release/SparrowXZAndroid.dll"
LinkIncremental="1"
ModuleDefinitionFile=".\AndroidService.def"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="Release\AndroidService.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release&#x0D;&#x0A;copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Debug_Unicode|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="2"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="false"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="true"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll"
LinkIncremental="2"
ModuleDefinitionFile=".\AndroidServiceD.def"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="Debug\AndroidServiceD.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\..\发布组件\服务器组件\Debug\Unicode&#x0D;&#x0A;copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\..\发布组件\服务器组件\Debug\Unicode\$(TargetFileName)&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Release_Unicode|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="2"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL"
RuntimeLibrary="2"
TreatWChar_tAsBuiltInType="true"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../运行/Release/SparrowXZAndroid.dll"
LinkIncremental="1"
ModuleDefinitionFile=".\AndroidService.def"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="Release\AndroidService.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release&#x0D;&#x0A;copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)&#x0D;&#x0A;"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="源文件"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\AndroidAI.cpp"
>
</File>
<File
RelativePath=".\AndroidService.cpp"
>
</File>
<File
RelativePath=".\AndroidServiceManager.cpp"
>
</File>
<File
RelativePath=".\AndroidUserItemSink.cpp"
>
</File>
<File
RelativePath=".\GameLogic.cpp"
>
</File>
<File
RelativePath=".\Stdafx.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug_Unicode|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release_Unicode|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="头文件"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\AndroidAI.h"
>
</File>
<File
RelativePath=".\AndroidServiceManager.h"
>
</File>
<File
RelativePath=".\AndroidUserItemSink.h"
>
</File>
<File
RelativePath=".\GameLogic.h"
>
</File>
<File
RelativePath=".\Resource.h"
>
</File>
<File
RelativePath=".\Stdafx.h"
>
</File>
</Filter>
<Filter
Name="资源文件"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File
RelativePath=".\AndroidService.rc"
>
</File>
<File
RelativePath=".\res\AndroidService.rc2"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

+ 6
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidServiceD.def Просмотреть файл

@@ -0,0 +1,6 @@
; AndroidServiceD.def : 声明 DLL 的模块参数。
LIBRARY "AndroidServiceD"
EXPORTS
; 此处可以是显式导出

+ 92
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidServiceManager.cpp Просмотреть файл

@@ -0,0 +1,92 @@
#include "StdAfx.h"
#include "AndroidServiceManager.h"
#include "AndroidUserItemSink.h"
//////////////////////////////////////////////////////////////////////////
//构造函数
CAndroidService::CAndroidService()
{
}
//析构函数
CAndroidService::~CAndroidService()
{
}
//接口查询
void * CAndroidService::QueryInterface(const IID & Guid, DWORD dwQueryVer)
{
QUERYINTERFACE(IGameServiceManager,Guid,dwQueryVer);
QUERYINTERFACE_IUNKNOWNEX(IGameServiceManager,Guid,dwQueryVer);
return NULL;
}
//创建机器
VOID * CAndroidService::CreateAndroidUserItemSink(REFGUID Guid, DWORD dwQueryVer)
{
//变量定义
CAndroidUserItemSink * pAndroidUserItemSink=NULL;
try
{
//建立对象
pAndroidUserItemSink=new CAndroidUserItemSink();
if (pAndroidUserItemSink==NULL) throw TEXT("创建失败");
//查询接口
VOID * pObject=pAndroidUserItemSink->QueryInterface(Guid,dwQueryVer);
if (pObject==NULL) throw TEXT("接口查询失败");
return pObject;
}
catch (...) {}
//删除对象
SafeDelete(pAndroidUserItemSink);
return NULL;
}
//创建游戏桌
VOID * CAndroidService::CreateTableFrameSink(REFGUID Guid, DWORD dwQueryVer)
{
return NULL;
}
//创建数据
VOID * CAndroidService::CreateGameDataBaseEngineSink(REFGUID Guid, DWORD dwQueryVer)
{
return NULL;
}
//获取属性
bool CAndroidService::GetServiceAttrib(tagGameServiceAttrib & GameServiceAttrib)
{
return true;
}
//参数修改
bool CAndroidService::RectifyParameter(tagGameServiceOption & GameServiceOption)
{
//效验参数
ASSERT(&GameServiceOption!=NULL);
if (&GameServiceOption==NULL) return false;
//单元积分
GameServiceOption.lCellScore -=__max(1L,GameServiceOption.lCellScore);
//积分下限
GameServiceOption.lMinTableScore=__max(0L,GameServiceOption.lMinTableScore);
//积分上限
if (GameServiceOption.lRestrictScore!=0L)
{
GameServiceOption.lRestrictScore=__max(GameServiceOption.lRestrictScore,GameServiceOption.lMinTableScore);
}
return true;
}
//建立对象
DECLARE_CREATE_MODULE(AndroidService)
//////////////////////////////////////////////////////////////////////////

+ 46
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidServiceManager.h Просмотреть файл

@@ -0,0 +1,46 @@
#ifndef ANDROID_SERVICE_HEAD_FILE
#define ANDROID_SERVICE_HEAD_FILE
#pragma once
#include "Stdafx.h"
//////////////////////////////////////////////////////////////////////////
//游戏服务器管理类
class CAndroidService : public IGameServiceManager
{
//函数定义
public:
//构造函数
CAndroidService(void);
//析构函数
virtual ~CAndroidService(void);
//基础接口
public:
//释放对象
virtual VOID Release() { return; }
//接口查询
virtual VOID * QueryInterface(const IID & Guid, DWORD dwQueryVer);
//创建接口
public:
//创建桌子
virtual VOID * CreateTableFrameSink(REFGUID Guid, DWORD dwQueryVer);
//创建机器
virtual VOID * CreateAndroidUserItemSink(REFGUID Guid, DWORD dwQueryVer);
//创建数据
virtual VOID * CreateGameDataBaseEngineSink(REFGUID Guid, DWORD dwQueryVer);
//参数接口
public:
//组件属性
virtual bool GetServiceAttrib(tagGameServiceAttrib & GameServiceAttrib);
//调整参数
virtual bool RectifyParameter(tagGameServiceOption & GameServiceOption);
};
//////////////////////////////////////////////////////////////////////////
#endif

+ 1011
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidUserItemSink.cpp
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 140
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/AndroidUserItemSink.h Просмотреть файл

@@ -0,0 +1,140 @@
#ifndef ANDROID_USER_ITEM_SINK_HEAD_FILE
#define ANDROID_USER_ITEM_SINK_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "GameLogic.h"
//////////////////////////////////////////////////////////////////////////
//出牌结果
struct tagOutCardResult
{
BYTE cbOperateCode; //出牌代码
BYTE cbOperateCard; //出牌值
};
//听牌分析结果
struct tagTingCardResult
{
BYTE bAbandonCount; //可丢弃牌数
BYTE bAbandonCard[MAX_COUNT]; //可丢弃牌
BYTE bTingCardCount[MAX_COUNT]; //听牌数目
BYTE bTingCard[MAX_COUNT][MAX_COUNT-1]; //听牌
BYTE bRemainCount[MAX_COUNT]; //听的牌的剩余数
};
//////////////////////////////////////////////////////////////////////////
//机器人类
class CAndroidUserItemSink : public IAndroidUserItemSink
{
//用户变量
protected:
WORD m_wBankerUser; //庄家用户
WORD m_wCurrentUser; //当前用户
BYTE m_cbActionMask; //动作标识
BYTE m_cbActionCard; //操作牌
//扑克变量
protected:
BYTE m_cbLeftCardCount; //剩余数目
BYTE m_cbCardIndex[GAME_PLAYER][MAX_INDEX]; //手中扑克
BYTE m_cbRepertoryCard[MAX_REPERTORY]; //库存扑克
//组合扑克
protected:
BYTE m_cbWeaveCount[GAME_PLAYER]; //组合数目
tagWeaveItem m_WeaveItemArray[GAME_PLAYER][MAX_WEAVE]; //组合扑克
//出牌信息
protected:
WORD m_wOutCardUser; //出牌用户
BYTE m_cbOutCardData; //出牌扑克
BYTE m_cbDiscardCount[GAME_PLAYER]; //丢弃数目
BYTE m_cbDiscardCard[GAME_PLAYER][55]; //丢弃记录
//控件变量
protected:
CGameLogic m_GameLogic; //游戏逻辑
IAndroidUserItem * m_pIAndroidUserItem; //用户接口
//函数定义
public:
//构造函数
CAndroidUserItemSink();
//析构函数
virtual ~CAndroidUserItemSink();
//基础接口
public:
//释放对象
virtual VOID Release() { delete this; }
//接口查询
virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
//控制接口
public:
//初始接口
virtual bool Initialization(IUnknownEx * pIUnknownEx);
//重置接口
virtual bool RepositionSink();
//游戏事件
public:
//时间消息
virtual bool OnEventTimer(UINT nTimerID);
//游戏消息
virtual bool OnEventGameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize);
//游戏消息
virtual bool OnEventFrameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize);
//场景消息
virtual bool OnEventSceneMessage(BYTE cbGameStatus, bool bLookonOther, VOID * pData, WORD wDataSize);
//用户事件
public:
//用户进入
virtual VOID OnEventUserEnter(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
//用户离开
virtual VOID OnEventUserLeave(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
//用户积分
virtual VOID OnEventUserScore(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
//用户状态
virtual VOID OnEventUserStatus(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
//用户段位
virtual VOID OnEventUserSegment(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
//消息处理
protected:
//游戏开始
bool OnSubGameStart(const void * pBuffer, WORD wDataSize);
//用户出牌
bool OnSubOutCard(const void * pBuffer, WORD wDataSize);
//发牌消息
bool OnSubSendCard(const void * pBuffer, WORD wDataSize);
//操作提示
bool OnSubOperateNotify(const void * pBuffer, WORD wDataSize);
//操作结果
bool OnSubOperateResult(const void * pBuffer, WORD wDataSize);
//游戏结束
bool OnSubGameEnd(const void * pBuffer, WORD wDataSize);
//处理函数
protected:
//出牌
void OnOutCard( BYTE cbOutCard );
//操作牌
void OnOperateCard( BYTE cbOperateCode,BYTE cbOperateCard );
//辅助函数
protected:
//返回废弃的牌
bool SearchTingCard( tagTingCardResult &TingCardResult );
//搜索出牌
bool SearchOutCard( tagOutCardResult &OutCardResult );
};
//////////////////////////////////////////////////////////////////////////
#endif

+ 1257
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/GameLogic.cpp
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 276
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/GameLogic.h Просмотреть файл

@@ -0,0 +1,276 @@
#ifndef GAME_LOGIC_HEAD_FILE
#define GAME_LOGIC_HEAD_FILE
#pragma once
#include "Stdafx.h"
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//逻辑掩码
#define MASK_COLOR 0xF0 //花色掩码
#define MASK_VALUE 0x0F //数值掩码
//////////////////////////////////////////////////////////////////////////
//动作定义
//动作标志
#define WIK_NULL 0x00 //没有类型
#define WIK_LEFT 0x01 //左吃类型
#define WIK_CENTER 0x02 //中吃类型
#define WIK_RIGHT 0x04 //右吃类型
#define WIK_PENG 0x08 //碰牌类型
#define WIK_GANG 0x10 //杠牌类型
#define WIK_LISTEN 0x20 //吃牌类型
#define WIK_CHI_HU 0x40 //吃胡类型
#define WIK_ZI_MO 0x80 //自摸
//////////////////////////////////////////////////////////////////////////
//胡牌定义
//胡牌
#define CHK_NULL 0x00 //非胡类型
#define CHK_CHI_HU 0x01 //胡类型
#define CHR_QIANG_GANG 0x00000001 //抢杠
#define CHR_GANG_SHANG_PAO 0x00000002 //杠上炮
#define CHR_GANG_KAI 0x00000004 //杠上花
#define CHR_TIAN_HU 0x00000008 //天胡
#define CHR_DI_HU 0x00000010 //地胡
#define CHR_DA_DUI_ZI 0x00000020 //大对子
#define CHR_QING_YI_SE 0x00000040 //清一色
#define CHR_QI_XIAO_DUI 0x00000080 //暗七对
#define CHR_DAI_YAO 0x00000100 //带幺
#define CHR_JIANG_DUI 0x00000200 //将对
#define CHR_SHU_FAN 0x00000400 //素番
#define CHR_QING_DUI 0x00000800 //清对
#define CHR_LONG_QI_DUI 0x00001000 //龙七对
#define CHR_QING_QI_DUI 0x00002000 //清七对
#define CHR_QING_YAO_JIU 0x00004000 //清幺九
#define CHR_QING_LONG_QI_DUI 0x00008000 //清龙七对
#define CHR_MEN_QING_ZHONG_ZHANG 0x00010000 //门清中张(不吃不杠不碰)
#define GAMETYPE_XZDD 1 //血战到底
#define GAMETYPE_XLCH 2 //血流成河
#define GAMETYPE_LFSZ 3 //两房三张
#define GAMETYPE_DDH 4 //倒到胡
//////////////////////////////////////////////////////////////////////////
#define ZI_PAI_COUNT 7
#pragma pack(1)
//类型子项
struct tagKindItem
{
BYTE cbWeaveKind; //组合类型
BYTE cbCenterCard; //中心扑克
BYTE cbCardIndex[3]; //扑克索引
BYTE cbValidIndex[3]; //实际扑克索引
};
//组合子项
struct tagWeaveItem
{
BYTE cbWeaveKind; //组合类型
BYTE cbCenterCard; //中心扑克
BYTE cbPublicCard; //公开标志
WORD wProvideUser; //供应用户
};
//杠牌结果
struct tagGangCardResult
{
BYTE cbCardCount; //扑克数目
BYTE cbCardData[4]; //扑克数据
};
//分析子项
struct tagAnalyseItem
{
BYTE cbCardEye; //牌眼扑克
bool bMagicEye; //牌眼是否是王霸
BYTE cbWeaveKind[4]; //组合类型
BYTE cbCenterCard[4]; //中心扑克
BYTE cbCardData[4][4]; //实际扑克
};
#pragma pack()
//////////////////////////////////////////////////////////////////////////
#define MASK_CHI_HU_RIGHT 0x0fffffff
/*
// 权位类。
// 注意,在操作仅位时最好只操作单个权位.例如
// CChiHuRight chr;
// chr |= (chr_zi_mo|chr_peng_peng),这样结果是无定义的。
// 只能单个操作:
// chr |= chr_zi_mo;
// chr |= chr_peng_peng;
*/
class CChiHuRight
{
//静态变量
private:
static bool m_bInit;
static DWORD m_dwRightMask[MAX_RIGHT_COUNT];
//权位变量
private:
DWORD m_dwRight[MAX_RIGHT_COUNT];
public:
//构造函数
CChiHuRight();
//运算符重载
public:
//赋值符
CChiHuRight & operator = ( DWORD dwRight );
//与等于
CChiHuRight & operator &= ( DWORD dwRight );
//或等于
CChiHuRight & operator |= ( DWORD dwRight );
//与
CChiHuRight operator & ( DWORD dwRight );
CChiHuRight operator & ( DWORD dwRight ) const;
//或
CChiHuRight operator | ( DWORD dwRight );
CChiHuRight operator | ( DWORD dwRight ) const;
//功能函数
public:
//是否权位为空
bool IsEmpty();
//设置权位为空
void SetEmpty();
//获取权位数值
BYTE GetRightData( DWORD dwRight[], BYTE cbMaxCount );
//设置权位数值
bool SetRightData( const DWORD dwRight[], BYTE cbRightCount );
private:
//检查权位是否正确
bool IsValidRight( DWORD dwRight );
};
//////////////////////////////////////////////////////////////////////////
//数组说明
typedef CWHArray<tagAnalyseItem,tagAnalyseItem &> CAnalyseItemArray;
//游戏逻辑类
class CGameLogic
{
//变量定义
protected:
static const BYTE m_cbCardDataArray[MAX_REPERTORY]; //扑克数据
BYTE m_cbMagicIndex; //钻牌索引
//函数定义
public:
//构造函数
CGameLogic();
//析构函数
virtual ~CGameLogic();
//控制函数
public:
//混乱扑克
void RandCardData(BYTE cbCardData[], BYTE cbMaxCount);
//删除扑克
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbRemoveCard);
//删除扑克
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], const BYTE cbRemoveCard[], BYTE cbRemoveCount);
//删除扑克
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, const BYTE cbRemoveCard[], BYTE cbRemoveCount);
//设置钻牌
void SetMagicIndex( BYTE cbMagicIndex ) { m_cbMagicIndex = cbMagicIndex; }
//钻牌
bool IsMagicCard( BYTE cbCardData );
//辅助函数
public:
//有效判断
bool IsValidCard(BYTE cbCardData);
//扑克数目
BYTE GetCardCount(const BYTE cbCardIndex[MAX_INDEX]);
//组合扑克
BYTE GetWeaveCard(BYTE cbWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]);
//等级函数
public:
//动作等级
BYTE GetUserActionRank(BYTE cbUserAction);
//胡牌等级
WORD GetChiHuActionRank(const CChiHuRight & ChiHuRight);
//动作判断
public:
//吃牌判断 一脚耐油不需要吃牌判断
//BYTE EstimateEatCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//碰牌判断
BYTE EstimatePengCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//杠牌判断
BYTE EstimateGangCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//动作判断
public:
//杠牌分析
BYTE AnalyseGangCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, tagGangCardResult & GangCardResult);
//吃胡分析
BYTE AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, CChiHuRight &ChiHuRight);
//听牌分析
BYTE AnalyseTingCard( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount );
//是否听牌
bool IsTingCard( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount );
//是否花猪
bool IsHuaZhu( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE bDingQueHuase=INVALID_BYTE);
//是否缺指定一个花色
bool IsQueyimen(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount);
//转换函数
public:
//扑克转换
BYTE SwitchToCardData(BYTE cbCardIndex);
//扑克转换
BYTE SwitchToCardIndex(BYTE cbCardData);
//扑克转换
BYTE SwitchToCardData(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[MAX_COUNT]);
//扑克转换
BYTE SwitchToCardIndex(const BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX]);
//胡法分析
protected:
//大对子
bool IsPengPeng( const tagAnalyseItem *pAnalyseItem );
//清一色牌
bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount,const BYTE cbCurrentCard);
//七小对牌
bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[],const BYTE cbWeaveCount,const BYTE cbCurrentCard);
//带幺
bool IsDaiYao( const tagAnalyseItem *pAnalyseItem );
//将对
bool IsJiangDui( const tagAnalyseItem *pAnalyseItem );
//内部函数
private:
//分析扑克
bool AnalyseCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbItemCount, CAnalyseItemArray & AnalyseItemArray);
//排序,根据牌值排序
bool SortCardList( BYTE cbCardData[MAX_COUNT], BYTE cbCardCount );
};
//////////////////////////////////////////////////////////////////////////
#endif

Двоичные данные
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/Release_Unicode/AndroidService.res Просмотреть файл


+ 13
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/Res/AndroidService.rc2 Просмотреть файл

@@ -0,0 +1,13 @@
//
// AndroidService.RC2 - Microsoft Visual C++ 不会直接编辑的资源
//
#ifdef APSTUDIO_INVOKED
#error this file is not editable by Microsoft Visual C++
#endif //APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// 在此处添加手动编辑的资源...
/////////////////////////////////////////////////////////////////////////////

+ 16
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/Resource.h Просмотреть файл

@@ -0,0 +1,16 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by AndroidService.RC
//
// 新对象的下一些默认值
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 6000
#define _APS_NEXT_CONTROL_VALUE 6000
#define _APS_NEXT_SYMED_VALUE 6000
#define _APS_NEXT_COMMAND_VALUE 32771
#endif
#endif

+ 7
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/Stdafx.cpp Просмотреть файл

@@ -0,0 +1,7 @@
// stdafx.cpp : 只包括标准包含文件的源文件
// AndroidService.pch 将成为预编译头
// stdafx.obj 将包含预编译类型信息
#include "stdafx.h"

+ 94
- 0
俱乐部/Games/Normal/松滋晃晃血流/机器人服务/Stdafx.h Просмотреть файл

@@ -0,0 +1,94 @@
#pragma once
//////////////////////////////////////////////////////////////////////////////////
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN
#endif
#ifndef WINVER
#define WINVER 0x0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif
#ifndef _WIN32_WINDOWS
#define _WIN32_WINDOWS 0x0410
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0400
#endif
#define _ATL_ATTRIBUTES
#define _AFX_ALL_WARNINGS
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS
//////////////////////////////////////////////////////////////////////////////////
//MFC 文件
#include <AfxWin.h>
#include <AfxExt.h>
#include <AfxCmn.h>
#include <AfxDisp.h>
//编译环境
//#include "..\..\..\SDKCondition.h"
//////////////////////////////////////////////////////////////////////////////////
#ifdef SDK_CONDITION
//////////////////////////////////////////////////////////////////////////////////
//开发环境
//平台环境
#include "..\..\..\开发库\Include\GameServiceHead.h"
#ifndef _DEBUG
#ifndef _UNICODE
#pragma comment (lib,"../../../开发库/Lib/Ansi/KernelEngine.lib")
#else
#pragma comment (lib,"../../../开发库/Lib/Unicode/KernelEngine.lib")
#endif
#else
#ifndef _UNICODE
#pragma comment (lib,"../../../开发库/Lib/Ansi/KernelEngineD.lib")
#else
#pragma comment (lib,"../../../开发库/Lib/Unicode/KernelEngineD.lib")
#endif
#endif
//////////////////////////////////////////////////////////////////////////////////
#else
//////////////////////////////////////////////////////////////////////////////////
//系统环境
//平台环境
#include "..\..\..\..\Source\ServerControl\GameService\GameServiceHead.h"
#ifndef _DEBUG
#ifndef _UNICODE
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/KernelEngine.lib")
#else
#pragma comment (lib,"../../../../Source/Libs/Release_Unicode/KernelEngine.lib")
#endif
#else
#ifndef _UNICODE
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/KernelEngineD.lib")
#else
#pragma comment (lib,"../../../../Source/Libs/Debug_Unicode/KernelEngineD.lib")
#endif
#endif
//////////////////////////////////////////////////////////////////////////////////
#endif // SDK_CONDITION
//////////////////////////////////////////////////////////////////////////
//组件头文件
#include "..\消息定义\CMD_Sparrow.h"
//////////////////////////////////////////////////////////////////////////

+ 1457
- 0
俱乐部/Games/Normal/松滋晃晃血流/消息定义/CMD_Sparrow.h
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 1536
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/CardControl.cpp
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 447
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/CardControl.h Просмотреть файл

@@ -0,0 +1,447 @@
#ifndef CARD_CONTROL_HEAD_FILE
#define CARD_CONTROL_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "Resource.h"
#include "GameLogic.h"
#include "cassert"
//////////////////////////////////////////////////////////////////////////
// 扑克定义
// 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, //万子
// 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19, //索子
// 0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29, //同子
// 0x31,0x32,0x33,0x34,0x35,0x36,0x37, //番子
// 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, //花子
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//X 排列方式
enum enXCollocateMode
{
enXLeft, //左对齐
enXCenter, //中对齐
enXRight, //右对齐
};
//Y 排列方式
enum enYCollocateMode
{
enYTop, //上对齐
enYCenter, //中对齐
enYBottom, //下对齐
};
//方向枚举
enum enDirection
{
Direction_East, //东向 右
Direction_South, //南向
Direction_West, //西向
Direction_North, //北向
};
//////////////////////////////////////////////////////////////////////////
//扑克图片
class CCardListImage
{
//位置变量
protected:
int m_nItemWidth; //子项高度
int m_nItemHeight; //子项宽度
int m_nViewWidth; //子项高度
int m_nViewHeight; //子项宽度
//资源变量
protected:
CPngImage m_CardListImage; //图片资源
//函数定义
public:
//构造函数
CCardListImage();
//析构函数
virtual ~CCardListImage();
//信息函数
public:
//获取宽度
int GetViewWidth() { return m_nViewWidth; }
//获取高度
int GetViewHeight() { return m_nViewHeight; }
//资源管理
public:
//加载资源
bool LoadResource(LPCTSTR uResourceID, int nViewWidth, int nViewHeight);
//释放资源
bool DestroyResource();
//功能函数
public:
//获取位置
inline int GetImageIndex(BYTE cbCardData);
//绘画扑克
inline bool DrawCardItem(CDC * pDestDC, BYTE cbCardData, int xDest, int yDest);
};
//////////////////////////////////////////////////////////////////////////
//扑克资源
class CCardResource
{
//用户扑克
public:
CPngImage m_ImageUserTop; //图片资源
CCardListImage m_ImageUserBottom; //图片资源
CPngImage m_ImageUserLeft; //图片资源
CPngImage m_ImageUserRight; //图片资源
//桌子扑克
public:
CCardListImage m_ImageTableTop; //图片资源
CCardListImage m_ImageTableLeft; //图片资源
CCardListImage m_ImageTableRight; //图片资源
CCardListImage m_ImageTableBottom; //图片资源
//牌堆扑克
public:
CPngImage m_ImageHeapDoubleLV; //左边的堆牌
CPngImage m_ImageHeapSingleLV; //左边的堆牌
CPngImage m_ImageHeapDoubleRV; //右边的堆牌
CPngImage m_ImageHeapSingleRV; //右边的堆牌
CPngImage m_ImageHeapDoubleTV; //上边的堆牌
CPngImage m_ImageHeapSingleTV; //上边的堆牌
CPngImage m_ImageHeapDoubleBV; //下边的堆牌
CPngImage m_ImageHeapSingleBV; //下边的堆牌
//函数定义
public:
//构造函数
CCardResource();
//析构函数
virtual ~CCardResource();
//功能函数
public:
//加载资源
bool LoadResource();
//消耗资源
bool DestroyResource();
};
//////////////////////////////////////////////////////////////////////////
//堆立扑克
class CHeapCard
{
//控制变量
protected:
CPoint m_ControlPoint; //基准位置
enDirection m_CardDirection; //扑克方向
//扑克变量
protected:
WORD m_wFullCount; //全满数目
WORD m_wMinusHeadCount; //头部空缺
WORD m_wMinusLastCount; //尾部空缺
//函数定义
public:
//构造函数
CHeapCard();
//析构函数
virtual ~CHeapCard();
//功能函数
public:
//绘画扑克
void DrawCardControl(CDC * pDC);
//设置扑克
bool SetCardData(WORD wMinusHeadCount, WORD wMinusLastCount, WORD wFullCount);
//控件控制
public:
//设置方向
void SetDirection(enDirection Direction) { m_CardDirection=Direction; }
//基准位置
void SetControlPoint(int nXPos, int nYPos) { m_ControlPoint.SetPoint(nXPos,nYPos); }
};
//////////////////////////////////////////////////////////////////////////
//组合扑克
class CWeaveCard
{
//控制变量
protected:
bool m_bDisplayItem; //显示标志
CPoint m_ControlPoint; //基准位置
enDirection m_CardDirection; //扑克方向
BYTE m_cbDirectionCardPos; //方向扑克
bool m_bGameEnd; //
//扑克数据
protected:
WORD m_wCardCount; //扑克数目
BYTE m_cbCardData[4]; //扑克数据
//函数定义
public:
//构造函数
CWeaveCard();
//析构函数
virtual ~CWeaveCard();
//功能函数
public:
//绘画扑克
void DrawCardControl(CDC * pDC);
//绘画扑克
void DrawCardControl(CDC * pDC, int nXPos, int nYPos);
//设置扑克
bool SetCardData(const BYTE cbCardData[], WORD wCardCount);
//控件控制
public:
//设置显示
void SetDisplayItem(bool bDisplayItem) { m_bDisplayItem=bDisplayItem; }
//设置方向
void SetDirection(enDirection Direction) { m_CardDirection=Direction; }
//基准位置
void SetControlPoint(int nXPos, int nYPos) { m_ControlPoint.SetPoint(nXPos,nYPos); }
//方向牌
void SetDirectionCardPos(BYTE cbPos) { assert(cbPos <= 3); m_cbDirectionCardPos = cbPos;}
//
void SetGameEnd( bool bGameEnd ) { m_bGameEnd = bGameEnd; }
//内部函数
private:
//获取扑克
inline BYTE GetCardData(WORD wIndex);
};
//////////////////////////////////////////////////////////////////////////
//用户扑克
class CUserCard
{
//扑克数据
protected:
WORD m_wCardCount; //扑克数目
bool m_bCurrentCard; //当前标志
//控制变量
protected:
CPoint m_ControlPoint; //基准位置
enDirection m_CardDirection; //扑克方向
//函数定义
public:
//构造函数
CUserCard();
//析构函数
virtual ~CUserCard();
//功能函数
public:
//绘画扑克
void DrawCardControl(CDC * pDC);
//设置扑克
bool SetCurrentCard(bool bCurrentCard);
//设置扑克
bool SetCardData(WORD wCardCount, bool bCurrentCard);
//控件控制
public:
//设置方向
void SetDirection(enDirection Direction) { m_CardDirection=Direction; }
//基准位置
void SetControlPoint(int nXPos, int nYPos) { m_ControlPoint.SetPoint(nXPos,nYPos); }
};
//////////////////////////////////////////////////////////////////////////
//丢弃扑克
class CDiscardCard
{
//扑克数据
protected:
WORD m_wCardCount; //扑克数目
BYTE m_cbCardData[24]; //扑克数据
//控制变量
protected:
CPoint m_ControlPoint; //基准位置
enDirection m_CardDirection; //扑克方向
//函数定义
public:
//构造函数
CDiscardCard();
//析构函数
virtual ~CDiscardCard();
//功能函数
public:
//绘画扑克
void DrawCardControl(CDC * pDC);
//增加扑克
bool AddCardItem(BYTE cbCardData);
//设置扑克
bool SetCardData(const BYTE cbCardData[], WORD wCardCount);
//获取位置
CPoint GetLastCardPosition();
//控件控制
public:
//设置方向
void SetDirection(enDirection Direction) { m_CardDirection=Direction; }
//基准位置
void SetControlPoint(int nXPos, int nYPos) { m_ControlPoint.SetPoint(nXPos,nYPos); }
};
//////////////////////////////////////////////////////////////////////////
//桌面扑克
class CTableCard
{
//扑克数据
protected:
WORD m_wCardCount; //扑克数目
BYTE m_cbCardData[14]; //扑克数据
//控制变量
protected:
CPoint m_ControlPoint; //基准位置
enDirection m_CardDirection; //扑克方向
//函数定义
public:
//构造函数
CTableCard();
//析构函数
virtual ~CTableCard();
//功能函数
public:
//绘画扑克
void DrawCardControl(CDC * pDC);
//设置扑克
bool SetCardData(const BYTE cbCardData[], WORD wCardCount);
//控件控制
public:
//设置方向
void SetDirection(enDirection Direction) { m_CardDirection=Direction; }
//基准位置
void SetControlPoint(int nXPos, int nYPos) { m_ControlPoint.SetPoint(nXPos,nYPos); }
};
//////////////////////////////////////////////////////////////////////////
//扑克结构
struct tagCardItem
{
bool bShoot; //弹起标志
BYTE cbCardData; //扑克数据
};
//扑克控件
class CCardControl
{
//状态变量
protected:
bool m_bPositively; //响应标志
bool m_bDisplayItem; //显示标志
//位置变量
protected:
CPoint m_BenchmarkPos; //基准位置
enXCollocateMode m_XCollocateMode; //显示模式
enYCollocateMode m_YCollocateMode; //显示模式
//扑克数据
protected:
WORD m_wCardCount; //扑克数目
WORD m_wHoverItem; //盘旋子项
tagCardItem m_CurrentCard; //当前扑克
tagCardItem m_CardItemArray[13]; //扑克数据
//资源变量
protected:
CSize m_ControlSize; //控件大小
CPoint m_ControlPoint; //控件位置
//函数定义
public:
//构造函数
CCardControl();
//析构函数
virtual ~CCardControl();
//查询函数
public:
//获取扑克
BYTE GetHoverCard();
//获取扑克
BYTE GetCurrentCard() { return m_CurrentCard.cbCardData; }
//扑克控制
public:
//设置扑克
bool SetCurrentCard(BYTE cbCardData);
//设置扑克
bool SetCurrentCard(tagCardItem CardItem);
//设置扑克
bool SetCardData(const BYTE cbCardData[], WORD wCardCount, BYTE cbCurrentCard);
//设置扑克
bool SetCardItem(const tagCardItem CardItemArray[], WORD wCardCount);
//控件控制
public:
//设置响应
void SetPositively(bool bPositively) { m_bPositively=bPositively; }
//设置显示
void SetDisplayItem(bool bDisplayItem) { m_bDisplayItem=bDisplayItem; }
//基准位置
void SetBenchmarkPos(int nXPos, int nYPos, enXCollocateMode XCollocateMode, enYCollocateMode YCollocateMode);
//基准位置
void SetBenchmarkPos(const CPoint & BenchmarkPos, enXCollocateMode XCollocateMode, enYCollocateMode YCollocateMode);
//事件控制
public:
//绘画扑克
void DrawCardControl(CDC * pDC);
//光标消息
bool OnEventSetCursor(CPoint Point, bool & bRePaint);
//内部函数
private:
//索引切换
WORD SwitchCardPoint(CPoint & MousePoint);
};
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//变量声明
//导出变量
extern CCardResource g_CardResource; //扑克资源
//////////////////////////////////////////////////////////////////////////
#endif

+ 359
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/ControlWnd.cpp Просмотреть файл

@@ -0,0 +1,359 @@
#include "StdAfx.h"
#include "GameLogic.h"
#include "ControlWnd.h"
#include "CardControl.h"
//////////////////////////////////////////////////////////////////////////
//按钮标识
#define IDC_CHIHU 100 //吃胡按钮
#define IDC_LISTEN 101 //听牌按钮
#define IDC_GIVEUP 102 //放弃按钮
//位置标识
#define ITEM_WIDTH 90 //子项宽度
#define ITEM_HEIGHT 55 //子项高度
#define CONTROL_WIDTH 173 //控制宽度
#define CONTROL_HEIGHT 41 //控制高度
//////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CControlWnd, CWnd)
ON_WM_PAINT()
ON_WM_CREATE()
ON_WM_SETCURSOR()
ON_WM_LBUTTONDOWN()
ON_BN_CLICKED(IDC_CHIHU, OnChiHu)
ON_BN_CLICKED(IDC_LISTEN, OnListen)
ON_BN_CLICKED(IDC_GIVEUP, OnGiveUp)
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////
//构造函数
CControlWnd::CControlWnd()
{
//配置变量
m_cbActionMask=0;
m_cbCenterCard=0;
m_PointBenchmark.SetPoint(0,0);
ZeroMemory(m_cbGangCard,sizeof(m_cbGangCard));
//状态变量
m_cbItemCount=0;
m_cbCurrentItem=0xFF;
//加载资源
HINSTANCE hInstance=AfxGetInstanceHandle();
m_ImageControlTop.LoadFromResource(hInstance, IDB_CONTROL_TOP);
m_ImageControlMid.LoadFromResource(hInstance, IDB_CONTROL_MID);
m_ImageControlButtom.LoadFromResource(hInstance, IDB_CONTROL_BOTTOM);
m_ImageActionExplain.LoadFromResource(hInstance, IDB_ACTION_EXPLAIN);
return;
}
//析构函数
CControlWnd::~CControlWnd()
{
}
//基准位置
void CControlWnd::SetBenchmarkPos(int nXPos, int nYPos)
{
//位置变量
m_PointBenchmark.SetPoint(nXPos,nYPos);
//调整控件
RectifyControl();
return;
}
//设置扑克
void CControlWnd::SetControlInfo(BYTE cbCenterCard, BYTE cbActionMask, tagGangCardResult & GangCardResult)
{
//设置变量
m_cbItemCount=0;
m_cbCurrentItem=0xFF;
m_cbActionMask=cbActionMask;
m_cbCenterCard=cbCenterCard;
//杠牌信息
ZeroMemory(m_cbGangCard,sizeof(m_cbGangCard));
for (BYTE i=0;i<GangCardResult.cbCardCount;i++)
{
m_cbItemCount++;
m_cbGangCard[i]=GangCardResult.cbCardData[i];
}
//计算数目
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_cbItemCount++;
//按钮控制
m_btChiHu.EnableWindow(cbActionMask&WIK_CHI_HU);
//m_btListen.EnableWindow(cbActionMask&WIK_LISTEN);
//调整控件
RectifyControl();
//显示窗口
ShowWindow(SW_SHOW);
return;
}
//调整控件
void CControlWnd::RectifyControl()
{
//设置位置
CRect rcRect;
rcRect.right=m_PointBenchmark.x;
rcRect.bottom=m_PointBenchmark.y;
rcRect.left=m_PointBenchmark.x-CONTROL_WIDTH;
rcRect.top=m_PointBenchmark.y-ITEM_HEIGHT*m_cbItemCount-CONTROL_HEIGHT;
if (m_cbItemCount>0)
rcRect.top-=5;
//移动窗口
MoveWindow(&rcRect);
//调整按钮
CRect rcButton;
m_btChiHu.GetWindowRect(&rcButton);
int nYPos=rcRect.Height()-rcButton.Height()-9;
m_btChiHu.SetWindowPos(NULL,rcRect.Width()-rcButton.Width()*3-14,nYPos,0,0,SWP_NOZORDER|SWP_NOSIZE);
m_btListen.SetWindowPos(NULL,rcRect.Width()-rcButton.Width()*2-11,nYPos,0,0,SWP_NOZORDER|SWP_NOSIZE);
m_btGiveUp.SetWindowPos(NULL,rcRect.Width()-rcButton.Width()-8,nYPos,0,0,SWP_NOZORDER|SWP_NOSIZE);
return;
}
//吃胡按钮
void CControlWnd::OnChiHu()
{
CGameFrameView::GetInstance()->SendEngineMessage(IDM_CARD_OPERATE,WIK_CHI_HU,0);
return;
}
//听牌按钮
void CControlWnd::OnListen()
{
CGameFrameView::GetInstance()->SendEngineMessage(IDM_LISTEN_CARD,0,0);
return;
}
//放弃按钮
void CControlWnd::OnGiveUp()
{
CGameFrameView::GetInstance()->SendEngineMessage(IDM_CARD_OPERATE,WIK_NULL,0);
return;
}
//重画函数
void CControlWnd::OnPaint()
{
CPaintDC dc(this);
//获取位置
CRect rcClient;
GetClientRect(&rcClient);
//创建缓冲
CDC BufferDC;
CBitmap BufferImage;
BufferDC.CreateCompatibleDC(&dc);
BufferImage.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height());
BufferDC.SelectObject(&BufferImage);
//绘画背景
m_ImageControlTop.BitBlt(BufferDC,0,0);
for (int nImageYPos=m_ImageControlTop.GetHeight();nImageYPos<rcClient.Height();nImageYPos+=m_ImageControlMid.GetHeight())
{
m_ImageControlMid.BitBlt(BufferDC,0,nImageYPos);
}
m_ImageControlButtom.BitBlt(BufferDC,0,rcClient.Height()-m_ImageControlButtom.GetHeight());
//变量定义
int nYPos=5;
BYTE cbCurrentItem=0;
BYTE cbExcursion[3]={0,1,2};
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)
{
//绘画扑克
for (BYTE j=0;j<3;j++)
{
BYTE cbCardData=m_cbCenterCard;
if (i<CountArray(cbExcursion))
cbCardData=m_cbCenterCard+j-cbExcursion[i];
g_CardResource.m_ImageTableBottom.DrawCardItem(&BufferDC,cbCardData,j*26+12,nYPos+5);
}
//计算位置
int nXImagePos=0;
int nItemWidth=m_ImageActionExplain.GetWidth()/7;
if ((m_cbActionMask&cbItemKind[i])&WIK_PENG)
nXImagePos=nItemWidth;
//绘画标志
int nItemHeight=m_ImageActionExplain.GetHeight();
m_ImageActionExplain.BitBlt(BufferDC,126,nYPos+5,nItemWidth,nItemHeight,nXImagePos,0);
//绘画边框
if (cbCurrentItem==m_cbCurrentItem)
{
BufferDC.Draw3dRect(7,nYPos,rcClient.Width()-14,ITEM_HEIGHT,RGB(255,255,0),RGB(255,255,0));
}
//设置变量
++cbCurrentItem;
nYPos+=ITEM_HEIGHT;
}
}
//杠牌扑克
for (BYTE i=0;i<CountArray(m_cbGangCard);i++)
{
if (m_cbGangCard[i]!=0)
{
//绘画扑克
for (BYTE j=0;j<4;j++)
{
g_CardResource.m_ImageTableBottom.DrawCardItem(&BufferDC,m_cbGangCard[i],j*26+12,nYPos+5);
}
//绘画边框
if (cbCurrentItem==m_cbCurrentItem)
{
BufferDC.Draw3dRect(7,nYPos,rcClient.Width()-14,ITEM_HEIGHT,RGB(255,255,0),RGB(255,255,0));
}
//绘画标志
int nItemWidth=m_ImageActionExplain.GetWidth()/7;
int nItemHeight=m_ImageActionExplain.GetHeight();
m_ImageActionExplain.BitBlt(BufferDC,126,nYPos+5,nItemWidth,nItemHeight,nItemWidth*3,0);
//设置变量
cbCurrentItem++;
nYPos+=ITEM_HEIGHT;
}
else
break;
}
//绘画界面
dc.BitBlt(0,0,rcClient.Width(),rcClient.Height(),&BufferDC,0,0,SRCCOPY);
//清理资源
BufferDC.DeleteDC();
BufferImage.DeleteObject();
return;
}
//建立消息
int CControlWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (__super::OnCreate(lpCreateStruct)==-1) return -1;
//创建按钮
CRect rcCreate(0,0,0,0);
m_btListen.Create(NULL,WS_CHILD|WS_VISIBLE,rcCreate,this,IDC_LISTEN);
m_btGiveUp.Create(NULL,WS_CHILD|WS_VISIBLE,rcCreate,this,IDC_GIVEUP);
m_btChiHu.Create(NULL,WS_CHILD|WS_VISIBLE|WS_DISABLED,rcCreate,this,IDC_CHIHU);
//设置位图
m_btChiHu.SetButtonImage(IDB_BT_CHIHU,AfxGetInstanceHandle(),false,false);
//m_btListen.SetButtonImage(IDB_BT_LISTEN,AfxGetInstanceHandle(),false);
m_btGiveUp.SetButtonImage(IDB_BT_GIVEUP,AfxGetInstanceHandle(),false,false);
return 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++))
{
CGameFrameView::GetInstance()->SendEngineMessage(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++))
{
CGameFrameView::GetInstance()->SendEngineMessage(IDM_CARD_OPERATE,WIK_GANG,m_cbGangCard[i]);
return;
}
}
//错误断言
ASSERT(FALSE);
}
return;
}
//光标消息
BOOL CControlWnd::OnSetCursor(CWnd * pWnd, UINT nHitTest, UINT uMessage)
{
//位置测试
if (m_cbItemCount!=0)
{
//获取位置
CRect rcClient;
CPoint MousePoint;
GetClientRect(&rcClient);
GetCursorPos(&MousePoint);
ScreenToClient(&MousePoint);
//计算索引
BYTE bCurrentItem=0xFF;
CRect rcItem(5,5,rcClient.Width()-5,ITEM_HEIGHT*m_cbItemCount+5);
if (rcItem.PtInRect(MousePoint))
bCurrentItem=(BYTE)((MousePoint.y-7)/ITEM_HEIGHT);
//设置索引
if (m_cbCurrentItem!=bCurrentItem)
{
Invalidate(FALSE);
m_cbCurrentItem=bCurrentItem;
}
//设置光标
if (m_cbCurrentItem!=0xFF)
{
SetCursor(LoadCursor(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDC_CARD_CUR)));
return TRUE;
}
}
return __super::OnSetCursor(pWnd,nHitTest,uMessage);
}
//////////////////////////////////////////////////////////////////////////

+ 87
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/ControlWnd.h Просмотреть файл

@@ -0,0 +1,87 @@
#ifndef CONTROL_WND_HEAD_FILE
#define CONTROL_WND_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "Resource.h"
#include "GameLogic.h"
//////////////////////////////////////////////////////////////////////////
//消息定义
#define IDM_LISTEN_CARD (WM_USER+300) //扑克操作
#define IDM_CARD_OPERATE (WM_USER+301) //扑克操作
//////////////////////////////////////////////////////////////////////////
//控制窗口
class CControlWnd : public CWnd
{
//配置变量
protected:
BYTE m_cbActionMask; //类型掩码
BYTE m_cbCenterCard; //中心扑克
BYTE m_cbGangCard[5]; //杠牌数据
CPoint m_PointBenchmark; //基准位置
//状态变量
protected:
BYTE m_cbItemCount; //子项数目
BYTE m_cbCurrentItem; //当前子项
//控件变量
protected:
CSkinButton m_btChiHu; //吃胡按钮
CSkinButton m_btListen; //听牌按钮
CSkinButton m_btGiveUp; //放弃按钮
//资源变量
protected:
CBitImage m_ImageControlTop; //资源图片
CBitImage m_ImageControlMid; //资源图片
CBitImage m_ImageControlButtom; //资源图片
CBitImage m_ImageActionExplain; //动作解释
//函数定义
public:
//构造函数
CControlWnd();
//析构函数
virtual ~CControlWnd();
//控件控制
public:
//基准位置
void SetBenchmarkPos(int nXPos, int nYPos);
//设置扑克
void SetControlInfo(BYTE cbCenterCard, BYTE cbActionMask, tagGangCardResult & GangCardResult);
//内部函数
protected:
//调整控件
void RectifyControl();
//消息映射
protected:
//重画函数
afx_msg void OnPaint();
//吃胡按钮
afx_msg void OnChiHu();
//听牌按钮
afx_msg void OnListen();
//放弃按钮
afx_msg void OnGiveUp();
//建立消息
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
//鼠标消息
afx_msg void OnLButtonDown(UINT nFlags, CPoint Point);
//光标消息
afx_msg BOOL OnSetCursor(CWnd * pWnd, UINT nHitTest, UINT uMessage);
DECLARE_MESSAGE_MAP()
};
//////////////////////////////////////////////////////////////////////////
#endif

+ 297
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/DirectSound.cpp Просмотреть файл

@@ -0,0 +1,297 @@
/////////////////////////////////////////////////////////////////////////////
// Copyright (C) 1998 by Jörg König
// All rights reserved
//
// This file is part of the completely free tetris clone "CGTetris".
//
// This is free software.
// You may redistribute it by any means providing it is not sold for profit
// without the authors written consent.
//
// No warrantee of any kind, expressed or implied, is included with this
// software; use at your own risk, responsibility for damages (if any) to
// anyone resulting from the use of this software rests entirely with the
// user.
//
// Send bug reports, bug fixes, enhancements, requests, flames, etc., and
// I'll try to keep a version up to date. I can be reached as follows:
// J.Koenig@adg.de (company site)
// Joerg.Koenig@rhein-neckar.de (private site)
/////////////////////////////////////////////////////////////////////////////
// DirectSound.cpp: implementation of the CDirectSound class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DirectSound.h"
// The following macro is defined since DirectX 5, but will work with
// older versions too.
#ifndef DSBLOCK_ENTIREBUFFER
#define DSBLOCK_ENTIREBUFFER 0x00000002
#endif
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
static void DSError( HRESULT hRes ) {
switch(hRes) {
case DS_OK: TRACE0("NO ERROR\n"); break;
case DSERR_ALLOCATED: TRACE0("ALLOCATED\n"); break;
case DSERR_INVALIDPARAM: TRACE0("INVALIDPARAM\n"); break;
case DSERR_OUTOFMEMORY: TRACE0("OUTOFMEMORY\n"); break;
case DSERR_UNSUPPORTED: TRACE0("UNSUPPORTED\n"); break;
case DSERR_NOAGGREGATION: TRACE0("NOAGGREGATION\n"); break;
case DSERR_UNINITIALIZED: TRACE0("UNINITIALIZED\n"); break;
case DSERR_BADFORMAT: TRACE0("BADFORMAT\n"); break;
case DSERR_ALREADYINITIALIZED: TRACE0("ALREADYINITIALIZED\n"); break;
case DSERR_BUFFERLOST: TRACE0("BUFFERLOST\n"); break;
case DSERR_CONTROLUNAVAIL: TRACE0("CONTROLUNAVAIL\n"); break;
case DSERR_GENERIC: TRACE0("GENERIC\n"); break;
case DSERR_INVALIDCALL: TRACE0("INVALIDCALL\n"); break;
case DSERR_OTHERAPPHASPRIO: TRACE0("OTHERAPPHASPRIO\n"); break;
case DSERR_PRIOLEVELNEEDED: TRACE0("PRIOLEVELNEEDED\n"); break;
default: TRACE1("%lu\n",hRes);break;
}
}
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
LPDIRECTSOUND CDirectSound::m_lpDirectSound;
DWORD CDirectSound::m_dwInstances;
CDirectSound::CDirectSound()
{
m_lpDirectSound = 0;
m_pDsb = 0;
m_pTheSound = 0;
m_dwTheSound = 0;
m_bEnabled = TRUE;
++m_dwInstances;
}
CDirectSound::~CDirectSound()
{
if( m_pDsb )
m_pDsb->Release();
if( !--m_dwInstances && m_lpDirectSound ) {
m_lpDirectSound->Release();
m_lpDirectSound = 0;
}
}
BOOL CDirectSound::Create(LPCTSTR pszResource, CWnd * pWnd)
{
//////////////////////////////////////////////////////////////////
// load resource
HINSTANCE hApp = ::GetModuleHandle(0);
ASSERT(hApp);
HRSRC hResInfo = ::FindResource(hApp, pszResource, TEXT("WAVE"));
if(hResInfo == 0)
return FALSE;
HGLOBAL hRes = ::LoadResource(hApp, hResInfo);
if(hRes == 0)
return FALSE;
LPVOID pTheSound = ::LockResource(hRes);
if(pTheSound == 0)
return FALSE;
return Create(pTheSound, pWnd);
}
BOOL CDirectSound :: Create(LPVOID pSoundData, CWnd * pWnd) {
if(pWnd == 0)
pWnd = AfxGetApp()->GetMainWnd();
ASSERT(pWnd != 0);
ASSERT(::IsWindow(pWnd->GetSafeHwnd()));
ASSERT(pSoundData != 0);
//////////////////////////////////////////////////////////////////
// create direct sound object
if( m_lpDirectSound == 0 ) {
// Someone might use sounds for starting apps. This may cause
// DirectSoundCreate() to fail because the driver is used by
// anyone else. So wait a little before starting with the work ...
HRESULT hRes = DS_OK;
short nRes = 0;
do {
if( nRes )
::Sleep(500);
hRes = ::DirectSoundCreate(0, &m_lpDirectSound, 0);
++nRes;
} while( nRes < 10 && (hRes == DSERR_ALLOCATED || hRes == DSERR_NODRIVER) );
if( hRes != DS_OK )
return FALSE;
m_lpDirectSound->SetCooperativeLevel(pWnd->GetSafeHwnd(), DSSCL_NORMAL);
}
ASSERT(m_lpDirectSound != 0);
WAVEFORMATEX * pcmwf;
if( ! GetWaveData(pSoundData, pcmwf, m_pTheSound, m_dwTheSound) ||
! CreateSoundBuffer(pcmwf) ||
! SetSoundData(m_pTheSound, m_dwTheSound) )
return FALSE;
return TRUE;
}
BOOL CDirectSound :: GetWaveData(void * pRes, WAVEFORMATEX * & pWaveHeader, void * & pbWaveData, DWORD & cbWaveSize) {
pWaveHeader = 0;
pbWaveData = 0;
cbWaveSize = 0;
DWORD * pdw = (DWORD *)pRes;
DWORD dwRiff = *pdw++;
DWORD dwLength = *pdw++;
DWORD dwType = *pdw++;
if( dwRiff != mmioFOURCC('R', 'I', 'F', 'F') )
return FALSE; // not even RIFF
if( dwType != mmioFOURCC('W', 'A', 'V', 'E') )
return FALSE; // not a WAV
DWORD * pdwEnd = (DWORD *)((BYTE *)pdw + dwLength-4);
while( pdw < pdwEnd ) {
dwType = *pdw++;
dwLength = *pdw++;
switch( dwType ) {
case mmioFOURCC('f', 'm', 't', ' '):
if( !pWaveHeader ) {
if( dwLength < sizeof(WAVEFORMAT) )
return FALSE; // not a WAV
pWaveHeader = (WAVEFORMATEX *)pdw;
if( pbWaveData && cbWaveSize )
return TRUE;
}
break;
case mmioFOURCC('d', 'a', 't', 'a'):
pbWaveData = LPVOID(pdw);
cbWaveSize = dwLength;
if( pWaveHeader )
return TRUE;
break;
}
pdw = (DWORD *)((BYTE *)pdw + ((dwLength+1)&~1));
}
return FALSE;
}
BOOL CDirectSound::CreateSoundBuffer(WAVEFORMATEX * pcmwf)
{
DSBUFFERDESC dsbdesc;
// Set up DSBUFFERDESC structure.
memset(&dsbdesc, 0, sizeof(DSBUFFERDESC)); // Zero it out.
dsbdesc.dwSize = sizeof(DSBUFFERDESC);
// Need no controls (pan, volume, frequency).
dsbdesc.dwFlags = DSBCAPS_STATIC; // assumes that the sound is played often
dsbdesc.dwBufferBytes = m_dwTheSound;
dsbdesc.lpwfxFormat = pcmwf; // Create buffer.
HRESULT hRes;
if( DS_OK != (hRes = m_lpDirectSound->CreateSoundBuffer(&dsbdesc, &m_pDsb, 0)) ) {
// Failed.
DSError(hRes);
m_pDsb = 0;
return FALSE;
}
return TRUE;
}
BOOL CDirectSound::SetSoundData(void * pSoundData, DWORD dwSoundSize) {
LPVOID lpvPtr1;
DWORD dwBytes1;
// Obtain write pointer.
HRESULT hr = m_pDsb->Lock(0, 0, &lpvPtr1, &dwBytes1, 0, 0, DSBLOCK_ENTIREBUFFER);
// If DSERR_BUFFERLOST is returned, restore and retry lock.
if(DSERR_BUFFERLOST == hr) {
m_pDsb->Restore();
hr = m_pDsb->Lock(0, 0, &lpvPtr1, &dwBytes1, 0, 0, DSBLOCK_ENTIREBUFFER);
}
if(DS_OK == hr) {
// Write to pointers.
::CopyMemory(lpvPtr1, pSoundData, dwBytes1);
// Release the data back to DirectSound.
hr = m_pDsb->Unlock(lpvPtr1, dwBytes1, 0, 0);
if(DS_OK == hr)
return TRUE;
}
// Lock, Unlock, or Restore failed.
return FALSE;
}
void CDirectSound::Play(DWORD dwStartPosition, BOOL bLoop)
{
if( ! IsValid() || ! IsEnabled() )
return; // no chance to play the sound ...
if( dwStartPosition > m_dwTheSound )
dwStartPosition = m_dwTheSound;
m_pDsb->SetCurrentPosition(dwStartPosition);
if( DSERR_BUFFERLOST == m_pDsb->Play(0, 0, bLoop ? DSBPLAY_LOOPING : 0) ) {
// another application had stolen our buffer
// Note that a "Restore()" is not enough, because
// the sound data is invalid after Restore().
SetSoundData(m_pTheSound, m_dwTheSound);
// Try playing again
m_pDsb->Play(0, 0, bLoop ? DSBPLAY_LOOPING : 0);
}
}
void CDirectSound::Stop()
{
if( IsValid() )
m_pDsb->Stop();
}
void CDirectSound::Pause()
{
Stop();
}
void CDirectSound::Continue()
{
if( IsValid() ) {
DWORD dwPlayCursor, dwWriteCursor;
m_pDsb->GetCurrentPosition(&dwPlayCursor, &dwWriteCursor);
Play(dwPlayCursor);
}
}
BOOL CDirectSound::IsValid() const
{
return (m_lpDirectSound && m_pDsb && m_pTheSound && m_dwTheSound) ? TRUE : FALSE;
}

+ 89
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/DirectSound.h Просмотреть файл

@@ -0,0 +1,89 @@
/////////////////////////////////////////////////////////////////////////////
// Copyright (C) 1998 by Jörg König
// All rights reserved
//
// This file is part of the completely free tetris clone "CGTetris".
//
// This is free software.
// You may redistribute it by any means providing it is not sold for profit
// without the authors written consent.
//
// No warrantee of any kind, expressed or implied, is included with this
// software; use at your own risk, responsibility for damages (if any) to
// anyone resulting from the use of this software rests entirely with the
// user.
//
// Send bug reports, bug fixes, enhancements, requests, flames, etc., and
// I'll try to keep a version up to date. I can be reached as follows:
// J.Koenig@adg.de (company site)
// Joerg.Koenig@rhein-neckar.de (private site)
/////////////////////////////////////////////////////////////////////////////
// DirectSound.h: interface for the CDirectSound class.
//
//////////////////////////////////////////////////////////////////////
#ifndef D_SOUND_HEAD_FILE
#define D_SOUND_HEAD_FILE
#if !defined(AFX_DIRECTSOUND_H__A20FE86F_118F_11D2_9AB3_0060B0CDC13E__INCLUDED_)
#define AFX_DIRECTSOUND_H__A20FE86F_118F_11D2_9AB3_0060B0CDC13E__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include <mmsystem.h>
#include <dsound.h>
//#pragma message("linking with Microsoft's DirectSound library ...")
#pragma comment(lib, "dsound.lib")
class CDirectSound
{
public: // construction/destruction
CDirectSound();
virtual ~CDirectSound();
// If the "pWnd" paramter is NULL, then AfxGetApp()->GetMainWnd() will be used.
BOOL Create(LPCTSTR pszResource, CWnd * pWnd = 0);
BOOL Create(UINT uResourceID, CWnd * pWnd = 0) {
return Create(MAKEINTRESOURCE(uResourceID), pWnd);
}
// Alternativly you can specify the sound by yourself
// Note that the class does not copy the entire data ! Instead
// a pointer to the given data will be stored !
// You can load an entire WAV file into memory and then call this
// Create() method.
BOOL Create(LPVOID pSoundData, CWnd * pWnd = 0);
public: // operations
BOOL IsValid() const;
void Play(DWORD dwStartPosition = 0, BOOL bLoop = FALSE);
void Stop();
void Pause();
void Continue();
CDirectSound & EnableSound(BOOL bEnable = TRUE) {
m_bEnabled = bEnable;
if( ! bEnable )
Stop();
return * this;
}
BOOL IsEnabled() const { return m_bEnabled; }
protected: // implementation
BOOL SetSoundData(LPVOID pSoundData, DWORD dwSoundSize);
BOOL CreateSoundBuffer(WAVEFORMATEX * pcmwf);
BOOL GetWaveData(void * pRes, WAVEFORMATEX * & pWaveHeader, void * & pbWaveData, DWORD & cbWaveSize);
private: // data member
LPVOID m_pTheSound;
DWORD m_dwTheSound;
LPDIRECTSOUNDBUFFER m_pDsb;
BOOL m_bEnabled;
static LPDIRECTSOUND m_lpDirectSound;
static DWORD m_dwInstances;
};
#endif // !defined(AFX_DIRECTSOUND_H__A20FE86F_118F_11D2_9AB3_0060B0CDC13E__INCLUDED_)
#endif

+ 169
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/DrawSiceWnd.cpp Просмотреть файл

@@ -0,0 +1,169 @@
#include "StdAfx.h"
#include "DrawSiceWnd.h"
//////////////////////////////////////////////////////////////////////////
#define IDI_SICE_POS 203 //移动定时器
//////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CDrawSiceWnd, CWnd)
ON_WM_PAINT()
ON_WM_CREATE()
ON_WM_TIMER()
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////
//构造函数
CDrawSiceWnd::CDrawSiceWnd()
{
//加载资源
m_bSicePos=0;
m_nXPos=0;
m_nYPos=0;
HINSTANCE hInstance=AfxGetInstanceHandle();
m_ImageBack.LoadFromResource(hInstance, IDB_SICE_BACK);
for ( int i = 0; i < 12; ++i )
{
m_ImageDrawSice[i].LoadFromResource(hInstance, IDB_DRAW_SICE1 + i);
}
m_ImageDrawSiceUserSecond = NULL;
m_ImageDrawSiceSecond = NULL;
m_ImageDrawSiceUserFirst = NULL;
m_ImageDrawSiceUserSecond = NULL;
return;
}
//析构函数
CDrawSiceWnd::~CDrawSiceWnd()
{
}
//重画函数
void CDrawSiceWnd::OnPaint()
{
CPaintDC dc(this);
//获取位置
CRect rcClient;
GetClientRect(&rcClient);
//创建缓冲
CDC BufferDC;
CBitmap BufferImage;
BufferDC.CreateCompatibleDC(&dc);
BufferImage.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height());
BufferDC.SelectObject(&BufferImage);
//绘画背景
m_ImageBack.BitBlt(BufferDC,0,0);
if(m_bSicePos<9 )
{
if ( m_ImageDrawSiceFirst )
m_ImageDrawSiceFirst->TransDrawImage(&BufferDC,30,0,m_ImageDrawSiceFirst->GetWidth()/9,m_ImageDrawSiceFirst->GetHeight(), m_bSicePos*m_ImageDrawSiceFirst->GetWidth()/9,0,RGB(0,0,255));
if ( m_ImageDrawSiceSecond )
m_ImageDrawSiceSecond->TransDrawImage(&BufferDC,30,0,m_ImageDrawSiceSecond->GetWidth()/9,m_ImageDrawSiceSecond->GetHeight(),m_bSicePos*m_ImageDrawSiceSecond->GetWidth()/9,0,RGB(0,0,255));
}
else
{
if ( m_ImageDrawSiceUserFirst )
m_ImageDrawSiceUserFirst->TransDrawImage(&BufferDC,30,0,m_ImageDrawSiceUserFirst->GetWidth()/9,m_ImageDrawSiceUserFirst->GetHeight(),m_bSicePos%9*m_ImageDrawSiceUserFirst->GetWidth()/9,0,RGB(0,0,255));
if ( m_ImageDrawSiceUserSecond )
m_ImageDrawSiceUserSecond->TransDrawImage(&BufferDC,30,0,m_ImageDrawSiceUserSecond->GetWidth()/9,m_ImageDrawSiceUserSecond->GetHeight(),m_bSicePos%9*m_ImageDrawSiceUserSecond->GetWidth()/9,0,RGB(0,0,255));
}
//绘画界面
dc.BitBlt(0,0,rcClient.Width(),rcClient.Height(),&BufferDC,0,0,SRCCOPY);
//清理资源
BufferDC.DeleteDC();
BufferImage.DeleteObject();
return;
}
//建立消息
int CDrawSiceWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (__super::OnCreate(lpCreateStruct)==-1) return -1;
SetWindowPos(NULL,0,0,m_ImageBack.GetWidth(),m_ImageBack.GetHeight(),SWP_NOZORDER|SWP_NOREPOSITION);
return 0;
}
//定时器消息
void CDrawSiceWnd::OnTimer(UINT nIDEvent)
{
if(IDI_SICE_POS==nIDEvent)
{
if(m_bSicePos>=17)
{
KillTimer(IDI_SICE_POS);
Sleep(1000);
CGameFrameView::GetInstance()->PostEngineMessage(IDM_SICE_FINISH,NULL,NULL);
}
else
{
if(m_bSicePos==8)
{
Sleep(1000);
CGameFrameView::GetInstance()->PostEngineMessage(IDM_SICE_TWO,NULL,NULL);
}
m_bSicePos++;
}
Invalidate();
}
__super::OnTimer(nIDEvent);
}
//设置色子信息
void CDrawSiceWnd::SetSiceInfo(CDC *dc,BYTE bMoveTime,WORD wSice1,WORD wSice2)
{
HINSTANCE hInstance=AfxGetInstanceHandle();
ParentDC=dc;
BYTE SiceFirst,SiceSecond;
if( wSice1 > 0 )
{
SiceFirst = HIBYTE(wSice1);
SiceSecond = LOBYTE(wSice1);
ASSERT( SiceFirst > 0 && SiceFirst < 7 && SiceSecond > 0 && SiceSecond < 7 );
m_ImageDrawSiceFirst = &m_ImageDrawSice[SiceFirst-1];
m_ImageDrawSiceSecond = &m_ImageDrawSice[6 + SiceSecond-1];
//m_ImageDrawSiceFirst.LoadFromResource(hInstance, IDB_DRAW_SICE1+SiceFirst-1);
//m_ImageDrawSiceSecond.LoadFromResource(hInstance, IDB_DRAW_SICE7+SiceSecond-1);
}
if( wSice2 > 0 )
{
SiceFirst = HIBYTE(wSice2);
SiceSecond = LOBYTE(wSice2);
ASSERT( SiceFirst > 0 && SiceFirst < 7 && SiceSecond > 0 && SiceSecond < 7 );
m_ImageDrawSiceUserFirst = &m_ImageDrawSice[SiceFirst-1];
m_ImageDrawSiceUserSecond = &m_ImageDrawSice[6 + SiceSecond-1];
//m_ImageDrawSiceUserFirst.LoadFromResource(hInstance, IDB_DRAW_SICE1+SiceFirst-1);
//m_ImageDrawSiceUserSecond.LoadFromResource(hInstance, IDB_DRAW_SICE7+SiceSecond-1);
}
m_bSicePos = (wSice1>0)?0:9;
SetTimer(IDI_SICE_POS,bMoveTime,NULL);
}
//基准位置
void CDrawSiceWnd::SetBenchmarkPos(int nXPos, int nYPos)
{
m_nXPos=nXPos;
m_nYPos=nYPos;
}
//设置窗口钩子
void CDrawSiceWnd::SetWindowSink(CWnd *pSinkWnd)
{
m_pSinkWnd = pSinkWnd;
}
//////////////////////////////////////////////////////////////////////////

+ 63
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/DrawSiceWnd.h Просмотреть файл

@@ -0,0 +1,63 @@
#ifndef DRAW_WND_HEAD_FILE
#define DRAW_WND_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "Resource.h"
//////////////////////////////////////////////////////////////////////////
#define IDM_SICE_FINISH (WM_USER+401) //扑克操作
#define IDM_CARD_MOVE (WM_USER+402) //移动声音
#define IDM_SICE_TWO (WM_USER+403) //移动声音
//////////////////////////////////////////////////////////////////////////
//控制窗口
class CDrawSiceWnd : public CWnd
{
//配置变量
protected:
CBitImage m_ImageBack; //背景图案
CBitImage* m_ImageDrawSiceFirst; //动作解释
CBitImage* m_ImageDrawSiceSecond; //
CBitImage* m_ImageDrawSiceUserFirst; //动作解释
CBitImage* m_ImageDrawSiceUserSecond; //动作解释
CBitImage m_ImageDrawSice[12]; //动作解释
BYTE m_bSicePos;
int m_nXPos;
int m_nYPos;
CDC *ParentDC;
CWnd *m_pSinkWnd; //通知钩子
//函数定义
public:
//构造函数
CDrawSiceWnd();
//析构函数
virtual ~CDrawSiceWnd();
//内部函数
public:
//设置色子信息
void SetSiceInfo(CDC *dc,BYTE bMoveTime,WORD wSice1,WORD wSice2);
//设置基准位置
void SetBenchmarkPos(int nXPos, int nYPos);
//设置通知钩子
void SetWindowSink(CWnd *pSinkWnd);
//消息映射
protected:
//重画函数
afx_msg void OnPaint();
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnTimer(UINT nIDEvent);
DECLARE_MESSAGE_MAP()
};
//////////////////////////////////////////////////////////////////////////
#endif

+ 31
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.h Просмотреть файл

@@ -0,0 +1,31 @@
#pragma once
#ifndef __AFXWIN_H__
#error 在包含用于 PCH 的此文件之前包含“stdafx.h”
#endif
#include "Resource.h"
#include "GameClientEngine.h"
//////////////////////////////////////////////////////////////////////////
//应用程序类
class CGameClientApp : public CGameFrameApp
{
//函数定义
public:
//构造函数
CGameClientApp();
//析构函数
virtual ~CGameClientApp();
//继承函数
public:
//创建引擎
virtual CGameFrameEngine * GetGameFrameEngine(DWORD dwSDKVersion);
};
//应用程序对象
extern CGameClientApp theApp;
//////////////////////////////////////////////////////////////////////////

+ 354
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.rc Просмотреть файл

@@ -0,0 +1,354 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// 中文(中华人民共和国) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"
"LANGUAGE 4, 2\r\n"
"#pragma code_page(936)\r\n"
"#include ""res\\GameClient.rc2"" // 非 Microsoft Visual C++ 编辑过的资源\r\n"
"#include ""afxres.rc"" // 标准组件\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON "res\\GameClient.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 6,6,0,3
PRODUCTVERSION 6,6,0,3
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080403a8"
BEGIN
VALUE "Comments", "深圳网狐科技有限公司"
VALUE "CompanyName", "深圳网狐科技有限公司"
VALUE "FileDescription", "血战麻将客户端"
VALUE "FileVersion", "6, 6, 0, 3"
VALUE "InternalName", "SparrowXZ.exe"
VALUE "LegalCopyright", "深圳网狐科技有限公司保留所有权利。"
VALUE "OriginalFilename", "SparrowXZ.exe"
VALUE "ProductName", "血战麻将客户端"
VALUE "ProductVersion", "6, 6, 0, 3"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x804, 936
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
GAME_LOGO BITMAP "res\\GAME_LOGO.bmp"
IDB_VIEW_BACK BITMAP "res\\VIEW_BACK.bmp"
IDB_USER_FLAG BITMAP "res\\USER_FLAG.bmp"
IDB_BT_START BITMAP "res\\BT_START.bmp"
IDB_BT_GIVEUP BITMAP "res\\BT_GIVEUP.bmp"
IDB_BT_CHIHU BITMAP "res\\BT_CHIHU.bmp"
IDB_ACTION_EXPLAIN BITMAP "res\\ACTION_EXPLAIN.bmp"
IDB_ACTION_BACK BITMAP "res\\ACTION_BACK.bmp"
IDB_WAIT_TIP BITMAP "res\\WAIT_TIP.bmp"
IDB_USER_ACTION BITMAP "res\\USER_ACTION.bmp"
IDB_OUT_CARD_TIP BITMAP "res\\OUT_CARD_TIP.bmp"
IDB_CONTROL_TOP BITMAP "res\\CONTROL_TOP.bmp"
IDB_CONTROL_MID BITMAP "res\\CONTROL_MID.bmp"
IDB_CONTROL_BOTTOM BITMAP "res\\CONTROL_BOTTOM.bmp"
IDB_BT_START_TRUSTEE BITMAP "res\\BT_START_TRUSTEE.bmp"
IDB_BT_STOP_TRUSTEE BITMAP "res\\BT_STOP_TRUSTEE.bmp"
IDB_BT_SCORE_CLOSE BITMAP "res\\BT_SCORE_CLOSE.bmp"
IDB_VIEW_CENTER BITMAP "res\\VIEW_CENTER.BMP"
IDB_DRAW_SICE1 BITMAP "res\\SICE1.bmp"
IDB_DRAW_SICE2 BITMAP "res\\SICE2.bmp"
IDB_DRAW_SICE3 BITMAP "res\\SICE3.bmp"
IDB_DRAW_SICE4 BITMAP "res\\SICE4.bmp"
IDB_DRAW_SICE5 BITMAP "res\\SICE5.bmp"
IDB_DRAW_SICE6 BITMAP "res\\SICE6.bmp"
IDB_DRAW_SICE7 BITMAP "res\\SICE7.bmp"
IDB_DRAW_SICE8 BITMAP "res\\SICE8.bmp"
IDB_DRAW_SICE9 BITMAP "res\\SICE9.bmp"
IDB_DRAW_SICE10 BITMAP "res\\SICE10.bmp"
IDB_DRAW_SICE11 BITMAP "res\\SICE11.bmp"
IDB_DRAW_SICE12 BITMAP "res\\SICE12.bmp"
IDB_SICE_BACK BITMAP "res\\SICE_BACK.bmp"
IDB_WIN_ORDER BITMAP "res\\WIN_ORDER.bmp"
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_CARD_CUR CURSOR "res\\CARD_CUR.cur"
/////////////////////////////////////////////////////////////////////////////
//
// PNG
//
DISC PNG "res\\DISC.png"
ACTIONANI PNG "res\\ACTIONANI.png"
ARROW PNG "res\\ARROW.png"
TRUSTEE PNG "res\\Trustee.png"
CARD_HEAP_DOUBLE_LV PNG "res\\CARD_HEAP_DOUBLE_LV.png"
CARD_HEAP_DOUBLE_RV PNG "res\\CARD_HEAP_DOUBLE_RV.png"
CARD_HEAP_DOUBLE_BV PNG "res\\CARD_HEAP_DOUBLE_BV.png"
CARD_HEAP_DOUBLE_TV PNG "res\\CARD_HEAP_DOUBLE_TV.png"
CARD_HEAP_SINGLE_LV PNG "res\\CARD_HEAP_SINGLE_LV.png"
CARD_HEAP_SINGLE_RV PNG "res\\CARD_HEAP_SINGLE_RV.png"
CARD_HEAP_SINGLE_BV PNG "res\\CARD_HEAP_SINGLE_BV.png"
CARD_HEAP_SINGLE_TV PNG "res\\CARD_HEAP_SINGLE_TV.png"
CARD_USER_LEFT PNG "res\\CARD_USER_LEFT.png"
CARD_USER_RIGHT PNG "res\\CARD_USER_RIGHT.png"
CARD_USER_BOTTOM PNG "res\\CARD_USER_BOTTOM.png"
CARD_TABLE_BOTTOM PNG "res\\CARD_TABLE_BOTTOM.png"
CARD_TABLE_TOP PNG "res\\CARD_TABLE_TOP.png"
CARD_TABLE_LEFT PNG "res\\CARD_TABLE_LEFT.png"
CARD_TABLE_RIGHT PNG "res\\CARD_TABLE_RIGHT.png"
CELL_SCORE PNG "res\\CELL_SCORE.PNG"
NUM_LOST PNG "res\\NUM_LOST.PNG"
NUM_WIN PNG "res\\NUM_WIN.PNG"
NUM_ORDER PNG "res\\NUM_ORDER.PNG"
GAME_WIN PNG "res\\GAME_WIN.PNG"
GAME_LOST PNG "res\\GAME_LOST.PNG"
GUA_FENG PNG "res\\GUA_FENG.PNG"
XIAO_YU PNG "res\\XIAO_YU.PNG"
CARD_USER_TOP PNG "res\\CARD_USER_TOP.png"
/////////////////////////////////////////////////////////////////////////////
//
// WAVE
//
OUT_CARD WAVE "res\\麻将声音\\OUT_CARD.WAV"
GAME_WIN WAVE "res\\麻将声音\\GAME_WIN.WAV"
GAME_WARN WAVE "res\\麻将声音\\GAME_WARN.WAV"
GAME_START WAVE "res\\麻将声音\\GAME_START.WAV"
GAME_LOST WAVE "res\\麻将声音\\GAME_LOST.WAV"
GAME_END WAVE "res\\麻将声音\\GAME_END.WAV"
BOY_CHI WAVE "res\\麻将声音\\男\\CHI.WAV"
BOY_PENG WAVE "res\\麻将声音\\男\\PENG.WAV"
BOY_CHI_HU WAVE "res\\麻将声音\\男\\CHI_HU.WAV"
BOY_GANG WAVE "res\\麻将声音\\男\\GANG.WAV"
GIRL_CHI WAVE "res\\麻将声音\\女\\CHI.WAV"
GIRL_PENG WAVE "res\\麻将声音\\女\\PENG.WAV"
GIRL_CHI_HU WAVE "res\\麻将声音\\女\\CHI_HU.WAV"
GIRL_GANG WAVE "res\\麻将声音\\女\\GANG.WAV"
BOY_W_9 WAVE "res\\麻将声音\\男\\W_9.WAV"
BOY_W_8 WAVE "res\\麻将声音\\男\\W_8.WAV"
BOY_W_7 WAVE "res\\麻将声音\\男\\W_7.WAV"
BOY_W_6 WAVE "res\\麻将声音\\男\\W_6.WAV"
BOY_W_5 WAVE "res\\麻将声音\\男\\W_5.WAV"
BOY_W_4 WAVE "res\\麻将声音\\男\\W_4.WAV"
BOY_W_3 WAVE "res\\麻将声音\\男\\W_3.WAV"
BOY_W_2 WAVE "res\\麻将声音\\男\\W_2.WAV"
BOY_W_1 WAVE "res\\麻将声音\\男\\W_1.WAV"
BOY_T_9 WAVE "res\\麻将声音\\男\\T_9.WAV"
BOY_T_8 WAVE "res\\麻将声音\\男\\T_8.WAV"
BOY_T_7 WAVE "res\\麻将声音\\男\\T_7.WAV"
BOY_T_6 WAVE "res\\麻将声音\\男\\T_6.WAV"
BOY_T_5 WAVE "res\\麻将声音\\男\\T_5.WAV"
BOY_T_4 WAVE "res\\麻将声音\\男\\T_4.WAV"
BOY_T_3 WAVE "res\\麻将声音\\男\\T_3.WAV"
BOY_T_2 WAVE "res\\麻将声音\\男\\T_2.WAV"
BOY_T_1 WAVE "res\\麻将声音\\男\\T_1.WAV"
BOY_S_9 WAVE "res\\麻将声音\\男\\S_9.WAV"
BOY_S_8 WAVE "res\\麻将声音\\男\\S_8.WAV"
BOY_S_7 WAVE "res\\麻将声音\\男\\S_7.WAV"
BOY_S_6 WAVE "res\\麻将声音\\男\\S_6.WAV"
BOY_S_5 WAVE "res\\麻将声音\\男\\S_5.WAV"
BOY_S_4 WAVE "res\\麻将声音\\男\\S_4.WAV"
BOY_S_3 WAVE "res\\麻将声音\\男\\S_3.WAV"
BOY_S_2 WAVE "res\\麻将声音\\男\\S_2.WAV"
BOY_S_1 WAVE "res\\麻将声音\\男\\S_1.WAV"
BOY_F_1 WAVE "res\\麻将声音\\男\\F_1.WAV"
BOY_F_2 WAVE "res\\麻将声音\\男\\F_2.WAV"
BOY_F_3 WAVE "res\\麻将声音\\男\\F_3.WAV"
BOY_F_4 WAVE "res\\麻将声音\\男\\F_4.WAV"
BOY_F_5 WAVE "res\\麻将声音\\男\\F_5.WAV"
BOY_F_6 WAVE "res\\麻将声音\\男\\F_6.WAV"
BOY_F_7 WAVE "res\\麻将声音\\男\\F_7.WAV"
GIRL_W_9 WAVE "res\\麻将声音\\女\\W_9.WAV"
GIRL_W_8 WAVE "res\\麻将声音\\女\\W_8.WAV"
GIRL_W_7 WAVE "res\\麻将声音\\女\\W_7.WAV"
GIRL_W_6 WAVE "res\\麻将声音\\女\\W_6.WAV"
GIRL_W_5 WAVE "res\\麻将声音\\女\\W_5.WAV"
GIRL_W_4 WAVE "res\\麻将声音\\女\\W_4.WAV"
GIRL_W_3 WAVE "res\\麻将声音\\女\\W_3.WAV"
GIRL_W_2 WAVE "res\\麻将声音\\女\\W_2.WAV"
GIRL_W_1 WAVE "res\\麻将声音\\女\\W_1.WAV"
GIRL_T_9 WAVE "res\\麻将声音\\女\\T_9.WAV"
GIRL_T_8 WAVE "res\\麻将声音\\女\\T_8.WAV"
GIRL_T_7 WAVE "res\\麻将声音\\女\\T_7.WAV"
GIRL_T_6 WAVE "res\\麻将声音\\女\\T_6.WAV"
GIRL_T_5 WAVE "res\\麻将声音\\女\\T_5.WAV"
GIRL_T_4 WAVE "res\\麻将声音\\女\\T_4.WAV"
GIRL_T_3 WAVE "res\\麻将声音\\女\\T_3.WAV"
GIRL_T_2 WAVE "res\\麻将声音\\女\\T_2.WAV"
GIRL_T_1 WAVE "res\\麻将声音\\女\\T_1.WAV"
GIRL_S_9 WAVE "res\\麻将声音\\女\\S_9.WAV"
GIRL_S_8 WAVE "res\\麻将声音\\女\\S_8.WAV"
GIRL_S_7 WAVE "res\\麻将声音\\女\\S_7.WAV"
GIRL_S_6 WAVE "res\\麻将声音\\女\\S_6.WAV"
GIRL_S_4 WAVE "res\\麻将声音\\女\\S_4.WAV"
GIRL_S_3 WAVE "res\\麻将声音\\女\\S_3.WAV"
GIRL_S_2 WAVE "res\\麻将声音\\女\\S_2.WAV"
GIRL_S_1 WAVE "res\\麻将声音\\女\\S_1.WAV"
GIRL_F_1 WAVE "res\\麻将声音\\女\\F_1.WAV"
GIRL_F_2 WAVE "res\\麻将声音\\女\\F_2.WAV"
GIRL_F_3 WAVE "res\\麻将声音\\女\\F_3.WAV"
GIRL_F_4 WAVE "res\\麻将声音\\女\\F_4.WAV"
GIRL_F_5 WAVE "res\\麻将声音\\女\\F_5.WAV"
GIRL_F_6 WAVE "res\\麻将声音\\女\\F_6.WAV"
GIRL_F_7 WAVE "res\\麻将声音\\女\\F_7.WAV"
DRAW_SICE WAVE "res\\麻将声音\\DRAW_SICE.wav"
GIRL_S_5 WAVE "res\\麻将声音\\女\\S_5.WAV"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_OPTION DIALOGEX 0, 0, 169, 94
STYLE DS_SETFONT | WS_POPUP | WS_SYSMENU
FONT 9, "宋体", 400, 0, 0x0
BEGIN
DEFPUSHBUTTON "确定",IDOK,26,75,46,13
PUSHBUTTON "取消",IDCANCEL,95,75,46,13
CONTROL "允许声音效果",IDC_ENABLE_SOUND,"Button",BS_AUTOCHECKBOX |
BS_FLAT | WS_TABSTOP,79,36,64,10
CONTROL "允许旁观",IDC_ENABLE_LOOKON,"Button",BS_AUTOCHECKBOX |
BS_FLAT | WS_TABSTOP,79,48,48,10
GROUPBOX "常规配置",IDC_STATIC,17,24,134,36
ICON IDR_MAINFRAME,IDC_STATIC,32,35,21,21
END
IDD_RESPONSE_LISTEN DIALOGEX 0, 0, 186, 104
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
LTEXT "Static",IDC_STATIC,23,26,140,54
PUSHBUTTON "是",IDOK,31,83,50,14
PUSHBUTTON "否",IDCANCEL,100,83,50,14
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_OPTION, DIALOG
BEGIN
RIGHTMARGIN, 161
BOTTOMMARGIN, 91
END
IDD_RESPONSE_LISTEN, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 179
TOPMARGIN, 7
BOTTOMMARGIN, 97
END
END
#endif // APSTUDIO_INVOKED
#endif // 中文(中华人民共和国) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE 4, 2
#pragma code_page(936)
#include "res\GameClient.rc2" // 非 Microsoft Visual C++ 编辑过的资源
#include "afxres.rc" // 标准组件
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

+ 1255
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.vcproj
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 913
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.vcproj.7.10.old Просмотреть файл

@@ -0,0 +1,913 @@
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="游戏客户端"
ProjectGUID="{F2D70F30-23FC-4973-A798-AED329359B33}"
Keyword="MFCProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../../运行/Debug/ansi/SparrowXZ.exe"
LinkIncremental="2"
GenerateDebugInformation="TRUE"
SubSystem="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Debug\Ansi
copy /y ..\..\..\..\运行\Debug\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Ansi\$(TargetFileName)"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
MinimalRebuild="FALSE"
RuntimeLibrary="2"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../../运行/Release/ansi/SparrowXZ.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Release\Ansi
copy /y ..\..\..\..\运行\Release\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Ansi\$(TargetFileName)"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Debug_Unicode|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="1">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../../运行/Debug/unicode/SparrowXZ.exe"
LinkIncremental="2"
GenerateDebugInformation="TRUE"
SubSystem="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Debug\Unicode
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Unicode\$(TargetFileName)"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release_Unicode|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="1">
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
MinimalRebuild="FALSE"
RuntimeLibrary="2"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../../运行/Release/unicode/SparrowXZ.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Release\Unicode
copy /y ..\..\..\..\运行\Release\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Unicode\$(TargetFileName)"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="源文件"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<File
RelativePath=".\CardControl.cpp">
</File>
<File
RelativePath=".\ControlWnd.cpp">
</File>
<File
RelativePath=".\DirectSound.cpp">
</File>
<File
RelativePath=".\DrawSiceWnd.cpp">
</File>
<File
RelativePath=".\GameClient.cpp">
</File>
<File
RelativePath=".\GameClientEngine.cpp">
</File>
<File
RelativePath=".\GameClientView.cpp">
</File>
<File
RelativePath=".\GameLogic.cpp">
</File>
<File
RelativePath=".\GameOption.cpp">
</File>
<File
RelativePath=".\ScoreControl.cpp">
</File>
<File
RelativePath=".\Stdafx.cpp">
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Debug_Unicode|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release_Unicode|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="头文件"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
<File
RelativePath=".\CardControl.h">
</File>
<File
RelativePath="..\消息定义\CMD_Sparrow.h">
</File>
<File
RelativePath=".\ControlWnd.h">
</File>
<File
RelativePath=".\DirectSound.h">
</File>
<File
RelativePath=".\DrawSiceWnd.h">
</File>
<File
RelativePath=".\GameClient.h">
</File>
<File
RelativePath=".\GameClientEngine.h">
</File>
<File
RelativePath=".\GameClientView.h">
</File>
<File
RelativePath=".\GameLogic.h">
</File>
<File
RelativePath=".\GameOption.h">
</File>
<File
RelativePath=".\Resource.h">
</File>
<File
RelativePath=".\ScoreControl.h">
</File>
<File
RelativePath=".\Stdafx.h">
</File>
</Filter>
<Filter
Name="资源文件"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
<File
RelativePath=".\Res\麻将声音\女\A_chi.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\A_chi.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\A_chi_hu.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\A_chi_hu.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\A_gang.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\A_gang.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\A_peng.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\A_peng.wav">
</File>
<File
RelativePath=".\Res\ACTION_BACK.bmp">
</File>
<File
RelativePath=".\Res\ACTION_EXPLAIN.bmp">
</File>
<File
RelativePath=".\Res\BT_CHIHU.bmp">
</File>
<File
RelativePath=".\Res\BT_GIVEUP.bmp">
</File>
<File
RelativePath=".\Res\BT_LISTEN.bmp">
</File>
<File
RelativePath=".\Res\BT_SCORE_CLOSE.bmp">
</File>
<File
RelativePath=".\Res\BT_START.bmp">
</File>
<File
RelativePath=".\Res\BT_START_TRUSTEE.bmp">
</File>
<File
RelativePath=".\Res\BT_STOP_TRUSTEE.bmp">
</File>
<File
RelativePath=".\Res\CARD_BACK_H.bmp">
</File>
<File
RelativePath=".\Res\CARD_BACK_V.bmp">
</File>
<File
RelativePath=".\Res\CARD_CUR.cur">
</File>
<File
RelativePath=".\Res\CARD_HEAP_DOUBLE_H.bmp">
</File>
<File
RelativePath=".\Res\CARD_HEAP_DOUBLE_V.bmp">
</File>
<File
RelativePath=".\Res\CARD_HEAP_SINGLE_H.bmp">
</File>
<File
RelativePath=".\Res\CARD_HEAP_SINGLE_V.bmp">
</File>
<File
RelativePath=".\Res\CARD_TABLE_BOTTOM.bmp">
</File>
<File
RelativePath=".\Res\CARD_TABLE_LEFT.bmp">
</File>
<File
RelativePath=".\Res\CARD_TABLE_RIGHT.bmp">
</File>
<File
RelativePath=".\Res\CARD_TABLE_TOP.bmp">
</File>
<File
RelativePath=".\Res\CARD_USER_BOTTOM.bmp">
</File>
<File
RelativePath=".\Res\CARD_USER_LEFT.bmp">
</File>
<File
RelativePath=".\Res\CARD_USER_RIGHT.bmp">
</File>
<File
RelativePath=".\Res\CARD_USER_TOP.bmp">
</File>
<File
RelativePath=".\Res\CELL_SCORE.BMP">
</File>
<File
RelativePath=".\Res\CONTROL_BOTTOM.bmp">
</File>
<File
RelativePath=".\Res\CONTROL_MID.bmp">
</File>
<File
RelativePath=".\Res\CONTROL_TOP.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_7.wav">
</File>
<File
RelativePath=".\Res\FAN_PAI.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\Game_end.wav">
</File>
<File
RelativePath=".\Res\GAME_LOGO.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\Game_lose.wav">
</File>
<File
RelativePath=".\Res\麻将声音\Game_lost.wav">
</File>
<File
RelativePath=".\Res\GAME_SCORE.bmp">
</File>
<File
RelativePath=".\Res\GAME_SCORE_FLAG.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\Game_start.wav">
</File>
<File
RelativePath=".\Res\麻将声音\Game_warn.wav">
</File>
<File
RelativePath=".\Res\麻将声音\Game_win.wav">
</File>
<File
RelativePath=".\Res\GameClient.ico">
</File>
<File
RelativePath=".\GameClient.rc">
</File>
<File
RelativePath=".\res\GameClient.rc2">
</File>
<File
RelativePath=".\Res\HUANG_ZHUANG.bmp">
</File>
<File
RelativePath=".\Res\LISTEN_FLAG_H.bmp">
</File>
<File
RelativePath=".\Res\LISTEN_FLAG_V.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\Out_card.wav">
</File>
<File
RelativePath=".\Res\OUT_CARD_TIP.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_8.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_8.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_9.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_9.wav">
</File>
<File
RelativePath=".\Res\SELECT.bmp">
</File>
<File
RelativePath=".\Res\SICE1.bmp">
</File>
<File
RelativePath=".\Res\SICE10.bmp">
</File>
<File
RelativePath=".\Res\SICE11.bmp">
</File>
<File
RelativePath=".\Res\SICE12.bmp">
</File>
<File
RelativePath=".\Res\SICE2.bmp">
</File>
<File
RelativePath=".\Res\SICE3.bmp">
</File>
<File
RelativePath=".\Res\SICE4.bmp">
</File>
<File
RelativePath=".\Res\SICE5.bmp">
</File>
<File
RelativePath=".\Res\SICE6.bmp">
</File>
<File
RelativePath=".\Res\SICE7.bmp">
</File>
<File
RelativePath=".\Res\SICE8.bmp">
</File>
<File
RelativePath=".\Res\SICE9.bmp">
</File>
<File
RelativePath=".\Res\SICE_BACK.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_8.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_8.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_9.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_9.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\Ting.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\Ting.wav">
</File>
<File
RelativePath=".\Res\TRUSTEE.bmp">
</File>
<File
RelativePath=".\Res\USER_ACTION.bmp">
</File>
<File
RelativePath=".\Res\USER_FLAG.bmp">
</File>
<File
RelativePath=".\Res\VIEW_BACK.bmp">
</File>
<File
RelativePath=".\Res\View_center.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_8.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_8.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_9.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_9.wav">
</File>
<File
RelativePath=".\Res\WAIT_TIP.bmp">
</File>
<File
RelativePath=".\Res\WIN_LOSE.bmp">
</File>
<File
RelativePath=".\Res\WIN_ORDER.bmp">
</File>
<File
RelativePath=".\Res\ZUAN_PAI.bmp">
</File>
</Filter>
<File
RelativePath=".\Res\ACTIONANI.png">
</File>
<File
RelativePath=".\Res\ARROW.png">
</File>
<File
RelativePath=".\Res\CARD_HEAP_DOUBLE_BV.png">
</File>
<File
RelativePath=".\Res\CARD_HEAP_DOUBLE_LV.png">
</File>
<File
RelativePath=".\Res\CARD_HEAP_DOUBLE_RV.PNG">
</File>
<File
RelativePath=".\Res\CARD_HEAP_DOUBLE_TV.PNG">
</File>
<File
RelativePath=".\Res\CARD_HEAP_SINGLE_BV.png">
</File>
<File
RelativePath=".\Res\CARD_HEAP_SINGLE_LV.png">
</File>
<File
RelativePath=".\Res\CARD_HEAP_SINGLE_RV.PNG">
</File>
<File
RelativePath=".\Res\CARD_HEAP_SINGLE_TV.png">
</File>
<File
RelativePath=".\Res\CARD_TABLE_BOTTOM.PNG">
</File>
<File
RelativePath=".\Res\CARD_TABLE_LEFT.png">
</File>
<File
RelativePath=".\Res\CARD_TABLE_RIGHT.png">
</File>
<File
RelativePath=".\Res\CARD_TABLE_TOP.png">
</File>
<File
RelativePath=".\Res\CARD_USER_BOTTOM.png">
</File>
<File
RelativePath=".\Res\CARD_USER_LEFT.png">
</File>
<File
RelativePath=".\Res\CARD_USER_RIGHT.png">
</File>
<File
RelativePath=".\Res\CARD_USER_TOP.png">
</File>
<File
RelativePath=".\Res\CELL_SCORE.PNG">
</File>
<File
RelativePath=".\Res\麻将声音\男\Chi.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\Chi.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\Chi_hu.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\Chi_hu.wav">
</File>
<File
RelativePath=".\Res\DISC.png">
</File>
<File
RelativePath=".\Res\麻将声音\DRAW_SICE.wav">
</File>
<File
RelativePath=".\Res\GAME_LOST.PNG">
</File>
<File
RelativePath=".\Res\GAME_WIN.PNG">
</File>
<File
RelativePath=".\Res\麻将声音\男\Gang.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\Gang.wav">
</File>
<File
RelativePath=".\Res\GUA_FENG.PNG">
</File>
<File
RelativePath=".\Res\NUM_LOST.PNG">
</File>
<File
RelativePath=".\Res\NUM_ORDER.PNG">
</File>
<File
RelativePath=".\Res\NUM_WIN.PNG">
</File>
<File
RelativePath=".\Res\麻将声音\女\Peng.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\Peng.wav">
</File>
<File
RelativePath=".\Res\png1.png">
</File>
<File
RelativePath=".\Res\Trustee.png">
</File>
<File
RelativePath=".\Res\XIAO_YU.PNG">
</File>
</Files>
<Globals>
<Global
Name="RESOURCE_FILE"
Value="GameClient.rc"/>
</Globals>
</VisualStudioProject>

+ 121
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.vcproj.ZGC-20110418DJO.Administrator.user Просмотреть файл

@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioUserFile
ProjectType="Visual C++"
Version="8.00"
ShowAllFiles="false"
>
<Configurations>
<Configuration
Name="Debug|Win32"
>
<DebugSettings
Command="$(TargetPath)"
WorkingDirectory=""
CommandArguments=""
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="ZGC-20110418DJO"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment=""
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
>
<DebugSettings
Command="$(TargetPath)"
WorkingDirectory=""
CommandArguments=""
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="ZGC-20110418DJO"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment=""
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
<Configuration
Name="Debug_Unicode|Win32"
>
<DebugSettings
Command="$(TargetPath)"
WorkingDirectory=""
CommandArguments=""
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="ZGC-20110418DJO"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment=""
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
<Configuration
Name="Release_Unicode|Win32"
>
<DebugSettings
Command="$(TargetPath)"
WorkingDirectory=""
CommandArguments=""
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="ZGC-20110418DJO"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment=""
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
</Configurations>
</VisualStudioUserFile>

+ 462
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.vcxproj Просмотреть файл

@@ -0,0 +1,462 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug_Unicode|Win32">
<Configuration>Debug_Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Unicode|Win32">
<Configuration>Release_Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>游戏客户端</ProjectName>
<ProjectGuid>{8AE42F19-68DA-44F9-9D8C-2AB90269691D}</ProjectGuid>
<RootNamespace>游戏客户端</RootNamespace>
<Keyword>MFCProj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Debug\</OutDir>
<IntDir>Debug\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Release\</OutDir>
<IntDir>Release\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>SparrowXZ</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../../运行/Debug/ansi/SparrowXZ.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\客户端组件\Debug\Ansi
copy /y ..\..\..\..\运行\Debug\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Ansi\$(TargetFileName)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../../运行/Release/ansi/SparrowXZ.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\客户端组件\Release\Ansi
copy /y ..\..\..\..\运行\Release\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Ansi\$(TargetFileName)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../../运行/Debug/unicode/SparrowXZ.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir ..\..\..\..\发布组件\客户端组件\Debug\Unicode
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\..\发布组件\客户端组件\Debug\Unicode\$(TargetFileName)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../../运行/Release/unicode/SparrowXZ.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\客户端组件\Release\Unicode
copy /y ..\..\..\..\运行\Release\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Unicode\$(TargetFileName)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="CardControl.cpp" />
<ClCompile Include="ControlWnd.cpp" />
<ClCompile Include="DirectSound.cpp" />
<ClCompile Include="DrawSiceWnd.cpp" />
<ClCompile Include="GameClient.cpp" />
<ClCompile Include="GameClientEngine.cpp" />
<ClCompile Include="GameClientView.cpp" />
<ClCompile Include="GameLogic.cpp" />
<ClCompile Include="GameOption.cpp" />
<ClCompile Include="ScoreControl.cpp" />
<ClCompile Include="Stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="CardControl.h" />
<ClInclude Include="..\消息定义\CMD_Sparrow.h" />
<ClInclude Include="ControlWnd.h" />
<ClInclude Include="DirectSound.h" />
<ClInclude Include="DrawSiceWnd.h" />
<ClInclude Include="GameClient.h" />
<ClInclude Include="GameClientEngine.h" />
<ClInclude Include="GameClientView.h" />
<ClInclude Include="GameLogic.h" />
<ClInclude Include="GameOption.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="ScoreControl.h" />
<ClInclude Include="Stdafx.h" />
</ItemGroup>
<ItemGroup>
<Media Include="Res\麻将声音\女\A_chi.wav" />
<Media Include="Res\麻将声音\男\A_chi.wav" />
<Media Include="Res\麻将声音\女\A_chi_hu.wav" />
<Media Include="Res\麻将声音\男\A_chi_hu.wav" />
<Media Include="Res\麻将声音\男\A_gang.wav" />
<Media Include="Res\麻将声音\女\A_gang.wav" />
<Media Include="Res\麻将声音\男\A_peng.wav" />
<Media Include="Res\麻将声音\女\A_peng.wav" />
<Media Include="Res\麻将声音\男\F_1.wav" />
<Media Include="Res\麻将声音\女\F_1.wav" />
<Media Include="Res\麻将声音\男\F_2.wav" />
<Media Include="Res\麻将声音\女\F_2.wav" />
<Media Include="Res\麻将声音\女\F_3.wav" />
<Media Include="Res\麻将声音\男\F_3.wav" />
<Media Include="Res\麻将声音\男\F_4.wav" />
<Media Include="Res\麻将声音\女\F_4.wav" />
<Media Include="Res\麻将声音\男\F_5.wav" />
<Media Include="Res\麻将声音\女\F_5.wav" />
<Media Include="Res\麻将声音\男\F_6.wav" />
<Media Include="Res\麻将声音\女\F_6.wav" />
<Media Include="Res\麻将声音\女\F_7.wav" />
<Media Include="Res\麻将声音\男\F_7.wav" />
<Media Include="Res\麻将声音\Game_end.wav" />
<Media Include="Res\麻将声音\Game_lose.wav" />
<Media Include="Res\麻将声音\Game_lost.wav" />
<Media Include="Res\麻将声音\Game_start.wav" />
<Media Include="Res\麻将声音\Game_warn.wav" />
<Media Include="Res\麻将声音\Game_win.wav" />
<Media Include="Res\麻将声音\Out_card.wav" />
<Media Include="Res\麻将声音\女\S_1.wav" />
<Media Include="Res\麻将声音\男\S_1.wav" />
<Media Include="Res\麻将声音\男\S_2.wav" />
<Media Include="Res\麻将声音\女\S_2.wav" />
<Media Include="Res\麻将声音\女\S_3.wav" />
<Media Include="Res\麻将声音\男\S_3.wav" />
<Media Include="Res\麻将声音\男\S_4.wav" />
<Media Include="Res\麻将声音\女\S_4.wav" />
<Media Include="Res\麻将声音\男\S_5.wav" />
<Media Include="Res\麻将声音\女\S_5.wav" />
<Media Include="Res\麻将声音\女\S_6.wav" />
<Media Include="Res\麻将声音\男\S_6.wav" />
<Media Include="Res\麻将声音\男\S_7.wav" />
<Media Include="Res\麻将声音\女\S_7.wav" />
<Media Include="Res\麻将声音\男\S_8.wav" />
<Media Include="Res\麻将声音\女\S_8.wav" />
<Media Include="Res\麻将声音\男\S_9.wav" />
<Media Include="Res\麻将声音\女\S_9.wav" />
<Media Include="Res\麻将声音\女\T_1.wav" />
<Media Include="Res\麻将声音\男\T_1.wav" />
<Media Include="Res\麻将声音\女\T_2.wav" />
<Media Include="Res\麻将声音\男\T_2.wav" />
<Media Include="Res\麻将声音\男\T_3.wav" />
<Media Include="Res\麻将声音\女\T_3.wav" />
<Media Include="Res\麻将声音\女\T_4.wav" />
<Media Include="Res\麻将声音\男\T_4.wav" />
<Media Include="Res\麻将声音\男\T_5.wav" />
<Media Include="Res\麻将声音\女\T_5.wav" />
<Media Include="Res\麻将声音\男\T_6.wav" />
<Media Include="Res\麻将声音\女\T_6.wav" />
<Media Include="Res\麻将声音\男\T_7.wav" />
<Media Include="Res\麻将声音\女\T_7.wav" />
<Media Include="Res\麻将声音\女\T_8.wav" />
<Media Include="Res\麻将声音\男\T_8.wav" />
<Media Include="Res\麻将声音\男\T_9.wav" />
<Media Include="Res\麻将声音\女\T_9.wav" />
<Media Include="Res\麻将声音\男\Ting.wav" />
<Media Include="Res\麻将声音\女\Ting.wav" />
<Media Include="Res\麻将声音\女\W_1.wav" />
<Media Include="Res\麻将声音\男\W_1.wav" />
<Media Include="Res\麻将声音\女\W_2.wav" />
<Media Include="Res\麻将声音\男\W_2.wav" />
<Media Include="Res\麻将声音\男\W_3.wav" />
<Media Include="Res\麻将声音\女\W_3.wav" />
<Media Include="Res\麻将声音\男\W_4.wav" />
<Media Include="Res\麻将声音\女\W_4.wav" />
<Media Include="Res\麻将声音\男\W_5.wav" />
<Media Include="Res\麻将声音\女\W_5.wav" />
<Media Include="Res\麻将声音\男\W_6.wav" />
<Media Include="Res\麻将声音\女\W_6.wav" />
<Media Include="Res\麻将声音\男\W_7.wav" />
<Media Include="Res\麻将声音\女\W_7.wav" />
<Media Include="Res\麻将声音\男\W_8.wav" />
<Media Include="Res\麻将声音\女\W_8.wav" />
<Media Include="Res\麻将声音\女\W_9.wav" />
<Media Include="Res\麻将声音\男\W_9.wav" />
<Media Include="Res\麻将声音\男\Chi.wav" />
<Media Include="Res\麻将声音\女\Chi.wav" />
<Media Include="Res\麻将声音\女\Chi_hu.wav" />
<Media Include="Res\麻将声音\男\Chi_hu.wav" />
<Media Include="Res\麻将声音\DRAW_SICE.wav" />
<Media Include="Res\麻将声音\男\Gang.wav" />
<Media Include="Res\麻将声音\女\Gang.wav" />
<Media Include="Res\麻将声音\女\Peng.wav" />
<Media Include="Res\麻将声音\男\Peng.wav" />
</ItemGroup>
<ItemGroup>
<Image Include="Res\ACTION_BACK.bmp" />
<Image Include="Res\ACTION_EXPLAIN.bmp" />
<Image Include="Res\BT_CHIHU.bmp" />
<Image Include="Res\BT_GIVEUP.bmp" />
<Image Include="Res\BT_LISTEN.bmp" />
<Image Include="Res\BT_SCORE_CLOSE.bmp" />
<Image Include="Res\BT_START.bmp" />
<Image Include="Res\BT_START_TRUSTEE.bmp" />
<Image Include="Res\BT_STOP_TRUSTEE.bmp" />
<Image Include="Res\CARD_BACK_H.bmp" />
<Image Include="Res\CARD_BACK_V.bmp" />
<Image Include="Res\CARD_HEAP_DOUBLE_H.bmp" />
<Image Include="Res\CARD_HEAP_DOUBLE_V.bmp" />
<Image Include="Res\CARD_HEAP_SINGLE_H.bmp" />
<Image Include="Res\CARD_HEAP_SINGLE_V.bmp" />
<Image Include="Res\CARD_TABLE_BOTTOM.bmp" />
<Image Include="Res\CARD_TABLE_LEFT.bmp" />
<Image Include="Res\CARD_TABLE_RIGHT.bmp" />
<Image Include="Res\CARD_TABLE_TOP.bmp" />
<Image Include="Res\CARD_USER_BOTTOM.bmp" />
<Image Include="Res\CARD_USER_LEFT.bmp" />
<Image Include="Res\CARD_USER_RIGHT.bmp" />
<Image Include="Res\CARD_USER_TOP.bmp" />
<Image Include="Res\CELL_SCORE.BMP" />
<Image Include="Res\CONTROL_BOTTOM.bmp" />
<Image Include="Res\CONTROL_MID.bmp" />
<Image Include="Res\CONTROL_TOP.bmp" />
<Image Include="Res\FAN_PAI.bmp" />
<Image Include="Res\GAME_LOGO.bmp" />
<Image Include="Res\GAME_SCORE.bmp" />
<Image Include="Res\GAME_SCORE_FLAG.bmp" />
<Image Include="Res\GameClient.ico" />
<Image Include="Res\HUANG_ZHUANG.bmp" />
<Image Include="Res\LISTEN_FLAG_H.bmp" />
<Image Include="Res\LISTEN_FLAG_V.bmp" />
<Image Include="Res\OUT_CARD_TIP.bmp" />
<Image Include="Res\SELECT.bmp" />
<Image Include="Res\SICE1.bmp" />
<Image Include="Res\SICE10.bmp" />
<Image Include="Res\SICE11.bmp" />
<Image Include="Res\SICE12.bmp" />
<Image Include="Res\SICE2.bmp" />
<Image Include="Res\SICE3.bmp" />
<Image Include="Res\SICE4.bmp" />
<Image Include="Res\SICE5.bmp" />
<Image Include="Res\SICE6.bmp" />
<Image Include="Res\SICE7.bmp" />
<Image Include="Res\SICE8.bmp" />
<Image Include="Res\SICE9.bmp" />
<Image Include="Res\SICE_BACK.bmp" />
<Image Include="Res\TRUSTEE.bmp" />
<Image Include="Res\USER_ACTION.bmp" />
<Image Include="Res\USER_FLAG.bmp" />
<Image Include="Res\VIEW_BACK.bmp" />
<Image Include="Res\View_center.bmp" />
<Image Include="Res\WAIT_TIP.bmp" />
<Image Include="Res\WIN_LOSE.bmp" />
<Image Include="Res\WIN_ORDER.bmp" />
<Image Include="Res\ZUAN_PAI.bmp" />
<Image Include="Res\ACTIONANI.png" />
<Image Include="Res\ARROW.png" />
<Image Include="Res\CARD_HEAP_DOUBLE_BV.png" />
<Image Include="Res\CARD_HEAP_DOUBLE_LV.png" />
<Image Include="Res\CARD_HEAP_DOUBLE_RV.PNG" />
<Image Include="Res\CARD_HEAP_DOUBLE_TV.PNG" />
<Image Include="Res\CARD_HEAP_SINGLE_BV.png" />
<Image Include="Res\CARD_HEAP_SINGLE_LV.png" />
<Image Include="Res\CARD_HEAP_SINGLE_RV.PNG" />
<Image Include="Res\CARD_HEAP_SINGLE_TV.png" />
<Image Include="Res\CARD_TABLE_BOTTOM.PNG" />
<Image Include="Res\CARD_TABLE_LEFT.png" />
<Image Include="Res\CARD_TABLE_RIGHT.png" />
<Image Include="Res\CARD_TABLE_TOP.png" />
<Image Include="Res\CARD_USER_BOTTOM.png" />
<Image Include="Res\CARD_USER_LEFT.png" />
<Image Include="Res\CARD_USER_RIGHT.png" />
<Image Include="Res\CARD_USER_TOP.png" />
<Image Include="Res\CELL_SCORE.PNG" />
<Image Include="Res\DISC.png" />
<Image Include="Res\GAME_LOST.PNG" />
<Image Include="Res\GAME_WIN.PNG" />
<Image Include="Res\GUA_FENG.PNG" />
<Image Include="Res\NUM_LOST.PNG" />
<Image Include="Res\NUM_ORDER.PNG" />
<Image Include="Res\NUM_WIN.PNG" />
<Image Include="Res\png1.png" />
<Image Include="Res\Trustee.png" />
<Image Include="Res\XIAO_YU.PNG" />
</ItemGroup>
<ItemGroup>
<None Include="Res\CARD_CUR.cur" />
<None Include="res\GameClient.rc2" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="GameClient.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties RESOURCE_FILE="GameClient.rc" />
</VisualStudio>
</ProjectExtensions>
</Project>

+ 580
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.vcxproj.filters Просмотреть файл

@@ -0,0 +1,580 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="资源文件">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="CardControl.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="ControlWnd.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="DirectSound.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="DrawSiceWnd.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="GameClient.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="GameClientEngine.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="GameClientView.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="GameLogic.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="GameOption.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="ScoreControl.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Stdafx.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="CardControl.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\消息定义\CMD_Sparrow.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="ControlWnd.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="DirectSound.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="DrawSiceWnd.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="GameClient.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="GameClientEngine.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="GameClientView.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="GameLogic.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="GameOption.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="Resource.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="ScoreControl.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="Stdafx.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Media Include="Res\麻将声音\女\A_chi.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\A_chi.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\A_chi_hu.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\A_chi_hu.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\A_gang.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\A_gang.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\A_peng.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\A_peng.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Game_end.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Game_lose.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Game_lost.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Game_start.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Game_warn.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Game_win.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Out_card.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_8.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_8.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_9.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_9.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_8.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_8.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_9.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_9.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\Ting.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\Ting.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_8.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_8.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_9.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_9.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\Chi.wav" />
<Media Include="Res\麻将声音\女\Chi.wav" />
<Media Include="Res\麻将声音\女\Chi_hu.wav" />
<Media Include="Res\麻将声音\男\Chi_hu.wav" />
<Media Include="Res\麻将声音\DRAW_SICE.wav" />
<Media Include="Res\麻将声音\男\Gang.wav" />
<Media Include="Res\麻将声音\女\Gang.wav" />
<Media Include="Res\麻将声音\女\Peng.wav" />
<Media Include="Res\麻将声音\男\Peng.wav" />
</ItemGroup>
<ItemGroup>
<Image Include="Res\ACTION_BACK.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\ACTION_EXPLAIN.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_CHIHU.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_GIVEUP.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_LISTEN.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_SCORE_CLOSE.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_START.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_START_TRUSTEE.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_STOP_TRUSTEE.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_BACK_H.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_BACK_V.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_HEAP_DOUBLE_H.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_HEAP_DOUBLE_V.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_HEAP_SINGLE_H.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_HEAP_SINGLE_V.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_TABLE_BOTTOM.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_TABLE_LEFT.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_TABLE_RIGHT.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_TABLE_TOP.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_USER_BOTTOM.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_USER_LEFT.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_USER_RIGHT.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_USER_TOP.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CELL_SCORE.BMP">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CONTROL_BOTTOM.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CONTROL_MID.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CONTROL_TOP.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\FAN_PAI.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\GAME_LOGO.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\GAME_SCORE.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\GAME_SCORE_FLAG.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\GameClient.ico">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\HUANG_ZHUANG.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\LISTEN_FLAG_H.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\LISTEN_FLAG_V.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\OUT_CARD_TIP.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SELECT.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE1.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE10.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE11.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE12.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE2.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE3.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE4.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE5.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE6.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE7.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE8.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE9.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE_BACK.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\TRUSTEE.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\USER_ACTION.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\USER_FLAG.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\VIEW_BACK.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\View_center.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\WAIT_TIP.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\WIN_LOSE.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\WIN_ORDER.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\ZUAN_PAI.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\ACTIONANI.png" />
<Image Include="Res\ARROW.png" />
<Image Include="Res\CARD_HEAP_DOUBLE_BV.png" />
<Image Include="Res\CARD_HEAP_DOUBLE_LV.png" />
<Image Include="Res\CARD_HEAP_DOUBLE_RV.PNG" />
<Image Include="Res\CARD_HEAP_DOUBLE_TV.PNG" />
<Image Include="Res\CARD_HEAP_SINGLE_BV.png" />
<Image Include="Res\CARD_HEAP_SINGLE_LV.png" />
<Image Include="Res\CARD_HEAP_SINGLE_RV.PNG" />
<Image Include="Res\CARD_HEAP_SINGLE_TV.png" />
<Image Include="Res\CARD_TABLE_BOTTOM.PNG" />
<Image Include="Res\CARD_TABLE_LEFT.png" />
<Image Include="Res\CARD_TABLE_RIGHT.png" />
<Image Include="Res\CARD_TABLE_TOP.png" />
<Image Include="Res\CARD_USER_BOTTOM.png" />
<Image Include="Res\CARD_USER_LEFT.png" />
<Image Include="Res\CARD_USER_RIGHT.png" />
<Image Include="Res\CARD_USER_TOP.png" />
<Image Include="Res\CELL_SCORE.PNG" />
<Image Include="Res\DISC.png" />
<Image Include="Res\GAME_LOST.PNG" />
<Image Include="Res\GAME_WIN.PNG" />
<Image Include="Res\GUA_FENG.PNG" />
<Image Include="Res\NUM_LOST.PNG" />
<Image Include="Res\NUM_ORDER.PNG" />
<Image Include="Res\NUM_WIN.PNG" />
<Image Include="Res\png1.png" />
<Image Include="Res\Trustee.png" />
<Image Include="Res\XIAO_YU.PNG" />
</ItemGroup>
<ItemGroup>
<None Include="Res\CARD_CUR.cur">
<Filter>资源文件</Filter>
</None>
<None Include="res\GameClient.rc2">
<Filter>资源文件</Filter>
</None>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="GameClient.rc">
<Filter>资源文件</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

+ 4
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient.vcxproj.user Просмотреть файл

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

+ 913
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient03.vcproj Просмотреть файл

@@ -0,0 +1,913 @@
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="游戏客户端"
ProjectGUID="{F2D70F30-23FC-4973-A798-AED329359B33}"
Keyword="MFCProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../../运行/Debug/ansi/SparrowXZ.exe"
LinkIncremental="2"
GenerateDebugInformation="TRUE"
SubSystem="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Debug\Ansi
copy /y ..\..\..\..\运行\Debug\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Ansi\$(TargetFileName)"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
MinimalRebuild="FALSE"
RuntimeLibrary="2"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../../运行/Release/ansi/SparrowXZ.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Release\Ansi
copy /y ..\..\..\..\运行\Release\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Ansi\$(TargetFileName)"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Debug_Unicode|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="1">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../../运行/Debug/unicode/SparrowXZ.exe"
LinkIncremental="2"
GenerateDebugInformation="TRUE"
SubSystem="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Debug\Unicode
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Unicode\$(TargetFileName)"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release_Unicode|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="1">
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
MinimalRebuild="FALSE"
RuntimeLibrary="2"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../../运行/Release/unicode/SparrowXZ.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="FALSE"/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Release\Unicode
copy /y ..\..\..\..\运行\Release\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Unicode\$(TargetFileName)"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="源文件"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<File
RelativePath=".\CardControl.cpp">
</File>
<File
RelativePath=".\ControlWnd.cpp">
</File>
<File
RelativePath=".\DirectSound.cpp">
</File>
<File
RelativePath=".\DrawSiceWnd.cpp">
</File>
<File
RelativePath=".\GameClient.cpp">
</File>
<File
RelativePath=".\GameClientEngine.cpp">
</File>
<File
RelativePath=".\GameClientView.cpp">
</File>
<File
RelativePath=".\GameLogic.cpp">
</File>
<File
RelativePath=".\GameOption.cpp">
</File>
<File
RelativePath=".\ScoreControl.cpp">
</File>
<File
RelativePath=".\Stdafx.cpp">
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Debug_Unicode|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release_Unicode|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="头文件"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
<File
RelativePath=".\CardControl.h">
</File>
<File
RelativePath="..\消息定义\CMD_Sparrow.h">
</File>
<File
RelativePath=".\ControlWnd.h">
</File>
<File
RelativePath=".\DirectSound.h">
</File>
<File
RelativePath=".\DrawSiceWnd.h">
</File>
<File
RelativePath=".\GameClient.h">
</File>
<File
RelativePath=".\GameClientEngine.h">
</File>
<File
RelativePath=".\GameClientView.h">
</File>
<File
RelativePath=".\GameLogic.h">
</File>
<File
RelativePath=".\GameOption.h">
</File>
<File
RelativePath=".\Resource.h">
</File>
<File
RelativePath=".\ScoreControl.h">
</File>
<File
RelativePath=".\Stdafx.h">
</File>
</Filter>
<Filter
Name="资源文件"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
<File
RelativePath=".\Res\麻将声音\女\A_chi.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\A_chi.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\A_chi_hu.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\A_chi_hu.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\A_gang.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\A_gang.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\A_peng.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\A_peng.wav">
</File>
<File
RelativePath=".\Res\ACTION_BACK.bmp">
</File>
<File
RelativePath=".\Res\ACTION_EXPLAIN.bmp">
</File>
<File
RelativePath=".\Res\BT_CHIHU.bmp">
</File>
<File
RelativePath=".\Res\BT_GIVEUP.bmp">
</File>
<File
RelativePath=".\Res\BT_LISTEN.bmp">
</File>
<File
RelativePath=".\Res\BT_SCORE_CLOSE.bmp">
</File>
<File
RelativePath=".\Res\BT_START.bmp">
</File>
<File
RelativePath=".\Res\BT_START_TRUSTEE.bmp">
</File>
<File
RelativePath=".\Res\BT_STOP_TRUSTEE.bmp">
</File>
<File
RelativePath=".\Res\CARD_BACK_H.bmp">
</File>
<File
RelativePath=".\Res\CARD_BACK_V.bmp">
</File>
<File
RelativePath=".\Res\CARD_CUR.cur">
</File>
<File
RelativePath=".\Res\CARD_HEAP_DOUBLE_H.bmp">
</File>
<File
RelativePath=".\Res\CARD_HEAP_DOUBLE_V.bmp">
</File>
<File
RelativePath=".\Res\CARD_HEAP_SINGLE_H.bmp">
</File>
<File
RelativePath=".\Res\CARD_HEAP_SINGLE_V.bmp">
</File>
<File
RelativePath=".\Res\CARD_TABLE_BOTTOM.bmp">
</File>
<File
RelativePath=".\Res\CARD_TABLE_LEFT.bmp">
</File>
<File
RelativePath=".\Res\CARD_TABLE_RIGHT.bmp">
</File>
<File
RelativePath=".\Res\CARD_TABLE_TOP.bmp">
</File>
<File
RelativePath=".\Res\CARD_USER_BOTTOM.bmp">
</File>
<File
RelativePath=".\Res\CARD_USER_LEFT.bmp">
</File>
<File
RelativePath=".\Res\CARD_USER_RIGHT.bmp">
</File>
<File
RelativePath=".\Res\CARD_USER_TOP.bmp">
</File>
<File
RelativePath=".\Res\CELL_SCORE.BMP">
</File>
<File
RelativePath=".\Res\CONTROL_BOTTOM.bmp">
</File>
<File
RelativePath=".\Res\CONTROL_MID.bmp">
</File>
<File
RelativePath=".\Res\CONTROL_TOP.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\F_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\F_7.wav">
</File>
<File
RelativePath=".\Res\FAN_PAI.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\Game_end.wav">
</File>
<File
RelativePath=".\Res\GAME_LOGO.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\Game_lose.wav">
</File>
<File
RelativePath=".\Res\麻将声音\Game_lost.wav">
</File>
<File
RelativePath=".\Res\GAME_SCORE.bmp">
</File>
<File
RelativePath=".\Res\GAME_SCORE_FLAG.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\Game_start.wav">
</File>
<File
RelativePath=".\Res\麻将声音\Game_warn.wav">
</File>
<File
RelativePath=".\Res\麻将声音\Game_win.wav">
</File>
<File
RelativePath=".\Res\GameClient.ico">
</File>
<File
RelativePath=".\GameClient.rc">
</File>
<File
RelativePath=".\res\GameClient.rc2">
</File>
<File
RelativePath=".\Res\HUANG_ZHUANG.bmp">
</File>
<File
RelativePath=".\Res\LISTEN_FLAG_H.bmp">
</File>
<File
RelativePath=".\Res\LISTEN_FLAG_V.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\Out_card.wav">
</File>
<File
RelativePath=".\Res\OUT_CARD_TIP.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_8.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_8.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\S_9.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\S_9.wav">
</File>
<File
RelativePath=".\Res\SELECT.bmp">
</File>
<File
RelativePath=".\Res\SICE1.bmp">
</File>
<File
RelativePath=".\Res\SICE10.bmp">
</File>
<File
RelativePath=".\Res\SICE11.bmp">
</File>
<File
RelativePath=".\Res\SICE12.bmp">
</File>
<File
RelativePath=".\Res\SICE2.bmp">
</File>
<File
RelativePath=".\Res\SICE3.bmp">
</File>
<File
RelativePath=".\Res\SICE4.bmp">
</File>
<File
RelativePath=".\Res\SICE5.bmp">
</File>
<File
RelativePath=".\Res\SICE6.bmp">
</File>
<File
RelativePath=".\Res\SICE7.bmp">
</File>
<File
RelativePath=".\Res\SICE8.bmp">
</File>
<File
RelativePath=".\Res\SICE9.bmp">
</File>
<File
RelativePath=".\Res\SICE_BACK.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_8.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_8.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\T_9.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\T_9.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\Ting.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\Ting.wav">
</File>
<File
RelativePath=".\Res\TRUSTEE.bmp">
</File>
<File
RelativePath=".\Res\USER_ACTION.bmp">
</File>
<File
RelativePath=".\Res\USER_FLAG.bmp">
</File>
<File
RelativePath=".\Res\VIEW_BACK.bmp">
</File>
<File
RelativePath=".\Res\View_center.bmp">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_1.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_2.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_3.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_4.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_5.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_6.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_7.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_8.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_8.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\W_9.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\W_9.wav">
</File>
<File
RelativePath=".\Res\WAIT_TIP.bmp">
</File>
<File
RelativePath=".\Res\WIN_LOSE.bmp">
</File>
<File
RelativePath=".\Res\WIN_ORDER.bmp">
</File>
<File
RelativePath=".\Res\ZUAN_PAI.bmp">
</File>
</Filter>
<File
RelativePath=".\Res\ACTIONANI.png">
</File>
<File
RelativePath=".\Res\ARROW.png">
</File>
<File
RelativePath=".\Res\CARD_HEAP_DOUBLE_BV.png">
</File>
<File
RelativePath=".\Res\CARD_HEAP_DOUBLE_LV.png">
</File>
<File
RelativePath=".\Res\CARD_HEAP_DOUBLE_RV.PNG">
</File>
<File
RelativePath=".\Res\CARD_HEAP_DOUBLE_TV.PNG">
</File>
<File
RelativePath=".\Res\CARD_HEAP_SINGLE_BV.png">
</File>
<File
RelativePath=".\Res\CARD_HEAP_SINGLE_LV.png">
</File>
<File
RelativePath=".\Res\CARD_HEAP_SINGLE_RV.PNG">
</File>
<File
RelativePath=".\Res\CARD_HEAP_SINGLE_TV.png">
</File>
<File
RelativePath=".\Res\CARD_TABLE_BOTTOM.PNG">
</File>
<File
RelativePath=".\Res\CARD_TABLE_LEFT.png">
</File>
<File
RelativePath=".\Res\CARD_TABLE_RIGHT.png">
</File>
<File
RelativePath=".\Res\CARD_TABLE_TOP.png">
</File>
<File
RelativePath=".\Res\CARD_USER_BOTTOM.png">
</File>
<File
RelativePath=".\Res\CARD_USER_LEFT.png">
</File>
<File
RelativePath=".\Res\CARD_USER_RIGHT.png">
</File>
<File
RelativePath=".\Res\CARD_USER_TOP.png">
</File>
<File
RelativePath=".\Res\CELL_SCORE.PNG">
</File>
<File
RelativePath=".\Res\麻将声音\男\Chi.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\Chi.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\Chi_hu.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\Chi_hu.wav">
</File>
<File
RelativePath=".\Res\DISC.png">
</File>
<File
RelativePath=".\Res\麻将声音\DRAW_SICE.wav">
</File>
<File
RelativePath=".\Res\GAME_LOST.PNG">
</File>
<File
RelativePath=".\Res\GAME_WIN.PNG">
</File>
<File
RelativePath=".\Res\麻将声音\男\Gang.wav">
</File>
<File
RelativePath=".\Res\麻将声音\女\Gang.wav">
</File>
<File
RelativePath=".\Res\GUA_FENG.PNG">
</File>
<File
RelativePath=".\Res\NUM_LOST.PNG">
</File>
<File
RelativePath=".\Res\NUM_ORDER.PNG">
</File>
<File
RelativePath=".\Res\NUM_WIN.PNG">
</File>
<File
RelativePath=".\Res\麻将声音\女\Peng.wav">
</File>
<File
RelativePath=".\Res\麻将声音\男\Peng.wav">
</File>
<File
RelativePath=".\Res\png1.png">
</File>
<File
RelativePath=".\Res\Trustee.png">
</File>
<File
RelativePath=".\Res\XIAO_YU.PNG">
</File>
</Files>
<Globals>
<Global
Name="RESOURCE_FILE"
Value="GameClient.rc"/>
</Globals>
</VisualStudioProject>

+ 458
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient03.vcxproj Просмотреть файл

@@ -0,0 +1,458 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug_Unicode|Win32">
<Configuration>Debug_Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Unicode|Win32">
<Configuration>Release_Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>游戏客户端</ProjectName>
<ProjectGuid>{F2D70F30-23FC-4973-A798-AED329359B33}</ProjectGuid>
<Keyword>MFCProj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>14.0.25123.0</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Debug\</OutDir>
<IntDir>Debug\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Release\</OutDir>
<IntDir>Release\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<IncludePath>C:\game\qipai\trunk\whjd\游戏组件\开发库\DirectX\include;C:\game\qipai\trunk\whjd\游戏组件\开发库;C:\game\qipai\trunk\whjd\游戏组件\开发库\Include;$(IncludePath)</IncludePath>
<TargetName>SparrowXZ</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<IncludePath>C:\game\qipai\trunk\whjd\游戏组件\开发库\DirectX\include;C:\game\qipai\trunk\whjd\游戏组件\开发库;C:\game\qipai\trunk\whjd\游戏组件\开发库\Include;$(IncludePath)</IncludePath>
<LibraryPath>C:\game\qipai\trunk\whjd\游戏组件\开发库\Lib;C:\game\qipai\trunk\whjd\游戏组件\开发库\DirectX\lib;C:\game\qipai\trunk\whjd\系统模块\链接库\unicode;$(LibraryPath)</LibraryPath>
<TargetName>SparrowXZ</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>../../../../运行/Debug/ansi/SparrowXZ.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\客户端组件\Debug\Ansi
copy /y ..\..\..\..\运行\Debug\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Ansi\$(TargetFileName)</Command>
</PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>../../../../运行/Release/ansi/SparrowXZ.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\客户端组件\Release\Ansi
copy /y ..\..\..\..\运行\Release\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Ansi\$(TargetFileName)</Command>
</PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_NO_DISPATCHEX_GUIDS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>../../../../运行/Debug/Unicode/SparrowXZ.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\客户端组件\Debug\Unicode
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Unicode\$(TargetFileName)</Command>
</PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_NO_DISPATCHEX_GUIDS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>../../../../运行/Release/unicode/SparrowXZ.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\客户端组件\Release\Unicode
copy /y ..\..\..\..\运行\Release\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Unicode\$(TargetFileName)</Command>
</PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="CardControl.cpp" />
<ClCompile Include="ControlWnd.cpp" />
<ClCompile Include="DirectSound.cpp" />
<ClCompile Include="DrawSiceWnd.cpp" />
<ClCompile Include="GameClient.cpp" />
<ClCompile Include="GameClientEngine.cpp" />
<ClCompile Include="GameClientView.cpp" />
<ClCompile Include="GameLogic.cpp" />
<ClCompile Include="GameOption.cpp" />
<ClCompile Include="ScoreControl.cpp" />
<ClCompile Include="Stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\消息定义\CMD_Sparrow.h" />
<ClInclude Include="CardControl.h" />
<ClInclude Include="ControlWnd.h" />
<ClInclude Include="DirectSound.h" />
<ClInclude Include="DrawSiceWnd.h" />
<ClInclude Include="GameClient.h" />
<ClInclude Include="GameClientEngine.h" />
<ClInclude Include="GameClientView.h" />
<ClInclude Include="GameLogic.h" />
<ClInclude Include="GameOption.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="ScoreControl.h" />
<ClInclude Include="Stdafx.h" />
</ItemGroup>
<ItemGroup>
<Media Include="Res\麻将声音\DRAW_SICE.wav" />
<Media Include="Res\麻将声音\Game_end.wav" />
<Media Include="Res\麻将声音\Game_lose.wav" />
<Media Include="Res\麻将声音\Game_lost.wav" />
<Media Include="Res\麻将声音\Game_start.wav" />
<Media Include="Res\麻将声音\Game_warn.wav" />
<Media Include="Res\麻将声音\Game_win.wav" />
<Media Include="Res\麻将声音\Out_card.wav" />
<Media Include="Res\麻将声音\女\A_chi.wav" />
<Media Include="Res\麻将声音\女\A_chi_hu.wav" />
<Media Include="Res\麻将声音\女\A_gang.wav" />
<Media Include="Res\麻将声音\女\A_peng.wav" />
<Media Include="Res\麻将声音\女\Chi.wav" />
<Media Include="Res\麻将声音\女\Chi_hu.wav" />
<Media Include="Res\麻将声音\女\F_1.wav" />
<Media Include="Res\麻将声音\女\F_2.wav" />
<Media Include="Res\麻将声音\女\F_3.wav" />
<Media Include="Res\麻将声音\女\F_4.wav" />
<Media Include="Res\麻将声音\女\F_5.wav" />
<Media Include="Res\麻将声音\女\F_6.wav" />
<Media Include="Res\麻将声音\女\F_7.wav" />
<Media Include="Res\麻将声音\女\Gang.wav" />
<Media Include="Res\麻将声音\女\Peng.wav" />
<Media Include="Res\麻将声音\女\S_1.wav" />
<Media Include="Res\麻将声音\女\S_2.wav" />
<Media Include="Res\麻将声音\女\S_3.wav" />
<Media Include="Res\麻将声音\女\S_4.wav" />
<Media Include="Res\麻将声音\女\S_5.wav" />
<Media Include="Res\麻将声音\女\S_6.wav" />
<Media Include="Res\麻将声音\女\S_7.wav" />
<Media Include="Res\麻将声音\女\S_8.wav" />
<Media Include="Res\麻将声音\女\S_9.wav" />
<Media Include="Res\麻将声音\女\Ting.wav" />
<Media Include="Res\麻将声音\女\T_1.wav" />
<Media Include="Res\麻将声音\女\T_2.wav" />
<Media Include="Res\麻将声音\女\T_3.wav" />
<Media Include="Res\麻将声音\女\T_4.wav" />
<Media Include="Res\麻将声音\女\T_5.wav" />
<Media Include="Res\麻将声音\女\T_6.wav" />
<Media Include="Res\麻将声音\女\T_7.wav" />
<Media Include="Res\麻将声音\女\T_8.wav" />
<Media Include="Res\麻将声音\女\T_9.wav" />
<Media Include="Res\麻将声音\女\W_1.wav" />
<Media Include="Res\麻将声音\女\W_2.wav" />
<Media Include="Res\麻将声音\女\W_3.wav" />
<Media Include="Res\麻将声音\女\W_4.wav" />
<Media Include="Res\麻将声音\女\W_5.wav" />
<Media Include="Res\麻将声音\女\W_6.wav" />
<Media Include="Res\麻将声音\女\W_7.wav" />
<Media Include="Res\麻将声音\女\W_8.wav" />
<Media Include="Res\麻将声音\女\W_9.wav" />
<Media Include="Res\麻将声音\男\A_chi.wav" />
<Media Include="Res\麻将声音\男\A_chi_hu.wav" />
<Media Include="Res\麻将声音\男\A_gang.wav" />
<Media Include="Res\麻将声音\男\A_peng.wav" />
<Media Include="Res\麻将声音\男\Chi.wav" />
<Media Include="Res\麻将声音\男\Chi_hu.wav" />
<Media Include="Res\麻将声音\男\F_1.wav" />
<Media Include="Res\麻将声音\男\F_2.wav" />
<Media Include="Res\麻将声音\男\F_3.wav" />
<Media Include="Res\麻将声音\男\F_4.wav" />
<Media Include="Res\麻将声音\男\F_5.wav" />
<Media Include="Res\麻将声音\男\F_6.wav" />
<Media Include="Res\麻将声音\男\F_7.wav" />
<Media Include="Res\麻将声音\男\Gang.wav" />
<Media Include="Res\麻将声音\男\Peng.wav" />
<Media Include="Res\麻将声音\男\S_1.wav" />
<Media Include="Res\麻将声音\男\S_2.wav" />
<Media Include="Res\麻将声音\男\S_3.wav" />
<Media Include="Res\麻将声音\男\S_4.wav" />
<Media Include="Res\麻将声音\男\S_5.wav" />
<Media Include="Res\麻将声音\男\S_6.wav" />
<Media Include="Res\麻将声音\男\S_7.wav" />
<Media Include="Res\麻将声音\男\S_8.wav" />
<Media Include="Res\麻将声音\男\S_9.wav" />
<Media Include="Res\麻将声音\男\Ting.wav" />
<Media Include="Res\麻将声音\男\T_1.wav" />
<Media Include="Res\麻将声音\男\T_2.wav" />
<Media Include="Res\麻将声音\男\T_3.wav" />
<Media Include="Res\麻将声音\男\T_4.wav" />
<Media Include="Res\麻将声音\男\T_5.wav" />
<Media Include="Res\麻将声音\男\T_6.wav" />
<Media Include="Res\麻将声音\男\T_7.wav" />
<Media Include="Res\麻将声音\男\T_8.wav" />
<Media Include="Res\麻将声音\男\T_9.wav" />
<Media Include="Res\麻将声音\男\W_1.wav" />
<Media Include="Res\麻将声音\男\W_2.wav" />
<Media Include="Res\麻将声音\男\W_3.wav" />
<Media Include="Res\麻将声音\男\W_4.wav" />
<Media Include="Res\麻将声音\男\W_5.wav" />
<Media Include="Res\麻将声音\男\W_6.wav" />
<Media Include="Res\麻将声音\男\W_7.wav" />
<Media Include="Res\麻将声音\男\W_8.wav" />
<Media Include="Res\麻将声音\男\W_9.wav" />
</ItemGroup>
<ItemGroup>
<Image Include="Res\ACTIONANI.png" />
<Image Include="Res\ACTION_BACK.bmp" />
<Image Include="Res\ACTION_EXPLAIN.bmp" />
<Image Include="Res\ARROW.png" />
<Image Include="Res\BT_CHIHU.bmp" />
<Image Include="Res\BT_GIVEUP.bmp" />
<Image Include="Res\BT_LISTEN.bmp" />
<Image Include="Res\BT_SCORE_CLOSE.bmp" />
<Image Include="Res\BT_START.bmp" />
<Image Include="Res\BT_START_TRUSTEE.bmp" />
<Image Include="Res\BT_STOP_TRUSTEE.bmp" />
<Image Include="Res\CARD_BACK_H.bmp" />
<Image Include="Res\CARD_BACK_V.bmp" />
<Image Include="Res\CARD_HEAP_DOUBLE_BV.png" />
<Image Include="Res\CARD_HEAP_DOUBLE_H.bmp" />
<Image Include="Res\CARD_HEAP_DOUBLE_LV.png" />
<Image Include="Res\CARD_HEAP_DOUBLE_RV.PNG" />
<Image Include="Res\CARD_HEAP_DOUBLE_TV.PNG" />
<Image Include="Res\CARD_HEAP_DOUBLE_V.bmp" />
<Image Include="Res\CARD_HEAP_SINGLE_BV.png" />
<Image Include="Res\CARD_HEAP_SINGLE_H.bmp" />
<Image Include="Res\CARD_HEAP_SINGLE_LV.png" />
<Image Include="Res\CARD_HEAP_SINGLE_RV.PNG" />
<Image Include="Res\CARD_HEAP_SINGLE_TV.png" />
<Image Include="Res\CARD_HEAP_SINGLE_V.bmp" />
<Image Include="Res\CARD_TABLE_BOTTOM.bmp" />
<Image Include="Res\CARD_TABLE_BOTTOM.PNG" />
<Image Include="Res\CARD_TABLE_LEFT.bmp" />
<Image Include="Res\CARD_TABLE_LEFT.png" />
<Image Include="Res\CARD_TABLE_RIGHT.bmp" />
<Image Include="Res\CARD_TABLE_RIGHT.png" />
<Image Include="Res\CARD_TABLE_TOP.bmp" />
<Image Include="Res\CARD_TABLE_TOP.png" />
<Image Include="Res\CARD_USER_BOTTOM.bmp" />
<Image Include="Res\CARD_USER_BOTTOM.png" />
<Image Include="Res\CARD_USER_LEFT.bmp" />
<Image Include="Res\CARD_USER_LEFT.png" />
<Image Include="Res\CARD_USER_RIGHT.bmp" />
<Image Include="Res\CARD_USER_RIGHT.png" />
<Image Include="Res\CARD_USER_TOP.bmp" />
<Image Include="Res\CARD_USER_TOP.png" />
<Image Include="Res\CELL_SCORE.BMP" />
<Image Include="Res\CELL_SCORE.PNG" />
<Image Include="Res\CONTROL_BOTTOM.bmp" />
<Image Include="Res\CONTROL_MID.bmp" />
<Image Include="Res\CONTROL_TOP.bmp" />
<Image Include="Res\DISC.png" />
<Image Include="Res\FAN_PAI.bmp" />
<Image Include="Res\GameClient.ico" />
<Image Include="Res\GAME_LOGO.bmp" />
<Image Include="Res\GAME_LOST.PNG" />
<Image Include="Res\GAME_SCORE.bmp" />
<Image Include="Res\GAME_SCORE_FLAG.bmp" />
<Image Include="Res\GAME_WIN.PNG" />
<Image Include="Res\GUA_FENG.PNG" />
<Image Include="Res\HUANG_ZHUANG.bmp" />
<Image Include="Res\LISTEN_FLAG_H.bmp" />
<Image Include="Res\LISTEN_FLAG_V.bmp" />
<Image Include="Res\NUM_LOST.PNG" />
<Image Include="Res\NUM_ORDER.PNG" />
<Image Include="Res\NUM_WIN.PNG" />
<Image Include="Res\OUT_CARD_TIP.bmp" />
<Image Include="Res\png1.png" />
<Image Include="Res\SELECT.bmp" />
<Image Include="Res\SICE1.bmp" />
<Image Include="Res\SICE10.bmp" />
<Image Include="Res\SICE11.bmp" />
<Image Include="Res\SICE12.bmp" />
<Image Include="Res\SICE2.bmp" />
<Image Include="Res\SICE3.bmp" />
<Image Include="Res\SICE4.bmp" />
<Image Include="Res\SICE5.bmp" />
<Image Include="Res\SICE6.bmp" />
<Image Include="Res\SICE7.bmp" />
<Image Include="Res\SICE8.bmp" />
<Image Include="Res\SICE9.bmp" />
<Image Include="Res\SICE_BACK.bmp" />
<Image Include="Res\TRUSTEE.bmp" />
<Image Include="Res\Trustee.png" />
<Image Include="Res\USER_ACTION.bmp" />
<Image Include="Res\USER_FLAG.bmp" />
<Image Include="Res\VIEW_BACK.bmp" />
<Image Include="Res\View_center.bmp" />
<Image Include="Res\WAIT_TIP.bmp" />
<Image Include="Res\WIN_LOSE.bmp" />
<Image Include="Res\WIN_ORDER.bmp" />
<Image Include="Res\XIAO_YU.PNG" />
<Image Include="Res\ZUAN_PAI.bmp" />
</ItemGroup>
<ItemGroup>
<None Include="Res\CARD_CUR.cur" />
<None Include="res\GameClient.rc2" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="GameClient.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties RESOURCE_FILE="GameClient.rc" />
</VisualStudio>
</ProjectExtensions>
</Project>

+ 580
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient03.vcxproj.filters Просмотреть файл

@@ -0,0 +1,580 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="资源文件">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="CardControl.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="ControlWnd.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="DirectSound.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="DrawSiceWnd.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="GameClient.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="GameClientEngine.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="GameClientView.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="GameLogic.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="GameOption.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="ScoreControl.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="Stdafx.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="CardControl.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\消息定义\CMD_Sparrow.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="ControlWnd.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="DirectSound.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="DrawSiceWnd.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="GameClient.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="GameClientEngine.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="GameClientView.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="GameLogic.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="GameOption.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="Resource.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="ScoreControl.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="Stdafx.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Media Include="Res\麻将声音\女\A_chi.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\A_chi.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\A_chi_hu.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\A_chi_hu.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\A_gang.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\A_gang.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\A_peng.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\A_peng.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\F_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\F_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Game_end.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Game_lose.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Game_lost.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Game_start.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Game_warn.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Game_win.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\Out_card.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_8.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_8.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\S_9.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\S_9.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_8.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_8.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\T_9.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\T_9.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\Ting.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\Ting.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_1.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_2.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_3.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_4.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_5.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_6.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_7.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_8.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_8.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\女\W_9.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\W_9.wav">
<Filter>资源文件</Filter>
</Media>
<Media Include="Res\麻将声音\男\Chi.wav" />
<Media Include="Res\麻将声音\女\Chi.wav" />
<Media Include="Res\麻将声音\女\Chi_hu.wav" />
<Media Include="Res\麻将声音\男\Chi_hu.wav" />
<Media Include="Res\麻将声音\DRAW_SICE.wav" />
<Media Include="Res\麻将声音\男\Gang.wav" />
<Media Include="Res\麻将声音\女\Gang.wav" />
<Media Include="Res\麻将声音\女\Peng.wav" />
<Media Include="Res\麻将声音\男\Peng.wav" />
</ItemGroup>
<ItemGroup>
<Image Include="Res\ACTION_BACK.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\ACTION_EXPLAIN.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_CHIHU.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_GIVEUP.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_LISTEN.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_SCORE_CLOSE.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_START.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_START_TRUSTEE.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\BT_STOP_TRUSTEE.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_BACK_H.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_BACK_V.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_HEAP_DOUBLE_H.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_HEAP_DOUBLE_V.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_HEAP_SINGLE_H.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_HEAP_SINGLE_V.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_TABLE_BOTTOM.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_TABLE_LEFT.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_TABLE_RIGHT.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_TABLE_TOP.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_USER_BOTTOM.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_USER_LEFT.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_USER_RIGHT.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CARD_USER_TOP.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CELL_SCORE.BMP">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CONTROL_BOTTOM.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CONTROL_MID.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\CONTROL_TOP.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\FAN_PAI.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\GAME_LOGO.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\GAME_SCORE.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\GAME_SCORE_FLAG.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\GameClient.ico">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\HUANG_ZHUANG.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\LISTEN_FLAG_H.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\LISTEN_FLAG_V.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\OUT_CARD_TIP.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SELECT.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE1.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE10.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE11.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE12.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE2.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE3.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE4.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE5.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE6.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE7.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE8.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE9.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\SICE_BACK.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\TRUSTEE.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\USER_ACTION.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\USER_FLAG.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\VIEW_BACK.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\View_center.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\WAIT_TIP.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\WIN_LOSE.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\WIN_ORDER.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\ZUAN_PAI.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="Res\ACTIONANI.png" />
<Image Include="Res\ARROW.png" />
<Image Include="Res\CARD_HEAP_DOUBLE_BV.png" />
<Image Include="Res\CARD_HEAP_DOUBLE_LV.png" />
<Image Include="Res\CARD_HEAP_DOUBLE_RV.PNG" />
<Image Include="Res\CARD_HEAP_DOUBLE_TV.PNG" />
<Image Include="Res\CARD_HEAP_SINGLE_BV.png" />
<Image Include="Res\CARD_HEAP_SINGLE_LV.png" />
<Image Include="Res\CARD_HEAP_SINGLE_RV.PNG" />
<Image Include="Res\CARD_HEAP_SINGLE_TV.png" />
<Image Include="Res\CARD_TABLE_BOTTOM.PNG" />
<Image Include="Res\CARD_TABLE_LEFT.png" />
<Image Include="Res\CARD_TABLE_RIGHT.png" />
<Image Include="Res\CARD_TABLE_TOP.png" />
<Image Include="Res\CARD_USER_BOTTOM.png" />
<Image Include="Res\CARD_USER_LEFT.png" />
<Image Include="Res\CARD_USER_RIGHT.png" />
<Image Include="Res\CARD_USER_TOP.png" />
<Image Include="Res\CELL_SCORE.PNG" />
<Image Include="Res\DISC.png" />
<Image Include="Res\GAME_LOST.PNG" />
<Image Include="Res\GAME_WIN.PNG" />
<Image Include="Res\GUA_FENG.PNG" />
<Image Include="Res\NUM_LOST.PNG" />
<Image Include="Res\NUM_ORDER.PNG" />
<Image Include="Res\NUM_WIN.PNG" />
<Image Include="Res\png1.png" />
<Image Include="Res\Trustee.png" />
<Image Include="Res\XIAO_YU.PNG" />
</ItemGroup>
<ItemGroup>
<None Include="Res\CARD_CUR.cur">
<Filter>资源文件</Filter>
</None>
<None Include="res\GameClient.rc2">
<Filter>资源文件</Filter>
</None>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="GameClient.rc">
<Filter>资源文件</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

+ 7
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient03.vcxproj.user Просмотреть файл

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">
<LocalDebuggerWorkingDirectory>../../../../运行/Debug/unicode/SparrowXZ.exe</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>

+ 1255
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClient05.vcproj
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 132
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClientEngine.h Просмотреть файл

@@ -0,0 +1,132 @@
#pragma once
#include "Stdafx.h"
#include "GameLogic.h"
#include "GameClientView.h"
#include "DirectSound.h"
//////////////////////////////////////////////////////////////////////////
//游戏对话框
class CGameClientEngine : public CGameFrameEngine
{
//用户变量
protected:
WORD m_wBankerUser; //庄家用户
WORD m_wCurrentUser; //当前用户
BYTE m_cbUserAction; //玩家动作
LONG m_lSiceCount; //
TCHAR m_szAccounts[GAME_PLAYER][32];
//托管变量
protected:
bool m_bStustee; //托管标志
WORD m_wTimeOutCount; //超时次数
//堆立变量
protected:
WORD m_wHeapHand; //堆立头部
WORD m_wHeapTail; //堆立尾部
BYTE m_cbHeapCardInfo[4][2]; //堆牌信息
//扑克变量
protected:
BYTE m_cbLeftCardCount; //剩余数目
BYTE m_cbCardIndex[MAX_INDEX]; //手中扑克
//组合扑克
protected:
BYTE m_cbWeaveCount[GAME_PLAYER]; //组合数目
tagWeaveItem m_WeaveItemArray[GAME_PLAYER][4]; //组合扑克
//出牌信息
protected:
WORD m_wOutCardUser; //出牌用户
BYTE m_cbOutCardData; //出牌扑克
BYTE m_cbDiscardCount[GAME_PLAYER]; //丢弃数目
BYTE m_cbDiscardCard[GAME_PLAYER][55]; //丢弃记录
//控件变量
protected:
CGameLogic m_GameLogic; //游戏逻辑
CGameClientView m_GameClientView; //游戏视图
CDirectSound m_DirectSound; //出牌和发牌声音
//函数定义
public:
//构造函数
CGameClientEngine();
//析构函数
virtual ~CGameClientEngine();
//常规继承
private:
//初始函数
virtual bool OnInitGameEngine();
//重置框架
virtual bool OnResetGameEngine();
//时钟删除
virtual bool OnEventGameClockKill(WORD wChairID);
//时间消息
virtual bool OnEventGameClockInfo(WORD wChairID, UINT nElapse, WORD wClockID);
//旁观状态
virtual bool OnEventLookonMode(VOID * pData, WORD wDataSize);
//网络消息
virtual bool OnEventGameMessage(WORD wSubCmdID, VOID * pBuffer, WORD wDataSize);
//游戏场景
virtual bool OnEventSceneMessage(BYTE cbGameStatus, bool bLookonOther, VOID * pBuffer, WORD wDataSize);
//消息处理
protected:
//游戏开始
bool OnSubGameStart(const void * pBuffer, WORD wDataSize);
//用户出牌
bool OnSubOutCard(const void * pBuffer, WORD wDataSize);
//发牌消息
bool OnSubSendCard(const void * pBuffer, WORD wDataSize);
//操作提示
bool OnSubOperateNotify(const void * pBuffer, WORD wDataSize);
//操作结果
bool OnSubOperateResult(const void * pBuffer, WORD wDataSize);
//游戏结束
bool OnSubGameEnd(const void * pBuffer, WORD wDataSize);
//用户托管
bool OnSubTrustee(const void * pBuffer,WORD wDataSize);
//
bool OnSubUserChiHu( const void *pBuffer,WORD wDataSize );
//
bool OnSubGangScore( const void *pBuffer, WORD wDataSize );
//辅助函数
protected:
//播放声音
void PlayCardSound(WORD wChairID,BYTE cbCardData);
//播放声音
void PlayActionSound(WORD wChairID,BYTE cbAction);
//出牌判断
bool VerdictOutCard(BYTE cbCardData);
//扣除扑克
void DeductionTableCard(bool bHeadCard);
//显示控制
bool ShowOperateControl(BYTE cbUserAction, BYTE cbActionCard);
//消息映射
protected:
//开始消息
LRESULT OnStart(WPARAM wParam, LPARAM lParam);
//出牌操作
LRESULT OnOutCard(WPARAM wParam, LPARAM lParam);
//扑克操作
LRESULT OnCardOperate(WPARAM wParam, LPARAM lParam);
//拖管控制
LRESULT OnStusteeControl(WPARAM wParam, LPARAM lParam);
//第二次摇色子消息
LRESULT OnSiceTwo(WPARAM wParam, LPARAM lParam);
//摇色子结束消息
LRESULT OnSiceFinish(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
};
//////////////////////////////////////////////////////////////////////////

+ 1091
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameClientView.cpp
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 1253
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameLogic.cpp
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 268
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameLogic.h Просмотреть файл

@@ -0,0 +1,268 @@
#ifndef GAME_LOGIC_HEAD_FILE
#define GAME_LOGIC_HEAD_FILE
#pragma once
#include "Stdafx.h"
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//逻辑掩码
#define MASK_COLOR 0xF0 //花色掩码
#define MASK_VALUE 0x0F //数值掩码
//////////////////////////////////////////////////////////////////////////
//动作定义
//动作标志
#define WIK_NULL 0x00 //没有类型
#define WIK_LEFT 0x01 //左吃类型
#define WIK_CENTER 0x02 //中吃类型
#define WIK_RIGHT 0x04 //右吃类型
#define WIK_PENG 0x08 //碰牌类型
#define WIK_GANG 0x10 //杠牌类型
#define WIK_LISTEN 0x20 //吃牌类型
#define WIK_CHI_HU 0x40 //吃胡类型
#define WIK_ZI_MO 0x80 //自摸
//////////////////////////////////////////////////////////////////////////
//胡牌定义
//胡牌
#define CHK_NULL 0x00 //非胡类型
#define CHK_CHI_HU 0x01 //胡类型
#define CHR_QIANG_GANG 0x00000001 //抢杠
#define CHR_GANG_SHANG_PAO 0x00000002 //杠上炮
#define CHR_GANG_KAI 0x00000004 //杠上花
#define CHR_TIAN_HU 0x00000008 //天胡
#define CHR_DI_HU 0x00000010 //地胡
#define CHR_DA_DUI_ZI 0x00000020 //大对子
#define CHR_QING_YI_SE 0x00000040 //清一色
#define CHR_QI_XIAO_DUI 0x00000080 //暗七对
#define CHR_DAI_YAO 0x00000100 //带幺
#define CHR_JIANG_DUI 0x00000200 //将对
#define CHR_SHU_FAN 0x00000400 //素番
#define CHR_QING_DUI 0x00000800 //清对
#define CHR_LONG_QI_DUI 0x00001000 //龙七对
#define CHR_QING_QI_DUI 0x00002000 //清七对
#define CHR_QING_YAO_JIU 0x00004000 //清幺九
#define CHR_QING_LONG_QI_DUI 0x00008000 //清龙七对
//////////////////////////////////////////////////////////////////////////
#define ZI_PAI_COUNT 7
#pragma pack(1)
//类型子项
struct tagKindItem
{
BYTE cbWeaveKind; //组合类型
BYTE cbCenterCard; //中心扑克
BYTE cbCardIndex[3]; //扑克索引
BYTE cbValidIndex[3]; //实际扑克索引
};
//组合子项
struct tagWeaveItem
{
BYTE cbWeaveKind; //组合类型
BYTE cbCenterCard; //中心扑克
BYTE cbPublicCard; //公开标志
WORD wProvideUser; //供应用户
};
//杠牌结果
struct tagGangCardResult
{
BYTE cbCardCount; //扑克数目
BYTE cbCardData[4]; //扑克数据
};
//分析子项
struct tagAnalyseItem
{
BYTE cbCardEye; //牌眼扑克
bool bMagicEye; //牌眼是否是王霸
BYTE cbWeaveKind[4]; //组合类型
BYTE cbCenterCard[4]; //中心扑克
BYTE cbCardData[4][4]; //实际扑克
};
#pragma pack()
//////////////////////////////////////////////////////////////////////////
#define MASK_CHI_HU_RIGHT 0x0fffffff
/*
// 权位类。
// 注意,在操作仅位时最好只操作单个权位.例如
// CChiHuRight chr;
// chr |= (chr_zi_mo|chr_peng_peng),这样结果是无定义的。
// 只能单个操作:
// chr |= chr_zi_mo;
// chr |= chr_peng_peng;
*/
class CChiHuRight
{
//静态变量
private:
static bool m_bInit;
static DWORD m_dwRightMask[MAX_RIGHT_COUNT];
//权位变量
private:
DWORD m_dwRight[MAX_RIGHT_COUNT];
public:
//构造函数
CChiHuRight();
//运算符重载
public:
//赋值符
CChiHuRight & operator = ( DWORD dwRight );
//与等于
CChiHuRight & operator &= ( DWORD dwRight );
//或等于
CChiHuRight & operator |= ( DWORD dwRight );
//与
CChiHuRight operator & ( DWORD dwRight );
CChiHuRight operator & ( DWORD dwRight ) const;
//或
CChiHuRight operator | ( DWORD dwRight );
CChiHuRight operator | ( DWORD dwRight ) const;
//功能函数
public:
//是否权位为空
bool IsEmpty();
//设置权位为空
void SetEmpty();
//获取权位数值
BYTE GetRightData( DWORD dwRight[], BYTE cbMaxCount );
//设置权位数值
bool SetRightData( const DWORD dwRight[], BYTE cbRightCount );
private:
//检查权位是否正确
bool IsValidRight( DWORD dwRight );
};
//////////////////////////////////////////////////////////////////////////
//数组说明
typedef CWHArray<tagAnalyseItem,tagAnalyseItem &> CAnalyseItemArray;
//游戏逻辑类
class CGameLogic
{
//变量定义
protected:
static const BYTE m_cbCardDataArray[MAX_REPERTORY]; //扑克数据
BYTE m_cbMagicIndex; //钻牌索引
//函数定义
public:
//构造函数
CGameLogic();
//析构函数
virtual ~CGameLogic();
//控制函数
public:
//混乱扑克
void RandCardData(BYTE cbCardData[], BYTE cbMaxCount);
//删除扑克
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbRemoveCard);
//删除扑克
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], const BYTE cbRemoveCard[], BYTE cbRemoveCount);
//删除扑克
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, const BYTE cbRemoveCard[], BYTE cbRemoveCount);
//设置钻牌
void SetMagicIndex( BYTE cbMagicIndex ) { m_cbMagicIndex = cbMagicIndex; }
//钻牌
bool IsMagicCard( BYTE cbCardData );
//辅助函数
public:
//有效判断
bool IsValidCard(BYTE cbCardData);
//扑克数目
BYTE GetCardCount(const BYTE cbCardIndex[MAX_INDEX]);
//组合扑克
BYTE GetWeaveCard(BYTE cbWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]);
//等级函数
public:
//动作等级
BYTE GetUserActionRank(BYTE cbUserAction);
//胡牌等级
WORD GetChiHuActionRank(const CChiHuRight & ChiHuRight);
//动作判断
public:
//吃牌判断
BYTE EstimateEatCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//碰牌判断
BYTE EstimatePengCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//杠牌判断
BYTE EstimateGangCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//动作判断
public:
//杠牌分析
BYTE AnalyseGangCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, tagGangCardResult & GangCardResult);
//吃胡分析
BYTE AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, CChiHuRight &ChiHuRight);
//听牌分析
BYTE AnalyseTingCard( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount );
//是否听牌
bool IsTingCard( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount );
//是否花猪
bool IsHuaZhu( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount );
//转换函数
public:
//扑克转换
BYTE SwitchToCardData(BYTE cbCardIndex);
//扑克转换
BYTE SwitchToCardIndex(BYTE cbCardData);
//扑克转换
BYTE SwitchToCardData(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[MAX_COUNT]);
//扑克转换
BYTE SwitchToCardIndex(const BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX]);
//胡法分析
protected:
//大对子
bool IsPengPeng( const tagAnalyseItem *pAnalyseItem );
//清一色牌
bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount,const BYTE cbCurrentCard);
//七小对牌
bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[],const BYTE cbWeaveCount,const BYTE cbCurrentCard);
//带幺
bool IsDaiYao( const tagAnalyseItem *pAnalyseItem );
//将对
bool IsJiangDui( const tagAnalyseItem *pAnalyseItem );
//内部函数
private:
//分析扑克
bool AnalyseCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbItemCount, CAnalyseItemArray & AnalyseItemArray);
//排序,根据牌值排序
bool SortCardList( BYTE cbCardData[MAX_COUNT], BYTE cbCardCount );
};
//////////////////////////////////////////////////////////////////////////
#endif

+ 65
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameOption.cpp Просмотреть файл

@@ -0,0 +1,65 @@
#include "Stdafx.h"
#include "GameOption.h"
//////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CGameOption, CSkinDialog)
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////
//构造函数
CGameOption::CGameOption() : CSkinDialog(IDD_OPTION)
{
m_bEnableSound=true;
m_bAllowLookon=false;
return;
}
//析构函数
CGameOption::~CGameOption()
{
}
//控件绑定
void CGameOption::DoDataExchange(CDataExchange * pDX)
{
__super::DoDataExchange(pDX);
DDX_Control(pDX, IDOK, m_btOK);
DDX_Control(pDX, IDCANCEL, m_btCancel);
}
//初始化函数
BOOL CGameOption::OnInitDialog()
{
__super::OnInitDialog();
//设置标题
SetWindowText(TEXT("游戏配置"));
if(m_bAllowLookon == true)
{
((CButton *)GetDlgItem(IDC_ENABLE_LOOKON))->SetCheck(BST_CHECKED);
}
//设置控件
if (m_bEnableSound==true)
((CButton *)GetDlgItem(IDC_ENABLE_SOUND))->SetCheck(BST_CHECKED);
return TRUE;
}
//确定消息
void CGameOption::OnOK()
{
//获取变量
m_bEnableSound=(((CButton *)GetDlgItem(IDC_ENABLE_SOUND))->GetCheck()==BST_CHECKED);
m_bAllowLookon =(((CButton *)GetDlgItem(IDC_ENABLE_LOOKON))->GetCheck()==BST_CHECKED);
__super::OnOK();
}
//////////////////////////////////////////////////////////////////////////

+ 40
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameOption.h Просмотреть файл

@@ -0,0 +1,40 @@
#pragma once
#include "Stdafx.h"
#include "Resource.h"
//////////////////////////////////////////////////////////////////////////
//游戏配置
class CGameOption : public CSkinDialog
{
//变量定义
public:
bool m_bEnableSound; //启用声音
bool m_bAllowLookon; //允许旁观
//控件变量
public:
CSkinButton m_btOK; //确定按钮
CSkinButton m_btCancel; //取消按钮
//函数定义
public:
//构造函数
CGameOption();
//析构函数
virtual ~CGameOption();
//重载函数
protected:
//控件绑定
virtual void DoDataExchange(CDataExchange * pDX);
//初始化函数
virtual BOOL OnInitDialog();
//确定消息
virtual void OnOK();
DECLARE_MESSAGE_MAP()
};
//////////////////////////////////////////////////////////////////////////

+ 276
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameScoreWnd.cpp Просмотреть файл

@@ -0,0 +1,276 @@
#include "StdAfx.h"
#include "CardControl.h"
#include "GameScoreWnd.h"
#include "GameLogic.h"
#include ".\gamescorewnd.h"
//////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CGameScoreWnd, CWnd)
ON_WM_PAINT()
ON_WM_CREATE()
ON_WM_ERASEBKGND()
ON_WM_LBUTTONDOWN()
ON_WM_MOVE()
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////
//构造函数
CGameScoreWnd::CGameScoreWnd()
{
//设置变量
ZeroMemory(&m_GameScoreInfo,sizeof(m_GameScoreInfo));
m_ImageBack.SetLoadInfo(IDB_GAME_SCORE,AfxGetInstanceHandle());
return;
}
//析构函数
CGameScoreWnd::~CGameScoreWnd()
{
}
//建立消息
int CGameScoreWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (__super::OnCreate(lpCreateStruct)==-1) return -1;
//移动窗口
CImageHandle BackImageHandle(&m_ImageBack);
SetWindowPos(NULL,0,0,m_ImageBack.GetWidth(),m_ImageBack.GetHeight(),SWP_NOZORDER|SWP_NOREPOSITION);
return TRUE;
}
//重画函数
void CGameScoreWnd::OnPaint()
{
CPaintDC dc(this);
//获取位置
CRect rcClient;
GetClientRect(&rcClient);
//创建缓冲
CDC BufferDC;
CBitmap ImageBuffer;
BufferDC.CreateCompatibleDC(&dc);
ImageBuffer.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height());
BufferDC.SelectObject(&ImageBuffer);
//绘画背景
CImageHandle BackImageHandle(&m_ImageBack);
m_ImageBack.BitBlt(BufferDC,0,0);
//设置 DC
BufferDC.SetBkMode(TRANSPARENT);
BufferDC.SetTextColor(RGB(230,230,230));
BufferDC.SelectObject(CSkinAttribute::m_DefaultFont);
//绘画扑克
g_CardResource.m_ImageUserBottom.DrawCardItem(&BufferDC,m_GameScoreInfo.cbChiHuCard,85,23);
//用户成绩
CRect rcDraw;
TCHAR szBuffer[64];
for (int i=0;i<GAME_PLAYER;i++)
{
//用户名字
rcDraw.left=25;
rcDraw.right=125;
rcDraw.top=125+i*25;
rcDraw.bottom=rcDraw.top+12;
BufferDC.DrawText(m_GameScoreInfo.szUserName[i],lstrlen(m_GameScoreInfo.szUserName[i]),&rcDraw,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS);
//用户积分
rcDraw.left=130;
rcDraw.right=170;
rcDraw.top=125+i*25;
rcDraw.bottom=rcDraw.top+12;
_snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_GameScoreInfo.lScore[i]);
BufferDC.DrawText(szBuffer,lstrlen(szBuffer),&rcDraw,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
//用户状态
if (m_GameScoreInfo.wCardType[i]!=0)
BufferDC.TextOut(180,125+i*25,TEXT("胡牌"),4);
else if (m_GameScoreInfo.wProvideUser==i)
BufferDC.TextOut(180,125+i*25,TEXT("放炮"),4);
//其他信息
if (m_GameScoreInfo.wBankerUser==i)
BufferDC.TextOut(228,125+i*25,TEXT("是"),2);
}
//游戏税收
if(m_GameScoreInfo.lGameTax!=0L)
{
rcDraw.left=25;
rcDraw.right=125;
rcDraw.top=125+4*25;
rcDraw.bottom=rcDraw.top+12;
LPCTSTR pszTax=TEXT("交易税");
BufferDC.DrawText(pszTax,lstrlen(pszTax),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS);
rcDraw.left=130;
rcDraw.right=170;
rcDraw.top=125+4*25;
rcDraw.bottom=rcDraw.top+12;
_snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_GameScoreInfo.lGameTax);
BufferDC.DrawText(szBuffer,lstrlen(szBuffer),&rcDraw,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
}
//绘制结果
int row=0,colum=0;
WORD KindIndex[]={CHK_JI_HU,
CHK_PING_HU,
CHK_PENG_PENG,
CHK_QI_XIAO_DUI,
CHR_DI,
CHR_TIAN,
CHR_ZI_YI_SE,
CHR_HUN_YI_SE,
CHK_QING_YI_SE,
CHR_QIANG_GANG,
CHR_YI_TIAO_LONG,
CHK_QUAN_QIU_REN,
CHK_DA_SAN_YUAN};
TCHAR *KindBuffer[]={"鸡 胡","平 胡","碰碰胡","七小对","地 胡"," 天 胡",
"字一色","混一色","清一色","杠 胡","一条龙","全求人","大三元"};
if(m_GameScoreInfo.wwChiHuKind!=0&&(m_GameScoreInfo.wwChiHuKind&0xff00)==0)
{
if(m_GameScoreInfo.wwChiHuKind!=0)
{
BufferDC.TextOut(28+colum*84,250+row*15,KindBuffer[1]);
if(colum==2)
{
row++;
colum=0;
}
else
colum++;
}
}
else
{
m_GameScoreInfo.wwChiHuKind&=0xff00;
for(BYTE i=0;i<CountArray(KindIndex);i++)
{
if(i<4&&m_GameScoreInfo.wwChiHuKind&KindIndex[i])
{
BufferDC.TextOut(28+colum*84,250+row*15,KindBuffer[i]);
if(colum==2)
{
row++;
colum=0;
}
else
colum++;
}
if(i>=4&&m_GameScoreInfo.wChiHuRight&KindIndex[i])
{
BufferDC.TextOut(28+colum*84,250+row*15,KindBuffer[i]);
if(colum==2)
{
row++;
colum=0;
}
else
colum++;
}
}
}
/*
if(m_GameScoreInfo.wwChiHuKind != 0)
{
m_GameScoreInfo.wwChiHuKind&=0xffff;
for(BYTE i=0;i<CountArray(KindIndex);i++)
{
if(i<4&&m_GameScoreInfo.wwChiHuKind&KindIndex[i])
{
BufferDC.TextOut(28+colum*84,250+row*15,KindBuffer[i]);
if(colum==2)
{
row++;
colum=0;
}
else
colum++;
}
if(i>=4&&m_GameScoreInfo.wChiHuRight&KindIndex[i])
{
BufferDC.TextOut(28+colum*84,250+row*15,KindBuffer[i]);
if(colum==2)
{
row++;
colum=0;
}
else
colum++;
}
}
}*/
//绘画界面
dc.BitBlt(0,0,rcClient.Width(),rcClient.Height(),&BufferDC,0,0,SRCCOPY);
//清理资源
BufferDC.DeleteDC();
ImageBuffer.DeleteObject();
return;
}
//绘画背景
BOOL CGameScoreWnd::OnEraseBkgnd(CDC * pDC)
{
Invalidate(FALSE);
UpdateWindow();
return TRUE;
}
//鼠标消息
void CGameScoreWnd::OnLButtonDown(UINT nFlags, CPoint point)
{
__super::OnLButtonDown(nFlags,point);
//消息模拟
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));
return;
}
//设置积分
void CGameScoreWnd::SetScoreInfo(tagGameScoreInfo & GameScoreInfo)
{
//设置变量
m_GameScoreInfo=GameScoreInfo;
/*
if(m_GameScoreInfo.wwChiHuKind !=0)
ASSERT(FALSE);
*/
//显示窗口
Invalidate(NULL);
ShowWindow(SW_SHOW);
return;
}
//////////////////////////////////////////////////////////////////////////
void CGameScoreWnd::OnMove(int x, int y)
{
__super::OnMove(x, y);
//刷新界面
Invalidate(FALSE);
UpdateWindow();
return;
}

+ 65
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/GameScoreWnd.h Просмотреть файл

@@ -0,0 +1,65 @@
#include "Stdafx.h"
#include "Resource.h"
#pragma once
#include "Stdafx.h"
#include "Resource.h"
//////////////////////////////////////////////////////////////////////////
//结构定义
//积分信息
struct tagGameScoreInfo
{
BYTE cbChiHuCard; //吃胡扑克
WORD wBankerUser; //庄家用户
WORD wProvideUser; //点炮用户
LONG lGameTax; //游戏税收
LONG lScore[GAME_PLAYER]; //用户积分
WORD wCardType[GAME_PLAYER]; //胡牌类型
TCHAR szUserName[GAME_PLAYER][NAME_LEN]; //用户帐号
WORD wwChiHuKind; //吃胡类型
WORD wChiHuRight; //胡牌权位
};
//////////////////////////////////////////////////////////////////////////
//积分报告
class CGameScoreWnd : public CWnd
{
//变量定义
protected:
CSkinImage m_ImageBack; //背景资源
tagGameScoreInfo m_GameScoreInfo; //积分信息
//函数定义
public:
//构造函数
CGameScoreWnd();
//析构函数
virtual ~CGameScoreWnd();
//功能函数
public:
//设置积分
void SetScoreInfo(tagGameScoreInfo & GameScoreInfo);
//消息映射
protected:
//重画函数
afx_msg void OnPaint();
//绘画背景
afx_msg BOOL OnEraseBkgnd(CDC * pDC);
//建立函数
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
//鼠标消息
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnMove(int x, int y);
};
//////////////////////////////////////////////////////////////////////////

+ 82
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/ReadMe.txt Просмотреть файл

@@ -0,0 +1,82 @@
================================================================================
MICROSOFT 基础类库: GameClient 项目概述
===============================================================================
应用程序向导已为您创建了此 GameClient 应用程序。此应用程序
不仅介绍了使用 Microsoft 基础类的基本知识,
而且是编写应用程序的起点。
此文件包含组成 GameClient 应用程序的每个文件的内容摘要。
GameClient.vcproj
这是使用“应用程序向导”生成的 VC++ 项目的主项目文件。
它包含有关生成文件的 Visual C++ 版本的信息,以及
有关用“应用程序向导”所选择的平台、配置和
项目功能的信息。
GameClient.h
这是应用程序的主头文件。 它包含其他
项目特定的头文件(包括 Resource.h),并声明
CGameClientApp 应用程序类。
GameClient.cpp
这是包含应用程序
类 CGameClientApp 的主应用程序源文件。
GameClient.rc
这是程序使用的所有 Microsoft Windows 资源
的列表。 它包含存储在 RES 子目录中
的图标、位图和光标。 可直接在 Microsoft
Visual C++ 中编辑此文件。 项目资源包含在 2052 中。
res\GameClient.ico
这是一个图标文件,用作应用程序的图标。 此
图标包含在主资源文件 GameClient.rc 中。
res\GameClient.rc2
此文件包含不由 Microsoft
Visual C++ 编辑的资源。 应将所有不能由
资源编辑器编辑的资源放在此文件中。
/////////////////////////////////////////////////////////////////////////////
应用程序向导将创建一个对话框类:
GameClientDlg.h、GameClientDlg.cpp - 对话框
这些文件包含 CGameClientDlg 类。 此类定义
应用程序主对话框的行为。 此对话框的模板包含在
GameClient.rc 中,而此文件可以在 Microsoft Visual C++ 中进行编辑。
/////////////////////////////////////////////////////////////////////////////
其他功能:
ActiveX 控件
应用程序支持使用 ActiveX 控件。
/////////////////////////////////////////////////////////////////////////////
其他标准文件:
StdAfx.h、StdAfx.cpp
这些文件用于生成名为 GameClient.pch 的预编译头文件 (PCH)
和名为 StdAfx.obj 的预编译类型文件。
Resource.h
这是标准头文件,它定义新资源 ID。
Microsoft Visual C++ 将读取并更新此文件。
/////////////////////////////////////////////////////////////////////////////
其他说明:
应用程序向导使用“TODO:” 来指示
应添加或自定义的源代码部分。
如果应用程序在共享 DLL 中使用 MFC,且应用程序使用的语言不是
操作系统的当前语言,则需要从 Microsoft Visual C++ 光盘上
Win\System 目录下将相应的本地化资源 MFC70XXX.DLL
复制到计算机的 system 或 system32 目录下,
并将其重命名为 MFCLOC.DLL。 (“XXX”代表
语言缩写。 例如,MFC70DEU.DLL 包含翻译成
德语的资源。) 如果不这样做,应用程序的某些 UI 元素
将保留为操作系统的语言。
/////////////////////////////////////////////////////////////////////////////

+ 251
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/ScoreControl.cpp Просмотреть файл

@@ -0,0 +1,251 @@
#include "StdAfx.h"
#include "ScoreControl.h"
//////////////////////////////////////////////////////////////////////////
//构造函数
CScoreControl::CScoreControl()
{
//设置变量
ZeroMemory(&m_ScoreInfo,sizeof(m_ScoreInfo));
m_ChiHuRight.SetEmpty();
m_ptBenchmark.SetPoint(0,0);
m_bShow = false;
//加载资源
HINSTANCE hResInstance=AfxGetInstanceHandle();
m_ImageGameLost.LoadImage( hResInstance,TEXT("GAME_LOST") );
m_ImageGameWin.LoadImage( hResInstance,TEXT("GAME_WIN") );
m_PngNum.LoadImage( hResInstance,TEXT("NUM_ORDER") );
return;
}
//析构函数
CScoreControl::~CScoreControl()
{
}
//复位数据
void CScoreControl::RestorationData()
{
//设置变量
ZeroMemory(&m_ScoreInfo,sizeof(m_ScoreInfo));
m_ChiHuRight.SetEmpty();
m_bShow = false;
return;
}
//设置积分
void CScoreControl::SetScoreInfo(const tagScoreInfo & ScoreInfo)
{
//设置变量
m_ScoreInfo=ScoreInfo;
m_ChiHuRight.SetRightData( ScoreInfo.dwChiHuRight,MAX_RIGHT_COUNT );
//显示窗口
m_bShow = true;
return;
}
//重画函数
void CScoreControl::DrawScoreControl( CDC *pDC )
{
if( !m_bShow ) return;
pDC->SetBkMode(TRANSPARENT);
int nXPos = m_ptBenchmark.x;
int nYPos = m_ptBenchmark.y;
//绘画背景
if( m_ScoreInfo.lGameScore > 0 )
m_ImageGameWin.DrawImage( pDC,nXPos,nYPos );
else m_ImageGameLost.DrawImage( pDC,nXPos,nYPos );
if( m_ScoreInfo.lGameScore > 0 )
{
nXPos += 84;
nYPos += 17;
}
else
{
nXPos += 46;
nYPos += 14;
}
//胡牌名次
if( m_ScoreInfo.cbWinOrder > 0 )
{
if( m_ScoreInfo.lGameScore > 0 )
DrawNumberString( pDC,m_PngNum,m_ptBenchmark.x+58,m_ptBenchmark.y+30,m_ScoreInfo.cbWinOrder,true );
else
DrawNumberString( pDC,m_PngNum,m_ptBenchmark.x+20,m_ptBenchmark.y+27,m_ScoreInfo.cbWinOrder,true );
}
//胡牌信息
TCHAR szBuffer[256] = TEXT("");
if( !m_ChiHuRight.IsEmpty() )
{
if( m_ScoreInfo.wMeChairId == m_ScoreInfo.wProvideUser )
lstrcpy( szBuffer,TEXT("自摸") );
else
{
lstrcpy( szBuffer,TEXT("赢:") );
TCHAR szName[10] = TEXT("");
lstrcpyn( szName,m_ScoreInfo.szUserName[m_ScoreInfo.wProvideUser],sizeof(szName)/sizeof(TCHAR));
lstrcat( szBuffer,szName );
if( lstrlen(m_ScoreInfo.szUserName[m_ScoreInfo.wProvideUser]) > 8 )
lstrcat( szBuffer,TEXT("...") );
lstrcat( szBuffer,TEXT(" 放炮") );
}
DrawTextString( pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),nXPos,nYPos,false );
nYPos += 19;
DWORD dwRight[] = {
CHR_SHU_FAN,CHR_TIAN_HU,CHR_DI_HU,
CHR_DA_DUI_ZI,CHR_QING_YI_SE,CHR_QI_XIAO_DUI,CHR_DAI_YAO,CHR_JIANG_DUI,CHR_QING_DUI,
CHR_LONG_QI_DUI,CHR_QING_QI_DUI,CHR_QING_YAO_JIU,CHR_QING_LONG_QI_DUI,
CHR_GANG_SHANG_PAO,CHR_GANG_KAI
};
LPCTSTR pszRight[] = {
TEXT("素番 1番 "),TEXT("天胡 6番 "),TEXT("地胡 6番 "),
TEXT("大对子 2番 "),TEXT("清一色 3番 "),TEXT("七小对 3番 "),TEXT("带幺 3番 "),TEXT("将对 4番 "),
TEXT("清对 4番 "),TEXT("龙七对 5番 "),TEXT("清七对 5番 "),TEXT("清幺九 5番 "),TEXT("清龙七对 6番 "),
TEXT("杠上炮 1翻 "),TEXT("杠上花 1翻 ")
};
szBuffer[0] = 0;
for( BYTE j = 0; j < CountArray(pszRight); j++ )
{
if( !(m_ChiHuRight&dwRight[j]).IsEmpty() )
lstrcat( szBuffer,pszRight[j] );
}
//根
if( m_ScoreInfo.cbGenCount > 0 )
{
TCHAR szGen[8];
_sntprintf( szGen,CountArray(szGen),TEXT("根 %d番"),m_ScoreInfo.cbGenCount );
lstrcat( szBuffer,szGen );
}
DrawTextString( pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),nXPos,nYPos,false );
nYPos += 19;
}
//输给玩家
bool bFirstDraw = true;
szBuffer[0] = 0;
for( WORD i = 0; i < GAME_PLAYER; i++ )
{
if( i == m_ScoreInfo.wMeChairId ) continue;
if( m_ScoreInfo.wLostFanShu[i] > 0 )
{
if( bFirstDraw )
{
bFirstDraw = false;
lstrcpy( szBuffer,TEXT("输给 ") );
}
else lstrcpy( szBuffer,TEXT(" ") );
TCHAR szName[10] = TEXT("");
lstrcpyn( szName,m_ScoreInfo.szUserName[i],sizeof(szName)/sizeof(TCHAR) );
lstrcat( szBuffer,szName );
if( lstrlen(m_ScoreInfo.szUserName[i]) > 8 )
lstrcat( szBuffer,TEXT("...") );
_sntprintf( szBuffer,CountArray(szBuffer),TEXT("%s %d"),szBuffer,m_ScoreInfo.wLostFanShu[i] );
DrawTextString( pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),nXPos,nYPos,false );
nYPos += 19;
}
}
//刮风下雨
if( m_ScoreInfo.lGangScore != 0 )
{
_sntprintf( szBuffer,CountArray(szBuffer),TEXT("刮风下雨:%I64d"),m_ScoreInfo.lGangScore );
DrawTextString( pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),nXPos,nYPos,false );
}
//总计
_sntprintf( szBuffer,CountArray(szBuffer),TEXT("%I64d"),m_ScoreInfo.lGameScore );
if( m_ScoreInfo.lGameScore > 0 )
DrawTextString( pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),m_ptBenchmark.x+151,m_ptBenchmark.y+117,false );
else
DrawTextString( pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),m_ptBenchmark.x+115,m_ptBenchmark.y+114,false );
return;
}
//艺术字体
void CScoreControl::DrawTextString(CDC * pDC, LPCTSTR pszString, COLORREF crText, COLORREF crFrame, int nXPos, int nYPos, bool bDrawCenter)
{
//变量定义
int nStringLength=lstrlen(pszString);
int nXExcursion[8]={1,1,1,0,-1,-1,-1,0};
int nYExcursion[8]={-1,0,1,1,1,0,-1,-1};
if( bDrawCenter )
{
TEXTMETRIC tm;
ZeroMemory( &tm,sizeof(tm) );
GetTextMetrics(pDC->m_hDC,&tm );
nXPos -= tm.tmAveCharWidth*nStringLength/2;
nYPos -= tm.tmHeight/2;
}
//绘画边框
pDC->SetTextColor(crFrame);
for (int i=0;i<CountArray(nXExcursion);i++)
{
pDC->TextOut(nXPos+nXExcursion[i],nYPos+nYExcursion[i],pszString,nStringLength);
}
//绘画字体
pDC->SetTextColor(crText);
pDC->TextOut(nXPos,nYPos,pszString,nStringLength);
return;
}
//绘画数字
void CScoreControl::DrawNumberString( CDC *pDC, CPngImage &PngNumber, int nXPos, int nYPos, LONGLONG lNumber, bool bDrawCenter)
{
int nWidthNumber = PngNumber.GetWidth()/10;
int nHeightNumber = PngNumber.GetHeight();
int nXDrawPos = nXPos, nYDrawPos = nYPos;
nYDrawPos -= nHeightNumber/2;
TCHAR szNum[256] = {0};
_sntprintf(szNum,CountArray(szNum),TEXT("%+I64d"),lNumber);
if( bDrawCenter )
{
nXDrawPos -= (lstrlen(szNum)-1)*nWidthNumber/2;
}
for( int i = 1; i < lstrlen(szNum); i++ )
{
if( ::isdigit(szNum[i]) )
{
PngNumber.DrawImage( pDC,nXDrawPos,nYDrawPos,nWidthNumber,nHeightNumber,(((int)szNum[i]-48))*nWidthNumber,
0,nWidthNumber,nHeightNumber );
}
else
{
break;
}
nXDrawPos += nWidthNumber;
}
}
//
void CScoreControl::SetBenchmarkPos( int nXPos, int nYPos )
{
m_ptBenchmark.SetPoint( nXPos,nYPos );
}
//////////////////////////////////////////////////////////////////////////

+ 82
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/ScoreControl.h Просмотреть файл

@@ -0,0 +1,82 @@
#ifndef SCORE_CONTROL_HEAD_FILE
#define SCORE_CONTROL_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "CardControl.h"
#include "GameLogic.h"
//////////////////////////////////////////////////////////////////////////
//积分信息
struct tagScoreInfo
{
TCHAR szUserName[GAME_PLAYER][32]; //用户名字
//用户信息
WORD wMeChairId; //
BYTE cbWinOrder; //胡牌排名
//积分信息
WORD wProvideUser; //供应用户
LONGLONG lGameScore; //游戏积分
LONG lGameTax; //
DWORD dwChiHuRight[MAX_RIGHT_COUNT]; //
LONGLONG lGangScore; //详细得分
BYTE cbGenCount; //
WORD wLostFanShu[GAME_PLAYER]; //
};
//////////////////////////////////////////////////////////////////////////
//积分控件
class CScoreControl
{
//变量定义
protected:
tagScoreInfo m_ScoreInfo; //积分信息
CChiHuRight m_ChiHuRight; //
bool m_bShow; //
//位置变量
protected:
CPoint m_ptBenchmark; //
//资源变量
protected:
CPngImage m_ImageGameWin; //积分视图
CPngImage m_ImageGameLost; //
CPngImage m_PngNum; //
//函数定义
public:
//构造函数
CScoreControl();
//析构函数
virtual ~CScoreControl();
//功能函数
public:
//复位数据
void RestorationData();
//设置积分
void SetScoreInfo(const tagScoreInfo & ScoreInfo);
//
void DrawScoreControl( CDC *pDC );
//
void SetBenchmarkPos( int nXPos, int nYPos );
//辅助函数
protected:
//艺术字体
void DrawTextString(CDC * pDC, LPCTSTR pszString, COLORREF crText, COLORREF crFrame, int nXPos, int nYPos, bool bDrawCenter);
//绘画数字
void DrawNumberString( CDC *pDC, CPngImage &PngNumber, int nXPos, int nYPos, LONGLONG lNumber, bool bDrawCenter);
};
//////////////////////////////////////////////////////////////////////////
#endif

+ 7
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/Stdafx.cpp Просмотреть файл

@@ -0,0 +1,7 @@
// stdafx.cpp : 只包括标准包含文件的源文件
// GameClient.pch 将是预编译头
// stdafx.obj 将包含预编译类型信息
#include "stdafx.h"

+ 131
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/Stdafx.h Просмотреть файл

@@ -0,0 +1,131 @@
#pragma once
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // 从 Windows 标头中排除不常使用的资料
#endif
// 如果您必须使用下列所指定的平台之前的平台,则修改下面的定义。
// 有关不同平台的相应值的最新信息,请参考 MSDN。
#ifndef WINVER // 允许使用 Windows 95 和 Windows NT 4 或更高版本的特定功能。
#define WINVER 0x0501 //为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
#endif
#ifndef _WIN32_WINNT // 允许使用 Windows NT 4 或更高版本的特定功能。
#define _WIN32_WINNT 0x0501 //为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
#endif
#ifndef _WIN32_WINDOWS // 允许使用 Windows 98 或更高版本的特定功能。
#define _WIN32_WINDOWS 0x0410 //为 Windows Me 及更新版本改变为适当的值。
#endif
#ifndef _WIN32_IE // 允许使用 IE 4.0 或更高版本的特定功能。
#define _WIN32_IE 0x0400 //为 IE 5.0 及更新版本改变为适当的值。
#endif
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的
// 关闭 MFC 对某些常见但经常被安全忽略的警告消息的隐藏
#define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC 核心和标准组件
#include <afxext.h> // MFC 扩展
#include <afxdisp.h> // MFC 自动化类
#include <afxdtctl.h> // Internet Explorer 4 公共控件的 MFC 支持
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // Windows 公共控件的 MFC 支持
#endif // _AFX_NO_AFXCMN_SUPPORT
//////////////////////////////////////////////////////////////////////////
#include "..\消息定义\CMD_Sparrow.h"
//////////////////////////////////////////////////////////////////////////////////
//编译环境
#include "..\..\..\SDKCondition.h"
//////////////////////////////////////////////////////////////////////////////////
#ifdef SDK_CONDITION
//////////////////////////////////////////////////////////////////////////////////
//开发环境
#include "..\..\..\开发库\Include\GameFrameHead.h"
#ifndef _DEBUG
#ifndef _UNICODE
#pragma comment (lib,"../../../开发库/Lib/Ansi/WHImage.lib")
#pragma comment (lib,"../../../开发库/Lib/Ansi/GameFrame.lib")
#pragma comment (lib,"../../../开发库/Lib/Ansi/GameEngine.lib")
#pragma comment (lib,"../../../开发库/Lib/Ansi/SkinControl.lib")
#pragma comment (lib,"../../../开发库/Lib/Ansi/ServiceCore.lib")
#else
#pragma comment (lib,"../../../开发库/Lib/Unicode/WHImage.lib")
#pragma comment (lib,"../../../开发库/Lib/Unicode/GameFrame.lib")
#pragma comment (lib,"../../../开发库/Lib/Unicode/GameEngine.lib")
#pragma comment (lib,"../../../开发库/Lib/Unicode/SkinControl.lib")
#pragma comment (lib,"../../../开发库/Lib/Unicode/ServiceCore.lib")
#endif
#else
#ifndef _UNICODE
#pragma comment (lib,"../../../开发库/Lib/Ansi/WHImageD.lib")
#pragma comment (lib,"../../../开发库/Lib/Ansi/GameFrameD.lib")
#pragma comment (lib,"../../../开发库/Lib/Ansi/GameEngineD.lib")
#pragma comment (lib,"../../../开发库/Lib/Ansi/SkinControlD.lib")
#pragma comment (lib,"../../../开发库/Lib/Ansi/ServiceCoreD.lib")
#else
#pragma comment (lib,"../../../开发库/Lib/Unicode/WHImageD.lib")
#pragma comment (lib,"../../../开发库/Lib/Unicode/GameFrameD.lib")
#pragma comment (lib,"../../../开发库/Lib/Unicode/GameEngineD.lib")
#pragma comment (lib,"../../../开发库/Lib/Unicode/SkinControlD.lib")
#pragma comment (lib,"../../../开发库/Lib/Unicode/ServiceCoreD.lib")
#endif
#endif
//////////////////////////////////////////////////////////////////////////////////
#else
//////////////////////////////////////////////////////////////////////////////////
//系统环境
#include "..\..\..\..\系统模块\客户端组件\游戏框架\GameFrameHead.h"
#ifndef _DEBUG
#ifndef _UNICODE
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/WHImage.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/GameFrame.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/GameEngine.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/SkinControl.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/ServiceCore.lib")
#else
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/WHImage.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/GameFrame.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/GameEngine.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/SkinControl.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/ServiceCore.lib")
#endif
#else
#ifndef _UNICODE
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/WHImageD.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/GameFrameD.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/GameEngineD.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/SkinControlD.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/ServiceCoreD.lib")
#else
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/WHImageD.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/GameFrameD.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/GameEngineD.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/SkinControlD.lib")
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/ServiceCoreD.lib")
#endif
#endif
//////////////////////////////////////////////////////////////////////////////////
#endif
//////////////////////////////////////////////////////////////////////////
//#pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.VC80.CRT' version='8.0.50727.702' processorArchitecture='X86' publicKeyToken='1fc8b3b9a1e18e3b' language='*' \"")

+ 31
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/gameclient.cpp Просмотреть файл

@@ -0,0 +1,31 @@
#include "Stdafx.h"
#include "GameClient.h"
#include "GameClientEngine.h"
//应用程序对象
CGameClientApp theApp;
//////////////////////////////////////////////////////////////////////////
//构造函数
CGameClientApp::CGameClientApp()
{
}
//析构函数
CGameClientApp::~CGameClientApp()
{
}
//创建引擎
CGameFrameEngine * CGameClientApp::GetGameFrameEngine(DWORD dwSDKVersion)
{
//版本检测
if (InterfaceVersionCompare(VERSION_FRAME_SDK,dwSDKVersion)==false) return NULL;
//创建引擎
return new CGameClientEngine;
}
//////////////////////////////////////////////////////////////////////////

+ 1818
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/gameclientengine.cpp
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 168
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/gameclientview.h Просмотреть файл

@@ -0,0 +1,168 @@
#pragma once
#include "Stdafx.h"
#include "ControlWnd.h"
#include "CardControl.h"
#include "ScoreControl.h"
#include "DrawSiceWnd.h"
//////////////////////////////////////////////////////////////////////////
//消息定义
#define IDM_START (WM_USER+100) //开始消息
#define IDM_OUT_CARD (WM_USER+101) //出牌消息
#define IDM_TRUSTEE_CONTROL (WM_USER+102) //托管控制
#define IDI_DISC_EFFECT 102 //丢弃效果
//////////////////////////////////////////////////////////////////////////
//游戏视图
class CGameClientView : public CGameFrameViewGDI
{
//标志变量
protected:
bool m_bOutCard; //出牌标志
bool m_bWaitOther; //等待标志
bool m_bTrustee[GAME_PLAYER]; //是否托管
LONGLONG m_lGangScore[GAME_PLAYER]; //
//游戏属性
protected:
LONGLONG m_lCellScore; //基础积分
WORD m_wBankerUser; //庄家用户
WORD m_wCurrentUser; //当前用户
BYTE m_cbWinOrder[GAME_PLAYER]; //
//动作动画
protected:
bool m_bBombEffect; //动作效果
BYTE m_cbBombFrameIndex; //帧数索引
//丢弃效果
WORD m_wDiscUser; //丢弃用户
BYTE m_cbDiscFrameIndex; //帧数索引
//杠牌动画
int m_nYGangStep; //
BYTE m_cbXiaYu; //
WORD m_wGangChairId; //
BYTE m_cbGangIndex; //
//用户状态
protected:
BYTE m_cbCardData; //出牌扑克
WORD m_wOutCardUser; //出牌用户
BYTE m_cbUserAction[4]; //用户动作
//位置变量
protected:
CPoint m_UserFlagPos[4]; //标志位置
CPoint m_PointTrustee[GAME_PLAYER]; //托管位置
CPoint m_ptWinOrder[GAME_PLAYER]; //
CPoint m_ptGangScore[GAME_PLAYER]; //
//位图变量
protected:
CBitImage m_ImageBack; //背景图案
CBitImage m_ImageCenter; //LOGO图
CBitImage m_ImageWait; //等待提示
CBitImage m_ImageOutCard; //出牌提示
CBitImage m_ImageUserFlag; //用户标志
CBitImage m_ImageUserAction; //用户动作
CBitImage m_ImageActionBack; //动作背景
CPngImage m_ImageTrustee; //托管标志
CPngImage m_ImageActionAni; //吃牌动画资源
CPngImage m_ImageDisc; //丢弃效果
CPngImage m_ImageArrow; //定时器箭头
CBitImage m_ImageWinOrder; //
CPngImage m_ImageCellScore; //
CPngImage m_PngNumWin; //
CPngImage m_PngNumLost; //
CPngImage m_PngXiaYu; //
CPngImage m_PngGuaFeng; //
//扑克控件
public:
CHeapCard m_HeapCard[4]; //堆立扑克
CUserCard m_UserCard[3]; //用户扑克
CTableCard m_TableCard[4]; //桌面扑克
CWeaveCard m_WeaveCard[4][4]; //组合扑克
CDiscardCard m_DiscardCard[4]; //丢弃扑克
CCardControl m_HandCardControl; //手上扑克
//控件变量
public:
CSkinButton m_btStart; //开始按钮
CSkinButton m_btStusteeControl; //拖管控制
CControlWnd m_ControlWnd; //控制窗口
CScoreControl m_ScoreControl[GAME_PLAYER]; //积分控件
CDrawSiceWnd m_DrawSiceWnd; //色子控件
//函数定义
public:
//构造函数
CGameClientView();
//析构函数
virtual ~CGameClientView();
//继承函数
private:
//重置界面
virtual void ResetGameView();
//调整控件
virtual void RectifyControl(int nWidth, int nHeight);
//绘画界面
virtual void DrawGameView(CDC * pDC, int nWidth, int nHeight);
//功能函数
public:
//基础积分
void SetCellScore(LONGLONG lCellScore);
//庄家用户
void SetBankerUser(WORD wBankerUser);
//状态标志
void SetStatusFlag(bool bOutCard, bool bWaitOther);
//出牌信息
void SetOutCardInfo(WORD wViewChairID, BYTE cbCardData);
//动作信息
void SetUserAction(WORD wViewChairID, BYTE bUserAction);
//设置动作
bool SetBombEffect(bool bBombEffect);
//丢弃用户
void SetDiscUser(WORD wDiscUser);
//定时玩家
void SetCurrentUser(WORD wCurrentUser);
//设置托管
void SetTrustee(WORD wTrusteeUser,bool bTrustee);
//
void SetWinOrder( WORD wChairId, BYTE cbWinOrder );
//
void SetGangScore( WORD wChairId, BYTE cbXiaYu, LONGLONG lGangScore[GAME_PLAYER] );
//辅助函数
protected:
//艺术字体
void DrawTextString(CDC * pDC, LPCTSTR pszString, COLORREF crText, COLORREF crFrame, int nXPos, int nYPos, bool bDrawCenter);
//绘画数字
void DrawNumberString( CDC *pDC, CPngImage &PngNumber, int nXPos, int nYPos, LONGLONG lNumber, bool bDrawCenter, bool bDrawSign);
//消息映射
protected:
//开始按钮
afx_msg void OnStart();
//拖管控制
afx_msg void OnStusteeControl();
//建立函数
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
//鼠标消息
afx_msg void OnLButtonDown(UINT nFlags, CPoint Point);
//光标消息
afx_msg BOOL OnSetCursor(CWnd * pWnd, UINT nHitTest, UINT uMessage);
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnTimer(UINT nIDEvent);
};
//////////////////////////////////////////////////////////////////////////

+ 63
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏客户端/resource.h Просмотреть файл

@@ -0,0 +1,63 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by GameClient.rc
//
#define IDR_MAINFRAME 128
#define IDR_WAVE1 146
#define IDB_VIEW_BACK 147
#define IDC_CARD_CUR 147
#define IDB_BT_START 164
#define IDB_OUT_CARD_TIP 165
#define IDB_BT_CHIHU 166
#define IDB_ACTION_BACK 169
#define IDB_USER_ACTION 170
#define IDB_USER_FLAG 171
#define IDB_BT_GIVEUP 172
#define IDB_CONTROL_TOP 174
#define IDB_CONTROL_BOTTOM 175
#define IDD_OPTION 175
#define IDB_CONTROL_MID 176
#define IDB_WAIT_TIP 178
#define IDB_ACTION_EXPLAIN 184
#define IDB_BITMAP1 191
#define IDB_SELECT 191
#define IDB_BT_SCORE_CLOSE 193
#define IDB_BITMAP2 194
#define IDB_BITMAP3 195
#define IDB_BITMAP4 196
#define IDB_VIEW_CENTER 196
#define IDB_DRAW_SICE1 197
#define IDB_DRAW_SICE2 198
#define IDB_DRAW_SICE3 199
#define IDB_DRAW_SICE4 200
#define IDB_DRAW_SICE5 201
#define IDB_DRAW_SICE6 202
#define IDB_DRAW_SICE7 203
#define IDB_DRAW_SICE8 204
#define IDB_DRAW_SICE9 205
#define IDB_DRAW_SICE10 206
#define IDB_DRAW_SICE11 207
#define IDB_DRAW_SICE12 208
#define IDB_BT_START_TRUSTEE 209
#define IDB_BT_STOP_TRUSTEE 210
#define IDB_SICE_BACK 211
#define IDB_BITMAP5 214
#define IDD_RESPONSE_LISTEN 215
#define IDB_BITMAP6 217
#define IDB_BITMAP7 218
#define IDB_WIN_ORDER 218
#define IDR_PNG2 234
#define IDC_ENABLE_LOOKON 1000
#define IDC_ENABLE_SOUND 1002
#define IDC_COMBOX_MANDERIN 1003
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 238
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1005
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

+ 1586
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogic.cpp
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 128
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogic.h Просмотреть файл

@@ -0,0 +1,128 @@
#ifndef GAME_LOGIC_HEAD_FILE
#define GAME_LOGIC_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "data.h"
class CTableFrameSink;
//游戏逻辑类
class CGameLogic
{
//变量定义
protected:
static const BYTE m_cbCardDataArray[MAX_REPERTORY]; //扑克数据
static const BYTE m_cbCardDataArray_SRLF[MAX_REPERTORY_SRLF]; //扑克数据
BYTE m_cbMagicIndex; //钻牌索引
CTableFrameSink* m_pTableFramSink;
//函数定义
public:
//构造函数
CGameLogic(CTableFrameSink* pTableFramSink);
//析构函数
virtual ~CGameLogic();
//控制函数
public:
//混乱扑克
BYTE RandCardData(BYTE cbCardData[]);
//删除扑克
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbRemoveCard);
//删除扑克
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], const BYTE cbRemoveCard[], BYTE cbRemoveCount);
//删除扑克
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, const BYTE cbRemoveCard[], BYTE cbRemoveCount);
//设置钻牌
void SetMagicIndex( BYTE cbMagicIndex ) { m_cbMagicIndex = cbMagicIndex; }
//钻牌
bool IsMagicCard( BYTE cbCardData );
//获取手上癞子数量
BYTE GetLaiZiCount(const BYTE cbCardIndex[MAX_INDEX], BYTE m_cbLaiZi);
//辅助函数
public:
//获取麻将花色
BYTE GetCardColor(BYTE cbCardData) { return (cbCardData&MASK_COLOR) >> 4 ;}
//有效判断
bool IsValidCard(BYTE cbCardData);
//扑克数目
BYTE GetCardCount(const BYTE cbCardIndex[MAX_INDEX]);
//组合扑克
BYTE GetWeaveCard(int cbWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]);
//等级函数
public:
//动作等级
BYTE GetUserActionRank(BYTE cbUserAction);
//胡牌等级
//WORD GetChiHuActionRank(const CChiHuRight & ChiHuRight);
//动作判断
public:
//吃牌判断,一脚耐油不需要
//BYTE EstimateEatCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//碰牌判断
int EstimatePengCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard, BYTE LaiZiPiData);
//杠牌判断
int EstimateGangCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//动作判断
public:
//杠牌分析
int AnalyseGangCard(const BYTE cbCardIndex[MAX_INDEX], const BYTE m_cbLaiZiData, const BYTE m_cbLaiZiPiData, const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, tagGangCardResult & GangCardResult, BYTE bProvideCard = 0, bool bCanAnGang = true);
//吃胡分析,改成自摸分析
//int AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, CChiHuRight &ChiHuRight, BYTE m_cbLaiZi);
//重载一个用来无赖到底的判断
int AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, CChiHuRight &ChiHuRight, BYTE m_cbLaiZi, BYTE bSubMit);
//听牌分析
bool AnalyseTingCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE *m_cbTingPaiData, BYTE m_cbLaiZi, BYTE subMit, BYTE LaiZiCount);
//是否听牌
bool IsTingCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE m_cbLaiZi, BYTE subMit, BYTE LaiZiCount);
//是否花猪,一脚耐油不需要判断花猪牌型
//bool IsHuaZhu( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbDingque);
//中张
//bool IsZhongZhang(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount);
//转换函数
public:
//扑克转换
BYTE SwitchToCardData(BYTE cbCardIndex);
//扑克转换
BYTE SwitchToCardIndex(BYTE cbCardData);
//扑克转换
BYTE SwitchToCardData(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[MAX_COUNT]);
//扑克转换
BYTE SwitchToCardIndex(const BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX]);
BYTE GetValue(USHORT uNum, byte PaiZhi);
//获取手牌最后牌值
BYTE GetEndCard(const BYTE cbCardIndex[MAX_INDEX],BYTE mLaiZiData);
bool PeiPai(BYTE cbCardData[MAX_REPERTORY]);
//胡法分析
protected:
//大对子
//bool IsPengPeng( const tagAnalyseItem *pAnalyseItem );
//清一色牌
//bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount,const BYTE cbCurrentCard);
//七小对牌
//bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[],const BYTE cbWeaveCount,const BYTE cbCurrentCard);
//带幺
//bool IsDaiYao( const tagAnalyseItem *pAnalyseItem );
//将对
//bool IsJiangDui( const tagAnalyseItem *pAnalyseItem );
//内部函数
private:
//分析扑克
bool AnalyseCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, CAnalyseItemArray & AnalyseItemArray);
//排序,根据牌值排序
bool SortCardList( BYTE cbCardData[MAX_COUNT], BYTE cbCardCount );
};
//////////////////////////////////////////////////////////////////////////
#endif

+ 1193
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogicCxz.cpp
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 128
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogicCxz.h Просмотреть файл

@@ -0,0 +1,128 @@
#ifndef GAME_LOGIC_CXZ_HEAD_FILE
#define GAME_LOGIC_CXZ_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "data.h"
class TableFrameSinkCxz;
//游戏逻辑类
class CGameLogicCxz
{
//变量定义
protected:
static const BYTE m_cbCardDataArray[MAX_REPERTORY]; //扑克数据
static const BYTE m_cbCardDataArray_SRLF[MAX_REPERTORY_SRLF]; //扑克数据
BYTE m_cbMagicIndex; //钻牌索引
TableFrameSinkCxz* m_pTableFramSink;
//函数定义
public:
//构造函数
CGameLogicCxz(TableFrameSinkCxz* pTableFramSink);
//析构函数
virtual ~CGameLogicCxz();
//控制函数
public:
//混乱扑克
BYTE RandCardData(BYTE cbCardData[]);
//删除扑克
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbRemoveCard);
//删除扑克
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], const BYTE cbRemoveCard[], BYTE cbRemoveCount);
//删除扑克
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, const BYTE cbRemoveCard[], BYTE cbRemoveCount);
//设置钻牌
void SetMagicIndex( BYTE cbMagicIndex ) { m_cbMagicIndex = cbMagicIndex; }
//钻牌
bool IsMagicCard( BYTE cbCardData );
//获取手上癞子数量
BYTE GetLaiZiCount(const BYTE cbCardIndex[MAX_INDEX], BYTE m_cbLaiZi);
//辅助函数
public:
//获取麻将花色
BYTE GetCardColor(BYTE cbCardData) { return (cbCardData&MASK_COLOR) >> 4 ;}
//有效判断
bool IsValidCard(BYTE cbCardData);
//扑克数目
BYTE GetCardCount(const BYTE cbCardIndex[MAX_INDEX]);
//组合扑克
BYTE GetWeaveCard(int cbWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]);
//等级函数
public:
//动作等级
BYTE GetUserActionRank(BYTE cbUserAction);
//胡牌等级
//WORD GetChiHuActionRank(const CChiHuRight & ChiHuRight);
//动作判断
public:
//吃牌判断,一脚耐油不需要
//BYTE EstimateEatCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//碰牌判断
int EstimatePengCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard, BYTE LaiZiPiData);
//杠牌判断
int EstimateGangCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//动作判断
public:
//杠牌分析
int AnalyseGangCard(const BYTE cbCardIndex[MAX_INDEX], const BYTE m_cbLaiZiData, const BYTE m_cbLaiZiPiData, const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, tagGangCardResult & GangCardResult, BYTE bProvideCard = 0, bool bCanAnGang = true);
//吃胡分析,改成自摸分析
//int AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, CChiHuRight &ChiHuRight, BYTE m_cbLaiZi);
//重载一个用来无赖到底的判断
int AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, CChiHuRight &ChiHuRight, BYTE m_cbLaiZi, BYTE bSubMit);
//听牌分析
bool AnalyseTingCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE *m_cbTingPaiData, BYTE m_cbLaiZi, BYTE subMit, BYTE LaiZiCount);
//是否听牌
bool IsTingCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE m_cbLaiZi, BYTE subMit, BYTE LaiZiCount);
//是否花猪,一脚耐油不需要判断花猪牌型
//bool IsHuaZhu( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbDingque);
//中张
//bool IsZhongZhang(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount);
//转换函数
public:
//扑克转换
BYTE SwitchToCardData(BYTE cbCardIndex);
//扑克转换
BYTE SwitchToCardIndex(BYTE cbCardData);
//扑克转换
BYTE SwitchToCardData(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[MAX_COUNT]);
//扑克转换
BYTE SwitchToCardIndex(const BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX]);
BYTE GetValue(USHORT uNum, byte PaiZhi);
//获取手牌最后牌值
BYTE GetEndCard(const BYTE cbCardIndex[MAX_INDEX], BYTE mLaiZiData);
bool PeiPai(BYTE cbCardData[MAX_REPERTORY]);
//胡法分析
protected:
//大对子
//bool IsPengPeng( const tagAnalyseItem *pAnalyseItem );
//清一色牌
//bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount,const BYTE cbCurrentCard);
//七小对牌
//bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[],const BYTE cbWeaveCount,const BYTE cbCurrentCard);
//带幺
//bool IsDaiYao( const tagAnalyseItem *pAnalyseItem );
//将对
//bool IsJiangDui( const tagAnalyseItem *pAnalyseItem );
//内部函数
private:
//分析扑克
bool AnalyseCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, CAnalyseItemArray & AnalyseItemArray);
//排序,根据牌值排序
bool SortCardList( BYTE cbCardData[MAX_COUNT], BYTE cbCardCount );
};
//////////////////////////////////////////////////////////////////////////
#endif

+ 1463
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogicOther.cpp
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 128
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogicOther.h Просмотреть файл

@@ -0,0 +1,128 @@
#ifndef GAME_LOGIC_OTHER_HEAD_FILE
#define GAME_LOGIC_OTHER_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "data.h"
class CTableFrameSinkOther;
//游戏逻辑类
class CGameLogicOther
{
//变量定义
protected:
static const BYTE m_cbCardDataArray[MAX_REPERTORY]; //扑克数据
static const BYTE m_cbCardDataArray_SRLF[MAX_REPERTORY_SRLF]; //扑克数据
BYTE m_cbMagicIndex; //钻牌索引
CTableFrameSinkOther* m_pTableFramSink;
//函数定义
public:
//构造函数
CGameLogicOther(CTableFrameSinkOther* pTableFramSink);
//析构函数
virtual ~CGameLogicOther();
//控制函数
public:
//混乱扑克
BYTE RandCardData(BYTE cbCardData[]);
//删除扑克
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbRemoveCard);
//删除扑克
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], const BYTE cbRemoveCard[], BYTE cbRemoveCount);
//删除扑克
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, const BYTE cbRemoveCard[], BYTE cbRemoveCount);
//设置钻牌
void SetMagicIndex( BYTE cbMagicIndex ) { m_cbMagicIndex = cbMagicIndex; }
//钻牌
bool IsMagicCard( BYTE cbCardData );
//辅助函数
public:
//获取麻将花色
BYTE GetCardColor(BYTE cbCardData) { return (cbCardData&MASK_COLOR) >> 4 ;}
//有效判断
bool IsValidCard(BYTE cbCardData);
//扑克数目
BYTE GetCardCount(const BYTE cbCardIndex[MAX_INDEX]);
//组合扑克
BYTE GetWeaveCard(int cbWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]);
//等级函数
public:
//动作等级
BYTE GetUserActionRank(INT cbUserAction);
//胡牌等级
WORD GetChiHuActionRank(const CChiHuRight & ChiHuRight);
//动作判断
public:
//吃牌判断,一脚耐油不需要
//BYTE EstimateEatCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//碰牌判断
int EstimatePengCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//杠牌判断
int EstimateGangCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
//动作判断
public:
//杠牌分析
int AnalyseGangCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, tagGangCardResult & GangCardResult, BYTE bProvideCard = 0, bool bCanAnGang = true);
//吃胡分析,改成自摸分析
int AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, CChiHuRight &ChiHuRight, BYTE bSubMit);
//听牌分析
bool AnalyseTingCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE *m_cbTingPaiData, BYTE subMit);
//是否听牌,true表示已经听牌
bool IsTingCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE subMit);
//是否花猪,一脚耐油不需要判断花猪牌型
bool IsHuaZhu( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount);
//中张
//bool IsZhongZhang(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount);
//转换函数
public:
//扑克转换
BYTE SwitchToCardData(BYTE cbCardIndex);
//扑克转换
BYTE SwitchToCardIndex(BYTE cbCardData);
//扑克转换
BYTE SwitchToCardData(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[MAX_COUNT]);
//扑克转换
BYTE SwitchToCardIndex(const BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX]);
//获取默认换三张牌值
bool ExchangeCardIndex(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[EXCHANGE]);
//获取牌个数
WORD GetValue(BYTE uNum,BYTE fanshu, BYTE PaiZhi);
//解码加密的牌
BYTE DeCodeCard(const WORD cbCardData);
//解码翻数
BYTE DeCodeFanshu(const WORD cbCardData);
//获取手牌最后牌值
BYTE GetEndCard(BYTE cbCardIndex[MAX_INDEX]);
bool PeiPai(BYTE cbCardData[MAX_REPERTORY]);
//胡法分析
//大对子
bool IsPengPeng(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount);
//清一色牌
bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount,const BYTE cbCurrentCard);
//七小对牌
//bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[],const BYTE cbWeaveCount,const BYTE cbCurrentCard);
//带幺
//bool IsDaiYao( const tagAnalyseItem *pAnalyseItem );
//将对
//bool IsJiangDui( const tagAnalyseItem *pAnalyseItem );
//内部函数
private:
//分析扑克
bool AnalyseCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, CAnalyseItemArray & AnalyseItemArray);
//排序,根据牌值排序
bool SortCardList( BYTE cbCardData[MAX_COUNT], BYTE cbCardCount );
};
//////////////////////////////////////////////////////////////////////////
#endif

+ 3084
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogicZhiPai.cpp
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 147
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameLogicZhiPai.h Просмотреть файл

@@ -0,0 +1,147 @@
#ifndef GAME_LOGIC_ZHIPAI_HEAD_FILE
#define GAME_LOGIC_ZHIPAI_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "data.h"
class TableFrameSinkZhiPai;
//游戏逻辑类
class CGameLogicZhiPai
{
//变量定义
protected:
//////////////////////////////////////////////////////////////////////////
/*
*长沙麻将已定义的成员变量
*/
static const BYTE m_cbCardDataArray_HUA[MAX_REPERTORY_HUA]; //花牌
static const BYTE m_cbCardDataArray_HUA_One[MAX_REPERTORY_HUA_ONE]; //花牌
static const BYTE m_cbCardDataArray_HUA_Two[MAX_REPERTORY_HUA_TWO]; //花牌
TableFrameSinkZhiPai* m_pTableFramSink;
BYTE m_cbMagicIndex; //钻牌索引
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
/*
*长沙麻将已定义的函数
*/
//函数定义
public:
//构造函数
CGameLogicZhiPai(TableFrameSinkZhiPai* pTableFramSink);
//析构函数
virtual ~CGameLogicZhiPai();
//控制函数
public:
//混乱麻将
BYTE RandCardData(BYTE cbCardData[], BYTE bGameType);
//删除麻将
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX_HUA], BYTE cbRemoveCard);
//删除麻将
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX_HUA], const BYTE cbRemoveCard[], BYTE cbRemoveCount);
//删除麻将
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, const BYTE cbRemoveCard[], BYTE cbRemoveCount);
//辅助函数
public:
//获取麻将花色
BYTE GetCardColor(BYTE cbCardData) { return (cbCardData&MASK_COLOR) >> 4; }
//有效判断
bool IsValidCard(BYTE cbCardData);
//麻将数目
BYTE GetCardCount(const BYTE cbCardIndex[MAX_INDEX_HUA]);
//组合麻将
BYTE GetWeaveCard(int cbWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]);
//等级函数
public:
//动作等级
BYTE GetUserActionRank(int cbUserAction);
//动作判断
public:
//吃牌判断
//int EstimateEatCard(const BYTE cbCardIndex[MAX_INDEX_HUA], BYTE cbCurrentCard);
//对牌判断
int EstimatePengCard(const BYTE cbCardIndex[MAX_INDEX_HUA], BYTE cbCurrentCard);
//招牌判断,bFlag = false表示正常杠,true表示已经杠了的人
int EstimateGangCard(const BYTE cbCardIndex[MAX_INDEX_HUA], BYTE cbCurrentCard, const tagWeaveItem_Hua WeaveItem[], BYTE cbWeaveCount);
//杠牌补张分析,默认false表示正常判断,true表示游戏开始的请统
int AnalyseGangCard(const BYTE cbCardIndex[MAX_INDEX_HUA], const BYTE HuaCardInex[5], const tagWeaveItem_Hua WeaveItem[], BYTE cbWeaveCount,
tagGangCardResult_Hua & GangCardResult, bool bFlag = false);
//是否听牌
//bool IsTingCard(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE subMit);
//是否胡牌
//bool IsHuCard(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard);
//听牌分析
//bool AnalyseTingCard(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount,
// BYTE *cbTingPaiData, BYTE subMit);
//胡牌分析
//分析胡牌
int AnalyseHuCard(const BYTE cbCardIndex[MAX_INDEX_HUA], const BYTE HuaCardInex[5], BYTE cbCurrentCard, const tagWeaveItem_Hua WeaveItem[MAX_WEAVE_HUA], BYTE cbItemCount, const BYTE WeavHuaIndex[5], BYTE TongCount, tagHuCardResult & ChiHuResult);
//转换函数
public:
//扑克转换
BYTE SwitchToCardData(BYTE cbCardIndex);
//扑克转换
BYTE SwitchToCardIndex(BYTE cbCardData);
//扑克转换
BYTE SwitchToCardData(BYTE cbCardIndex[MAX_INDEX_HUA], BYTE cbCardData[MAX_COUNT_HUA], BYTE cbHuaCardIndex[]);
//扑克转换
BYTE SwitchToCardIndex(const BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX_HUA]);
//把组合牌里面的统转化成手牌
bool HeBingCardIndex(BYTE cbCardIndexTemp[MAX_INDEX_HUA], const BYTE cbCardIndex_Tong[MAX_INDEX_HUA], BYTE cbTempHuaCardIndex[5], const BYTE HuaCardInex_Tong[5]);
//根据扑克牌数据,得到花牌保存到索引数组中
// 扑克牌数据 牌数 花牌索引数组
BYTE GetHuaCard(BYTE cbCardData[], BYTE bCardCount, BYTE cbHuaCardIndex[]);
//获取牌个数
WORD GetValue(BYTE uNum, BYTE fanshu, WORD PaiZhi);
//解码加密的牌
BYTE DeCodeCard(const WORD cbCardData);
//解码翻数
BYTE DeCodeFanshu(const WORD cbCardData);
//获取手牌最后牌值
BYTE GetEndCard(BYTE cbCardIndex[MAX_INDEX_HUA]);
//胡法分析
protected:
//不符合硬胡规则
//七小对
//bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], const BYTE cbWeaveCount);
////将将胡
//bool IsJiangJiang(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], const BYTE cbWeaveCount);
////要符合硬胡规则
////清一色
//bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], const BYTE cbItemCount);
////碰碰胡
//bool IsPengPeng(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], const BYTE cbItemCount);
////全求人
//bool IsQuanQiuRen(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], const BYTE cbItemCount);
////七小对类型
//int TypeQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX_HUA]);
//内部函数
public:
bool PeiPai(BYTE cbCardData[], BYTE nCount);
//分析扑克
bool AnalyseCard(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem_Hua WeaveItem[], BYTE cbWeaveCount, CAnalyseItemArray_hua & AnalyseItemArray);
//算最大胡子
BYTE AnalyseCardHuNum(const BYTE cbCardIndex[MAX_INDEX_HUA], BYTE cbCurrentCard, BYTE cbHandGoldCard[3], BYTE LaiZi[3], BYTE cbTempHuaCardIndex[5], BYTE cbTempWeaveHuaIndex[5], const tagWeaveItem_Hua WeaveItem[], BYTE cbItemCount, BYTE TongCount, CAnalyseItemArray_hua & AnalyseItemArray, tagAnalyseItem_hua & BestAnalyseItem);
//
BYTE GetWeaveIndex(BYTE cbWeaveKind, BYTE cbCenterCardIndex, BYTE cbCardIndex[]);
bool IsYaKou(const BYTE cbCardIndex[], BYTE &FirstIndex, BYTE &SecondeIndex);
BYTE Abs(BYTE cbFirst, BYTE cbSecond);
};
//////////////////////////////////////////////////////////////////////////
#endif

+ 24
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameServer.cpp Просмотреть файл

@@ -0,0 +1,24 @@
#include "Stdafx.h"
#include <afxdllx.h>
//////////////////////////////////////////////////////////////////////////
static AFX_EXTENSION_MODULE GameServerDLL={NULL,NULL};
//DLL µ¼³öÖ÷º¯Êý
extern "C" int APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
UNREFERENCED_PARAMETER(lpReserved);
if (dwReason==DLL_PROCESS_ATTACH)
{
if (!AfxInitExtensionModule(GameServerDLL, hInstance)) return 0;
new CDynLinkLibrary(GameServerDLL);
}
else if (dwReason==DLL_PROCESS_DETACH)
{
AfxTermExtensionModule(GameServerDLL);
}
return 1;
}
//////////////////////////////////////////////////////////////////////////

+ 122
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameServer.rc Просмотреть файл

@@ -0,0 +1,122 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// 中文(中华人民共和国) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"
"LANGUAGE 4, 2\r\n"
"#pragma code_page(936)\r\n"
"#include ""res\\GameServer.rc2"" // 不是由 Microsoft Visual C++ 编辑过的资源\r\n"
"#include ""afxres.rc"" // 标准组件\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 6,6,0,3
PRODUCTVERSION 6,6,0,3
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080403a8"
BEGIN
VALUE "CompanyName", "TODO: <公司名>"
VALUE "FileDescription", "TODO: <文件说明>"
VALUE "FileVersion", "6, 6, 0, 3"
VALUE "InternalName", "GameServer.dll"
VALUE "LegalCopyright", "TODO: (C) <公司名>。保留所有权利。"
VALUE "OriginalFilename", "GameServer.dll"
VALUE "ProductName", "TODO: <产品名>"
VALUE "ProductVersion", "6, 6, 0, 3"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x804, 936
END
END
#endif // 中文(中华人民共和国) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE 4, 2
#pragma code_page(936)
#include "res\GameServer.rc2" // 不是由 Microsoft Visual C++ 编辑过的资源
#include "afxres.rc" // 标准组件
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

+ 390
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameServer.vcxproj Просмотреть файл

@@ -0,0 +1,390 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="DebugVD|Win32">
<Configuration>DebugVD</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_Unicode|Win32">
<Configuration>Debug_Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseVD|Win32">
<Configuration>ReleaseVD</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release_Unicode|Win32">
<Configuration>Release_Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>游戏服务器</ProjectName>
<ProjectGuid>{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}</ProjectGuid>
<RootNamespace>游戏服务器</RootNamespace>
<Keyword>MFCDLLProj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVD|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugVD|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVD|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugVD|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Debug\</OutDir>
<IntDir>Debug\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Release\</OutDir>
<IntDir>Release\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugVD|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVD|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<TargetName>SparrowXZServer</TargetName>
<PostBuildEventUseInBuild>true</PostBuildEventUseInBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>SparrowXZServer</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../../运行/Debug/ansi/SparrowXZServer.dll</OutputFile>
<ModuleDefinitionFile />
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<ImportLibrary>$(OutDir)GameServer.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\服务器组件\Debug\Ansi
copy /y ..\..\..\..\运行\Debug\Ansi\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\Ansi\$(TargetFileName)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../../运行/Release/ansi/SparrowXZServer.dll</OutputFile>
<ModuleDefinitionFile />
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>$(OutDir)GameServer.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir ..\..\..\发布组件\服务器组件\Release\Ansi
copy /y ..\..\..\..\运行\Release\Ansi\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\Ansi\$(TargetFileName)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugVD|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;VIDEO_GAME;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../运行/Debug/SparrowXZVDServer.dll</OutputFile>
<ModuleDefinitionFile />
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<ImportLibrary>$(OutDir)GameServer.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVD|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;VIDEO_GAME;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../运行/Release/SparrowXZVDServer.dll</OutputFile>
<ModuleDefinitionFile />
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>$(OutDir)GameServer.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../..\Bin\Debug_Unicode/SparrowXZServer.dll</OutputFile>
<ModuleDefinitionFile />
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<ImportLibrary>$(OutDir)GameServer.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
<AdditionalDependencies>
</AdditionalDependencies>
<AdditionalLibraryDirectories>../../../../\Source\Libs\Debug_Unicode</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0804</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>../../../../运行/Release/unicode/SparrowXZServer.dll</OutputFile>
<ModuleDefinitionFile />
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ImportLibrary>$(OutDir)GameServer.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir ..\..\..\..\Publish\Server\Release_Unicode
copy /y ..\..\..\..\运行\Release\Unicode\SparrowXZServer.dll ..\..\..\..\Publish\Server\Release_Unicode\SparrowXZServer.dll
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="GameLogic.cpp" />
<ClCompile Include="GameLogicCxz.cpp" />
<ClCompile Include="GameLogicOther.cpp" />
<ClCompile Include="GameLogicZhiPai.cpp" />
<ClCompile Include="GameServer.cpp" />
<ClCompile Include="GameServerManager.cpp" />
<ClCompile Include="LogString.cpp" />
<ClCompile Include="ReplayRecordManager.cpp" />
<ClCompile Include="Stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='DebugVD|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='ReleaseVD|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="TableFrameSink.cpp">
<DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='DebugVD|Win32'">4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<ClCompile Include="TableFrameSinkCxz.cpp" />
<ClCompile Include="TableFrameSinkOther.cpp" />
<ClCompile Include="TableFrameSinkZhiPai.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\消息定义\CMD_Sparrow.h" />
<ClInclude Include="data.h" />
<ClInclude Include="GameLogic.h" />
<ClInclude Include="GameLogicCxz.h" />
<ClInclude Include="GameLogicOther.h" />
<ClInclude Include="GameLogicZhiPai.h" />
<ClInclude Include="GameServerManager.h" />
<ClInclude Include="LogString.h" />
<ClInclude Include="ReplayRecordManager.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="Stdafx.h" />
<ClInclude Include="TableFrameSink.h" />
<ClInclude Include="TableFrameSinkCxz.h" />
<ClInclude Include="TableFrameSinkOther.h" />
<ClInclude Include="TableFrameSinkZhiPai.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="GameServer.rc" />
</ItemGroup>
<ItemGroup>
<None Include="res\GameServer.rc2" />
</ItemGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

+ 6
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameServer.vcxproj.user Просмотреть файл

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ShowAllFiles>true</ShowAllFiles>
</PropertyGroup>
</Project>

+ 210
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameServerManager.cpp Просмотреть файл

@@ -0,0 +1,210 @@
#include "StdAfx.h"
#include "Tableframesink.h"
#include "TableframesinkOther.h"
#include "TableFrameSinkCxz.h"
#include "TableFrameSinkZhiPai.h"
#include "GameServerManager.h"
#include "LogString.h"
//////////////////////////////////////////////////////////////////////////
//全局变量
static CGameServiceManager g_GameServiceManager; //管理变量
//////////////////////////////////////////////////////////////////////////
//构造函数
CGameServiceManager::CGameServiceManager()
{
//内核属性
m_GameServiceAttrib.wKindID=KIND_ID;
m_GameServiceAttrib.wChairCount=GAME_PLAYER;
m_GameServiceAttrib.wSupporType=(GAME_GENRE_GOLD|GAME_GENRE_SCORE|GAME_GENRE_MATCH|GAME_GENRE_EDUCATE);
//功能标志
m_GameServiceAttrib.cbDynamicJoin=TRUE;
m_GameServiceAttrib.cbAndroidUser=TRUE;
m_GameServiceAttrib.cbOffLineTrustee=FALSE;
//服务属性
m_GameServiceAttrib.dwServerVersion=VERSION_SERVER;
m_GameServiceAttrib.dwClientVersion=VERSION_CLIENT;
lstrcpyn(m_GameServiceAttrib.szGameName,GAME_NAME,CountArray(m_GameServiceAttrib.szGameName));
lstrcpyn(m_GameServiceAttrib.szDataBaseName,TEXT("QPSparrowXZDB"),CountArray(m_GameServiceAttrib.szDataBaseName));
lstrcpyn(m_GameServiceAttrib.szClientEXEName,TEXT("SparrowXZ.EXE"),CountArray(m_GameServiceAttrib.szClientEXEName));
lstrcpyn(m_GameServiceAttrib.szServerDLLName,TEXT("SparrowXZServer.DLL"),CountArray(m_GameServiceAttrib.szServerDLLName));
return;
}
//析构函数
CGameServiceManager::~CGameServiceManager()
{
}
//接口查询
void * CGameServiceManager::QueryInterface(const IID & Guid, DWORD dwQueryVer)
{
QUERYINTERFACE(IGameServiceManager,Guid,dwQueryVer);
QUERYINTERFACE_IUNKNOWNEX(IGameServiceManager,Guid,dwQueryVer);
return NULL;
}
//创建游戏桌
void * CGameServiceManager::CreateTableFrameSink(const IID & Guid, DWORD dwQueryVer)
{
if (dwQueryVer == VER_ITableFrameSink)
{
//建立对象
CTableFrameSink * pTableFrameSink = NULL;
try
{
pTableFrameSink = new CTableFrameSink();
if (pTableFrameSink == NULL)
throw TEXT("创建失败");
void * pObject = pTableFrameSink->QueryInterface(Guid, dwQueryVer);
if (pObject == NULL)
throw TEXT("接口查询失败");
return pObject;
}
catch (...) {}
//清理对象
SafeDelete(pTableFrameSink);
}
else if (dwQueryVer == VER_ITableFrameSinkOther)
{
//建立对象
CTableFrameSinkOther * pTableFrameSink = NULL;
try
{
pTableFrameSink = new CTableFrameSinkOther();
if (pTableFrameSink == NULL)
throw TEXT("创建失败");
void * pObject = pTableFrameSink->QueryInterface(Guid, dwQueryVer);
if (pObject == NULL)
throw TEXT("接口查询失败");
return pObject;
}
catch (...) {}
//清理对象
SafeDelete(pTableFrameSink);
}
else if (dwQueryVer == VER_ITableFrameSinkCxz)
{
TableFrameSinkCxz * pTableFrameSink = NULL;
try
{
pTableFrameSink = new TableFrameSinkCxz();
if (pTableFrameSink == NULL)
throw TEXT("创建失败");
void * pObject = pTableFrameSink->QueryInterface(Guid, dwQueryVer);
if (pObject == NULL)
throw TEXT("接口查询失败");
return pObject;
}
catch (...) {}
//清理对象
SafeDelete(pTableFrameSink);
}
else if (dwQueryVer == VER_ITableFrameSinkZhiPai)
{
TableFrameSinkZhiPai * pTableFrameSink = NULL;
try
{
pTableFrameSink = new TableFrameSinkZhiPai();
if (pTableFrameSink == NULL)
throw TEXT("创建失败");
void * pObject = pTableFrameSink->QueryInterface(Guid, dwQueryVer);
if (pObject == NULL)
throw TEXT("接口查询失败");
return pObject;
}
catch (...) {}
//清理对象
SafeDelete(pTableFrameSink);
}
return NULL;
}
//获取属性
bool CGameServiceManager::GetServiceAttrib(tagGameServiceAttrib & GameServiceAttrib)
{
GameServiceAttrib = m_GameServiceAttrib;
return true;
}
//参数修改
bool CGameServiceManager::RectifyParameter(tagGameServiceOption & GameServiceOption)
{
//单元积分
GameServiceOption.lCellScore=__max(1L,GameServiceOption.lCellScore);
//积分下限
if (GameServiceOption.wServerType!=GAME_GENRE_SCORE)
{
GameServiceOption.lMinEnterScore=__max(GameServiceOption.lCellScore*256L,GameServiceOption.lMinEnterScore);
}
//积分上限
if (GameServiceOption.lRestrictScore!=0L)
{
GameServiceOption.lRestrictScore=__max(GameServiceOption.lRestrictScore,GameServiceOption.lMinEnterScore);
}
//积分上限
if (GameServiceOption.wServerType!=GAME_GENRE_SCORE)
{
if(GameServiceOption.lMaxEnterScore<=GameServiceOption.lMinEnterScore)
GameServiceOption.lMinEnterScore=0L;
else if(GameServiceOption.lRestrictScore>0)
GameServiceOption.lMaxEnterScore=__min(GameServiceOption.lMaxEnterScore,GameServiceOption.lRestrictScore);
}
return true;
}
//创建机器
VOID * CGameServiceManager::CreateAndroidUserItemSink(REFGUID Guid, DWORD dwQueryVer)
{
try
{
//创建组件
if( m_AndroidServiceHelper.GetInterface() == NULL )
{
m_AndroidServiceHelper.SetModuleCreateInfo(TEXT("SparrowXZAndroid.dll"),"CreateAndroidService");
if( !m_AndroidServiceHelper.CreateInstance() ) throw 0;
}
//创建机器人
VOID *pAndroidObject = m_AndroidServiceHelper->CreateAndroidUserItemSink(Guid,dwQueryVer);
if( pAndroidObject == NULL ) throw TEXT("创建机器人失败");
return pAndroidObject;
}
catch(...) {}
return NULL;
}
//////////////////////////////////////////////////////////////////////////
//设置子游戏协议解析地址
PVOID CGameServiceManager::GetDataString()
{
PVOID sgRet = NULL;
sgRet = LogString::GetString;
return sgRet;
}
//建立对象函数
extern "C" __declspec(dllexport) void * CreateGameServiceManager(const GUID & Guid, DWORD dwInterfaceVer)
{
return g_GameServiceManager.QueryInterface(Guid,dwInterfaceVer);
}
//////////////////////////////////////////////////////////////////////////

+ 56
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/GameServerManager.h Просмотреть файл

@@ -0,0 +1,56 @@
#ifndef GAME_SERVER_MANAGER_HEAD_FILE
#define GAME_SERVER_MANAGER_HEAD_FILE
#pragma once
#include "Stdafx.h"
//////////////////////////////////////////////////////////////////////////
//游戏服务器管理类
class CGameServiceManager : public IGameServiceManager
{
//变量定义
protected:
tagGameServiceAttrib m_GameServiceAttrib; //服务属性
//组件变量
protected:
CGameServiceManagerHelper m_AndroidServiceHelper; //机器人服务
//函数定义
public:
//构造函数
CGameServiceManager(void);
//析构函数
virtual ~CGameServiceManager(void);
//基础接口
public:
//释放对象
virtual VOID Release() { }
//是否有效
virtual bool IsValid() { return AfxIsValidAddress(this,sizeof(CGameServiceManager))?true:false; }
//接口查询
virtual void * QueryInterface(const IID & Guid, DWORD dwQueryVer);
//接口函数
public:
//创建桌子
virtual void * CreateTableFrameSink(const IID & Guid, DWORD dwQueryVer);
//创建机器
virtual VOID * CreateAndroidUserItemSink(REFGUID Guid, DWORD dwQueryVer);
//创建数据
virtual VOID * CreateGameDataBaseEngineSink(REFGUID Guid, DWORD dwQueryVer) { return NULL; }
//获取属性
virtual bool GetServiceAttrib(tagGameServiceAttrib & GameServiceAttrib);
//修改参数
virtual bool RectifyParameter(tagGameServiceOption & GameServiceOption);
//设置子游戏协议解析地址
virtual PVOID GetDataString();
};
//////////////////////////////////////////////////////////////////////////
#endif

+ 122
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/LogString.cpp Просмотреть файл

@@ -0,0 +1,122 @@
#include "stdafx.h"
#include "LogString.h"
LogString::LogString()
{
}
LogString::~LogString()
{
}
// 获取子协议解析
bool LogString::GetString(WORD wCommend, const PVOID pData, int iLen, PVOID pOutData, int iOutLen)
{
int a = 1;
switch (wCommend)
{
//case SUB_S_SEND_LAIZIGANG:
//{
// return ((CMD_S_OutCard*)pData)->ToString((TCHAR*)pOutData, iOutLen);
//}
case SUB_C_OPERATE_CARD:
{
return ((CMD_C_OperateCard*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_S_GAME_START:
{
return ((CMD_S_GameStart*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_S_OUT_CARD:
{
return ((CMD_S_OutCard*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_S_SEND_CARD:
{
return ((CMD_S_SendCard*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_S_OPERATE_NOTIFY:
{
return ((CMD_S_OperateNotify*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_S_OPERATE_RESULT:
{
return ((CMD_S_OperateResult*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_S_OPERATE_NOTIFY_HUA: //花牌操作提示
{
return ((CMD_S_OperateNotify_Hua*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_S_QINGTONG_NOTIFY_HUA: //请统操作提示
{
return ((CMD_S_QingTongNotify*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_S_OPERATE_RESULT_HUA: //操作广播命令
{
return ((CMD_S_OperateResult_Hua*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_S_GAME_START_HUA: //广播花牌开始
{
return ((CMD_S_GameStart_Hua*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_S_SEND_CARD_HUA: //广播起牌
{
return ((CMD_S_SendCard_Hua*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_S_OUT_CARD_HUA: //广播出牌
{
return ((CMD_S_OutCard*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_C_OPERATE_CARD_HUA: //操作牌值
{
return ((CMD_C_OperateCard_Hua*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_C_OUT_CARD_HUA: //出牌
{
return ((CMD_C_OutCard_Hua*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_C_YIWEI_HUA:
{
return ((CMD_C_YIWEI_HUA*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
case SUB_S_YI_WEI_HUA:
{
return ((CMD_S_YIWEI_HUA*)pData)->ToString((TCHAR*)pOutData, iOutLen);
}
//case SUB_S_GAME_END:
//{
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen);
//}
//case SUB_S_TRUSTEE:
//{
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen);
//}
//case SUB_S_CHI_HU:
//{
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen);
//}
//case SUB_S_GANG_SCORE:
//{
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen);
//}
//case SUB_S_DIGNQUE:
//{
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen);
//}
//case SUB_S_HUAN_SAN_ZHANG:
//{
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen);
//}
//case SUB_S_GAME_NOTIFY:
//{
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen);
//}
default:
break;
}
return true;
}

+ 10
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/LogString.h Просмотреть файл

@@ -0,0 +1,10 @@
#pragma once
class LogString
{
public:
LogString();
~LogString();
// »ñÈ¡×ÓЭÒé½âÎö
static bool __stdcall GetString(WORD wCommend, const PVOID pData, int iLen, PVOID pOutData, int iOutLen);
};

+ 55
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/ReadMe.txt Просмотреть файл

@@ -0,0 +1,55 @@
========================================================================
MICROSOFT 基础类库 : GameServer 项目概况
========================================================================
应用程序向导已为您创建了此 GameServer DLL。此 DLL 不仅
说明了使用 Microsoft 基础类的基础,而且
也是编写 DLL 的起点。
此文件包含组成 GameServer DLL
的每个文件的内容摘要。
GameServer.vcproj
这是用应用程序向导生成的 VC++ 项目的主项目文件。
它包含有关生成此文件的 Visual C++ 版本的信息,以及
有关使用应用程序向导选择的
平台、配置和项目功能的信息。
GameServer.cpp
这是包含 DllMain()
定义的主 DLL 源文件。
GameServer.rc
这是程序使用的所有 Microsoft Windows 资源的列表。
它包含存储在 RES 子目录下的图标、位图和光标。
此文件可在 Microsoft Visual C++ 中直接编辑。
res\GameServer.rc2
此文件包含不由 Microsoft
Visual C++ 编辑的资源。您应将不能由
资源编辑器编辑的所有资源放置在此文件中。
GameServer.def
此文件包含有关运行 Microsoft Windows
所需的 DLL 的信息。
它定义此 DLL 的名称和说明等参数。
它还从此 DLL 导出函数。
/////////////////////////////////////////////////////////////////////////////
其他标准文件:
StdAfx.h、StdAfx.cpp
这些文件用于生成名为 GameServer.pch
的预编译头(PCH)文件以及名为 StdAfx.obj 的预编译类型文件。
Resource.h
这是标准的头文件,它定义了新的资源 ID。
Microsoft Visual C++ 读取和更新此文件。
/////////////////////////////////////////////////////////////////////////////
其他注释:
应用程序向导使用 "TODO:" 注释指示应添加或自定义的源代码部分。
/////////////////////////////////////////////////////////////////////////////

+ 12
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/ReplayRecordManager.cpp Просмотреть файл

@@ -0,0 +1,12 @@
#include "stdafx.h"
#include "ReplayRecordManager.h"
ReplayRecordManager::ReplayRecordManager()
{
}
ReplayRecordManager::~ReplayRecordManager()
{
}

+ 25
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/ReplayRecordManager.h Просмотреть файл

@@ -0,0 +1,25 @@
#pragma once
#include <vector>
#include <unordered_map>
class ReplayRecordManager
{
public:
static ReplayRecordManager& Instance()
{
static ReplayRecordManager instance;
return instance;
}
~ReplayRecordManager();
private:
ReplayRecordManager();
std::unordered_map<UINT32, std::list<CMD_GR_ReplayRecordResp>> m_userRecords;
};

+ 13
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/Res/GameServer.rc2 Просмотреть файл

@@ -0,0 +1,13 @@
//
// GameServer.RC2 - Microsoft Visual C++ 不会直接编辑的资源
//
#ifdef APSTUDIO_INVOKED
#error this file is not editable by Microsoft Visual C++
#endif //APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// 在此处添加手动编辑的资源...
/////////////////////////////////////////////////////////////////////////////

+ 16
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/Resource.h Просмотреть файл

@@ -0,0 +1,16 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by GameServer.RC
//
// 新对象的下一些默认值
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 4000
#define _APS_NEXT_CONTROL_VALUE 4000
#define _APS_NEXT_SYMED_VALUE 4000
#define _APS_NEXT_COMMAND_VALUE 32771
#endif
#endif

+ 7
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/Stdafx.cpp Просмотреть файл

@@ -0,0 +1,7 @@
// stdafx.cpp : 只包括标准包含文件的源文件
// GameServer.pch 将成为预编译头
// stdafx.obj 将包含预编译类型信息
#include "stdafx.h"

+ 104
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/Stdafx.h Просмотреть файл

@@ -0,0 +1,104 @@
#pragma once
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料
#endif
// 如果您必须使用下列所指定的平台之前的平台,则修改下面的定义。
// 有关不同平台的相应值的最新信息,请参考 MSDN。
#ifndef WINVER // 允许使用特定于 Windows 95 和 Windows NT 4 或更高版本的功能。
#define WINVER 0x0501 // 将此更改为针对于 Windows 98 和 Windows 2000 或更高版本的合适的值。
#endif
#ifndef _WIN32_WINNT // 允许使用特定于 Windows NT 4 或更高版本的功能。
#define _WIN32_WINNT 0x0501 // 将此更改为针对于 Windows 2000 或更高版本的合适的值。
#endif
#ifndef _WIN32_WINDOWS // 允许使用特定于 Windows 98 或更高版本的功能。
#define _WIN32_WINDOWS 0x0410 // 将此更改为针对于 Windows Me 或更高版本的合适的值。
#endif
#ifndef _WIN32_IE // 允许使用特定于 IE 4.0 或更高版本的功能。
#define _WIN32_IE 0x0400 // 将此更改为针对于 IE 5.0 或更高版本的合适的值。
#endif
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将为显式的
#include <afxwin.h> // MFC 核心组件和标准组件
#include <afxext.h> // MFC 扩展
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxole.h> // MFC OLE 类
#include <afxodlgs.h> // MFC OLE 对话框类
#include <afxdisp.h> // MFC 自动化类
#endif // _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT
//////////////////////////////////////////////////////////////////////////
//组件头文件
#include "..\消息定义\CMD_Sparrow.h"
//////////////////////////////////////////////////////////////////////////////////
//编译环境
//#include "..\..\..\SDKCondition.h"
#ifdef SDK_CONDITION
//////////////////////////////////////////////////////////////////////////////////
//开发环境
//平台环境
#include "..\..\..\开发库\Include\GameServiceHead.h"
#ifndef _DEBUG
#ifndef _UNICODE
#pragma comment (lib,"../../../开发库/Lib/Ansi/KernelEngine.lib")
#else
#pragma comment (lib,"../../../开发库/Lib/Unicode/KernelEngine.lib")
#endif
#else
#ifndef _UNICODE
#pragma comment (lib,"../../../开发库/Lib/Ansi/KernelEngineD.lib")
#else
#pragma comment (lib,"../../../开发库/Lib/Unicode/KernelEngineD.lib")
#endif
#endif
//////////////////////////////////////////////////////////////////////////////////
#else
//////////////////////////////////////////////////////////////////////////////////
//系统环境
//平台环境
#include "..\..\..\..\Source\ServerControl\GameService\GameServiceHead.h"
#ifndef _DEBUG
#ifndef _UNICODE
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/KernelEngine.lib")
#else
#pragma comment (lib,"../../../../Source/Libs/Release_Unicode/KernelEngine.lib")
#endif
#else
#ifndef _UNICODE
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/KernelEngineD.lib")
#else
#pragma comment (lib,"../../../../Source/Libs/Debug_Unicode/KernelEngineD.lib")
#endif
#endif
//////////////////////////////////////////////////////////////////////////////////
#endif
//////////////////////////////////////////////////////////////////////////

+ 2777
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/TableFrameSink.cpp
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 260
- 0
俱乐部/Games/Normal/松滋晃晃血流/游戏服务器/TableFrameSink.h Просмотреть файл

@@ -0,0 +1,260 @@
#ifndef TABLE_FRAME_SINK_HEAD_FILE
#define TABLE_FRAME_SINK_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "GameLogic.h"
#include "ReplayRecordManager.h"
#include "data.h"
//游戏桌子类
class CTableFrameSink : public ITableFrameSink, public ITableUserAction
{
//游戏变量
private:
BYTE bGameType; //游戏到底是0一脚癞油,1无癞到底,2半癞
LONG m_lSiceCount; //骰子点数
WORD m_wBankerUser; //庄家用户
WORD m_wNextBankerUser; //下一个庄家
int m_lGameScore[GAME_PLAYER]; //单局游戏得分
int m_lGameTatolScore[GAME_PLAYER]; //单轮积分计算
BYTE m_HuPai[GAME_PLAYER]; //玩家胡牌次数
int m_HuPaiLiuShui[16*GAME_PLAYER]; //流水详情
BYTE m_cbCardIndex[GAME_PLAYER][MAX_INDEX]; //用户扑克
BYTE m_bTrustee[GAME_PLAYER]; //是否托管
BYTE m_bReading[GAME_PLAYER]; //是否准备
BYTE m_cbLaiZiPiData; //癞子皮
BYTE m_cbLaiZiData; //癞子
BYTE m_cbQiangGangCardData[GAME_PLAYER]; //抢杠的牌
BYTE m_cbGenCount[GAME_PLAYER]; //
bool m_bPlayStatus[GAME_PLAYER]; //玩家状态
std::list<DWORD> m_offlineUsers; //掉线的玩家
BYTE m_cbWinCount; //
WORD m_wWinOrder[GAME_PLAYER]; //
LONG m_lGameTax[GAME_PLAYER]; //
//tagGangScore m_GangScore[GAME_PLAYER]; //玩家具体杠的信息
BYTE m_OutLaiZi[GAME_PLAYER]; //每个用户打出癞子牌个数
BYTE m_TabbOutCardCout[GAME_PLAYER]; //可以打出的牌就听牌的个数
BYTE m_TabbOutCardData[GAME_PLAYER][MAX_COUNT]; //具体打哪几张牌
BYTE m_TabbTingCardCount[GAME_PLAYER][MAX_COUNT]; //相对应打出牌可听牌个数,索引表示第几张,值是对应对应的听牌个数
BYTE m_TabbTingCardData[GAME_PLAYER][MAX_COUNT][MAX_INDEX]; //具体听牌数据,一维索引表示打出牌的第几个,二维索引表示听牌的第几个,值表示牌数据
private:
CMD_S_GameConfig m_gameConfig; //游戏配置
bool m_isCanOutCard; //是否可以出牌
bool m_bDelete; //是否解散房间
bool bIsHuang;
//bool m_isTingPai[GAME_PLAYER]; //玩家是否听牌
//出牌信息
private:
WORD m_wOutCardUser; //出牌用户
BYTE m_cbOutCardData; //出牌扑克
BYTE m_cbOutCardCount; //出牌数目
BYTE m_cbDiscardCount[GAME_PLAYER]; //丢弃数目
BYTE m_cbDiscardCard[GAME_PLAYER][55]; //丢弃记录
BYTE m_cbLastDisCardData[GAME_PLAYER][MAX_COUNT];//每个玩家得记忆库,用于判断是否可以碰不
BYTE m_cbLastDisCount[GAME_PLAYER]; //每个玩家记忆库得个数
///BYTE m_cbDiscardWuYongCount[GAME_PLAYER]; //丢弃之后,也没碰杠的牌数目
//BYTE m_cbDiscardWuYongCard[GAME_PLAYER][55]; //具体数据
//发牌信息
private:
BYTE m_cbSendCardData; //发牌扑克
BYTE m_cbSendCardCount; //发牌数目
BYTE m_cbLeftCardCount; //剩余数目
BYTE m_cbRepertoryCard[MAX_REPERTORY]; //库存扑克
//堆立变量
private:
WORD m_wHeapHand; //堆立头部(从哪堆牌开始摸?)
WORD m_wHeapTail; //堆立尾部(摸到堆牌结束?)
BYTE m_cbHeapCardInfo[4][2]; //堆牌信息(记录4堆牌的堆头和堆尾各被摸了几张,如果( 堆头+堆尾 = 堆总数 ) 表示这堆牌被摸完了,需要切到下个玩家的那堆牌开始摸)
//运行变量
private:
WORD m_wResumeUser; //还原用户(下一个用户?)
WORD m_wCurrentUser; //当前用户
WORD m_wProvideUser; //供应用户
BYTE m_cbProvideCard; //供应扑克
//状态变量
private:
bool m_bSendStatus; //发牌状态
bool m_bGangStatus; //癞子杠状态,表示当时出牌是癞子,杠胡癞油
WORD m_wDianGangUser; //点杠用户(如果是自己,表示暗杠,他人表示点杠)
bool m_bGangOutStatus; //杠后炮,没用
bool m_bEnjoinChiHu[GAME_PLAYER]; //禁止吃胡,没用
bool m_bEnjoinChiPeng[GAME_PLAYER]; //禁止吃碰,没用
//用户状态
private:
bool m_bResponse[GAME_PLAYER]; //响应标志
INT m_cbUserAction[GAME_PLAYER]; //用户动作
BYTE m_cbOperateCard[GAME_PLAYER]; //操作扑克
INT m_cbPerformAction[GAME_PLAYER]; //执行动作
//组合扑克
private:
BYTE m_cbWeaveItemCount[GAME_PLAYER]; //组合数目
tagWeaveItem m_WeaveItemArray[GAME_PLAYER][MAX_WEAVE];//组合扑克
//结束信息
private:
BYTE m_cbChiHuCard; //吃胡扑克
DWORD m_dwChiHuKind[GAME_PLAYER]; //吃胡结果
//std::vector<tagChihu> m_ChiHuRight[GAME_PLAYER]; //血战到底需要记录下每个用户胡牌的类型,但是癞油不需要,胡牌就结束
WORD m_wProvider[GAME_PLAYER]; //
//组件变量
private:
CGameLogic m_GameLogic; //游戏逻辑
ITableFrame * m_pITableFrame; //框架接口
const tagGameServiceOption * m_pGameServiceOption; //配置参数
bool m_bReplayRecordStart; //是否开始录像
std::vector<GameRecordPacket> m_UserReplayRecord; //对四个位置用户的数据的记录,用于回放。
//bool m_bReduceBean; //是否已扣房卡(游戏豆)
LONGLONG m_lUserTmpScore[GAME_PLAYER];
//INT m_lZimo[GAME_PLAYER]; //累计自摸次数
//LONG m_lFangPao[GAME_PLAYER]; //累计放炮次数
//LONG m_lDianPao[GAME_PLAYER]; //累计点炮次数
//LONG m_lMingGang[GAME_PLAYER]; //累计明杠次数
//LONG m_lAnGang[GAME_PLAYER]; //累计暗杠次数
//LONG m_lChaDaJiao[GAME_PLAYER]; //累计查大叫
//函数定义
public:
//构造函数
CTableFrameSink();
//析构函数
virtual ~CTableFrameSink();
//void ReduceBean();
//bool IsCanOutCard(); //是否可以出牌
//基础接口
public:
//释放对象
virtual VOID Release() { delete this; }
//接口查询
virtual void * QueryInterface(const IID & Guid, DWORD dwQueryVer);
//管理接口
public:
//初始化
virtual bool Initialization(IUnknownEx * pIUnknownEx);
//复位桌子
virtual VOID RepositionSink();
//查询接口
public:
virtual void DeletePrivateTable(bool bSendState = false);
virtual bool ConcludeGame(BYTE cbGameStatus, bool bSendState = false)
{
//结束记录回放数据
auto dataPair = RepayRecordEnd();
//结束游戏
m_pITableFrame->ConcludeGame(cbGameStatus, bSendState);
return true;
}
//查询限额
virtual SCORE QueryConsumeQuota(IServerUserItem * pIServerUserItem){ return 0; };
//最少积分
virtual SCORE QueryLessEnterScore(WORD wChairID, IServerUserItem * pIServerUserItem){ return 0; };
//查询是否扣服务费
virtual bool QueryBuckleServiceCharge(WORD wChairID){return true;}
//查询总得分
virtual int QueryTatolScore(WORD wChairID){ if (wChairID >= GAME_PLAYER || wChairID<0) ASSERT(false); return m_lGameTatolScore[wChairID]; }
//查询癞子数
virtual int QueryTatolLaiGang(WORD wChairID){ if (wChairID >= GAME_PLAYER || wChairID < 0) ASSERT(false); return m_OutLaiZi[wChairID]; }
//查询是否使用临时积分
virtual bool QueryUseTemporaryScore() {
return (0!=lstrlen(m_gameConfig.sPrivateTableID)); //私有房间私用临时积分
}
//比赛接口
public:
//设置基数
virtual void SetGameBaseScore(LONG lBaseScore){};
virtual void SetGameConfig(VOID * pDataBuffer, WORD wDataSize, std::wstring sPrivateRoomId);
//游戏事件
public:
bool RepayRecordStart();
bool RepayRecordEnd();
bool RepayRecord(WORD wChairID, WORD wSubCmdId, void* pData, WORD wSize);
// bool CheckGameConclude();
public:
//游戏开始
virtual bool OnEventGameStart();
//游戏结束
virtual bool OnEventGameConclude(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason, bool bSendState = false);
//发送场景
virtual bool OnEventSendGameScene(WORD wChiarID, IServerUserItem * pIServerUserItem, BYTE cbGameStatus, bool bSendSecret);
//事件接口
public:
//定时器事件
virtual bool OnTimerMessage(DWORD wTimerID, WPARAM wBindParam);
//数据事件
virtual bool OnDataBaseMessage(WORD wRequestID, VOID * pData, WORD wDataSize) { return false; }
//积分事件
virtual bool OnUserScroeNotify(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason) { return false; }
//网络接口
public:
//游戏消息处理
virtual bool OnGameMessage(WORD wSubCmdID, VOID * pDataBuffer, WORD wDataSize, IServerUserItem * pIServerUserItem);
//框架消息处理
virtual bool OnFrameMessage(WORD wSubCmdID, VOID * pDataBuffer, WORD wDataSize, IServerUserItem * pIServerUserItem);
//用户事件
public:
//用户断线
virtual bool OnActionUserOffLine(WORD wChairID,IServerUserItem * pIServerUserItem) { return true; }
//用户重入 需要处理重新发送指令
virtual bool OnActionUserConnect(WORD wChairID, IServerUserItem * pIServerUserItem);
//用户坐下
virtual bool OnActionUserSitDown(WORD wChairID,IServerUserItem * pIServerUserItem, bool bLookonUser);
//用户起立
virtual bool OnActionUserStandUp(WORD wChairID,IServerUserItem * pIServerUserItem, bool bLookonUser);
//用户同意
virtual bool OnActionUserOnReady(WORD wChairID,IServerUserItem * pIServerUserItem, void * pData, WORD wDataSize) { return true; }
//用户准备
//virtual bool OnActionUserReading(WORD wChairID);
//游戏中途旁观进入
virtual bool PerformLookonLogin(IServerUserItem * pIServerUserItem);
//游戏事件
protected:
//用户出牌
bool OnUserOutCard(WORD wChairID, BYTE cbCardData);
//用户操作
bool OnUserOperateCard(WORD wChairID, int cbOperateCode, BYTE cbOperateCard);
//辅助函数
protected:
bool IsWin(WORD wChairID);
//发送操作
bool SendOperateNotify();
//派发扑克
bool DispatchCardData(WORD wCurrentUser,bool bTail=false,bool bLaiZiGang=false);
//响应判断
bool EstimateUserRespond(WORD wCenterUser, BYTE cbCenterCard, enEstimatKind EstimatKind);
//
//void ProcessChiHuUser( WORD wChairId,CChiHuRight& chr, bool bGiveUp );
//获取根数
int GetGenCount(WORD wChairId, CChiHuRight& chr);
BYTE RemainNum(WORD wChairId, const BYTE m_cbCard,BYTE bIndex);
//
//void FiltrateRight( WORD wChairId,CChiHuRight &chr );
};
//////////////////////////////////////////////////////////////////////////
#endif

Некоторые файлы не были показаны из-за большого количества измененных файлов

Загрузка…
Отмена
Сохранить