Unfinished source BMD (3dMesh) to SMD

Page 4 of 6 FirstFirst 123456 LastLast
Results 46 to 60 of 86
  1. #46
    Account Upgraded | Title Enabled! RIMBROS is offline
    True MemberRank
    Apr 2008 Join Date
    Cd. Obregon Sonora (MEXICO)Location
    264Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    Quote Originally Posted by Gembrid View Post
    i've already tested) everything was ok =\

    have you tried player.bmd i've uploaded?
    O sorry, yes this works fine.

    Abouth animations in items, ok, let me explain, this weapon mace have animation rotation, but if u added a new weapon item with animations .bmd file the animation not run, and the object looks withouth animation, the only way its replace the item, but how its posible in main allow a item to run animations?... this question are here by years. I dont think only this man sobieh know the answer ot this.


  2. #47
    Hybrid Gembrid is offline
    True MemberRank
    Mar 2006 Join Date
    1,159Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    Quote Originally Posted by RIMBROS View Post
    O sorry, yes this works fine.

    Abouth animations in items, ok, let me explain, this weapon mace have animation rotation, but if u added a new weapon item with animations .bmd file the animation not run, and the object looks withouth animation, the only way its replace the item, but how its posible in main allow a item to run animations?... this question are here by years. I dont think only this man sobieh know the answer ot this.
    1. find the code in main for original item
    2. analyze
    3. change the code to support new items
    4. :D

    it was easy to find it for raven stick and stop the animation
    Raziel:
    And I realized that I could never escape my terrible destiny...
    I had merely postponed it.

  3. #48
    Account Upgraded | Title Enabled! RIMBROS is offline
    True MemberRank
    Apr 2008 Join Date
    Cd. Obregon Sonora (MEXICO)Location
    264Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    Quote Originally Posted by Gembrid View Post
    1. find the code in main for original item
    2. analyze
    3. change the code to support new items
    4. :D

    it was easy to find it for raven stick and stop the animation
    That its the point, nobody find the code, only sobieh but of course he never shared.
    I ask to you because i remember u are the only find how to changue the size in NPC.
    U are good finding codes.

  4. #49
    Darkness Member mauro07 is offline
    True MemberRank
    Oct 2007 Join Date
    ArgentinaLocation
    864Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    I can find assembly code for every item.. using: olly, but I don't know how extend limit.. to load me lacking struct for load effects in items, I don't know the way that: main.exe load effect in every item

    for example:

    Code:
     Loop for load Bows in: 1.03.52 (Eng)
    CPU Disasm
    Address   Hex dump          Command                                  Comments
    00629EC1  |.  6A 14         PUSH 14                                  ; /Arg4 = 14
    00629EC3  |.  68 78C09A00   PUSH OFFSET 009AC078                     ; |Arg3 = ASCII "Bow"
    00629EC8  |.  68 7CC09A00   PUSH OFFSET 009AC07C                     ; |Arg2 = ASCII "Data\Item\"
    00629ECD  |.  68 A70C0000   PUSH 0CA7                                ; |Arg1 = 0CA7  ---> Item offset in array for bows
    00629ED2  |.  E8 B1D2FFFF   CALL 00627188                            ; \Main-Funcional.00627188
    00629ED7  |.  83C4 10       ADD ESP,10
    0CA7 = 3239 in dec with this and ItemGet, you can found: exactly ItemID, for Bows how: "Ari Lyn Bow" that have special effects (you can found calls in main for this effect and redirect to: New Added Bow).
    Last edited by mauro07; 23-02-12 at 04:28 PM.

  5. #50
    Account Upgraded | Title Enabled! RIMBROS is offline
    True MemberRank
    Apr 2008 Join Date
    Cd. Obregon Sonora (MEXICO)Location
    264Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    Quote Originally Posted by mauro07 View Post
    I can find assembly code for every item.. using: olly, but I don't know how extend limit.. to load me lacking struct for load effects in items, I don't know the way that: main.exe load effect in every item
    Yea this its the most hard think in Main.exe found a effects and animations control, to extend limit of items u can made a Dll. btw i found interesting thinks, like light spots in something bones names, but out of this i dont know, another think i see its the sobieh effects in items looks very rare, not look nice like the original effects, i think he made a Dll or something to put OpenGl effects or something to the items, and he not working with the original code. Its only a think i supposse.

    I search control animation coz i search release armors in Mu like the Inmortals Online..

    Of course do this i have my hown skeleton structure. Compatible with all the armors released and with extra bones.

    Battle of the Immortals Blueprint - Hyperion Set - YouTube

    Battle of the Immortals (Armor Set) - YouTube
    Last edited by RIMBROS; 23-02-12 at 04:25 PM.

  6. #51
    Darkness Member mauro07 is offline
    True MemberRank
    Oct 2007 Join Date
    ArgentinaLocation
    864Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    Here decompiled to: 1.03h Jpn -> Season 4.5

    Added Cross Shield to: Season II - with Glass Effect


    Code:
    Func2:
    
    void gObjSetItemEffect2(UNK0 * arg1, UNK1 * lpMsg, int iID, float arg4, int arg5, float arg6, int arg7) //Completed
    {
    if(iID == ITEMID(0,26)) //Flameberge
    {
    func_51932D(arg1, arg5, arg4, (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), 5, -1);
    }
    else if(iID == ITEMID(0,27)) //Sword Breaker
    {
    func_5168A0(arg1, 0, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else if(iID == ITEMID(0,28)) //Rune Bastard Sword
    {
    func_5168A0(arg1, 2, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else if(iID == ITEMID(5,30)) //Deadly Staff
    {
    func_51932D(arg1, arg5, arg4, (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1, arg7);
    
    lpMsg->ukn3[0x94] = 1;
    
    *(float*)(&arg1->ukn[0x48]) = 1.0f;
    *(float*)(&arg1->ukn[0x4C]) = 1.0f;
    *(float*)(&arg1->ukn[0x50]) = 1.0f;
    
    func_5168A0(arg1, 1, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else if(iID == ITEMID(5,32)) //Unknown (weird but Season4.5 have it)
    {
    func_5168A0(arg1, 1, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else if(iID == ITEMID(6,19)) //Frost Barrier
    {
    func_5168A0(arg1, 0, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else if(iID == ITEMID(6,20)) //Guardian Shield
    {
    func_5168A0(arg1, 0, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else if(iID == ITEMID(7,49)) //Seraphim Helm
    {
    func_5168A0(arg1, 0, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else if(iID == ITEMID(7,50)) //Divine Helm
    {
    func_5168A0(arg1, 1, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else if(iID == ITEMID(7,53)) //Unknown (weird but Season4.5 have it)
    {
    func_5168A0(arg1, 2, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else if(iID == ITEMID(6,21)) //Cross Shield
    {
    func_5168A0(arg1, 0, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else
    {
    OriginalEffectFunc2(arg1, lpMsg, iID, arg4, arg5, arg6, arg7);
    }
    }
    
    void gObjSetItemEffect3(UNK0 * arg1, UNK1 * lpMsg, int iID, float arg4, int arg5, float arg6, int arg7) //Completed
    {
    if(iID == ITEMID(0,26)) //Flameberge
    {
    func_51932D(arg1, arg5, arg4, (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), 5, arg7);
    }
    else if(iID == ITEMID(6,19)) //Frost Barrier
    {
    func_5168A0(arg1, 0, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else if(iID == ITEMID(7,49)) //Seraphim Helm
    {
    func_5168A0(arg1, 0, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else if(iID == ITEMID(7,53)) //Unknown (weird but Season4.5 have it)
    {
    func_5168A0(arg1, 2, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else if(iID == ITEMID(7,50)) //Divine Helm
    {
    func_5168A0(arg1, 1, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    else
    {
    OriginalEffectFunc3(arg1, lpMsg, iID, arg4, arg5, arg6, arg7);
    } 
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    //Função 1
    else if(iID == ITEMID(6,21)) //Cross Shield
    {
    glColor3f(1.0f, 1.0f, 1.0f); //OpenGL Set Color
    
    func_5168A0(arg1, 0, 2, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    
    arg1->ukn[0x94] = 1; //Unknown value (need check)
    
    func_5168A0(arg1, 1, 70, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), -((int)(*( float*)0x587C650))%2000, -1); //Shield Glass Effect Animation
    func_5168A0(arg1, 2, 66, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    
    //Função 2
    else if(iID == ITEMID(6,21)) //Cross Shield
    {
    func_5168A0(arg1, 0, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    Code :
    
    
    //Função 1
    else if(iID == ITEMID(6,21)) //Cross Shield
    {
    glColor3f(1.0f, 1.0f, 1.0f); //OpenGL Set Color
    
    func_5168A0(arg1, 0, 2, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    
    arg1->ukn[0x94] = 1; //Unknown value (need check)
    
    func_5168A0(arg1, 1, 70, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), -((int)(*( float*)0x587C650))%2000, -1); //Shield Glass Effect Animation
    func_5168A0(arg1, 2, 66, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }
    
    //Função 2
    else if(iID == ITEMID(6,21)) //Cross Shield
    {
    func_5168A0(arg1, 0, arg5, *(float*)(&lpMsg->ukn3[0x1A8]), (int)lpMsg->ukn3[0x94], *(float*)(&lpMsg->ukn3[0x98]), *(float*)(&lpMsg->ukn3[0x9C]), *(float*)(&lpMsg->ukn3[0x0A0]), -1);
    }

  7. #52
    Account Upgraded | Title Enabled! RIMBROS is offline
    True MemberRank
    Apr 2008 Join Date
    Cd. Obregon Sonora (MEXICO)Location
    264Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    Amazing release, mmm btw maybe u can put Glass Effect with alpha channels modification too, and brightnes texture. But its good begining that u made.

  8. #53
    Darkness Member mauro07 is offline
    True MemberRank
    Oct 2007 Join Date
    ArgentinaLocation
    864Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    I don't made this.. credits are for: Hermex :p:

  9. #54
    Registered hermexjohn is offline
    MemberRank
    Jul 2005 Join Date
    23Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    i found 3 functions related to effects.
    webzen coded effects for each item like cross shield, flameberge i added in season2. For example cross shield uses this formula "-((int)(*( float*)0x587C650))%2000" to make the cool glass animation and flameberge this one:
    PHP Code:
    float Formula1 = (((int)(( *(float*)0x587C650) * 0.05f )) % 16) / 4;
    float Formula2 Formula1 0.25f
    also the rotate thing from the mace is from one of those 3 functions too and uses a similar formula

    Preview:


    btw i never tested different values to see what happens to it xD

  10. #55
    Ultimate Member [KeysS] is offline
    MemberRank
    Aug 2008 Join Date
    PeruLocation
    158Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    Nice man :D with this we can add effects like glass and fire effect =) is good :)

    This part of code is for main ... Seadon 2? What version Exactly ...?
    Last edited by [KeysS]; 25-02-12 at 05:17 AM.

  11. #56
    Account Upgraded | Title Enabled! RIMBROS is offline
    True MemberRank
    Apr 2008 Join Date
    Cd. Obregon Sonora (MEXICO)Location
    264Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    Btw, the fire effect its only a illusion, already looks like fire because in
    the .ozt the texture its fire frames, its like a .GIF image, u can changue this by lighting or changue the color to purple or green etc etc... mmm this u post its a source but how abouth the offset? search a float in ollyDBG its a kick in the as.

  12. #57
    Darkness Member mauro07 is offline
    True MemberRank
    Oct 2007 Join Date
    ArgentinaLocation
    864Posts

    wink Re: Unfinished source BMD (3dMesh) to SMD

    Quote Originally Posted by hermexjohn View Post
    i found 3 functions related to effects.
    webzen coded effects for each item like cross shield, flameberge i added in season2. For example cross shield uses this formula "-((int)(*( float*)0x587C650))%2000" to make the cool glass animation and flameberge this one:
    PHP Code:
    float Formula1 = (((int)(( *(float*)0x587C650) * 0.05f )) % 16) / 4;
    float Formula2 Formula1 0.25f
    also the rotate thing from the mace is from one of those 3 functions too and uses a similar formula

    Preview:


    btw i never tested different values to see what happens to it xD
    Hey hermex, is lacking this:

    Code:
    g_ItemEffect.func_5168A0(arg1, 5, 66, Value_5, 5, Value_2, Value_3, Formula2, -1 );
    Here I leave the last version of: AriethMu_S6.dll, unpacked. ready for decompilation.

    DOWNLOAD --> for main: 1.08C+ -> 1.08.29 (Kor) Season 6 Episode 2

    PS: I think that, the hermex code it's based in: 1.03h (Jpn) Season 4.5
    Last edited by mauro07; 25-02-12 at 08:36 AM.

  13. #58
    Account Upgraded | Title Enabled! rodrigobmg is offline
    True MemberRank
    Jun 2006 Join Date
    245Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    Quote Originally Posted by mauro07 View Post
    Hey hermex, is lacking this:

    Code:
    g_ItemEffect.func_5168A0(arg1, 5, 66, Value_5, 5, Value_2, Value_3, Formula2, -1 );
    Here I leave the last version of: AriethMu_S6.dll, unpacked. ready for decompilation.

    DOWNLOAD --> for main: 1.08C+ -> 1.08.29 (Kor) Season 6 Episode 2

    PS: I think that, the hermex code it's based in: 1.03h (Jpn) Season 4.5
    It's not easy to decompile, coz the important areas of code are virtualized...
    YEAHHHHH :vegeta:

  14. #59
    Hardcore Member kinder32 is online now
    MemberRank
    Sep 2008 Join Date
    ArgentinaLocation
    123Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    Maybe u should create a new thread to discuss about this.... this thread start as a opensource bmd <> smd converter, and is becoming a main functions thread.
    Last edited by kinder32; 25-02-12 at 01:23 PM.
    boring

  15. #60
    Account Upgraded | Title Enabled! rodrigobmg is offline
    True MemberRank
    Jun 2006 Join Date
    245Posts

    Re: Unfinished source BMD (3dMesh) to SMD

    Quote Originally Posted by kinder32 View Post
    Maybe u should create a new thread to discuss about this.... this thread start as a opensource bmd <> smd converter, and is becoming a main functions thread.
    But is all related to models...
    YEAHHHHH :vegeta:


  16.  

    Latest Gaming Releases

Page 4 of 6 FirstFirst 123456 LastLast

Advertisement