diff --git a/gamedir/Ja2_mp.ini b/gamedir/Ja2_mp.ini new file mode 100644 index 000000000..a8de8ea1b --- /dev/null +++ b/gamedir/Ja2_mp.ini @@ -0,0 +1,112 @@ +[Ja2_mp Settings] + +;----------------------------------------------------------------------------------------- +; ** all of these need setting/adjusting for all the "features" ;) +; basic multiplayer settings...; they can be changed for effect without restarting the engine, +; but a restart of the server/client or level/game may be necessary relevant.... +; see the readme.html for detailed explanation +; +;----------------------------------------------------------------------------------------- + +;----------------------------------------------------------------------------------------- +; THE FOLLOWING SECTION NEEDS TO BE SET BY ALL CLIENTS +;----------------------------------------------------------------------------------------- + +; The server ip. Set this ip to "127.0.0.1" for the client who wants to be the server. +; On the other clients, set this ip to the external ip from the server. +; The external ip can be looked at www.whatismyip.com +SERVER_IP = "127.0.0.1" + +; Leave this default value. Be sure that this port is forwarded on your router if you are the server. +SERVER_PORT = 60005 + +TEAM = 1 +; Pick a team number, if its the same as another clients, you will be allied while Teams are allowed by server. + +; This can be upto 30 characters. Make sure to keep the "quotation" marks around it! +CLIENT_NAME = "Your_Name" + +; The starting sector edge of your team. +; 0 = north, 1 = south, 2 = east, 3 = west +SECTOR_EDGE = 0 + + +;----------------------------------------------------------------------------------------- +; THE FOLLOWING SECTION ONLY NEEDS TO BE SET BY THE SERVER. SETTINGS FROM CLIENTS ARE IGNORED! +;----------------------------------------------------------------------------------------- + +; The number of clients who want to play. +; Game maximum is 4, can be less needs to be total clients going to join. +MAX_CLIENTS = 2 + +; The maximum number of mercs hireable by each client, max for game/mod is 7, there are 6 per squad... +MAX_MERCS = 4 + +; This is a weapon damage multiplayer. +; This can be any decimal (FLOAT) value. +; .5 = half damage, 1 = full/normal damage, 2 = double damage +DAMAGE_MULTIPLIER = .7 + +; Bonus points towards an interrupt if weapon is allready readied. (int) +WEAPON_READIED_BONUS = 2 + +; The starting money for each client. +; (leave out the $ sign). +STARTING_BALANCE = 25000 + +; Game starting time. (FLOAT) +; The values are in hours (0.5 = 1/2 hour) +; Default value is 7 (7am), ie 13.5 = 1:30pm +TIME = 13.5 + +; A divisor of how much time each client has for its turn. Default = 100, less = more time. +; 10 = 43 seconds, 15 = 28s, 20 = 22s, 25 = 19s, 50 = 17s, 100 = 15s, (with just cliff fresh on 22 ap's), it seems exponential, total number of MERCS/AP's comes into to ... +TIMED_TURN_SECS_PER_TICK = 25 + +; Allow hiring of same merc by different clients. +; 1 = true, 0 = false +SAME_MERC = 1 + +; Should other clients see the name of your hired mercs? +; 1 = true, 0 = false +REPORT_NAME = 0 + +GAME_MODE = 1 +; 0 = All vs All Only, +; 1 = Team's Allowed, (as per client TEAM variable lsited above) +; 2 = Only Co-Op, +; +;note : coop stil doesnt really work ... but can be loaded and crashed + +; Disable Bobby Rays website? +; 1 = true, 0 = false +DISABLE_BOBBY_RAYS = 0 + +; Disable AIM and MERC equip? +; 1 = true, 0 = false +DISABLE_AIM_AND_MERC_EQUIP = 0 + +; Here you can control if you would like to play with enemies, creatures, mitlitia and civs +; Info: Leave creatures disabled! +; 1 = true, 0 = false +ENEMY_ENABLED = 0 +CREATURE_ENABLED = 0 +MILITIA_ENABLED = 0 +CIV_ENABLED = 0 + +; If set to 1, this enables cheat function bound to key '9'. This contains a helpfull testing function which shows all mercs from all clients. +TESTING = 0 + +; Would you like to disable the morale of the mercs? +; 1 = true, 0 = false +DISABLE_MORALE = 1 + +; An array of items to be given to each merc hired at the start of the game, repeat a item number for more than 1. +; Each item can not have number of digits greater than 4, is <=9999, total length for this string is 100, including brackets and commas, +; and no more than 20 items int total. these can be adjusted apon request. +; Examples: 201=first aid, 214=canteen, 199=comp binoc's, 222=energy boost (aka stim pack), 235=regen boost, 300=light knife, +; 49=knuckle dusters, 337,279,279= a FN five seven side arm with 2 extra mags :) . +; Look in items.xml for full list, of coarse this is also limited to mercs inc capactiy. +; Also note that right now they are not added to replicants, so they wont be dropped by killed mercs other than your own +; Another kit bag setting: KIT_BAG = [201,214,300,337,279,279,222,235], also note the limitations of NIV in regard to which pack is in use. +KIT_BAG = [201,214] \ No newline at end of file diff --git a/gamedir/readme_mp.html b/gamedir/readme_mp.html new file mode 100644 index 000000000..af20d37d4 --- /dev/null +++ b/gamedir/readme_mp.html @@ -0,0 +1,1223 @@ + + + + + JA2 v1.13 Multiplayer + + + b3
+
+
+

