Konfiguration einer Mod auf Steam

From Valve Developer Community
< De
Jump to navigation Jump to search


Broom icon.png
Dieser Artikel muss gesäubert werden, um einen höheren Standart an Qualität zu erreichen, denn:
Artikel könnte verbessert werden, um Anweisungen für Mac/Linux einzuschließen
Für Hilfe, sieh im Artikel VDC Editing Help und Wikipedia cleanup process nach. Bitte beachte auch eventuell vorhandene Hinweise auf der talk page.

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;
	}