De/Setup mod on steam

= Mod-Dateien =
Um Ihren Mod zu starten, müssen die erforderlichen Dateien in Ihrem Steamapps-Ordner erstellt werden. Das Source 2013 SDK stellt einige Basisdateien im Verzeichnis „game/“ für Sie bereit. Dieser Ordner enthält alle notwendigen Assets, Binärdateien und Skripte für Ihren Mod, die wichtigsten sind gameinfo.txt, bin/client.dll und bin/server.dll.
* Einzelspieler: Kopieren Sie das Verzeichnis von <Ihr Mod>/sp/game/mod_hl2 (oder mod_episodic) nach <steam_path>/steamapps/sourcemods/<Ihr Mod>
* Multiplayer: Kopieren Sie das Verzeichnis von <Ihr Mod>/mp/game/mod_hl2mp nach <steam_path>/steamapps/sourcemods/<Ihr Mod>
Starten Sie Steam nach diesem Schritt neu und Sie finden Ihren Mod in Ihrer Steam-Bibliothek aufgelistet. Jedes Mal, wenn Sie Ihre Binärdateien neu erstellen, müssen Sie sicherstellen, dass Sie sie in Ihr Mod-Verzeichnis unter „sourcemods/“ kopieren, bevor Sie Ihre Mod starten.
= Symlink-Mod-Verzeichnis =
Es wäre mühsam, das Mod-Verzeichnis jedes Mal zu kopieren, wenn wir unsere Binärdateien erstellen, also können wir stattdessen unseren Ordner „mod_“ symbolisch verlinken, damit er immer auf dem neuesten Stand ist. Löschen Sie zuerst den Ordner, den wir im vorherigen Schritt unter „sourcemods/“ erstellt haben (wenn Sie keine anderen Mods installiert haben, sollte dieses Verzeichnis jetzt leer sein).
* Öffnen Sie Ihr Terminal (Windows: cmd.exe, OS X: Applications/Utilities/Terminal, Linux: xterm oder terminal)
* Wechseln Sie in das Verzeichnis <steam_path>/sourcemods/
* Erstellen Sie einen Symlink zu Ihrem Mod-Verzeichnis
** Windows: mklink /J <mod_name> <path_to_source>/<sp|mp>/game/<mod_hl2mp|mod_hl2|mod_episodic>
** Linux: mkdir <mod_name> && sudo mount --bind <path_to_source>/<sp|mp>/game/<mod_hl2mp|mod_hl2|mod_episodic> <mod_name>
Jedes Mal, wenn Sie Assets aktualisieren oder Ihren Code in Ihrem „game/mod_“-Verzeichnis neu erstellen, werden die Änderungen automatisch dort sein, wenn Sie Ihren Mod das nächste Mal starten.
= Ausgabeverzeichnis ändern =
Sie können das Ausgabeverzeichnis Ihrer Binärdateien auf etwas anderes als „mod_hl2, mod_episodic oder mod_hl2mp“ ändern, indem Sie mit der rechten Maustaste auf Projekt -> Eigenschaften -> Build-Ereignisse -> Post-Build-Ereignisse klicken und die Pfade wie gewünscht ändern. Dies muss sowohl für den Client als auch für den Server erfolgen.
Beispiel
falls nicht vorhanden "..\..\..\game\MY_MOD\bin\." mkdir "..\..\..\game\MY_MOD\bin\."
copy "$(TargetDir)$(TargetFileName)" "..\..\..\game\MY_MOD\bin\.\$(TargetFileName)"
if ERRORLEVEL 1 goto BuildEventFailed
falls vorhanden "$(TargetDir)$(TargetName).map" kopiere "$(TargetDir)$(TargetName).map" ..\..\..\game\MY_MOD\bin\.\$(TargetName).map
kopiere "$(TargetDir)$(TargetName).pdb" ..\..\..\game\MY_MOD\bin\.\$(TargetName).pdb
if ERRORLEVEL 1 goto BuildEventFailed
Gehe zu BuildEventOK
:BuildEventFailed
Echo *** FEHLER! PostBuildStep FEHLGESCHLAGEN für $(Projektname)! EXE oder DLL wird wahrscheinlich ausgeführt. ***
del /q "$(Zielverzeichnis)$(Zieldateiname)"
Ausgang 1
:BuildEventOK
= Probleme beim Ausführen Ihres Mods =
Wenn beim Start, nach dem Intro-Video, dein Mod abstürzt, während Steam aktiv ist, er aber ohne Probleme läuft, wenn Steam beendet ist, dann folge dieser Anleitung:
1 - zum Öffnen der Datei steam_api.h (src\public\steam)
2. - Finde dies und DELETE/COMMENT (Zeile 551 - 562):
	m_pSteamMusicRemote = SteamClient()->GetISteamMusicRemote( hSteamUser, hSteamPipe, STEAMMUSICREMOTE_INTERFACE_VERSION );
	if ( !m_pSteamMusicRemote )
	{
		return false;
	}
	
	m_pSteamHTMLSurface = SteamClient()->GetISteamHTMLSurface( hSteamUser, hSteamPipe, STEAMHTMLSURFACE_INTERFACE_VERSION );
	if ( !m_pSteamHTMLSurface )
	{
		return false;
	}
Category:Programming:de