Komm in unsere Facebook Gruppe

Willkommen Gast
Du bist nicht angemeldet, um alle Funktionen des Forums zu nutzen musst du dich registrieren und anmelden. Die Registrierung ist natürlich völlig kostenlos und kann jeder Zeit wiederrufen werden.

Aktuelle Zeit: 24. Mai 2012 18:21

[Frage] Source *.nav Files

Das Forum zum HL Server und seinen Mods wie Counter Strike.


[Frage] Source *.nav Files

Beitragvon MikeRivle am 29. Aug 2007 14:10

Wie das Thema schon sagt ich wollt mal wissen ob es eine schnellere Methode gibt um für die auf dem Server liegenden Maps *.nav Files zu erstellen?

das es manchmal wirklich lange dauert bis diese erstellt worden sind ( wenn man zb eine neue map auf den server legt ) und diese dann mit Bots zu spielen zb. Bei manchen sind sie ja schon dabei, aber bei anderen sind sie nicht dabei und man muss diese dann erstellen lassen ( könnte man auch lokal machen ) aber dann für einige Maps *.nav Files zu erstellen ist schon ein wenig hart.

währe um hilfe oder tipps dankbar !
Benutzeravatar
MikeRivle
Mitglied
Mitglied
 
Beiträge: 336
Registriert: 30. Jul 2005 11:44
Wohnort: Bayern

Re: [Frage] Source *.nav Files

Beitragvon sbr2d2 am 29. Aug 2007 18:01

ich habe für ca 250 maps mal einen server laufen lassen mit mp_timelimit 5 und ein passwort davor gemacht.
dann noch die bots in die cfg sodaß diese dann halt spielen sollen.
dann alle maps ins mapcycle und los gehts^^.

gibt vllt noch andere wege,aber der war auch ok :-)
sbr2d2
Mitglied
Mitglied
 
Beiträge: 299
Registriert: 28. Sep 2005 22:25

Re: [Frage] Source *.nav Files

Beitragvon MikeRivle am 29. Aug 2007 19:00

das problem is halt das daß erstellen von nav files sehr lange dauert ( wenn die maps groß sind ) und das ist kacke
Benutzeravatar
MikeRivle
Mitglied
Mitglied
 
Beiträge: 336
Registriert: 30. Jul 2005 11:44
Wohnort: Bayern

Re: [Frage] Source *.nav Files

Beitragvon sbr2d2 am 29. Aug 2007 19:14

hmm,also bei unserem dauern sie so zwischen 30 sec.- 4mins.

ich wüsste aber auf die schnelle keinen anderen weg.

du kannst den sserver ja über nacht so laufen lassen,weil ob der nun vor sich hinidelt oder nav. files produzieret ist doch egal oder??
sbr2d2
Mitglied
Mitglied
 
Beiträge: 299
Registriert: 28. Sep 2005 22:25

Re: [Frage] Source *.nav Files

Beitragvon MikeRivle am 30. Aug 2007 14:36

könnt ich auch machen :roll: währ ne idee

aber wenn du schreibst 250 maps haste da vlt. nich paar nav files für mich ? :wohow:
Benutzeravatar
MikeRivle
Mitglied
Mitglied
 
Beiträge: 336
Registriert: 30. Jul 2005 11:44
Wohnort: Bayern

Re: [Frage] Source *.nav Files

Beitragvon sbr2d2 am 30. Aug 2007 15:04

schreib mal bei gelegenheit über icq

228254027
sbr2d2
Mitglied
Mitglied
 
Beiträge: 299
Registriert: 28. Sep 2005 22:25

Re: [Frage] Source *.nav Files

Beitragvon MikeRivle am 31. Aug 2007 14:07

Danke an sbr2d2 habe ein paar bekommen

fals ihr anderen auch welche haben solltet bitte mir bescheid sagen werde das ganze pack auch zum dl anbieten !
Benutzeravatar
MikeRivle
Mitglied
Mitglied
 
Beiträge: 336
Registriert: 30. Jul 2005 11:44
Wohnort: Bayern

Re: [Frage] Source *.nav Files

Beitragvon DeaD_EyE am 1. Sep 2007 18:52

Ich hab dafür eine Anleitung: [Linux] Maps Nav-Generator

Ich habe 3 Scripte geschrieben, mit denen man Nav-Dateien erstellen, komprimieren (tauschen) und zurückkopieren kann.

