📄 modoutgoing.vb.svn-base
字号:
Imports System.Text.Encoding
Public Class clsSendPacket
Private Packet As String
#Region "Logging in Packets"
Public Sub SendNotice(ByVal Notice As String, ByVal Index As Integer)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_NOTICE_OK), EncodeString(Notice))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendNoticeFail(ByVal Index As Integer)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_NOTICE_FAIL))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendNewMap(ByVal PlayerId As Integer, ByVal X As Short, ByVal Y As Short, ByVal Light As Byte, ByVal MapFilename As String, ByVal MapName As String)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_NEWMAP, PlayerId, X, Y, Light), EncodeString(MapFilename & "/" & MapName))
Socket.SendData(Packet, PlayerId)
End Sub
Public Sub SendCharStatus(ByVal PlayerId As Integer, ByVal Light As Byte, ByVal Reved As Boolean, ByVal Name As String, ByVal NameColour As Integer, ByVal IsDead As Boolean, ByVal Gender As Byte, ByVal GuildName As String, ByVal GuildTitle As String, ByVal GuildRank As String)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_CHARSTATUS, PlayerId, Light, ToByte(Reved), ToByte(IsDead)), EncodeString(Name & "/" & NameColour & "/" & Gender & "/" & GuildName & "/" & GuildTitle & "/" & GuildRank))
Socket.SendData(Packet, PlayerId)
End Sub
Public Sub SendPlayerStats(ByVal PlayerId As Integer, ByVal Gold As Integer, ByVal Job As Byte, ByVal Buffer As String)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_CHARSTATS, PlayerId, Gold, Job), EncodeString(Buffer))
Socket.SendData(Packet, PlayerId)
End Sub
Public Sub SendGoGame(ByVal PlayerId As Integer, ByVal AllowGroup As Byte, ByVal AllowGroupRecall As Byte, ByVal AttackMode As Byte, ByVal Dir As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_GOGAME_OK, PlayerId, AllowGroup, AllowGroupRecall, AttackMode), EncodeString(Dir))
Socket.SendData(Packet, PlayerId)
End Sub
Public Sub SendBagItems(ByVal Player As clsPlayer)
Dim pItem As clsPlayerItem
Dim i As Integer
For i = 0 To 55
pItem = Player.BagItems(i)
If Not pItem Is Nothing Then
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_BAGITEMS), EncodeString(GetItemBuffer(pItem)))
Socket.SendData(Packet, Player.StateId)
End If
Next i
End Sub
Public Sub SendEquipment(ByVal Player As clsPlayer)
Dim pItem As clsPlayerItem
Dim i As Integer
For i = 0 To 13
pItem = Player.Equipment(i)
If Not pItem Is Nothing Then
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_EQUIPITEMS, i), EncodeString(GetItemBuffer(pItem)))
Socket.SendData(Packet, Player.StateId)
End If
Next i
End Sub
Public Sub SendMagics(ByVal Player As clsPlayer)
Dim pMagic As clsPlayerMagic
Dim en As IDictionaryEnumerator = Player.PlayerMagics.GetEnumerator
While en.MoveNext
pMagic = en.Value
If Not pMagic Is Nothing Then
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_MAGIC, pMagic.MagicId, pMagic.Key, pMagic.Level, pMagic.CurrentExp), EncodeString(GetMagicBuffer(pMagic)))
Socket.SendData(Packet, Player.StateId)
End If
End While
End Sub
#End Region
#Region "Chat Packets"
Public Sub SendChatMessage(ByVal SenderId As Integer, ByVal ChatColour As Byte, ByVal Text As String, ByVal Index As Integer)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_CHAT, SenderId, ChatColour), EncodeString(Text))
Socket.SendData(Packet, Index)
End Sub
#End Region
#Region "Movement Packets"
Public Sub SendMove(ByVal Index As Integer, ByVal Id As Object, ByVal Race As Byte, ByVal X As Short, ByVal Y As Short, ByVal Dir As Byte, ByVal Steps As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_MOVE, Id, Steps, Dir), EncodeString(X & "/" & Y & "/" & Race))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendMoveFail(ByVal Index As Integer, ByVal X As Short, ByVal Y As Short, ByVal Dir As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_MOVE_FAIL, X, Y, Dir))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendTurn(ByVal Index As Integer, ByVal Id As Object, ByVal Race As Byte, ByVal Dir As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_TURN_OK, Id, Race, Dir))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendTurnFail(ByVal Index As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal Dir As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_TURN_FAIL, X, Y, Dir))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendAppears(ByVal Index As Integer, ByVal ObjectId As Object, ByVal Race As Byte, ByVal Buffer As String)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_APPEAR, ObjectId, Race), EncodeString(Buffer))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendDisappear(ByVal Index As Integer, ByVal ObjectId As Object, ByVal Race As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_DISAPPEAR, ObjectId, Race))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendTeleport(ByVal PlayerId As Integer, ByVal X As Short, ByVal Y As Short, ByVal Light As Byte, ByVal MapFilename As String, ByVal MapName As String)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_TELEPORT, PlayerId, X, Y, Light), EncodeString(MapFilename & "/" & MapName))
Socket.SendData(Packet, PlayerId)
End Sub
#End Region
#Region "Hit Packets"
Public Sub SendHitFail(ByVal Index As Integer)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_HIT_FAIL))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendHitOk(ByVal Index As Integer)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_HIT_OK))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendHit(ByVal Index As Integer, ByVal HitterId As Object, ByVal HitterRace As Byte, ByVal HitterDir As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_HIT, HitterId, HitterRace, HitterDir))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendStruck(ByVal Index As Integer, ByVal TargetRace As Byte, ByVal TargetBuffer As String)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_STRUCK, TargetRace), EncodeString(TargetBuffer))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendCastFail(ByVal Index As Integer)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_USEMAGIC_FAIL))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendCastOk(ByVal Index As Integer)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_USEMAGIC_OK))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendCast(ByVal Index As Integer, ByVal CasterId As Integer, ByVal CasterRace As Byte, ByVal CasterDir As Byte, ByVal Looks As Byte, ByVal TargetX As Integer, ByVal TargetY As Integer)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_USEMAGIC, CasterId, CasterRace, CasterDir, Looks), EncodeString(TargetX & "/" & TargetY))
Socket.SendData(Packet, Index)
End Sub
#End Region
#Region "Npc Packets"
Public Sub SendNpcData(ByVal Index As Integer, ByVal NpcId As Short, ByVal NpcSay As String)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_NPC_SAY, NpcId), EncodeString(NpcSay))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendNpcCloseDlg(ByVal Index As Integer, ByVal NpcId As Short)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_NPC_CLOSE, NpcId))
Socket.SendData(Packet, Index)
End Sub
#End Region
#Region "Item Packets"
Public Sub SendPickupItem(ByVal Index As Integer, ByVal ItemBuffer As String, ByVal RemoveFromFloor As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_PICKUP_ITEM, RemoveFromFloor), EncodeString(ItemBuffer))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendItemDropped(ByVal Index As Integer, ByVal ItemID As Long, ByVal X As Integer, ByVal Y As Integer, ByVal Looks As Integer, ByVal Name As String)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_DROP_ITEM_OK, ItemID, X, Y, Looks), EncodeString(Name))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendRemoveDropItem(ByVal Index As Integer, ByVal ItemID As Long)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_REMOVE_DROP_ITEM, ItemID))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendDeleteItem(ByVal Index As Integer, ByVal ItemID As Long)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_DELETE_ITEM, ItemID))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendWearItemOK(ByVal Index As Integer, ByVal ItemID As Long)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_WEAR_ITEM_OK, ItemID))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendWearItemFail(ByVal Index As Integer, ByVal ErrorCode As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_WEAR_ITEM_FAIL, ErrorCode))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendTakeOffItemOK(ByVal Index As Integer, ByVal ItemID As Long)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_TAKEOFF_ITEM_OK, ItemID))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendTakeOffItemFail(ByVal Index As Integer, ByVal ErrorCode As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_WEAR_ITEM_FAIL, ErrorCode))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendPlayerLookChanged(ByVal Index As Integer, ByVal PlayerID As Integer, ByVal ItemBuffer As String)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_PLAYER_LOOKS_CHANGED, PlayerID, -1), EncodeString(ItemBuffer))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendPlayerStatsChanged(ByVal Index As Integer, ByVal StatsBuffer As String)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_PLAYER_STATS_CHANGED), EncodeString(StatsBuffer))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendUseItemOK(ByVal Index As Integer)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_USE_ITEM_OK))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendUseItemFail(ByVal Index As Integer)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_USE_ITEM_FAIL))
Socket.SendData(Packet, Index)
End Sub
#End Region
#Region "Guild Packets"
Public Sub SendGuildInfoFail(ByVal Index As Integer)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_GUILDINFO_FAIL))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendGuildInfo(ByVal Index As Integer, ByVal Notice As String, ByVal Members As Hashtable)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_GUILDINFO), EncodeString(Notice & "))((" & GetGuildMemberBuffer(Members)))
Socket.SendData(Packet, Index)
End Sub
#End Region
#Region "Other Packets"
Public Sub SendLooksChanged(ByVal Index As Integer, ByVal PlayerId As Long, ByVal Looks As Integer)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_LOOKSCHANGED, PlayerId, Looks))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendMapLight(ByVal Index As Integer, ByVal MapLight As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_MAPLIGHT, MapLight))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendDied(ByVal Index As Integer, ByVal ObjectId As Object, ByVal Race As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_DIED, ObjectId, Race))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendRevelation(ByVal Index As Integer, ByVal ObjectId As Object, ByVal Race As Byte)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_REV, ObjectId, Race))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendLevelUp(ByVal Index As Integer, ByVal ObjectId As Object, ByVal Level As Integer, ByVal Race As Byte, ByVal Exp As Long, ByVal MaxExp As Long)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_LEVELUP, ObjectId, Level, Race), EncodeString(Exp & "/" & MaxExp))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendExpAdd(ByVal Index As Integer, ByVal NewExpAmount As Long, ByVal Amount As Long)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_EXP_ADD, NewExpAmount, Amount))
Socket.SendData(Packet, Index)
End Sub
Public Sub SendExpDel(ByVal Index As Integer, ByVal NewExpAmount As Long)
Packet = MakeOutPacket(MakeHeader(GameMsg.SM_EXP_DEL, NewExpAmount))
Socket.SendData(Packet, Index)
End Sub
#End Region
End Class
Module modOutGoing
Public Packets As New clsSendPacket
End Module
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -