Register for your free account! | Forgot your password?

You last visited: Today at 13:02

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Prev]Patcher

Discussion on [Prev]Patcher within the Flyff Private Server forum part of the Flyff category.

Reply
 
Old   #1
 
iSynaptic's Avatar
 
elite*gold: 0
Join Date: Sep 2011
Posts: 195
Received Thanks: 65
[Prev]Patcher

Hallo Leute,

ich habe schon vor einiger Zeit mal begonnen einen Patcher für ein kommendes Projekt zu entwerfen und bräuchte mal ein paar Testkandidaten aus folgendem Grund:

Die Neuz sowie der Patcher wurden mit einem neuen Browser Objekt ausgestattet was auch Ingame zum Einsatz kommen wird. Es ist ein relativ großes SDK und lohnt auch nur, weil ich es eben auch Ingame nutzen werde.

Ich habe 2 Test Maschinen, bin mir aber immer noch nicht sicher, ob alle Verweise / Abhängigkeiten sauber ohne externe SDK's funktionieren und da ich keine 20 PC's mit verschiedenen Betriebssystem ect. habe, bitte ich euch an dieser Stelle mal um hilfe.

Startet das Ding einfach, gebt Feedback zum Patcher selbst und eventuell Info's zu Error Meldungen die euch um die Ohren fliegen.

Download:


VirusTotal:



Vielen dank.
iSynaptic is offline  
Old 01/24/2015, 11:04   #2
 
elite*gold: 0
Join Date: Jun 2013
Posts: 166
Received Thanks: 259
Quote:
Originally Posted by iSynaptic View Post
Hallo Leute,

ich habe schon vor einiger Zeit mal begonnen einen Patcher für ein kommendes Projekt zu entwerfen und bräuchte mal ein paar Testkandidaten aus folgendem Grund:

Die Neuz sowie der Patcher wurden mit einem neuen Browser Objekt ausgestattet was auch Ingame zum Einsatz kommen wird. Es ist ein relativ großes SDK und lohnt auch nur, weil ich es eben auch Ingame nutzen werde.

Ich habe 2 Test Maschinen, bin mir aber immer noch nicht sicher, ob alle Verweise / Abhängigkeiten sauber ohne externe SDK's funktionieren und da ich keine 20 PC's mit verschiedenen Betriebssystem ect. habe, bitte ich euch an dieser Stelle mal um hilfe.

Startet das Ding einfach, gebt Feedback zum Patcher selbst und eventuell Info's zu Error Meldungen die euch um die Ohren fliegen.

Download:


VirusTotal:



Vielen dank.
Design ist schoen, aber fuer ne 20k dll wuerde ich das nicht machen. Selbst wenn nicht nur Neuz und Patcher von abhaengig sind.
WurstbrotQT is offline  
Old 01/24/2015, 14:44   #3
 
iSynaptic's Avatar
 
elite*gold: 0
Join Date: Sep 2011
Posts: 195
Received Thanks: 65
Danke erstmal. Ja ich dachte mir, selbst wenn mein Flyff Client ( durchschnittlich 1.1GB ) auch 300-400 MB größer sein sollte, ist das absolut kein Weltuntergang, solange alles wirklich passt und überzeugt. Die Files sind ja im Moment nicht gemerged / komprimiert sonst würde man sicher auch noch einmal 5-6 MB sparen.

Für alle die nicht gern nur Text sehen wollen, hier auch noch einmal alternativ ein Bild:

iSynaptic is offline  
Thanks
1 User
Old 01/24/2015, 15:39   #4
 
Terrat's Avatar
 
elite*gold: 130
Join Date: Apr 2012
Posts: 1,173
Received Thanks: 670
Funktioniert er denn auch schon ?

Und um die Schnelligkeit zu verbessern:
Patchlist runterladen. <-Md5 nehmen
Patchlist (Lokal) <-Md5 nehmen
Md5(Lokal)=Md5(Web) = Sofort bereit

Design ist ansonsten sehr gut (9/10)
1-=Das schwarz bei den Image Slider passt nicht so ganz zum Rest.
Terrat is offline  
Old 01/24/2015, 15:44   #5
 
iSynaptic's Avatar
 
elite*gold: 0
Join Date: Sep 2011
Posts: 195
Received Thanks: 65
Ja, funktioniert und hat diverse Funktionen die man jetzt auf den ersten Blick nicht sieht und auch nicht sehen sollen. Die Funktion des Clienthashes ist bereits da sodass er nicht bei jedem starten alle Datein neu überprüfen muss, ist im Moment allerdings für "Vorzeigezwecke" auskommentiert.
iSynaptic is offline  
Old 01/24/2015, 15:47   #6
 
Terrat's Avatar
 
elite*gold: 130
Join Date: Apr 2012
Posts: 1,173
Received Thanks: 670
Sieht zwar Bombe aus aber leider viel zu Langsam für meinen Geschmack.
Terrat is offline  
Old 01/24/2015, 15:52   #7
 
iSynaptic's Avatar
 
