GO语言,半自动打怪

仅供学习参考,切勿用于商业用途

go 复制代码
package main

import (
    "fmt"
    "github.com/go-vgo/robotgo"
    "math/rand"
    "time"
)

const (
    taskNum = 7
)

type Task struct {
    Name       string
    SleepTime1 int
    SleepTime2 int
    Func       func()
}

func main() {
    for i := 1; i <= 32; i++ {
        tasks := []Task{
            {
                Name:       "第1图",
                SleepTime1: 3000,
                SleepTime2: 100,
                Func:       Task1,
            },
            {
                Name:       "第2图",
                SleepTime1: 1,
                SleepTime2: 1,
                Func:       Task2,
            },
            {
                Name:       "第3图",
                SleepTime1: 1,
                SleepTime2: 1,
                Func:       Task3,
            },
            {
                Name:       "第4图",
                SleepTime1: 1500,
                SleepTime2: 80,
                Func:       Task4,
            },
            {
                Name:       "第5图",
                SleepTime1: 1500,
                SleepTime2: 80,
                Func:       Task5,
            },
            {
                Name:       "第6图",
                SleepTime1: 1500,
                SleepTime2: 80,
                Func:       Task6,
            },
            {
                Name:       "第7图",
                SleepTime1: 1500,
                SleepTime2: 80,
                Func:       Task7,
            },
        }

        for i := 1; i <= taskNum; i++ {
            task := tasks[i-1]
            fmt.Printf("开始执行任务:%s\n", task.Name)
            time.Sleep(time.Duration(task.SleepTime1) * time.Millisecond)
            time.Sleep(time.Duration(rand.Intn(task.SleepTime2)) * time.Millisecond)
            task.Func()
            fmt.Printf("任务%s已完成\n", task.Name)
        }

    }
}

func Task1() {
    robotgo.MoveClick(367, 270, `left`, true)
    time.Sleep(2000)
    robotgo.KeyTap("right")
    robotgo.MilliSleep(10)
    robotgo.KeyToggle("right", "down")
    time.Sleep(6 * time.Second)
    robotgo.KeyToggle("right", "up")
    time.Sleep(100)
    fmt.Printf("第1图通关,")
}

func Task2() {
    robotgo.KeyTap("s")
    time.Sleep(2 * time.Second)
    robotgo.KeyTap("a")
    robotgo.MilliSleep(20)

    //向下移动3秒向上移动1秒
    robotgo.KeyToggle("up", "down")
    time.Sleep(2 * time.Second)
    robotgo.KeyToggle("up", "up")
    robotgo.MilliSleep(50)

    robotgo.KeyTap("g")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("w")

    time.Sleep(9 * time.Second)

    robotgo.KeyToggle("down", "down")
    time.Sleep(1 * time.Second)
    robotgo.KeyToggle("down", "up")
    robotgo.MilliSleep(50)
    fmt.Printf("第二图通关,")
}

func Task3() {
    robotgo.MilliSleep(50)
    robotgo.KeyTap("right")
    robotgo.MilliSleep(10)
    robotgo.KeyToggle("right", "down")
    time.Sleep(2 * time.Second)
    robotgo.KeyToggle("right", "up")
    fmt.Printf("进入第3图")

    robotgo.MilliSleep(50)
    robotgo.KeyTap("h")
    time.Sleep(3 * time.Second)
    time.Sleep(6 * time.Second)

    robotgo.KeyToggle("up", "down")
    time.Sleep(2 * time.Second)
    robotgo.KeyToggle("up", "up")
    robotgo.MilliSleep(50)

    robotgo.KeyToggle("down", "down")
    time.Sleep(1 * time.Second)
    robotgo.KeyToggle("down", "up")
    robotgo.MilliSleep(50)

    robotgo.KeyToggle("right", "down")
    time.Sleep(2 * time.Second)
    robotgo.KeyToggle("right", "up")
    robotgo.MilliSleep(50)

    fmt.Printf("第3通关")

}

func Task4() {
    robotgo.KeyTap("right")
    robotgo.MilliSleep(50)
    robotgo.KeyToggle("right", "down")
    time.Sleep(5 * time.Second)
    robotgo.KeyToggle("right", "up")
    robotgo.MilliSleep(50)

    time.Sleep(20 * time.Second)

    robotgo.KeyToggle("right", "down")
    time.Sleep(2 * time.Second)
    robotgo.KeyToggle("right", "up")
    robotgo.MilliSleep(50)

    robotgo.KeyToggle("up", "down")
    time.Sleep(2 * time.Second)
    robotgo.KeyToggle("up", "up")
    robotgo.MilliSleep(50)

    robotgo.KeyToggle("down", "down")
    time.Sleep(1 * time.Second)
    robotgo.KeyToggle("down", "up")
    robotgo.MilliSleep(50)

    fmt.Printf("第4图通关")
}

