Salutari pamanteni! Iata AutoPatcher, program facut de mine. WARNING: MULT DE CITIT v1.0 : v0.8 Versiunea curenta: 1.0 Changelog 0.8 to 1.0: Programul a iesit din beta Am reparat un bug la butonul play Am adaugat un progressbar Am rezolvat niste buguri mari in unealta TPAP RE/C Sa explic ce face programul: Verifica md5 checksum al fiecarui fisier al jocului, iar daca s-a schimbat, sterge fisierul corupt, si descarca unul nou; iar daca fisierul de verificat lipseste va fi descarcat Si... asta e tot!? NU! Programul este fully costumizable! Dar stai putin, ce face defapt programul, cum funtioneaza el? Cand programul porneste, citeste un fisier numti patch.l (PATCH.L). Acesta contine 6 linii: Linia1: adresa pentru descarcare fisierului files.hash Linia2: adresa pentru descarcare fisierului files.path Linia3: adresa pentru descarcare fisierului files.addr Linia4: adresa pe care o acceseaza web browserul la pornire Linia5: un nume la alegere al ferestrei Linia6: path-ul catre executabilul rulat de butonul Play Daca numele scris pe linia 5 nu este "default" (default face ca fereastra sa aiba numele ei original) numele ferestrei va fi tot textul de pe linia 5. Daca executabilul de la linia 6 exista butonul Play poate fi folosit (adica Enabled = true, ma rog, intelegeti voi, e scris in vb.net ca toate programele facute in casa) Daca fisierul patch.l a fost citit cu succes butonul Check poate fi folosit si el (adica devine "Click-abil" , ca la butonul Play) Cand apasati butonul Check, incepe procesul de verificare al fisierului. In ce consta acesta: Mai intai verifica daca fisierele files.hash files.path si files.addr exista (vom afla mai tarziu pentru ce sunt ele necesare) si nu au fos sterse din cauza inchiderii fortate a programului, iar daca ele exista deja le va sterge. Apoi descarca unele noi de la adresele citite mai devreme din fisierul patch.l files.hash contine hashurile md5 checksum de la fiecare fisier din files.path care contine fiecare path al fiecarui fisier al jocului iar files.addr contine adresele fiecarui fisier, pentru descarcare in caz ca e nevoie de vreunul. Evident, toate fisierele jocului sunt incarcate pe un server http. Acum vom afla cu adevarat ce face butonul check: files.hash files.path si files.addr sunt folosite asa: pe linia 1 din hash se afla hashul fisierului de pe linia 1 din path, adresa pentru a descarca fiserul de pe linia 1 Si programul incepe sa verific linie cu linie: Ia primul path, ii calculeaza md5 checksum, daca se potriveste cu primul hash trece mai departe, daca nu se potriveste descarca un nou fisier de la prima adresa. Dar daca fisierul de la primul path nu exista, evident descarca unul nou de la prima adresa. Dupa ce se termina acest proces, o ia de lacapat, cu urmatoarea linie. Si tot asa. Dar pana cand!? Pana cand numarul X = 0. Cum adica!? Pai de fiecare data cand se verifica un fisier x -= 1 iar x este egal cu numarul liniilor din files.hash (cate hashuri are atatea verificari face...) Sunt genial nu? Am adaptat programul sa mearga cu counter strike 1.6 dupa cum vedeti in poza, dar cum de am luat atatea hashuri, de la atatea fisiere, si apoi sa mai pun si adresa fiecaruia, si sa salvez toate astea in fisiere diferite? Simplu! Am mai facut un program care sa ma ajute sa gasesc fiecare fisier dintrun folder, si toate subfolderele lui. Apoi imi calcula hashul pentru fiecare fisier gasit (Ca sa nu uit, zic acum, hashul este criptat din md5 in base64), si cu adresele... replace in notepad++ \ cu / si C:\...\cstrike\blah blah cu http://.../cstrike/blah blah Daca ceva nu va este clar intrebati! Daca gasiti un bug va rog sa imi trimiteti detalii la adresa de e-mail, e scrisa chiar sub butonul play . Mica informatie pentru cei care CHIAR sunt interesati sa il foloseasca: NU dau sursa, si latimea web browser-ului este 434 px. Pentru update-uri, check my signature. Apropo, aveti nevoie de .net framework 2 Download: Autopatcher 1.0 Current version Autopatcher 0.8 Outdated Scuze pentru otrografie, am scris in graba, ar putea fi cate o greseala la fiecare 3 cuvinte. Daca vede cineva vreo greseala, va rog sa imi dati PM. Pareri?