1) Nav-Dateien erstellen
Das Script startet den Server mit einer bestimmten Map, nachdem die Nav-Datei generiert wurde, wird die Map neugeladen. Durch einen kleinen Trick wird der Server nach dem Laden der neuen Map beendet. In der Schleife wird dann die nächste Map abgearbeitet.

Das Script muss in das gleiche Verzeichnis, in dem sich srcds_run befindet.

navgen.sh
Code: Alles auswählen
#!/bin/bash
game=cstrike
hostname="GEN-Nav-Files"
port=27015
rcon=rconpasswort
nice=19

echo -e "nav_generate\nservercfgfile \"s_restart.cfg\"" > ./$game/cfg/server_nav.cfg
echo -e "_restart" > ./$game/cfg/s_restart.cfg
if [ ! -f  navfiles.txt ]; then echo "HLSW: sv_cheats 1 && nav_check_file_consistency ---> navfiles.txt" && exit 1; fi
cat navfiles.txt | expand | tr -s ' ' | grep "Missing nav file for" | cut -d ' ' -f 6 |  sed s/.bsp//  > mapcycle_nav.txt
cat navfiles.txt | expand | tr -s ' ' | grep "is built from an old version of the map" | cut -d ' ' -f 6 | sed s/.bsp//  >> mapcycle_nav.txt

for map in $(cat mapcycle_nav.txt); do
nice -n $nice ./srcds_run -game "$game" -port $port -maxplayers 2 -norestart +map $map +servercfgfile server_nav.cfg +sv_password "xx" +sv_cheats 1 +rcon_password "$rcon" +hostname $hostname
done
echo -e "Fertig\nLösche erstellte Dateien: server_nav.cfg, s_restart.cfg und mapcycle_nav.txt"
rm ./$game/cfg/server_nav.cfg ./$game/cfg/s_restart.cfg ./mapcycle_nav.txt
exit 0


Die beiden Dateien server_nav.cfg und s_restart.cfg werden automatisch generiert.

erver_nav.cfg
Code: Alles auswählen
nav_generate
servercfgfile "s_restart.cfg"



s_restart.cfg
Code: Alles auswählen
_restart


Vorgehensweise:
Zuerst muss über HLSW sv_cheats 1 und nav_check_file_consistency ausgeführt werden. Alles nach dem Befehl "nav_check_file_consistency" muss kopiert werden die letzte Zeile "$UHRZEIT HLSW Information: Verbindung getrennt" muss ausgelassen werden. Der Inhalt muss dann in der Datei "navfiles.txt" gespeichert werden, die dann zusammen mit dem Script zum Gleichen Ort wie "srcds_run" kopiert wird.

Der Server wird mit nice -n $nice ./srcds_run -game "$game" -port $port -maxplayers 2 +map $map +servercfgfile server_nav.cfg +sv_password "xx" +sv_cheats 1 +rcon_password "$rcon" +hostname $hostname gestartet.

Mit "nice" wird dem Prozess eine Nettigkeit zugeordnet. Je höher der Wert (-20 - 19), desto niedriger ist die Priorität.

Die "servercfgfile" wird nach dem Mapchange geladen. Da in der server_nav.cfg die Variable servercfgfile neu gesetzt wird, wird die Datei s_restart.cfg nach Beendigung der Generierung geladen (Mapchange). Da der Inhalt einfach nur "_restart" ist, wird der Server einfach beendet. Nach Beendigung wird die For-Schleife weiter abgearbeitet.

Die beiden Echo-Befehle am Anfang vor der Schleife generieren nur die beiden Dateien, die nach der Abarbeitung der Schleife wieder gelöscht werden.

Das ganze kann man noch im Screen starten.

Ich kann nicht für Fehlerfreiheit garantieren. Maps, die den Server zum abstürzen bringen werden nicht nocheinmal abgearbeitet. Es sollte nicht vergessen werden die Datei navfiles.txt wieder zu entfernen.

2) Nav-Dateien kopieren und komprimieren
compress_nav_files.sh: Das Script ist ein bisschen einfacher aufgebaut. Es kopiert die ganzen nav-Dateien in ein Temp-Verzeichnis das vorher erstellt wird. Nachdem alle Dateien kopiert worden sind, wird vom allen bsp-Dateien eine md5summe erstellt. Diese Dateien dienen später zur Überprüfung beim Zurückkopieren, ob es sich auch um die gleiche Map handelt.

