Initial commit: ROW Client source code
Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
Attribute VB_Name = "modDPlayServer"
|
||||
Option Explicit
|
||||
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
'
|
||||
' Copyright (C) 1999-2001 Microsoft Corporation. All Rights Reserved.
|
||||
'
|
||||
' File: modDPlayServer.bas
|
||||
'
|
||||
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
'Public vars for the app
|
||||
Public dx As New DirectX8
|
||||
Public dps As DirectPlay8Server
|
||||
Public dpa As DirectPlay8Address
|
||||
Public glNumPlayers As Long
|
||||
|
||||
Public Sub Main()
|
||||
If App.PrevInstance Then
|
||||
MsgBox "You can only run one instance of this server at a time.", vbOKOnly Or vbInformation, "Close other instance"
|
||||
Exit Sub
|
||||
End If
|
||||
'Set up the default DPlay objects
|
||||
InitDPlay
|
||||
'Show the form (which will start the server)
|
||||
frmServer.Show
|
||||
End Sub
|
||||
|
||||
Public Sub InitDPlay()
|
||||
|
||||
Set dps = dx.DirectPlayServerCreate
|
||||
Set dpa = dx.DirectPlayAddressCreate
|
||||
|
||||
End Sub
|
||||
|
||||
Public Sub Cleanup()
|
||||
|
||||
'Shut down our message handler
|
||||
If Not dps Is Nothing Then dps.UnRegisterMessageHandler
|
||||
'Close down our session
|
||||
If Not dps Is Nothing Then dps.Close
|
||||
Set dps = Nothing
|
||||
Set dpa = Nothing
|
||||
Set dx = Nothing
|
||||
|
||||
End Sub
|
||||
|
||||
'Send a message to a player
|
||||
Public Function SendMessage(ByVal sUser As String, ByVal sFrom As String, ByVal sChat As String) As Boolean
|
||||
|
||||
Dim lSendID As Long, lMsg As Long
|
||||
Dim oBuf() As Byte, lOffset As Long
|
||||
|
||||
'Before we send this message check to see if this user is blocked
|
||||
If AmIBlocked(sUser, sFrom) Then
|
||||
lSendID = GetCurrentDPlayID(sFrom)
|
||||
lMsg = Msg_UserBlocked
|
||||
lOffset = NewBuffer(oBuf)
|
||||
AddDataToBuffer oBuf, lMsg, LenB(lMsg), lOffset
|
||||
AddStringToBuffer oBuf, sUser, lOffset
|
||||
dps.SendTo lSendID, oBuf, 0, 0
|
||||
Else
|
||||
lSendID = GetCurrentDPlayID(sUser)
|
||||
If lSendID = 0 Then 'This person isn't logged on
|
||||
lSendID = GetCurrentDPlayID(sFrom)
|
||||
lMsg = Msg_UserUnavailable
|
||||
lOffset = NewBuffer(oBuf)
|
||||
AddDataToBuffer oBuf, lMsg, LenB(lMsg), lOffset
|
||||
AddStringToBuffer oBuf, sUser, lOffset
|
||||
AddStringToBuffer oBuf, sChat, lOffset
|
||||
Else
|
||||
lMsg = Msg_ReceiveMessage
|
||||
lOffset = NewBuffer(oBuf)
|
||||
AddDataToBuffer oBuf, lMsg, LenB(lMsg), lOffset
|
||||
AddStringToBuffer oBuf, sFrom, lOffset
|
||||
AddStringToBuffer oBuf, sChat, lOffset
|
||||
End If
|
||||
dps.SendTo lSendID, oBuf, 0, 0
|
||||
End If
|
||||
SendMessage = True
|
||||
|
||||
End Function
|
||||
Reference in New Issue
Block a user