+ JA2 v1.13 Multiplayer

+ (you'll need NIV installed from now on) +
+
+ + + + + + + + +
+
+
+ Getting Started
+
+
+ Installing
+ Setting up Ja2_mp.ini
+
+ Setting the Drop Zone
+ Starting a Server
+ Connecting the Client
+
+ Hiring you Mercs
+ Doin' the Bobby Ray's
+
+ Starting the Battle
+ Placing your Mercs
+ Entering Tactical
+
+ Duke'in it out
+ The Battle Ends
+
+
+
+ Disconnecting a Server/Client
+
+ The Server Overide Functions + and In-game help
+
+
+
+
+
+ The Variables of "Ja2_mp.ini"
+
+
+
+
+
+ Client Settings:
+
+ SERVER_IP
+
+
+ SERVER_PORT +
+
+
+
+
+
+ OP_TEAM_'X'
+ CLIENT_NAME
+ SECTOR_EDGE +
+
+
+
+ +
+
+ Server only Settings:
+
+ + +
+
+
+
+
+ Developmental Comments
+
+
+ The Online SVN Repo
+
+ JagZilla (Bugzilla)
+
+ How Co-Op Works
+
+ Further Development
+
+ How it all Works
+
+ RakNet UDP Networking
+
+ Changes
+
+

+ +
+
+

+
+
+
+
+
+
+

+ Getting Started

+
+
+

+ Installing

+
+ If you use SVN, just update the Game Directory.     
+ If you do not use SVN, download the RAR-Package and extract it in your Jagged + Alliance 2 root directory.
+
+
+

+ Setting up Ja2_mp.ini

+
+ Don't think you can skip this step, there's too much in here + which needs independently configuring per client to achieve successfull connection + and gameplay.
+
+ You will find a copy of this file with the release, this needs + to go in your root Ja2 directory, along with the .exe included. It contains all + the variables and parameters i have added which are convenient to change. They are + read in from the file as part of starting up the Raknet Client. So if you change + a setting in the file, you dont need to restart the game engine for effect, simply + restart the net client. More about these variables in the following section + where i detail each one.
+
+
+
+
+
+
+

+ Setting the Drop Zone

+
+ This is now the first step after starting a new game and choosing + initial game option, and is only done by the server, client changes have no effect. + This cannot be changed once server started/running.  
+
+ Switch to the Airspace display by either clicking on the map button or pressing + the 'A' key. Then click on the 'bullseye' to select it, (which will at startup be + located at secotor 9,1 "Omerta"), then place it as the agreed/desired game sector. + All hired Mercs and Bobby Rays orders will now be sent there.
+
+
+
+
+
+
+

+ Starting a Server

+
+ Ok... start a new game and when presented with the map screen, + press the '1' key, (it works on the numpad too). You should see some little remarks + about the server starting up. If other clients cannot connect to you (the server), + be sure that the selected port in ja2_mp.ini is forwarded on your router!
+

+ Connecting the Client

+
+ If you are the host you automatically connected to the server + if you pressed '1'. If you aren't the host, start a new multiplayer game. The settings + in the start new game screen does not matter, because you will receive the settings + from the server after you connected. On strategy map screen, press the '2' key and + you get connected to the server. In either situation you should see some comments about the Raknet + network client starting up, and then if you have specified the right variables in + Ja2_mp.ini and your network/firewall is "ok", you should make connection and + see report of this from both the server and client. If you need to change a variable + in your config or simply have another go at connecting, you can press the '2' key + again after your attempt has been reported as failed, or kill the client/server + and start it again.
+

+ Hiring you Mercs

+             When all clients are connected and only then + should you start hiring mercs, when the server is ready, they press the '3' key + to unlock the laptop access. +
+ Boot up your laptop and hire up-to 7 Mercs from the selections + at AIM and MERC... Due to the assumed fact that their proceeding action wont be + longer than a day, the default chosen contract length, delivery time and confirmation + have been adjusted for ease of use.
+
+ I might also add here that this can be a good time to save the + game, once all clients have hired their mercs, this way if there is a crash or some + other problem or you just want to start again or play once more, you can do so quicker. + Though bobby rays orders are not save at the moment, so save before placing them.
+

+ Doin' the Bobby Ray's

+
+ I just had to add this in because i could ;p ... the default + destination and shipping choice have been pre-set, and there's no difference in + changing them. 
+
+ The delivery is now made immediately after order, and available + from the map inventory screen, without loading the level !, into your pre-located + crate as specified in the config file. Further orders can be made mid game. Note + i've changed the defualt game options to gives the best bobby rays selection, this + is great, unless you want it otherwise.
+

+ Starting the Battle

+
+ When all clients have followed the above steps and are ready + for battle, from the map screen, press the '3' key. When all clients are ready, + this will load the level and launch the "Tactical Placement GUI", as known + by the overhead map view of the sector, allowing placement of Mercs along allocated + edge space once all clients are loaded.
+

+ Placing your Mercs

+
+ When all clients are loaded you can begin. *Be carefull + if for some reason you will be placing opposed mercs along the same edge or at a + corner where they may be in immediate sighting range of another clients enemy merc + edge, you will probably have problems, as the code doesn't like starting the battle + (going into tactical) and going straight into turnbased mode when all clients aren't + in tactical yet, ie still in placement mode.
+

+ Entering Tactical

+
+ When all clients have finished with their merc placement and + are ready, all can selet "Done". This will set you as "ready" unless you cancel, + and when all are ready it will go into what is called "Tactical View". It will start + in realtime until the the first opposed sighting is made at which time it changes + to turn-based mode. The game can also switch back to realtime if each clients have + not seen each other for some turns.
+
+
+

+ + Duke'in it out

+
+ Let me break it to you now so as to dash those hopes you had + of experiencing the full spectrum of intricacy and complexity afforded by the Ja2 + engine but in Multiplayer...
+
+ Very little of the combat components have been implemented at this stage... here + is the list of what is sent across the network and as such justifies allowed gameplay + manouvers:
+
+ ** moving your mercs on the ground level, ** changing stance between standing, crouching, + and prone, ** changing facing direction,  ** firing a gun, ** bullet damages + and ** stopping a merc apon spotting new enemy...
+
+ I might also mention that ** knife damages, ** punch damages, + ** and burst fire damages are implemented, however the animations are not. This + leaves pretty much all the rest of the fun un-implemented, so agree to avoid it + to save confusion and invalid battle actions, for example, roofs, med packs,  + and grenades etc. etc.
+
+
+
+

+ The Battle Ends

+
+
+
+ Once all but one team is left we have a winner, and you will + either be presented with notification of defeat or, be returned to realtime and + as such become the winner / survivor.
+ From here im not sure whatis possible, you could obviously start a new game, but + you could also try hiring more mercs and gear, which will be delivered automatically. + Perhaps even the survivor could walk to another sector, and those defeated, hiring + more weapons and mercs could change their destination sector. Though it hasnt been + tested...
+
+
+
+
+

+ Disconnecting a Server/Client

+
+ By pressing the '4' key, from the Tactical (map) view, the server and client process's + if running will be disconnected and 'killed', reseting parameters relating to status + of connection.
+
+
+
+
+
+
+
+
+

+ The Server Overide Functions + and In-game help

+
+ Now's a good time to mention some new features, one is the Server Overide Function, + bound to the key '7', which can be used by the server to bypass any of the mod's + 4 launch checkpoints. There is also a small help display bound to 'F1' and 'F2' + if you forget your  keys..., oh, there is also bound to '5' a script to show + mouse grid coordinates.
+
+
+
+
+
+ The server can now also Manually end another players turn (or if in realtime, start + turnbased action) with 'Alt+E'.
+
+ As well the server can "kick" a player with 'Alt+K'. This removes all copies of + that clients mercs throughout the network , causing there turn to be skipped, but + leaving them connected to spectate.
+
+
+
+
+
+
+
+

+ The Variables of "Ja2_mp.ini"

+
+

+ + Client Settings: (set all on all):

+
+ +
+ This is the IP addess that your client will connect to. You can + use "127.0.0.1" if you are the host.
+ If you are not the host you have to enter the external IP address of the server. + The server can look at www.whatismyip.com to get the external
+ IP address.    
+ Don't forget the + "quotation" marks. This doesnt need to be + set if you are the server.
+ + +
+
+ The port that the server and client + will connect through, best if not used by other apps and isnt blocked by a firewall, + router etc. > 6000 is best, set it the same on all machines and it doesnt need + to be writting in "quotation" marks as don't the rest of the variables.
+ If other clients cannot connect to your server, be sure that this port is forwarded + on your router!
+
+ + +
+ Pick a team number, if its the same as another clients, you will be allied while + Teams are allowed by server.
+ +
+ This can be upto 30 'char' characters. make sure to keep the "quotation" marks around + it ! ie "hayden"
+
+
+
+
+ +
+ Choose between 0 and 3, to set your starting sector edge + (ubStrategicInsertionCode) , 0=North, 2=East, 1=South, and 3=West. +
+
+
+

+ + Server Only Settings: (no effect on client only game):

+ +
+             This can't + be made higher than 4 (for the games sake), but lower is ok. Best to set this to + the expected number of clients to allow for proper game launch    
+          check progressions....
+ +
+            Number of + mercs hireable by each player, Maximum for this mod is 7.  6 is good as that + is the squad limit (though you can have more than one sqaud.)
+
+ +
+ Originally 'net_divisor' it is now the factor, and can handle decimal + value (float), eg 0.5 = half, 0.3333 = third, 2 = double.
+ +
+ The Starting balance for all clients set in dollars without the $ sign.
+ +
+ Game starting time. (FLOAT). +The values are in hours (0.5 = 1/2 hour). +Default value is 7 (7am), ie 13.5 = 1:30pm
+ +
+ A divisor of how much time each client has for its turn. Default = 100, + less = more time.
+ 10 = 43 seconds, 15 = 28s, 20 = 22, 25 = 19s, 50 = 17s, 100 = 15s, *with only cliff, + fresh on 22 ap's*.
+
+ +

+ Enable or disable the hiring of the same merc by more than + one client... 

+ +

+ If should report the Name of remotely hired mercs.

+ +

+ 0 = All vs All only, 1= Team's Allowed, (as per client + TEAM variable lsited above), 2 = Only Co-Op (coop not still working)

+ +
+ 1 = true, 0 = false.
+
+ +
+ 1 = true, 0 = false.
+ +
+ This as with the following 3 options can now be set to 0 or 1, + to enable or disable the spawning of the respetive AI faction. The clients never + generate anything themselves, just spawn what is passed to them from the server + to make sure all players have same AI. The AI is only controlled/running on the + server game. Actions are from ther sent out.
+
+ These options are now only server side, and need only be set + in its .ini +
+ +
+ Leave creature disabled as thier team size was reduced + to 1 from 32 to make room for LAN players... 
+ +
+ 0 = disable, 1 = enable.
+ +
+ 0 = disable, 1 = enable.
+ +
+ when 1, enables cheat function bound to '9', containing helpfull testing + function, show all mercs, though i believe it makes getting an interrupt harder....
+
+ +
+ Enable or Disable Morale Changes during battle.
+ +
+  An array of items to be given to each merc hired at the start of the game, + repeat a item number for more than 1 each item can not have number of digits + greater than 4, is <=9999, total length for this string is 100, including brackets + and commas, and no more than 20 items int total. these can be adjusted apon request
+ examples: 201=first aid, 214=canteen, 199=comp binoc's, 222=energy boost (aka stim + pack), 235=regen boost, 300=light knife, 49=knuckle dusters.
+ look in items.xml for full list, of coarse this is also limited to mercs inc capactiy.
+ Also note that right now they are not added to replicants, so they wont be dropped + by killed mercs other than your own.
+
+
+
+
+
+
+
+
+

+ Developmental Comments

+
+
+
+
+

+ The Online SVN Repo

+     Thanks to the forward help of  + lalienxx at the Bear's Bit i have some SVN space where you can get the source + code as i update it using an SVN client such as TortoiseSVN. I'm open to contributions, + i currently am running Visual Studio 2005 express.
+
+ JagZilla (Bugzilla)     Thanks to + the forward help of JAPH + at the Bear's Bit we have a bugzilla space where you can post you comments, + requests and bugs without them getting lost in the forums, plus you get tracking + and it new ... ;)
+         + http://ja2.discusrock.org/bugzilla/
+

+ How Co-Op Doesnt works (well not that well, right now...)

+      If it does... (you'll have to get back to me on that)
+                 I seems + to have nutted out the problem stopping my initial sometimes working attempt from + working all the time. it was that the Inv array part of the Merc Create struct , + which is a class and not that simple, was getting mangled through the RPC call, + so i fixed it by pulling out the inventory items into a dedicated struct to hold + them and the old struct, passing this, and then at the other end (the recieve) a + new create merc struct is initiated, and filled with values from the old struct, + (the bits that pass through ok), and the pulled out inventory items passed through + "outside" with it.
+
+     It seems to work out, so let me know if you have any experience + to comment on. The AI components are now set server side only. And are sent out + when the server creates them, which is generally after going from the tactical placement + gui, into the tactical "action" view. +

+ Current Development

+      Currently we have RoWa21 from the boards coding some changes + ! He's helped allready by mergin my oringinal code with thet latest 1.13 and NIV, + he will also be helping with other coding areas. this being said theres plenty to + be done and more help would be good. hopefully we can get coop working and the basic + combat and movement systems working and synchronized effectively.
+
+     You can contact me ( + haydent ) through the Bear Pit's Forum
+
+                + http://www.ja-galaxy-forum.com/board/ubbthreads.php?ubb=showflat&Number=165740&page=1 +
+
+
+

+ How it all Works

+ (well some of it)     Maybe you dont want to get your head under + the bonet and into the code itself just yet but are just interested to know how + i went about certain things, here's a brief run down. +
+
+     Well firslty i hope it does work, atleast some for you, ive barely + play tested, just loading it up on my spare computer which is a laptop with no screen + and a damaged faulty monitor output plug, enough though that i could test my code + worked, but iver christmas i hope to test it further, perhaps you can to and give + some feedback.
+
+     Aside from the Initial Server and Client components which i transfered + and modified from a "Chat Example" project that comes with RakNet. I used a function + of RakNet called RPC or Remote Procedure Calls to send and recieve my communication. + This is easy as it avoid having to package my data into packets, send it, then open + it at the other end and work out what to do with it. An RPC function simply executes + the function specified on the other specified remote clients, in this case all but + the sender.
+
+     The server computer lets each client/side know when its there + turn and the clients tell the server when they've finished they're's. When a client + give the fire weapon order, an inital command is sent out to all the other clients + telling them to do the same. Except when the other clients get to the bit of code + which applies the hit and damage, if the command came from another Client they stop. + Then when the Original client works out the hit damage taking into consideration + random factors, and if it happened, and sends it out to all the other clients which + then apply it hopefully in time to make it all seem connected.... You will notice + wont short-coming of this, is that a client having recieved an order to replicate + a weapon firing, may do so, but calculate that this particaular shot is going to + miss, and such show the difference in arc for the bullet animation to miss, but + just as you see the bullet whizzing past your head, you recieve the second command + from the attacking client (the one which has the bullet hitting and it's damages) + ... this is then applied and your on half health after breathing what was in this + case, a too eager sigh of relief ... and the same example vice versa .
+
+     As for the few other implemented commands, the are pretty simple + and straight forward...
+
+     So much of the time i've been looking through the code and i + would find things that were almost perfectly set up for multiplayer and often not + used at all, there was a definate effort by the original creators and they came + close in my opinion... id love to know what stopped them... ?
+
+      Now another of the new systems implemented is the 4 new + LAN teams (bteam: 6, 7, 8, and 9). How i did this was to have 4 new teams, 1 for + wach client, max at 4. when client 1 hires a merc for example it is sent out and + spawned on the other clients in team 6. client 2 in 7, client 3 in 8 and 4 in 9. + The server (client 1) handles the team order and sends the command to each client + to start any particualr teams turn, including the AI. There are a set number range + of ubID's for each team: 6(client 1, the server) is 120 to 126 (7 members), on any + client, their own mercs take slots 0 through 19 team 0, but when a client sends + out a new move for example, the merc's ID (ubID) is prefixed (added) with a corresponding + number to their client number (netbTeam) to match it with the network spawned merc + copies in the other games. for example any clients first merc will be ubID 0 and + team 0, if its client 1 (server) a prefix of 120 is added on to make its ubID 120 + which is the first clot for team 6 which is used to hold the "copies" of client + 1's team remotely. if its client 2, the prefix is 127, and so on... i hope this + makes things clearer ;)
+
+     The interupts are working again for what i have tested... and + are only calculated by the merc (and owners computer) that is moving because they + have the most up-to date info regarding merc (namely theirs) positions.
+
+

+ RakNet UDP Networking

+     If your interested in more information on the free C++ UDP based + network library used in this project follow this link for where there is a forum, + doxygen manual and you can download it yourself.
+         http://www.rakkarsoft.com/
+
+

+ Changes:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ b3 -- + Well i cant even remeber everything i did today...
+ * menu changed (MP has its own save game directory)
+ * bonus added towards interrupt if your has his weapon ready
+ * various message tweaks
+ *  Interrupt fix
+  and some more...
+ +
+ b2 -- + + you can now return to real time if all active lan teams request so within one round + of turns
+ NIV actually was working, it just doesnt operate @ 640 res. ;)
+
+ +
+ b1 -- + + lots of help has brough about some further progress !
+
+ no more interupt lockups
+ interrupt reworkng
+ updated source to include NIV 
+ other changes: save in turnbased when not turn, stay in game after death,  etc + etc
+
+ this is initial intermediatary release, just to put something playable out there + again...
+
+ still needs more work on sync and interrutps etc etc.
+
+ +
+ rev. 02022008 --
+ (prebeta post final) +
+ I realised i got my exe's mixed up after doing some 3 player LAN testing today :), + and for the last few releases theres been some test code in there that would have + been making it not play well and wasnt meant to be in there... so while i was at + it again i have made some other quick fixes :
+
+ * removed test code that shouldn't have been released (causing among other things + blue 'update' text and sliding merc movement)
+
+ * fixed loss of UI lock during interrupt fter being shot at
+
+ * removed some 'non-ready' MERC profiles
+
+ * fixed new MERC profiles tactical selection and face animation
+
+ * disabled roof climbing (temp)
+
+ * prevented 3-sec pausing of repo merc movement apon it being spotted by your merc
+
+ +
+ rev. 28012008 --
+ (prebeta final)   +
+    This is just adding the prerelease changes. nothing new. This is the + final pre-beta, after this it will be beta and feature hopefully a upgraded network + synch system. this will however require more bandwidth than before, (~ 2kbs/client) + , but i think its worth it even though it will make playing any version past + this over dialup obsolete. Hopefully it will open up the way for further un-implemeted + game state synchro on a more regular basis.
+
+ * fixed door ani los issue/bug
+
+ * fixed bobby rays crash
+
+ * synced up bandage health levels
+
+ * added ~15 new game mercs to MERC
+
+ * synced up doors!
+
+ * synced up burst fire sounds
+
+ * fixed death messaging
+
+ * re-enabled intterupts
+
+ * allowed disabling of hired name display
+
+ * started using a dvorak keyboard
+
+ * enabled the rest of the MERC bios
+
+ * added begining kit bag loadout, an array in the ini for free stuff !
+
+ * disabled medical deposit costs
+
+ * enabled the disabling of morale events
+
+ * server can now manually end a clients turn or start a clients turn in realtime + or turnbased (bound to 'Alt+E'), making the previous ini setting and command 'START_TEAM_TURN' + obsolete .
+
+ * removed the ini setting for testing interrupts now they are happening.
+
+ * there is no more bobby rays crate (for now), items are dumped in the middle of + the sector.
+
+ * fixed crash from death animation being tried to apply to allready dead soldier
+
+ * disabled death messaging
+
+ * Interrrupt syncronisation of interupted merc's location apon being interrupted
+
+ * Kicking/Removal of a Clients team of Mercs, bound to 'Alt+K' (this doesnt disconnect + the client, allowing them to spectate)
+
+ +
+ rev. 17012008 -- +  ok , not alot of changes but some that will hopefully rectify a few of the + main issues popping up during testing so far... unfortuanately/fortunately this + is just a cheap hack/fix and a pretty raw solution, but ive ended going with it + for now as it is quick, it is accurate, and by the process of getting this far i + have learnt more that i can use later to upgrade or re-implement systems of synchronisation. + ie Dont get upset if it seems ive just patched some problems only to create some + more, (which may be the case as ive felt before), the aim is that this is atleast + a more evenly playable variant than before.
+
+ * there is now a regular update sent out about every 2 seconds by the owner of each + merc with stats on location, health and breath, this should help with the related + issues.
+
+ * when you assign a new destination for your merc, the calculated path is now sent + out as well as the destination grid, as to your mercs location. this way all merc + replications start their path from the same grid and follow the same path. (though + fences "work", they have not been refined)
+
+ * There is a grid movement synchronisation system akin to what is known as "lock-step" + synchronisation, where no merc can advance further than the current grid with out + all the other replications of themselves being ready to do so as well. How i got + this to run smoothly and avoid the pause between the time of arrival, sending out + such, awaiting all others to do so, recieving the go-ahead and continuing, is by + requesting the sector in advance. So it is all happening in the background while + traversing a grid, and if all are in sync and ready, the next grid is moved onto + seemlesly ("nearly"), depending on ping... :)
+
+ * stop commands are now synched further, such that when it is sent out it also contains + and thus applies the settings of position and direction so all replications are + stopped in the same grid.
+
+ * The main Game engine no-longer automatically pauses game play while the Main Game + Window is not selected (or backgrounded/minimized). i havent got as far as blocking + game pausing altogether, but this will enable you to chat in irc etc. while the + game keeps running and updating graphics happily including network traffic. Due + to this the implementation of a chat system has been relegated in rank of things + to do as irc is an excellent system and the few times ive used it in my experience + ive been rather impressed. This too along with the fact that the implementation + of a chat system would hinder game play and game display more than using irc itself, + thus potentially bringing up further problems. You can quit easily fit a windowed + game of ja2 at 1024 along side a resized small window of irc with todays standard + 1280 res, but if you ahve an extra monitor your set ;)
+
+ * I also fixed a problem which im not sure when or if it had come up before, where + the servers mercs were being autoplaced apon ui unlock without selecting so.
+
+ * Also im now back to distibuting debug exe builds, as after packing it isnt much + size difference, and by running a debug exe you get a few more stats on errors and + such, and it is further tested, by the community which i owe a big thankyou to for + the feedback so far both through the forum thread and the ja2 1.13 jagzilla bugzilla + bug tracking site.
+
+ * I also disabled a mercs reproduction checking for enough AP's before making moves + etc, as this is calculated by the owners game instance and results applied from + there.
+
+ All these updates should work just and well (and have been slightly tested so) to + work with both real-time and turnbased.
+
+ Happily all this synchronisation hasnt increased network traffic much at all and + it still quite happily trots along at under 1kb/s in idle tactical view.
+
+ Please report any problems you have as i rely on this mostly, due to any spare time + i have being spent on resting and doing other things than coding, leaving little + time for testing than that is necessary to check my changes "work" atleast...
+
+ regards,
+
+ Hayden.
+
+
+ +
+ rev. 11012008 -- + * disabled hourly updates - causing breath loss on insertion on clients pc, but + not happening on remote merc duplicates, leading to unsync due to differing ani + speeds. this will have been accounting alot for some of why one merc has been faining + while the other still standing... this is big fix, you stil will get "slight unsyncs" + (a few grids), so someday i will still implement actualy updating of merc params + and traversal. (as there is atleast a small delay between when your werc starts + running and your merc replication starts running, throwing things like interrupts + and first time spots out of allignment between pc')
+
+ * There was also some code which made enemy mercs anispeed different to a player's + (now overidden)
+
+ * coop discription in documentation fixed, (was around the wrong way)
+
+ * something i forgot to mention last time, you can now load game from tactical placement + gui, rather than only being able to quit game.
+
+ * new spectator mode enabled once you are wiped out :)
+
+ * fixed up death sends, to not create unkillable merc...
+
+ * added in cheat testing function to the ini, to enalble showing of all mercs to + enable testing
+  
+ * fixed panel shading while in opponent turn
+
+ * fixed another possible unsyncer of a problem, where a client replicating a mercs + move would pause the merc when it spotted another enemy merc (possibly there's) + even though the merc being moved wasnt in their control and was a replication... + so now only stops if ordered from moving owner...
+  
+ * added manual start for turn based mode, if the server want to start off a team + straight up without realtime, might be handy for testing...
+
+ * add clients specified names to the turn title bar :)
+
+ * there will be still slight out of sync until proper game clock animation syncing + between clients is implemented...
+
+ * fixed a bug brought on by the  screen locking function i started using, (to + enable moving screen while not turn). prob was it wasnt unlocking prop for interrupts, + so that is fixed now.
+
+ * fixed a bug where interupt timed turn was going too quick as to the turn after + that. its a quick hack that makes it the same time as you get for a "normal" turn... + i cant figure out any better right now.
+
+ * first time using release build rather than debug, if you have issues let me know + and i can revert
+ +
+ rev. 08012008 -- + We got quite a few good ones here... (where to start hmmm...)
+
+ * You can now move your screen around while its not your turn.
+ * The bottom right mini 'radar' map view of the selected sector from map view screen + is now always active so you can see preview before play.
+ * Bullet trajectory is now replicated, and follows same path on clients as on senders, + as to synced are bullet hits, bullet misses, bullet hit structures and bullet hit + windows.
+ * Death's are networked as is the info relating to such, ie killer and team numbers..
+ * more INI parameters: ability to specify alliances and factions, to enable 2v2 + or 1v3, and the specification of a Player name.
+ * We got a bugzilla at http://ja2.discusrock.org/bugzilla/
+ * When all your mercs are killed you stay in the game, especially good for server + to avoid droppouts for remaining players.
+ * Interrupts work, (they did before but they do now for real...)
+ * Change of state is replicated, ie blasted away, shrugging, animations
+ * Dont expect anything from coop, i havent looked at it yet...
+
+ +
+ rev. 02012008 -- + A heap more requested change additions:
+
+ * Timed Player Turns is now an option again, and the time allowed is adjustable + from the ini ! (TIMED_TURN_SECS_PER_TICK)
+ * More externalised ini server variables: MAX_MERCS, STARTING_BALANCE, TIMED_TURN_SECS_PER_TICK, + DISABLE_BOBBY_RAYS, DISABLE_AIM_AND_MERC_EQUIP
+ * M.E.R.C. hires now incur nominated daily salary apon hire.
+ * All Game Options Screen choices are now only taken into effect by the server, + and sent to the clients from there...
+ *  1 day contract length for AIM is now only option
+
+ +
+ rev. 02012008 -- + Quite alot of new changes:  
+
+ * Bobby rays order are now delivered straight away into your sector, and can be + accessed before loading level, to allow time to dish out weaps befroe match...
+ * There is now a 4 step, staged launching system with "ready" check points at: all + clients connected, all clients ready for load, all clients loaded, and all clients + placed and ready for battle... there is also a manual server overide feature is + someone drops or goes to sleep... +
+ * All the server settings are now set only by the servers ini and sent out + to the clients apon connection, including the dropzone, which needs to be set before + starting the server.
+ (there is however a small bug where a client (not the server) cant load a saved + game made once in tactical...)
+
+
+ +
+ rev. 31122007  -- + We now have slightly tested Interrupt system working. Tested only so far with 2 + players in Deathmatch, no AI. Needs for testing and no doubt modification...
+
+ it has new ini setting: "INTERRUPTS" to disable, enable and always (extreme for + testing) it.
+ The old "NET_DIVISOR" is now "DAMAGE_MULIPLIER" and is "decimal" (float), so 0.5 + = half damage, 2 = double.
+ Added basic in game help display
+ +
+ rev. 30122007 -- +  CoOp has been fixed ... AI is now propogated to the clients where spawned, + though only slightly tested, also added new dev notes on lan team turn implementation + and coop. also i forgot to mention the grid coordinate display script bound to key + '5' was fixed last release, as the X and Y where around the wrong way. Interupts + are on their way.
+
+ +
+ rev. 24122007 -- + bug fixes: disabled interrupts to avoid lock-up, fixed crash bug of clicking in + "hashed" area while in tact place gui.
+
+ +
+ rev. 22122007 -- + small adjustment to fix team 4 being treated as PLAYER_PLAN member and getting a + green shader ! , there are now 7 slots per LAN team, but 1 creature and 1 player_plan.
+
+ +
+ rev. 21122007 -- + initial pre beta release
+
+ +
+
+
+
+ :)
+
+ Page Created with NVU
+
+ eof
+
+ +