📄 mod90task.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 + -