Garry's Mod

Garry's Mod

Not enough ratings
Gmod (TTT)Random/Zufällige Startmap
By ♂§ÆM:-|-:
In this guide I want to show you, how you get a random map if you start the server.
#Lazy
In diesem Guide zeige ich euch wie ihr es hinbekommt, dass ihr nicht immer die gleiche Map am Anfang habt, sondern eine zufällige.
#Faul
   
Award
Favorite
Favorited
Unfavorite
1 Einführung | Introduction
  • G: Hallo fröhliche Gmod Community,
    ich denke jeder der einen eigenen Gmod Server hat kennt die folgenden Zeilen:
  • E: Hey happy Gmod Community,
    I think everyone who is an owner from a server know the following lines:
@echo off cls echo protecting srcds from crashes... echo If you want to close srcds and this script, close window and type Y depending on your langugae followed by Enter title srcds.com watchdog :srcds start/wait srcds.exe +maxplayers 15 -console -authkey 123456789 +host_workshop_collection 123456789 +gamemode terrortown +map ttt_mapname echo(%time%) Warning: srcds closed or crashed, restarting. goto srcds

  • G: Es stammt aus der Batchdatei die zum starten des Servers genutzt wird.
  • E: The code comes of the batchfile to start the server.
2 Änderung der Batchdatei | Edit the batchfile
  • G: Man muss die Map die als erstes vom Server geladen wird festlegen, dabei ist Abwechslung doch viel besser!
    Man kann natürlich jedes mal die Datei öffnen einen anderen Mapnamen hineinschreiben und dann den Server starten was ich allerdings nie getan habe, weil ich zu faul bin. ^^
    Also suchte ich im Internet nach einer Lösung wodurch die Map am Anfang durch ein Zufallsprinzip entschieden wird, doch fand ich nichts in dem bereich.
    Ja man kann nachdem der Server gestartet hat einfach mapchange machen, doch auch das war mir zu doof. Also hab ich angefangen mir eine Lösung zu überlegen und hab auch eine gefunden und diese möchte ich euch heute vorstellen. Es gibt bestimmt noch ein paar Leute die so Faul sind wie ich, vielleicht gibt es auch schon bessere Lösungen oder einfachere aber ich hab mir diese halt erarbeitet.
    Nun zu allererst fügen wir dem script oben noch ein paar Zeilen hinzu und ersetzten den Mapnamen durch eine Variable. Die neuen sachen sind Markiert. Das sähe dann so aus:
  • E: Usually you have to wirte the mapname in the code like "+map ttt_example", so if I start the Server its ervery time the same map at the beginning. I looked up in the internet for a way to get a random startmap but i found nothing. So I tried to get a solution by my own and I got it!
    Now I want to present you my solution.
    At first we add the script 2 more lines and write instead of the mapname %result%, its a variable. New stuff is marked.
    Here is the edited code:
@echo off
for /f "delims=" %%a in ('cscript//nologo C:\yourPath\SteamCmd\steamapps\common\GarrysModDS\random.vbs') do (set result=%%a)
cls echo protecting srcds from crashes... echo If you want to close srcds and this script, close window and type Y depending on your langugae followed by Enter title srcds.com watchdog :srcds start/wait srcds.exe +maxplayers 15 -console -authkey 123456789 +host_workshop_collection 123456789 +gamemode terrortown +map %result% echo(%time%) Warning: srcds closed or crashed, restarting. goto srcds
  • G: Ihr müsst den Pfad im Code zu eurem SteamCmd Ordner anpassen, sieht dann zu beispiel so aus: C:\users\max\SteamCmd\steamapps\common\GarrysModDS\random.vbs
    Und stellt sicher, dass:
    for /f "delims=" %%a in ('cscript//nologo C:\yourPath\SteamCmd\steamapps\common\GarrysModDS\random.vbs') do (set result=%%a)
    in einer Zeile in eurer Batch-Dateis steht.
    Manche haben vielleicht schon gesehen, dass hier auf die Datei "random.vbs" zugegriffen wird, welche sich im gleichen Ordner wie die srcds.exe und die .bat Datei befindet.
  • E: You have to rewrite the path in the code to your SteamCmd folder as an example:
    C:\users\max\SteamCmd\steamapps\common\GarrysModDS\random.vbs
    Make sure that:
    for /f "delims=" %%a in ('cscript//nologo C:\yourPath\SteamCmd\steamapps\common\GarrysModDS\random.vbs') do (set result=%%a)
    is in a single line.
    I think you saw that I access to the "random.vbs" script. The "random.vbs" file is in the same directory as srcds.exe and the batch file.
    G: Nach ihr die Batchdatei bearbeitet habt, solle sie ungefähr so aussehen:
    E:After you edit the batch file it should look similary to this:

