Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

EU LOGIN 529 Sever packet offsets and info

Junior Spellweaver
Joined
Oct 3, 2017
Messages
125
Reaction score
49
does anyone have or have the client for V529 BDO

Code:
<packetfamily way="ServerPackets">       
 <struct type="BDOPlugin.BDOPacketHeader">
            <data/>
        </struct>
        <packet id="0x03EB" name="SMSetFrameworkInformation">
            <part name="magicBytesXorkey" type="b" size="106"/>
        </packet>
        <packet id="0x03F4" name="SMNak">
            <part name="messageId" type="d">
                 <reader type="StringTableHash"/>
            </part>
            <part name="parentPacketOpCode" type="h"/>
            <part name="param0" type="Q"/>
        </packet>
        <packet id="0x0C8A" name="SMFixedCharge">
            <part name="PremiumTimer" type="-Q">
                <reader type="UnixDate"/>
            </part>
            <part name="IsPremium" type="-c">
                <reader type="Boolean"/>
            </part>
        </packet>
        <packet id="0x0C8C" name="SMGetCreateUserInformationToAuthenticServer">
            <part name="authToken" type="S" size="62"/>
            <part name="usePinCode" type="c"/>
            <part name="unk" type="c"/>
            <part name="unk" type="c"/>
            <part name="unk" type="c"/>
            <part name="registerPinCode" type="c"> <!-- you need to type pin code 2x to be valid -->
                <reader type="Boolean"/>
            </part>
            <part name="pinKeyPanelOrderBlock" type="c"/> <!-- 0~19 -->
            <part name="unk" type="c"/>
            <part name="unkNew478" type="c"/>
            <func name="for(0,20)">
                <part name="pinKeyOrder" type="Q"/>
            </func>
        </packet>
        <packet id="0x0C8E" name="SMLoginUserToAuthenticServer">
            <part name="sessionId" type="d"/>
            <part name="registerFamilyName" type="c"/>
            <part name="unk" type="c"/>
            <part name="gameVersion" type="d"/>
        </packet>
        <packet id="0x0C8F" name="SMLoginUserToAuthenticServerNak">
            <part name="Message" type="S" size="402"/>
            <part name="ExpirationDate" type="-Q"/>
            <part name="MessageId" type="d">
                <reader type="StringTableHash"/>
            </part>
            <part name="ReasonId" type="d">
                <reader type="StringTableHash"/>
            </part>
        </packet>
        <packet id="0x0C91" name="SMRegisterNickNameToAuthenticServer">
            <part name="unk" type="d"/>
        </packet>
        <packet id="0x0C93" name="SMGetWorldInformations">
            <part name="unk" type="d"/>
            <part name="serverListReceivedDate" type="Q">
                <reader type="UnixDate"/>
            </part>
            <part name="isFirstPacket" type="c"/>
            <part name="serversCount" type="h" id="0"/>
            <func name="for(0,id0)">
                <part name="channelId" type="h"/> <!-- higher value on top of server list -->
                <part name="serverId" type="h"/> <!-- higher value on top of server list -->
                <part name="channelPosition" type="h"/>
                <part name="unk" type="h"/>
                <part name="unk" type="h"/>
                <part name="channelName" type="S" size="62"/>
                <part name="serverName" type="S" size="62"/>
                <part name="0" type="c"/>
                <part name="serverIp" type="s" size="62"/>
                <part name="unk" type="b" size="39"/>
                <part name="serverPort" type="h"/>
                <part name="serverStatus" type="c"/> <!-- 0=maintainance, 1=good, 2=medium, 3=crowded, 4=full -->
                <part name="isJoinable" type="c"/>
                <part name="unk" type="c"/>
                <part name="characterCount" type="c"/>
                <part name="characterToDeleteCount" type="c"/>
                <part name="isLimited(40:0)" type="h"/>
                <part name="channelChangeDelayDate" type="-Q">
                    <reader type="UnixDate"/>
                </part>
                <part name="channelLastUsedDate" type="-Q">
                    <reader type="UnixDate"/>
                </part>
                <part name="serverHasBonuses" type="c"/> <!-- 0=none,1=exp,2=drops,3=exp+drops -->
                <part name="unk" type="c"/>
                <part name="unk" type="h"/>
                <part name="unk" type="d"/>
                <part name="stringUnkData" type="S" size="62"/>
                <part name="unk" type="d"/>
                <part name="unk" type="d"/>
                <part name="hasGoldenMedal" type="c"/>
                <part name="unk" type="h"/>
                <part name="atSiege" type="c"/>
                <part name="atNodeWar" type="c"/>
                <part name="unk" type="c"/>
                <part name="unk" type="c"/>
                <part name="unk" type="c"/>
                <part name="unkNew432" type="c"/>
                <part name="unkNew478" type="c"/>
            </func>
        </packet>
        <packet id="0x0CB2" name="SMGetContentServiceInfo">
            <part name="ContentsServiceType" type="c">
                <reader type="MultiValue" name="ContentsServiceType"/>
            </part>
            <part name="CharacterSlotCount" type="c"/>
            <part name="CharacterSlotLimit" type="c"/>
            <part name="unk" type="c"/>
            <part name="unk" type="c"/>
            <part name="ItemMarketBroadcastingPrice" type="Q"/>
            <part name="ItemMarketTradeFeePercent" type="d"/>
            <part name="ItemMarketRefundPercentForPcRoom" type="d"/>
            <part name="ItemMarketRefundPercentForPremiumPackage" type="d"/>
            <part name="ItemMarketRefundPercentForPcRoomAndPremiumPackage" type="d"/>
            <part name="BiddingTime" type="Q"/>
             <!-- Allowed/Available Class Types -->
            <func name="for(0,32)"> <!-- Class Types Count/Max -->
                <part name="classType" type="c">
                    <reader type="MultiValue" name="ClassType"/>
                </part>
            </func>
            <part name="CharacterMaxLevel" type="d"/>
            <part name="CharacterRemoveTimeCheckLevel" type="d"/>
            <part name="LowLevelCharacterRemoveTime" type="Q"/>
            <part name="CharacterRemoveTime" type="Q"/>
            <part name="NameRemoveTime" type="Q"/>
            <part name="GuildWarType" type="c"/>
            <part name="CanMakeGuild" type="c"/>
            <part name="CanRegisterPearlItemOnMarket" type="c"/>
            <part name="VehicleGradeValue" type="h"/>
            <part name="unk" type="c"/>
            <part name="SendDirectionThreshold" type="d"/>
            <part name="OpenedDesertPK" type="c"/>
            <part name="UnlockedContent" type="h" id="0"/>
            <func name="for(0,id0)">
                <part name="ContentType" type="c"/>
                <part name="ContentId" type="h"/>
            </func>
        </packet>
        <packet id="0x1131" name="SMLoadGameOption">
            <part name="options" type="s" size="201"/>
        </packet>
        <packet id="0x1133" name="SMLoadSocialActionConfig">
            <part name="size" type="h" id="0"/>
            <func name="for(0,id0)">
                <part name="changeCmdName" type="c"/>
                <part name="unk" type="c"/>
                <part name="changeKeywordName" type="c"/>
                <part name="strings" type="S" size="202"/>
            </func>
        </packet>
        <packet id="0x1135" name="SMLoadChatMacro">
            <part name="size" type="h" id="0"/>
            <func name="for(0,id0)">
                <part name="index" type="d"/>
                <part name="chatType" type="c">
                    <reader type="MultiValue" name="ChatId"/>
                </part>
                <part name="macro" type="S" size="702"/>
            </func>
        </packet>
    </packetfamily>
    <packetfamily way="ClientPackets"> <!-- PREFIX: [A = easy found], [S = sub found], [E = hard found trick exception], [X = not found] -->
        <struct type="BDOPlugin.BDOPacketHeader">
            <data/>
        </struct>
