CoD4 Server Linux (brauche ein wenig Support mit Maprotation)

skwishu
Hallo liebe Forumsnutzer,

ich bin neu hier, man nennt mich skwish'u und ich komme eigentlich von UT, habe aber meine Liebe für realere Shooter entdeckt!

Ich betreibe 2 Server, einen privaten und einen public. Die laufen soweit ganz klasse auf einem Linux Server (mehr Infos, wenn ihr auf die Signatur klickt! Feel free to use the public!)!

Nur mit 2 Sachen habe ich ein wenig zu kämpfen... Ich hab schon stundenlang gegooglet aber nicht passendes gefunden... Daher wollte ich euch um Hilfe bitten!

Probleme:

1. Punkbuster
Der Punkbuster muss per cronscript upgedated werden, heisst cron.sh stoppt den Server, führt pbsetup.run -u aus und startet dann den server wieder... pbsetup.run -u funktioniert ja leider nur ordentlich, wenn die Server "aus" sind. Gibt es da eine Möglichkeit, das im laufenden Betrieb zu machen?

2. Die Maprotation
Die Rotation kann man in meiner public config gut sehen: public
Geschrieben immer schön mit gametype davor, startparameter mit +map <name> und +map_rotate ausprobiert, aber er rotiert immer nur "war"...
Hat da vielleicht jemand eine Idee?

Zur Info hier noch die Startparameter:
# Server starten!
screen -A -m -d -S pwnyhofp /home/cod4p/cod4_lnxded +set net_port 28966 +exec serverp.cfg +set fs_homepath /home/cod4p/ +map_rotate +set loc_language 2


Punkbuster, pure und dedicated hab ich in die .cfg eingetragen, bevor ihr euch fragt, wo die Einträge sind Augenzwinkern
wgs./w@Lly
Vorweg: Haben auch Linux, die Grundsachen kann ich soweit, für die höhere Kunst hoffe ich dass sich Kellerkind mal meldet, der hat in Sachen Linux die "Ahnungskarte" hier smile

1. Punkbuster sollte sich normalerweise von selbst ohne harten Eingriff im laufenden Betrieb aktualisieren. Den Eingriff pbsetup.run braucht man eigentlich nur wenn er rumzickt und nicht selbst updaten will, was aber der eher seltene Fall ist. Server komplett stoppen ist eigentlich unnötig (falls ihr nicht irgendwelche Spezial-Sicherheitsvorkehrungen oder was auch immer habt..?).
Anschubsen kann man den Punkbuster jederzeit ohne weitere Maßnahmen auch mit pb_sv_update über die Konsole oder HLSW falls es mal hängen sollte. Mit pb_sv_ver kann man den Ist-Zustand des Servers feststellen; auf http://www.evenbalance.com (oder bei uns: Punkbuster: Info über neue Server- und Clientupdates) findet sich der Soll-Zustand, sprich eine Übersicht welche die jeweils aktuellste Serverversion sein sollte.

2. Rotation
Versuchs doch mal mit etwas weniger Maps in der Rotation, um zu schauen obs grundsätzlich irgendwo hängt oder irgendwo doch ein Tippfehler drin ist.
Da die cfg beim Starten von oben nach unten abgearbeitet wird:
set sv_maprotationcurrent "" solltest du vor die eigentliche Rotation setzen; meines Wissens löscht das die aktuelle Rotation im Speicher.

Dein Startparameter sollte um +set dedicated 2 und +set sv_punkbuster 1 erweitert werden. In die cfg allein reicht meines Wissens nicht aus. sv_pure kann über die cfg festgelegt werden.
scheibe1
moin,
zu 2.: du hast ja auch immer war vor der map in der maprotation stehen, also wird auch nur in war rotiert. du kannst entweder :
set g_gametype "dm" (oder was immer du willst)in die cfg einfügen und die "war`s aus derr rotation löschen, oder du machst ne gemischte rotation, indem du in der rotation vor die jeweiligen maps den spieltypen schreibst, den du willst.
wgs./w@Lly
Scroll mal in der cfg weiter nach rechts scheibe, er hat auch andere Gametypes in der Rotation Augenzwinkern
Deshalb meinte ich ja, erst mal mit einer kleineren Rotation testen.

Es kann nämlich auch sein dass die Rotation generell zu groß ist, da immer nacheinander scheinbar sämtliche Maps mit jeweils einem Gametype laufen.
Wenn du nur die reine Rotation ab dem set sv_maprotation in eine eigene txt Datei reinkopierst, sollte diese anschließend nicht größer als 1024 KB groß sein. Sonst reißt wohl der infostring ab wenn ich das richtig verstanden habe... verwirrt


Man kann auch Gruppierungen vornehmen wenn mehrere Maps nacheinander in einem Gametype gespielt werden sollen. Also immer gametype sd zb und anschließend zwei, drei maps eintragen, dann wieder den nächsten gametype usw. Spart Buchstaben smile

Nachteil: Wenn innerhalb einer solchen Gruppe ein Voting oder manuelles umstellen erfolgt, behält er den neuen Gametype bei bis das nächste "gametype" innerhalb der Rotation folgt.
skwishu
hmmm also meiner mag net von alleine updaten...
Naja, das mit dem "pb_sv_update" kannte ich, es geht mit aber um ein automatisiertes Update!

