Skocz do zawartości

Jak zrobić prosty auto-update[Tutorial]


Rekomendowane odpowiedzi

Jak zrobić prosty auto-update?

 

Co potrzebujemy?:

Game Maker 8 lub nowszy,

Bibliotekę dll Httpdownloader.dll,

I trochę cierpliwość.

 

1.Tworzymy nowy gmk lub gm81 i zapisujemy do jakiegoś folderu.

Do tego folderu wrzucamy bibliotekę dll Httpdownloader.dll capture315d33.jpg

 

2.Do naszego pliku (gmk,gm81) dajemy skrypt z Httpdownloader.

capture2a37c0.jpg

Zapisujemy i wrzucamy do naszego auto-update.

capture1.jpg

3.Teraz robimy plik .ini np. config.ini

Wpisujemy do niego np. coś takiego:

 

[Update]
     wersja=0,1 (możemy dać coś innego np. 1,0 lub coś innego.

 

3.Następnie piszemy jakiś prosty skrypt którym będzie w pliku update.dll(może być np. .txt lub .dat lub co chcesz.) Mój wygląda tak:

GML
ini_open( 'config.ini' )

 

wersja1 = ini_read_real( 'Upadate', 'wersja', '0.1' ); //Sprawdza czy w pliku config.ini jest 0,1 lub 0,2

wersja2 = ini_read_real( 'Upadate', 'wersja', '0.2' );

 

if ( wersja1=0.1 ) //jeżeli jest to ta funkcja wykonuje co tylko chcesz.

{

download_to_file("http://www.uploduj.ugu.pl/upload/ciota.exe","ciota.exe"); //pobiera naszą nową //wersje. Ten plik co pobierze może być jakąś instalką. Niestety upload gmc nie obsluguje .exe

ini_write_real('Upadate', 'wersja', 0.2); //zmienia wartość wersji na 0,2.

game_end()//wyłancza grę

execute_program('ciota.exe',1,false)//jest to opcja która uruchamia //

//naszego instalatora gry.

//Uwaga to jest opcja w której aktualizuje naszą gre na nową wersje jeżeli jej nie ma dajemy exit; lub //zostawiamy puste.

}else

{

if ( wersja2=0.2 )

{

file_delete('ciota.exe') //Jeżeli już się uruchomi nasza gra ponownie usuwa zbędny plik.

}

}

 

ini_close();

 

Można dać też tak:

 

GML
ini_open( 'config.ini' )

 

wersja1 = ini_read_real( 'Upadate', 'wersja', '0.1' ); //Sprawdza czy w pliku config.ini jest 0,1 lub 0,2

wersja2 = ini_read_real( 'Upadate', 'wersja', '0.2' );

 

if ( wersja1=0.1 )

{

if show_question('Dostępna jest nowa wersja pobrac teraz?') == true

{

download_to_file("http://www.uploduj.ugu.pl/upload/ciota.exe","ciota.exe");

ini_write_real('Upadate', 'wersja', 0.2);

game_end()

execute_program('ciota.exe',1,false)

}

else

{

exit;

}

}else

{

if ( wersja1=0.2 )

{

file_delete('ciota.exe') //Jeżeli już się uruchomi nasza gra ponownie usuwa zbędny plik.

}

}

 

ini_close();

W tedy gra będzie się pytała czy zaktualizować.

 

Teraz zapisujemy to do pliku update.(co tam chcesz) i wrzucamy go gdzieś gdzie możemy go bieżąco edytować. Najlepiej jak jest to wasza strona.

 

4.Tworzymy jakiś nowy obiekt i w create dajemy:

GMLdownload_to_file("http://www.uploduj.ugu.pl/update.dll ","update.dll");//pobiera go

execute_file('update.dll'); //czyta jego zawartość jako skrypt

 

 

Gotowe ale niestety trwa to jakieś 1 sek jak ktoś chce może to ładnie zrobić jak ktoś chce może to zostawić.

 

A więc działa to teraz tak:

Wszystko jest ok. kiedy powstaje jakaś nowa wersja wchodzisz w update.dll i zmieniasz .

I gra załatwia resztę.

 

Przykład:Download

 

 

Mam nadzieje że nie popełniłem błędu w kodzie i mam nadzieje że się przydało :) .

Odnośnik do komentarza
Udostępnij na innych stronach

