- MapPlaceDictionary.Add "曙光平原", Array("精灵城", "流火学院", "磐地学院")
- MapPlaceDictionary.Add "流火学院", Array("曙光平原")
- MapPlaceDictionary.Add "磐地学院", Array("曙光平原")
- MapPlaceDictionary.Add "沉睡森林", Array("精灵城", "云麓山脉")
- MapPlaceDictionary.Add "云麓山脉", Array("沉睡森林", "守护之地")
- MapPlaceDictionary.Add "守护之地", Array("云麓山脉", "古城遗迹")
- MapPlaceDictionary.Add "古城遗迹", Array("守护之地")
- '//
- Function WayToPlace(ByVal PlaceSource, ByVal PlaceDes, ByVal BackWayPlace)
- Dim ArrayOfPath, PlaceCount, Pla0ceArrayOfWayTo,ReachPlace
- Dim lpa, PlaceWayTo
- 如果表达式 (MapPlaceDictionary.Exists(PlaceSource) Then) 为真,则
- PlaceArrayOfWayTo = MapPlaceDictionary.Item(PlaceSource)
- '//MsgBox PlaceArrayOfWayTo(0),0,UBound(PlaceArrayOfWayTo)
- 否则
- Exit Function
- End If
- lpa=0
- PlaceCount = 0
- ReachPlace = False
- 如果表达式 (PlaceSource = PlaceDes Then) 为真,则
- ReachPlace = True
- End If
- 如果表达式 (lpa<=UBound(PlaceArrayOfWayTo) And Not(ReachPlace)) 为真,则循环执行
- 如果表达式 (PlaceArrayOfWayTo(lpa)<>BackWayPlace Then) 为真,则
- ArrayOfPath = WayToPlace(PlaceArrayOfWayTo(lpa), PlaceDes, PlaceSource)
- End If
- 如果表达式 (Not(IsEmpty(ArrayOfPath)) Then) 为真,则
- ReachPlace = True
- End If
- lpa=lpa+1
- Wend
- 如果表达式 (ReachPlace Then) 为真,则
- 如果表达式 (IsEmpty(ArrayOfPath) Then) 为真,则
- WayToPlace = Array(PlaceSource)
- 否则
- WayToPlace = JoinArray(Array(PlaceSource),ArrayOfPath)
- End If
- End If
- End Function
- '//
- Function JoinArray(ByVal Array1, ByVal Array2)
- Dim NewArrUbound, NewArr()
- 如果表达式 (IsArray(Array1) And IsArray(Array2) Then) 为真,则
- NewArrUbound = UBound(Array1)+UBound(Array2)+1
- ReDim NewArr(NewArrUbound)
- 循环 li=0 To NewArrUbound Step 1 遍
- 如果表达式 (li<=UBound(Array1) Then) 为真,则
- NewArr(li) = Array1(li)
- 否则
- NewArr(li) = Array2(li-UBound(Array1)-1)
- End If
- Next
- JoinArray = NewArr
- 否则
- End If
- Erase NewArr
- End Function
- 结束VBScript块
- 子程序结束,回到调用处
- //---------------------------------------------------------------
- //
- //---------------------------------------------------------------
- 子程序 移动到下一个地图
- Dim CurPlace, LastColorRec, MvColorRec, Tmpli, Tmplj, TmpP, EdgArr
- CurPlace = place
- LastColorRec = ""
- MvColorRec = ""
- Tmpli = 0
- Tmplj = 0
- TmpP = 0
- EdgArr = Array(0,0)
- 如果表达式 (GoPlaceTimeArr(2)>180000) 为真,则
- //以下操作3分钟仍没到下个地图.重置计时,重走路点.
- GoPlaceTimeArr(2)=0
- 条件结束
- //当战斗时退出循环...
- 如果表达式 (fighting<=0 And CurPlace<>GToPlace And ColorCompare(GetPixelColor(623,151),"C6CBFF",15) And GoPlaceTimeArr(2)<180000) 为真,则循环执行
- //If fighting<=0 And CurPlace<>GToPlace And ColorCompare(GetPixelColor(623,151),"C6CBFF",15) And GoPlaceTimeArr(2)<180000
- 调用插件命令 GoPlaceTimeArr(0) = GetSysInfo.GetTime()
- //
- //检查角色是否正在移动
- MvColorRec = GetPixelColor(496,698) & GetPixelColor(939,698)
- 如果表达式 (LastColorRec=MvColorRec) 为真,则
- LastColorRec = MvColorRec
- //静止移动时操作移动
- //
- //按照有效移动时间计算当前路点
- Tmplj = 0
- TmpP = 0
- RndAng = 6.2831853*Rnd
- 如果表达式 (Tmplj<UBound(lRoadPointArr)) 为真,则循环执行
- 如果表达式 (lRoadPointArr(TmpP)<=GoPlaceTimeArr(2)) 为真,则
- TmpP = Tmplj
- 条件结束
- Tmplj = Tmplj+3
- 循环结束
- //
- //点击小地图上的每一个路点
- 鼠标移到 lRoadPointArr(TmpP+1) , lRoadPointArr(TmpP+2)