Achtung Spoiler:
Steht im Wiki: https://civ-wiki.de/wiki/Pitboss_(Civ4)
http://www.microsoft.com/download/en....aspx?id=26999Fehlermeldung "Die Ausführung des Codes kann nicht fortgesetzt werden, da MSVCP100.dll nicht gefunden wurde":
Das Problem kann behoben werden indem man das C++ Redistributable Package 2010 installiert. Beim Download hat man die Wahl zwischen verschieden Varianten. Man muss immer vcredist_x86.exe wählen, weil es sich beim Wrapper und Civ4 um 32bit-Programme handelt.
Danke funktioniert
Achtung Spoiler:
Zuerst im falschen Faden, jetzt im Richtigen:
Ich hatte gestern den bekannten Fehler, dass die Punkteliste durcheinander fällt. Ich konnte es direkt damit korrelieren, dass ein anderer Mitspieler mit mir einen Diploschirm öffnen wollte. In diesem Moment trat der Bug auf, die Liste scheint anscheinend teilweise nach der ID sortiert zu sein. Vielleicht hilft das ja beim Fehler finden....
Link zum Post in der 89er Story von Empi und mir (Nicht für Mitspieler!)
Ich bin im Civfanatics-Forum auf eine Anleitung gestoßen wie man die DLL auch per Wine compilieren kann. Dann hat man nat. nicht den graphischenVC Studio-Debugger, aber das braucht man ja nicht unbedingt.
Um die Verwendung zu erleichtern habe ich ein Skript geschrieben, um die Installation zu erleichtern. Es ist im pbmod-Repo zu finden unter
https://github.com/civ4-mp/pbmod/blob/master/tests/sdk/
Wenn man das Repo geklont hat sollte man mit
ein neues Wineprefix für den Kompiler erstellen können, der dann installiert wird. Es nimmt ca. 1,1 GB in Anspruch.Code:./setup_dll_build_with_wine.sh unattended
Wenn das durchläuft kann man die Installation mit einem Testbuild überprüfen:
Code:./setup_dll_build_with_wine.sh build
Vorteil ist, man braucht kein VC Studio mehr? Gibt es noch mehr Vorteile? Im Halbschlaf dachte ich, ein Namesvetter unseres Bundeskanzler hat das Script committed, aber nach einer Weile sah ich dann den einen anderen Buchstaben.
Ich arbeite gerade an einer neuen Version den Wrappers. Die neue Version soll das Problem beheben, dass sich Spieler (vor allem in normalen MP-Spielen) untereinander nicht verbinden können.
Das liegt in der Regel am IPv6/IPv4-Stack des ISPs, die den IPv4-Traffic per NAT64 abwickeln (siehe https://de.wikipedia.org/wiki/NAT64#Vor-_und_Nachteile )
Um Civ4(*) fit für IPv6 zu machen kann man entweder ein virtuelles LAN erstellen, an dem alle Spieler teilnehmen, oder aber, und das wollte ich umsetzen, der Traffic wird schon beim User in IPv6-Pakete gekapselt. Dazu wird dem Spiel vorgegaukelt, dass die anderen Teilnehmer die gleich (Lan-weite, nicht localhost) IPv4-Adresse haben.
Von dort wird das Paket dann per IPv6 weitergereicht. Der Host muss beim Login die IPv6-Adresse des Clients erhalten und reicht sie beim Login anderer Spieler weiter.
Der aktuelle Stand kann hier heruntergeladen werden (release oder debug-Ordner): https://github.com/civ4-mp/save-over-http
Ich habe alle relevanten Dateien für den Wrapper jetzt in den Unterordner 'BTS_Wrapper_Libs' gepackt. Um die Vermischung mit der alten Version zu vermeiden sollte man folgende Dateien im BTS-Ordner löschen:
Achtung, im Unterschied zu vorigen Varianten werden die Logs nun unter 'Logs' und nicht mehr im gleichen Verzeichnis wie die BTS_Wrapper.exe abgelegt.Code:CivSaveOverHttp, libcurl.dll, libmicrohttpd-dll.dll, MinHook.x86.dll
Außerdem muss man mit '-l Name.log' einen Dateinamen vorgeben.
Beispielaufruf:
Will man eine zweite Instanz auf dem gleichen Rechner starten bietet sich folgendes an:Code:BTS_Wrapper.exe "mod= PBMod_v10" -l BTS_Wrapper.host.log -6
Achtung Spoiler:
Noch enthaltene Probleme:
• Die Subprozesse (socat.exe) werden nicht gekillt, wenn man das Programm schließt. Muss man manuell machen.
• Bei der -P/--with-save Option bei der man auch bei normalen Spielen das Save schnell überträgt kann sich das Spiel beim Beenden aufhängen. Nachdem
ich die da benutzte Library (libmicrohttpd) aktualisiert habe trat der Fehler nicht mehr auf, aber ganz sicher bin ich mir nicht, dass das ausreicht.
• Der Verbindungsaufbau geschieht beim neuen Verfahren immer nur vom neuen Client zu alten Clients. Laut Traffic-Analyse von Civ4 wird es bei
der normalen Variante von beiden Seiten aus probiert. Ich glaube es ist bei IPv6 nicht notwendig, da NAT/Firewall-Probleme unwahrscheinlicher sind?!
Was geht noch nicht geht/oder noch nicht getestet wurde:
• Das Feature für Spiele in der Civ4-Lobby benutzen.
• Das Feature für PB-Spiele benutzen. Dazu muss der Wrapper auch auf Serverseite angewendet werden, was ich noch nicht getestet habe.
• IPv6-only, d.h. auch der Host kommt ohne IPv4 aus.
(Dazu müsste ich im Civ4-Prozess die Stelle finden an welcher die IP aus dem Eingabefeld ausgelesen/weitergereicht wird.)
• Socat als Library einbinden wäre nett, damit man nur noch einem Programm in der
Windows-Firewall Zugangsrechte geben muss. Bei dem Projekt gibt es allerdings bisher keine
lib-Variante.
_________________________
*) Oder man benutzt die Steam-Variante von Civ4 Die dürfte auch IPv6 beherrschen?!
Geändert von Ramkhamhaeng (21. März 2023 um 08:53 Uhr)
Funktioniert der Wrapper mit Win11 ?
Wenn ich die dll Dateien mit im BtS Ordner habe, läuft BtS bei mir nicht.
Achtung Spoiler:
Kannst du die Fehlermeldung genauer beschreiben? Ich tippe auf das Problem, dass ich vor einigen Monaten auch hatte. Da hat Windows die Ausführung des Wrappers verhindert, wenn ich das als Zip aus dem Internet heruntergeladen hatte. Wenn ich das (binär identische) Zip nicht aus dem Internet geladen habe, ging es.
Stellte sich heraus, dass Windows bei allen Dateien trackt ob sie aus dem Netz/von einem anderen Benutzer sind und sie dann weniger vertrauenswürdig einstuft.
Lösung: Man muss man erst die Besitzerrechte des Zips übernehmen und es dann auspacken.
Weißt du schon was ich meine? Ich kann es ohne Windows leider schlecht besser beschreiben.
Ich habe kürzlich einen neuen Rechner bekommen. Leider mit Win11 statt Win10.
Spiele waren auf einer externen Festplatte, Festplatte umgesteckt, läuft mehr oder weniger.
BtS macht ein paar Probleme. Ich komme zwar zur Civauswahl, aber dann lädt das Spiel endlos. SP geht theoretisch, nur fehlt ein Großteil des Interface.
Neu installiert, NUR Wrapper rüberkopiert. Vergessen das da mehr zu gehörte.
Läuft alles, aber ich habe einen längeren Ladebalken, nachdem ich mich angemeldet habe. - Wrapper funktioniert eventuell nicht ganz richtig ? Egal, läuft und die 30s stören nicht unbedingt.
Dann bin ich im RB74 Thread darauf gestoßen, dass der Wrapper mit weiteren .dll Dateien kommt. Die fehlen meine ich bei mir.
Also herunter geladen und entpackt. Wrapper ersetztm die .dll Dateien fehlten.
Läuft nicht mehr. Ich komme bis zur Civauswahl, danach endloses Laden. SP nicht ausprobiert.
.dll Dateien gelöscht, Zug im RB74 ohne Probleme gemacht.
Problem sind vermutlich die .dll Dateien.
Wrapper log spricht von keinen Problemen, aber es gibt ein Problem Resource/Civ4.thm ?
ThemeParseLog schreibt da was auf.
Achtung Spoiler:
In dem Fall hat der Wrapper Civ4 gestartet und danach festgestellt, dass die DLLs fehlen und sich beendet. Das Spiel hat sich dann so verhalten wie ein normaler Civ4-Start.
Ja, hier würde ich noch mal das Log interessieren. Bitte lösche die Text-Datei mal und schaue ob sie neu angelegt wird. Evtl. ist sie auchAlso herunter geladen und entpackt. Wrapper ersetztm die .dll Dateien fehlten.
Läuft nicht mehr. Ich komme bis zur Civauswahl, danach endloses Laden. SP nicht ausprobiert.
[…]
Problem sind vermutlich die .dll Dateien.
unter C:\Users\xist10\AppData\Local\Temp\BTS_Wrapper.log statt {Installationsverzeichnis}\BTS_Wrapper.log.
ThemeParseLog kann ich als Fehlerquelle ausschließen.Wrapper log spricht von keinen Problemen, aber es gibt ein Problem Resource/Civ4.thm ?
ThemeParseLog schreibt da was auf.
Hast du die Log-Datei vor dem problematischen Versuch gelöscht um zu schauen ob sie neu angelegt wird? Der Inhalt passt zu einer funktionierenden Verbindung.
P.S. Ich scheitere gerade daran die Firewall von Windows wieder in einen Zustand zurück zu versetzen in dem Civ4 blockiert wird Dadurch ist es schwierig das Problem nachzustellen.
(Also ich habe schon alle Ausnahmen für Civ4 entfernt, u.a. indem ich die entsprechenden Einträge (die Namen enthalten absolute Pfade…) in
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\Fire wallPolicy\FirewallRules gelöscht habe und dann den Firewall-Service mpssvc neugestartet habe. Windows )
Ich habe eben die 2 Logdateien gelöscht und den Wrapper neu entpackt. Also die .dll Dateien sind wieder im Installationsverzeichnis.
cIV startet, wie gesagt, ich kann mich auf dem Server (jetzt PB93) einwählen und unsere Civ auswählen.
Danach Hintergrundbild und drehende Erde. Nach 2min. habe ich abgebrochen.
Log wurde neu angelegt - im Installationsverzeichnis - und enthält die gleichen (fast gleichen) Einträge.
SP funktioniert aber beim kurzen Test. Da war wohl cIV nicht ganz in Win integriert, als ich die Festplatte verbunden hatte.
Edit: Bezüglich des ThemParse Log kann ich zustimmen, ich habe das ganze eben nochmal ohne die .dll Datein versucht - PB93 hat knapp unter 1 min. geladen - und die Fehler treten immernoch auf.
Achtung Spoiler:
Welche Version hast du neu installiert? Hast du evtl. den Patch 3.19 vergessen?
Aber an jenem Morgen war es Magie gewesen. Und es hörte nicht auf, Magie zu sein,
nur weil man [inzwischen] eine Erklärung dafür hatte ... (Terry Pratchett)
Brandstifter benötigen keine Streichhölzer, sie zündeln mit Worten.
Wer Brandstifter im Internet duldet und nicht wieder und wieder widerspricht,
darf sich nicht wundern, wenn auch bald sein wahres Leben brennt. (frei nach Max Frisch)