📄 modguild.vb.svn-base
字号:
Public Module modGuild
#Region "clsGuild"
Public Class clsGuild
#Region "GuildVariables"
Public GuildName As String 'Guild Name
Public GuildNotice As String
Public GuildMembers As New Hashtable 'Key = PlayerName, Value = GuildMember
#End Region
#Region "AddMember"
Public Sub AddMember(ByVal PlayerName As String)
End Sub
#End Region
#Region "DeleteMember"
Public Sub DeleteMember(ByVal PlayerName As String)
End Sub
#End Region
#Region "UpdateNotice"
Public Sub UpdateNotice(ByVal Notice As String)
End Sub
#End Region
End Class
#End Region
#Region "clsGuildMember"
Public Class clsGuildMember
Public PlayerName As String
Public GuildRank As GuildRanks
Public RankTitle As String
Public RankNumber As Integer
End Class
#End Region
#Region "LoadGuilds"
Public Sub LoadGuilds()
Dim List As Hashtable
List = GetGuildList()
'No guilds to load
If List.Count = 0 Then Exit Sub
Try
Dim en As IDictionaryEnumerator = List.GetEnumerator
While en.MoveNext
Dim DR As System.Data.SqlClient.SqlDataReader
Dim StrSql As String = "Select * From TBL_Guilds Where GuildName='" & en.Value & "'"
Dim SqlComm As New System.Data.SqlClient.SqlCommand(StrSql, SqlConnAcc)
Dim Guild As clsGuild
Dim GuildMember As clsGuildMember
DR = SqlComm.ExecuteReader
Guild = New clsGuild
Guild.GuildName = en.Value
Guild.GuildNotice = ReadGuildNotice(Config.GuildFolder & en.Value & ".txt")
Do While DR.Read()
GuildMember = New clsGuildMember
GuildMember.PlayerName = DR.Item("PlayerName")
GuildMember.RankNumber = DR.Item("RankNumber")
GuildMember.RankTitle = DR.Item("RankTitle")
GuildMember.GuildRank = DR.Item("GuildRank")
Guild.GuildMembers.Add(GuildMember.PlayerName, GuildMember)
Loop
GuildList.Add(Guild.GuildName, Guild)
DR.Close()
SqlComm.Dispose()
DR = Nothing
SqlComm = Nothing
End While
Catch ex As Exception
MessageBox.Show("Reading guilds failed." & vbCrLf & ex.Message)
End Try
End Sub
#Region "GetGuildList"
Private Function GetGuildList() As Hashtable
Try
Dim DR As System.Data.SqlClient.SqlDataReader
Dim StrSql As String = "Select * From TBL_Guilds"
Dim SqlComm As New System.Data.SqlClient.SqlCommand(StrSql, SqlConnAcc)
Dim tGuildList As New Hashtable
Dim tGuildName As String
DR = SqlComm.ExecuteReader
Do While DR.Read
tGuildName = DR.Item("GuildName")
If tGuildList.Contains(tGuildName) = False Then
tGuildList.Add(tGuildName, tGuildName)
End If
Loop
DR.Close()
SqlComm.Dispose()
DR = Nothing
SqlComm = Nothing
Return tGuildList
Catch ex As Exception
MessageBox.Show("Reading guilds failed." & vbCrLf & ex.Message)
End Try
End Function
#End Region
#Region "ReadGuildNotice"
Private Function ReadGuildNotice(ByVal Path As String) As String
If Not System.IO.File.Exists(Path) Then
'Create the file
System.IO.File.Create(Path)
Return ""
End If
Dim DataStream As System.IO.TextReader
DataStream = System.IO.File.OpenText(Path)
Return DataStream.ReadToEnd
End Function
#End Region
#End Region
#Region "GetGuildName"
Public Function GetGuildName(ByVal PlayerName As String) As String
Dim en As IDictionaryEnumerator = GuildList.GetEnumerator
Dim Guild As clsGuild
While en.MoveNext
'Set guild to current record
Guild = en.Value
'If our player is in the Members list
If Guild.GuildMembers.Contains(PlayerName) Then
'Return the guild name
Return Guild.GuildName
End If
End While
End Function
#End Region
#Region "GetGuildTitle"
Public Function GetGuildTitle(ByVal PlayerName As String) As String
Dim en As IDictionaryEnumerator = GuildList.GetEnumerator
Dim Guild As clsGuild
While en.MoveNext
'Set guild to current record
Guild = en.Value
'If our player is in the Members list
If Guild.GuildMembers.Contains(PlayerName) Then
'Return the guild title
Dim GuildMember As clsGuildMember = Guild.GuildMembers(PlayerName)
Return GuildMember.RankTitle
End If
End While
End Function
#End Region
#Region "GetGuildRank"
Public Function GetGuildRank(ByVal PlayerName As String) As GuildRanks
Dim en As IDictionaryEnumerator = GuildList.GetEnumerator
Dim Guild As clsGuild
While en.MoveNext
'Set guild to current record
Guild = en.Value
'If our player is in the Members list
If Guild.GuildMembers.Contains(PlayerName) Then
'Return the guild rank
Dim GuildMember As clsGuildMember = Guild.GuildMembers(PlayerName)
Return GuildMember.GuildRank
End If
End While
End Function
#End Region
#Region "GuildRanks"
Public Enum GuildRanks
NormalMember = 0
CoLeader = 1
Leader = 2
End Enum
#End Region
End Module
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -