亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? modmainserver.vb.svn-base

?? MirUnleashed vb.net Module modMainServer Public WithEvents Socket As New WinsockServer Pub
?? SVN-BASE
?? 第 1 頁 / 共 5 頁
字號:
Imports System.Text
Imports System.Security.Cryptography

Module modMainServer
    Public WithEvents Socket As New WinsockServer
    Public WithEvents StatusSocket As New WinsockServer
    Dim MonsterThread As New System.Threading.Thread(AddressOf MonsterProcess)
    Dim LastPacket As String = ""

#Region "Start Server"

    Public Sub StartServer()
        If Config.EnableLogging = True Then
            LogStream = New IO.FileStream(Config.LogDir & LogFile & ".txt", IO.FileMode.Append)
        End If
        Log(":Game Server started", "", 1)

        AddLog("SQL", "Connecting to SQL...")
        ConnectSQL()

        LoadItemID()

        AddLog("Server", "Loading Exp Data...")
        LoadExp()
        AddLog("Server", "Exp Data Loaded.")

        AddLog("Server", "Loading Maps...")
        FillMapList()
        GetDoors()
        AddLog("Server", "Maps Loaded.")

        AddLog("Server", "Loading Npcs...")
        LoadNpcs()
        AddLog("Server", "Npcs Loaded.")

        AddLog("Server", "Loading Items...")
        LoadItemStatList()
        AddLog("Server", "Items Loaded.")

        AddLog("Server", "Loading Monsters...")
        LoadMonsterStats()
        LoadSpawnTable()
        AddLog("Server", "Monsters Loaded.")

        AddLog("Server", "Loading Magics...")
        LoadMagics()
        AddLog("Server", "Magics Loaded.")

        AddLog("Server", "Loading Players Items...")
        LoadPlayerItems()
        AddLog("Server", "Players Items Loaded.")

        AddLog("Server", "Loading GameMaster List...")
        LoadGameMasterList()
        AddLog("Server", "GameMaster List Loaded.")

        AddLog("Server", "Loading Notice...")
        LoadNotice()
        AddLog("Server", "Notice Loaded.")

        AddLog("Game Server", "Loading Guild List...")
        LoadGuilds()
        AddLog("Game Server", "Guild List Loaded.")

        AddLog("Server", "Starting Monsters AI...")
        MonsterThread.IsBackground = True
        MonsterThread.Start()
        AddLog("Server", "Monster AI Started.")

        Socket.Listen(Config.GamePort)
        StatusSocket.Listen(25000)
        AddLog("Socket", "Listening on Port: " & Config.GamePort)

        AddLog("::::Game Server started::::", "")
    End Sub

#End Region

