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,238 @@
|
||||
VERSION 5.00
|
||||
Begin VB.Form frmClient
|
||||
BorderStyle = 3 'Fixed Dialog
|
||||
Caption = "vbSimple Client"
|
||||
ClientHeight = 4470
|
||||
ClientLeft = 45
|
||||
ClientTop = 330
|
||||
ClientWidth = 5400
|
||||
Icon = "frmClient.frx":0000
|
||||
LinkTopic = "Form1"
|
||||
MaxButton = 0 'False
|
||||
MinButton = 0 'False
|
||||
ScaleHeight = 4470
|
||||
ScaleWidth = 5400
|
||||
StartUpPosition = 3 'Windows Default
|
||||
Begin VB.Frame Rules
|
||||
Caption = "Rules"
|
||||
Height = 855
|
||||
Left = 60
|
||||
TabIndex = 6
|
||||
Top = 120
|
||||
Width = 5295
|
||||
Begin VB.Label Label1
|
||||
BackStyle = 0 'Transparent
|
||||
Caption = $"frmClient.frx":0442
|
||||
Height = 615
|
||||
Index = 1
|
||||
Left = 60
|
||||
TabIndex = 7
|
||||
Top = 180
|
||||
Width = 5055
|
||||
End
|
||||
End
|
||||
Begin VB.CommandButton cmdExit
|
||||
Cancel = -1 'True
|
||||
Caption = "Exit"
|
||||
Height = 375
|
||||
Left = 3143
|
||||
TabIndex = 5
|
||||
Top = 4020
|
||||
Width = 1215
|
||||
End
|
||||
Begin VB.CommandButton cmdFace
|
||||
Caption = "Make Faces"
|
||||
Default = -1 'True
|
||||
Height = 375
|
||||
Left = 1043
|
||||
TabIndex = 4
|
||||
Top = 4020
|
||||
Width = 1215
|
||||
End
|
||||
Begin VB.TextBox txtUserInfo
|
||||
BackColor = &H8000000F&
|
||||
Height = 1935
|
||||
Left = 60
|
||||
Locked = -1 'True
|
||||
MultiLine = -1 'True
|
||||
ScrollBars = 2 'Vertical
|
||||
TabIndex = 1
|
||||
Top = 1980
|
||||
Width = 5295
|
||||
End
|
||||
Begin VB.Frame Frame1
|
||||
Caption = "User Stats"
|
||||
Height = 915
|
||||
Left = 60
|
||||
TabIndex = 0
|
||||
Top = 1020
|
||||
Width = 5235
|
||||
Begin VB.Label lblSession
|
||||
BackStyle = 0 'Transparent
|
||||
Height = 255
|
||||
Left = 120
|
||||
TabIndex = 3
|
||||
Top = 240
|
||||
Width = 4935
|
||||
End
|
||||
Begin VB.Label lblStats
|
||||
BackStyle = 0 'Transparent
|
||||
Height = 255
|
||||
Left = 120
|
||||
TabIndex = 2
|
||||
Top = 540
|
||||
Width = 4995
|
||||
End
|
||||
End
|
||||
End
|
||||
Attribute VB_Name = "frmClient"
|
||||
Attribute VB_GlobalNameSpace = False
|
||||
Attribute VB_Creatable = False
|
||||
Attribute VB_PredeclaredId = True
|
||||
Attribute VB_Exposed = False
|
||||
Option Explicit
|
||||
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
'
|
||||
' Copyright (C) 1999-2001 Microsoft Corporation. All Rights Reserved.
|
||||
'
|
||||
' File: frmClient.frm
|
||||
'
|
||||
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
Implements DirectPlay8Event
|
||||
Private Enum MsgTypes
|
||||
Msg_NoOtherPlayers
|
||||
Msg_NumPlayers
|
||||
Msg_SendWave
|
||||
End Enum
|
||||
|
||||
Private Sub cmdExit_Click()
|
||||
Unload Me
|
||||
End Sub
|
||||
|
||||
Private Sub cmdFace_Click()
|
||||
'Now we just need to 'make faces'
|
||||
Dim oMsg() As Byte, lOffset As Long
|
||||
lOffset = NewBuffer(oMsg)
|
||||
AddDataToBuffer oMsg, CByte(1), SIZE_BYTE, lOffset
|
||||
dpc.Send oMsg, 0, DPNSEND_NOLOOPBACK
|
||||
End Sub
|
||||
|
||||
Private Sub Form_Load()
|
||||
|
||||
Set DPlayEventsForm = New DPlayConnect
|
||||
'First lets get the dplay connection started
|
||||
If Not DPlayEventsForm.StartClientConnectWizard(dx, dpc, AppGuid, 10, Me) Then
|
||||
Cleanup
|
||||
End
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub Form_Unload(Cancel As Integer)
|
||||
Me.Hide
|
||||
DPlayEventsForm.DoSleep 50
|
||||
Cleanup
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_AddRemovePlayerGroup(ByVal lMsgID As Long, ByVal lPlayerID As Long, ByVal lGroupID As Long, fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_AppDesc(fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_AsyncOpComplete(dpnotify As DxVBLibA.DPNMSG_ASYNC_OP_COMPLETE, fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_ConnectComplete(dpnotify As DxVBLibA.DPNMSG_CONNECT_COMPLETE, fRejectMsg As Boolean)
|
||||
Dim AppDesc As DPN_APPLICATION_DESC
|
||||
|
||||
If dpnotify.hResultCode <> 0 Then
|
||||
'For some reason we could not connect. All available slots must be closed.
|
||||
MsgBox "Connect Failed. Error: 0x" & CStr(Hex$(dpnotify.hResultCode)) & " - This sample will now close.", vbOKOnly Or vbCritical, "Closing"
|
||||
DPlayEventsForm.CloseForm Me
|
||||
Else
|
||||
AppDesc = dpc.GetApplicationDesc(0)
|
||||
Me.Caption = AppDesc.SessionName
|
||||
lblSession = "Session Name: " & AppDesc.SessionName
|
||||
lblStats.Caption = "Total clients: " & CStr(AppDesc.lCurrentPlayers) & "/" & CStr(AppDesc.lMaxPlayers)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_CreateGroup(ByVal lGroupID As Long, ByVal lOwnerID As Long, fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_CreatePlayer(ByVal lPlayerID As Long, fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_DestroyGroup(ByVal lGroupID As Long, ByVal lReason As Long, fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_DestroyPlayer(ByVal lPlayerID As Long, ByVal lReason As Long, fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_EnumHostsQuery(dpnotify As DxVBLibA.DPNMSG_ENUM_HOSTS_QUERY, fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_EnumHostsResponse(dpnotify As DxVBLibA.DPNMSG_ENUM_HOSTS_RESPONSE, fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_HostMigrate(ByVal lNewHostID As Long, fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_IndicateConnect(dpnotify As DxVBLibA.DPNMSG_INDICATE_CONNECT, fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_IndicatedConnectAborted(fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_InfoNotify(ByVal lMsgID As Long, ByVal lNotifyID As Long, fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_Receive(dpnotify As DxVBLibA.DPNMSG_RECEIVE, fRejectMsg As Boolean)
|
||||
'The server is telling us something. What?
|
||||
Dim sPlayer As String, lOffset As Long
|
||||
Dim lMsg As Long, lNum As Long, lMax As Long
|
||||
|
||||
GetDataFromBuffer dpnotify.ReceivedData, lMsg, LenB(lMsg), lOffset
|
||||
Select Case lMsg
|
||||
Case Msg_NumPlayers
|
||||
GetDataFromBuffer dpnotify.ReceivedData, lNum, LenB(lNum), lOffset
|
||||
GetDataFromBuffer dpnotify.ReceivedData, lMax, LenB(lMax), lOffset
|
||||
lblStats.Caption = "Total clients: " & CStr(lNum) & "/" & CStr(lMax)
|
||||
Case Msg_NoOtherPlayers
|
||||
txtUserInfo.Text = txtUserInfo.Text & "There are no other players to make funny faces at!" & vbCrLf
|
||||
txtUserInfo.SelStart = Len(txtUserInfo.Text)
|
||||
Case Msg_SendWave
|
||||
'The only data we will receive is player info
|
||||
sPlayer = GetStringFromBuffer(dpnotify.ReceivedData, lOffset)
|
||||
'Append the data to the end of the line, and autoscroll there
|
||||
txtUserInfo.Text = txtUserInfo.Text & sPlayer & " is making faces at you!" & vbCrLf
|
||||
txtUserInfo.SelStart = Len(txtUserInfo.Text)
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_SendComplete(dpnotify As DxVBLibA.DPNMSG_SEND_COMPLETE, fRejectMsg As Boolean)
|
||||
'VB requires that we must implement *every* member of this interface
|
||||
End Sub
|
||||
|
||||
Private Sub DirectPlay8Event_TerminateSession(dpnotify As DxVBLibA.DPNMSG_TERMINATE_SESSION, fRejectMsg As Boolean)
|
||||
If dpnotify.hResultCode = DPNERR_HOSTTERMINATEDSESSION Then
|
||||
MsgBox "The host has terminated this session. This sample will now exit.", vbOKOnly Or vbInformation, "Exiting"
|
||||
Else
|
||||
MsgBox "This session has been lost. This sample will now exit.", vbOKOnly Or vbInformation, "Exiting"
|
||||
End If
|
||||
DPlayEventsForm.CloseForm Me
|
||||
End Sub
|
||||
Reference in New Issue
Block a user