[Development] eMU :: MU2 Server Emulator (open source)

Page 1 of 2 12 LastLast
Results 1 to 15 of 26
  1. #1
    Apprentice bezloginu is offline
    MemberRank
    Oct 2013 Join Date
    PolandLocation
    18Posts

    information [Development] eMU :: MU2 Server Emulator (open source)

    Hi,
    I'm pleased to present MU2 Server Emulator - The eMU.

    Project is written in C++11 and using mysql database engine. Is designed to cross platform (Win32/Linux).

    Project structure:
    core - network / xml / transactions engine / abstract factory / implementations,
    dataserver - implementation of dataserver and mysql database engine wrapper,
    loginserver - implementation of loginserver (account authorization, servers list, servers statistics),
    gameserver - implementation of gameserver,
    protocol - messages class wrappers (requests, responses, indications),
    analyzer - tool for MU2 protocol analysis (parsing and building packets),
    ut - unit tests,
    mt - module tests.

    The most important thing in eMU is quality, so all features were tested by Unit Tests (googletest framework) or Module Tests.

    Project is using cmake build engine.

    Libraries needed to build eMU:
    -c++ compiler supporting C++11 (clang or GCC 4.7+)
    -cmake,
    -boost,
    -gtest,
    -gmock,
    -gflags,
    -glog,
    -rapidxml,
    -qt5 (analyzer only),
    -gcc (for coverage reports only)
    -lcov (for coverage reports only).

    cmake flags:
    CMAKE_BUILD_TYPE=UT/MT/DEBUG/RELEASE
    UT - build unit tests
    MT - build module tests
    DEBUG - target build without optimalizations
    RELEASE - target build with -O2 optimalizations

    QT_ROOT=path
    path to Qt5 directory (analyzer only)

    COVERAGE=true/false
    enable or disable tests coverage reports
    What is done:
    -all core features,
    -mysql support,
    -analyzer,
    -account authorization,
    -gameservers list,
    -gameserver details

    What is next:
    -character create/delete.

    Screens:
    4.png3.jpg2.jpg1.jpg


    Milestone 1:
    -Characters list (DONE 07.01.2014),
    characters-list.jpg

    -Character create (DONE 20.01.2014),
    -Character delete,
    -World join.


    Link:
    emu - eMU :: MuOnline server emulator. - Google Project Hosting

    Stay tuned!

    Best regards,
    f1x (aka bezloginu)
    Last edited by bezloginu; 20-01-14 at 09:17 PM.


  2. #2

    re: [Development] eMU :: MU2 Server Emulator (open source)

    GL with ur project :D! I am bad at coding but I can help with packets if needed.

    EDIT: I will add here packets structures.

    Spoiler:


    DEBUG version packets:

    All packets starts by this:

    [dword:size][word:id][dword:0][dword:0]

    Unknow values are being set to 0 by default.

    UnicodeString is:
    dword (len of string in ASCII) + unicodeString

    **********************************

    Character list.

    Response to: 0x13b
    Server -> client.
    id : 0x13c

    [dword:0]
    [word:charCount]
    [dword:unk]
    [Unicodestring:characterName]
    [byte:level]
    [byte:unk]
    [byte:faction] -> //faction for girl if 2 makes elf
    //for slim guy and dark lord (or wizard) 8 makes avatar (blue skin)
    //mad guy turns into red monster with 4
    [byte:race]
    [dword:unk]

    8 bytes of characters customs:
    [byte:face] -> 0-1, >= 2 no face
    [byte:unk]
    [byte:hairType]
    [byte:hairColor]
    [byte:tatoo]
    [byte:skinColor]
    [byte:unk]
    [byte:unk]

    [dword:tutorialState]

    //tutorialState 0 = ZoneJoin, > 0 = TutorialJoin
    //race
    //1 = wizard
    //2 = mad guy
    //4 = slim guy
    //8 - elf
    //16 - Emphatizer (in the future) (girl with white hair and horns)


    **********************************
    **********************************
    Create character

    Response to: 0x13d
    Server -> client.
    id : 0x13e

    [dword:0]
    **********************************
    **********************************
    Enter game (from char screen to in-game).

    Response to: 0x141
    Server -> client.
    id : 0x142

    [dword:0]
    [dword:unk]
    [byte:unk] -> If 0 crash
    [dword:map]
    [dword:unk]


    Some maps
    //0x3F9 = Navi_Dungeon_G (0x13), 0x3F8 = Navi_Dungeon_F (0x12),
    //0x3F7 = Navi_Dungeon_E (0x11), 0x3F6 = Navi_Dungeon_D (0x10),0x3F5 = Navi_Dungeon_C (0xF)
    //0x3F4 = Navi_Dungeon_B (0xE), 0x3F3 = Navi_Dungeon_A (0xD)
    //0x3E9 = Baron (C),
    //0xCA = Amberial Forest
    //0xC9 = Dudrin Village
    //0xCB = Weis Basin (3)
    //0xD3 = Heath Mine (4)
    //0x65 = Tutorial Kan


    **********************************
    **********************************

    Set character data (from char screen to in-game).

    Response to: 0x147
    Server -> client.
    id : 0x148

    8 bytes maybe charID
    [dword:1] -> Don't change both maybe BSOD
    [dword:1]

    [dword:unk]
    [UnicodeString:characterName]
    [byte:level]
    [byte:unk] -> If 0 can't move
    [byte:faction]
    [byte:race]
    [dword:unk]
    [float:X]
    [float:Y]
    [float:Z]

    8 bytes
    [dword:Current experience]
    [dword:unk] -> Maybe 64 bits of experience seems not currently used

    8 bytes
    [dword:Experience to next level (maxExp)]
    [dword:unk] -> -> Maybe 64 bits of experience seems not currently used

    8 bytes
    [dword:unk]
    [dword:unk]

    [dword:CurrentHP]
    [dword:CurrentMana]

    8 bytes
    [dword:money]
    [dword:unk]

    [dword:unk]
    [dword:unk]
    [dword:unk]
    [dword:unk]

    8 bytes char customs:

    [byte:faceOn] -> 1 = face on
    [byte:custom] -> 4 = on muscle guy tatoo tribal
    [byte:hairStyle] -> 2 = bald
    [byte:hairColor]
    [byte:unk]
    [byte:skinColor]
    [byte:unk]
    [byte:unk]


    [dword:unk]
    [dword:unk]
    [dword:unk]
    [dword:unk]
    [dword:unk]
    [dword:unk]
    [dword:unk]


    **********************************
    **********************************

    Set character inventory

    Response to: 0x147
    Server -> client.
    id : 0x14A (sent at the same time as 0x148).


    [dword:0]
    [byte:itemCount]
    [dword:unk]
    [dword:unk]
    [dword:itemID] -> 0xF241 -> green gem, 0xF242 -> teal gem, 2001 -> Shield
    [dword:bagNumber] -> 1-3
    [dword:position] -> (0-31) (0 - > first row, 8 -> start second row, etc)
    [dword:itemQuantity]
    [dword:unk]
    [dword:unk]
    [dword:unk]
    [byte:unk]
    [byte:unk]
    [byte:unk]
    [dword:unk]
    [dword:unk]
    [dword:unk]
    [dword:unk]
    [dword:unk]
    [dword:unk]
    [dword:unk]
    [dword:unk]
    [byte:unk]
    [word:unk]
    [dword:unk]
    [dword:unk]
    [dword:unk]


    **********************************
    **********************************

    Activates the interface

    Response to: 0x147
    Server -> client.
    id : 0x14C (sent at the same time as 0x148).

    [dword:unk]
    [word:unk]
    [word:unk]
    [dword:unk]



    **********************************
    Last edited by Kyhoh; 23-12-13 at 09:08 PM. Reason: Adding packets

  3. #3
    Banned dimas137 is offline
    BannedRank
    Nov 2012 Join Date
    indonesiaLocation
    350Posts

    re: [Development] eMU :: MU2 Server Emulator (open source)

    this server recruitment for ubuntu?

  4. #4
    Valued Member western is offline
    MemberRank
    Mar 2008 Join Date
    ArgentinaLocation
    113Posts

    re: [Development] eMU :: MU2 Server Emulator (open source)

    Linux+mysql You are my hero.

  5. #5
    Apprentice bobeka is offline
    MemberRank
    Oct 2005 Join Date
    XLocation
    19Posts

    re: [Development] eMU :: MU2 Server Emulator (open source)

    a little silly question - how to set up the client to connect to my ip. ( except loopback ) ?

  6. #6

    re: [Development] eMU :: MU2 Server Emulator (open source)

    Quote Originally Posted by bobeka View Post
    a little silly question - how to set up the client to connect to my ip. ( except loopback ) ?
    If you are using debug client (first one released) you can change the IP to connect (iirc) in MU2GameFiles\MU2GAME\Config\MU2Game.ini:

    [MU2Net]
    OnServer=TRUE
    LoginServerIP=THEIPHERE
    LoginServerPort=5000
    On newer clients they have some tricks and you can't change it editing the files (maybe ip hardcoded in .exe).

  7. #7
    el gordito tetas caidas GM-Andromeda is offline
    MemberRank
    Jun 2006 Join Date
    Complex plane.Location
    202Posts

    re: [Development] eMU :: MU2 Server Emulator (open source)

    i already started to make my own mu2 server months ago, then i stop when i realized that new clients (released by megamax) have an "extra" or different upk compress method, so u cannot actually see C>S packet structures cause they are stored in upk format. (actually, u can but it gets so fucking harder....)

    so, instead of burning my head trying to find packet by packet structure to walk step by step using newer clients (trade send, then debug to track trade response, etc), y decided to store some logic info like ids and basic packet structure like login etc and wait until some beta test.

    trying to create a server, based just on a simple test client with no server to test is like walking in the dark... but maybe, some rusty gs will give some extra knowledge for the first oficia beta that "should" be coming soon.

    anyway, it is a good start but i bet webzen is gonna change everything, storage methos, structures messages, crypt/enc protocol methods, etc...

    no one is gonna release a game using a protocol such as this... the response to every request opcode or id is the id + 1 ... (rolf when i found out this...)

    anyway, it is a good project like mine, for learning porpuse, but useless if there is no official server to test T_T

  8. #8
    Apprentice bezloginu is offline
    MemberRank
    Oct 2013 Join Date
    PolandLocation
    18Posts

    re: [Development] eMU :: MU2 Server Emulator (open source)

    07.01.2014 Update:
    -Characters list support. Thread updated.


    Many thanks to Kyhoh for packets structure! Thanks Kyhoh!

  9. #9
    el gordito tetas caidas GM-Andromeda is offline
    MemberRank
    Jun 2006 Join Date
    Complex plane.Location
    202Posts

    re: [Development] eMU :: MU2 Server Emulator (open source)

    i made this emu after the first client was released by megamax, 2 weeks then i stopped.
    C++ and C++/CLI. Can spawn mobs, kill them, drop items, walk, change map (tp and walking through gate), create delete chars, and some other stuff, far from playable but it's still something...
    took me almost a week to understand and dump all packet format/info but since client is beta, i cannot make all functions work since there are not even coded in client side.

    so, waiting for some beta server from webzen...

    edit: i could not translate it to eng, there is no option in any config file so, i dont understand a shit








    Last edited by GM-Andromeda; 17-01-14 at 10:38 AM.

  10. #10
    el gordito tetas caidas GM-Andromeda is offline
    MemberRank
    Jun 2006 Join Date
    Complex plane.Location
    202Posts

    re: [Development] eMU :: MU2 Server Emulator (open source)

    Some other maps screens and items:










  11. #11
    Valued Member st-m4il is offline
    MemberRank
    Feb 2007 Join Date
    Left of LondonLocation
    136Posts

    re: [Development] eMU :: MU2 Server Emulator (open source)

    GM-Andromeda Does it feel like Diablo 3? It looks a lot like it?

  12. #12
    Enthusiast netwhw is offline
    MemberRank
    Sep 2005 Join Date
    27Posts

    re: [Development] eMU :: MU2 Server Emulator (open source)

    Yep , I Agree , it has a D3 Look, this blue fog like effect it's all over D3 Act1.
    I Also could see on one of those pics a D3 Reversing Smth.....on Andromeda's Desktop , have you gotten a chance to look over their Binaries?
    Last edited by netwhw; 18-01-14 at 07:21 AM.

  13. #13
    el gordito tetas caidas GM-Andromeda is offline
    MemberRank
    Jun 2006 Join Date
    Complex plane.Location
    202Posts

    re: [Development] eMU :: MU2 Server Emulator (open source)

    Quote Originally Posted by netwhw View Post
    Yep , I Agree , it has a D3 Look, this blue fog like effect it's all over D3 Act1.
    I Also could see on one of those pics a D3 Reversing Smth.....on Andromeda's Desktop , have you gotten a chance to look over their Binaries?
    on topic: Yes, it is like diablo 3, map assets like tables, chairs and barrels are almost the same. But of course, blizzard project was developed by people with experience, they know what they are doing, and webzen... ehm, they dont.
    mu2 uses unreal engine, blizzard uses their own engine, so u can see a lot of games "look like" mu2, but no like diablo 3.

    Even more, i reversed diablo 3 protocol, completely, bnet and game, i took me 3 months (login, creating character and testing skills, watching traffic, even getting banned lol)... and i did the same in MU2, it took me 3 days without testing over an official server (cause it doesn't exist.)
    so, Diablo 3 = best developers, MU2 = MU = noobs.

    Off topic:
    when D3 beta was released, i was part of a team that tried to make a private server before retail version. But Blizzard stop it a few months after the final version.
    So yes, i reversed diablo 3 protocol (used in private server) and almost every structure in the graphic engine (this was just for fun :)).

    After this i used that data, including animations, materials, textures, etc to make my own mu client... as u can see, there are a lot of things from diablo in this client:
    http://www.youtube.com/watch?v=W0Rl32YoKLI
    But this client is no complete, it takes a lot of time i DONT have.
    Can just login char, walk, cast some basic skills, warp just to the new lorencia devias and noria , kill all monsters (98 monsters including most mu monsters), trade and use inventory. but no event, party, drop config, etc... far from playable.

  14. #14
    Enthusiast netwhw is offline
    MemberRank
    Sep 2005 Join Date
    27Posts

    re: [Development] eMU :: MU2 Server Emulator (open source)

    Wow, I did not know it was such a difference, 3 months to 3 days roughly... I've been playing arround with mooege and D3 beta client, that's why your icon peeked my attention.

    Anyway, I already saw your Game preview on another post about Mu Client on Iphone i guess... honestly , it's the best work I've seem around here, pro-like stuff !
    Not only the game which we can only view a very small portion, but for your observations regarding newer implementations , like scene manager , Path finding and why you did not use the same from reversed mu client.

    Ps: Very nice effects on UI Bar , your d3 mix looks very nice.

    Best of Luck on your Endeavors !

  15. #15
    Apprentice bezloginu is offline
    MemberRank
    Oct 2013 Join Date
    PolandLocation
    18Posts

    re: [Development] eMU :: MU2 Server Emulator (open source)

    20.01.2014 Update:
    -Character create support. Thread updated.



Page 1 of 2 12 LastLast

Advertisement