func Task5() {

    //向上移动1秒
    fmt.Print("****准备进入5图")

    //向上移动1秒
    robotgo.KeyTap("right")
    robotgo.MilliSleep(50)
    robotgo.KeyToggle("right", "down")
    time.Sleep(5 * time.Second)
    robotgo.KeyToggle("right", "up")
    robotgo.MilliSleep(50)
    time.Sleep(20 * time.Second)

    robotgo.KeyToggle("right", "down")
    time.Sleep(2 * time.Second)
    robotgo.KeyToggle("right", "up")
    robotgo.MilliSleep(50)

    robotgo.KeyToggle("up", "down")
    time.Sleep(2 * time.Second)
    robotgo.KeyToggle("up", "up")
    robotgo.MilliSleep(50)

    robotgo.KeyToggle("down", "down")
    time.Sleep(1 * time.Second)
    robotgo.KeyToggle("down", "up")
    robotgo.MilliSleep(50)

    fmt.Printf("第5图通关")
}

func Task6() {
    fmt.Print("****准备进入6图")
    robotgo.KeyTap("right")
    robotgo.MilliSleep(50)
    robotgo.KeyToggle("right", "down")
    robotgo.KeyToggle("down", "down")
    time.Sleep(5 * time.Second)
    robotgo.KeyToggle("right", "up")
    robotgo.KeyToggle("down", "up")
    robotgo.MilliSleep(50)

    robotgo.KeyTap("w")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("a")
    fmt.Print("****进入6图")

    robotgo.KeyTap("w")
    time.Sleep(20 * time.Second)
    fmt.Printf("最后通关1")
    robotgo.KeyTap("w")
    time.Sleep(30 * time.Second)
    fmt.Printf("最后通关2")
    robotgo.KeyTap("w")
    time.Sleep(20 * time.Second)


    fmt.Printf("全图通关")
}

func Task7() {
    fmt.Printf("开始捡完物品")

    robotgo.KeyTap("v")
    time.Sleep(3 * time.Second)

    //修装备
    //time.Sleep(time.Duration(sleepTime2) * time.Millisecond)
    //robotgo.KeyTap("s")
    //time.Sleep(time.Duration(sleepTime2) * time.Millisecond)
    //robotgo.KeyTap("s")
    //time.Sleep(time.Duration(sleepTime2) * time.Millisecond)
    //robotgo.KeyTap("enter")
    //time.Sleep(1 * time.Second)

    //捡东西
    time.Sleep(3 * time.Second)
    fmt.Printf("第一个图捡完物品")

    robotgo.MilliSleep(2000)
    robotgo.MoveClick(10, 10, `left`, true)
    robotgo.MilliSleep(50)
    robotgo.MoveClick(10, 10, `left`, true)

    time.Sleep(2 * time.Second)
	robotgo.KeyTap("enter")
	time.Sleep(2 * time.Second)
	robotgo.KeyTap("shift")
    
    robotgo.MilliSleep(50)
    robotgo.KeyTap("/")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("/")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("shift")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("y")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("i")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("d")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("o")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("n")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("g")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("w")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("u")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("p")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("i")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("n")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("space")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("enter")
    robotgo.MilliSleep(50)
    time.Sleep(3 * time.Second)
    fmt.Printf("第一个图捡完物品")

    robotgo.MilliSleep(2000)
    robotgo.MoveClick(1377, 71, `left`, true)
    robotgo.MilliSleep(50)
    robotgo.MoveClick(1377, 71, `left`, true)
    robotgo.MilliSleep(50)
    robotgo.KeyTap("enter")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("shift")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("/")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("/")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("shift")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("y")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("i")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("d")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("o")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("n")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("g")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("w")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("u")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("p")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("i")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("n")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("space")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("enter")
    robotgo.MilliSleep(50)
    time.Sleep(3 * time.Second)

    robotgo.MilliSleep(50)
    robotgo.MoveClick(10, 10, `left`, true)
    robotgo.MilliSleep(100)

    robotgo.KeyTap("esc")
    time.Sleep(1 * time.Second)
    robotgo.KeyTap("f10")
    robotgo.MilliSleep(50)
    robotgo.KeyTap("f10")
    time.Sleep(3 * time.Second)
}

func randInt(min, max int) int {
    rand.Seed(time.Now().UnixNano())
    return rand.Intn(max-min+1) + min
}
相关推荐
编程版小新5 分钟前
C++初阶:STL详解(四)——vector迭代器失效问题
开发语言·c++·迭代器·vector·迭代器失效
c4fx24 分钟前
Delphi5利用DLL实现窗体的重用
开发语言·delphi·dll
鸽芷咕1 小时前
【Python报错已解决】ModuleNotFoundError: No module named ‘paddle‘
开发语言·python·机器学习·bug·paddle
Jhxbdks1 小时前
C语言中的一些小知识(二)
c语言·开发语言·笔记
java6666688881 小时前
如何在Java中实现高效的对象映射:Dozer与MapStruct的比较与优化
java·开发语言
Violet永存1 小时前
源码分析:LinkedList
java·开发语言
代码雕刻家1 小时前
数据结构-3.1.栈的基本概念
c语言·开发语言·数据结构
Fan_web1 小时前
JavaScript高级——闭包应用-自定义js模块
开发语言·前端·javascript·css·html
liupenglove1 小时前
golang操作mysql利器-gorm
mysql·golang
梦想科研社1 小时前
【无人机设计与控制】四旋翼无人机俯仰姿态保持模糊PID控制(带说明报告)
开发语言·算法·数学建模·matlab·无人机