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

📄 modgamemaster.vb.svn-base

📁 MirUnleashed vb.net Module modMainServer Public WithEvents Socket As New WinsockServer Pub
💻 SVN-BASE
字号:
Module modGameMaster

#Region "LoadGameMasterList"

    Public Sub LoadGameMasterList()
        Dim DataStream As System.IO.TextReader
        Dim Data As String

        If IO.File.Exists("GameMasters.txt") = False Then
            AddLog("Server", "GameMasters.txt not found.")
            Exit Sub
        End If
        DataStream = System.IO.File.OpenText("GameMasters.txt")
        Data = DataStream.ReadLine

        Do Until Data Is Nothing
            If Not Data Is "" And Not Data.StartsWith(";") Then
                GameMasterList.Add(Data, "")
            End If
            Data = DataStream.ReadLine
        Loop
        DataStream.Close()
    End Sub

#End Region
#Region "GM Commands"
    Public GMCommands As New clsGMCommands
    Public Class clsGMCommands

#Region "GMShout"

        Public Sub GMShout(ByVal GMName As String, ByVal Message As String)
            If Message = "" Then Exit Sub
            Dim TargetId, i As Integer
            Dim tPlayer As New clsPlayer

            If UserCount = 0 Then Exit Sub

            Do Until i = UserCount
                If Not ObjectList(i) Is Nothing Then
                    TargetId = i
                    Packets.SendChatMessage(-1, ChatColours.Red, "(*)[" & GMName & "] " & Message, TargetId)
                    i += 1
                End If
            Loop
        End Sub

#End Region
#Region "Spawn Monsters"

        Public Sub SpawnMob(ByVal tMonsterName As String, ByVal tAmount As String, ByVal tX As Integer, ByVal tY As Integer, ByVal tMap As String)
            If MonsterStatsList.Contains(tMonsterName) = False Then Exit Sub

            Dim rAmount, i As Integer
            If IsNumeric(tAmount) = False Then
                rAmount = 1
            Else
                rAmount = tAmount
            End If

            Dim tMonster As clsMonster
            Dim MonsterStats As clsMobStats = MonsterStatsList(tMonsterName)

            For i = 1 To rAmount
                tMonster = New clsMonster
                tMonster.Name = tMonsterName
                tMonster.Exp = MonsterStats.Exp
                tMonster.HP = MonsterStats.MaxHP
                tMonster.MP = MonsterStats.MaxMP
                tMonster.Light = 0
                tMonster.NameColour = NameColours.White
                tMonster.IsDead = False
                tMonster.Dir = Rand(0, 7)
                SpawnMonster(tMonster, tX, tY, tMap)
            Next i

        End Sub

#End Region
#Region "Recall Monsters"

        Public Sub RecallMob(ByVal tMonsterName As String, ByVal tAmount As String, ByVal Player As clsPlayer)
            If MonsterStatsList.Contains(tMonsterName) = False Then Exit Sub

            Dim rAmount, i As Integer
            If IsNumeric(tAmount) = False Then
                rAmount = 1
            Else
                rAmount = tAmount
            End If

            Dim tMonster As clsMonster
            Dim MonsterStats As clsMobStats = MonsterStatsList(tMonsterName)
            Dim tPoint As Point = IsNextWalkDir(Player.Dir, New Point(Player.X, Player.Y))

            For i = 1 To rAmount
                tMonster = New clsMonster
                tMonster.Name = tMonsterName
                tMonster.Exp = MonsterStats.Exp
                tMonster.HP = MonsterStats.MaxHP
                tMonster.MP = MonsterStats.MaxMP
                tMonster.Light = 0
                tMonster.NameColour = NameColours.White
                tMonster.IsDead = False
                tMonster.PetOwner = Player.Name
                tMonster.IsPet = True
                tMonster.Dir = Rand(0, 7)
                SpawnMonster(tMonster, tPoint.X, tPoint.Y, Player.Map)
            Next i

        End Sub

#End Region
#Region "Make Item"

        Public Sub MakeItem(ByVal ItemName As String, ByVal sAmount As String, ByVal Player As clsPlayer, ByVal Prefix As String)
            Dim rItem As clsItem = ItemStatList(GetItemIndex(ItemName.ToLower))
            Dim Amount As Integer
            If IsNumeric(sAmount) Then
                Amount = sAmount
            Else
                Amount = 1
            End If

            If Not rItem Is Nothing And Not Amount = 0 Then
                Dim i As Integer
                For i = 0 To Amount - 1
                    Dim pItem As New clsPlayerItem

                    pItem.ItemID = GenerateItemID()
                    pItem.Dura = rItem.DuraMax
                    pItem.ItemIndex = rItem.Index
                    pItem.NamePrefix = Prefix
                    Player.AddItemToBag(pItem)
                    Packets.SendPickupItem(Player.StateId, GetItemBuffer(pItem), 0)
                Next i
            End If
        End Sub

#End Region
#Region "Delete Item"

        Public Sub DeleteItem(ByVal ItemName As String, ByVal sAmount As String, ByVal Player As clsPlayer, ByVal Prefix As String)
            Dim Amount, i As Integer
            If IsNumeric(sAmount) Then
                Amount = sAmount
            Else
                Amount = 1
            End If

            For i = 0 To Amount - 1
                Dim dItemID As Long = Player.DeleteItem(ItemName)
                If dItemID = -1 Then Exit Sub

                Packets.SendDeleteItem(Player.StateId, dItemID)
            Next i
        End Sub

#End Region
#Region "Level"

        Public Sub Level(ByVal Level As Integer, ByVal Player As clsPlayer)
            Player.Level = Level
            Player.Exp = 0
            Player.LevelUp()
        End Sub

#End Region

    End Class
#End Region

End Module

⌨️ 快捷键说明

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