Update: Ich habe noch ein paar Bugs entfernt.
Code: Alles auswählen
#!/bin/bash
pwd=`pwd`
if [ -z "$1" ]; then echo "$0 [directory from css maps]" && exit 1; fi
if [ ! "`echo $1 | tail -c 2`" = "/" ]; then path=`echo "${1}/"`; else path=$1; fi
if [ ! -d nav_files_temp ]; then mkdir nav_files_temp; else echo "removing old nav_files_temp directory" && rm -R nav_files_temp && mkdir nav_files_temp; fi
echo "copy nav files"
cp ${path}*.nav nav_files_temp/

echo "delete standard valve-navfiles from nav_files_temp directory"
rm nav_files_temp/cs_assault.nav
rm nav_files_temp/cs_compound.nav
rm nav_files_temp/cs_havana.nav
rm nav_files_temp/cs_italy.nav
rm nav_files_temp/cs_militia.nav
rm nav_files_temp/cs_office.nav
rm nav_files_temp/de_aztec.nav
rm nav_files_temp/de_cbble.nav
rm nav_files_temp/de_chateau.nav
rm nav_files_temp/de_dust2.nav
rm nav_files_temp/de_dust.nav
rm nav_files_temp/de_inferno.nav
rm nav_files_temp/de_nuke.nav
rm nav_files_temp/de_piranesi.nav
rm nav_files_temp/de_port.nav
rm nav_files_temp/de_prodigy.nav
rm nav_files_temp/de_tides.nav
rm nav_files_temp/de_train.nav

echo "make a md5sum from all bsp files"
cd $path
for bsp in $(ls *.bsp); do
md5sum $bsp > $pwd/nav_files_temp/${bsp}.md5
done
cd $pwd

echo "delete all created md5sum from standardmaps"
rm nav_files_temp/cs_assault.bsp.md5
rm nav_files_temp/cs_compound.bsp.md5
rm nav_files_temp/cs_havana.bsp.md5
rm nav_files_temp/cs_italy.bsp.md5
rm nav_files_temp/cs_militia.bsp.md5
rm nav_files_temp/cs_office.bsp.md5
rm nav_files_temp/de_aztec.bsp.md5
rm nav_files_temp/de_cbble.bsp.md5
rm nav_files_temp/de_chateau.bsp.md5
rm nav_files_temp/de_dust2.bsp.md5
rm nav_files_temp/de_dust.bsp.md5
rm nav_files_temp/de_inferno.bsp.md5
rm nav_files_temp/de_nuke.bsp.md5
rm nav_files_temp/de_piranesi.bsp.md5
rm nav_files_temp/de_port.bsp.md5
rm nav_files_temp/de_prodigy.bsp.md5
rm nav_files_temp/de_tides.bsp.md5
rm nav_files_temp/de_train.bsp.md5

echo "compress..."
cd nav_files_temp
tar -czf nav_files.tar.gz *.nav *.bsp.md5
cd $pwd

echo "move nav_files.tar.gz"
mv ./nav_files_temp/nav_files.tar.gz $pwd
echo "delete all temp files"
rm -R nav_files_temp
echo "nav_files.tar.gz is ready"


3) Nav-Dateien zurückkopieren
copy_nav_files.sh: Kopiert die Nav-Dateien aus dem Archiv. Da es manchmal verschiedene Versionen von Maps gibt, wird mit "md5sum" überprüft, ob es sich um die gleiche Datei handelt. Die Nav-Dateien werden dann bei positiver Überprüfung einfach überschrieben (Veraltete sowie aktuelle, vorher besser ein Backup machen).
Code: Alles auswählen
#!/bin/bash

function usage {
echo "$0 [directory from css maps]"
}

function init {
if [ -z "`which md5sum`" ]; then echo "Please install md5sum" &&  exit 1; fi
if [ -z "`which gzip`" ]; then echo "Please install gzip" &&  exit 1; fi
if [ ! -f nav_files.tar.gz ]; then echo "File nav_files.tar.gz is missing" && exit 1; fi
if [ -z "$1" ]; then usage && exit 1; fi
if [ ! -f ${1}/de_tides.bsp ]; then echo "Wrong directory in commandline" && exit 1; fi
if [ -d nav_files ]; then echo "Removing old temp directory" && rm -R nav_files; fi
pwd=`pwd`
if [ ! "`echo $1 | tail -c 2`" = "/" ]; then maps_dir=`echo "${1}/"`; else maps_dir=$1; fi
}

function check {
if [ -f ./nav_files/${1}.bsp.md5 ]; then
        if [ "`cat ./nav_files/${1}.bsp.md5 | cut -d ' ' -f 1`" = "`md5sum ${2} | cut -d ' ' -f 1`" ]; then return 0; else return 1; fi
else
        return 0
fi
}

