Home » PLAYER'S HQ 1.13 » v1.13 Multiplayer » [CUSTOM .EXE]: R. 8294 Multiplayer ONLY (Smoother Gameplay) (NCTH, Real-Time Sneak, Reinforcements, Mine Fix, etc.)
cloud107.png  [CUSTOM .EXE]: R. 8294 Multiplayer ONLY (Smoother Gameplay)[message #346706] Sun, 21 August 2016 04:08 Go to next message
RunAwayScientist

 
Messages:69
Registered:September 2001

-------------==============-------------------
Custom .EXE (Use at own risk)
-------------==============-------------------
LINK: http://www.mediafire.com/download/c1wb0kblxqvosem/JA2MPCUSTOM.rar
-------------==============-------------------


SYNOPSIS: Several booleans have been changed and functions return 0'd to work around debilitating/annoying MP bugs. Several other features were re-enabled, including NCTH. More specifically:


  • NCTH enabled.
  • Fragmentations disabled.
  • Enemy reinforcements enabled.
  • Food system enabled.
  • Backgrounds enabled.
  • Real-time + Quiet sneaking enabled.
  • Score screen disabled (allows post-game real-time movement ; quit with ALT+X).
  • Rooftop Climbing enabled.
  • Old Interrupt System for Deathmatch/Team Deathmatch. (thank you to RoWa21)
  • Interrupts disabled during Co-Op games.
  • Disabled footstep sounds.
  • Kept ALT+E dialog box enabled.



The primary idea here is to disable interrupts using OIS (Old Interrupt System) which had a boolean specifically for this. This will prevent the need of having to slam ALT+E every time the 2nd player gets a turn or interrupt.

Also, fragmentation is disabled to allow all other regular explosions (secondary, action item explosions, etc).

These changes, consequently, enable covert ops in real-time and keep the game from crashing when a mine/boobytrap detonates.








REQUIREMENTS: Game Directory 2340

This requires (because it is a >8294 build) that you have a game directory from Depri or via the SVN that adds in Flugente's latest features.
Namely the most recent was the ability to hack computers/search filecabinets for intelligence information.





INSTRUCTIONS:



1. Extract this .exe to your primary Jagged Alliance 1.13 folder.


2. Tell your friends to stop being lazy and grab the same .exe for themselves.


3. Play.





STANDARDIZED EQUIPMENT PROGRAM (Optional):

I've also created a quick C++/MinGW Program designed for MP gearkitting. It is a simple
brute force substring find/replace executable. Read more at:
http://thepit.ja-galaxy-forum.com/index.php?t=msg&th=23182&goto=346846&#msg_346846









ALL MODIFIED VALUES/CODE:


[[ client.cpp ]] :

Toggle Spoiler





[[ connect.h ]] :


Toggle Spoiler





[[ Overhead.cpp ]] :


Toggle Spoiler





[[ Soldier Control.cpp ]] :


Toggle Spoiler





[[ Explosion Control.cpp ]] :

Toggle Spoiler





[[ Soldier Ani.cpp ]] :

Toggle Spoiler





[[ Turn Based Input.cpp ]] :

Toggle Spoiler




---------------------------=======================================---------------------------




I've tested this online with friends and NCTH works just fine. Experimentation continue with rooftop climbing. After this, no further updates are planned.


Happy MP'ing fellow JA2ers.



[Updated on: Mon, 19 September 2016 22:50]


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346717 is a reply to message #346706] Mon, 22 August 2016 12:10 Go to previous messageGo to next message
RoWa21

 
Messages:2046
Registered:October 2005
Location: Austria
Hi, which values in the code (and in which file) did you chance to completly disable interrupts?


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346721 is a reply to message #346717] Mon, 22 August 2016 21:20 Go to previous messageGo to next message
sevenfm

 
Messages:1210
Registered:December 2012
Location: South Urals
RoWa21 wrote on Mon, 22 August 2016 14:10
Hi, which values in the code (and in which file) did you change to completly disable interrupts?

Setting InterruptsAllowed = FALSE in TeamTurns.cpp should be enough.
Or return FALSE in StandardInterruptConditionsMet.



Stable 7609+fix (21.05.2017)
Stable 7609+AI (r426 20.06.2017)
Improved weapon sounds
Youtube channel


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346723 is a reply to message #346721] Mon, 22 August 2016 23:04 Go to previous messageGo to next message
RoWa21

 
Messages:2046
Registered:October 2005
Location: Austria
Ok thanks.


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346725 is a reply to message #346723] Tue, 23 August 2016 16:23 Go to previous messageGo to next message
RoWa21

 
Messages:2046
Registered:October 2005
Location: Austria
@sevenfm: Any chances you could fix the nasty "endless clock on interrupt which sometimes happens on the pure client when enemy AI interrupts"? I wasted many hours on fixing the bug, but I dont have any knowledge on the interrupt system. This is a currently a major bug in the 1.13 multiplayer and the only workaround when it happens is to press ALT+E on the server to open a dialog and give the turn back to the client that was interrupted.
If you are willing to fix the bug, I can give you more infos.


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346731 is a reply to message #346721] Tue, 23 August 2016 22:21 Go to previous messageGo to next message
RunAwayScientist

 
Messages:69
Registered:September 2001

sevenfm wrote on Mon, 22 August 2016 18:20
Setting InterruptsAllowed = FALSE in TeamTurns.cpp should be enough.



Huh. I didn't think of that. I'll have to give it a try.


If it works, just really only need a separate .exe without touching the .inis. Which would be ideal.

[Updated on: Tue, 23 August 2016 22:21]


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346767 is a reply to message #346731] Thu, 01 September 2016 06:17 Go to previous messageGo to next message
RunAwayScientist

 
Messages:69
Registered:September 2001

Hey Sven, RoWA,


Where are mine explosions handled? What file? If we could replace the mine explosion with the regular, standard explosion when an explosive barrel or missile or other object is struck in multiplayer, this might bypass the issue of clients crashing when a mine is blown up/triggered.


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346779 is a reply to message #346767] Thu, 01 September 2016 20:51 Go to previous messageGo to next message
Flugente

 
Messages:3051
Registered:April 2009
Location: Germany
You probably mean
BOOLEAN SetOffBombsInGridNo( UINT8 ubID, INT32 sGridNo, BOOLEAN fAllBombs, INT8 bLevel );

though the explosions are the usual explosion code. Then again, I don't know what the issue is anyway, so this might be helpful after all.



Saren threw his head back and screamed in impotent fury, before falling to his throne, head in his claws, trembling in horrified disbelief.

Then he heard a faint chime as Sovereign subscribed to her ECHO channel.

If you want, you can donate to me. This will not affect how and what I code, and I will not code specific features in return. I will be thankful though.


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346832 is a reply to message #346779] Thu, 08 September 2016 15:16 Go to previous messageGo to next message
RunAwayScientist

 
Messages:69
Registered:September 2001

Flugente, I could kiss you. On the mouth. No homo.


The problem is definitely related to the 'Standard' explosion data type that mines and explosive booby traps use. The crash occurs when any explosive booby trap or 'Action Item' is triggered.

When triggering Action Items that do not have the <Blow_up>1</Blow_up> value in ActionItems.xml, no crash occurs and the action completes successfully on the client. I have not tested to see if it passes to other clients yet.


Other possibilities are that it is related to
A ) Action Items
B ) SetOffBombsInGridNo
C ) pSoldier->EVENT_StopMerc( pSoldier->sGridNo, pSoldier->ubDirection );
D ) IgniteExplosion