<!--E--><packet id="0x03E9" name="CMHeartbeat"/>
<!--S--><packet id="0x0C8B" name="CMGetCreateUserInformationToAuthenticServer">
            <part name="authToken" type="S" size="2050"/>
            <part name="cookieId" type="d"/>
            <part name="clientVersion" type="d"/>
            <part name="unk" type="d"/>
            <part name="unkNew432" type="c"/>
        </packet>
<!--A--><packet id="0x0C8D" name="CMLoginUserToAuthenticServer">
            <part name="authToken" type="S" size="62"/>
            <part name="pinCodeValidBlock" type="c"/> <!-- point the correct block where pin key code was sent -->
            <part name="validPinCode" type="c">
                <reader type="Boolean"/>
            </part>
            <func name="for(0,20)">
                <part name="pinKeyPositionOrder" type="Q"/>
            </func>
            <part name="sessionId" type="d"/> <!-- same used on eTrGetCreateUserInformationToAuthenticServerReq -->
            <part name="CPU" type="s" size="50"/>
            <part name="unk" type="c"/>
            <part name="RAM" type="d"/>
            <part name="GPU" type="s" size="50"/>
            <part name="unk" type="c"/>
            <part name="screenWidth" type="d"/>
            <part name="screenHeight" type="d"/>
            <part name="unk" type="c"/>
            <part name="unk" type="c"/>
            <part name="pcData" type="s" size="200"/>
            <part name="unk" type="c"/>
            <part name="OS" type="S" size="200"/>
            <part name="unk" type="c"/>
            <part name="unk" type="c"/>
        </packet>