G: Vielleicht habt ihr auch gesehen das sich noch eine weitere Datei dort befindet; die "maps.txt" auch diese könnt ihr schon einmal anlegen.
Des Weiteren müsst ihr diese mit den Namen der Maps füllen. Sieht dann zum Beispiel so aus:
E: Maybe you saw the file "maps.txt" in the directory too. You have to create the file and wrote the name of your maps wich are on the server in it.
Then it looks like this:

  • G: Das ist mit die meiste Arbeit die ihr habt, da ihr jeden Mapnamen genau richtig dort hineinschreiben müsst. Wenn ihr euch neue Maps auf den Server ladet und diese auch am Anfang drankommen können sollen, müsst ihr den Namen in dieses Dokument schreiben. Wenn ihr eine Map vom Server löscht ist ratsam, den Namen auch aus dem Dokument zu löschen, weil wenn sie ausgewählt wird und ihr die Map aber gar nicht mehr habt natürlich auch keine Map geladen werden kann.
    Nun aber zum Kern des ganzen die vbs Datei.
    Wenn ihr nicht wisst wie ihr eine .vbs Datei erstellt nutzt den folgenden Punkt, ansonsten könnt ihr den überspringen.
  • E: This is the biggest work progress, dont forget to remove a map from the document if you remove a map from the server or you get errors.
    If you don't know how you create a .vbs file use point 3, if you know it skip the point.
3 Erstellung der .vbs Datei | Create the .vbs file
G: Eine .vbs Datei zu erstellen ist nicht sonderlich schwer.
E: It's really easy to create a .vbs file.

1.
G: Wenn ihr euch mit eurer Maus auf dem Desktop an einer Stelle befindet, wo es leer ist drückt ihr auf die Rechte Maustaste. Dort geht auf die Zeile wo "Neu" steht und klickt auf "Textdokument".
E: If you are on the desktop on an empty place you click on the right mouse button.
Go on new and click on "textdocument".


2.
G: Wenn ihr das getan habt, erscheint dieses und ihr öffnet es einfach mit einem Doppelklick, geht oben links auf "Datei" und geht auf "Speichern unter...".
E: Now you open the textdocument and click on "File" in the left upper corner. Here you click on "save as".

3.
G: Habt ihr auch dies getan sollte sich ein neues Fenster öffnen wo unten "Dateiname" und "Dateityp" steht. Bei "Dateityp" klickt ihr und ändert dieses von "Textdateien(*.txt)" zu "Alle Dateien".
E: Now a new window open. At the bottom is "filename" and "filetype". You click on "filetype" and choose the option "all files"

4.
G: Nun müsst ihr die Datei noch umbenennen und eine Dateiendung mit anbringen. Alles was im Feld von "Dateiname" steht könnt ihr löschen und schreibt stadessen "random.vbs", danach drückt ihr auf "Speichern".
E: Now you delete the original filename and write "random.vbs" now you press on "save".

5.
G: Nun solltet ihr zwei Dateien besitzen, wovon ihr das Textdokument löschen könnt.
E: Now you have two files on the desktop delete the textdocument.
4 Die .vbs Datei | The .vbs file
G: Nachdem wir also unsere "random.vbs" Datei erstellt haben und diese im gleichen Ordner wie die srcds.exe und die .bat Datei .platziert haben, wird es Zeit diese auch mit Inhalt zu füllen.
Auch hier habe ich wieder den Code für euch.
E: After we create our .vbs file move it in the same directory as the srcds.exe and the .bat file. Now you need the code for the vbs file, copy it.
Const sInFile ="C:\yourPath\SteamCmd\steamapps\common\GarrysModDS\maps.txt" aryMaps = Split(CreateObject("Scripting.FileSystemObject").OpenTextfile(sInFile, 1).ReadAll, vbCrLF) nMaps = UBound(aryMaps) - LBound(aryMaps) + 1 Dim Rndnum Randomize Rndnum = Int((nMaps*Rnd) + 0) Dim Rndmap Rndmap = aryMaps(Rndnum) wscript.echo Rndmap

