und zwar wird eine textdatei in ein array eingelesen
der inhalt dieser textdatei sieht in etwa so aus:
Map12 = "worlds\multi\dm\dm_bw.cargo"
Map09 = "worlds\multi\dm\dm_overwatch"
Map05 = "worlds\multi\dm\dm_industry"
Map01 = "worlds\multi\dm\rc_devils_reach_station_v1_4f"
Map07 = "worlds\multi\dm\dm_infestation"
Map03 = "worlds\multi\dm\dm_industry2"
Map04 = "worlds\multi\dm\dark_temples"
Map02 = "worlds\multi\dm\pitchblack"
Map00 = "worlds\multi\dm\sw_tatooine"
Map06 = "worlds\multi\dm\dm_aizin"
Map10 = "worlds\multi\dm\dm_bw.battlecruiser"
Map08 = "worlds\multi\dm\dm_backstreets_v1-2"
Map11 = "worlds\multi\dm\dm_steam"
[...]
Map100 = "worlds\multi\dm\dm_westend"
Map101 = "worlds\multi\dm\dm_zebra1"
Map102 = "worlds\multi\dm\lab_tox"
Map103 = "worlds\multi\dm\dm_bw..rust"
Alles anzeigen
das sortierte array sieht dann so aus:
Map00 = "worlds\multi\dm\sw_tatooine"
Map01 = "worlds\multi\dm\rc_devils_reach_station_v1_4f"
Map02 = "worlds\multi\dm\pitchblack"
Map03 = "worlds\multi\dm\dm_industry2"
Map04 = "worlds\multi\dm\dark_temples"
Map05 = "worlds\multi\dm\dm_industry"
Map06 = "worlds\multi\dm\dm_aizin"
Map07 = "worlds\multi\dm\dm_infestation"
Map08 = "worlds\multi\dm\dm_backstreets_v1-2"
Map09 = "worlds\multi\dm\dm_overwatch"
Map10 = "worlds\multi\dm\dm_bw.battlecruiser"
Map100 = "worlds\multi\dm\dm_westend"
Map101 = "worlds\multi\dm\dm_zebra1"
Map102 = "worlds\multi\dm\lab_tox"
Map103 = "worlds\multi\dm\dm_bw..rust"
[...]
Alles anzeigen
Es soll aber so Aussehen:
Map00 = "worlds\multi\dm\sw_tatooine"
Map01 = "worlds\multi\dm\rc_devils_reach_station_v1_4f"
Map02 = "worlds\multi\dm\pitchblack"
Map03 = "worlds\multi\dm\dm_industry2"
Map04 = "worlds\multi\dm\dark_temples"
Map05 = "worlds\multi\dm\dm_industry"
Map06 = "worlds\multi\dm\dm_aizin"
Map07 = "worlds\multi\dm\dm_infestation"
Map08 = "worlds\multi\dm\dm_backstreets_v1-2"
Map09 = "worlds\multi\dm\dm_overwatch"
Map10 = "worlds\multi\dm\dm_bw.battlecruiser"
Map11 = "worlds\multi\dm\dm_steam"
Map12 = "worlds\multi\dm\dm_bw.cargo"
[...]
Map100 = "worlds\multi\dm\dm_westend"
Map101 = "worlds\multi\dm\dm_zebra1"
Map102 = "worlds\multi\dm\lab_tox"
Map103 = "worlds\multi\dm\dm_bw..rust"
[...]
Alles anzeigen
Hier der entsprechende Teil aus meinem script:
Spoiler anzeigen
;----------------------Serverconfig Auslesen----------------------------
Opt("GUIOnEventMode", 1) ; Change to OnEvent mode
$mainwindow = GuiCreate("Select Map config", 200, 65) ; GUI erstellen
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$combo = GuiCtrlCreatecombo("", 20, 5, 160, 80) ;Combo-Box erstellen
_GUICtrlComboBox_BeginUpdate($combo) ; Add files
_GUICtrlComboBox_AddDir($combo, "ServerData" & "\*.txt")
_GUICtrlComboBox_EndUpdate($combo)
$okbutton = GUICtrlCreateButton("OK", 70, 35, 60) ; "OK" Button erstellen
GUICtrlSetOnEvent($okbutton, "OKButton") ; "OK" Button Event
GUISetState(@SW_SHOW) ; Fenster anzeigen
While 1
Sleep(1000) ; Idle around
If $once = True Then ExitLoop
WEnd
$datei = "ServerData\" & GUICtrlRead ($combo)
ConsoleWrite (@CRLF & "$datei = " & $datei); DEBUG
$anzzeilen = _FileCountLines ($datei)
For $i = 1 To $anzzeilen
$s = FileReadLine ($datei,$i)
_ArrayAdd ($array_srvcfg, $s)
Next
;~ _ArrayDisplay ($array)
$find = _ArraySearch ($array_srvcfg, "GameType", 0, 0, 0, True) ; entsprechenden Berreich das gametüpes in der config finden
$gametype = _ArrayToString ($array_srvcfg,0,$find,$find)
If $gametype = "GameType = 2" Then ; Aktueller Spielemodus Erkennen
$TDMstart = _ArraySearch ($array_srvcfg, "[TeamDeathmatch]", 0, 0, 0, False) ; Startpunkt des auslesens
$TDMend = _ArraySearch ($array_srvcfg, "TimeLimit", 0, 0, 0, True) ; Endpunkt des auslesens
For $i2 = $TDMstart to $TDMend ; Anzahl der auszulesenden Zeilen
$s2 = FileReadLine ($datei,$i2) ; Textdatei auslesen
_ArrayAdd ( $TDM, $s2) ; Array mit Daten füllnen
Next
_ArraySort ($TDM) ; Array Sortieren
_Array2DEmptyDel ($TDM)
_ArrayDelete ($TDM, "[TeamDeathmatch]") ; "[TeamDeathmatch]" aus Array entfernen
_ArrayTrim($TDM, 25, 0) ; Map-Pfade entfernen, so dass nur noch der reine Mapname dasteht
_ArrayTrim($TDM, 1, 1) ; ausführungszeichen am ande entfernen
EndIf
ConsoleWrite (@CRLF & "zeilenanzahl = " & $i2) ;DEBUG