Browse Source

镜妖:延长一些时间并优化部分。

Jeff 4 years ago
parent
commit
1340996bcd

+ 5 - 5
GameAssist/GameAssist/GameAssist.rc

@@ -53,8 +53,8 @@ BEGIN
     "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"
     "LANGUAGE 4, 2\r\n"
     "#pragma code_page(936)\r\n"
-    "#include ""res\\GameAssist.rc2""  // 闂?Microsoft Visual C++ 缂傚倸鍊归悧鐐垫椤愶附鍎嶉柛鏇ㄥ枤閵堫偅绻?\n"
-    "#include ""l.CHS\\afxres.rc""      // 闂佸搫绉村ú銈夊闯椤栨粎纾奸柛鏇ㄤ簼椤?\n"
+    "#include ""res\\GameAssist.rc2""  // 闂?Microsoft Visual C++ 缂傚倸鍊搁崐褰掓偋閻愬灚顐芥い鎰堕檮閸庡秹鏌涢弴銊ユ灓闁靛牜鍋呯换?\n"
+    "#include ""l.CHS\\afxres.rc""      // 闂備礁鎼粔鏉懨洪妶澶婇棷妞ゆ牗绮庣壕濂告煕閺囥劋绨兼い?\n"
     "#endif\r\n"
     "\0"
 END
@@ -99,7 +99,7 @@ BEGIN
     PUSHBUTTON      "打开",BTN_OPENGAME,7,61,50,14
     PUSHBUTTON      "截图",IDC_BUTTON2,7,7,50,14
     PUSHBUTTON      "镜妖",IDC_BUTTON3,7,25,50,14
-    PUSHBUTTON      "三倍",IDC_BUTTON4,7,43,50,14
+    PUSHBUTTON      "周六礼物",IDC_BUTTON4,7,43,50,14
     PUSHBUTTON      "开宝箱",IDC_BUTTON5,7,97,50,14
     PUSHBUTTON      "职业大挑战",IDC_BUTTON6,7,79,50,14
     CONTROL         "召唤兽参战",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,60,28,50,10
@@ -226,8 +226,8 @@ END
 #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
 LANGUAGE 4, 2
 #pragma code_page(936)
-#include "res\GameAssist.rc2"  // 闂?Microsoft Visual C++ 缂傚倸鍊归悧鐐垫椤愶附鍎嶉柛鏇ㄥ枤閵堫偅绻?
-#include "l.CHS\afxres.rc"      // 闂佸搫绉村ú銈夊闯椤栨粎纾奸柛鏇ㄤ簼椤?
+#include "res\GameAssist.rc2"  // 闂?Microsoft Visual C++ 缂傚倸鍊搁崐褰掓偋閻愬灚顐芥い鎰堕檮閸庡秹鏌涢弴銊ユ灓闁靛牜鍋呯换?
+#include "l.CHS\afxres.rc"      // 闂備礁鎼粔鏉懨洪妶澶婇棷妞ゆ牗绮庣壕濂告煕閺囥劋绨兼い?
 #endif
 
 /////////////////////////////////////////////////////////////////////////////

+ 208 - 11
GameAssist/GameAssist/GameAssistDlg.cpp

@@ -15,6 +15,9 @@
 #define RAND(a,b) (rand()%(b-a)+a)
 #define SRAND(a,b) (Sleep(rand()%(b-a)+a))
 
+BOOL IsWalkStop(HWND hWnd);
+
+
 VOID DebugLog(CHAR* pszStr, ...)
 {
 	char szData[MAX_PATH] = { 0 };
@@ -272,7 +275,7 @@ void BattleOnece(HWND hWnd, BOOL bHasSummoner)
 }
 
 // 与镜妖战斗;
