Wenn ich jetzt das Spiel neu starte, werden die Einstellungen zwar übernommen, aber in meinem Menü leuchten die entsprechend aktivierten Buttons nicht mehr. Der Spieler kann also nicht sehen, wie alles eingestellt ist.
Beispiel (config.ini):
local iniFilename = localAppDir .. 'config.ini'
local iniFile = io.open(iniFilename, 'r')
local newIniFilename = localAppDir .. 'config.ini.bak'
local newIniFile = io.open(newIniFilename, 'w')print(iniFilename)
print(newIniFilename)
local fullscreen = getObject('Conditions[Vollbildmodus]'):getBool(VConditionValue)
local subtitles = getObject('Conditions[Untertitel]'):getBool(VConditionValue)
local resolution = getObject('Values[resolution]'):getStr(VValueString)
local hotspots = getObject('Conditions[Hotspots]'):getBool(VConditionValue)
if iniFile ~= nil then
print('ini file exists')
for line in iniFile:lines() do
print(line)
local lineLowercase = line:lower()
if not string.find(lineLowercase, 'fullscreen') and not string.find(lineLowercase, 'resolution') and not string.find(lineLowercase, 'subtitles')
and not string.find(lineLowercase, 'hotspots') then
newIniFile:write(line .. '\n')
end
end
iniFile:close()
end
if fullscreen then
newIniFile:write('Fullscreen = Yes\n')
else
newIniFile:write('Fullscreen = No\n')
end
if subtitles then
newIniFile:write('Subtitles = Yes\n')
else
newIniFile:write('Subtitles = No\n')
end
if hotspots then
newIniFile:write('Hotspots = Yes\n')
else
newIniFile:write('Hotspots = No\n')
end
newIniFile:write('Resolution = ' .. resolution .. '\n')
newIniFile:close()
os.remove(iniFilename)
os.rename(newIniFilename, iniFilename)
Also, ich habe folgendes Problem. Wie kann ich die Einträge der "config.ini" beim Start des Spiels wieder in Bedingungen oder Werte übersetzen, damit beim start des Spiels alle Änderungen im Optionsmenü wieder angezeigt werden?
1. Bild: Optionsmenü nach dem Neustart des Spiels: 2. Bild: Optionsmenü nach dem die Einträge vorgenommen wurden:
das habe ich mir auch schon so vorgestellt. Meine Frage wäre nun aber, wie ich das praktisch umsetze. Leider bin ich in LUA nicht allzu bewandert. Für das schreiben der Config an sich habe ich schon Ewigkeiten gebraucht...
config.ini: (aktuelle config.ini meines Projektes mit den dazu gehörigen "Schalter ist aktiv" Bedingungen")
Resolution = 1600x900 Bedingung "_schalter3_aktiv" Fullscreen = No Bedingung "_schalter5_aktiv" 3D Effects = Yes Bedingung "_schalter6_aktiv" Surround = No Bedingung "_schalter7_aktiv" Language = German Bedingung "_schalter8_aktiv" Subtitles = Yes Bedingung "_schalter9_aktiv" Hotspots = No Bedingung "_schalter10_aktiv" MusicVolume = 30 SoundVolume = 60 SpeechVolume = 90
Kannst Du mir anhand von Zeile 1 und 2 meiner config ein Beispiel für das Ausführungscript zum auslesen und des setzens der entsprechenden Bedingung geben?
local loc_fullscreen = getObject('Conditions[_schalter5_aktiv]'):getBool(VConditionValue)if iniFile ~= nil then
for line in iniFile:lines() do
local lineLowercase = line:lower()
if lineLowercase == "fullscreen = no" then
loc_fullscreen:setValue(VConditionValue, false)
elseif lineLowercase == XY then
...
end
end
iniFile:close()
end
Cheers
* I have no idea if what I typed is correct! (used bing translator)
** I figured if I asked in this German thread more people would see my post
Could anyone post a full working example of this please?
Safe