Post by Xarious on Nov 14, 2016 15:49:28 GMT -5
If you're as much of a JKA history nut as I am, demos are an excellent way to relive the past. If you're just wanting demos to show off you awesome skills with a lightsaber, that works too. Here is a quick and simple explanation of how demos work.
So, first thing is first, unless you have something like OpenJK that seems to no longer need it, you will have to set g_synchronousclients to a value of 1 (If you type /g_sync in the console, this is the first thing that comes up, so don't feel like you need to remember that word). Then, you can begin your demo. To start recording, enter the console and type /record. To end a recording, type /stop. Remember to turn g_synchronousclients off once you've finished, because it gives some really weird lag effects.
To view the demo, open your JA Multiplayer and go to Play > Demo in the menu screen. You can select the demo you wish to view there. Please note that the protocol number, which is listed at the end of every demo recording's name by default, determines which version of the game it was taken in (usually 25 for 1.00 or 26 for 1.01, however some mods run on theoretical "Protocol 27." Those mods may or may not even allow for demos, depending). You must playback a demo in the same protocol it was taken, unless you have mods that allow otherwise, such as jaMME.
If you really want to skip over all the commands to make a demo, you can easily script it. For example, here is a demo script I referenced in the Modern Scripting post:
Though you could do it in other ways, if you're looking for a pre-written script, this may be useful for you. I'd personally compact it some and just set waits:
Hopefully this helps anyone who wants to know how it works! Questions? Comments? Want me to Demo-nstrate? Just pester me below!
So, first thing is first, unless you have something like OpenJK that seems to no longer need it, you will have to set g_synchronousclients to a value of 1 (If you type /g_sync in the console, this is the first thing that comes up, so don't feel like you need to remember that word). Then, you can begin your demo. To start recording, enter the console and type /record. To end a recording, type /stop. Remember to turn g_synchronousclients off once you've finished, because it gives some really weird lag effects.
To view the demo, open your JA Multiplayer and go to Play > Demo in the menu screen. You can select the demo you wish to view there. Please note that the protocol number, which is listed at the end of every demo recording's name by default, determines which version of the game it was taken in (usually 25 for 1.00 or 26 for 1.01, however some mods run on theoretical "Protocol 27." Those mods may or may not even allow for demos, depending). You must playback a demo in the same protocol it was taken, unless you have mods that allow otherwise, such as jaMME.
If you really want to skip over all the commands to make a demo, you can easily script it. For example, here is a demo script I referenced in the Modern Scripting post:
bind <key> "vstr recordscript"
set recordscript "vstr recscr"
set recscr "g_synchronousClients 1;set recordscript vstr recscr2;echo ^7Demo ^3sync1"
set recscr2 "record;set recordscript vstr recscr3;echo ^7Demo ^2started"
set recscr3 "g_synchronousClients 0;set recordscript vstr recscr4;echo ^7Demo ^3sync0"
set recscr4 "stoprecord;set recordscript vstr recscr;echo ^7Demo ^1stopped"
set recordscript "vstr recscr"
set recscr "g_synchronousClients 1;set recordscript vstr recscr2;echo ^7Demo ^3sync1"
set recscr2 "record;set recordscript vstr recscr3;echo ^7Demo ^2started"
set recscr3 "g_synchronousClients 0;set recordscript vstr recscr4;echo ^7Demo ^3sync0"
set recscr4 "stoprecord;set recordscript vstr recscr;echo ^7Demo ^1stopped"
bind <key> "vstr recordscript"
set recordscript "vstr recscr"
set recscr "g_synchronousClients 1; wait 2; record; wait 2; g_synchronousClients 0; set recordscript vstr recscr2; echo ^7Demo ^2Started"
set recscr2 "stoprecord; set recordscript vstr recscr; echo ^7Demo ^1Stopped"
set recordscript "vstr recscr"
set recscr "g_synchronousClients 1; wait 2; record; wait 2; g_synchronousClients 0; set recordscript vstr recscr2; echo ^7Demo ^2Started"
set recscr2 "stoprecord; set recordscript vstr recscr; echo ^7Demo ^1Stopped"
Hopefully this helps anyone who wants to know how it works! Questions? Comments? Want me to Demo-nstrate? Just pester me below!