Textdatei vor Programmstart automatisiert verändern?

  • Ersteller pfannkuchen2001
  • Erstellt am
pfannkuchen2001

pfannkuchen2001

Aktives Mitglied
Thread Starter
Dabei seit
17.02.2006
Beiträge
2.600
Reaktionspunkte
48
Hi,

ich habe hier 2 Macs mit Age Of Empires III und spiele gern ab und zu eine Runde. Nun habe ich beide Savegameordner gelöscht, und dafür hardlinks angelegt. Das Original liegt in meinem Dropbox Ordner.

D.h. sobald ich auf dem einen Mac das Spiel starte, werden alle savegames geupdated. Wenn ich das auf dem anderen Mac Starte, sind alle spielstände aktuell.

Nun macht das ganze 2 Probleme:

1. ich habe bei beiden Rechnern den gleichen Namen im Spiel - das ist sehr ungünstig, wenn es ums LAN spielen geht.
2. das eine ist ein Mac Pro (FullHD auflösung) und das andee ist ein Macbook Pro welches eine wesentlich kleinere Auflösung hat...

Da alle spielrelevanten Daten in einer einzigen XLM gespeichert sind, gibt es meiner Meinung nach nur eine Möglichkeit: bevor das jeweilige Spiel gestartet wird, muss die Auflösung angepasst werden. Direkt in der XML.

In dieser XML gibt es eine Zeile die so aussieht:

<Setting Name="optiongrfxres">1680 x 1050</Setting>

Was könnte ich tun, damit wenn ich Age OF Empires Starte nicht sofort das Spiel gestartet wird, sondern erst ein kleines Script welches diese Zeile berichtigt, und dann das Spiel startet?!

Wie könnte ich diese Zeile überhaupt austauschen!?


Idenn wären super!


Danke!

Pfannkuhen
 
So, ich habe einfach ein Script angelegt, welches so heisst wie die Ausführbare in Ageofempires.app/Content/MacOSX/. Mit der Starte ich Ageofempires und kann vorher Auch noch die Konfigurationen verändern.

Das script sieht bisher so aus:

#!/bin/sh
#Hier config verändern
open "/Applications/Age of Empires III.app/Contents/MacOS/Age of Empires III_orig"

Ich habe einen 2. Thread mit passenderem Titel bzw. Unterforum eröffnet:
https://www.macuser.de/threads/awk-oder-sed-zeile-ersetzen.630039/

Hier kann also zugemacht werden.

Gruß

Pfannkuchen
 
bevor hier ganz zu ist, vllt. die lösung:

ich habe ein Script in den Age Of Empires.app/Conten/MacOSX/ Ordner gepackt mit dem namen der Ausführbaren Datei, und das sieht so aus:

#!/bin/sh
sed 's/<Setting Name="optiongrfxres">.* x .*<\/Setting>/<Setting Name="optiongrfxres">1280 x 800<\/Setting>/' ~/Documents/Age\ of\ Empires\ III/Users/NewProfile.xml > ~/Documents/Age\ of\ Empires\ III/Users/NewProfile.xml_new &&
mv ~/Documents/Age\ of\ Empires\ III/Users/NewProfile.xml_new ~/Documents/Age\ of\ Empires\ III/Users/NewProfile.xml &&
sed 's/<OnlineName>.*<\/OnlineName>/<OnlineName>NEUERSPIELERNAME<\/OnlineName>/' ~/Documents/Age\ of\ Empires\ III/Users/NewProfile.xml > ~/Documents/Age\ of\ Empires\ III/Users/NewProfile.xml_new &&
mv ~/Documents/Age\ of\ Empires\ III/Users/NewProfile.xml_new ~/Documents/Age\ of\ Empires\ III/Users/NewProfile.xml &&
sed 's/<Setting Name="optionskirmishnickname">.*<\/Setting>/<Setting Name="optionskirmishnickname">NEUERSPIELERNAME<\/Setting>/' ~/Documents/Age\ of\ Empires\ III/Users/NewProfile.xml > ~/Documents/Age\ of\ Empires\ III/Users/NewProfile.xml_new &&
mv ~/Documents/Age\ of\ Empires\ III/Users/NewProfile.xml_new ~/Documents/Age\ of\ Empires\ III/Users/NewProfile.xml &&
open "/Applications/Age of Empires III.app/Contents/MacOS/Age of Empires III_orig"

Spielername und Auflösung des Spiels werden damit ausgetauscht!


Gruß

Pfannkuchen
 
Mit sed -i kannst du dir das ge"mv"e sparen.

Screen resolution:
Code:
system_profiler SPDisplaysDataType | grep 'Resolution' | cut -d':' -f2
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: pfannkuchen2001
Zurück
Oben Unten