Advertisement
Page 1 of 1
Run Demo Script
making a script that allows automatic demostarting
#1
Posted 02 July 2010 - 08:07 AM
Hey Guys,
Is it possible to make a script, that automatically opens demos, and starts converting them (to .avi)
and when that demo is done, automatically moves on to the next one.
It doesn't matter if i have to type in the names of the demos manually, but my imagination says it should be like this:
/demo demo1 // .dm_68 is automatically added
/wait 10 // Loading time (dunno if it's necessary and/or possible
/video
//when this demo has ended, the scripts knows it, and automatically moves on to the next one.
I've never heard anyone about it, so i think it's not possible...but maybe, very maybe... it is.
You guys have any idea?
Thanks in advance,
X-RaY
Is it possible to make a script, that automatically opens demos, and starts converting them (to .avi)
and when that demo is done, automatically moves on to the next one.
It doesn't matter if i have to type in the names of the demos manually, but my imagination says it should be like this:
/demo demo1 // .dm_68 is automatically added
/wait 10 // Loading time (dunno if it's necessary and/or possible
/video
//when this demo has ended, the scripts knows it, and automatically moves on to the next one.
I've never heard anyone about it, so i think it's not possible...but maybe, very maybe... it is.
You guys have any idea?
Thanks in advance,
X-RaY
#3
Posted 02 July 2010 - 12:29 PM
X-RaY, on 02 July 2010 - 08:07 AM, said:
Is it possible to make a script, that automatically opens demos, and starts converting them (to .avi)
and when that demo is done, automatically moves on to the next one.
and when that demo is done, automatically moves on to the next one.
You can't do this with Q3 scripting since Q3 scripting lacks iteration statements.
But you can do this with cmd.exe (Windows) or sh (Linux/OSX).
Assume we're in the directory where UrbanTerror is installed (e.g.: C:\Program Files\UrbanTerror or /usr/share/games/urbanterror).
Now make a text file with each new line contain the filename of demo you wish recorded entirely. Something like this:
2010_6_28_21_43_44__8__7it_8__1nexu_ut4_tohunga_b8_CTF_Red_vs_B
2010_6_28_22_26_10__8__7it_8__1nexu_ut4_abbey_CTF_ChuCheuX_vs_P
2010_6_22_22_14_24__8__7it_8__1nexu_ut4_tohunga_b8_CTF_Red_vs_B
2010_6_22_22_30_48__8__7it_8__1nexu_ut4_tohunga_b8_CTF_Blue_vs_
2010_6_22_23_14_26__8__7it_8__1nexu_ut4_village_CTF_Red_vs_Blue
And let's name the text file demoplaylist.txt.
Windows: dm2avi.bat
@echo off
for /F "tokens=*" %%f in ('type demoplaylist.txt') do start /WAIT ioUrbanTerror.exe +exec somemoviecapture.cfg +demo %%f +video
C:\Program Files\UrbanTerror> dm2avi.bat
Linux/OSX: dm2avi.sh
#!/bin/sh
while read line
do
./ioUrbanTerror +exec somemoviecapture.cfg +demo $line +video
done < demoplaylist.txt
(change ioUrbanTerror to your UrbanTerror binary for your platform filename or wrapper start up script)
Make sure this script is executable:
chmod +x dm2avi.sh
./dm2avi.sh
So this solves the problem on iteration statement.
But now we run into the problem that UrbanTerror doesn't quit after the demo is done, neither does UrbanTerror has a command to quit when the demo playback is completed.
However, you could 'hack' around this problem by running a script in the background (one i can't be arsed to write now) that monitors qconsole.log (\logfile 2) and look for the string "frames to videos". Once you found this, you could issue a kill command.
Windows:
taskkill /FI "IMAGENAME eq ioUrbanTerror.exe"
Linux/OSX:
killall ioUrbanTerror
(change name to exact spelling)
Hope this gives you some idea.
#4
Posted 02 July 2010 - 12:51 PM
On Linux you could 'tail' the logfile.
#5
Posted 02 July 2010 - 03:48 PM
Nexu, on 02 July 2010 - 12:29 PM, said:
Linux/OSX: dm2avi.sh
(change ioUrbanTerror to your UrbanTerror binary for your platform filename or wrapper start up script)
#!/bin/sh
while read line
do
./ioUrbanTerror +exec somemoviecapture.cfg +demo $line +video
done < demoplaylist.txt
(change ioUrbanTerror to your UrbanTerror binary for your platform filename or wrapper start up script)
Ok, if i get it correct, it should be something like this:
#!/bin/sh
while read line
do
cd ~/Games/Favorites/UrbanTerror
  ./ioUrbanTerror.app +exec somemoviecapture.cfg +demo $line +video
done < demoplaylist.txt
Don't get it entirely though.
the 'while read line'... does it automatically knows what 'read line' is?
if it does, how does he know here to get it from?
- since 'done < demoplaylist.txt' is at the end of the script.
then after the ./ioUrbanTerror.app,
well, that's basically something i don't understand at all.
but the 'somemoviecapture' should be like: q3config.cfg?
the killall ioUrbanTerror is something i'll have to worry about after this is done...
a killall ioUrbanTerror is atm no use, as long as this first script isn't working.
PS: platform is Mac OSX
This post has been edited by X-RaY: 02 July 2010 - 03:48 PM
Advertisement
#6
Posted 02 July 2010 - 04:06 PM
X-RaY, on 02 July 2010 - 03:48 PM, said:
Ok, if i get it correct, it should be something like this:
#!/bin/sh
cd ~/Games/Favorites/UrbanTerror
while read line
do
  ./ioUrbanTerror.app +exec somemoviecapture.cfg +demo $line +video
done < demoplaylist.txt
In this case, demoplaylist.txt should be in ~/Games/Favorites/UrbanTerror.
X-RaY, on 02 July 2010 - 03:48 PM, said:
Don't get it entirely though.
the 'while read line'... does it automatically knows what 'read line' is?
if it does, how does he know here to get it from?
- since 'done < demoplaylist.txt' is at the end of the script.
the 'while read line'... does it automatically knows what 'read line' is?
if it does, how does he know here to get it from?
- since 'done < demoplaylist.txt' is at the end of the script.
"read line" is the command argument for the while loop command. It reads every line from input file and stores the line in a variable called $line.
"< demoplaylist.txt" act as input file. As "read line" command usually returns the command exit value 0 (equals true), it keeps running till the command "read line" exit value that is non 0 (like EOF).
X-RaY, on 02 July 2010 - 03:48 PM, said:
then after the ./ioUrbanTerror.app,
well, that's basically something i don't understand at all.
well, that's basically something i don't understand at all.
You can 'debug' a shell script if you do
bash -x scriptname.sh
X-RaY, on 02 July 2010 - 03:48 PM, said:
but the 'somemoviecapture' should be like: q3config.cfg?
q3config.cfg is what it will read anyway, but e.g.: http://forums.urbant...config-v2-beta/
or make your own.
#7
Posted 02 July 2010 - 06:03 PM
ok, Thanks for your help!
I'll have a look into it.
I'll have a look into it.
Page 1 of 1
1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users
Advertisement