Hoe maak ik een soort opstart bestand voor het spel Call of Duty?
Bij Unreal Tournament is het ucc.init en bij Call of Duty?
Hoe maak ik een soort opstart bestand voor het spel Call of Duty?
Bij Unreal Tournament is het ucc.init en bij Call of Duty?
Bij CoD zit (standaard) geen 'script' behalve de gewoone executable, je zou bijvoorbeeld onderstaand init script kunnen gebruiken (let wel, deze draait op een RH9 box, voor andere linux OS's zal het redelijk overeen komen).
je kan dan dmvCode:#!/bin/bash # # source function library . /etc/rc.d/init.d/functions lockfile=/var/lock/subsys/cod12 COD_OPTS="+set net_IP {ip} +set net_port {port} +set logfile logfile.log +set ttycon 0 +set dedicated 2 +exec game.cfg" RETVAL=0 start() { echo -n $"Starting COD12: " touch "$lockfile" && success || failure screen -A -m -d -S cod12 su - cod12 -c "/home/games/cod12/cod_lnxded ${COD_OPTS}" & RETVAL=$? echo } stop() { echo -n $"Stopping COD12: " rm -f "$lockfile" && success || failure local ppid=`screen -list | grep cod12 | awk -F . '{ print $1 }' | sed -e s/.//` if [ -z "${ppid}" ] ; then echo "Lost screen session" else local cpid=`pstree -p ${ppid} | sed -e 's:^.*cod_lnxded(::' -e 's:).*$::'` kill ${ppid} ${cpid} || echo $? "Could not kill cod12" fi RETVAL=$? echo } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart|force-reload) restart ;; reload) ;; condrestart) [ -f "$lockfile" ] && restart ;; status) if [ -f $lockfile ]; then echo $"enabled." RETVAL=0 else echo $"disabled." RETVAL=3 fi ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}" exit 1 esac exit $RETVAL
/etc/init.d/[naam] start
en
/etc/init.d/[naam] stop
de server kunnen starten/stoppen.
Met 'screen -r cod12' kom je in het console van het spel.
Verseiste (voor voorbeeld).
- Het programma 'screen' is beschikbaar
- Een user (cod12 in het voorbeeld) is bekend op het systeem.
Bedankt!
K laat maar, gefixed
Just what i needed
Alleen bij stop krijg ik :
./startcsrmw.sh: kill: (18275) - No such process [ OK ]
Dit is mijn aangepaste stopfunktie :
stop() {
echo -n $"Stopping CSRMW: "
rm -f "$lockfile" && success || failure
local ppid=`screen -list | grep csrmw | awk -F . '{ print $1 }' | sed -e s/.//`
if [ -z "${ppid}" ] ; then
echo "Lost screen session"
else
local cpid=`pstree -p ${ppid} | sed -e 's:^.*hlds_run(::' -e 's.*$::'`
kill ${ppid} ${cpid} || echo $? "Could not kill CSRMW"
fi
RETVAL=$?
echo
}
Wat is er verkeer ?
Kan ik dit script door een website laten uitvoeren ?
Laatst gewijzigd door xtreme2490; 22/12/04 om 11:39.
Lijkt me niet erg, het stop gedeelte doet namenlijk een:Origineel geplaatst door xtreme2490
Just what i needed
Alleen bij stop krijg ik :
./startcsrmw.sh: kill: (18275) - No such process [ OK ]
Oftewel een kill op het 'screen' process en een kill op het game process.Code:kill ${ppid} ${cpid}
Aangezien jij een fout melding krijgt van maar 1 process (waarschijnlijk de game, aangezien deze als 2de wordt gekilled) lijkt het me in jouw geval dat deze vanzelf onderuitschoot op het moment dat de screen sessie een kill kreeg.
Je zou bv eens kunnen kijken door in het stop gedeelte alleen te zetten "kill ${ppid}" (dus zonder de 2de parameter) en even controleren of de game zelf dan ook nog vanzelf wordt gestopt.
ok bedankt .
Kan ik dit script uitvoeren op een website met php bv.
Momenteel probeer ik het met :
<?php
$output=shell_exec ('/bin/sh /game/csrmw/startcsrmw.sh start');
echo "$output";
?>
Als output krijg ik :
Starting CSRMW: [ OK ]
Maar er wordt geen screen gestart en de gameserver draait ook niet ?
Iemand een oplossing ?