@mailman, post #60
@tukinem, post #61
Sprawdziłem FakeGame tak na szybko, zainstalowałem do RAM i zawisł przy próbie rozpakowywania :) pewnie dlatego, że wybrałem RAM:.Nie, tutaj zadziałało to, co słusznie mi wytknął DonAdan. Nie mogę zakładać, że użytkownik ma najnowszą wersję LhA i powinienem samo LhA we właściwej wersji umieścić na dyskietce. Ale o tym poniżej.
Czy można pisać taki kod w notatniku w Windows (Notepad++), aby móc swobodnie używać polskich znaków?Można, trzeba tylko zrobić dwie rzeczy w menu Notepada: Edycja/Konwersja znaku końca linii/Konwertuj na format Unix (LF) oraz Format/Zestaw znaków/wschodnioeuropejski/ISO-8859-2.
Tu Installer sam wyłapuje od systemu, czy mamy polskie lokale, a gdybym chciał na początku stworzyć pole wyboru języka, tak jak to jest w przypadku instalacji AmigaOS 3.2Aż zajrzałem jeszcze raz na dyskietkę "Install3.2"... Tam jest to zrobione następująco. Jest jeden plik instalacyjny, zawierający teksty we wszystkich językach (tak samo jak mój przykład), ale jest 15 ikonek. Każda ma ustawiony tooltyp LANGUAGE na "swój" język. Ten tooltyp wymusza na installerze użycie konkretnego języka ponad autodetekcją. Z tym, że na dyskietce musi być biblioteka locale.library i pliki Installer.catalog we wszystkich językach jakie chcemy obsłużyć.
Wszystkie zmienne to po prostu słowa typu gdzie, tak jak to miało miejsce w instalatorze Kajko i Kokosz, zmienne pobierające dane z systemu zaczynają się znakiem @ jak w przypadku @language, natomiast stałe zaczynają się znakiem #, mam rację?Prawie. Zgadza się, że zmienne zaczynające się od @ są wstępnie zdefiniowane przez Installera i część z nich Installer ustawia zgodnie z informacjami pobranymi z systemu. Natomiast jest zalecane (w manualu do Installera), żeby wszystkie swoje zmienne zaczynać znakiem #, co autor skryptu do "Kajko i Kokosz" po prostu olał. W Installerze nie ma stałych i dodanie znaczka # nic nie zmienia w zachowaniu zmiennej. Po prostu jest to zalecenie.
Nie rozumiem tego:Installer ma taki ficzer jak "podstawianie tekstów" (string substitution), czyli automatyczny printf(). Jeżeli w wyrażeniu ujętym w nawias pierwszym elementem jest string (albo zmienna zawierająca string), to wszystkie znaczki w stylu "%s", czy "%ld" zostają podstawione kolejnymi stringami z wyrażenia. Przykład prosty:
("Mój kolega %s pije %s.", "Janek", "piwo")da w efekcie "Mój kolega Janek pije piwo.". Dokładnie to podstawienie jest wykonywane systemową funkcją RawDoFmt() z exec.library i w autodocu do niej jest pełen opis wszystkich dostępnych "procentów".
nie kumam co oznacza >\"CON://640/200/%s/AUTO\"LhA normalnie w czasie rozpakowywania archiwum wyświetla pliki i postęp w oknie shella, w którym się je odpali. Ale Installera odpalamy zazwyczaj z ikonki, więc LhA pracowałby "w milczeniu" dość długo i użytkownik nie wiedziałby co się dzieje ("a może zwisło?"). Dlatego przekierowuję (znak ">") to, co wypisuje LhA, do własnoręcznie otwartego okienka shella, czyli urządzenia CON:. Kolejne parametry CON: oddzielone są ukośnikami:
CON:[x_okna]/[y_okna]/[szer_okna]/[wys_okna]/[tytuł_okna]/[AUTO]/[CLOSE]/[WAIT]Pominięcie czegoś oznacza wartość domyślną. Więc przekierowałem "wydruk" LhA do okna konsoli o położeniu domyślnym, rozmiarach 640x200 pikseli, tytule podstawionym z #msg_unpack_shell_title i okno jest typu AUTO, czyli otwiera się automatycznie, gdy LhA wyśle do niego cokolwiek. CLOSE oznaczałoby możliwość zamknięcia okna przez użytkownika, WAIT oznacza, że po wykonaniu komendy LhA okno pozostałoby otwarte (ale tego nie dałem, więc jak LhA skończy robotę, to się samo zamknie).
@Krashan, post #62
Aż zajrzałem jeszcze raz na dyskietkę "Install3.2"... Tam jest to zrobione następująco. Jest jeden plik instalacyjny, zawierający teksty we wszystkich językach (tak samo jak mój przykład), ale jest 15 ikonek. Każda ma ustawiony tooltyp LANGUAGE na "swój" język. Ten tooltyp wymusza na installerze użycie konkretnego języka ponad autodetekcją. Z tym, że na dyskietce musi być biblioteka locale.library i pliki Installer.catalog we wszystkich językach jakie chcemy obsłużyć.
(if =@language "english" (set #language_found 1) (set #zmienna "tekst") ) ; itd
@tukinem, post #63
@tukinem, post #63
@Don_Adan, post #66
@Don_Adan, post #66
Dlatego proponowalem, zeby na pierwszej dyskietce dolaczyc (spakowane Stonecrackerem) LhA, Join (dzialajce na kick 2.0) i InstallerNależy przy tym zauważyć, że instrukcja do Stonecrackera rzecze: "Program jest PublicDomain dopóki przy jego pomocy nie zarabiasz pieniędzy. Jeżeli jesteś zainteresowany użyciem programu w produktach komercyjnych, skontaktuj się ze mną." Nie wiem, czy gra Tukinema ma być programem komercyjnym, ale warto o tym pamiętać, żeby potem nie było kolejnej amigowej opery mydlanej.
@Krashan, post #68
@tukinem, post #67
@Don_Adan, post #69
@Krashan, post #71
@tukinem, post #67
W sumie to już sam Installer zajmuje 100KB, czyli 1/8 dyskietki
@mailman, post #73
@Don_Adan, post #74
@tukinem, post #75
@Don_Adan, post #76
@tukinem, post #77
@tukinem, post #75
Nie sprawdzałem jeszcze czy on już sam w sobie jest pakowany, czy można go potraktować Stonecrackerem.Ja sprawdzałem. Nie jest pakowany, można go potraktować Stonecrackerem i działa. Zajmuje wtedy 61 kB zamiast 107 (wersja 43.3).
@Don_Adan, post #78
@tukinem, post #81
Może lepiej go nie pakować Stonecrackerem, jeśli ma być pakowany LHA / LZX?DonAdan już pisał - jeżeli pakujesz dystrybucję archiwizerem, nie baw się w żadne Crunchmanie i pakowanie poszczególnych plików. Jedyne co na tym zyskujesz, to to, że zainstalowana gra mniej zajmuje na dysku. A to w dzisiejszych czasach nie ma żadnego znaczenia. Tracisz zaś czas ładowania i wymagania pamięciowe.
@tukinem, post #81
@Don_Adan, post #84
@tukinem, post #85
@Don_Adan, post #87
;UZYTKOWNIK WYBIERA ODPOWIEDNIA WERSJE DO INSTALACJI (set #wersja (askchoice (prompt "Select a version of LHA for You") (help "Version must be compatible with Your CPU") (choices "LHA 1.50r with keyfile" "LHA 2.10" "LHA 2.15 for 68000" "LHA 2.15 for 68020" "LHA 2.15 for 68040" ) (default 0) ) ) ;UZYTKOWNIK WYBIERA SCIEZKE DO INSTALACJI (set #dest (askdir (prompt "Select a drawer to install files") (help "Select a drawer to install files") (default "RAM:") ) ) ;JESLI WYBRALISMY OPCJE PIERWSZA, TO TRZEBA SKOPIOWAC PLIK LHA_1.50r (if #wersja=0 (copyfiles (source "LHA_1.50r") (dest #dest) ) )
(if #wersja=0 (message "GOOD") (message "BAD") )
@tukinem, post #88