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

📄 mainchar.bas

📁 vb6的一个RPG源码
💻 BAS
字号:
Attribute VB_Name = "MainChar"


Public Sub CheckCol()
If Walking = North Then
Facing = North
If DudeCoord.Y = 0 Then
Walking = 0
frmMain.LoadMap Exits.North
End If
        If mbytMap(DudeCoord.X, DudeCoord.Y - 1).Walkable = False Then
        Walking = 0
        NPCz(DudeCoord.X, DudeCoord.Y).Walking = 0
        NPCz(DudeCoord.X, DudeCoord.Y).LastStep = 3
        NPCz(DudeCoord.X, DudeCoord.Y).Facing = North
        Else
        Walking = North
        NPCz(DudeCoord.X, DudeCoord.Y - 1).Walking = North
        NPCz(DudeCoord.X, DudeCoord.Y - 1).Step = 0
        NPCz(DudeCoord.X, DudeCoord.Y - 1).Atts = UserAtts
        NPCz(DudeCoord.X, DudeCoord.Y - 1).Facing = North
        NPCz(DudeCoord.X, DudeCoord.Y - 1).Mobile = True
        NPCz(DudeCoord.X, DudeCoord.Y - 1).State = Wandering
        NPCz(DudeCoord.X, DudeCoord.Y - 1).LastStep = 3
        NPCz(DudeCoord.X, DudeCoord.Y - 1).MoveY = 32
        NPCz(DudeCoord.X, DudeCoord.Y - 1).StepCounter = 0

        NPCz(DudeCoord.X, DudeCoord.Y - 1).Bubbz = NPCz(DudeCoord.X, DudeCoord.Y).Bubbz
        NPCz(DudeCoord.X, DudeCoord.Y).Bubbz.Damage = 0
        mbytMap(DudeCoord.X, DudeCoord.Y).NPC = False
        mbytMap(DudeCoord.X, DudeCoord.Y - 1).NPC = True
        mbytMap(DudeCoord.X, DudeCoord.Y - 1).Walkable = False
        mbytMap(DudeCoord.X, DudeCoord.Y).Walkable = True
        mbytMap(DudeCoord.X, DudeCoord.Y - 1).Sprite = mbytMap(DudeCoord.X, DudeCoord.Y).Sprite
        DudeCoord.Y = DudeCoord.Y - 1
        If DudeCoord.Y <= 6 Then YCharOffSet = YCharOffSet + 1
        If DudeCoord.Y > 41 Then YCharOffSet = YCharOffSet - 1
        End If
    GoTo Skipper:
End If
If Walking = South Then
Facing = South
If DudeCoord.Y = 50 Then
Walking = 0
frmMain.LoadMap Exits.South
End If
        If mbytMap(DudeCoord.X, DudeCoord.Y + 1).Walkable = False Then
        Walking = 0
        NPCz(DudeCoord.X, DudeCoord.Y).Walking = 0
        NPCz(DudeCoord.X, DudeCoord.Y).LastStep = 0
        NPCz(DudeCoord.X, DudeCoord.Y).Facing = South
        Else
        Walking = South
        NPCz(DudeCoord.X, DudeCoord.Y + 1).Walking = South
        NPCz(DudeCoord.X, DudeCoord.Y + 1).Step = 0
        NPCz(DudeCoord.X, DudeCoord.Y + 1).Atts = UserAtts
        NPCz(DudeCoord.X, DudeCoord.Y + 1).Facing = South
        NPCz(DudeCoord.X, DudeCoord.Y + 1).Mobile = True
        NPCz(DudeCoord.X, DudeCoord.Y + 1).State = Wandering
        NPCz(DudeCoord.X, DudeCoord.Y + 1).LastStep = 0
        NPCz(DudeCoord.X, DudeCoord.Y + 1).MoveY = -32
        NPCz(DudeCoord.X, DudeCoord.Y + 1).StepCounter = 0

        NPCz(DudeCoord.X, DudeCoord.Y + 1).Bubbz = NPCz(DudeCoord.X, DudeCoord.Y).Bubbz
        NPCz(DudeCoord.X, DudeCoord.Y).Bubbz.Damage = 0
        mbytMap(DudeCoord.X, DudeCoord.Y + 1).Walkable = False
        mbytMap(DudeCoord.X, DudeCoord.Y + 1).NPC = True
        mbytMap(DudeCoord.X, DudeCoord.Y).NPC = False
        mbytMap(DudeCoord.X, DudeCoord.Y).Walkable = True
        mbytMap(DudeCoord.X, DudeCoord.Y + 1).Sprite = mbytMap(DudeCoord.X, DudeCoord.Y).Sprite
        DudeCoord.Y = DudeCoord.Y + 1
        If DudeCoord.Y < 8 Then YCharOffSet = YCharOffSet - 1
        If DudeCoord.Y >= 43 Then YCharOffSet = YCharOffSet + 1
        End If
    GoTo Skipper:
