ERLEDIGT
NEIN
NEIN
ANTWORTEN
23
23
ZUGRIFFE
1164
1164
EMPFEHLEN
-
22.09.10 23:36 #1
- Registriert seit
- Sep 2010
- Beiträge
- 24
Hallo Freunde,
Ich versuche gerade mit eine if then Anweisung einen Sprung hinzulegen.
nach dem motto passt das dann übersringe alle und springe zu punkt 2
sprich mein startscript soll aus den gameserver parametern $* erlesen was für ein game das ist und an die dafür vorgesehene stelle im script springen und da weitermachen. jemand eine Idee?
nehmen wir z.b
./css_run -game cstrike +map gsmap -maxplayers gsplayer -ip gsip -port gsport +exec fastdl.cfg gsport +sv_password gspasswd -tickrate gstick +fps_max 500 set tv_maxclients 10
da könnte man cstrike als Merkmal aus den startparametern nehmen.
-
Hi, ich hoffe du meinst:
Das Script nennst du dann so wie du willst#!/bin/sh
if [ $1 = css ]
then
/var/css/css_run -game cstrike +map gsmap -maxplayers gsplayer -ip gsip -port gsport +exec fastdl.cfg gsport +sv_password gspasswd -tickrate gstick +fps_max 500 set tv_maxclients 10
elif [ $1 = bf1942 ]
then
/var/bf1942/bf_run
else
echo "Bitte geben Sie einen Parameter an."
fi
Erweiterst es nach belieben.
mit
kannst du dann das Script ausführbar machen.chmod u+x $scriptname
und z.B. den CSS Server starten:
Ich hoffe das Bringt dich weiter../$scriptname css
MFG Ronox
-
23.09.10 11:04 #3
- Registriert seit
- Sep 2010
- Beiträge
- 24
Das script soll irgendwann für alle games dienen welche ich habe
vom Prinzip her soll es das Game erkennen welches gestartet wird
so stelle ich mir das vor
(IF Anweisungen)
#Call Of Duty
wenn cod_lnxded in den parametern gefunden so springe zu Abschnitt 1 und mach da weiter
#Call Of Duty 2
wenn cod2_lnxded in den parametern gefunden so springe zu Abschnitt 2 und mach da weiter
#Call Of Duty 4
wenn cod4_lnxded in den parametern gefunden so springe zu Abschnitt 3 und mach da weiter
#Call Of Duty 5
wenn codwaw_lnxded in den parametern gefunden so springe zu Abschnitt 4 und mach da weiter
#Call Of Duty UO
wenn coduo_lnxded in den parametern gefunden so springe zu Abschnitt 5 und mach da weiter
#Counter Strike Source
wenn "srcds_run -game cstrike" in den parametern gefunden so springe zu Abschnitt 6 und mach da weiter
usw.
gestartet soll das script dan später so werden z.b.
./gs_run ./srcds_run +parameter
-
Wieso willst du dir das so Komliziert machen?
wieso nicht deine Server so starten:
./startserver cod2
und in dem Script wie oben, von mir gepostet, trägst du dann deine kompletten Parameter ein, oder wenn du z.B. Port Zahl usw. haben willst, dann setzt du dort noch weitere Parameter ran?
So hast du ein Script für alles, das doch viel besser, weil so wie du das willst oder was du willst das versteh ich nicht so ganz.
MFG Ronox
-
23.09.10 13:01 #5
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
Nach deiner Beschreibung sieht das so aus:
Code bash:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#!/bin/bash ACTION=${1} if [[ -z "${ACTION}" ]]; then echo "No action given." >&2 exit 1 fi function startCod() { } function startCod2() { } case "${ACTION}" in cod_lnxded) startCod ;; cod2_lnxded) startCod2 ;; default) echo "Unknown action." >&2 exit 2 ;; esac exit 0
Natürlich musst du das Ganze noch um die Funktionen zum Starten der Server erweitern.
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
23.09.10 13:05 #6
- Registriert seit
- Sep 2010
- Beiträge
- 24
Das ist ganz einfach, das script soll verschiedene Sachen die Gamespezifisch sind dann noch bei den jeweiligen Games dann hintenansetzen.
wie z.b bei cod4 soll das script die fastdlparameter automatisch erkennen und hinten an setzen.
während es bei css nicht funktioniert und dafür dann eine config schreiben muss und diese laden muss.
Desweiteren möchte ich dann da eine Gameserverupdate funktion mit einbauen falls Steam wieder mal Probleme macht.
-
23.09.10 14:26 #7
- Registriert seit
- Sep 2010
- Beiträge
- 24
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
#!/bin/bash #Gameserverip festlege. gsip=`echo "$*" | grep -Eo "[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}"` #Gameserverpfad festlegen fdpfad=$(pwd | awk -F/ '{ sub(/\/home/,""); print }'); #Fastdownload Url festlegen url="$fastdl/$gsip$fdpfad" #entgueltige Fastdownloadparameter COD Series start="$* +set sv_allowdownload "\"1\"" +set sv_wwwDownload "\"1\"" +set sv_wwwBaseURL "\"$url\"" +set sv_wwwDlDisconnected "\"0\""" ACTION=${1} if [[ -z "${ACTION}" ]]; then echo "No action given." >&2 exit 1 fi function startCod() { $start } function startCoduo() { $start } function startCod2() { $start } function startCod4() { $start } function startCodwaw() { $start } function startCss() { fdgame="/orangebox/cstrike" echo //Automatisches Fastdownloadscript - wird bei jedem Serverstart erstellt >> $cfgvar/fastdl.cfg echo //---------------------------------------------------------------------- >> $cfgvar/fastdl.cfg echo sv_downloadurl "\"$fastdl/$gsip$fdpfad$fdgame\"" >> $cfgvar/fastdl.cfg $* +exec fastdl.cfg } function startCs16() { } function startDods() { } function startDod() { } function startCsz() { } function startTfii() { } function startL4d() { } function startL4d2() { } case "${ACTION}" in cod_lnxded) startCod ;; coduo_lnxded) startCoduo ;; cod2_lnxded) startCod2 ;; cod4_lnxded) startCod4 ;; codwaw_lnxded) startCodwaw ;; srcds_run -game cstrike) startCss ;; hlds_run -game cstrike) startCs16 ;; srcds_run -game dod) startDods ;; hlds_run -game dod) startDod ;; hlds_run -game czero) startCsz ;; srcds_run -game tf) startTfii ;; srcds_run -game left4dead) startL4d ;; srcds_run -game left4dead2) startL4d2 ;; default) echo "Kein Game Support." >&2 exit 2 ;; esac exit 0
so ok?
-
23.09.10 15:13 #8
- Registriert seit
- Sep 2010
- Beiträge
- 24
habs gerade getestet probleme gibts bei den HL spielen da die nur mit mehreren Variablen auseinander zu halten sind
-
24.09.10 01:43 #9
- Registriert seit
- Sep 2010
- Beiträge
- 24
Hehe ich darf glücklich sagen ich habe es hinbekommen,
nun habe ich nur noch ein problem welches es zu lösen gilt.
ich muss 3 Parameter aus einer anderen Datei ziehen, Sprich ich lege irgendwo eine textdatei ab in dieser befindet sich
updateserver
fastdlserver
Imageserver
Beste grüsse und vielen Dank
-
24.09.10 11:25 #10
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
den Inhalt einer Datei bekommst du so in eine Variable:
Code bash:1
inhalt=$( cat DATEI.txt );
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
24.09.10 13:28 #11
- Registriert seit
- Sep 2010
- Beiträge
- 24
geht das ich wenn man die 3 Variablen in eine Datei schreibt, so das er sie als 3 versch. Varis ausließt
-
27.09.10 08:32 #12
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
deine "Problembeschreibung" ist echt top
Naja, kommt drauf an, wie die getrennt sind. Am einfachsten ist es durch einen Tabulator oder durch ein Leerzeichen, aber auch ein Zeilenumbruch ist kein Problem.
Code bash:1 2 3 4 5
alles=$( cat DATEI.txt ) for akt in $alles; do echo "Teil: $akt" done
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
27.09.10 17:43 #13
- Registriert seit
- Sep 2010
- Beiträge
- 24
wäre es vieleicht auch einfacher das ich so eine Art Config erstelle und er z.B
mit
cacheordner=home/cache
ausließt so das er das hinter dem = nimmt. Dann wäre man eventl nicht an Zeilen etc. gebunden gibts da ne Möglichkeit
-
28.09.10 09:37 #14
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
solange du die Config dann bash-konform hältst, kannst du die mit
einlesen.Code bash:1
. /pfad/zur/config
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
29.09.10 12:57 #15
- Registriert seit
- Sep 2010
- Beiträge
- 24
Hallo,
super funktioniert,
ich habe es aber nun so gelöst. Manchmal findet man Lösungen auch wenn man zufällig in ein altes Script reinschaut.
Bis jetzt ist ein geiles Gameserverstartscript entstanden. Es funktioniert tadelos. Ist für Alle HL Games und Games der COD Serie gedacht. Hier ein kurze Vorschau.
Das Script erledigt eine automatische Fastdl Zuweisung über die Startsequenz, eine Neuinstallfunktion der Gameserver, updates von Steam und Punkbuster (Hardupdate), startet bei cod den Manuadmin Mod 5 Sekunden nach Serverstart.
Nun geht mir noch eine Idee im Kopf rum:
Und zwar die automatische Anpassung der HLTV Config oder der Manu Admin Config:
Dazu muss das Script sich Daten aus der Server.cfg des Gameservers ziehen.
wie z.b.
Server.cfg
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
// Der Hostname bezeichnet deinen Servernamen // Das rcon Password macht dich zum Admin auf deinen Server hostname "CSS - Server" rcon_password "topsecret" // Mani Admin Plugin // // exec mani_server.cfg // exec mani_quake_sounds.cfg sv_password "test" ///////////////////////////////////////////////////////////////////////// // Electronic Sports League // CS:S Config 5on5 Ladder // Version 4.0 // 27.01.2009 mp_allowspectators "1" mp_autokick "0" mp_autoteambalance "0" mp_buytime "0.25" mp_c4timer "35" mp_chattime "5" mp_decals "300" mp_dynamicpricing "0" mp_fadetoblack "0" mp_flashlight "1" mp_footsteps "1" mp_forcecamera "1" mp_freezetime "6"
Hier müsst sich das Script den Parameter
sv_password "test"
hier müsste sich das Script das test nehmen und in einer anderen Config an einem bestimmten Punkt wieder einsetzen.
Sagen wir die Config lautet so:
ip=xxx.xxx.xxx.xxx
port=xxxxxx
password=test
servername=Hier bin Ich
Sprich die Parameter oben und muss er lassen und nur das rote abändern.
Beste Grüsse
Ähnliche Themen
-
script zu einem bestimmten datum etwas automatisch tun lassen?
Von Catscrash im Forum PHPAntworten: 1Letzter Beitrag: 22.10.05, 13:11 -
script welches nach einem bestimmten zeitraum eine url aufruft
Von PC Freak im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 25.11.04, 01:58 -
str_replace erst nach bestimmten Abschnitt
Von PhoenixDH im Forum PHPAntworten: 2Letzter Beitrag: 20.10.04, 10:01 -
Suche script um ein popup an einem bestimmten tag erscheinen zu lassen
Von Dayan im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 09.09.04, 18:57 -
DW - MX: Verlinkung zu einem bestimmten Abschnitt einer Site?
Von Selena im Forum HTML & XHTMLAntworten: 6Letzter Beitrag: 26.02.04, 10:53





Zitieren


Login