<!--A--><packet id="0x0C90" name="CMRegisterNickNameToAuthenticServer">
            <part name="familyName" type="S" size="62"/>
            <part name="screenWidth" type="d"/>
            <part name="screenHeight" type="d"/>
        </packet>
    </packetfamily>
 
Newbie Spellweaver
Joined
Jan 1, 2018
Messages
21
Reaction score
0
does anyone have or have the client for V529 BDO

Code:
<packetfamily way="ServerPackets">       
 <struct type="BDOPlugin.BDOPacketHeader">
            <data/>
        </struct>
        <packet id="0x03EB" name="SMSetFrameworkInformation">
            <part name="magicBytesXorkey" type="b" size="106"/>
        </packet>
        <packet id="0x03F4" name="SMNak">
            <part name="messageId" type="d">
                 <reader type="StringTableHash"/>
            </part>
            <part name="parentPacketOpCode" type="h"/>
            <part name="param0" type="Q"/>
        </packet>
        <packet id="0x0C8A" name="SMFixedCharge">
            <part name="PremiumTimer" type="-Q">
                <reader type="UnixDate"/>
            </part>
            <part name="IsPremium" type="-c">
                <reader type="Boolean"/>
            </part>
        </packet>
        <packet id="0x0C8C" name="SMGetCreateUserInformationToAuthenticServer">
            <part name="authToken" type="S" size="62"/>
            <part name="usePinCode" type="c"/>
            <part name="unk" type="c"/>
            <part name="unk" type="c"/>
            <part name="unk" type="c"/>
            <part name="registerPinCode" type="c"> <!-- you need to type pin code 2x to be valid -->
                <reader type="Boolean"/>
            </part>
            <part name="pinKeyPanelOrderBlock" type="c"/> <!-- 0~19 -->
            <part name="unk" type="c"/>
            <part name="unkNew478" type="c"/>
            <func name="for(0,20)">
                <part name="pinKeyOrder" type="Q"/>
            </func>
        </packet>
        <packet id="0x0C8E" name="SMLoginUserToAuthenticServer">
            <part name="sessionId" type="d"/>
            <part name="registerFamilyName" type="c"/>
            <part name="unk" type="c"/>
            <part name="gameVersion" type="d"/>
        </packet>
        <packet id="0x0C8F" name="SMLoginUserToAuthenticServerNak">
            <part name="Message" type="S" size="402"/>
            <part name="ExpirationDate" type="-Q"/>
            <part name="MessageId" type="d">
                <reader type="StringTableHash"/>
            </part>
            <part name="ReasonId" type="d">
                <reader type="StringTableHash"/>
            </part>
        </packet>
        <packet id="0x0C91" name="SMRegisterNickNameToAuthenticServer">
            <part name="unk" type="d"/>
        </packet>
        <packet id="0x0C93" name="SMGetWorldInformations">
            <part name="unk" type="d"/>
            <part name="serverListReceivedDate" type="Q">
                <reader type="UnixDate"/>
            </part>
            <part name="isFirstPacket" type="c"/>
            <part name="serversCount" type="h" id="0"/>
            <func name="for(0,id0)">
                <part name="channelId" type="h"/> <!-- higher value on top of server list -->
                <part name="serverId" type="h"/> <!-- higher value on top of server list -->
                <part name="channelPosition" type="h"/>
                <part name="unk" type="h"/>
                <part name="unk" type="h"/>
                <part name="channelName" type="S" size="62"/>
                <part name="serverName" type="S" size="62"/>
                <part name="0" type="c"/>
                <part name="serverIp" type="s" size="62"/>
                <part name="unk" type="b" size="39"/>
                <part name="serverPort" type="h"/>
                <part name="serverStatus" type="c"/> <!-- 0=maintainance, 1=good, 2=medium, 3=crowded, 4=full -->
                <part name="isJoinable" type="c"/>
                <part name="unk" type="c"/>
                <part name="characterCount" type="c"/>
                <part name="characterToDeleteCount" type="c"/>
                <part name="isLimited(40:0)" type="h"/>
                <part name="channelChangeDelayDate" type="-Q">
                    <reader type="UnixDate"/>
                </part>
                <part name="channelLastUsedDate" type="-Q">
                    <reader type="UnixDate"/>
                </part>
                <part name="serverHasBonuses" type="c"/> <!-- 0=none,1=exp,2=drops,3=exp+drops -->
                <part name="unk" type="c"/>
                <part name="unk" type="h"/>
                <part name="unk" type="d"/>
                <part name="stringUnkData" type="S" size="62"/>
                <part name="unk" type="d"/>
                <part name="unk" type="d"/>
                <part name="hasGoldenMedal" type="c"/>
                <part name="unk" type="h"/>
                <part name="atSiege" type="c"/>
                <part name="atNodeWar" type="c"/>
                <part name="unk" type="c"/>
                <part name="unk" type="c"/>
                <part name="unk" type="c"/>
                <part name="unkNew432" type="c"/>
                <part name="unkNew478" type="c"/>
            </func>
        </packet>
        <packet id="0x0CB2" name="SMGetContentServiceInfo">
            <part name="ContentsServiceType" type="c">
                <reader type="MultiValue" name="ContentsServiceType"/>
            </part>
            <part name="CharacterSlotCount" type="c"/>
            <part name="CharacterSlotLimit" type="c"/>
            <part name="unk" type="c"/>
            <part name="unk" type="c"/>
            <part name="ItemMarketBroadcastingPrice" type="Q"/>
            <part name="ItemMarketTradeFeePercent" type="d"/>
            <part name="ItemMarketRefundPercentForPcRoom" type="d"/>
            <part name="ItemMarketRefundPercentForPremiumPackage" type="d"/>
            <part name="ItemMarketRefundPercentForPcRoomAndPremiumPackage" type="d"/>
            <part name="BiddingTime" type="Q"/>
             <!-- Allowed/Available Class Types -->
            <func name="for(0,32)"> <!-- Class Types Count/Max -->
                <part name="classType" type="c">
                    <reader type="MultiValue" name="ClassType"/>
                </part>
            </func>
            <part name="CharacterMaxLevel" type="d"/>
            <part name="CharacterRemoveTimeCheckLevel" type="d"/>
            <part name="LowLevelCharacterRemoveTime" type="Q"/>
            <part name="CharacterRemoveTime" type="Q"/>
            <part name="NameRemoveTime" type="Q"/>
            <part name="GuildWarType" type="c"/>
            <part name="CanMakeGuild" type="c"/>
            <part name="CanRegisterPearlItemOnMarket" type="c"/>
            <part name="VehicleGradeValue" type="h"/>
            <part name="unk" type="c"/>
            <part name="SendDirectionThreshold" type="d"/>
            <part name="OpenedDesertPK" type="c"/>
            <part name="UnlockedContent" type="h" id="0"/>
            <func name="for(0,id0)">
                <part name="ContentType" type="c"/>
                <part name="ContentId" type="h"/>
            </func>
        </packet>
        <packet id="0x1131" name="SMLoadGameOption">
            <part name="options" type="s" size="201"/>
        </packet>
        <packet id="0x1133" name="SMLoadSocialActionConfig">
            <part name="size" type="h" id="0"/>
            <func name="for(0,id0)">
                <part name="changeCmdName" type="c"/>
                <part name="unk" type="c"/>
                <part name="changeKeywordName" type="c"/>
                <part name="strings" type="S" size="202"/>
            </func>
        </packet>
        <packet id="0x1135" name="SMLoadChatMacro">
            <part name="size" type="h" id="0"/>
            <func name="for(0,id0)">
                <part name="index" type="d"/>
                <part name="chatType" type="c">
                    <reader type="MultiValue" name="ChatId"/>
                </part>
                <part name="macro" type="S" size="702"/>
            </func>
        </packet>
    </packetfamily>
    <packetfamily way="ClientPackets"> <!-- PREFIX: [A = easy found], [S = sub found], [E = hard found trick exception], [X = not found] -->
        <struct type="BDOPlugin.BDOPacketHeader">
            <data/>
        </struct>