Aber das mit dem pbsetup.run -u im laufenden Betrieb hab ich gerade getestet und es funktioniert! Danke für den Hinweis!
Man soll halt nicht immer alles glauben, habe halt gelesen, das dafür die Server stehen müssen...

Also ein Tippfehler ist nicht drin, hab das ganze mit nem Script schreiben lassen Augenzwinkern

Das mit dem Startbefehl geht prima über die config! Hab's mehrfach getestet!

Und die current-Geschichte setz ich dann mal hoch!

Danke für deine Antwort!
scheibe1
ups, ja jetzt seh ich`s, das nennt man mal ne rotation. bis man da mal bei sd angekommen ist, gibt es cod teil 17. LOL
skwishu

Zitat:

Original von scheibe1
moin,
zu 2.: du hast ja auch immer war vor der map in der maprotation stehen, also wird auch nur in war rotiert. du kannst entweder :
set g_gametype "dm" (oder was immer du willst)in die cfg einfügen und die "war`s aus derr rotation löschen, oder du machst ne gemischte rotation, indem du in der rotation vor die jeweiligen maps den spieltypen schreibst, den du willst.


Ganz doof bin ich nicht... musst schon ganze Rotation lesen Zunge raus
wgs./w@Lly
Setz bitte trotzdem +set sv_punkbuster 1 mit in den Startparameter; denn normal ist das nicht dass er jedesmal manuell angeschoben werden muss. Kann sein dass hier schon die Ursache liegt.

Die benötigten configs für den Punkbuster (pbsv.cfg) liegen auf dem Server? Im aktiven pb-Ordner?

Und reduzier deine Rotation mal um ein paar Karten.
skwishu
Werd ich mal versuchen!

Danke!
skwishu
Lösung Rotation:

Fehlendes Freizeichen in den Startparametern... unglücklich
skwishu
Aber kann mir einer sagen ob ich irgendwo sehen kann ob der als dedicated läuft? (Ich glaub nämlich das geht unter Linux gar net anders oO)
bzw. mir sagen ob das in der config reicht?


Kann das mit dem maprotationcurrent jemand bestätigen/erläutern bitte?
Nightwing
Wenn Du mit +set dedicated 2 startest, läuft er dedicated Augenzwinkern
Irgendwo im Ingameserverbrowser sieht man das auch...

ToM
Kelli
maprotationcurrent ist ein Zeiger auf die Stelle an der der Server sich gerade befindet. Beispiel:
set sv_mapRotation "gametype war map mp_backlot gametype war map mp_bloc gametype war map mp_bog"

Erste Runde: in sv_maprotationcurrent steht jetzt drin "gametype war map mp_backlot gametype war map mp_bloc gametype war map mp_bog"
Die Karte backlot ist "zuende" -
2. Runde in der sv_maprotationcurrent steht jetzt "gametype war map mp_bloc gametype war map mp_bog"
Die Karte mp_bloc ist "zuende" -
3. Runde in der sv_maprotationcurrent steht jetzt "gametype war map mp_blog"
4. Runde in der sv_maprotationcurrent steht jetzt "" Die Rotation fängt wieder von vorne an.
Wenn du also set sv_maprotationcurrent "" in der config lädst setzt du nur den Zeiger auf Anfang. Daher sollte es Schnurz sein ob über oder unter der Maprotation.

Wegen deines Punkbuster Update Problem solltest du 2 Dinge prüfen:
- http muss freigegeben sein für die Updates.
- Punkbuster - also der Benutzer unter dem das Spiel läuft - braucht les,ausführ und schreibrechte auf die Ordner /pb, /pb/dll und /pb/htm
Aber du hast ja schon rausgefunden das es per pbsetup auch im laufendem Betrieb genausogut funktioniert grosses Grinsen
skwishu
Danke für die tolle Antwort, hast du super erklärt!

Ich hab den cron erstma so umgestellt das er es im laufenden Betrieb macht, Rechte sind alle vorhanden, also zumindest rwx für den user!

Bei einer Sache verstehe ich allerdings nicht was du meinst:

Zitat:

Original von Kellerkind
- http muss freigegeben sein für die Updates.


Kannst du das noch kurz erklären bitte?
Kelli

Zitat:

Original von skwishu

Zitat:

Original von Kellerkind
- http muss freigegeben sein für die Updates.


Kannst du das noch kurz erklären bitte?

Vergiss es bitte. Ich dachte bis heute das Punkbuster seine Updates über die Seite evenbalance bezieht. Jetzt hab ich gerade mal tcpdump angeworfen - und mich geirrt. Die Updates kommen auch per udp - komischerweise von dexter.advantex.net.28962 !? Sehr seltsam.
Wie auch immer, wenn dein Port für das Spiel in der Firewall freigegeben ist sollte es funktionieren. Du kannst dich ja mal in deine screen Sitzung hangeln mit screen -r pwnyhofp und dann dort in der Console
pb_sv_update eintippen. Funktionierend sieht das so aus:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
pb_sv_update
PunkBuster Server: Master Query Sent to (COD41.EVENBALANCE.COM) 216.240.146.139
PunkBuster Server: Download Request for htm/wa001402.htm Sent to (COD42.EVENBALANCE.COM)
PunkBuster Server: Received Master Security Information
PunkBuster Server: Received Download File: htm/wa001402.htm
Sending heartbeat to cod4master.activision.com                                  


Vielleicht bekommst du ja ggf irgendeine Fehlermeldung die weiterhilft.