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

📄 mod90task.bas

📁 这是诛仙外挂的源代码
💻 BAS
字号:
Attribute VB_Name = "Mod90Task"
Option Explicit

'读取列表
Sub ReadTaskList(cListName As String, FileName As String)
On Error Resume Next
    Dim sFile As String, TempItem As String, TempItemCount As String
    Dim x As Integer, CLevel As String, s1() As String, s2() As String, s3() As String
    
    TempItem = Space$(100)
    TempItemCount = Space$(100)
    sFile = App.Path & "\" & Trim(FileName) & ".ini"
    Main.Controls(cListName).Clear
    GetPrivateProfileString& cListName & Trim(CStr(MapID)), "Count", "0", TempItemCount, 100, sFile
    For x = 0 To CLng(TempItemCount) - 1
        GetPrivateProfileString& cListName & Trim(CStr(MapID)), "Item" & x, "0", TempItem, 100, sFile
        s1 = Split(TempItem, ",")
        If Len(Trim(s1(0))) > 0 Then
            CLevel = Space(3)
            If UBound(s1) > 4 Then
                s2 = Split(s1(4), "#")
                If Len(Trim(s2(0))) > 1 Then
                    s3 = Split(Trim(ReadIni("Monster", "Monster", Trim(s2(0)))), ",")
                    If UBound(s3) > 1 Then
                        CLevel = Trim(s3(0))
                    End If
                End If
            End If
            Main.Controls(cListName).AddItem Right(Space(3) & CLevel, 3) & "|" & Trim(s1(0)) & "|" & Trim(s1(1))
        End If
    Next x
End Sub
''检查任务是否存在
Function CheckTaskHave(TaskName As String) As Boolean
On Error Resume Next
    Dim i As Integer, TaskI() As String
    
    For i = 0 To Main.ListLuck.ListCount - 1
        TaskI = Split(Main.ListLuck.List(i), "|")
        If Trim(TaskI(2)) = TaskName Then
            CheckTaskHave = True
            Exit Function
        End If
    Next
    CheckTaskHave = False
End Function
''检查任务是否完成
Function CheckTaskOk(TaskName As String) As Boolean
On Error Resume Next
    Dim i As Integer, TaskI() As String
    
    For i = 0 To Main.ListLuck.ListCount - 1
        TaskI = Split(Main.ListLuck.List(i), "|")
        If Trim(TaskI(2)) = TaskName And Trim(TaskI(0)) = "3" Then
            CheckTaskOk = True
            Exit Function
        End If
    Next
    CheckTaskOk = False
End Function
''自动接任务
Sub AutoGetTask(TaskNpc As String, NpcX As Single, NpcY As Single, TaskName As String, TaskId As String, AdmOrCom As Integer)
On Error Resume Next
    Dim NPCID As Long, TaskHave As Boolean

    ReadMyTask
    TaskHave = CheckTaskHave(TaskName)
    If TaskHave = False Then
        If Int(Abs(PartX - NpcX)) <= 2 And Int(Abs(PartY - NpcY)) <= 2 Then
            NPCID = CDbl(SeleNpcInfo(TaskNpc, "ID"))
            If NPCID <> 0 Then
                CallNPCOpen NPCID
                Wait 200
                If AdmOrCom = 0 Then
                    GetTaskCall (TaskId)
                Else
                    GetNpcTaskCall (TaskId)
                End If
                Wait 200
                CloseNpcByName (TaskNpc)
            End If
        Else
            If NpcWinStat = 1 Then
                CallNPCClose
            End If
            CallRunTO NpcX, 0, NpcY, MapID
        End If
    End If
End Sub
''自动交任务
Sub AutoSetTask(TaskNpc As String, NpcX As Single, NpcY As Single, TaskName As String, TaskId As String, TaskSelect As Integer)
On Error Resume Next
    Dim NPCID As Long, TaskHave As Boolean, TaskOk As Boolean

    ReadMyTask
    TaskHave = CheckTaskHave(TaskName)
    If TaskHave Then
        If Int(Abs(PartX - NpcX)) <= 2 And Int(Abs(PartY - NpcY)) <= 2 Then
            NPCID = CDbl(SeleNpcInfo(TaskNpc, "ID"))
            If NPCID <> 0 Then
                CallNPCOpen NPCID
                Wait 200
                SetTaskCall TaskId, TaskSelect
                Wait 200
                CloseNpcByName (TaskNpc)
            End If
        Else
            If NpcWinStat = 1 Then
                CallNPCClose
            End If
            CallRunTO NpcX, 0, NpcY, MapID
        End If
    End If
End Sub

⌨️ 快捷键说明

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