You are not logged in.

Dear visitor, welcome to sourceserver.info. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

21

Sunday, January 9th 2011, 12:31am

Re: Startscript für Orangebox - Games

Das liegt nicht direkt im Sinn des Scriptes

Habe so etwas ähnliches mal für uns geschrieben



Meinst du sowas?
http://pastebin.com/rk5WfD0i">http://pastebin.com/rk5WfD0i</a>


Mfg
Impact

Koffein

Intermediate

Posts: 353

wcf.user.option.userOption53: Nein

  • Send private message

22

Sunday, January 9th 2011, 12:47am

Re: Startscript für Orangebox - Games

In der aktuellen Version des Startscriptes in der wiki, kann man einfach eine Datei anlegen,
dort dann die Namen der einzelnen Server Start Scripte,
anschließend kann man einfach per: BEFEHL LISTENNAME die Server die in der Liste sind erreichen,
anstatt BEFEHL SERVER1, BEFEHL SERVER2, BEFEHL SERVER3..... etc..

EDIT:
Befehle für Fastdownload mit reinpacken,
also erst die Dateien zu bzip komprimieren dann automatisch hochladen :P

gOOvER

Beginner

Posts: 5

wcf.user.option.userOption53: Ja

  • Send private message

23

Friday, February 4th 2011, 4:39pm

Re: Startscript für Orangebox - Games

Script heute mal getestet und bin begeistert. Super Arbeit. :) Weiter so :)

EoZ

Beginner

Posts: 17

Location: Berlin

Occupation: eventbranche

  • Send private message

24

Saturday, March 5th 2011, 7:51pm

Ich habe heute versucht über das startscript einen server zu installieren, funktionierte nicht wirklich.
meine Vorgehensweise:
-im home/username/ einen ordner "test" erstellt
-die entpackten Dateien in diesen Ordner kopiert
-server.cfg bearbeitet

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DIR="test"
SCREENNAME="test"
IP="46.4.73.67"
MAXPLAYERS="16"
PORT="27030"
SCREENOPTIONS="dmSL"
MAP="de_dust2"
EXTRA="-timeout 4 -autoupdate -verify_all -retry -tos -noipx"
SRCDSDIR="/home/username/test"
LOGDIR="screenlogs"
GAMEMOD="cstrike"
UPDATEMOD="Counter-Strike Source"
BINARY="srcds_run"
QSTAT="a2s"
PRECONFIGURE="1"

bei SRCDSDIR="/home/username/test" steht original orangebox, aber dazu komm ich noch!
-putty öffnen, ins Verzeichnis /home/username/test wechseln
-./server.sh install ins putty --> nach einer Aufforderung "yes" zu schreiben werden die serverdateien runtergeladen
-als alles fertig war, gabs kein orangebox-Verzeichnis. es wurde im test-Ordner ein cstrike-verzeichnis angelegt.
-natürlich konnte auf ./server.sh start nur kommen: verzeichnis orangebox existiert nicht
-srcds_run liegt im Ordner test also neben server.sh und .cfg, also änderte ich die Pfadangabe, aber egal was ich da hinschreibe, der Ordner existiert nicht

Ähnliches passierte übrigens beim Versuch einen anderen server zu updaten, den ich vor längerer Zeit mit dem script gestartet hatte.
Vielleicht findet ja jemand den Fehler?

mfg

Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

25

Saturday, March 5th 2011, 11:13pm

Im Kopf der Configdatei steht:

Source code

1
# --> Ab hier bitte Anpassen <-- | Zur Konfiguration bitte beiliegende Readme lesen!.


Ich glaube da hat jemand die Readme nicht gelesen :whistling:
Hier ein Beispiel wie die Config aussehen muss.

Source code

1
2
3
4
DIR="/home/username/test"
SRCDSDIR="orangebox"
GAMEMOD="cstrike"
UPDATEMOD="Counter-Strike Source"


Bei L4d1 dann so

Source code

1
2
3
4
DIR="/home/username/test"
SRCDSDIR="l4d"
GAMEMOD="left4dead"
UPDATEMOD="left4dead"


and so on..

Lese bitte aufmerksam die Readme Datei, dafür ist sie nämlich da. :ugeek:
Entscheidende Punkte wären hier.

Source code