elite*gold: 0
Join Date: Sep 2011
Posts: 195
Received Thanks: 65
Manche alte "Maschinen" haben vlt auch nicht die nötige C++ oder Directx Redist, das kann immer vorkommen und sowas wird eben voraus gesetzt und auch von unserer Seite angeboten ( als Download Link ).

Das ganze ist in C# erstellt und derzeit nicht im Release Build. Es ging in diesem Thread hauptsächlich darum, ob es auf euren PC's läuft oder Fehlermeldungen ausgibt. Die Performance ist selbst im Debug Okay. Ich habe 3430 Datein Gleichzeitig patchen lassen, OffiPatcher und dieser hier und selbst ohne Komprimierung ( kommt noch ) ist meiner schneller, also kann ich das mit dem "zu langsam" nicht so ganz verstehen, aber das hier ist ja auch noch eine frühe Version

Hab mal ein wenig mehr reingepackt das Resultat im Moment:

731 Datein in 59 Sekunden bei ( 320,6 KB/s )
--------------------
Im weiteren Verlauf editiere ich hier nochmal die Ergebnisse wenn die komprimierung ect drinn ist.
iSynaptic is offline  
Old 01/24/2015, 16:19   #8
 
Terrat's Avatar
 
elite*gold: 130
Join Date: Apr 2012
Posts: 1,173
Received Thanks: 670
Ist das überhaupt deiner ?
Sehe mir gerade mal den "Source" an und sehe z.B. beim starten:
this.AddTextToList("Das Spiel wird gestartet.\r\n");
Process process = new Process()
{
StartInfo = {
FileName = "metin2.bin",
UseShellExecute = false
}
};

Metin ?
A:Geklaut
B:Umgeändert und du warst vorher in Metin
Außerdem solltest du nicht alles mit mehreren Exen lösen siehe Optionen.
Terrat is offline  
Old 01/24/2015, 16:28   #9
 
iSynaptic's Avatar
 
elite*gold: 0
Join Date: Sep 2011
Posts: 195
Received Thanks: 65
Ich war nie in Metin nein, aber ich habe das C# Grundgerüst benutzt, kannst ja gern mal einen Vergleich anstellen:



Das Copyright ist in der Assembly sogar noch vorhanden, also erzähl mir nix vom klauen.
Mein Patcher ist optisch sowies vom Aufbau her viel ausgereifter, ich habe lediglich das Web Panel benutzt, weil ich kb hatte immer ne Patchlist zu erstellen mit i-einem Patchlist Creator.

Das mit der Optionsexecutable ist son Metin Ding welches im übrigen schon auskommentiert ist, aber das kannst du ja mit deinem Net Reflector nicht sehen. Von mir aus lade es hoch, das bekommt eh keiner kompilliert, nicht so - Denn dafür müsste man schon ein weniger Plan von der Materie haben, was du, wie man hier gut sieht: natürlich nicht hast.
iSynaptic is offline  
Old 01/24/2015, 19:56   #10
 
elite*gold: 0
Join Date: Jun 2013
Posts: 166
Received Thanks: 259
Mal ne Frage, was ist eigentlich falsch an dem built in WebBrowser Control von .NET?
WurstbrotQT is offline  
Old 01/24/2015, 21:41   #11
 
iSynaptic's Avatar
 
elite*gold: 0
Join Date: Sep 2011
Posts: 195
Received Thanks: 65
Es basiert auf IE
Also das reicht schon für mich aber es gibt diverse Punkte die für mich interessant waren um sie in die Neuz / Patcher einzubetten.

Erstmal ist .NET Active Object immer an der Version von IE festgemacht,
was auf verschiedenen Maschinen verschiedene Darstellungen erzeugen kann.

Speziell beim Patcher gibt es einen einfachen Grund, Transparenz der Formen ist nur mit einem unnötig großen Umwand verbunden wenn man das .Net Browserelement benutzt. Man muss via GDI oder WinForms ein Extra Fenster an einem WPF Fenster ausrichten um eine "Transzaprenz" erzeugen zu können und das ging mir extrem gegen den Strich

Insofern man nicht mit ASP.Net arbeitet, kommt es dazu in C++ Programmen häufig zu Scriptfehlern und auch die Framerate ist nicht so gut wie mit dem Chromium Core ( gerade da ich im Loginhintergrund ähnlich wie bei LoL Flash Objekte einbinden will )

Zum Fakt Sicherheit brauche ich denke ich nix sagen. Gerade was den CashShop oder weitere geplante Funktionen angeht, ist ein alter IE Browser einfach nicht zuverlässig. Ich will meine POSTS mit Userinformationen schon via SSL Verschlüsseln. Ich will valides CSS und HTML / XHTML und vorallem JS ( Tracking, Bugreport, ect ) ..

Ich sage es mal so, nötig wäre es nicht, aber für mein Empfinden und ein optisch gutes und qualitativ hochwertiges Projekt, kann man nicht mit so alter Technik ans Werk gehen. Zeig mir in der Flyff Szene einen Patcher der nur halbwegs so gut aussieht wie meiner. Der erste Eindruck zählt, das beginnt beim Patcher, geht über das Login und hört auch beim Webshop auf.