Flug/Sven/RoWA, would you happen to know where I can find the function for handling a LAW launcher or rocket explosion? This is to replace the 'standard' explosion for mines and booby traps. A workaround.

Just so you guys know, grenades work fine w/shrapnel. Launchers work fine w/shrapnel. Explosive barrels/tanks explode fine in MP as well. Perhaps this information might help track down the problem, especially if both of these use calls to IgniteExplosion.

[Updated on: Thu, 08 September 2016 15:31]


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346833 is a reply to message #346832] Thu, 08 September 2016 16:54 Go to previous messageGo to next message
RunAwayScientist

 
Messages:69
Registered:September 2001

Updated the .exe to be based off the current revision (8289) and expanded changes out into additional files/areas.



CHANGES:



  • Added note about 10 merc squads.
  • Disabled all action item/explosive events, disabling booby traps and mines
  • Disabled score-screen, enabling post-combat real-time
  • Allowed reinforcements in all sectors (not just cities)
  • Reverted to OIS to make use of boolean which disables interrupts from the .exe
  • Enabled backgrounds
  • Enabled food system
  • Narrowed down explosion bug culprit to 'Standard' explosiontype

[Updated on: Mon, 19 September 2016 02:09]


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346835 is a reply to message #346833] Thu, 08 September 2016 18:27 Go to previous messageGo to next message
RoWa21

 
Messages:2046
Registered:October 2005
Location: Austria
RunAwayScientist wrote on Thu, 08 September 2016 13:54
Updated the .exe to be based off the current revision (8289) and expanded changes out into additional files/areas.



CHANGES:




  • Added note about 10 merc squads.
  • Disabled all action item/explosive events, disabling booby traps and mines
  • Disabled score-screen, enabling post-combat real-time
  • Allowed reinforcements in all sectors (not just cities)
  • Reverted to OIS to make use of boolean which disables interrupts from the .exe
  • Enabled backgrounds
  • Enabled food system
  • Narrowed down explosion bug culprit to 'Standard' explosiontype