1
2
3
4
Dir              - Kompletter Pfad zum Hauptordner des Servers zB /home/css/work.
Srcdsdir      - Pfad zur eigentlichen Binary.
Gamemod       - Name der Spielmodifikation.
Updatemod     - Kompletter Name des Spieles.




Ansonsten kannst du auch einfach mal einen Blick in das Script werfen,
dort würdest du dann folgende Zeile finden die dir verraten hätte wieso es nicht ging.

Source code

1
2
cd $DIR/$SRCDSDIR 
screen -$SCREENOPTIONS $SCREENNAME-running ./$BINARY bla  bla


Der erste Code würde dann Im Script so aussehen

Source code

1
2
cd test/home/username/test 
screen -$SCREENOPTIONS $SCREENNAME-running ./$BINARY bla  bla


-> Wie sollte das gehen?


Ansonsten gibt es auch noch die Screenlogs (Sofern der Pfad richtig gewesen wäre)
Bleibt nur noch zu sagen, wenn man das Script richtig anwendet funktioniert es auch :)


Ps. wenn du Fehler findest oder Ideen hast dann immer her damit ;)


MfG
Impact

This post has been edited 15 times, last edit by "Impact" (Mar 6th 2011, 2:17am)


EoZ

Beginner

Posts: 17

Location: Berlin

Occupation: eventbranche

  • Send private message

26

Sunday, March 6th 2011, 6:41am

Ich habe die README bestimmt 20x gelesen. Das mit dem kompletten Pfad bei DIR= muß mir irgendwie durch die Lappen gegangen sein, ich versuche es gleich nochmal.^^

Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

27

Monday, March 7th 2011, 2:24am

In der aktuellen Version des Startscriptes in der wiki, kann man einfach eine Datei anlegen,
dort dann die Namen der einzelnen Server Start Scripte,
anschließend kann man einfach per: BEFEHL LISTENNAME die Server die in der Liste sind erreichen,
anstatt BEFEHL SERVER1, BEFEHL SERVER2, BEFEHL SERVER3..... etc..


Ich habe mich vorher mal rangesetzt und dafür was kleines geschrieben (Verzeih den Namen mir ist leider nichts besseres eingefallen).
http://downloads.gugy.eu/bash/server.sh/server_min.tar.gz

Ganz ohne Listen
Wichtig ist dabei nur dass deine Gameserver in Unterordnern sind (Was ich einfach mal annehme)
Du kannst deine Gameserver dann einfach per.

Source code

1
2
3
gstart server1
status server5
grestart server99


Direkt aus dem Hauptverzeichnis aus bedienen.
Bittesehr ich hoffe das ist was du meintest :)


Ps. Dafür ist jetzt mein Kaffee kalt :(


MfG
Impact

Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

28

Sunday, March 20th 2011, 10:20pm

Gerade eben das Game Paket von Sourcebans zu den Addons zugefügt, kann also nun auch darüber installiert werden :)
Hat noch einer Ideen für Addons?


MfG
Impact

Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

29

Thursday, March 24th 2011, 3:06pm

Gerade eben die erste Version der FastDL Extension fertiggestellt,
etwas kompliziert zusammengeschrieben, aber sie funktioniert.

Neue Funktionen und Bugfixes bei Zeit.

Gedownloadet werden kann sie hier

Das Script nutzt die mitgelieferte fastdl.conf so wie auch die vorhandene server.conf
daher fällt die eigene Config relativ gering aus.


