In diesr Anleitung wird beschrieben, wie man mittels Stipper: Source ein Logo auf die Maps integrieren kann, ohne die Maps selber zu verändern.
In der Anleitung von |RASCH!!! wird beschrieben, wie man ein fliegendes Clanlogo in die Maps integriert. Dabei wird zuerst eine Textur mit vtex
vom SourceSDK
und die dazugehörige vmt-Datei erstellt. Danach wird auf dem Server die zukünftige Position für das Logo ausgesucht. Als Spectator oder im Noclip-Modus erfasst man mittels cl_showpos 1
oder getpos
die Position. Mittels EntEd wird das Logo letztendlich zur Map hinzugefügt. Das Endergebnis kann dann so aussehen:
Um das Logo zu erstellen, wird das SourceSDK
benötigt. Es kann über diesen Link installiert werden. Es ist unter Steam > Tools > Source SDK
zu finden. Nachdem das SourceSDK heruntergeladen wurde, muss es einmal gestartet werden. Damit alle benötigten Dateien aus dem Steam-Cache entpackt werden, muss einmal im Fenster von Source SDK
auf Refresh SDK Content
geklickt werden. Es werden danach alle benötigten Dateien nach STEAM\steamapps\ACCOUNTNAME\sourcesdk
entpackt.
Das Logo kann mit einem Grafikprogramm im tga-Format abgespeichert werden. Für die Transparenz wird der Alpha-Kanal verwendet.
Die Seitenlängen des Logos müssen eine 2er Potenz sein, brauchen aber nicht Quadratisch zu sein.
Beispiele für die Abmessungen in Pixel:
256 | x | 256 |
256 | x | 512 |
256 | x | 1024 |
512 | x | 1024 |
1024 | x | 1024 |
Nachdem das Logo erstellt wurde, muss es nach STEAM\SteamApps\ACCOUNTNAME\sourcesdk_content\GAMENAME\materialsrc
kopiert werden. Das Logo kann dann auf die vtex.exe
, die sich in STEAM\SteamApps\ACCOUNTNAME\sourcesdk\bin\ep1\bin
befindet, geschoben werden. Normalerweise wird das Logo dann schon im richtigen Zielverzeichnis erstellt. Befindet sich das Logo z.B. in STEAM\SteamApps\ACCOUNTNAME\sourcesdk_content\cstrike\materialsrc
, wird die Textur in STEAM\steamapps\ACCOUNTNAME\counter-strike source\cstrike\materials
erstellt. Das Zielverzeichnis muss aber bereits vorhanden sein. In diesem Beispiel erstellen wir die Textur in cstrike\materials\decals\sosi\
.
Das Quell-Verzeichnis ist dann STEAM\SteamApps\ACCOUNTNAME\sourcesdk_content\GAMENAME\materialsrc\decals\sosi\
Nachdem die Textur erstellt wurde, muss die vmt-Datei erstellt werden. Diese Datei beschreibt die Eigenschaft der Textur. In unserem Beispiel erstellen wir die Datei sosi.vmt
. Sie kann mit einem Texteditor bearbeitet werden.
"UnlitGeneric" { "$spriteorientation" "vp_parallel" "$spriteorigin" "[ 0.50 0.50 ]" "$basetexture" "decals/sosi/sosi" "$translucent" "1" "$alphatest" "1" }
Der Wert von $basetexture
gibt die Textur an. Die Dateiendung der vtf-Datei1) wird nicht mit angegeben.
In dem Artikel Stripper: Source ist die Installationsanleitung zu finden.
Um die Position für das Logo im Spiel auf der auszusuchen, kann der Konsolen-Befehl cl_showpos 1
verwendet werden. Oben rechts wird dann die Position angezeigt. So müsste man die ersten drei Zählenböcke notieren. Einfacher ist es, im Spectator-Modus zur gewünschten Position zu fliegen und dann den Befehl getpos
zu verwenden. Die Koordinaten werden dann in der Konsole ausgegen. Die ersten drei Zahlenblöcke sind die XYZ-Koodinaten, welche benötigt werden.
In unserem Beispiel fügen wir das fliegende Logo zur Map de_dust
hinzu. Dafür muss die Datei de_dust.cfg
im Verzeichnis $mod/addons/stripper/maps/
bearbeitet werden. Der Platzhalter $mod steht für das Verzeichnis der Modifikation. Bei CS:S wäre das Verziechnis cstrike
.
//add: add: { "origin" "196 -702 230" "GlowProxySize" "1" "framerate" "10.0" "scale" "0.3" "model" "materials/decals/sosi.vmt" "rendercolor" "118 147 163" "renderamt" "140" "rendermode" "5" "renderfx" "0" "classname" "env_sprite" } add: { "origin" "1675 2074 339" "GlowProxySize" "1" "framerate" "10.0" "scale" "0.3" "model" "materials/decals/sosi.vmt" "rendercolor" "118 147 163" "renderamt" "140" "rendermode" "5" "renderfx" "0" "classname" "env_sprite" }
Die Position wird durch „origin“ festgelegt. Der Wert von „model“ bestimmt das Logo, welches angezeigt werden soll. In diesem Fall ist es die erstellte Textur aus unserem Beispiel.
Bis jetzt wird das Logo nicht automatisch heruntergeladen. Es gibt mehrere Wege, um die Dateien zum Download hinzuzufügen. Man kann es über eine .res-Datei für jede Map einzeln machen oder Plugins für diese Aufgabe verwenden.
Im Artikel resource-file_.res wird beschrieben, wie die .res-Dateien aufgebaut sind. In unserem Beispiel müssten wir die Datei de_dust.res mit folgendem Inhalt erstellen:
"resources" { "materials/decals/sosi/sosi.vmt" "file" "materials/decals/sosi/sosi.vtf" "file" }
Mit dem Mani-Admin-Plugin lassen sich die Dateien sehr einfach zum Download hinzufügen. Dafür muss die Datei downloads.txt
im Verzeichnis cfg/mani_admin_plugin/
bearbeitet werden. Folgendes müsste für unser Beispiel hinzugefügt werden:
"downloads.txt" { "downloads" { "sosi_vmt" "materials/decals/sosi/sosi.vmt" "sosi_vtf" "materials/decals/sosi/sosi.vtf" } }
Mit dem SourceMod-Plugin SM File/Folder Downloader and Precacher können Dateien zum Download hinzugefügt. Im Artikel SourceMod-Plugins installieren wird die Installation von SM-Plugins beschrieben. In diesem Beispiel verwenden wir die Datei downloads_simple.ini
, die nach addons/sourcemod/configs
auf den Server kopiert werden muss.
Inhalt:
materials/decals/sosi/sosi.vmt materials/decals/sosi/sosi.vtf
Sollte der PublicServer mit sv_pure 1
laufen, muss das Logo freigegeben werden. Dies wird durch die Datei pure_server_whitelist.txt
eingestellt. Im Artikel Pure Server wird der Pure-Modus und der Aufbau der Datei beschrieben. Wenn man unser Beispiel Anwendet müsste die Konfigurationsdatei pure_server_whitelist.txt
folgendermaßen aussehen:
whitelist { // // By default, when in pure server mode, most content file types are only allowed to come from Steam. // materials\... from_steam models\... from_steam sound\... from_steam // // Allow custom player models. Don't do CRC checks on them because the clients may all // have different custom models and the server won't have them all. // models\player\... allow_from_disk materials\models\player\... allow_from_disk // // Allow custom spray decals. // materials\temp\... allow_from_disk materials\vgui\logos\... allow_from_disk materials\vgui\logos\ui\... allow_from_disk // // Clanlogo fuer PublicServer // materials/decals/sosi/*.* allow_from_disk }
Falls sv_pure 1
restriktiver sein soll und wirklich nur das Clanlogo erlauben soll, würde die Datei pure_server_whitelist.txt
folgendermaßen aussehen:
whitelist { materials\... from_steam models\... from_steam sound\... from_steam // // Clanlogo fuer PublicServer // materials/decals/sosi/*.* allow_from_disk }