I will apply some fixes/workarounds you posted to the official 1.13 svn source code.
I think interrupts only have problem when AI is involved. So I will disable interrupts only for Coop-Gameplay and leave them enabled in Deatchmatch and Team Deatchmatch.


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346839 is a reply to message #346835] Fri, 09 September 2016 08:35 Go to previous messageGo to next message
RunAwayScientist

 
Messages:69
Registered:September 2001

Excellent. That makes sense, actually. Any ideas about replacing mine/boobytrap explosions with LAW launcher, mortar, or explosive barrel explosion types?

Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346964 is a reply to message #346839] Mon, 19 September 2016 02:08 Go to previous messageGo to next message
RunAwayScientist

 
Messages:69
Registered:September 2001

Found out the culprit for MP crashes. Fragmentation code. Makes sense, since MP stopped being worked on just before fragmentation was added.

Flugente should be happy to know, however, environmental destruction including roof top collapses work fine.



CHANGES:







  • Re-enabled all action item/explosive events, booby traps, and mines
  • Disabled fragmentation method in Explosion Handling.cpp ; this was directly responsible for client crashes in MP during explosive events.
  • Disabled all footstep sounds/methods to deal with/prevent looping sound bug.





[Updated on: Mon, 19 September 2016 21:45]


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346965 is a reply to message #346964] Mon, 19 September 2016 08:28 Go to previous messageGo to next message
Someone64

 
Messages:36
Registered:May 2015
Location: Philippines
There's also a consistent crash in multiplayer where if a thrown item hits a merc and hurts him (like tossing a medpack and it crushing his toes for 1 hp) the game will always crash.

[Updated on: Mon, 19 September 2016 08:29]

Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346968 is a reply to message #346964] Mon, 19 September 2016 10:51 Go to previous messageGo to next message
silversurfer

 
Messages:2112
Registered:May 2009
RunAwayScientist wrote on Mon, 19 September 2016 01:08

[*] Disabled fragmentation method in Explosion Handling.cpp ; this was directly responsible for client crashes in MP during explosive events.[/list]

You mean you disabled function "FireFragments" for multiplayer? That's a pity because the danger of most grenades and mines comes from the fragments not the tiny explosion itself.



Wildfire Maps Mod 6.07 on SVN: https://ja2svn.mooo.com/source/ja2/branches/Wanne/JA2%201.13%20Wildfire%206.06%20-%20Maps%20MOD

Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346971 is a reply to message #346968] Mon, 19 September 2016 21:48 Go to previous messageGo to next message
RunAwayScientist

 
Messages:69
Registered:September 2001

Yerp. Believe me, I didn't want to disable fragments. I disabled every single other explosion method before finally doing fragments. There's just no way around it: fragments are responsible for the crashes on the client.

New quick addition: footstep sounds are disabled. The sound loop was really starting to annoy us during games.



Someone64 wrote on Mon, 19 September 2016 05:28
There's also a consistent crash in multiplayer where if a thrown item hits a merc and hurts him (like tossing a medpack and it crushing his toes for 1 hp) the game will always crash.



Well, let's hope nobody runs out of mags and has to be thrown a new one anytime soon. Seems like indirect damage might be responsible. Fragmentation is also indirect damage. Hmmmmm....





CHANGES:





  • Disabled all footstep sound methods, silencing all footsteps to workaround sound bug.
  • Enabled rooftop climbing.
  • Kept ALT+E dialog box enabled.


[Updated on: Mon, 19 September 2016 22:33]


Re: [CUSTOM .EXE]: R. 8289 Multiplayer Custom Compiled EXE (Smooth multiplayer)[message #346972 is a reply to message #346835] Mon, 19 September 2016 22:35 Go to previous message
RunAwayScientist

 
Messages:69
Registered:September 2001

RoWa21 wrote on Thu, 08 September 2016 15:27

I think interrupts only have problem when AI is involved. So I will disable interrupts only for Coop-Gameplay and leave them enabled in Deatchmatch and Team Deatchmatch.




I'm going to leave the ALT+E enabled in my binary. The game still locks up on the 'Timer'/'Stopwatch' during certain animation events on the Host, and it would be good practice to allow clients to give turns in the event this happens. I.E., stepping on a mine results in infinite 'Stopwatch' and ALT+E fixes this.

Previous Topic: [SEP] Standardized Equipment Program (For Multiplayer) (v1)
Next Topic: Multiplayer - Getting started!
Goto Forum:
  


Current Time: Sun Jun 25 06:38:24 EEST 2017

Total time taken to generate the page: 0.00926 seconds