Takich plików nie zapisuje się jako dll. Lepiej jako INI.

@EDIT Właśnie, co to wgl ma być?

GML
wersja1 = ini_read_real( 'Upadate', 'wersja', '0.1' ); //Sprawdza czy w pliku config.ini jest 0,1 lub 0,2

wersja2 = ini_read_real( 'Upadate', 'wersja', '0.2' );

Kiedy do Ciebie dotrze, że 3 argument to jest DOMYŚLNA wartość. Czyli kiedy w INI nie ma Update/wersja to zwraca to.

Odnośnik do komentarza
Udostępnij na innych stronach

A nie lepiej, aby gra pobierała najpierw plik w którym znajduje się aktualna wersja i URL do niego?

[Update]
ver=0.2
url=http://www.uploduj.ugu.pl/upload/ciota.exe

A potem w grze sprawdzało czy ma taką wersje, a nie nowszą IFem?

GML
if wersja>mojawersja

{

//...

}

Odnośnik do komentarza
Udostępnij na innych stronach

Jedyne co tu jest to wykożystanie czyjegoś dll'a do pobrania plliku, już bardziej by się opłacało okienko czy chcesz pobrać program. A wersję możesz sprawdzać na dwa sposoby: pobierać plik ini z wersją, lub najlepiej pobierać aktualną wersję z strony.

Edit:

A może ty zrobisz kiedyś pro poradnik jak zrobić auto-update ??
Jak będe mieł czas to oczywiście, w tym tygodniu powinnem się wyrobić.
Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Więc nie nazywaj tutorialem czegoś, o czym nie masz pojęcia... a jak już czegoś chcesz się uczyć, to ortografii. Nie ma słowa "wyłancza". Nie wiem jak wymawiasz to słowo, ale ja nawet w wymowie słyszę wyraźnie WyłĄcza. Nawet nie "on" a już tym bardziej nie "an".

Wiedz również, że nie jesteś przez to bardziej pro, sty, trendy ani jazzy, gdy użyjesz słowa "ciota". To jest żałosna próba zwrócenia na siebie uwagi "patrzcie jaki jestem fajny, znam brzydkie słowo i mogę go użyć bo mama nie widzi". Pewnie nawet nie wiesz co ono znaczy.

 

A przykład to nie jest auto-update, tylko pobranie pliku.

Odnośnik do komentarza
Udostępnij na innych stronach

Więc nie nazywaj tutorialem czegoś, o czym nie masz pojęcia... a jak już czegoś chcesz się uczyć, to ortografii. Nie ma słowa "wyłancza". Nie wiem jak wymawiasz to słowo, ale ja nawet w wymowie słyszę wyraźnie WyłĄcza. Nawet nie "on" a już tym bardziej nie "an".

Wiedz również, że nie jesteś przez to bardziej pro, ######sty, trendy ani jazzy, gdy użyjesz słowa "ciota". To jest żałosna próba zwrócenia na siebie uwagi "patrzcie jaki jestem fajny, znam brzydkie słowo i mogę go użyć bo mama nie widzi". Pewnie nawet nie wiesz co ono znaczy.

 

A przykład to nie jest auto-update, tylko pobranie pliku.

 

Hmm, no cóż nie wiem co ci powiedzieć:

Po pierwsze mam trochę pojęcia bo napisałem to.

Po drugie to słowo "ciota" zrobiłem sobie tak dla hecy nie po to by być kool czy tam coś innego bo i tak nikt mnie nie lubi na tym forum.

Po trzecie nie wiem co to znaczy :D.

A tak w ogóle to po co się rejestrowałem na tym forum jeżeli każdy i tak mnie obraża, poniża, wyzywa.

To ja z dobrej chęci wstawiam mały tutorialek a wy tak mnie traktujecie :D.

Myślałem, że chociaż ty gnysek mi nic obrażającego nie powiesz.

 

Już dajcie mi tego bana jak tak bardzo chcecie.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Sobie zadaj pytanie po co. Skoro nie jesteś pewien swojego rozwiązania i wiesz, że dało by się lepiej to się nim nie dziel. Co innego jakbyś zapytał, jak to ulepszyć.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Dziś. Ja 9 lat temu nie potrafiłem zrobić w GM nic, a dziś pracuję w YYG. Dobrze, że próbujesz, ale nie wszystko od razu trzeba nazywać "przykładem/kursem".

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...