⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 主界面.frm

📁 F:梦幻西游自动跑商开发
💻 FRM
📖 第 1 页 / 共 5 页
字号:
    GK(i) = GK(i) & GetPixel(h1, Packet(i).X + j, Packet(i).Y) & "[" & j + 1 & "]"
    Next j
If GK(i) = YPstrs Then Exit For
Next i
MoveToP Packet(i), 1 '银票在包裹的位置
MouseLD
LinShiP.X = Packet(3).X '330,确定 按钮在屏幕的位置
LinShiP.Y = Packet(3).Y + 336 '450
MoveToP LinShiP, 1
MouseLD
Guan
End Sub
Private Sub LingPiao()  '领票的过程
JinBP 当前Maps
If 商人YesNo = False Then '首先判断是否是商人
MoveToP 帮派BaiHu(1), 1 '白虎堂 总管 的坐标
MouseLD
MoveToP 帮派BaiHu(4), 1 '申请成为商人的坐标
MouseLD
商人YesNo = True
End If
MoveToP 帮派BaiHu(1), 1 '白虎堂 总管 的坐标
MouseLD
MoveToP 帮派BaiHu(2), 1
MouseLD
Sleep 500
MouseLD
End Sub
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Sub Get_Price(商人胖瘦 As String)  '商品名称,价格,数量,买价。存到数据库
Dim h1 As Long, i As Long, GK(1 To 3) As String   'GK用于记录商品的颜色值组合227-278-329
h1 = GetDC(0)
  For i = 1 To 10
    GK(1) = GK(1) & GetPixel(h1, Packet(1).X + i - 1, Packet(1).Y) & "[" & i & "]" '227
    GK(2) = GK(2) & GetPixel(h1, Packet(2).X + i - 1, Packet(2).Y) & "[" & i & "]" '279
    GK(3) = GK(3) & GetPixel(h1, Packet(3).X + i - 1, Packet(3).Y) & "[" & i & "]" '329
  Next i
ReleaseDC 0, h1
        LinShiP.X = 240
        LinShiP.Y = 80
MoveToP LinShiP, 1
        LinShiP.Y = 100
  For i = 1 To 3
Select Case GK(i) '这个部分的数据可能经常需要维护
      Case 佛珠.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品佛珠", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 纸扇.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品纸扇", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 刀.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品武器", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 帽子.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品帽子", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 酒.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品酒", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 蜡烛.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品蜡烛", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 面粉.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品面粉", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 鹿茸.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品鹿茸", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 符.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品符", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 人参.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品人参", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 铜油.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品铜油", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 铃铛.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品铃铛", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 纸钱.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品纸钱", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 项链.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品项链", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      Case 夜明珠.Pixels
        LinShiP.X = 240 + 51 * (i - 1)
        MoveToP LinShiP, 1
        MouseLD
ReFreshDB 商人胖瘦, "商品夜明珠", OCR(313, 343, 50, 10, 0, &H101000, &HF80000), OCR(190 + 51 * (i - 1), 102, 50, 10, &HF8FCF8, &HF8FCF8, &HF8FCF8)
      End Select
  Next i
End Sub