G: Auch hier müsst ihr den Pfad wieder so umschreiben, dass ihr im "SteamCmd" Ordner landet.
Wenn ihr dies nun alles getan habt, könnt ihr euren Server ganz normal starten und ihr werdet nicht mehr jedes mal die gleiche Map haben ohne was zu tun.
E: Here you have to rewrite the path to the "SteamCmd" folder too like in the batchfile.
If you finish all these steps you can start your server like every time with the batch file and you have a random startmap.

G: Eure vbs-Datei sollte so aussehen:
E: Your vbs file should look like this:


Gruß ♂§ÆM:-|-: / Wolffi ;)
Greetings ♂§ÆM:-|-: / Wolffi ;)

Other stuff from me:
Round Ending Music: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=948009412
SATM FIX: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=970826569
More balanced weapon flare gun fix: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=970826444
Blue Bull Fix: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=1108166504






19 Comments
TWIX 13 Jul, 2019 @ 5:27pm 
Ok, jetzt hat es geklappt, hatte jedoch keinen Zeilenumbruch, sondern hatte den Serverordner auf dem Desktop, habe mir dann ein SteamCMD Ordner in Program Files angelegt, die start.bat und random.vbs für den neuen Ordner umgeschrieben und den Server dann gestartet.
Bundesnatzagentur 13 Jul, 2019 @ 1:54pm 
Twin du hast genau den gleichen Fehler in der random.vbs wie ich ihn hatte. Schau mal in der Kommentarspalte auf der ersten Seite.
♂§ÆM:-|-:  [author] 13 Jul, 2019 @ 11:56am 
dann kann ich dir nur helfen, wenn ich deine codes gesehen habe ^^
TWIX 13 Jul, 2019 @ 10:31am 
Nein, habe ich nicht, habe auch mal nur 5 Maps eingetragen und ausprobiert usw.
Geändert hat sich aber nichts
♂§ÆM:-|-:  [author] 13 Jul, 2019 @ 8:51am 
dann hast du in deiner Maps.txt wohl in einer Zeile: Eingabefehler.bsp stehen aber die Map wohl nicht auf dem Server
Ich kann mir aber auch nicht vorstellen das eine Map so heißt :P
TWIX 13 Jul, 2019 @ 7:33am 
Bei mir funktioniert das nicht, bei mir steht:
CModelLoader::Map_IsValid: No such map 'maps/Eingabefehler.bsp'
map load failed: Eingabefehler not found or invalid
♂§ÆM:-|-:  [author] 9 Jul, 2019 @ 11:37am 
also erstmal muss ja nicht jedes welche haben, ansonsten, wenn nichts in der Beschreibung steht, nur indem du es dekompilierst und im Code nachguckst ;)
Bundesnatzagentur 8 Jul, 2019 @ 3:51pm 
Und wie finde ich beispielsweise bei einem Addon ohne Beschreibung im Workshop die ConVars heraus?
In der Tat, ist jede Menge Arbeit.^^
♂§ÆM:-|-:  [author] 8 Jul, 2019 @ 8:03am 
Wenn du den ConVar-Namen einfach in die Konsole eingibst bekommst du den(die) aktuellen wert(e) und die gesetzten Flags zurück
Joa man muss viel rumprobieren^^
Bundesnatzagentur 8 Jul, 2019 @ 6:43am 
Aber in der server.cfg bleiben sie dann logischerweise. Kann ich das irgendwie nachprüfen?
Wenn man noch nie damit gearbeitet hat, ist das ganz schön umfangreich und schlecht nachzuvollziehen^^
Danke auf jeden Fall für deine Hilfe und Geduld^^