/// <summary> /// 練功狀態下的Update /// </summary> private void AttactBehavior() { if (IsFighting() && mSurvivalPoints.Count > 0) { foreach (Point point in mSurvivalPoints) { Bitmap bmp = ScreenLib.GetScreen(point, AttackTargeSize); if (!ScreenLib.Scan(bmp, TargetColor)) { mSurvivalPoints.Remove(point); } } MouseSimulator.Position = mSurvivalPoints[0]; Thread.Sleep(100); KeyboardSimulator.KeyPress(PrimaryKey); Thread.Sleep(100); MouseSimulator.Click(MouseButton.Left); } else { mSurvivalPoints.Clear(); CurrentBehavior = NormalBehavior; } }
//private bool PostMessage(IntPtr hWnd,uint Msg, int wParam, int lParam); /// <summary> /// 鍵盤事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void KeyboardHook_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.F10: MouserTimer.Enabled = true; break; case Keys.F12: MouserTimer.Enabled = false; break; case Keys.B: { //KeyboardSimulator.SendKey("{F11}"); //KeyboardSimulator.KeyDown(Keys.F11); //Thread.Sleep(1000); //KeyboardSimulator.KeyUp(Keys.F11); } break; } if (e.Alt) { switch (e.KeyCode) { case Keys.D1: HpColor = ScreenLib.GetScreenColor(MouseSimulator.Position); hpTxt.Text = HpColor.ToArgb().ToString("X"); break; case Keys.D2: MpColor = ScreenLib.GetScreenColor(MouseSimulator.Position); mpTxt.Text = MpColor.ToArgb().ToString("X"); break; case Keys.D3: TimeColor = ScreenLib.GetScreenColor(MouseSimulator.Position); timeTxt.Text = TimeColor.ToArgb().ToString("X"); break; case Keys.D5: SpecifyColor = ScreenLib.GetScreenColor(MouseSimulator.Position); specifyTxt.Text = SpecifyColor.ToArgb().ToString("X"); break; case Keys.D4: TargetColor = ScreenLib.GetScreenColor(MouseSimulator.Position); targetTxt.Text = TargetColor.ToArgb().ToString("X"); break; } } if (e.Control) { } }
/// <summary> /// 目標座標 /// </summary> /// <returns></returns> private void AttackPoint() { if (mSurvivalPoints.Count > 0) { return; } foreach (Point point in mFixPoints) { if (ScreenLib.Scan(ScreenLib.GetScreen(point, AttackTargeSize), TargetColor)) { mSurvivalPoints.Add(point); } } }
/// <summary> /// 放大鏡更新用的timer tick /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Timer_Tick(object sender, EventArgs e) { Position.Text = Cursor.Position.ToString(); ColorLabel.Text = ScreenLib.GetScreenColor(Cursor.Position).ToArgb().ToString("X"); Magnifier.Image = ScreenLib.GetScreen(mMagnifierPosition, new Size(mMagnifierSize, mMagnifierSize)); }
/// <summary> /// 非戰鬥Mp是否足夠 /// </summary> /// <returns></returns> private bool IsEnoughMp() { Bitmap mpBmp = ScreenLib.GetScreen(MpPoint, FixSize); return(ScreenLib.Scan(mpBmp, MpColor)); }
/// <summary> /// 是否戰鬥中 /// </summary> /// <returns></returns> private bool IsFighting() { Bitmap fightbmp = ScreenLib.GetScreen(SpecifyPoint, SpecifySize); return(ScreenLib.Scan(fightbmp, SpecifyColor)); }