'********************************************************************************************************
'自动跑商模块,这个部分主要是逻辑的问题。
'逻辑上分为买入和卖出,它们都分别用循环实现,买入完成跳入卖出循环,卖出完成跳入买入循环。
'直到银票钱数达到交票的触发器,触发交票模块
'********************************************************************************************************
'买入循环与卖出循环分别编写,它们都带有各自的参数,卖出循环带入参数是现有商品种类,带出参数是人物现在地点
'买入循环带入参数是人物地点,带出参数是商品的种类,从而实现两个循环的循环执行。
'交票模块单独编写,用触发器控制
'********************************************************************************************************
Private Sub ZDPaoSHang(Maps As String, 是否携带何种商品 As String)   '自动跑商,包括切换Maps、人物移动和买卖商品循环
If BeforeWindow <> Str2 Then SetForegroundWindow FindWindow(vbNullString, Str2)
If BeforeWindow <> Str2 Then MsgBox "没有登陆梦幻西游,请登陆", vbOKOnly, "登陆提示"
If BeforeWindow <> Str2 Then Exit Sub
当前Maps = Maps
LingPiao
If 是否携带何种商品 = "" Then
买Ring 当前Maps
Else
卖Ring 当前Maps
End If
End Sub
'*******************买循环部分********************
Function PzOrSz(地点 As String) As String
Dim i As Long, P(3) As Long, S(3) As Long, Nms(3) As Long
Rcs.Open "select * from 地图表表 where 名称 = " & Chr(34) & 地点 & Chr(34), Cn, adOpenStatic, adLockOptimistic
If Rcs.Fields("胖瘦LowBuy").Value <> "" Then
PzOrSz = Rcs.Fields("胖瘦LowBuy").Value
Rcs.Close
Else
Rs.Open "select * from 临时商品价格表", Cn, adOpenStatic, adLockOptimistic
Select Case 地点
    Case "长安城"
         Rs.MoveFirst
         Do Until Rs.EOF
          Select Case Rs.Fields("商品名称").Value
                 Case "商品佛珠"
          P(1) = Rs.Fields("胖子买价").Value
          S(1) = Rs.Fields("瘦子买价").Value
                 Case "商品纸扇"
          P(2) = Rs.Fields("胖子买价").Value
          S(2) = Rs.Fields("瘦子买价").Value
                 Case "商品武器"
          P(3) = Rs.Fields("胖子买价").Value
          S(3) = Rs.Fields("瘦子买价").Value
          End Select
         Rs.MoveNext
         Loop
    Case "地府"
         Rs.MoveFirst
         Do Until Rs.EOF
          Select Case Rs.Fields("商品名称").Value
                 Case "商品项链"
          P(1) = Rs.Fields("胖子买价").Value
          S(1) = Rs.Fields("瘦子买价").Value
                 Case "商品纸钱"
          P(2) = Rs.Fields("胖子买价").Value
          S(2) = Rs.Fields("瘦子买价").Value
                 Case "商品夜明珠"
          P(3) = Rs.Fields("胖子买价").Value
          S(3) = Rs.Fields("瘦子买价").Value
          End Select
         Rs.MoveNext
         Loop
    Case "傲来国"
         Rs.MoveFirst
         Do Until Rs.EOF
          Select Case Rs.Fields("商品名称").Value
                 Case "商品帽子"
          P(1) = Rs.Fields("胖子买价").Value
          S(1) = Rs.Fields("瘦子买价").Value
                 Case "商品酒"
          P(2) = Rs.Fields("胖子买价").Value
          S(2) = Rs.Fields("瘦子买价").Value
                 Case "商品蜡烛"
          P(3) = Rs.Fields("胖子买价").Value
          S(3) = Rs.Fields("瘦子买价").Value
          End Select
         Rs.MoveNext
         Loop
    Case "北俱芦洲"
         Rs.MoveFirst
         Do Until Rs.EOF
          Select Case Rs.Fields("商品名称").Value
                 Case "商品人参"
          P(1) = Rs.Fields("胖子买价").Value
          S(1) = Rs.Fields("瘦子买价").Value
                 Case "商品铜油"
          P(2) = Rs.Fields("胖子买价").Value
          S(2) = Rs.Fields("瘦子买价").Value
                 Case "商品铃铛"
          P(3) = Rs.Fields("胖子买价").Value
          S(3) = Rs.Fields("瘦子买价").Value
          End Select
         Rs.MoveNext
         Loop
    Case "长寿村"
         Rs.MoveFirst
         Do Until Rs.EOF
          Select Case Rs.Fields("商品名称").Value
                 Case "商品面粉"
          P(1) = Rs.Fields("胖子买价").Value
          S(1) = Rs.Fields("瘦子买价").Value
                 Case "商品鹿茸"
          P(2) = Rs.Fields("胖子买价").Value
          S(2) = Rs.Fields("瘦子买价").Value
                 Case "商品符"
          P(3) = Rs.Fields("胖子买价").Value
          S(3) = Rs.Fields("瘦子买价").Value
          End Select
         Rs.MoveNext
         Loop
End Select
Rs.Close
Dim m As Long
For i = 1 To 3
If P(i) > 0 And S(i) > 0 Then
    If P(i) >= S(i) Then
       PzOrSz = "瘦子"
    Else
       PzOrSz = "胖子"
    End If
End If
Next i
Rcs.Fields("胖瘦LowBuy").Value = PzOrSz
Rcs.Close
End If
End Function
Sub 买WhatGood(NowMaps As String, 商人 As String)  '分析买哪种商品
Dim bp(3) As Long
Rs.Open "select * from 临时商品价格表", Cn, adOpenStatic, adLockOptimistic
Select Case NowMaps
    Case "长寿村"
    Rs.MoveFirst
    Do Until Rs.EOF
    If Rs.Fields(商人 & "买价").Value = 0 Then
        Rs.MoveNext
    Else
        If Rs.Fields("商品名称").Value = "商品符" Then
            If Rs.Fields(商人 & "买价").Value < Rs.Fields("Buy").Value And Rs.Fields(商人 & "数量").Value > 20 Then
            NeedBuyGood.Pixels = Rs.Fields("像素字符").Value
            NeedBuyGood.Price = Rs.Fields(商人 & "买价").Value
            Exit Do
            End If
        End If
        If Rs.Fields("商品名称").Value = "商品鹿茸" Then
            If Rs.Fields(商人 & "买价").Value < Rs.Fields("Buy").Value And Rs.Fields(商人 & "数量").Value > 20 Then
            NeedBuyGood.Pixels = Rs.Fields("像素字符").Value
            NeedBuyGood.Price = Rs.Fields(商人 & "买价").Value
            Exit Do
            End If
        End If
        If Rs.Fields("商品名称").Value = "商品面粉" Then
            If Rs.Fields(商人 & "买价").Value < Rs.Fields("Buy").Value And Rs.Fields(商人 & "数量").Value > 20 Then
            NeedBuyGood.Pixels = Rs.Fields("像素字符").Value
            NeedBuyGood.Price = Rs.Fields(商人 & "买价").Value
            Exit Do
            End If
        End If
    Rs.MoveNext
    End If
        Loop
