Patch Downloader

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Killer999

Betreff: Patch Downloader

BeitragDi, Jan 03, 2006 4:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich wollt mal ein kleinen Beta Test machen für mein Spiele Patcher. Ich wollt für meine Games So ne art autopatch entwickeln ist zwar noch in der anfang phase aber mal gucken ob ihr bugs findet.

Download 890KB
http://home.arcor.de/killer1919/Patchen.rar

Man muss erstmal die check.exe ausführen weil er checken muss ob es eine neue datei gibt.

neues update gibt es um 22 Uhr am 03.01.06


update wurde hochgeladen
 

Killer999

BeitragDi, Jan 03, 2006 23:25
Antworten mit Zitat
Benutzer-Profile anzeigen
und funktoniert alles? ist zwar noch keine grafiken drin aber äuft es?

Achso ich habe auch festgestellt das dieses bb3d fenster sich immer aufhängt baer trotzdem weiter dl?


Code: [AUSKLAPPEN]
Function GET_FILE_FROM_WEB(server$,port%,file_server$,file_hdd$)
   Local a_header$[50]

   stream=OpenTCPStream(server$,port%)
   If stream<>0 Then
      WriteLine stream,"GET "+file_server$+" HTTP/1.1"
      WriteLine stream,"Host: "+server$
      WriteLine stream,Chr$(10)     
       
datei=WriteFile(file_hdd$)


      status=1
      ende=0
      tmp$=""
      ;Kopf auslesen
      steps=1
      Repeat
         txt$=Trim(ReadLine(stream))
         a_header[steps]=txt$
         steps=steps+1
      Until txt$=""

      For steps=1 To 50
         ;If a_header[steps]<>"" Then Print a_header[steps]
         If Upper(Mid(a_header[steps],1,16))="CONTENT-LENGTH: " Then
            tmp_length=Int(Mid(a_header[steps],17,-1))
             
         End If
      Next

     
       
      ;Rest in file schreiben
      bytes=0
      tmp_steps=0
      Repeat
         txt$=Trim(ReadByte(stream))
         WriteByte datei,txt$
         bytes=bytes+1
         tmp_steps=tmp_steps+1
         
         If 1000=1000 Then
            tmp_steps=0
            Cls
            Text 10,15,"Download: "+(bytes/1000)+"Kb / "+(tmp_length/1000)+"Kb"
         End If

   
Until  Eof(stream)

      CloseFile datei
      CloseTCPStream stream


was ist daran flasch?

5k41

BeitragMi, Jan 04, 2006 0:17
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab es grad mal getestet...funktionieren tut es also er läd das bild runter aber das fenster verkackt sich wie du schon sagst sofort...ich weiss nicht was die funktion mit dem verkacken zutun hat...dort kann ich nichts ausser ein fehlendes end function finden...guck dir doch alle schleifen einmal genauer an ...sry mehr kann ich dir leider grad auch nicht sagen... Sad
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

BtbN

BeitragMi, Jan 04, 2006 11:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Request fehlt ein "Connection: close".
 

Killer999

BeitragDo, Jan 05, 2006 3:18
Antworten mit Zitat
Benutzer-Profile anzeigen
stehe gerade vor ein problem.
Undzwar.

Bei meinen Patch Downloader wird nur die aktuelle version dl. Also hat man denn 1 patch nicht dann wird man ihn auch nicht über denn patcher dl können weil er immer nur das aktuelle dl.

Wollt halt sowas einbauen.

Aber ich will ja beim jeden nicht ne neue .exe beifügen wo der code dann drin steht. Hab mier das irgend wie so gedacht.


In der update datei werden halt die patches Dateien reingespeichert. bei meinen Updater wird nur überprüft welche datei halt im verzeichnis liegt. Liegt die datei nicht im verzeichnis so wird halt gesagt mit if die muss dl werden. Dann wird sie dl. So wie kann ich eine If schleife machen die auch die älteren dateien abfragt. Die älteren dateien sind im update.dll gespeichert. Er müsste also erstmal dadrin abfragen.

5k41

BeitragDo, Jan 05, 2006 17:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Mh... ich weiss nicht aber ich glaub der Befehl EoF könnte dir weiterhelfen...
du könntest die datei auslesen (until EoF) einen counter mitlaufen lassen die neue datei auslesen wieder einen counter mitlaufen lassen und wenn der counter der neuen datei größer ist muss er was runterladen,was du aus der datei rausließt...ich hoffe ich hab dich richtig verstanden und es nicht zu umständlich erklärt
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

5k41

BeitragSa, Jan 07, 2006 1:53
Antworten mit Zitat
Benutzer-Profile anzeigen
wie stehts denn nun mit deinem Programm *neugierig sei* meld dich mal wieder!
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image
 

Killer999

BeitragSo, Jan 08, 2006 1:10
Antworten mit Zitat
Benutzer-Profile anzeigen
naja ich weiß ja nicht ob das so funktonieren kann.