<!--E--><packet id="0x03E9" name="CMHeartbeat"/>
<!--S--><packet id="0x0C8B" name="CMGetCreateUserInformationToAuthenticServer">
            <part name="authToken" type="S" size="2050"/>
            <part name="cookieId" type="d"/>
            <part name="clientVersion" type="d"/>
            <part name="unk" type="d"/>
            <part name="unkNew432" type="c"/>
        </packet>
<!--A--><packet id="0x0C8D" name="CMLoginUserToAuthenticServer">
            <part name="authToken" type="S" size="62"/>
            <part name="pinCodeValidBlock" type="c"/> <!-- point the correct block where pin key code was sent -->
            <part name="validPinCode" type="c">
                <reader type="Boolean"/>
            </part>
            <func name="for(0,20)">
                <part name="pinKeyPositionOrder" type="Q"/>
            </func>
            <part name="sessionId" type="d"/> <!-- same used on eTrGetCreateUserInformationToAuthenticServerReq -->
            <part name="CPU" type="s" size="50"/>
            <part name="unk" type="c"/>
            <part name="RAM" type="d"/>
            <part name="GPU" type="s" size="50"/>
            <part name="unk" type="c"/>
            <part name="screenWidth" type="d"/>
            <part name="screenHeight" type="d"/>
            <part name="unk" type="c"/>
            <part name="unk" type="c"/>
            <part name="pcData" type="s" size="200"/>
            <part name="unk" type="c"/>
            <part name="OS" type="S" size="200"/>
            <part name="unk" type="c"/>
            <part name="unk" type="c"/>
        </packet>