#Region "Socket Handles"

    Private Sub Socket_onDataArrival(ByVal sData() As Byte, ByVal State As modSocket.State) Handles Socket.onDataArrival
        Dim Packet As String
        Dim Pieces() As String
        Dim iTotalBytes As Integer = GetByteCount(sData)

        ReDim Preserve sData(iTotalBytes)
        Packet = System.Text.Encoding.ASCII.GetString(sData)

        'MsgBox(Len(Packet2))

        If Not LastPacket = "" Then
            Packet = LastPacket & Packet
            LastPacket = ""
        End If

        If Not Right(Packet, 1) = Chr(30) Then
            LastPacket = Packet
            Exit Sub
        End If

        'add the old packet to new

        Packet = LastPacket & Packet

        Pieces = Split(Packet, Chr(30))

        Dim R As Integer

        For R = LBound(Pieces) To UBound(Pieces)
            Packet = Pieces(R)
            If Not Packet = "" Then ProcessPacket(Packet, State)
        Next R
    End Sub

    Private Sub ProcessPacket(ByVal Packet As String, ByVal State As State)
        Dim Body As String
        Dim Header As Header

        'Packet = System.Text.Encoding.ASCII.GetString(Data)
        'If Packet.Contains(":/") Then
        '    Dim Packet2 As String
        '    Dim n As Integer
        '    For n = 0 To 9
        '        Packet2 = GetTok(Packet, n, ":/")
        '        If Packet2 = "failure" Then Exit Sub
        '        Packet2 &= ":"
        '        Socket.SplitDataSend(Packet2, State)
        '    Next n
        '    Exit Sub
        'End If
        Header = DecodePacketHeader(Packet)
        Body = DecodePacketBody(Packet)

        If Socket.Lst.GetLogin(State.Index) = "" Then
            NewConnection(Body, State)
            Exit Sub
        End If

        Select Case Header.wIdent
            Case GameMsg.CM_GOGAME
                ProcessGoGame(State)
            Case GameMsg.CM_MOVE
                ProcessMove(Header, State)
            Case GameMsg.CM_TURN
                ProcessTurn(Header, State)
            Case GameMsg.CM_CHAT
                ProcessChat(Body, State)
            Case GameMsg.CM_CLICKNPC
                ProcessClickNpc(Header, State)
            Case GameMsg.CM_CLICKNPC_MENU
                ProcessClickNpcMenu(Header, Body, State)
            Case GameMsg.CM_NORMAL_HIT
                ProcessHit(Header, State)
            Case GameMsg.CM_TWOHANDED_HIT
            Case GameMsg.CM_PICKAXE_HIT
            Case GameMsg.CM_USEMAGIC
                ProcessMagicAttack(Header, State)
            Case GameMsg.CM_WEAR_ITEM
                ProcessWearItem(Header, State)
            Case GameMsg.CM_TAKEOFF_ITEM
                ProcessTakeOffItem(Header, State)
            Case GameMsg.CM_DROP_ITEM
                ProcessDropItem(Header, State)
            Case GameMsg.CM_PICKUP_ITEM
                ProcessPickupItem(Header, State)
            Case GameMsg.CM_USE_ITEM
                ProcessUseItem(Header, State)
            Case GameMsg.CM_REQUEST_GUILDINFO
                ProcessRequestGuildInfo(State)
        End Select

    End Sub

    Private Sub Socket_onAccept(ByVal State As State) Handles Socket.onAccept
        AddLog("Socket", Socket.Lst.GetIP(State.Index) & " Connected.")
        Log("User Connected", "IP: " & Socket.Lst.GetIP(State.Index))
        UserCount += 1
        FrmMain.UpdateUserCount()
    End Sub

    Private Sub Socket_onDisconnect(ByVal State As modSocket.State) Handles Socket.onDisconnect
        Dim Player As clsPlayer

        Player = ObjectList(State.Index)

        If Not Player Is Nothing Then

            'Tell everyone we quit
            ProcessPlayerDisappear(State.Index)

            SavePlayerData(Player)
            SavePlayerItems(Player)
            Dim PlayerMap As Map = Maps(Player.Map)
            Dim i As Integer
            For i = 0 To 9
                If PlayerMap.ObjectList.Contains(Player.X & "/" & Player.Y & "/" & i) Then
                    If PlayerMap.ObjectList(Player.X & "/" & Player.Y & "/" & i) = Player.StateId Then
                        PlayerMap.ObjectList.Remove(Player.X & "/" & Player.Y & "/" & i)
                    End If
                End If
            Next

            AddLog("User Disconnected", Player.Name & " has left the server.")
            AddLog("Socket", Socket.Lst.GetIP(State.Index) & " Disconnected.")
            Log("User Disconnected", "Character: " & Player.Name & " IP: " & Socket.Lst.GetIP(State.Index))
            UserCount -= 1
            FrmMain.UpdateUserCount()

            PlayerList.Remove(Player.Name)
            FrmMain.lstPlayers.Items.Remove(Player.Name)
            ObjectList.Remove(State.Index)
            Socket.Lst.Remove(State.Index)
        Else
            AddLog("Socket", Socket.Lst.GetIP(State.Index) & " Disconnected.")
            Log("User Disconnected", "IP: " & Socket.Lst.GetIP(State.Index))
            UserCount -= 1
            FrmMain.UpdateUserCount()

            Socket.Lst.Remove(State.Index)
        End If
    End Sub

    Private Sub Socket_onError(ByVal err As String, ByVal State As State) Handles Socket.onError
        If State Is Nothing Then
            Exit Sub
        End If
        'AddLog("Socket Error", Socket.Lst.GetIP(State.Index) & ": " & err)
    End Sub

