Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: sourceserver.info. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Private Nachricht senden

1

Mittwoch, 17. April 2013, 19:22

Workaround für die Mapanzeige bei Teklab

Durch die Konvertierung der Struktur ändern sich auch die Orte, an denen die Maps abgespeichert sind.
Vor dem Update hatte man alle Maps in einem Pfad. Jetzt ist es so, dass man viele Maps auf verschiedene Unterverzeichnisse verteilen kann.

Teklab hat gleich mehrere Nachteile. Man kann Dateitypen nicht doppelt anlegen. Der Pfad für *.bsp und *.nav muss stimmen, da ansonsten der Mapupload nicht funktioniert.
Generell wäre hier eine Trennung zwischen Mapupload und Maplist wünschenswert gewesen.

Ein kleiner Workaround erlaubt es dennoch weiterhin die Uploadfunktion der Maps sinngemäß zu nutzen.
Der Mapupload für CS:S sollte in der Regel in einem Unterverzeichnis von custom stattfinden.
Also der Pfad zu den Maps könnte z.B. so lauten: cstrike/custom/mapupload/maps
In dem Fall müsste das Verzeichnis mapupload aber auch existieren.

Dieser Eintrag würde nun ausschließlich die Maps aus cstrike/custom/mapupload/maps anzeigen.
Standardmaps und andere innerhalb custom/*/maps würde man nicht in der Mapauswahl sehen.

Um das zu beheben, kann man die games etwas abändern.

Zu bearbeitende Datei: /home/skripte/games

Quellcode

1
2
3
4
5
6
7
8
9
if [ "$VAR_A" = "maplist" ]; then
#    cd /home/$VAR_B/server/$VAR_D/$VAR_E
#    maplist=`find -name "*.$VAR_F"`
#    for LINE in $maplist
#    do
#       echo "$LINE%TEND%"
#    done
    find /home/$VAR_B/server/$VAR_D/ -name "*.$VAR_F" -printf './%f%%TEND%%\n'
fi


Man merke aus 6 Zeilen Code mache ich eine. Wer es noch etwas effizienter gestalten will, kann stattdessen folgenden find-Befehl verwenden:

Quellcode

1
find /home/$VAR_B/server/$VAR_D/ -maxdepth 5 -type f -name '*.$VAR_F' -printf './%f%%TEND%%\n'


Ich habe ausschließlich für CS:S. Es sollte aber auch bei anderen Spielen funktionieren, die nicht den relativen Pfad der Map als Anhängsel benötigen. So ein drum-herum-scripten würde weitaus mehr code benötigen und sollte eher vom Entwickler gefixt werden.


EDIT: Erfahre gerade, dass es ein Update gibt. Also testet erst das Update, bevor ihr überlegt meinen Fix einzusetzen.