Bei mir wird die dll. Datei immer als erstes dl. Darin sind die Updates Gespeichert. Es wird dann mit check überprüft ob die datei im ordner drin ist. Ist sie nicht drin wird sie dl. Wird dann ein neues Update geben wird es erneut eine update.dll datei geben. Darin sind wieder nur die neuen Dateien drin. Ich kann zwar immer die alte datei darin angeben aber nachher sind die ungefähr z.b 10 alte dateien habe aber in der check.exe nur einmal denn Befehl ist für 1 alte datei auslesen. Ab da ist mein problem. Ich müsste wenn die check.exe immer wieder updaten und ein neuen befehl schreiben aber das ist zu umständlich.

class.nameDanger

BeitragDo, Jan 12, 2006 23:03
Antworten mit Zitat
Benutzer-Profile anzeigen
könntest du vielleicht mal über sowas ein Tutorial schreiben?
Oder ins Code-Archiv sowas machen

Das wäre echt super von dir!!!!
User posted image
 

Killer999

BeitragSa, Jan 14, 2006 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
So habe es endlich geschaft das sich das Fenster nicht mehr auf hängt

http://home.arcor.de/killer191...atcher.rar


kann ich machen muss aber erstmal meine probleme mit dem code im griff griegen. Kann keiner bei meinem Problem helfen?
 

Killer999

BeitragMo, Jan 16, 2006 23:44
Antworten mit Zitat
Benutzer-Profile anzeigen
hiho

habe da wieder ein Problem. Undzwar ich habe das alles nun in ein arrays gesetzt- Und habe das so gemacht. Sobald die datei dl ist wird zum arrays +1 gezählt. Sobald er halt alle daten hat kommt halt normal ein error. Der error kommt zwar aber immer zu früh- Hat er 2 dateien dl beendet er das programm einfach aber wenn ich ihn zwinge im code das er 3 dl soll kommt bei der 3 ein "Memory access violation"

Das Programm ist bald fertig ^^
 

Killer999

BeitragDi, Jan 17, 2006 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Sry für die ganzen posts. Hier ist das programm könnt ihr ja mal testen.

http://home.arcor.de/killer1919/Patchen.rar


Immer diese fehler. Kann die array nur 2 zahlen addieren dann error. Und noch was immer wenn ich check mache ist ja die aktuelle .dll datei dl. Nun habe ich gemerkt wenn ich die aktuelle auf mein ftp hochlade dann dl er immer nur die ältere ich schätze mal er hat die ale in der cache oder so kann mann die irgend wie löschen? oder aktualliesieren.

class.nameDanger

BeitragMi, Jan 25, 2006 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
kannste bitte nochmal den letzten link neu machen geht nämlich nich mehr!? Sad

edit: ahhh hat sich erledigt^^

edit 2 : kann ich das irgenwie in mein code einbauen?!?
User posted image
 

Moses

BeitragMi, Jan 25, 2006 12:44
Antworten mit Zitat
Benutzer-Profile anzeigen
hmmm ich würde das eleganter machen:
der patcher lädt sich als erstes ne plaintextfile mit dateinamen und den dazugehörigen md5-prüfsummen runter dann überprüft er die files auf dem eigenem rechner ob sie den prüfsummen entsprechen und macht sich ne liste von den dateien die die nicht mehr uptodate sind um sie anschliessend runter zu laden.

hat natürlich den 'nachteil', dass von den spielern gemoddete files rigeros überschrieben werden...

eine andere, einfachere lösung währe du integrierst eine art versionsnummer in den namen jeder datei zb: menuhintergrund03_v00001.png die plantextfile enthällt alle aktuell nötigen/gültigen dateinamen und der patcher lädt fehlende dateien runter, fragt bevor er anfängt zu laden ob er veraltete dateien (dateien mit nicht mehraktuellen namen) löschen soll.

Dante

BeitragDi, Feb 07, 2006 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganz gut^^
nur was langsam
  • Zuletzt bearbeitet von Dante am Fr, Feb 10, 2006 8:12, insgesamt einmal bearbeitet
 

Mashed Crashed

Betreff: Zusazliche Frage

BeitragDo, Feb 09, 2006 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann man exe dateien patchen oder muss man die dann ersetzen bzw neu complimiren?
 

Killer999

BeitragMo, Feb 13, 2006 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Moses hat Folgendes geschrieben:
hmmm ich würde das eleganter machen:
der patcher lädt sich als erstes ne plaintextfile mit dateinamen und den dazugehörigen md5-prüfsummen runter dann überprüft er die files auf dem eigenem rechner ob sie den prüfsummen entsprechen und macht sich ne liste von den dateien die die nicht mehr uptodate sind um sie anschliessend runter zu laden.

hat natürlich den 'nachteil', dass von den spielern gemoddete files rigeros überschrieben werden...

eine andere, einfachere lösung währe du integrierst eine art versionsnummer in den namen jeder datei zb: menuhintergrund03_v00001.png die plantextfile enthällt alle aktuell nötigen/gültigen dateinamen und der patcher lädt fehlende dateien runter, fragt bevor er anfängt zu laden ob er veraltete dateien (dateien mit nicht mehraktuellen namen) löschen soll.



Genau wie du es gesagt hat funkotniert mein Patcher. Ja man könnte es auch so machen warum nicht. Werd ich vielleicht dann mal ein bauen.


Achso man keine exe dateien patchen das ist unmöglich mit bb glaub ich.
Nur Dateien

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group