#Region "Status Socket"

    Private Sub StatusSocket_onAccept(ByVal State As modSocket.State) Handles StatusSocket.onAccept
        AddLog("Status Socket", StatusSocket.Lst.GetIP(State.Index) & " recieved the user count.")
        StatusSocket.SendData(UserCount, State.Index)
        StatusSocket.DisconnectUser(State.Index)
    End Sub

#End Region

#End Region

#Region "Processing"

#Region "NewConnection"

    Public Sub NewConnection(ByVal Body As String, ByVal State As State)
        Dim Username As String = GetTok(Body, 0, "/")
        Dim Character As String = GetTok(Body, 1, "/")
        Dim Certification As String = GetTok(Body, 2, "/")
        Dim Version As String = GetTok(Body, 3, "/")
        Dim Password As String = GetTok(Body, 4, "/")
        Password = GenerateHash(Password)

        If CheckLogin(Username, Password) Then
            If Trim(Version) = Config.ClientVersion Then
                If CheckCert(Username, Certification) Then
                    If CharExistOnAcc(Username, Character) Then

                        Packets.SendNotice(Notice, State.Index)
                        Socket.Lst.SetLogin(State.Index, Username)
                        Socket.Lst.SetCharacter(State.Index, Character)
                        AddLog("User Connected", Character & " has connected to the server.")
                        FrmMain.lstPlayers.Items.Add(Character)
                    Else
                        AddLog("Error", Username & " tried to login onto " & Character & " from a different account.")
                        Packets.SendNoticeFail(State.Index)
                    End If
                Else
                    AddLog("Error", Username & " tried to login with wrong certification.")
                    Packets.SendNoticeFail(State.Index)
                End If
            Else
                AddLog("Incorrect Client", Username & " tried to login with wrong client.")
                Packets.SendNoticeFail(State.Index)
            End If
        Else
            AddLog("Error", Username & " tried to join the server with wrong Username or Password")
            Packets.SendNoticeFail(State.Index)
        End If

    End Sub

#End Region
#Region "ProcessGoGame"

    Public Sub ProcessGoGame(ByVal State As State)
        Dim PlayerName As String = Socket.Lst.GetCharacter(State.Index)
        If Not PlayerList(PlayerName) Is Nothing Then Exit Sub
        If PlayerList.Contains(PlayerName) Then Exit Sub 'Player already online

        Dim i As Integer
        Dim Player As New clsPlayer
        Player.LoadPlayer(PlayerName)
        Player.StateId = State.Index


        'Adds Player to Objectlist and Playerlist
        If ObjectList.Contains(State.Index) = False Then
            ObjectList.Add(State.Index, Player)
            PlayerList.Add(PlayerName, State.Index)
        End If

        Dim CheckMap As Map = Maps.Item(Player.Map)
        Dim Added As Boolean = False
        While i < 10 And Added = False
            If CheckMap.ObjectList.Contains(Player.X & "/" & Player.Y & "/" & i) = False Then
                CheckMap.ObjectList.Add(Player.X & "/" & Player.Y & "/" & i, PlayerList(PlayerName))
                Added = True
            End If
            i += 1
        End While

        Packets.SendNewMap(Player.StateId, Player.X, Player.Y, CheckMap.LightMode, CheckMap.MapFilename, CheckMap.MapName)
        Packets.SendCharStatus(Player.StateId, Player.Light, Player.Reved, Player.Name, Player.NameColour, Player.IsDead, Player.Gender, Player.GuildName, Player.GuildTitle, Player.GuildRank)
        Packets.SendBagItems(Player)
        Packets.SendEquipment(Player)
        Packets.SendMagics(Player)

        Packets.SendPlayerStats(Player.StateId, Player.Gold, Player.Job, GetPlayerStats(Player))

        Packets.SendChatMessage(Player.StateId, ChatColours.Green, Player.GetAttackMode, Player.StateId)
        Packets.SendChatMessage(Player.StateId, ChatColours.Green, "To change do: CTRL-H", Player.StateId)
        Packets.SendChatMessage(Player.StateId, ChatColours.Green, WelcomeMessage, Player.StateId)

        Packets.SendGoGame(Player.StateId, ToByte(Player.AllowGroup), ToByte(Player.AllowGroupRecall), Player.AttackMode, Player.Dir)
        ProcessMyAppears(State)
    End Sub

