Hello Kal! And Hello to some scammers who will know whos meant, if they read this (please ignore the rest of the thread, you will never touch anything further released things from me again for your pay2win money-make-servers anyway)!
I was bored and rewrote my emulator... its final and easy extendable now... no mess anymore!
Picture of my current GUI (much more planned, like real time map with players on it etc):
Some information:
The packets are now stored in a structure, wich are easy to write, changeable and extendable. Has many advantages compared to this "bdsw" crap!
More complex packet for ex. deleted player list (functions hided):Code:<PacketOrder(Key:=HeaderOut.CharacterCreationError)> _ Public Structure pOutCharacterCreationError Public Enum CHARACTER_CREATION_ERROR NA_WRONGJOBNUMBER = &H2 MAX_CHARS_EXCEEDED = &H3 NAME_TAKEN = &H4 SHARING_POINTS_ERROR = &H5 ID_NOT_SUPPORTED = &H6 EIGHT = &H8 End Enum <PacketOrder(0)> Public ErrorCode As CHARACTER_CREATION_ERROR Sub New(Code As CHARACTER_CREATION_ERROR) ErrorCode = Code End Sub End Structure
with functions:Code:Imports System.Collections.Generic <PacketOrder(Key:=HeaderOut.CharacterDeletedList)> _ Public Structure pOutCharacterListDeleted <PacketOrder(0)> Public deletedCharactersCount As Byte <PacketOrder(1)> Public deletedCharacters As List(Of Object) Structure DeletedCharacter <PacketOrder(0)> Public CharacterID As UInteger <PacketOrder(1)> Public Name As String <PacketOrder(2)> Public Level As Byte <PacketOrder(3)> Public CharacterClass As Byte <PacketOrder(4)> Public daysLeft As SByte End Structure End Structure
Code:Imports System.Collections.Generic <PacketOrder(Key:=HeaderOut.CharacterDeletedList)> _ Public Structure pOutCharacterListDeleted <PacketOrder(0)> Public deletedCharactersCount As Byte <PacketOrder(1)> Public deletedCharacters As List(Of Object) Sub New(Chars As ArrayList) deletedCharacters = New List(Of Object) For Each d As tCharacter In Chars If d.DeletionDate <> Nothing Then deletedCharacters.Add(New DeletedCharacter(d)) End If Next deletedCharactersCount = deletedCharacters.Count End Sub Structure DeletedCharacter <PacketOrder(0)> Public CharacterID As UInteger <PacketOrder(1)> Public Name As String <PacketOrder(2)> Public Level As Byte <PacketOrder(3)> Public CharacterClass As Byte <PacketOrder(4)> Public daysLeft As SByte Sub New(Character As tCharacter) With Character CharacterID = .CharacterID Name = .Name Level = .Level CharacterClass = .CharacterClass End With daysLeft = Config.CharacterRestoreTime - New TimeSpan(DateTime.Now.Ticks - Character.DeletionDate.Ticks).Days End Sub End Structure End Structure
Incoming packets are much simpler:
Login:
How to acces or send them? nothing easier than that:Code:Public Structure pInClientLogin <PacketOrder(0)> Public ID As String <PacketOrder(1)> Public PW As String End Structure
Access:
Output: 'yourid tried to login!'Code:Dim Packet As pInClientLogin Log.Debug("{0} tried to login!", Packet.ID)
Send:
Code:session.Send(New pOutClientLoginError(pOutClientLoginError.LOGIN_ERROR.NOT_ALLOWED))
Progress might be like KaSahto, but all written in .net wich is way easier to extend!
The 'dirty work' (most things you wont see ingame, like database handling, etc.) is done so the fun starts with adding functions and packets for ingame changes!
Will it ever be done? I doubt so, i only do it for fun and try to do my best, but working alone consumes much time.
Main Reason for this showoff:
If someone is willing to help me, feel free to write me a pm. The only thing you need is knowledge with the Old Mainserver and the systems behind it, or skills in debugging the latest client engine! No coding skills, but fun requiered! What you get? VIP testing and fun :)
Thanks for your time, Bliz0r!




Reply With Quote








