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 If MapPlaceDictionary.Exists(PlaceSource) Then PlaceArrayOfWayTo = MapPlaceDictionary.Item(PlaceSource) '//MsgBox PlaceArrayOfWayTo(0),0,UBound(PlaceArrayOfWayTo) Else Exit Function End If lpa=0 PlaceCount = 0 ReachPlace = False If PlaceSource = PlaceDes Then ReachPlace = True End If While lpa<=UBound(PlaceArrayOfWayTo) And Not(ReachPlace) If PlaceArrayOfWayTo(lpa)<>BackWayPlace Then ArrayOfPath = WayToPlace(PlaceArrayOfWayTo(lpa), PlaceDes, PlaceSource) End If If Not(IsEmpty(ArrayOfPath)) Then ReachPlace = True End If lpa=lpa+1 Wend If ReachPlace Then If IsEmpty(ArrayOfPath) Then WayToPlace = Array(PlaceSource) Else WayToPlace = JoinArray(Array(PlaceSource),ArrayOfPath) End If End If End Function '// Function JoinArray(ByVal Array1, ByVal Array2) Dim NewArrUbound, NewArr() If IsArray(Array1) And IsArray(Array2) Then NewArrUbound = UBound(Array1)+UBound(Array2)+1 ReDim NewArr(NewArrUbound) For li=0 To NewArrUbound Step 1 If li<=UBound(Array1) Then NewArr(li) = Array1(li) Else NewArr(li) = Array2(li-UBound(Array1)-1) End If Next JoinArray = NewArr Else End If Erase NewArr End Function VBSEnd Return //--------------------------------------------------------------- // //--------------------------------------------------------------- Sub 移动到下一个地图 Dim CurPlace, LastColorRec, MvColorRec, Tmpli, Tmplj, TmpP, EdgArr CurPlace = place LastColorRec = "" MvColorRec = "" Tmpli = 0 Tmplj = 0 TmpP = 0 EdgArr = Array(0,0) If GoPlaceTimeArr(2)>180000 //以下操作3分钟仍没到下个地图.重置计时,重走路点. GoPlaceTimeArr(2)=0 EndIf //当战斗时退出循环... While 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 Plugin GoPlaceTimeArr(0) = GetSysInfo.GetTime() // //检查角色是否正在移动 MvColorRec = GetPixelColor(496,698) & GetPixelColor(939,698) If LastColorRec=MvColorRec LastColorRec = MvColorRec //静止移动时操作移动 // //按照有效移动时间计算当前路点 Tmplj = 0 TmpP = 0 RndAng = 6.2831853*Rnd While Tmplj<UBound(lRoadPointArr) If lRoadPointArr(TmpP)<=GoPlaceTimeArr(2) TmpP = Tmplj EndIf Tmplj = Tmplj+3 EndWhile // //点击小地图上的每一个路点 MoveTo lRoadPointArr(TmpP+1),lRoadPointArr(TmpP+2)