#End Region

#Region "ProcessMyAppears"

    Public Sub ProcessMyAppears(ByVal State As State)
        Dim Player As clsPlayer = ObjectList(State.Index)
        Dim tPlayer As New clsPlayer
        Dim Added As New Hashtable
        Dim Locals As Hashtable = GetLocalObjects(Player.X, Player.Y, Player.Map, 15, 15, Player.StateId)

        If Locals.Count = 0 Then Exit Sub

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品天堂| 91精品91久久久中77777| 9i看片成人免费高清| 911精品产国品一二三产区| 亚洲国产激情av| 蜜桃视频在线观看一区二区| 99国产精品久久久久久久久久久| 欧美浪妇xxxx高跟鞋交| 国产精品无人区| 国产一区二区精品久久91| 在线看一区二区| 国产精品久久久久一区二区三区共| 日本欧美韩国一区三区| 欧美性色欧美a在线播放| 亚洲欧美自拍偷拍色图| 国产在线精品一区二区不卡了| 欧美午夜电影在线播放| 亚洲婷婷综合色高清在线| 国产精品综合在线视频| 欧美mv和日韩mv的网站| 亚洲午夜久久久久久久久电影网 | 国产女人18水真多18精品一级做| 日韩综合在线视频| 正在播放亚洲一区| 天堂va蜜桃一区二区三区漫画版| 91精品福利在线一区二区三区| 亚洲综合偷拍欧美一区色| 色婷婷综合在线| 一区二区三区四区在线免费观看| 国产99久久久久久免费看农村| 精品国产污污免费网站入口| 老司机免费视频一区二区三区| 欧美精品日韩综合在线| 日本成人中文字幕在线视频| 欧美精品色综合| 久久精品999| 国产日本欧洲亚洲| 97精品电影院| 亚洲一区二区三区视频在线| 欧美男生操女生| 麻豆精品视频在线观看免费| 精品粉嫩超白一线天av| 国产一区不卡视频| 国产精品久久免费看| 色菇凉天天综合网| 日韩电影免费在线| 国产亚洲精品bt天堂精选| 成人网页在线观看| 亚洲成人精品一区| xf在线a精品一区二区视频网站| 国产精品888| 亚洲永久免费视频| 7777精品伊人久久久大香线蕉完整版 | 国产美女av一区二区三区| 337p粉嫩大胆噜噜噜噜噜91av| 国产高清久久久久| 综合激情网...| 91精品久久久久久久99蜜桃 | 在线观看av一区| 日韩影院免费视频| 国产亚洲欧美日韩在线一区| eeuss鲁片一区二区三区 | 亚洲柠檬福利资源导航| 欧美日免费三级在线| 麻豆专区一区二区三区四区五区| 久久久久久免费毛片精品| 色哟哟一区二区三区| 精品一区二区在线免费观看| 国产精品欧美经典| 日韩视频在线你懂得| 成人国产精品免费观看视频| 视频一区二区三区入口| 国产精品嫩草99a| 91麻豆精品91久久久久久清纯| 国产凹凸在线观看一区二区| 亚洲不卡av一区二区三区| 久久精品在这里| 日韩一级黄色大片| 91小视频免费观看| 国产美女在线观看一区| 亚洲午夜在线视频| 婷婷夜色潮精品综合在线| 国产精品福利一区二区三区| 日韩欧美国产午夜精品| 色狠狠色狠狠综合| 成人黄色在线网站| 国产精品一区专区| 日韩av中文字幕一区二区| 一区二区三区日韩精品| 中文文精品字幕一区二区| 欧美成人高清电影在线| 欧美日韩精品一区二区在线播放| jizzjizzjizz欧美| 国产不卡视频在线播放| 麻豆精品一区二区综合av| 亚洲影视在线播放| 亚洲欧美自拍偷拍| 国产精品全国免费观看高清 | 亚洲国产中文字幕| 综合久久给合久久狠狠狠97色| 国产偷国产偷精品高清尤物| 精品欧美一区二区三区精品久久 | 色婷婷精品大视频在线蜜桃视频| 激情六月婷婷久久| 国内精品视频一区二区三区八戒| 天堂在线亚洲视频| 性欧美疯狂xxxxbbbb| 亚洲午夜三级在线| 爽好多水快深点欧美视频| 亚洲电影视频在线| 亚洲成a人v欧美综合天堂| 亚洲国产裸拍裸体视频在线观看乱了 | 免费视频最近日韩| 日本大胆欧美人术艺术动态| 丝袜亚洲另类丝袜在线| 丝袜美腿成人在线| 六月丁香婷婷久久| 国产在线视频不卡二| 国产福利一区二区三区视频 | 亚洲精品国产第一综合99久久| 国产精品护士白丝一区av| 中文字幕一区二区三区不卡在线 | 日韩欧美一级二级| 精品少妇一区二区三区 | 91精品婷婷国产综合久久| 欧美精品日韩一区| 精品久久久久av影院 | 不卡的av在线播放| 一本色道a无线码一区v| 日本道在线观看一区二区| 欧美日本免费一区二区三区| 91精品国产色综合久久ai换脸| 欧美一区二区女人| 国产午夜精品一区二区三区嫩草 | 制服.丝袜.亚洲.另类.中文 | 亚洲一区二区四区蜜桃| 偷窥少妇高潮呻吟av久久免费| 美女在线观看视频一区二区| 国产九色sp调教91| 色就色 综合激情| 911精品国产一区二区在线| 久久免费午夜影院| 亚洲激情av在线| 麻豆成人久久精品二区三区红 | 欧美成人性福生活免费看| 国产欧美精品一区二区三区四区| 国产精品久久久久婷婷二区次| 一级特黄大欧美久久久| 精品制服美女丁香| 色综合中文字幕国产| 欧美亚日韩国产aⅴ精品中极品| 91精品国产一区二区三区香蕉| 欧美经典一区二区三区| 一区二区三区四区视频精品免费| 免费成人在线播放| 色婷婷精品久久二区二区蜜臂av | av不卡免费电影| 在线播放亚洲一区| 国产精品卡一卡二卡三| 奇米四色…亚洲| 在线视频一区二区三| 久久人人爽人人爽| 亚洲成av人片在线观看| 国产成人精品亚洲777人妖| 91精品国产免费| 亚洲精品日韩一| 国产成人综合自拍| 337p亚洲精品色噜噜噜| 亚洲精品欧美激情| 高清不卡在线观看| 精品日韩欧美在线| 午夜av电影一区| 91丨九色porny丨蝌蚪| xfplay精品久久| 玖玖九九国产精品| 欧美日韩在线播放| 成人免费视频在线观看| 国产高清久久久久| 亚洲精品一线二线三线| 日日夜夜精品视频免费| 色婷婷综合久久久久中文一区二区 | 欧美大尺度电影在线| 亚洲在线视频网站| 色综合天天做天天爱| 久久久精品免费免费| 国产真实乱偷精品视频免| 欧美午夜精品一区二区三区 | 天天亚洲美女在线视频| 91视频国产资源| 中文字幕在线不卡| 成人18精品视频| 国产精品理伦片| 99精品久久久久久| 国产精品嫩草99a| av在线综合网| 中文字幕在线免费不卡| 99re这里只有精品视频首页| 中文一区二区完整视频在线观看 | 欧美色精品在线视频| 亚洲欧美日韩中文字幕一区二区三区|