Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: sourceserver.info. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich 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

  • 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.