function decompress {
if [ ! -d nav_files  ]; then mkdir nav_files; fi
tar -xzf nav_files.tar.gz -C nav_files
}


init $1
echo "Decompressing nav_files.tar.gz"
decompress
echo "Move all NAV files to $maps_dir"
for nav_file in $(ls $maps_dir/*.bsp); do
nav_file_name=`basename $nav_file | sed 's/.bsp//'`
check $nav_file_name $nav_file && echo "Moving file ... ${nav_file_name}.nav" && mv nav_files/${nav_file_name}.nav $maps_dir
done
echo "Removing the temp directory"
rm -R nav_files
echo "Ready"
exit 0


Paar fertige Nav-Dateien: http://ftp.gbs-server.de/valve/hl2/cstr ... nav_files/
Benutzeravatar
DeaD_EyE
Moderator
Moderator
 
Beiträge: 583
Registriert: 18. Aug 2007 14:57
Wohnort: Hagen

Re: [Frage] Source *.nav Files

Beitragvon MikeRivle am 2. Sep 2007 10:47

fettes Danke an DeaD_EyE

werds mal ausprobieren
Benutzeravatar
MikeRivle
Mitglied
Mitglied
 
Beiträge: 336
Registriert: 30. Jul 2005 11:44
Wohnort: Bayern

Re: [Frage] Source *.nav Files

Beitragvon DeaD_EyE am 9. Sep 2007 09:04

Ich habe alle 3 Scripte nochmals überarbeitet.

http://forum.sourceserver.info/viewtopic.php?f=29&t=27

Durch das Falsche generieren des Archives sind ein paar Fehler aufgetreten. Es ist jetzt auch möglich Maps auszuschließen oder nur eine bestimmte Art von Maps zu durchlaufen.
Benutzeravatar
DeaD_EyE
Moderator
Moderator
 
Beiträge: 583
Registriert: 18. Aug 2007 14:57
Wohnort: Hagen

Re: [Frage] Source *.nav Files

Beitragvon Andrew am 17. Sep 2007 17:01

was auch ne möglichkeit wäre ist bei sich ( client ) in css die mapstarten und ein bot drauf zu erstellen.
Also bei mir ist die .nav dann in unter einer minute erstellt ( je nach mapgröße )
Benutzeravatar
Andrew
Mitglied
Mitglied
 
Beiträge: 41
Registriert: 10. Okt 2006 10:24
Wohnort: Hannover

Re: [Frage] Source *.nav Files

Beitragvon MikeRivle am 17. Sep 2007 18:32

mag sein das du die zeit dafür hast ne menge maps nav files local erstellen zu lassen und die ich nicht habe aber egal muss man wohl so machen wie DeaD_EyE oder sbr2d2 beschrieben hat.
Benutzeravatar
MikeRivle
Mitglied
Mitglied
 
Beiträge: 336
Registriert: 30. Jul 2005 11:44
Wohnort: Bayern

Re: [Frage] Source *.nav Files

Beitragvon MikeRivle am 27. Sep 2007 14:54

hab hier ne seite gefunden wo es noch *.nav files zum ziehen gibt :wink:

im moment 98 Files tequilakawa.plus.com
Benutzeravatar
MikeRivle
Mitglied
Mitglied
 
Beiträge: 336
Registriert: 30. Jul 2005 11:44
Wohnort: Bayern

Re: [Frage] Source *.nav Files

Beitragvon Andrew am 27. Sep 2007 15:14

Danke, das wird bestimmt noch vieeeeelen anderen leuten helfen ;)
Benutzeravatar
Andrew
Mitglied
Mitglied
 
Beiträge: 41
Registriert: 10. Okt 2006 10:24
Wohnort: Hannover


Zurück zu Half-Life / Counterstrike




Ähnliche Beiträge

Open Source Webinterface
Forum: Gameserver Webinterface
Autor: Arrow768
Antworten: 0
Probleme mit Download von Custom Files
Forum: Counter Strike Source
Autor: kcajreven
Antworten: 3
Howto: Day of Defeat: Source Installation
Forum: Day of Defeat
Autor: [GSA] Bot
Antworten: 0
Howto: Counter-Strike: Source Installation
Forum: Counter Strike Source
Autor: [GSA] Bot
Antworten: 0
Call of Duty WaW - Full Linux Server Files
Forum: Call of Duty
Autor: poker4ace
Antworten: 2