-void BattleJY(HWND hWnd, BOOL bHasSummoner, BOOL bZJ)
+void BattleJY(HWND hWnd, BOOL bHasSummoner, int nZJType)
 {
 	BOOL bFirstAttack = TRUE;
 	while (IsBattle(hWnd)) { // 是否在战斗中;
@@ -297,10 +300,10 @@ void BattleJY(HWND hWnd, BOOL bHasSummoner, BOOL bZJ)
 					DebugLog(_T("BattleJY:召唤兽技能选择"));
 
 					// 选择重击;
-					if (bZJ) {
+					if (!nZJType ) {
 						SRAND(150, 350);
 						GAssist::SendKey(hWnd, VK_S, FALSE, TRUE);
-						if (GAssist::GetImgMatchtemplate(hWnd, GAssist::g_strAppdir + _T("img\\活动\\镜妖\\重击.bmp"), rc))
+						if (GAssist::GetImgMatchtemplate(hWnd, nZJType == 1 ? GAssist::g_strAppdir + _T("img\\活动\\镜妖\\重击.bmp") : GAssist::g_strAppdir + _T("img\\活动\\镜妖\\重击2.bmp"), rc))
 						{
 							SRAND(100, 300);
 							GAssist::MouseClick(hWnd, CPoint((rc.right + rc.left) / 2 + rand() % 3, (rc.top + rc.bottom) / 2 + rand() % 3), TRUE);
@@ -373,7 +376,7 @@ void BattleJY(HWND hWnd, BOOL bHasSummoner, BOOL bZJ)
 		// 找到镜妖;
 		CRect rc;
 		POINT spt[4] = { { 250, 335 }, { 310,360}, { 385, 315}, { 280,295 } };
-		for (int i = 0; !GAssist::GetImgMatchtemplate(hWnd, GAssist::g_strAppdir + _T("img\\活动\\镜妖\\镜妖3.bmp"), rc); i++)
+		for (int i = 0; !GAssist::GetImgMatchtemplate(hWnd, GAssist::g_strAppdir + _T("img\\活动\\镜妖\\镜妖1.bmp"), rc); i++)
 		{
 			// 打开世界地图;
 			GAssist::SendKey(hWnd, VK_TAB); SRAND(200, 300);
@@ -382,7 +385,8 @@ void BattleJY(HWND hWnd, BOOL bHasSummoner, BOOL bZJ)
 			// 退出世界地图;
 			GAssist::SendKey(hWnd, VK_TAB); SRAND(500, 900);
 			// 等待跑完成;
-			SRAND(600, 800);
+			//SRAND(600, 800);
+			IsWalkStop(hWnd);
 
 			if (i > 10) {
 				DebugLog(_T("未找到镜妖+10"));
@@ -394,16 +398,16 @@ void BattleJY(HWND hWnd, BOOL bHasSummoner, BOOL bZJ)
 		GAssist::MouseMove(hWnd, CPoint(rc.left + rand() % 10, rc.top + rand() % 10));
 		DebugLog(_T("移动鼠标"));
 		GAssist::MouseClick(hWnd, CPoint((rc.right + rc.left) / 2 + rand() % 3, (rc.top + rc.bottom) / 2 + rand() % 3), TRUE);
-		SRAND(300, 600);
+		SRAND(390, 600);
 		// 单击目标后,要往移走鼠标,防止下面匹配的时候被鼠标挡住;
-		GAssist::MouseMove(hWnd, CPoint(rc.right + RAND(5, 12), rc.bottom + RAND(5, 10)));
-		SRAND(200, 500);
+		GAssist::MouseMove(hWnd, CPoint(rc.right + RAND(10, 20), rc.bottom + RAND(10, 20)));
+		SRAND(300, 500);
 		DebugLog(_T("找到目标并单击成功:%s"));
 
 		// 我来抓你;
 		if (GAssist::GetImgMatchtemplate(hWnd, GAssist::g_strAppdir + _T("img\\活动\\镜妖\\我来抓您的.bmp"), rc)) {
 			// 找到匹配的模块;
-			GAssist::MouseMove(hWnd, CPoint(rc.left + rand() % 10, rc.top + rand() % 10));
+			//GAssist::MouseMove(hWnd, CPoint(rc.left + rand() % 10, rc.top + rand() % 10));
 			DebugLog(_T("我来抓你:移动鼠标"));
 			GAssist::MouseClick(hWnd, CPoint((rc.right + rc.left) / 2 + rand() % 3, (rc.top + rc.bottom) / 2 + rand() % 3), TRUE);
 			SRAND(800, 1500);
@@ -569,7 +573,7 @@ BOOL IsWalkStop(HWND hWnd)
 	for (int i = 0; i < 100; i++)
 	{
 		GAssist::CropPicture(hWnd, rc, _T("walk1.bmp"));
-		Sleep(800);
+		Sleep(600);
 		GAssist::CropPicture(hWnd, rc2, _T("walk2.bmp"));
 		// 判断2张图片是否一样;
 		if (GAssist::IsSimilarPicture(_T("walk1.bmp"), _T("walk2.bmp")))
@@ -897,6 +901,7 @@ void CGameAssistDlg::DoDataExchange(CDataExchange* pDX)
 	CDialog::DoDataExchange(pDX);
 	DDX_Control(pDX, IDC_CHECK1, m_cbSummoner);
 	DDX_Control(pDX, IDC_CHECK2, m_cbZJ);
+	DDX_Control(pDX, IDC_CHECK3, m_cbZJ2);
 }
 
 BEGIN_MESSAGE_MAP(CGameAssistDlg, CDialog)
@@ -1340,11 +1345,20 @@ void CGameAssistDlg::OnBnClickedButton3() // 
 	*/
 	CRect rc;
 	HWND hProWnd = GAssist::GetProcessMainWnd();
+	int nZJType = 0;
+	if (m_cbZJ.GetCheck())
+		nZJType = 1;
+	else if (m_cbZJ2.GetCheck())
+		nZJType = 2;
+	else
+		nZJType = 0;
+
+
 	for (int i = 0; i < 100; i++)
 	{
 		UpdateData(FALSE);
 		DebugLog(_T("start.打镜妖 %d----------------------------"), i);
-		BattleJY(hProWnd, m_cbSummoner.GetCheck(), m_cbZJ.GetCheck());
+		BattleJY(hProWnd, m_cbSummoner.GetCheck(), nZJType);
 		DebugLog(_T("end.打镜妖 %d----------------------------\n"), i);
 	}
 }
@@ -1353,6 +1367,189 @@ void CGameAssistDlg::OnBnClickedButton3() // 
 void CGameAssistDlg::OnBnClickedButton4() // 周六领礼物
 {
 	// TODO: 在此添加控件通知处理程序代码
+	// 星秀村:送礼协会会长丙
+	// 【星】铜钱怪
+	HWND hWnd = GAssist::GetProcessMainWnd();
+	FindNPC(hWnd, _T("送礼协会会长丙"));
+	IsWalkStop(hWnd);
+
+	if (ClickDlgSetup(hWnd, _T("img\\活动\\周六礼物\\我来领取礼物.bmp")))
+	{
+		if (ClickDlgSetup(hWnd, _T("img\\活动\\周六礼物\\好的.bmp")))
+		{
+			FindNPC(hWnd, _T("【星】铜钱怪"));
+			IsWalkStop(hWnd);
+
+			CRect rc;
+			//铜钱怪:好的,要问些什么问题呢?
+			struct MyStruct
+			{
+				BOOL bDone = FALSE;
+				TCHAR szQuestion[MAX_PATH] = {0};
+			};
+
+			if (ClickDlgSetup(hWnd, _T("img\\活动\\周六礼物\\铜钱怪:好的,要问些什么问题呢?.bmp")))
+			{
+				// 第一次回答;
+				std::vector<MyStruct> vtMyst1 = { {FALSE, _T("img\\活动\\周六礼物\\铜钱怪:帮派就象个大家庭.bmp")},
+				{FALSE, _T("img\\活动\\周六礼物\\铜钱怪:交流的场所.bmp")},
+				{FALSE, _T("img\\活动\\周六礼物\\铜钱怪:能够认识很多.bmp")},
+				{FALSE, _T("img\\活动\\周六礼物\\铜钱怪:我希望能够.bmp")},
+				{FALSE, _T("img\\活动\\周六礼物\\铜钱怪:由系统定时发布.bmp")},
+				{FALSE, _T("img\\活动\\周六礼物\\铜钱怪:好的,快点问吧.bmp")}
+				};
+
+				for (; vtMyst1.size();)
+				{
+					for (std::vector<MyStruct>::iterator it = vtMyst1.begin(); it != vtMyst1.end(); it++ )
+					{
+						rc = FindMatchIcon(hWnd, it->szQuestion);
+						if (!rc.IsRectEmpty() && !rc.IsRectNull())
+						{
+							// 单击目标回答;
+							GAssist::MouseClick(hWnd, CPoint((rc.right + rc.left) / 2 + rand() % 3, (rc.top + rc.bottom) / 2 + rand() % 5));
+							// 再移动下鼠标,防止高亮影响下次的判断;
+							GAssist::MouseMove(hWnd, CPoint(rc.right + RAND(6, 20), rc.bottom + RAND(6, 20)));
+							// 等待下一个问题出现;
+							SRAND(200, 300);
+							it = vtMyst1.erase(it);
+							break;
+						}
+					}
+				}
+
+				// 第二次回答;
+				std::vector<MyStruct> vtMyst2 = { {FALSE, _T("img\\活动\\周六礼物\\铜钱怪:帮派就象个大家庭.bmp")},
+				{FALSE, _T("img\\活动\\周六礼物\\铜钱怪:交流的场所.bmp")},
+				{FALSE, _T("img\\活动\\周六礼物\\铜钱怪:能够认识很多.bmp")},
+				{FALSE, _T("img\\活动\\周六礼物\\铜钱怪:我希望能够.bmp")},
+				{FALSE, _T("img\\活动\\周六礼物\\铜钱怪:由系统定时发布.bmp")}
+				};
+				for (; vtMyst2.size();)
+				{
+					for (std::vector<MyStruct>::iterator it = vtMyst2.begin(); it != vtMyst2.end(); it++)
+					{
+						rc = FindMatchIcon(hWnd, it->szQuestion);
+						if (!rc.IsRectEmpty() && !rc.IsRectNull())
+						{
+							// 单击目标回答;
+							GAssist::MouseClick(hWnd, CPoint((rc.right + rc.left) / 2 + rand() % 3, (rc.top + rc.bottom) / 2 + rand() % 5));
+							// 再移动下鼠标,防止高亮影响下次的判断;
+							GAssist::MouseMove(hWnd, CPoint(rc.right + RAND(6, 20), rc.bottom + RAND(6, 20)));
+							// 等待下一个问题出现;
+							SRAND(200, 300);
+							it = vtMyst2.erase(it);
+							break;
+						}
+					}
+				}
+
+				// 回答完所有问题,右键退出;
+				SRAND(200, 300);
+				GAssist::MouseRClick(hWnd);
+			}
+
+			// 再次回到送礼协会会长;
+			FindNPC(hWnd, _T("送礼协会会长丙"));
+			IsWalkStop(hWnd);
+			// 再右键一次;
+			SRAND(200,300);
+			GAssist::MouseRClick(hWnd);
+			FindNPC(hWnd, _T("送礼协会会长丙"));
+			if (ClickDlgSetup(hWnd, _T("img\\活动\\周六礼物\\好,现在就去.bmp")))
+			{
+				// 等待切换地图;
+				SRAND(800, 900);
+			}
+		}
+	}
+
+	if (IsOnMap(hWnd, _T("img\\地图\\汴京城.bmp")) )
+	{
+		// 找送礼协会会长丁
+		FindNPC(hWnd, _T("送礼协会会长丁"));
+		IsWalkStop(hWnd);
+		SRAND(300, 500); // 等对话框出现;
+		if (ClickDlgSetup(hWnd, _T("img\\活动\\周六礼物\\我来领取礼物.bmp")))
+		{
+			if (ClickDlgSetup(hWnd, _T("img\\活动\\周六礼物\\好的.bmp")))
+			{
+				// 找铜钱怪;
+				FindNPC(hWnd, _T("【汴】铜钱怪"));
+				IsWalkStop(hWnd);
+				SRAND(300, 500);
+				if (ClickDlgSetup(hWnd, _T("img\\活动\\周六礼物\\铜钱怪:进入战斗.bmp")))
+				{
+					// 将鼠标移动到指定位置;
+					POINT ptDest = { 625, 28 }; // 左上角;
+					GAssist::MouseMove(hWnd, ptDest);
+					while (IsBattle(hWnd))
+					{
+						// 判断是否我方攻击;
+						if (IsWattingAttack(hWnd, 1))
+						{
+							GAssist::SendKey(hWnd, VK_A, FALSE, TRUE);
+						}
+
+						SRAND(500, 750);
+					}
+
+					// 送礼协会会长乙;
+					FindNPC(hWnd, _T("送礼协会会长乙"));
+					IsWalkStop(hWnd);
+					// 再右键一次;
+					SRAND(200, 300);
+					GAssist::MouseRClick(hWnd);
+					FindNPC(hWnd, _T("送礼协会会长丙")); SRAND(200, 300);
+					if (ClickDlgSetup(hWnd, _T("img\\活动\\周六礼物\\好,现在就去.bmp")))
+					{
+						// 等待切换地图;
+						SRAND(800, 900);
+					}
+				}
+			}
+		}
+	}
+
+	if (IsOnMap(hWnd, _T("img\\地图\\应天府.bmp")))
+	{
+		// 找送礼协会会长丁
+		FindNPC(hWnd, _T("送礼协会会长甲"));
+		IsWalkStop(hWnd);
+		SRAND(300, 500); // 等对话框出现;
+		if (ClickDlgSetup(hWnd, _T("img\\活动\\周六礼物\\我来领取礼物.bmp")))
+		{
+			if (ClickDlgSetup(hWnd, _T("img\\活动\\周六礼物\\好的.bmp")))
+			{
+				// 找铜钱怪;
+				FindNPC(hWnd, _T("【应】铜钱怪"));
+				IsWalkStop(hWnd);
+				SRAND(300, 500);
+				if (ClickDlgSetup(hWnd, _T("img\\活动\\周六礼物\\铜钱怪:进入战斗.bmp")))
+				{
+					// 将鼠标移动到指定位置;
+					POINT ptDest = { 625, 28 }; // 左上角;
+					GAssist::MouseMove(hWnd, ptDest);
+					while (IsBattle(hWnd))
+					{
+						// 判断是否我方攻击;
+						if (IsWattingAttack(hWnd, 1))
+						{
+							GAssist::SendKey(hWnd, VK_A, FALSE, TRUE);
+						}
+
+						SRAND(500, 750);
+					}
+
+					// 送礼协会会长乙;
+					FindNPC(hWnd, _T("送礼协会会长甲"));
+					IsWalkStop(hWnd);
+					SRAND(1000, 2000);
+					GAssist::MouseRClick(hWnd);
+				}
+			}
+		}
+	}
 }
 
 

+ 1 - 0
GameAssist/GameAssist/GameAssistDlg.h

@@ -43,4 +43,5 @@ public:
 	CButton m_cbZJ;
 	afx_msg void OnBnClickedButton8();
 	afx_msg void OnBnClickedButton9();
+	CButton m_cbZJ2;
 };

BIN
GameAssist/img/地图/星秀村.bmp


BIN
GameAssist/img/地图/汴京城.bmp