<!--A--><packet id="0x0C90" name="CMRegisterNickNameToAuthenticServer">
            <part name="familyName" type="S" size="62"/>
            <part name="screenWidth" type="d"/>
            <part name="screenHeight" type="d"/>
        </packet>
    </packetfamily>

were't you the guy who claimed to have 661 working and was promising to release the files?
 
Junior Spellweaver
Joined
Oct 3, 2017
Messages
125
Reaction score
49
@nazgul111

I never said I had it working nor did I say I had the files I only claim to have the converted content

@Kirito2105
this is not useless information you can use this to update the logon server to allow a new client to connect
I'm sorry if you don't know how emulators work
it contains the packet structures and the packet offsets
 
Newbie Spellweaver
Joined
Jan 1, 2018
Messages
21
Reaction score
0
actually it's not a lot of work the key exchange messages at exactly the same the hardest part is getting the tools to get the proper content
what if you had the tools that are floating around just updating the op codes can get you to the map without the tool it's completely pointless cuz you won't have any AI information or player locations



and I've been thinking about releasing the stuff for 661 without the opcodes because I want you guys to still do something on your own
kinda sounds as if you were telling us you got them working and going to release, either way doesnt matter, argueing wont do nothing to solve this particular thread anyways, so im moving on.
 
Joined
Sep 23, 2012
Messages
470
Reaction score
178
@nazgul111

I never said I had it working nor did I say I had the files I only claim to have the converted content

@Kirito2105
this is not useless information you can use this to update the logon server to allow a new client to connect
I'm sorry if you don't know how emulators work
it contains the packet structures and the packet offsets

this is absolutely useless information
all this can be easily obtained by making a dump
Also, the structure of the packages you get without problems
 
Back
Top