Bots-United / metamod-p

Metamod is a plugin/DLL manager that sits between the Half-Life Engine and an HL Game mod, allowing the dynamic loading/unloading of mod-like DLL plugins to add functionality to the HL server or game mod. Metamod-P is enhanced version of Metamod. It has dynamic link-entities and automatic detection of Mod DLL and other improvement to allow it work with future Half-Life Engine updates and new Mods and updates.
http://metamod-p.sourceforge.net/
102 stars 33 forks source link

Sven Co-op v5 support #2

Closed APGRoboCop closed 6 years ago

APGRoboCop commented 7 years ago

No big issue but I believe Sven v5 had their /dlls renamed from hl.dll and hi_i386.so as server.so and server.dll for MM-P to work. I only managed to allow P-37 to work by renaming those newly named dlls back to its original name.

Vanheer and some other HLDS coders used your MM-P src code but made a bad job as they lag more than your official version.

However now that Sven v5 is a Standalone version, it maybe likely that it could break the support for Metamod in the future.

Frisasky commented 7 years ago

hmm if u using mmp on sc5,you can using this version which modified for sc5 https://github.com/jonnyboy0719/MetaMod-P/tree/unstable i'd recommend @jkivilin merge changes made by jonny to official version

jkivilin commented 7 years ago

Unfortunately, I cannot easily merge from jonnyboy0719 as that is repository is not based on common git history.

jkivilin commented 7 years ago

If someone makes the effort to extract needed changes on top jkivilin/metamod-p git tree and send pull request, I'll happily review and merge that.

APGRoboCop commented 7 years ago

Well I'm no C++ pro but I will be sure to test those on my Sven Linux servers. I may have to use -debug mode with the GNU DeBug or GDB on my Linux CMD shell to find key clues if anything crashes - if anyone makes those changes.

If anyone is adventurous to test or run Sven with Metamod on their server, it be best to use this in Linux CMD shell along where you put in the startup:

LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH" gdb ./hlds_linux

But don't type the "./svenrun -ip xx.xx.xx.xx...etc" like you manually use to start but type as "run -ip xx.xx.xx.xx...etc_". If the server crashes then you can type "bt" to analyse which binaries and dependencies were involved in the crash...if I am not mistaken.

I'm no Windows Server fan as I don't know how to use other debug tools for Sven Win32.

jkivilin commented 7 years ago

I made new release that has Frisasky's changes from jonnyboy0719 branch. It's here: https://github.com/jkivilin/metamod-p/releases/tag/1.21p38_beta1

Note: this is completely untested build.

Frisasky commented 7 years ago

sven coop have go standalone and add some engine function did not exist in official goldsrc engine, i didnt pull these changes because the potential of broken MMP on other games time to create sc5 branch? @jkivilin check out this commit, which add sven coop speicified engine call https://github.com/jonnyboy0719/MetaMod-P/commit/9e14aaf4545358ece466853fb13590d56113d684

APGRoboCop commented 7 years ago

No biggie but it looks like your vers_meta.h requires an update for p38_beta1 as "meta version" from my rcon console shows as p37 - despite that it was recompiled recently.

23:52:35 meta version
23:52:35 Metamod v1.21p37  2013/05/30 (5:13)
         by Will Day
            http://www.metamod.org/
          Patch: Metamod-P (mm-p) v37
          by Jussi Kivilinna
             http://metamod-p.sourceforge.net/
         compiled: Jun 13 2017, 23:20:55 EET (optimized)
jkivilin commented 7 years ago

Yes, that's me being lazy ;)

APGRoboCop commented 7 years ago

Also for those who cannot load this Metamod-P38 beta build on Linux due to failing to load _hli386.so from /svencoop/dlls folder, you can simply type in that existing folder from CMD Terminal by using:

$ ln -s server.so hl_i386.so

Sven Coop dev team recommends NOT to rename server.so as _hli386.so for a sensible reason.

R4to0 commented 6 years ago

Instead of symlinking, you can set "gamedll dlls/server.so" in config.ini or use "+localinfo mm_gamedll dlls/server.so" within your startup parameter. The auto-detection worked fine for me.

Anyway, @jkivilin correct if I'm wrong but I believe the Metamod hlsdk headers (mainly eiface.h) are outdated compared to 2013 goldsrc Valve's eiface.h.

Valve's eiface.h: https://github.com/ValveSoftware/halflife/blob/master/engine/eiface.h#L292 image

Metamod-p eiface.h https://github.com/jkivilin/metamod-p/blob/master/hlsdk/engine/eiface.h#L304 image

I don't know if that can cause issues or crashes as it seems works fine with old names, but Sven Co-op is based on 2013+ goldsrc update with those renamed functions.

jkivilin commented 6 years ago

No issue with function pointer names, as those do not end up in to the compiled binary. What is important, is that used types (void, int *, char **, etc) match.

Scr34mik commented 6 years ago

Launching sven-coop server with https://github.com/jkivilin/metamod-p/releases/tag/1.21p38_beta1 causes it to instantly crash on startup.

APGRoboCop commented 6 years ago

Could you be more specific and got any crash logs or any clues linking to the source of the crash?

⁣Sent from BlueMail ​

On 15 Dec 2017, 23:49, at 23:49, Scr34mik notifications@github.com wrote:

Launching server with https://github.com/jkivilin/metamod-p/releases/tag/1.21p38_beta1 causes it to instantly crash on startup.

-- You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub: https://github.com/jkivilin/metamod-p/issues/2#issuecomment-352139791

Manapo74 commented 6 years ago

Hello, please can you create this metamod for Dedicated Windows?

Frisasky commented 6 years ago

if you're going to run svencoop, using this https://github.com/jonnyboy0719/MetaMod-P/releases/tag/2.0.0

Manapo74 commented 6 years ago

For Dedicated Windows metamod unstable, on the map hl_с03 ping server drops to 5-7

jkivilin commented 6 years ago

Closing, this issue was about adding svencoop v5 support, now it has become dumpster of crash reports.