Ps. kann es sein dass bzip2 nicht excluden kann?
habe dazu nichts gefunden X(

MfG
Impact

This post has been edited 3 times, last edit by "Impact" (Mar 24th 2011, 3:16pm)


DeaD_EyE

Administrator

Posts: 3,980

Location: Hagen

Occupation: Mechatroniker (didaktische Systeme)

wcf.user.option.userOption53: Nein

  • Send private message

30

Thursday, March 24th 2011, 5:16pm

Ne, kann bzip2 nicht. Aber find kann das, grep kann das.

Eine fertige Funktion für Dateitypen:

Source 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
#!/bin/bash
exclude_filetypes="txt sh bin"
include_filetypes="txt bin sh"
findexclude() {
        if [ $# = 1 ]; then
                echo "-not -name "*.$1""
                return
        fi

        output="-not \( -name "*.$1""
        shift
        for type in $@; do
                output="$output -o -name "*.$1""
                shift
        done
        output="$output \)"
        echo "$output"
        return
        }

findinclude() {
        if [ $# = 1 ]; then
                echo "-name "*.$1""
                return
        fi

        output="\( -name "*.$1""
        shift
        for type in $@; do
                output="$output -o -name "*.$1""
                shift
        done
        output="$output \)"
        echo "$output"
        return
        }

exclude="$(findexclude $exclude_filetypes)"
include="$(findinclude $include_filetypes)"
echo "Pattern for exclude: $exclude"
echo "Pattern for include: $include"
echo
echo "Searching files with exluding some filetypes: $exclude_filetypes"
eval find $exclude
echo
echo "Searching files with including some filetypes: $include_filetypes"
eval find $include

echo
echo "Find only real files: -type f (with excluding other files)"
eval find -type f $exclude

Dann kannst du noch mit Pfaden arbeiten. Anstatt -name kannst du -path verwenden.

z.B. um orangbox/addons zu excludieren = ! -path */orangebox/addons/*
includieren = -path */orangebox/maps/*


Bei Dateilisten wird es schon komplizierter. Wenn ich da mit diff vergleiche, kommt bei vertauschen Zeilen etwas völlig falsches heraus. Find unterstützt soweit ich weiß auch keine Funktion um eine Dateiliste zum excludieren von Suchergebnisen zu verwenden.

Dafür hatte ich mal ein Pythonscript geschrieben, dass zwei Dateien miteinander vergleicht und die identischen Zeilen herausfiltert und nur die hinzugekommen Zeilen der zweiten Datei anzeigt.

So kann man mit mehreren Filtern eine kleine Dateiliste von den Original-Verzeichnissen materials, maps, models, sound, scripts und resource erstellen.
Danach den gleichen Filter auf das Serververzeichnis mit den Customdateien anwenden. Die beiden Dateien vergleicht man dann mit dem Pythonscript und hat dadurch eine Dateiliste mit den customdateien.

Die Dateiliste lässt sich auch so erstellen, dass die Change-/Modifytime dort mit drinsteht. Nachdem ich jetzt sämtliche Server abgesucht habe, meinen alten Homeserver angeschlossen hab usw.. hab ich das Script endlich bei mir auf dem VServer gefunden.

Besonders perfomant ist es nicht, aber es erfüllt seine Aufgabe:

Source 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
#!/usr/bin/python
'''
./diff.py oldfile newfile
Shows changed/new lines from a new txtfile
Added lines to oldfile doesn't generate output
'''
from __future__ import with_statement
import sys

try:
    import psyco
    psyco.full()
except ImportError:
#    print "Psyco not found :-("
    pass

if not len(sys.argv) == 3:
    sys.exit()

try:
    oldfp = open(sys.argv[1],'r')
    old = oldfp.readlines()
    oldfp.close()
except IOError:
    sys.exit()

try:
    newfp = open(sys.argv[2],'r')
    new = newfp.readlines()
    newfp.close()
except IOError:
    sys.exit()

#vorherige Schleife zum Vergleich:
#for new_line in new:
#    if not any(old_line in new_line for old_line in old):
#        if not len(new_line) <= 1:
#            print new_line,

#Der Teil koennte schneller sein.
for new_line in new:
    for old_line in old:
        if new_line == old_line:
            break
    else:
        if not len(new_line) <= 1:
            print new_line,


Zum Test hab ich noch psyco importiert, welches den Python-Code schneller machen soll. Unter Debian kann man das Modul mit "apt-get install python-pyco" installieren. Wenn das Modul nicht existiert, wird es auch nicht geladen. Leider bringt die Optimierung nicht viel. Deshalb sollten die beiden Dateilisten auch nur die Dateien aus ausgewählten Verzeichnissen enthalten, damit weniger Zeilen vorkommen.

Der Code ließe sich auch noch optimierten, wenn man aus der Schleife mit break herausspringt, wenn ein Treffer gefunden wurde.

Ich glaube es macht sogar mehr Sinn, das Programm in c zu schreiben... Muss sich nur jemand finden.

Ich hab mal testweise eine Funktion als modul mit cython compiliert. Von 3 Minuten auf 16 sekunden ausführungszeit bei 37000 Zeilen ist schonmal ein Fortschritt.

Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

31

Tuesday, March 29th 2011, 2:58pm

Habe vorhin mit jemandem geschrieben der mich auf eine Idee brachte, die ich lange Zeit vergessen hatte.
Es geht um eine SourceTv Erweiterung die ich nun fertiggestellt habe, und als Extension nun für die Server.sh anbiete.

Die SourceTV extension liest den Screenlog des Server aus und sobald eine Demo beendet wurde, wird diese mit einem Ftpserver synchronisiert.
Das ganze ist in einer endlosschleife geschrieben und funktioniert somit unbegrenzt.

Die Server.sh ist bereits geupdatet und startet/stoppt den Daemon falls vorhaden beim Server start/stop gleich mit.
Man muss lediglich updaten :)

Downloaden kann man die Extension hier:
SourceTv Extension


Es gibt nur ein Problem, Die Demos werden erst bei der zweiten Demoaufnahme gepackt und hochgeladen.
Wieso das so ist kann ich zu diesem Zeitpunkt noch nicht sagen.



MfG
Impact

This post has been edited 1 times, last edit by "Impact" (Mar 29th 2011, 3:51pm)


Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

32

Sunday, April 3rd 2011, 6:44pm

Ich war mal wieder fleißig, und habe eine neue Extension geschrieben.

Will man auf zB Warservern Werbetexte einblenden ist das meistens nicht ohne weitere Plugin oder Addons möglich,
da die aber bei den meisten Ligen verboten sind habe ich die advert_extension geschrieben.

Es gibt 4 Variablen.

Source code

1
2
3
4
ADVERT_EXTENSION_TEXT1="text1"
ADVERT_EXTENSION_TEXT2="text2"
ADVERT_EXTENSION_SLEEPTIME="10"
ADVERT_EXTENSION_INTERVALL="120"


Ich schätze sie erklären sich von alleine ;)

Damit ist es möglich ohne weitere Plugins Werbung auf seinen Servern zu machen.

Download


MfG
Impact

This post has been edited 2 times, last edit by "Impact" (Apr 3rd 2011, 8:10pm)


Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

33

Wednesday, April 6th 2011, 7:24am

/Push

Habe den Thread mal etwas überarbeitet so wie eine FAQ Sektion hinzugefügt

Hat noch einer Ideen, Anregungen, Wünsche?
nichts ist unmöglich :)


MfG
Impact

This post has been edited 1 times, last edit by "Impact" (Apr 6th 2011, 8:14am)


GeNeRaLbEaM

Professional

Posts: 1,537

Location: Krefeld

Occupation: Student

wcf.user.option.userOption53: Nein

  • Send private message

34

Wednesday, April 6th 2011, 1:21pm

Ja ! Ich habe einen Wunsch !

Bring mir das auch bei ^^
LG
GeNeRaLbEaM

Wer Rechtschreibfehler findet, darf sie behalten.

Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

35

Wednesday, April 6th 2011, 8:54pm

Ich dachte jetzt eher an das Script,
aber kein Problem :D

Achso ich sollte vielleicht erwähnen dass ich in meinem Zweig gerade einen Täglichen Cronjobmaker am testen bin.
Es ist nichts besonderes, nur eine kleine Befragung nach Der Uhrzeit.

Das ganze sieht so aus:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
Geben sie bitte hier die Stunde und Minute des taeglichen Cronjobs ein.

Stunde des Cronjobs {0-23}: 21
Minute des Cronjobs {0-59}: 33
Kommentar fuer den Cronjob {Ohne #}: Beispiel
Aktion des Cronjobs {update/restart...}: restart
- Ab hier is ein Clear
Crontab wurde eingetragen.
# m h  dom mon dow   command

# Beispiel 21:33 Uhr
33 21 * * * /home/css/work/server.sh restart >> /home/css/work/crontab.log


Das ganze wird auch in den Crontab eingetragen, und vorher darin stehende Angaben nicht gelöscht.
Ich habe nur ein kleines Problem mit welchem ich mich bisher nicht befasst habe.

TERM environment variable not set.


Ps. Ich glaube ich weiß wie ich das verhindern kann


MfG
Impact

This post has been edited 2 times, last edit by "Impact" (Apr 6th 2011, 9:39pm)


Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

36

Friday, April 15th 2011, 3:24pm

Aufgrund des aktuellen Zwischenfalles habe ich ein Upgradepaket für Sourcemod und Metamod erstellt,
das jeweils die benötigten Dateien enthält (Keine Plugins/Configs).

Installiert werden kann es per:

Source code

1
./server.sh addoninstall sourcemod_snapshot_css

bzw bei der neusten Version

Source code

1
./server.sh 15 sourcemod_snapshot_css


Spoiler Spoiler


Source code

1
2
3
4
5
6
7
8
9
10
Folgende Addons lassen sich ueber den Installer installieren

---
Name                   | Version              | Paket
-------------------------------------------------------------------------------
sourcemod_css          | Version 1.3.6        | Sourcemod Paket fuer css Inklusive Metamod.
sourcemod_snapshot_css | Version 1.4.0-hg3254 | Sourcemod Snapshot Upgradepaket mit Essentiellen Datien.
zblock                 | Version 4.5          | Zblock Paket fuer css Inklusive Configs mehrerer Ligen.
sb_css                 | Version 1.4.8        | Sourcebans gameupload Paket.
---




MfG
Impact

Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

37

Saturday, April 16th 2011, 3:33pm

Update Version 0.2.4-Beta1.06

Neuerungen und Fixes im Script

Changelog

Spoiler Spoiler

Source code

1
2
3
4
5
6
- Code ueberarbeitet/verduennt
- Kleinere fixes	
- Status ueberarbeitet
- if else Abfragen minimiert
- Addonlist Fehler gefixt
- Fehler in Hilfsausgabe gefixt


Zudem wurden die Addons erneuert und Sdkhooks kam neu dazu

Addons

Spoiler Spoiler

Source code

1
2
3
4
5
Name                   | Version              | Paket
-------------------------------------------------------------------------------
sourcemod_css          | Version 1.3.7        | Sourcemod Paket fuer css Inklusive Metamod.
sourcemod_css_upgrade  | Version 1.3.7        | Sourcemod Upgradepaket mit Essentiellen Dateien.
sdkhooks_css           | Version 2.0          | Skdhooks Paket.



MfG
Impact

Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

38

Monday, April 18th 2011, 1:27pm

Falls es jemand interessiert, ich betreibe nun hier einen SVN dazu.
Ich muss schon sagen, sehr praktisch das ganze!

Featurewünsche und Kritik sind weiterhin gerne gesehen.

MfG
Impact

This post has been edited 1 times, last edit by "Impact" (Apr 18th 2011, 3:23pm)


Impact

Super Moderator

  • "Impact" started this thread

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

39

Friday, April 22nd 2011, 7:15pm

Update 0.2.4-Beta2

Das Script liegt nun in Version 0.2.4-Beta2 vor.

Changelog:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 22.04.2011
# Version: 0.2.4-Beta2
- Statuscheck leicht bearbeitet, falls Kein SCREENNAME- gefunden wird.
- Backupausgabe je nachdem ob der Server online war und gestoppt werden musste.
- Backups werden nun nach DIR/tmp verschoben.
- Backupparameter in server.sh von BACKUPPARAM nun zu BACKUP_FILES geaendert.
- CRON: Funktionsabfrage falls der Cron bereits existiert, ob man ueberschreiben moechte.
- README: Hinweise zur Konfiguration der Config zugefuegt.
- Zustimmung bei Listgames und Updates bei Nachfrage des Hldsupdatetools nicht mehr notwendig.
- Updateausgabe je nachdem ob der Server online war, und gestoppt werden musste.
- Bei Startfehlern wird nun eine Variable gesetzt und das Starten verhindert.
- Bei Startfehler erscheint nun die Anzahl der Fehler.
- Wrapper fue Verzeichnisabfragen
- Cleanup Funktion eingebaut.


Und noch ein paar kleinere Sachen die man bei der Benutzung sicher bemerkt :)

MfG
Impact

SinteX

Unregistered

40

Friday, April 22nd 2011, 7:29pm

Ein für mich nettes Feature wäre ja wenn das Script eine E-Mail an mich sendet wenn der Server länger als XY Minuten Offline ist und nicht gestartet werden kann wegen einem Problem. Oder ich per Mail benachichtigt werde wenn der Server geupdatet wurde :-)