'-----------------------------------------------
    Case "北俱芦洲"
    Rs.MoveFirst
    Do Until Rs.EOF
    If Rs.Fields(商人 & "买价").Value = 0 Then
        Rs.MoveNext
    Else
        If Rs.Fields("商品名称").Value = "商品铜油" Then
            If Rs.Fields(商人 & "买价").Value < Rs.Fields("Buy").Value And Rs.Fields(商人 & "数量").Value > 20 Then
            NeedBuyGood.Pixels = Rs.Fields("像素字符").Value
            NeedBuyGood.Price = Rs.Fields(商人 & "买价").Value
            Exit Do
            End If
        End If
        If Rs.Fields("商品名称").Value = "商品铃铛" Then
            If Rs.Fields(商人 & "买价").Value < Rs.Fields("Buy").Value And Rs.Fields(商人 & "数量").Value > 20 Then
            NeedBuyGood.Pixels = Rs.Fields("像素字符").Value
            NeedBuyGood.Price = Rs.Fields(商人 & "买价").Value
            Exit Do
            End If
        End If
        If Rs.Fields("商品名称").Value = "商品人参" Then
            If Rs.Fields(商人 & "买价").Value < Rs.Fields("Buy").Value And Rs.Fields(商人 & "数量").Value > 20 Then
            NeedBuyGood.Pixels = Rs.Fields("像素字符").Value
            NeedBuyGood.Price = Rs.Fields(商人 & "买价").Value
            Exit Do
            End If
        End If
    Rs.MoveNext
    End If
        Loop
'-----------------------------------------------
    Case "地府"
    Rs.MoveFirst
    Do Until Rs.EOF
    If Rs.Fields(商人 & "买价").Value = 0 Then
        Rs.MoveNext
    Else
        If Rs.Fields("商品名称").Value = "商品纸钱" Then
            If Rs.Fields(商人 & "买价").Value < Rs.Fields("Buy").Value And Rs.Fields(商人 & "数量").Value > 20 Then
            NeedBuyGood.Pixels = Rs.Fields("像素字符").Value
            NeedBuyGood.Price = Rs.Fields(商人 & "买价").Value
            Exit Do
            End If
        End If
        If Rs.Fields("商品名称").Value = "商品项链" Then
            If Rs.Fields(商人 & "买价").Value < Rs.Fields("Buy").Value And Rs.Fields(商人 & "数量").Value > 20 Then
            NeedBuyGood.Pixels = Rs.Fields("像素字符").Value
            NeedBuyGood.Price = Rs.Fields(商人 & "买价").Value
            Exit Do
            End If
        End If
        If Rs.Fields("商品名称").Value = "商品夜明珠" Then
            If Rs.Fields(商人 & "买价").Value < Rs.Fields("Buy").Value And Rs.Fields(商人 & "数量").Value > 20 Then
            NeedBuyGood.Pixels = Rs.Fields("像素字符").Value
            NeedBuyGood.Price = Rs.Fields(商人 & "买价").Value
            Exit Do
            End If
        End If
    Rs.MoveNext
    End If
        Loop
'-----------------------------------------------
    Case "傲来国"
    Rs.MoveFirst
    Do Until Rs.EOF
    If Rs.Fields(商人 & "买价").Value = 0 Then
        Rs.MoveNext
    Else
        If Rs.Fields("商品名称").Value = "商品酒" Then
            If Rs.Fields(商人 & "买价").Value < Rs.Fields("Buy").Value And Rs.Fields(商人 & "数量").Value > 20 Then
            NeedBuyGood.Pixels = Rs.Fields("像素字符").Value
            NeedBuyGood.Price = Rs.Fields(商人 & "买价").Value
            Exit Do
            End If
        End If
        If Rs.Fields("商品名称").Value = "商品帽子" Then
            If Rs.Fields(商人 & "买价").Value < Rs.Fields("Buy").Value And Rs.Fields(商人 & "数量").Value > 20 Then
            NeedBuyGood.Pixels = Rs.Fields("像素字符").Value
            NeedBuyGood.Price = Rs.Fields(商人 & "买价").Value
            Exit Do
            End If
        End If
        If Rs.Fields("商品名称").Value = "商品蜡烛" Then
            If Rs.Fields(商人 & "买价").Value < Rs.Fields("Buy").Value And Rs.Fields(商人 & "数量").Value > 20 Then
            NeedBuyGood.Pixels = Rs.Fields("像素字符").Value
            NeedBuyGood.Price = Rs.Fields(商人 & "买价").Value
            Exit Do
            End If
        End If
    Rs.MoveNext
    End If
        Loop

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -