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

📄 mouse input.vb.svn-base

📁 MirUnleashed vb.net Module modMainServer Public WithEvents Socket As New WinsockServer Pub
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
    Public Sub CheckMouseHover()


        CheckButtonHover()

    End Sub

    Public Sub CheckButtonHover()
        Dim I As Short
        ButtonSelect = False

        For I = 0 To 100
            If Button(I).Show = True And Button(I).Locked = False And Button(I).Enabled = True And Button(I).Scene = Scene Then
                If CursorX >= Button(I).X And CursorY >= Button(I).Y And CursorX <= Button(I).X + Button(I).Width And CursorY <= Button(I).Y + Button(I).Height Then
                    If ButtonCheck(I) = True Then
                        ButtonSelectIndex = I
                        ButtonSelect = True
                    End If
                End If
            End If
        Next I

    End Sub

    Public Function CheckMouseOverActor(ByVal X As Integer, ByVal Y As Integer)

        If X >= Actor.MainLeft And X <= Actor.MainLeft + Actor.CurrentWidth / 2 And Y >= Actor.MainTop And Y <= Actor.MainTop + Actor.CurrentHeight Then
            CheckMouseOverActor = True
        End If

    End Function

    Public Function CheckMouseOverPlayer(ByVal X As Integer, ByVal Y As Integer, ByVal PlayerName As String)
        Dim I As Integer
        For I = 0 To 100
            If X >= Player(I).MainLeft And X <= Player(I).MainLeft + Player(I).CurrentWidth / 2 And Y >= Player(I).MainTop And Y <= Player(I).MainTop + Player(I).CurrentHeight And Player(I).Exist = True Then
                CheckMouseOverPlayer = True And PlayerName = Player(I).Name
                Exit For
            End If
        Next I

    End Function

    Public Function CheckMouseOverNPC(ByVal x As Integer, ByVal Y As Integer, ByVal NPCName As String)
        Dim I As Integer
        For I = 0 To 100
            If x >= NPC(I).MainLeft And x <= NPC(I).MainLeft + NPC(I).CurrentWidth / 2 And Y >= NPC(I).MainTop And Y <= NPC(I).MainTop + NPC(I).CurrentHeight And NPC(I).Exist = True Then
                CheckMouseOverNPC = True And NPCName = NPC(I).Name

                If IsMouseDown = True And CheckMouseOverNPC = True And MouseEvents.Button = MouseButtons.Left Then
                    'Send data to server
                    Packets.SendClickNpc(NPC(I).ServerIndex)
                    ClickedNPC = True
                End If

            End If
        Next
    End Function

    Public Function CheckMouseOverMonster(ByVal x As Integer, ByVal Y As Integer, ByVal MonsterID As Integer)
        Dim I As Integer
        For I = 0 To 100
            If x >= Mob(I).MainLeft And x <= Mob(I).MainLeft + Mob(I).CurrentWidth / 2 And Y >= Mob(I).MainTop And Y <= Mob(I).MainTop + Mob(I).CurrentHeight And Mob(I).Exist = True Then
                CheckMouseOverMonster = True And MonsterID = Mob(I).ServerIndex
            End If
        Next
    End Function

    Public Function CheckMouseOverFloorItem(ByVal x As Integer, ByVal Y As Integer, ByVal ItemID As Integer)
        Dim I As Integer
        For I = 0 To 100
            If FloorItem(I).Exist = True And FloorItem(I).CordX = SelectCordX And FloorItem(I).CordY = SelectCordY Then
                CheckMouseOverFloorItem = True And ItemID = FloorItem(I).ServerIndex
            End If
        Next
    End Function

    Public Function CheckMouseOverInventory(ByVal X As Integer, ByVal Y As Integer)

        Dim I As Integer
        Dim Check1 As Boolean
        Dim Check2 As Boolean

        'find x

        If Window(6).Show = True Then

            For I = 0 To 7

                If X > Window(6).X + 20 + (I * 37) And X < Window(6).X + 19 + ((I + 1) * 38) Then
                    Check1 = True
                    InventoryX = I
                End If

            Next I

            For I = 0 To 4

                If Y > Window(6).Y + 22 + (I * 33) And Y < Window(6).Y + 22 + ((I + 1) * 33) Then
                    Check2 = True
                    InventoryY = I
                End If

            Next I

            If Check1 = True And Check2 = True Then
                InventorySelect = True
            Else
                InventorySelect = False
            End If
        End If

    End Function

    Public Sub CheckMouseInput()
        Dim TempInt As Short
        Dim Apperance As Short
        Dim FileIndex As Short

        If Actor.ActionState = 0 And IsMouseDown = True And Scene = SceneType.GAME And CursorY > 230 And CursorY < 290 And CursorX > 355 And CursorX < 435 Then
            DeadZoneInputDirection()
            Actor.Direction = TempPlayerDirection
            'IsMouseDown = False
        Else
            If (CursorY > 455 And CursorX > 172 And CursorX < 557) Or (CursorY > 385 And CursorX > 0 And CursorX < 172) Or (CursorY > 410 And CursorX > 665 And CursorX < 800) Or (CursorY > 435 And CursorX > 557 And CursorX < 665) Then
                IsMouseDown = False
            Else

                If Scene = SceneType.GAME Then
                    Dim I As Short

                    If IsMouseDown = True Then
                        If WindowDrag = True Then
                            Window(WindowDragIndex).X = CursorX - WindowDragX
                            Window(WindowDragIndex).Y = CursorY - WindowDragY
                            Exit Sub
                        End If

                        For I = 0 To 100
                            If Window(I).Exist = True And Window(I).Show = True Then
                                If CursorX > Window(I).X And CursorY > Window(I).Y And CursorX < Window(I).X + Window(I).Width And CursorY < Window(I).Y + Window(I).Height Then
                                    'selected window
                                    WindowDrag = True
                                    WindowDragIndex = I
                                    WindowDragX = CursorX - Window(I).X
                                    WindowDragY = CursorY - Window(I).Y
                                    Exit Sub
                                End If
                            End If
                        Next I
                    End If
                End If

                If Scene = SceneType.GAME Then
                    Dim I As Integer

                    InputDirection()

                    If Not IsMouseDown = True Then Exit Sub
                    If CheckMouseOverActor(CursorX, CursorY) = True And HoldingItem = True Then Exit Sub

                    For I = 0 To 1000
                        If CheckMouseOverPlayer(CursorX, CursorY, Player(I).Name) = True Or CheckMouseOverNPC(CursorX, CursorY, NPC(I).Name) = True Or CheckMouseOverMonster(CursorX, CursorY, Mob(I).ServerIndex) = True Then
                            Exit Sub
                            Exit For
                        End If
                    Next I

                    If HoldingItem = True And IsMouseDown = True Then
                        'drop item on floor
                        'Whys it try sending it when u aint even clicked
                        If HoldingItemType = 1 Then
                            Packets.SendDropItem(InventoryItem(HoldingItemX, HoldingItemY).ServerIndex)
                        End If
                        Exit Sub
                    End If

                    'Dim I As Integer
                    If ButtonSelect = True Or MouseOverInterface = True Then Exit Sub
                    'playermove

                    If Actor.ActionState = 0 And ShiftDown = False And IsMouseDown = True And Actor.MoveTick + (Actor.MoveSpeed * 10000) < DateTime.Now.Ticks And Actor.IsDead = False Then 'And Not Actor.StackActionType(0) = PlayerActionType.Stun
                        'collison
                        If CollisionDetect(1, TempPlayerDirection) = False Then
                            If ClickedNPC = True Then ClickedNPC = False
                            Packets.SendMove(TempPlayerDirection, 1, InfrontX(1, TempPlayerDirection), InfrontY(1, TempPlayerDirection))
                            Actor.MoveTick = DateTime.Now.Ticks
                        End If

                    ElseIf Actor.ActionState = 0 And ShiftDown = True And IsMouseDown = True And Actor.AttackTick + (Actor.MoveSpeed * 10000) < DateTime.Now.Ticks And Actor.IsDead = False Then 'And Not Actor.StackActionType(0) = PlayerActionType.Stun
                        If Actor.GhostForm = False Then
                            If ClickedNPC = True Then ClickedNPC = False
                            Packets.SendAttack(TempPlayerDirection)
                            Actor.AttackTick = DateTime.Now.Ticks
                    Else
                        AddChat("Not available in Ghost Form", 0)
                    End If

                    ElseIf Not Actor.Direction = TempPlayerDirection And ShiftDown = False And Actor.ActionState = 0 And IsMouseDown = True And Actor.LockDirection = False Then

                    End If
                End If
            End If
        End If

    End Sub

    Public Sub InputDirection()
        Dim TempAng As Double

        'FindTarget()

        'If Actor.CurrentX < SelectCordX Then
        'TempAng = (90 + GetAngle(Actor.CurrentX, Actor.CurrentY, SelectCordX, SelectCordY))
        'ElseIf Actor.CurrentX > SelectCordX Then
        'TempAng = (270 + GetAngle(Actor.CurrentX, Actor.CurrentY, SelectCordX, SelectCordY))
        'ElseIf Actor.CurrentX = SelectCordX And Actor.CurrentY > SelectCordY Then
        'TempAng = 0
        'ElseIf Actor.CurrentX = SelectCordX And Actor.CurrentY < SelectCordY Then
        'TempAng = 180
        'End If

        'If TempAng > 340 Or TempAng < 20 Then
        'TempPlayerDirection = 0
        'ElseIf TempAng > 20 And TempAng < 70 Then
        'TempPlayerDirection = 1
        'ElseIf TempAng > 70 And TempAng < 110 Then
        'TempPlayerDirection = 2
        'ElseIf TempAng > 110 And TempAng < 160 Then
        'TempPlayerDirection = 3
        'ElseIf TempAng > 160 And TempAng < 200 Then
        'TempPlayerDirection = 4
        'ElseIf TempAng > 200 And TempAng < 250 Then
        'TempPlayerDirection = 5
        'ElseIf TempAng > 250 And TempAng < 290 Then
        'TempPlayerDirection = 6
        'ElseIf TempAng > 290 And TempAng < 340 Then
        'TempPlayerDirection = 7
        'End If

        'Actor.CastDirection = TempPlayerDirection

        If (CursorY < 260) And (CursorX > 365) And (CursorX < 425) And (IsMouseDown = True) Then
            TempPlayerDirection = 0

        ElseIf (CursorY > 0) And (CursorY < 170) And (CursorX > 425) And (CursorX < 800) And (IsMouseDown = True) Then
            TempPlayerDirection = 1

        ElseIf (CursorY < 350) And (CursorY > 170) And (CursorX > 395) And (IsMouseDown = True) Then
            TempPlayerDirection = 2

        ElseIf (CursorY > 350) And (CursorY < 600) And (CursorX > 425) And (CursorX < 800) And (IsMouseDown = True) Then
            TempPlayerDirection = 3

        ElseIf (CursorY > 260) And (CursorX > 365) And (CursorX < 425) And (IsMouseDown = True) Then
            TempPlayerDirection = 4

        ElseIf (CursorY > 350) And (CursorY < 600) And (CursorX > 0) And (CursorX < 355) And (IsMouseDown = True) Then
            TempPlayerDirection = 5

        ElseIf (CursorY < 350) And (CursorY > 170) And (CursorX < 395) And (IsMouseDown = True) Then
            TempPlayerDirection = 6

        ElseIf (CursorY > 0) And (CursorY < 170) And (CursorX > 0) And (CursorX < 355) And (IsMouseDown = True) Then
            TempPlayerDirection = 7
        End If

        Actor.CastDirection = TempPlayerDirection

    End Sub

    Public Sub DeadZoneInputDirection()
        'If IsMouseDown = True And Scene = SceneType.GAME And CursorY > 230 And CursorY < 290 And CursorX > 365 And CursorX < 425 Then

        If (CursorY > 230) And (CursorY < 250) And (CursorX > 385) And (CursorX < 405) And (IsMouseDown = True) Then
            TempPlayerDirection = 0

        ElseIf (CursorY > 230) And (CursorY < 250) And (CursorX > 405) And (CursorX < 435) And (IsMouseDown = True) Then
            TempPlayerDirection = 1

        ElseIf (CursorY > 250) And (CursorY < 270) And (CursorX > 405) And (CursorX < 435) And (IsMouseDown = True) Then
            TempPlayerDirection = 2

        ElseIf (CursorY > 270) And (CursorY < 290) And (CursorX > 405) And (CursorX < 435) And (IsMouseDown = True) Then
            TempPlayerDirection = 3

        ElseIf (CursorY > 270) And (CursorY < 290) And (CursorX > 385) And (CursorX < 405) And (IsMouseDown = True) Then
            TempPlayerDirection = 4

        ElseIf (CursorY > 270) And (CursorY < 290) And (CursorX > 355) And (CursorX < 385) And (IsMouseDown = True) Then
            TempPlayerDirection = 5

        ElseIf (CursorY > 250) And (CursorY < 270) And (CursorX > 355) And (CursorX < 385) And (IsMouseDown = True) Then
            TempPlayerDirection = 6

        ElseIf (CursorY > 230) And (CursorY < 250) And (CursorX > 355) And (CursorX < 385) And (IsMouseDown = True) Then
            TempPlayerDirection = 7
        End If

    End Sub

End Module

⌨️ 快捷键说明

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