Welcome to MaxCheaters.com

Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads

Share Myext64 - My New Opensource Gracia Final/epilogue Extender


Recommended Posts

  • Replies 411
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

I'm writing a brand new Gracia Final/Epilogue extender, if you want to try it or have a look at sources, I'll put some development versions here: it's hosted on bitbucket.   https://osamelahora.cz/MyExt64/ https://bitbucket.org/l2shrine/extender-public   Now it does almost nothing but I'll add some new stuff over time... I'm adding new stuff over time :)   MyExt64 What is MyExt64 MyExt64 is new opensource extender for l2off Gracia Final server (l2_off_gracia_

Hi, please try it and let me know if it works, I don't have enough time to test it now :/ https://bitbucket.org/l2shrine/extender-public/commits/d45cf9fa0126fb02bc4f4ae2c89d1cc78a2aedb4

Guytis it is sorta amazing how butthurt you appear to be, continously making useless troll or trash talk posts. I'm impressed you appear to hate MasterToma so much. Hats off to him really for causing you to look like such an emo jackass.   You sir are one of a kind, exactly the kind of person Maxcheaters needs around here...    Really though, are there any moderators here to help take out the trash arond here?  This thread hijacking nonsense is a little silly.

Posted Images

Using your patched L2server with last dll error 0x0c000001d

Using loader with patched l2server same error (dll is attached to l2server).

Using loader with l2server_orig show error L2Server.exe wasn't able to load MyExt64.dll

Edited by zconll

Share this post


Link to post
Share on other sites

Using your patched L2server with last dll error 0x0c000001d

Using loader with patched l2server same error (dll is attached to l2server).

Using loader with l2server_orig show error L2Server.exe wasn't able to load MyExt64.dll

 

That's bad, I really don't know where could be the problem and I have only win2k8 machines where everything works (patched l2server, loader, everything...) :(

 

Maybe try to create a new topic in general l2off discussion...

Share this post


Link to post
Share on other sites
Thank you for your effort,

 

If someone using this extender, he can verify with Windows Server 2003 sp2 and AMD Phenom II 4x processor is working, It would be of great help.
 
Thanks again .
Edited by zconll

Share this post


Link to post
Share on other sites

At some point you're probably gonna want an L2NPC ext, which uses sharedfactory, so you will want to (probably sooner rather than later) split your sharedfactory headers into a shared library.

 

/* 0x002C */ unsigned char padding0x002C[0x00A4-0x002C];

^ this kinda stuff is a nightmare when you come to add a new var somewhere in the middle, as it's all 8 byte aligned you could just split it out to INT64 placeholders which makes it much easier to add vars later

 

Also, the ext is not going to work properly on gf 87 as ncsoft fucked the ex packets, I don't think I have my 87 ext anymore but if I find it I'll post the opcode corrections for it

Share this post


Link to post
Share on other sites

At some point you're probably gonna want an L2NPC ext, which uses sharedfactory, so you will want to (probably sooner rather than later) split your sharedfactory headers into a shared library.

/* 0x002C */ unsigned char padding0x002C[0x00A4-0x002C];

^ this kinda stuff is a nightmare when you come to add a new var somewhere in the middle, as it's all 8 byte aligned you could just split it out to INT64 placeholders which makes it much easier to add vars later

 

Also, the ext is not going to work properly on gf 87 as ncsoft fucked the ex packets, I don't think I have my 87 ext anymore but if I find it I'll post the opcode corrections for it

 

I'm still new in this all and still learning, what is sharedfactory?

 

Those paddings were nightmare until I figured out how to write it (unsigned char [nextOffset-thisOffset]), then it's easy, you just add the variable where you want and split padding to two paddings (before and after) and just copy/paste offsets, no more need for calculator :)

 

I have some packet rewrite even for protocol 87 but if they changed content of packets, I'm screwed

Share this post


Link to post
Share on other sites

sharedfactory is any shareddata class so

CSharedCreatureData
CSharedItemData
CSharedPledgeData

 

etc etc etc, they are all stored in shared memory between l2server and l2npc so when you make an l2npc ext the headers for those will need to be available to that project also, you can just include across the projects but a shared library project is cleaner and enables you to share other things like memory read/write classes and other stuff which will be common to all extenders in the project (as you're gonna need a cached ext also at some point too)

Edited by Anarchy

Share this post


Link to post
Share on other sites

sharedfactory is any shareddata class so

CSharedCreatureData

CSharedItemData

CSharedPledgeData

 

etc etc etc, they are all stored in shared memory between l2server and l2npc so when you make an l2npc ext the headers for those will need to be available to that project also, you can just include across the projects but a shared library project is cleaner and enables you to share other things like memory read/write classes and other stuff which will be common to all extenders in the project (as you're gonna need a cached ext also at some point too)

 

I'm bit confused now, I thought these are sent over network, aren't they?

 

I was thinking about single DLL to extend all four daemons - it's not difficult to detect who loads it and select the right initialization function/class.

Share this post


Link to post
Share on other sites

The only thing sent over the network is instructions. The actual data for players/npcs/items/etc, at least the shared data anyway, is stored in shared memory created by the l2server as transferring every single update of every single player/npc/item etc over network would be completely impractical.

Edited by Anarchy

Share this post


Link to post
Share on other sites

The only thing sent over the network is instructions. The actual data for players/npcs/items/etc, at least the shared data anyway, is stored in shared memory created by the l2server as transferring every single update of every single player/npc/item etc over network would be completely impractical.

 

Sound like good performance boost but how does it work when the three daemons run on three different machines? Or it's not possible? (I never tried it, I've always run them on single machine so I don't know)

Share this post


Link to post
Share on other sites

l2server and l2npc are the only two which share memory and so have to be on the same machine, any other daemons can be where ever they like

 

Thanks for clarification :)

 

What do you think about that idea with single DLL?

 

EDIT: Look at my last version, I've tried it and it looks it will be good :)

Edited by eressea

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.