Jedes gescheite neue Spiel, egal ob BF, Tera Online oder sogar Steam nutzt Chromium und das hat haufen Gründe, wenn es dich interessiert, kannst du hier noch einmal nachschauen welche Vorteile es gerade in C++ Anwendungen bietet:
iSynaptic is offline  
Old 01/24/2015, 23:03   #12
 
elite*gold: 0
Join Date: Jun 2013
Posts: 166
Received Thanks: 259
Das Problem bei dem IE COM Component ist, dass die Browser Version automatisch auf Version 7 emuliert wird, wo weder HTML5 noch CSS3 noch sonst irgendwas unterstuetzt war (soweit ich weiss basierte die Version sogar noch auf dem Quirks Mode, korrigiert mich wenn ich falsch liege).
Das ist laut MS auf "Kompatibilitaet" zurueckzufuehren, um das Verhalten zu umgehen musst du nur in der Registry im FEATURE_BROWSER_EMULATION Bereich einen key mit dem Namen deiner Exe und als Value die Version des Browsers (naeheres hier ) erstellen.

Da wir davon ausgehen, dass jeder User mindestens Windows Vista auf seiner Maschine installiert hat (Target .NET 4.5, support wurde fuer XP eingestellt (seltsamerweise fuer eine subversion, 4 war noch voll unterstuetzt)) koennen wir auch von einer IE Version von 9 oder hoeher ausgehen, was einen "vollen" HTML5 Support (Xhr und canvas, was will man mehr?) und CSS3 soweit unterstuetzt, wie Chrome wahrscheinlich schon Jahre zuvor, was dir 20MB dll spart

Hab diesen Code mal fuer den Patcher geschrieben
Code:
	HKEY hKey;
	DWORD dwData = 9999;
	LONG lRes = RegCreateKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\MICROSOFT\\INTERNET EXPLORER\\MAIN\\FEATURECONTROL\\FEATURE_BROWSER_EMULATION", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKey, NULL);

	if( lRes == ERROR_SUCCESS ){
		RegSetValueEx(hKey, "roi.exe", 0, REG_DWORD, (const BYTE*)&dwData, sizeof(DWORD));
		RegCloseKey(hKey);
	}

	lRes = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\MICROSOFT\\INTERNET EXPLORER\\MAIN\\FEATURECONTROL\\FEATURE_BROWSER_EMULATION", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKey, NULL);

	if( lRes == ERROR_SUCCESS )
	{
		RegSetValueEx(hKey, "roi.exe", 0, REG_DWORD, (const BYTE*)&dwData, sizeof(DWORD));
		RegCloseKey(hKey);
	}
Hab damals die Version hardcoded weil ich ehrlich gesagt keine Ahnung hatte, wie man die installierte IE Version herausfindet

In C# is das ganz einfach, einfach vor InitializeComponent() oder wie das heisst (in der main form)
Code:
var version = (new WebBrowser()).Version.Major * 1000;
Probier das mal aus, dann kannste dir evtl 20mb sparen wenns deinen Anforderungen entspricht
WurstbrotQT is offline  
Thanks
1 User
Old 01/25/2015, 00:51   #13
 
iSynaptic's Avatar
 
elite*gold: 0
Join Date: Sep 2011
Posts: 195
Received Thanks: 65
Es bleibt ein .Net Object und ohne Wrapper ist da nix zu machen was Transparenz angeht, das selbe gilt auch für die Neuz. Bei Chromium ist das ganze ja schon gewrapt und ich bin nicht dazu in der Lage nen gescheiten Wrapper zu programmieren.

Außerdem gibt es soweit ich gehört habe auch Systeme, die gar kein IE Benutzen, zbsp diese Piraten Editionen, da müsste man sich dann auf den Standartbrowser beziehen und ob das zuverlässig ist weiß ich nicht. Im Normalfall ( zumindest in .Net ) nutzt er den Standartbrowser automatisch, was allerdings in Cpp nicht der Fall ist.

Wie gesagt, danke für die Anregungen, aber die 20MB ( unkomprimiert ) sind für mich jetzt kein Beinbruch und ich finde die implementierung sehr einfach. Vorallem kann man leicht von der .exe einfluss auf den Inhalt des Browser Objektes nehmen, was ich sehr genial finde. Wenn ich jetzt den Standart IE nehme, müsste ich diese ganzen Funktionen ja selbst programmieren.

Sagen wir, ich habe ein WebBases Archivement System und ich will einen "Preis" einlösen, drücke in dem Browserwindow einen Button und kann quasi direkt in der Neuz damit interagieren - Bringt schon Vorteile
iSynaptic is offline  
Reply


Similar Threads Similar Threads
Skydevil | 110 Cap | CH &EUR | Play2Win | Automatic Systems | Prev Server
04/20/2014 - SRO PServer Advertising - 26 Replies
New link Join us



All times are GMT +2. The time now is 13:02.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.