Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
476 lines
16 KiB
VB.net
476 lines
16 KiB
VB.net
|
|
Imports System.Net.Sockets
|
|
Imports System.IO
|
|
Imports System.Text
|
|
|
|
Module DBConn
|
|
|
|
''직접 데이터베이스에 접속할때 쓴다.
|
|
'Public RYL_Conn As String = "server=192.168.1.55;database=Gama;uid=sa;pwd=1234"
|
|
'Public IDBAgent As New DBAgent()
|
|
|
|
'툴사용자 지정
|
|
Public AdminKind As String
|
|
Public IClientSocket As New ClientSocket()
|
|
Public ds As New DataSet()
|
|
|
|
'아이템배열얻기
|
|
Public ItemArray() As Byte
|
|
|
|
'TableIndex
|
|
Public Const AdminTableIndex As Int32 = 0
|
|
Public Const CharItemListIndex As Int32 = 1
|
|
Public Const CharRestraintIndex As Int32 = 2
|
|
Public Const CurrentUserIndex As Int32 = 3
|
|
Public Const LastUserIndex As Int32 = 4
|
|
|
|
'서버리스트
|
|
Public Const Test As String = "테스트"
|
|
Public Const Solpis As String = "솔피스티아"
|
|
Public Const Karte As String = "카르테란트"
|
|
Public Const Iranshya As String = "이란샤"
|
|
Public Const Hiland As String = "하이랜드"
|
|
Public Const Aldia As String = "알디아"
|
|
Public Const Yunite As String = "유니테"
|
|
|
|
'국가코드
|
|
Public Const Code As Integer = 949
|
|
|
|
Public SERVER As String
|
|
Public CHARNAME As String
|
|
|
|
'CharItemFormType = 1 --edit
|
|
'CharItemFormType = 0 --create
|
|
Public CharItemFormType As Boolean
|
|
|
|
Private Structure myData
|
|
Dim ColumnName As String
|
|
Dim ReadOnlyType As Boolean
|
|
End Structure
|
|
|
|
'운영자 권한
|
|
Public Structure ToolAdminRight
|
|
Dim charEdit As Boolean
|
|
Dim charLocation As Boolean
|
|
Dim charseeItem As Boolean
|
|
Dim ItemCreate As Boolean
|
|
Dim ItemEdit As Boolean
|
|
Dim ItemDel As Boolean
|
|
Dim RestraintReg As Boolean
|
|
Dim RestraintRelease As Boolean
|
|
Dim currentUserLogin As Boolean
|
|
Dim lastUserLogin As Boolean
|
|
Dim DoingLogout As Boolean
|
|
End Structure
|
|
|
|
|
|
Public Sub Initialize()
|
|
|
|
MakeAdminTable()
|
|
MakeCharItemTable()
|
|
MakeCharRestraintTable()
|
|
MakeCurrentUserTable()
|
|
MakeLastUserTable()
|
|
|
|
End Sub
|
|
|
|
|
|
'테이블 만들기
|
|
Private Sub MakeAdminTable()
|
|
|
|
Dim myAdminTable As New DataTable("AdminSearch")
|
|
Dim myDataColumn As New DataColumn()
|
|
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "strAdminID"
|
|
myDataColumn.ReadOnly = True
|
|
myAdminTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "strPasswd"
|
|
myDataColumn.ReadOnly = True
|
|
myAdminTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "strLevel"
|
|
myDataColumn.ReadOnly = True
|
|
myAdminTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "strName"
|
|
myDataColumn.ReadOnly = True
|
|
myAdminTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "strIp"
|
|
myDataColumn.ReadOnly = True
|
|
myAdminTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "dateRegit"
|
|
myDataColumn.ReadOnly = True
|
|
myAdminTable.Columns.Add(myDataColumn)
|
|
|
|
ds.Tables.Add(myAdminTable)
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub MakeCharItemTable()
|
|
|
|
Dim myCharItemTable As New DataTable("CharItemList")
|
|
Dim myDataColumn As New DataColumn()
|
|
|
|
Dim ColumnName(59) As myData
|
|
|
|
ColumnName(0).ColumnName = "ItemIndex"
|
|
ColumnName(0).ReadOnlyType = True
|
|
ColumnName(1).ColumnName = "ItemTypeID"
|
|
ColumnName(1).ReadOnlyType = True
|
|
ColumnName(2).ColumnName = "ItemName"
|
|
ColumnName(2).ReadOnlyType = True
|
|
ColumnName(3).ColumnName = "ItemType"
|
|
ColumnName(3).ReadOnlyType = True
|
|
ColumnName(4).ColumnName = "ItemWhere"
|
|
ColumnName(4).ReadOnlyType = True
|
|
ColumnName(5).ColumnName = "ItemX"
|
|
ColumnName(5).ReadOnlyType = True
|
|
ColumnName(6).ColumnName = "ItemY"
|
|
ColumnName(6).ReadOnlyType = True
|
|
ColumnName(7).ColumnName = "ItemZ"
|
|
ColumnName(7).ReadOnlyType = True
|
|
|
|
ColumnName(8).ColumnName = "SizeX"
|
|
ColumnName(8).ReadOnlyType = True
|
|
ColumnName(9).ColumnName = "SizeY"
|
|
ColumnName(9).ReadOnlyType = True
|
|
ColumnName(10).ColumnName = "Amount"
|
|
ColumnName(10).ReadOnlyType = True
|
|
|
|
ColumnName(11).ColumnName = "WhetherAmount"
|
|
ColumnName(11).ReadOnlyType = True
|
|
ColumnName(12).ColumnName = "RuneSocket"
|
|
ColumnName(12).ReadOnlyType = True
|
|
ColumnName(13).ColumnName = "MaxDurability"
|
|
ColumnName(13).ReadOnlyType = True
|
|
|
|
ColumnName(14).ColumnName = "CurSocketNum"
|
|
ColumnName(14).ReadOnlyType = True
|
|
ColumnName(15).ColumnName = "MaxSocketNum"
|
|
ColumnName(15).ReadOnlyType = True
|
|
ColumnName(16).ColumnName = "MaterialType"
|
|
ColumnName(16).ReadOnlyType = True
|
|
|
|
Dim nCount As Int32
|
|
For nCount = 17 To 24
|
|
ColumnName(nCount).ColumnName = "Socket" + (nCount - 17).ToString
|
|
ColumnName(nCount).ReadOnlyType = True
|
|
Next
|
|
|
|
For nCount = 25 To 59
|
|
ColumnName(nCount).ColumnName = "Attribute" + (nCount - 25).ToString
|
|
ColumnName(nCount).ReadOnlyType = True
|
|
Next
|
|
|
|
For nCount = 0 To 59
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = ColumnName(nCount).ColumnName
|
|
myDataColumn.ReadOnly = ColumnName(nCount).ReadOnlyType
|
|
myCharItemTable.Columns.Add(myDataColumn)
|
|
Next
|
|
|
|
ds.Tables.Add(myCharItemTable)
|
|
|
|
End Sub
|
|
|
|
'테이블 만들기
|
|
Private Sub MakeCharRestraintTable()
|
|
|
|
Dim myCharRestraintTable As New DataTable("CharRestraint")
|
|
Dim myDataColumn As New DataColumn()
|
|
|
|
' Create first column and add to the DataTable.
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "UID"
|
|
myDataColumn.ReadOnly = True
|
|
'myDataColumn.Unique = True
|
|
' Add the column to the DataColumnCollection.
|
|
myCharRestraintTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "strClientID"
|
|
myDataColumn.ReadOnly = True
|
|
'myDataColumn.Unique = True
|
|
' Add the column to the DataColumnCollection.
|
|
myCharRestraintTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "strCharacterID"
|
|
myDataColumn.ReadOnly = True
|
|
'myDataColumn.Unique = True
|
|
' Add the column to the DataColumnCollection.
|
|
myCharRestraintTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "BlockType"
|
|
myDataColumn.ReadOnly = True
|
|
'myDataColumn.Unique = True
|
|
' Add the column to the DataColumnCollection.
|
|
myCharRestraintTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "BlockKind"
|
|
myDataColumn.ReadOnly = True
|
|
'myDataColumn.Unique = True
|
|
' Add the column to the DataColumnCollection.
|
|
myCharRestraintTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "Blocked"
|
|
myDataColumn.ReadOnly = True
|
|
'myDataColumn.Unique = True
|
|
' Add the column to the DataColumnCollection.
|
|
myCharRestraintTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "EndTime"
|
|
myDataColumn.ReadOnly = True
|
|
'myDataColumn.Unique = True
|
|
' Add the column to the DataColumnCollection.
|
|
myCharRestraintTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "adminid"
|
|
myDataColumn.ReadOnly = True
|
|
|
|
myCharRestraintTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "discription"
|
|
myDataColumn.ReadOnly = True
|
|
myCharRestraintTable.Columns.Add(myDataColumn)
|
|
|
|
ds.Tables.Add(myCharRestraintTable)
|
|
End Sub
|
|
|
|
'테이블 만들기
|
|
Private Sub MakeCurrentUserTable()
|
|
|
|
Dim myCurrentUserTable As New DataTable("CurrentUser")
|
|
Dim myDataColumn As New DataColumn()
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "strClientID"
|
|
myDataColumn.ReadOnly = True
|
|
myCurrentUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "strIP"
|
|
myDataColumn.ReadOnly = True
|
|
myCurrentUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "intCRMIndex"
|
|
myDataColumn.ReadOnly = True
|
|
myCurrentUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "UID"
|
|
myDataColumn.ReadOnly = True
|
|
myCurrentUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "LoginTime"
|
|
myDataColumn.ReadOnly = True
|
|
myCurrentUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "ServerID"
|
|
myDataColumn.ReadOnly = True
|
|
myCurrentUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "BillType"
|
|
myDataColumn.ReadOnly = True
|
|
myCurrentUserTable.Columns.Add(myDataColumn)
|
|
|
|
ds.Tables.Add(myCurrentUserTable)
|
|
End Sub
|
|
|
|
|
|
'테이블 만들기
|
|
Private Sub MakeLastUserTable()
|
|
|
|
Dim myLastUserTable As New DataTable("LastUser")
|
|
Dim myDataColumn As New DataColumn()
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "strClientID"
|
|
'myDataColumn.ColumnName = "한게임계정"
|
|
myDataColumn.ReadOnly = True
|
|
myLastUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "strIP"
|
|
'myDataColumn.ColumnName = "접속IP"
|
|
myDataColumn.ReadOnly = True
|
|
myLastUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "intCRMIndex"
|
|
'myDataColumn.ColumnName = "피시방"
|
|
myDataColumn.ReadOnly = True
|
|
myLastUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "UID"
|
|
'myDataColumn.ColumnName = "유저인덱스"
|
|
myDataColumn.ReadOnly = True
|
|
myLastUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "LoginTime"
|
|
'myDataColumn.ColumnName = "접속시간"
|
|
myDataColumn.ReadOnly = True
|
|
myLastUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "LogOutTime"
|
|
'myDataColumn.ColumnName = "아웃시간"
|
|
myDataColumn.ReadOnly = True
|
|
myLastUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "ServerID"
|
|
'myDataColumn.ColumnName = "접속서버"
|
|
myDataColumn.ReadOnly = True
|
|
myLastUserTable.Columns.Add(myDataColumn)
|
|
|
|
myDataColumn = New DataColumn()
|
|
myDataColumn.DataType = System.Type.GetType("System.String")
|
|
myDataColumn.ColumnName = "BillType"
|
|
'myDataColumn.ColumnName = "과금종류"
|
|
myDataColumn.ReadOnly = True
|
|
myLastUserTable.Columns.Add(myDataColumn)
|
|
|
|
ds.Tables.Add(myLastUserTable)
|
|
|
|
End Sub
|
|
|
|
Public Sub SetServerNames(ByRef ServerListCombobox As ComboBox)
|
|
|
|
ServerListCombobox.Items.Add(Test)
|
|
ServerListCombobox.Items.Add(Solpis)
|
|
ServerListCombobox.Items.Add(Karte)
|
|
ServerListCombobox.Items.Add(Iranshya)
|
|
ServerListCombobox.Items.Add(Hiland)
|
|
ServerListCombobox.Items.Add(Aldia)
|
|
ServerListCombobox.Items.Add(Yunite)
|
|
ServerListCombobox.SelectedIndex = 0
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
|
|
''------------------------------------
|
|
''엑셀 출력하기 버튼
|
|
''ByVal Query As String
|
|
''------------------------------------
|
|
'Public Function ExcelPrint(ByVal tblCustomer As DataTable) As Boolean
|
|
|
|
' '엑셀 작업시작하기
|
|
' Dim excelApp As Excel.Application
|
|
' Dim rowIndex As Integer = 1
|
|
' Dim colIndex As Integer = 0
|
|
|
|
' 'Me.Cursor.Current = Cursors.WaitCursor
|
|
|
|
' Try
|
|
' '------------------------------------------
|
|
' ' 새로운 액셀 프로그램 시작
|
|
' '------------------------------------------
|
|
' excelApp = New Excel.Application()
|
|
|
|
' '------------------------------------------
|
|
' ' 엑셀 시트 추가
|
|
' '------------------------------------------
|
|
' excelApp.Workbooks.Add()
|
|
|
|
' '------------------------------------------
|
|
' ' Customers 테이블 오브젝트를 받는다.
|
|
' '------------------------------------------
|
|
|
|
' 'strquery = tbox_query.Text
|
|
' 'tblCustomer = Me.GetDataTable(Query, "table")
|
|
|
|
' '------------------------------------------
|
|
' ' 액셀의 첫번째 행을 컬럼명으로 채운다
|
|
' '------------------------------------------
|
|
' Dim col As DataColumn
|
|
' For Each col In tblCustomer.Columns
|
|
' colIndex += 1
|
|
' excelApp.Cells(1, colIndex) = col.ColumnName
|
|
' Next
|
|
|
|
' '------------------------------------------
|
|
' ' 실제 데이터를 액셀에 채워넣는다.
|
|
' '------------------------------------------
|
|
' Dim row As DataRow
|
|
' For Each row In tblCustomer.Rows
|
|
' rowIndex += 1
|
|
' colIndex = 0
|
|
' For Each col In tblCustomer.Columns
|
|
' colIndex += 1
|
|
' excelApp.Cells(rowIndex, colIndex) = row(col).ToString
|
|
' Next
|
|
' Next
|
|
|
|
' excelApp.Visible = True
|
|
' Catch exp As Exception
|
|
' MessageBox.Show(exp.ToString)
|
|
|
|
' If Not excelApp Is Nothing Then
|
|
' excelApp.Application.Quit()
|
|
' excelApp = Nothing
|
|
' End If
|
|
' End Try
|
|
|
|
' 'Me.Cursor.Current = Cursors.Default
|
|
|
|
'End Function
|
|
|
|
|
|
|
|
End Module
|