End If
If Walking = West Then
Facing = West
If DudeCoord.X = 0 Then
Walking = 0
frmMain.LoadMap Exits.West
End If
        If mbytMap(DudeCoord.X - 1, DudeCoord.Y).Walkable = False Then
        Walking = 0
        NPCz(DudeCoord.X, DudeCoord.Y).Walking = 0
        NPCz(DudeCoord.X, DudeCoord.Y).LastStep = 6
        NPCz(DudeCoord.X, DudeCoord.Y).Facing = West
        Else
        Walking = West
        NPCz(DudeCoord.X - 1, DudeCoord.Y).Walking = West
        NPCz(DudeCoord.X - 1, DudeCoord.Y).Step = 0
        NPCz(DudeCoord.X - 1, DudeCoord.Y).Atts = UserAtts
        NPCz(DudeCoord.X - 1, DudeCoord.Y).Facing = West
        NPCz(DudeCoord.X - 1, DudeCoord.Y).Mobile = True
        NPCz(DudeCoord.X - 1, DudeCoord.Y).State = Wandering
        NPCz(DudeCoord.X - 1, DudeCoord.Y).LastStep = 6
        NPCz(DudeCoord.X - 1, DudeCoord.Y).MoveX = 32
        NPCz(DudeCoord.X - 1, DudeCoord.Y).StepCounter = 0

        NPCz(DudeCoord.X - 1, DudeCoord.Y).Bubbz = NPCz(DudeCoord.X, DudeCoord.Y).Bubbz
        NPCz(DudeCoord.X, DudeCoord.Y).Bubbz.Damage = 0
        mbytMap(DudeCoord.X - 1, DudeCoord.Y).Walkable = False
        mbytMap(DudeCoord.X, DudeCoord.Y).NPC = False
        mbytMap(DudeCoord.X - 1, DudeCoord.Y).NPC = True
        mbytMap(DudeCoord.X, DudeCoord.Y).Walkable = True
        mbytMap(DudeCoord.X - 1, DudeCoord.Y).Sprite = mbytMap(DudeCoord.X, DudeCoord.Y).Sprite
        DudeCoord.X = DudeCoord.X - 1
        If DudeCoord.X < 9 Then XCharOffSet = XCharOffSet + 1
        If DudeCoord.X >= 40 Then XCharOffSet = XCharOffSet - 1
        End If
    GoTo Skipper:
End If
If Walking = East Then
Facing = East
If DudeCoord.X = 50 Then
Walking = 0
frmMain.LoadMap Exits.East
End If
        If mbytMap(DudeCoord.X + 1, DudeCoord.Y).Walkable = False Then
        Walking = 0
        NPCz(DudeCoord.X, DudeCoord.Y).Walking = 0
        NPCz(DudeCoord.X, DudeCoord.Y).LastStep = 9
        NPCz(DudeCoord.X, DudeCoord.Y).Facing = East
        Else
        Walking = East
        NPCz(DudeCoord.X + 1, DudeCoord.Y).Walking = East
        NPCz(DudeCoord.X + 1, DudeCoord.Y).Step = 0
        NPCz(DudeCoord.X + 1, DudeCoord.Y).Atts = UserAtts
        NPCz(DudeCoord.X + 1, DudeCoord.Y).Facing = East
        NPCz(DudeCoord.X + 1, DudeCoord.Y).Mobile = True
        NPCz(DudeCoord.X + 1, DudeCoord.Y).State = Wandering
        NPCz(DudeCoord.X + 1, DudeCoord.Y).LastStep = 9
        NPCz(DudeCoord.X + 1, DudeCoord.Y).MoveX = -32
        NPCz(DudeCoord.X + 1, DudeCoord.Y).StepCounter = 0

        NPCz(DudeCoord.X + 1, DudeCoord.Y).Bubbz = NPCz(DudeCoord.X, DudeCoord.Y).Bubbz
        NPCz(DudeCoord.X, DudeCoord.Y).Bubbz.Damage = 0
        mbytMap(DudeCoord.X + 1, DudeCoord.Y).Walkable = False
        mbytMap(DudeCoord.X, DudeCoord.Y).NPC = False
        mbytMap(DudeCoord.X + 1, DudeCoord.Y).NPC = True
        mbytMap(DudeCoord.X, DudeCoord.Y).Walkable = True
        mbytMap(DudeCoord.X + 1, DudeCoord.Y).Sprite = mbytMap(DudeCoord.X, DudeCoord.Y).Sprite
        DudeCoord.X = DudeCoord.X + 1
        If DudeCoord.X <= 9 Then XCharOffSet = XCharOffSet - 1
        If DudeCoord.X > 40 Then XCharOffSet = XCharOffSet + 1
        End If
End If
Skipper:
End Sub

Public Sub KeyOP(KeyID As Integer)
Dim LockB As Integer
Dim LockS As String
Select Case Facing
Case North:
If mbytMap(DudeCoord.X, DudeCoord.Y - 1).NPCText <> "" Then LockS = mbytMap(DudeCoord.X, DudeCoord.Y - 1).NPCText
LockB = Val(LockS)
If KeyID = LockB Then mbytMap(DudeCoord.X, DudeCoord.Y - 1).Walkable = True
Case South:
If mbytMap(DudeCoord.X, DudeCoord.Y + 1).NPCText <> "" Then LockS = mbytMap(DudeCoord.X, DudeCoord.Y + 1).NPCText
LockB = Val(LockS)
If KeyID = LockB Then mbytMap(DudeCoord.X, DudeCoord.Y + 1).Walkable = True
Case East:
If mbytMap(DudeCoord.X + 1, DudeCoord.Y).NPCText <> "" Then LockS = mbytMap(DudeCoord.X + 1, DudeCoord.Y).NPCText
LockB = Val(LockS)
If KeyID = LockB Then mbytMap(DudeCoord.X + 1, DudeCoord.Y).Walkable = True
Case West:
If mbytMap(DudeCoord.X - 1, DudeCoord.Y).NPCText <> "" Then LockS = mbytMap(DudeCoord.X - 1, DudeCoord.Y).NPCText
LockB = Val(LockS)
If KeyID = LockB Then mbytMap(DudeCoord.X - 1, DudeCoord.Y).Walkable = True
End Select
End Sub

⌨️ 快捷键说明

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