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.

DeaD_EyE

Administrator

  • "DeaD_EyE" started this thread

Posts: 3,980

Location: Hagen

Occupation: Mechatroniker (didaktische Systeme)

wcf.user.option.userOption53: Nein

  • Send private message

1

Wednesday, April 17th 2013, 7:22pm

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

Source code

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:

Source code

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.