Opis opcji:
Dziennik ten jest trudny w obsłudze, jednak w instrukcji starałam się wszystko dokładnie krok po kroku wyjaśnić (dlatego jest taka długa).
Różny sposób zaliczania zadań: liniowy i nieliniowy (patrz demo)
Wyświetlanie obrazków/twarzy postaci
Wyświetlanie w menu
Wywoływanie przyciskiem na mapie
Różne kolory liter
Ikony przy misjach i zadaniach
Możliwość wyłączenia dostępu na mapie np. podczas scenek (przy wiadomościach nie trzeba)
i inne...
Autor:
Avara
Screeny:
Spoiler:
Skrypt:
Instrukcja "dla zielonych" w skryptach ("nieobowiązkowa"):
Spoiler:
Kod:
=begin
********************************************************************
* Dziennik Misji by Avara *
* Autor: Avara *
* Specjalne podziękowania dla: Sabikku *
********************************************************************
Dziękuję za pobranie skryptu. Postaram się krok po kroku oprowadzić po tym
skrypcie.
Dziennik ten ma wiele funkcji, dzięki którym możesz dostosować go według własnych
potrzeb. Znajdziesz je wszystkie w zakładce "Dziennik Misji - konfiguracja", zaś
ostatniej "Dziennik Misji - kod" radzę Ci nie ruszać, chyba że NAPRAWDĘ wiesz co
robisz, gdyż niewielka zmiana może spowodować wyskakiwanie błędu. Zmieniając
konfiguracje również należy postępować ostrożnie i uważnie czytać instrukcje ich
dotyczących, gdyż skutek błędu może być podobny.
Dziennik wywołujemy skryptem: $scene = Scene_Dziennik.new
Wszystkie opisane polecenia w dziale C i D również wywołujemy skryptem.
W każdym momencie gry można zmienić, czy dziennik można uruchomić przyciskiem
(np. podczas intra) za pomocą polecenia $aktywnosc_dziennik_mapa = true/false.
Zacznijmy od początku:
A. module Avara_Dziennik
1. Wyświetlanie odnośnika w menu i włączenie dziennika na mapie:
OPCJA_W_MENU = true/false <- true - tak; false - nie
NAZWA_W_MENU = "Misje" <- nazwa dziennika w menu; musi być cudzysłów
DZIENNIK_MAPA = true <- true - tak; false - nie
PRZYCISK_DZ_MAPA = Input::L <- "Input::" musi zostać; L to na klawiaturze Q
Odnośnik znajduje się na 6. pozycji licząc od góry, po zapisie gry i przed
wyjściem z gry (menu się wydłuża). Jeśli trzecia opcja jest "true", to
chodząc po mapie wystarczy kliknąć przycisk określony w opcji czwartej, by
włączyć dziennik.
2. Dane dotyczące dziennika:
NAZWA_W_DZIENNIKU = "Dziennik Misji" <- nazwa dziennika wyświetlana
w samym dzienniku; ""
ILOSC_MISJI = 20 <- orientacyjna liczba Twoich misji od 1 do n; brak ""
ILOSC_KATEGORII = 2 <- DOKŁADNA liczba kategorii misji od 1 do n; brak ""
WYGLAD_OKNA_PODSTAWOWY = true/false <- wybór wyglądu okna true - podstawowy
Ilość misji jest potrzebna do stworzenia odpowiedniej ilości tablic i nie
musi być dokładna, byle by nie była mniejsza od rzeczywistej.
Ilość kategorii jest potrzebna w podobnym celu, jednak dodatkowo jest
używana przy zmianie widoku w Dzienniku Misji, gdy przełączamy kategorie.
Wygląd podstawowy to ze standardową "skórką" okna, zaś wygląd wybrany (gdy
ustawimy WYGLAD_OKNA_PODSTAWOWY = false) bazuje na pliku "Window2.png"
w folderze \Graphics\System\.
W demie mamy moją propozycję tego pliku.
W dzienniku można ustawić, zadania zaliczane w formie liniowej (biorąc 2.
zadanie, zaliczasz jednocześnie zadanie 1. danej misji) i nieliniowe (możesz
mieć aktywnych kilka zadań i wykonać je w dowolnej kolejności). Gdy ustawimy
AKTYWNOSC_WIELU_PODPUNKTOW_NARAZ = true, wówczas uruchomimy formę zaliczania
zadań nieliniową, czyli wykonujemy wiele zadań jednej misji na raz. Jednak to
ustawienie dotyczy oczywiście wszystkich Twoich misji.
Sprawdzanie dotyczy misji. Przy dowolnej akcji związanej z zadaniem danej
misji, dziennik może automatycznie sprawdzić, czy nie zmienił się nam status
misji. W pierwszej kolejności sprawdza, czy misja jest możliwa do wykonania
(bierze pod uwagę zmienną $zaliczenie - patrz punkt B.2.), następnie czy jest
źle wykonana (tylko zadania z $zaliczenie), czy jest do odebrania nagroda za
dowolne zadanie z misji (wszystkie zadania), czy misja została wykonana
prawidłowo (tylko zadania z $zaliczenie) i jeśli skrypt wykluczy w.w.
możliwości, uznaje misję za aktywną. W każdym wypadku zmienia się ikona misji
i komunikat w oknie opisu w dzienniku. Można to sprawdzanie wyłączyć, ale
wówczas wszystko musimy ustawiać własnoręcznie w grze, dlatego zalecam
pozostawienie tego ustawienia na "true". Działa tylko przy NIEliniowym
sposobiezaliczania zadań.
Jeśli aktywność obrazków ustawisz na "true" w oknie opisu misji będą Ci się
pojawiać według kolejnego ustawienia, twarze lub zdjęcia postaci od których
otrzymujesz misję.
Ostatnia w. w. opcja (OBRAZKI_TWARZE) ustawiona na "true" pokaże nam obrazki
z folderu \Graphics\Pictures\, o które musimy zadbać sami. Mogą to być
przycięte screen'y z gry, lub inne wybrane przez nas obrazki. Przy ustawieniu
"false" pojawią nam się twarze postaci z naszego folderu \Graphics\Faces\.
Dokładne nazwy ustawiamy przy danych misji (tym zajmiemy się nieco później
- B.2.). Ważne jest to, że zarówno twarz jak i obrazek muszą mieć wymiary
96x96 (wielkość "standardowej twarzy").
Jeśli false, to dalsza część tego podpunktu nas nie interesuje i możesz od
razu przejść do kolejnego.
KOLOR_NAZWY_MISJI <- kolor nazwy misji w oknie opisu oraz
podpunkty w oknie "Pomoc"
KOLOR_NPC <- kolor imienia osoby od której dostaliśmy
misję (okno opisu)
KOLOR_OPISU <- kolor opisu misji, zadań
i wyjaśnień w oknie "Pomoc"
KOLOR_NAZWAY_PODP <- kolor nazwy zadania w oknie opisu
KOLOR_PODP_NAGRODA <- kolor ew. nagrody za zadanie w misji
w oknie opisu
KOLOR_MISJA_NAGRODA <- kolor nagrody za misję w oknie opisu
KOLOR_MENU_MISJI <- kolor wyświetlanych misji w menu misji
KOLOR_MENU_PODP <- kolor wyświetlanych zadań w menu zadań
KOLOR_DZIENNIK_I_KATEGORIA <- kolor nazw dziennika i kategorii w dzienniku
KOLOR_MISJA_UDANA <- kolor komunikatu o ukończonej misji
w oknie opisu
KOLOR_MISJA_NIEUDANA <- kolor komunikatu o nieudanej misji
w oknie opisu
KOLOR_MISJA_NIEMOZLIWA <- kolor komunikatu o misji obecnie
niemożliwej do wykonania w oknie opisu
KOLOR_NAGRODA_DO_ODEBRANIA <- kolor komunikatu o nagrodzie za misję
lub pojedyncze zadanie w oknie opisu
Numery odpowiadają kolorom w pliku "Window.png" w folderze \Graphics\System\
od 0 do 31 (ważne: od ZERA!).
Przed chwilą ustawialiśmy kolory różnych komunikatów, ale jaka jest ich treść?
Tutaj możemy to ustawić.
MISJA_UDANA = "Misja zakończona powodzeniem!" <- jak w nazwie
komunikat misji zakończonej
MISJA_NIEUDANA = "Misja zakończona niepowodzeniem!" <- kom. misji nieudanej
MISJA_NIEMOZLIWA = "Misja niemożliwa do wykonania!" <- kom. misji obecnie
niemożliwej do wykonania
NAGRODA_DO_ODEBRANIA = "Nagroda do odebrania!" <- kom. o nagrodzie do
odbioru za wykonaną misję lub zadanie
Przy misji aktywnej nie ma komunikatu.
5. Ikony:
Ikony w menu misji w dzienniku przy nazwach misji:
IKONA_MISJI_AKTYWNEJ = 158
IKONA_MISJI_UDANEJ = 159
IKONA_MISJI_NIEUDANEJ = 157
IKONA_MISJI_NIEMOZLIWEJ = 114
IKONA_NAGRODY_DO_ODEBRANIA = 147
Ikony w menu zadań w dzienniku przy nazwach zadań (przydatne, gdy mamy aktywne
zaliczanie zadań w formie nieliniowej (patrz punkt A.2.)):
Jeśli ustawimy ikony podpunktów "true", to w menu zadań w dzienniku misji
przed nazwą każdego zadania będzie widoczna odpowiednia ikonka. Jak
odpowiednio ustawiać aktywne/udane itd. zadanie, powiem w dalszej części
instrukcji (C.). Ważne przy opcji "false", by przy ikonkach ustawić
jakiekolwiek cyfry. W przeciwnym razie będzie wyskakiwał nam błąd. Możemy
również usunąć te pięć linijek kodu, ale "IKONY_POPUNKTOW = false" trzeba
zostawić.
6. Okno pomocy:
PRZYCISK_POMOC = Input::F5 <- "Input::" musi zostać
NAPIS_POMOC = "Pomoc F5"
Przyciskiem tym uruchamiamy w dzienniku misji okno pomocy, gdzie wypisane
są wskazówki dotyczące "sterowania" dziennikiem: jak przełączać kategorie, co
oznaczają ikony itd.
W dzienniku w lewym dolnym rogu jest małe okno z napisem, jak włączyć okno
pomocy. Napis można zmienić.
Zapisywanie danych misji, zmienianie statutów misji i poszczególnych zadań:
B. class Misje
Wszelkie informacje, których jeszcze nie wpisaliśmy do kodu, musimy umieścić
w definicji "initialize" tej klasy.
"@la = 0" zostawiamy w spokoju!!! Nie wolno usuwać ani zmieniać!!!
"$powody = {}" zostawiamy w spokoju!!! Nie wolno usuwać!!! Jeśli chodzi
o zmianę, to o tym później (C.15.).
1. Nazwy kategorii:
$nazwa_kategorii[1] = "Główne" <- musi być cudzysłów
$nazwa_kategorii[2] = "Poboczne"
W ten sposób nazywamy kategorie misji. Może ich być dowolna ilość, ale
pamiętajmy o tym, by dla wygody graczy raczej nie tworzyć ich więcej niż 5.
Ważne by były ponumerowane od 1 do n, a w "module Avara_Dziennik" ilość
kategorii wpisać n! (nigdzie nie liczymy zera; wyjątki: kolory liter - patrz
A.3. - oraz numer twarzy - patrz B.2.). Później będziesz przypisywać numer
kategorii do danej misji. Oczywiście numer kategorii to cyfra w nawiasie
kwadratowym [].
2. Dane misji:
$nazwa_misji[NUMER MISJI] = "NAZWA MISJI"
$npc[NUMER MISJI] = "OD KOGO"
$opis_misji_linijka1[NUMER MISJI] = "OPIS MISJI LINIJKA 1"
$opis_misji_linijka2[NUMER MISJI] = "OPIS MISJI LINIJKA 2"
$nazwa_podp[NUMER MISJI][NUMER PODP] = "NAZWA ZADANIA 1"
$opis_podp_linijka1[NUMER MISJI][NUMER PODP] = "OPIS ZADANIA LINIJKA 1"
$opis_podp_linijka2[NUMER MISJI][NUMER PODP] = "OPIS ZADANIA LINIJKA 2"
$opis_podp_linijka3[NUMER MISJI][NUMER PODP] = "OPIS ZADANIA LINIJKA 3"
$opis_podp_linijka4[NUMER MISJI][NUMER PODP] = "OPIS ZADANIA LINIJKA 4"
$podp_nagroda[NUMER MISJI][NUMER PODP] = "NAGRODA ZA PODPUNKT"
$nagroda[NUMER MISJI] = "NAGRODA ZA MISJĘ"
$zdjecie[NUMER MISJI] = "ZDJĘCIE.JPG" <- gdy
AKTYWNE_OBRAZKI_TWARZE = true i OBRAZKI_TWARZE = true
$nr_kategorii_misji[NUMER MISJI] = NUMER KATEGORII <- ważne! numer
kategorii od 1 do n (patrz punkt wyżej)
$zaliczenie[NUMER MISJI] = [NUMERY ZADAŃ] <- ważne! gdy
"AUTOMATYCZNE_SPRAWDZANIE = true" nie można usunąć!
$twarz_nazwa[NUMER MISJI] = "Actor1" <- gdy
AKTYWNE_OBRAZKI_TWARZE = true i OBRAZKI_TWARZE = false
$twarz_numer[NUMER MISJI] = 0 <- gdy
AKTYWNE_OBRAZKI_TWARZE = true i OBRAZKI_TWARZE = false
Zamiast NUMER MISJI wpisujemy liczby od 1 (NIE OD ZERA!) do n (n - ilość
naszych misji). NUMER PODP zaś to numer zadania misji również liczone od 1.
Nazwę misji, chyba nie muszę tłumaczyć.
Npc to postać w grze, od której dostajemy misję. Sami musimy ją wpisać. Ta
informacja ułatwi naszym graczom rozróżnianie misji (przy większej ich ilości)
i przypomni, gdzie mamy się udać po ewentualną nagrodę (gry nagroda jest od
tej samej osoby, u której zaczęliśmy misję). Stety lub niestety ta informacja
się nie zmienia, więc gdy ew. nagrodę za zadanie lub misję mamy odebrać od
kogoś innego, należy taką informację umieścić w opisie zadania.
Dwie linijki ogólnego opisu misji chyba tłumaczyć nie muszę. Pamiętaj
jednak, by nie były za długie, bo litery zrobią się strasznie wąziutkie.
Najlepiej jest to sobie przetestować. W zależności od tego, czy aktywne są
obrazki/twarze czy nie, to długość tych linijek jest różna.
Nazwa podpunktu to nic innego jak nazwa zadania. Zauważ, że tutaj i w opisie
zadania widnieją dwa nawiasy kwadratowe [][]. W pierwszym zawsze umieszczamy
numer misji, zaś w drugim numer zadania misji licząc od 1. Uważaj, by się nie
pomylić! I pamiętaj, że zadania misji są dodawane po kolei! Możesz jednak ich
zrobić dowolną ilość.
Cztery linijki opisu zadań: tak jak z opisem misji, lecz długość linijek
jest niezmienna. Do każdego zadania opis może być różny. Jeśli opis wyjdzie
Ci krótszy, np. 2 linijki, to kod z dwiema kolejnymi można pominąć i wpisać
tylko:
$opis_podp_linijka1[NUMER MISJI][NUMER PODP] = "OPIS ZADANIA LINIJKA 1"
$opis_podp_linijka2[NUMER MISJI][NUMER PODP] = "OPIZ ZADANIA LINIJKA 2"
Żaden błąd nie wyskoczy. Tyczy się to wszystkiego od nazwy misji do nagrody
za misję. O reszcie opowiem za chwilę.
Nagroda za podpunkt jest oczywiście "nieobowiązkowa". Jeśli nie ma nagrody
za konkretne zadanie, najlepiej pominąć tą linijkę kodu przy opisywaniu danego
zadania.
Nagroda za misję: jak wyżej. Można też po prostu wpisać "brak", to już
zależy od Ciebie.
Zdjęcie - konieczne, gdy aktywność obrazków ustawimy na "true"
a obrazki/twarze również na "true" (A.2.). Bez tego wyskoczy nam błąd. Jak
pisałam o tym wcześniej, obrazki ("zdjęcia") są wczytywane z folderu
\Graphics\Pictures\. Nie zapomnij o kropce i rozszerzeniu! Z tego co wiem, to
nie można chyba wstawiać gifów, ale z resztą nie powinno być problemów.
I oczywiście cała nazwa obrazka musi być w cudzysłowie. Na początku podczas
testowania można sobie ustawić jakiś dowolny obrazek lub pusty przezroczysty
png. Jeśli obrazki nie są aktywne (albo jest ustawiona aktywność twarzy), tą
linijkę można pominąć. Nawet radziłabym to zrobić, ponieważ dzięki temu nasze
misje zajmą ciut mniej miejsca.
Numer kategorii misji jest ważny, by misja w ogóle nam się wyświetliła
w dzienniku! Numer od 1 w górę. Jeśli pominiesz tą linijkę wyskoczy błąd!
Zaliczenie to nic innego, jak wymienione zadania, które muszą zostać
wykonane, aby uznać misję za udaną. Jeśli automatyczne sprawdzanie misji jest
wyłączone (A.2.), tą linijkę można pominąć. Gdy jest odwrotnie (sprawdzanie
jest włączone), to wymagane zadania (ich numery) muszą zostać wypisane
w nawiasie kwadratowym, oddzielone przecinkami, np:
$zaliczenie[NUMER MISJI] = [2, 3, 4]
Wówczas zadanie pierwsze jest "nieobowiązkowe", zaś 2., 3. i 4. już tak.
Nazwa i numer twarzy jest wymagana, gdy aktywność obrazków/twarzy jest
włączona i OBRAZKI_TWARZE są na "false" (A.2.).
Nazwa twarzy to nazwa pliku z folderu \Graphics\Faces\ BEZ ROZSZERZENIA. Czyli
np. "Actor1", "People3".
Numer twarzy to cyfra OD ZERA (jeden z dwóch wyjątków w tym skrypcie) do 7
(tyle ile jest twarzy w jednym pliku).
Jeśli twarze nie są aktywne, to wówczas jak zwykle radzę pomijać te dwie
linijki kodu.
Misja piąta, 3 zadania, nagroda za 2. zadanie, różne długości opisów zadań,
brak nagrody za misję, kategoria czwarta, zaliczenie - tylko zadanie nr 2,
obrazek:
$nazwa_misji[5] = ""
$npc[5] = ""
$opis_misji_linijka1[5] = ""
$opis_misji_linijka2[5] = ""
$nazwa_podp[5][1] = ""
$opis_podp_linijka1[5][1] = ""
$opis_podp_linijka2[5][1] = ""
$nazwa_podp[5][2] = ""
$podp_nagroda[5][2] = ""
$opis_podp_linijka1[5][2] = ""
$opis_podp_linijka2[5][2] = ""
$opis_podp_linijka3[5][2] = ""
$opis_podp_linijka4[5][2] = ""
$nazwa_podp[5][3] = ""
$opis_podp_linijka1[5][3] = ""
$opis_podp_linijka2[5][3] = ""
$opis_podp_linijka3[5][3] = ""
$zdjecie[5] = ""
$nr_kategorii_misji[5] = 4
$zaliczenie[5] = [2]
Misja pierwsza, 1 zadanie, brak nagrody za zadanie, brak nagrody za misję,
kategoria pierwsza, obrazki/twarze nieaktywne, brak zaliczenia - automatyczne
sprawdzanie misji wyłączone:
$nazwa_misji[1] = ""
$opis_misji_linijka1[1] = ""
$opis_misji_linijka2[1] = ""
$nazwa_podp[1][1] = ""
$opis_podp_linijka1[1][1] = ""
$opis_podp_linijka2[1][1] = ""
$nr_kategorii_misji[1] = 1
Linijki kodu możesz sobie dostosowywać w zależności od swoich potrzeb
i wcześniejszych ustawień w skrypcie.
Uważaj, by nigdzie się nie pomylić, nie zapomnieć zamknąć cudzysłów, ani
nie brać w niego tego co nie trzeba!!! Itd...
Radzę umieszczać misje po kolei jedną pod drugą z pustą linijką przerwy,
aby zachować przejrzystość.
Jeśli chcesz gdzieś dopisać swój komentarz, by się nie pogubić, to wpisz #.
Wszystko na prawo od kratki nie będzie czytane przez grę.
Poniżej wszystko związane ze zdarzeniami na mapie.
C. class Misje - definicje
Aby wydać polecenie, np. gdy chcemy dodać misję lub zadanie, wywołujemy
zdarzenie. Z ostatniej zakładki wybieramy wywoływanie skryptu. Tam będzie
trzeba wpisać 2/3 linijki kodu, z czego pierwsza lub pierwsze dwie linijki to
podawanie numeru misji/zadania. Liczby wpisujemy po znaku "=" i po jednej
spacji. Te liczby są jedyną częścią kodu polecenia, jaką możemy zmieniać. Cała
jej reszta musi pozostać w nienaruszonej formie. Ostatnia linijka to polecenie
dla dziennika.
1. Dodawanie misji:
$numer_misji =
Misje.new.dodaj_misje
Misje są ułożone w dzienniku w kolejności ich dodawania i są wyświetlane tylko
w wybranej kategorii. Wraz z dodaniem misji dodawane jest jej pierwsze
zadanie i ma ono status "aktywny". Jeśli dodajemy misję drugi raz (po
wcześniejszym jej usunięciu), wszystkie ustawienia (statusy i ilość zadań)
zostają "zresetowane".
2. Dodawanie zadania:
$numer_misji =
Misje.new.dodaj_podp
Zadania danej misji są dodawane do niej po kolei. Jeśli mamy włączone liniowe
zaliczanie zadań (patrz punkt A.2.), poprzednie zadanie zostanie automatycznie
zaliczone. Gdy dodatkowo mamy włączone automatyczne sprawdzanie statusu misji
(A.2.), to zostanie on sprawdzony. Jeśli pierwsza opcja jest wyłączona, nie
ma żadnej dodatkowej akcji. Status dodawanego zadania to "aktywny".
3. Usuwanie zadania:
$numer_misji =
Misje.new.usun_podp
Usuwane jest ostatnie zadanie. Aby usunąć misję nie wystarczy usunąć wszystkie
zadania do tego potrzeba polecenia poniżej. Jeśli sprawdzanie statusu misji
jest włączone, zostanie on sprawdzony.
4. Usuwanie misji:
$numer_misji =
Misje.new.usun_misje
Po tym poleceniu misja przestanie być widoczna w dzienniku. Menu misji
zostaje zaktualizowane (dana misja znika, a te po niej "wskakują" o jedną
pozycję wyżej).
Poniższe polecenia są używane przy liniowym sposobie zaliczania zadań (A.2.).
5. Misja zakończona pomyślnie:
$numer_misji =
Misje.new.misja_udana
Bez sprawdzania zmienia status misji na zakończoną, wyłączając wszystkie
pozostałe statusy. Jeśli aktywność wielu zadań naraz jest włączona (A.2.), to
nic się nie stanie. Przy wyłączonej ostatnie zadanie zostaje uznane za udane.
6. Misja aktywna:
$numer_misji =
Misje.new.misja_aktywna
Bez sprawdzania wyłącza wszystkie statusy misji, przez co widnieje jako
aktywna. Jeśli aktywność wielu zadań naraz jest wyłączona (A.2.), to zmienia
się status ostatniego widocznego zadania na aktywny.
7. Misja nieudana:
$numer_misji =
Misje.new.misja_nieudana
Bez sprawdzania zmienia status misji na nieudaną, wyłączając wszystkie
pozostałe statusy. Jeśli aktywność wielu zadań naraz jest wyłączona (A.2.),
to zmienia się status ostatniego widocznego zadania na nieudany.
8. Misja niemożliwa do wykonania:
$numer_misji =
Misje.new.misja_niemozliwa
Bez sprawdzania zmienia status misji na niemożliwą, wyłączając wszystkie
pozostałe statusy. Jeśli aktywność wielu zadań naraz jest wyłączona (A.2.),
to zmienia się status ostatniego widocznego zadania na niemożliwy.
WAŻNE! Patrz punkt C.15.!
9. Nagroda za misję do odebrania:
$numer_misji =
Misje.new.nagroda_do_odebrania
Bez sprawdzania zmienia status misji na nagrodę do odebrania, wyłączając
wszystkie pozostałe statusy. Jeśli aktywność wielu zadań naraz jest wyłączona
(A.2.), to zmienia się status ostatniego widocznego zadania na nagrodę.
Poniższe polecenia są używane przy nieliniowym sposobie zaliczania zadań (A.2.).
Oprócz numeru misji trzeba również podać numer zadania.
Zmienia status konkretnego zadania na nagroda. Jeśli sprawdzanie statusu
misji jest włączone - sprawdza (A.2).
15. Powód, dla którego misja/zadanie jest niemożliwe do wykonania:
Możemy wyświetlić wiadomość, czemu dana część misji jest niemożliwa do
wykonania, czyli co trzeba zrobić/mieć/jakie warunki spełnić, by zadanie
stało się aktywne. Będzie to informacja w kolorze komunikatu o misji
niemożliwej (A.3.), jeśli kolory liter będą włączone na "true".
W "class Misje" w definicji "initialize" na początku widnieje linijka
"$powody = {}". W tej jednej linijce umieszczamy wszystkie ewentualne powody
"niemożliwości" zadań. Gdy linijka będzie za długa można spokojnie "przerwać"
ją enterem. Gra przeczyta wszystko tak, jakby tego "przerwania" nie było.
W nawiasie klamrowym wpisujemy odniesienie do wiadomości i samą wiadomość
w cudzysłowach. Powinno to wyglądać tak:
$powody = {"odniesienie" => "wiadomość"}
Jeśli jest tych wiadomości więcej trzeba oddzielić je przecinkiem i dla
przejrzystości można zapisać je np. tak:
$powody = {
"kasia nieznana" => "Nie znasz Kasi!",
"brak harpuna" => "Musisz kupić harpun!",
"warszawa" => "Aby wykonać musisz być w Warszawie!"
}
Odniesienia użyjesz to przypisania powodu do zadania, a robi się to tak:
Polecenie przy włączonej aktywności wielu zadań na raz:
$numer_misji =
$numer_podp =
$odniesienie = ""
Misje.new.powod
Np.:
$numer_misji = 1
$numer_podp = 2
$odniesienie = "kasia nieznana"
Misje.new.powod
Po takim poleceniu w dzienniku przy podglądzie zadania drugiego misji
pierwszej będzie widniał napis "Nie znasz Kasi!". Będzie on jednak widoczny
tylko, gdy to zadanie będzie miało status niemożliwego do wykonania!
Polecenie przy wyłączonej aktywności wielu zadań na raz:
$numer_misji =
$odniesienie = ""
Misje.new.powod
Wiadomość tą można zmienić w dowolnym momencie dla każdego zadania.
Wystarczy wpisać polecenie jeszcze raz zmieniając odniesienie.
Wyświetlanie powodu "niemożliwości" misji nie jest obowiązkowe, więc
wystarczy nie wpisywać polecenia, to nam się nie wyświetli. Jednak
w przypadku, gdy chcemy by powód przestał być wyświetlany, po wcześniejszym
jego ustawieniu (dla konkretnego zadania), to najlepiej w "initialize" zrobić
tak:
$powody = {
"brak" => "",
"kasia nieznana" => "Nie znasz Kasi!",
"brak harpuna" => "Musisz kupić harpun!",
"warszawa" => "Aby wykonać musisz być w Warszawie!"
}
i wówczas wystarczy wpisać polecenie z odniesieniem "brak".
D. Warunki w zdarzeniach
Jeśli potrzebujesz stworzyć warunki zależne od jakichś danych dotyczących
różnych misji/zadań i chcesz do tego używać jednego przełącznika do wszystkich
zdarzeń, przeczytaj uważnie poniższe punkty instrukcji. Wybrany skrypt (z tych
poniżej) musisz wpisać przed każdym warunkiem, w którym wykorzystujesz wybrany
przez siebie przełącznik. Te przykłady będą się opierać za przełączniku numer 5,
ale możesz go zmienić.
4 to przykład numeru misji. Oczywiście musisz wpisać numer misji, który Cię
interesuje. Ja pozostanę przy misji nr 4.
2. Misja nieudana = true/false:
$game_switches[5] = $misja_nieudana[4]
3. Misja niemożliwa = true/false:
$game_switches[5] = $misja_niemozliwa[4]
4. Nagroda do odbioru = true/false:
$game_switches[5] = $nagroda_do_odebrania[4]
5. Zadanie wykonane prawidłowo = true/false:
$game_switches[5] = $podp_udany[4][2]
Tu przykładowo sprawdzam zadanie drugie misji czwartej.
6. Zadanie niezaliczone = true/false:
$game_switches[5] = $podp_nieudany[4][2]
7. Zadanie niemożliwe do wykonania = true/false:
$game_switches[5] = $podp_niemozliwy[4][2]
8. Nagroda za zadanie do odbioru = true/false:
$game_switches[5] = $podp_odbior_nagrody[4][2]
9. Aktywność przycisku na mapie:
Aktywność przycisku możemy swobodnie włączać i wyłączać, ale jak sprawdzić,
czy w danej chwili jest aktywny?
$game_switches[5] = $aktywnosc_dziennik_mapa
10. Aktywna misja/zadanie = true false:
Przy tym niestety trochę roboty jest. Nie ma zmiennej, "jeśli aktywna to
true". Misja/zadanie jest aktywne wówczas, gdy zostaną wykluczone pozostałe
stany. Dlatego należy zrobić tak:
Skrypt: $game_switches[5] = $misja_zakonczona[4]
Warunek: jeśli przełącznik 5 jest off to:
Skrypt: $game_switches[5] = $misja_nieudana[4]
Warunek: jeśli przełącznik 5 jest off to:
$game_switches[5] = $misja_niemozliwa[4]
Warunek: jeśli przełącznik 5 jest off to:
$game_switches[5] = $nagroda_do_odebrania[4]
Warunek: jeśli przełącznik 5 jest off to:
to co chcemy, jeśli misja jest aktywna.
Tak samo z zadaniem. Jednak sposób ten działa tylko, gdy zadanie to zostało
wcześniej dodane! Jeżeli chcesz sprawdzić, czy dane zadanie już zostało
dodane, przeczytaj podpunkt poniżej!
11. Zależność od ilości aktywnych zadań danej misji:
Jak już wcześniej wspominałam, zadania zawsze są dodawane po kolei. Jeśli
więc chcemy sprawdzić, czy dane ZADANIE zostało już dodane, wystarczy
sprawdzić ilość dodanych zadań. Jest to chyba jedyny przypadek, gdzie zamiast
przełącznika przyda nam się zmienna. Wybierz sobie jakąś i możemy zaczynać:
$game_variables[8] = $ktory_podp[2]
W ten sposób do zmiennej 8 zostanie przypisana ilość dodanych zadań dla misji
drugiej.
Gdy chcemy sprawdzić, czy MISJA została dodana, wystarczy w warunku ustawić,
by zmienna była większa od zera.
To już koniec tej instrukcji. Życzę miłego korzystania z Dziennika Misji ^^ .
W razie czego proszę pytać na forum.
=end
Nieco krótsza (prawie o 1/3) instrukcja ("nieobowiązkowa"):
Spoiler:
Kod:
=begin
********************************************************************
* Dziennik Misji by Avara *
* Autor: Avara *
* Specjalne podziękowania dla: Sabikku *
********************************************************************
Dziękuję za pobranie skryptu. Jest to wersja skrócona dłuuuugiej instrukcji.
Dziennik wywołujemy skryptem: $scene = Scene_Dziennik.new
Wszystkie opisane polecenia w dziale C i D również wywołujemy skryptem.
W każdym momencie gry można zmienić, czy dziennik można uruchomić przyciskiem
(np. podczas intra) za pomocą polecenia $aktywnosc_dziennik_mapa = true/false.
Zacznijmy od początku:
A. module Avara_Dziennik
1. Wyświetlanie odnośnika w menu i włączenie dziennika na mapie:
OPCJA_W_MENU = true/false
NAZWA_W_MENU = "Misje"
DZIENNIK_MAPA = true <- uruchamianie dziennika przyciskiem na mapie
PRZYCISK_DZ_MAPA = Input::L
Odnośnik znajduje się na 6. pozycji licząc od góry, po zapisie gry i przed
wyjściem z gry (menu się wydłuża).
2. Dane dotyczące dziennika:
NAZWA_W_DZIENNIKU = "Dziennik Misji" <- nazwa dziennika wyświetlana
w samym dzienniku
ILOSC_MISJI = 20 <- orientacyjna liczba Twoich misji od 1 do n
ILOSC_KATEGORII = 2 <- DOKŁADNA liczba kategorii misji od 1 do n
WYGLAD_OKNA_PODSTAWOWY = true/false <- wybór wyglądu okna true - podstawowy
false - wybrany
Wygląd podstawowy to ze standardową "skórką" okna, zaś wygląd wybrany
(gdy ustawimy WYGLAD_OKNA_PODSTAWOWY = false) bazuje na pliku "Window2.png"
w folderze \Graphics\System\. W demie mamy moją propozycję tego pliku.
W dzienniku można ustawić, zadania zaliczane w formie liniowej (biorąc 2.
zadanie, zaliczasz jednocześnie zadanie 1. danej misji) i nieliniowe (możesz
mieć aktywnych kilka zadań i wykonać je w dowolnej kolejności). Gdy ustawimy
AKTYWNOSC_WIELU_PODPUNKTOW_NARAZ = true, wówczas uruchomimy formę zaliczania
zadań nieliniową, czyli wykonujemy wiele zadań jednej misji na raz. Jednak to
ustawienie dotyczy oczywiście wszystkich Twoich misji.
Sprawdzanie dotyczy misji. Przy dowolnej akcji związanej z zadaniem danej
misji, dziennik może automatycznie sprawdzić, czy nie zmienił się nam status
misji. W pierwszej kolejności sprawdza, czy misja jest możliwa do wykonania
(bierze pod uwagę zmienną $zaliczenie - patrz punkt B.2.), następnie czy jest
źle wykonana (tylko zadania z $zaliczenie), czy jest do odebrania nagroda za
dowolne zadanie z misji (wszystkie zadania), czy misja została wykonana
prawidłowo (tylko zadania z $zaliczenie) i jeśli skrypt wykluczy w.w.
możliwości, uznaje misję za aktywną. W każdym wypadku zmienia się ikona misji
i komunikat w oknie opisu w dzienniku. Można to sprawdzanie wyłączyć, ale
wówczas wszystko musimy ustawiać własnoręcznie w grze, dlatego zalecam
pozostawienie tego ustawienia na "true".Działa tylko przy NIEliniowym
sposobiezaliczania zadań.
Jeśli aktywność obrazków ustawisz na "true" w oknie opisu misji będą Ci się
pojawiać według kolejnego ustawienia, twarze lub zdjęcia postaci od których
otrzymujesz misję.
Ostatnia w. w. opcja (OBRAZKI_TWARZE) ustawiona na "true" pokaże nam obrazki
z folderu \Graphics\Pictures\, o które musimy zadbać sami. Mogą to być
przycięte screen'y z gry, lub inne wybrane przez nas obrazki. Przy ustawieniu
"false" pojawią nam się twarze postaci z naszego folderu \Graphics\Faces\.
Dokładne nazwy ustawiamy przy danych misji (tym zajmiemy się nieco później
- B.2.). Ważne jest to, że zarówno twarz jak i obrazek muszą mieć wymiary
96x96 (wielkość "standardowej twarzy").
3. Kolory liter:
KOLOROWE_LITERY = true/false
Jeśli false, to dalsza część tego podpunktu nas nie interesuje i możesz od
razu przejść do kolejnego.
KOLOR_NAZWY_MISJI <- kolor nazwy misji w oknie opisu oraz
podpunkty w oknie "Pomoc"
KOLOR_NPC <- kolor imienia osoby od której dostaliśmy
misję (okno opisu)
KOLOR_OPISU <- kolor opisu misji, zadań
i wyjaśnień w oknie "Pomoc"
KOLOR_NAZWAY_PODP <- kolor nazwy zadania w oknie opisu
KOLOR_PODP_NAGRODA <- kolor ew. nagrody za zadanie w misji
w oknie opisu
KOLOR_MISJA_NAGRODA <- kolor nagrody za misję w oknie opisu
KOLOR_MENU_MISJI <- kolor wyświetlanych misji w menu misji
KOLOR_MENU_PODP <- kolor wyświetlanych zadań w menu zadań
KOLOR_DZIENNIK_I_KATEGORIA <- kolor nazw dziennika i kategorii w dzienniku
KOLOR_MISJA_UDANA <- kolor komunikatu o ukończonej misji
w oknie opisu
KOLOR_MISJA_NIEUDANA <- kolor komunikatu o nieudanej misji
w oknie opisu
KOLOR_MISJA_NIEMOZLIWA <- kolor komunikatu o misji obecnie
niemożliwej do wykonania w oknie opisu
KOLOR_NAGRODA_DO_ODEBRANIA <- kolor komunikatu o nagrodzie za misję
lub pojedyncze zadanie w oknie opisu
Numery odpowiadają kolorom w pliku "Window.png" w folderze \Graphics\System\
od 0 do 31 (ważne: od ZERA!).
4. Komunikaty:
Przed chwilą ustawialiśmy kolory różnych komunikatów, ale jaka jest ich treść?
Tutaj możemy to ustawić.
MISJA_UDANA = "Misja zakończona powodzeniem!" <- jak w nazwie
komunikat misji zakończonej
MISJA_NIEUDANA = "Misja zakończona niepowodzeniem!" <- kom. misji nieudanej
MISJA_NIEMOZLIWA = "Misja niemożliwa do wykonania!" <- kom. misji obecnie
niemożliwej do wykonania
NAGRODA_DO_ODEBRANIA = "Nagroda do odebrania!" <- kom. o nagrodzie do
odbioru za wykonaną misję lub zadanie
Przy misji aktywnej nie ma komunikatu.
5. Ikony:
Ikony w menu misji w dzienniku przy nazwach misji:
IKONA_MISJI_AKTYWNEJ = 158
IKONA_MISJI_UDANEJ = 159
IKONA_MISJI_NIEUDANEJ = 157
IKONA_MISJI_NIEMOZLIWEJ = 114
IKONA_NAGRODY_DO_ODEBRANIA = 147
Ikony w menu zadań w dzienniku przy nazwach zadań (przydatne, gdy mamy aktywne
zaliczanie zadań w formie nieliniowej (patrz punkt A.2.)):
IKONY_POPUNKTOW = true/false <- true - wyświetlanie ikon zadań;
false - brak ikon zadań
IKONA_PODP_AKTYWNEGO = 96
IKONA_PODP_UDANEGO = 101
IKONA_PODP_NIEUDANEGO = 97
IKONA_PODP_NIEMOZLIWEGO = 99
IKONA_PODP_NAGRODA = 102
Jeśli ustawimy ikony podpunktów "true", to w menu zadań w dzienniku misji
przed nazwą każdego zadania będzie widoczna odpowiednia ikonka. Jak
odpowiednio ustawiać aktywne/udane itd. zadanie, powiem w dalszej części
instrukcji (C.).
6. Okno pomocy:
PRZYCISK_POMOC = Input::F5
NAPIS_POMOC = "Pomoc F5"
Przyciskiem tym uruchamiamy w dzienniku misji okno pomocy, gdzie wypisane są
wskazówki dotyczące "sterowania" dziennikiem: jak przełączać kategorie, co
oznaczają ikony itd.
W dzienniku w lewym dolnym rogu jest małe okno z napisem, jak włączyć okno
pomocy. Napis można zmienić.
Zapisywanie danych misji, zmienianie statutów misji i poszczególnych zadań:
B. class Misje
Wszelkie informacje, których jeszcze nie wpisaliśmy do kodu, musimy umieścić
w definicji "initialize" tej klasy.
"@la = 0" zostawiamy w spokoju!!! Nie wolno usuwać ani zmieniać!!!
"$powody = {}" zostawiamy w spokoju!!! Nie wolno usuwać!!! Jeśli chodzi o
zmianę, to o tym później (C.15.).
1. Nazwy kategorii:
$nazwa_kategorii[1] = "Główne"
$nazwa_kategorii[2] = "Poboczne"
W ten sposób nazywamy kategorie misji. Może ich być dowolna ilość, ale
pamiętajmy o tym, by dla wygody graczy raczej nie tworzyć ich więcej niż 5.
Ważne by były ponumerowane od 1 do n, a w "module Avara_Dziennik" ilość
kategorii wpisać n! (nigdzie nie liczymy zera; wyjątki: kolory liter -
patrz A.3. - oraz numer twarzy - patrz B.2.).
2. Dane misji:
$nazwa_misji[NUMER MISJI] = "NAZWA MISJI"
$npc[NUMER MISJI] = "OD KOGO"
$opis_misji_linijka1[NUMER MISJI] = "OPIS MISJI LINIJKA 1"
$opis_misji_linijka2[NUMER MISJI] = "OPIS MISJI LINIJKA 2"
$nazwa_podp[NUMER MISJI][NUMER PODP] = "NAZWA ZADANIA 1"
$opis_podp_linijka1[NUMER MISJI][NUMER PODP] = "OPIS ZADANIA LINIJKA 1"
$opis_podp_linijka2[NUMER MISJI][NUMER PODP] = "OPIS ZADANIA LINIJKA 2"
$opis_podp_linijka3[NUMER MISJI][NUMER PODP] = "OPIS ZADANIA LINIJKA 3"
$opis_podp_linijka4[NUMER MISJI][NUMER PODP] = "OPIS ZADANIA LINIJKA 4"
$podp_nagroda[NUMER MISJI][NUMER PODP] = "NAGRODA ZA PODPUNKT"
$nagroda[NUMER MISJI] = "NAGRODA ZA MISJĘ"
$zdjecie[NUMER MISJI] = "ZDJĘCIE.JPG" <- gdy
AKTYWNE_OBRAZKI_TWARZE = true i OBRAZKI_TWARZE = true
$nr_kategorii_misji[NUMER MISJI] = NUMER KATEGORII <- ważne! numer
kategorii od 1 do n (patrz punkt wyżej)
$zaliczenie[NUMER MISJI] = [NUMERY ZADAŃ] <- ważne! gdy
"AUTOMATYCZNE_SPRAWDZANIE = true" nie można usunąć!
$twarz_nazwa[NUMER MISJI] = "Actor1" <- gdy
AKTYWNE_OBRAZKI_TWARZE = true i OBRAZKI_TWARZE = false
$twarz_numer[NUMER MISJI] = 0 <- gdy
AKTYWNE_OBRAZKI_TWARZE = true i OBRAZKI_TWARZE = false
Zamiast NUMER MISJI wpisujemy liczby od 1 (NIE OD ZERA!) do n (n - ilość
naszych misji). NUMER PODP zaś to numer zadania misji również liczone od 1.
Npc to postać w grze, od której dostajemy misję. Sami musimy ją wpisać.
Nazwa podpunktu to nic innego jak nazwa zadania. Pamiętaj, że zadania misji
są dodawane po kolei!
Możesz jednak ich zrobić dowolną ilość.
Cztery linijki opisu zadań. Do każdego zadania danej misji opis może być
różny. Jeśli opis wyjdzie Ci krótszy, np. 2 linijki, to kod z dwiema kolejnymi
można pominąć. Żaden błąd nie wyskoczy. Tyczy się to wszystkiego od nazwy
misji do nagrody za misję.
Nagroda za podpunkt jest oczywiście "nieobowiązkowa". Jeśli nie ma nagrody
za konkretne zadanie, najlepiej pominąć tą linijkę kodu przy opisywaniu danego
zadania.
Nagroda za misję: jak wyżej. Można też po prostu wpisać "brak", to już
zależy od Ciebie.
Zdjęcie - konieczne, gdy aktywność obrazków ustawimy na "true"
a obrazki/twarze również na "true" (A.2.). Bez tego wyskoczy nam błąd. Jak
pisałam o tym wcześniej, obrazki ("zdjęcia") są wczytywane z folderu
\Graphics\Pictures\. Jeśli obrazki nie są aktywne (albo jest ustawiona
aktywność twarzy), tą linijkę można pominąć.
Numer kategorii misji jest ważny, by misja w ogóle nam się wyświetliła
w dzienniku! Numer od 1 w górę. Jeśli pominiesz tą linijkę wyskoczy błąd!
Zaliczenie to nic innego, jak wymienione zadania, które muszą zostać
wykonane, aby uznać misję za udaną. Jeśli automatyczne sprawdzanie misji jest
wyłączone (A.2.), tą linijkę można pominąć. Gdy jest odwrotnie (sprawdzanie
jest włączone), to wymagane zadania (ich numery) muszą zostać wypisane
w nawiasie kwadratowym, oddzielone przecinkami, np:
$zaliczenie[NUMER MISJI] = [2, 3, 4]
Wówczas zadanie pierwsze jest "nieobowiązkowe", zaś 2., 3. i 4. już tak.
Nazwa i numer twarzy jest wymagana, gdy aktywność obrazków/twarzy jest
włączona i OBRAZKI_TWARZE są na "false" (A.2.). Nazwa twarzy to nazwa pliku
z folderu \Graphics\Faces\. Czyli np. "Actor1", "People3".
Numer twarzy to cyfra od zera do 7.
Jeśli twarze nie są aktywne, to wówczas jak zwykle radzę pomijać te dwie
linijki kodu.
Poniżej wszystko związane ze zdarzeniami na mapie.
C. class Misje - definicje
1. Dodawanie misji:
$numer_misji =
Misje.new.dodaj_misje
Misje są ułożone w dzienniku w kolejności ich dodawania i są wyświetlane
tylko w wybranej kategorii. Wraz z dodaniem misji dodawane jest jej pierwsze
zadanie i ma ono status "aktywny". Jeśli dodajemy misję drugi raz (po
wcześniejszym jej usunięciu), wszystkie ustawienia (statusy i ilość zadań)
zostają "zresetowane".
2. Dodawanie zadania:
$numer_misji =
Misje.new.dodaj_podp
Zadania danej misji są dodawane do niej po kolei. Jeśli mamy włączone liniowe
zaliczanie zadań (patrz punkt A.2.), poprzednie zadanie zostanie
automatycznie zaliczone. Gdy dodatkowo mamy włączone automatyczne sprawdzanie
statusu misji (A.2.), to zostanie on sprawdzony. Jeśli pierwsza opcja jest
wyłączona, nie ma żadnej dodatkowej akcji. Status dodawanego zadania to
"aktywny".
3. Usuwanie zadania:
$numer_misji =
Misje.new.usun_podp
Usuwane jest ostatnie zadanie. Aby usunąć misję nie wystarczy usunąć
wszystkie zadania do tego potrzeba polecenia poniżej. Jeśli sprawdzanie
statusu misji jest włączone, zostanie on sprawdzony.
4. Usuwanie misji:
$numer_misji =
Misje.new.usun_misje
Po tym poleceniu misja przestanie być widoczna w dzienniku. Menu misji
zostaje zaktualizowane (dana misja znika, a te po niej "wskakują" o jedną
pozycję wyżej).
Poniższe polecenia są używane przy liniowym sposobie zaliczania zadań (A.2.).
5. Misja zakończona pomyślnie:
$numer_misji =
Misje.new.misja_udana
Bez sprawdzania zmienia status misji na zakończoną, wyłączając wszystkie
pozostałe statusy. Jeśli aktywność wielu zadań naraz jest włączona (A.2.), to
nic się nie stanie. Przy wyłączonej ostatnie zadanie zostaje uznane za udane.
6. Misja aktywna:
$numer_misji =
Misje.new.misja_aktywna
Bez sprawdzania wyłącza wszystkie statusy misji, przez co widnieje jako
aktywna. Jeśli aktywność wielu zadań naraz jest wyłączona (A.2.), to zmienia
się status ostatniego widocznego zadania na aktywny.
8. Misja niemożliwa do wykonania:
$numer_misji =
Misje.new.misja_niemozliwa
WAŻNE! Patrz punkt C.15.!
9. Nagroda za misję do odebrania:
$numer_misji =
Misje.new.nagroda_do_odebrania
Poniższe polecenia są używane przy nieliniowym sposobie zaliczania zadań (A.2.).
Oprócz numeru misji trzeba również podać numer zadania.
10. Zadanie zaliczone:
$numer_misji =
$numer_podp =
Misje.new.podpunkt_udany
Zmienia status konkretnego zadania na udany. Jeśli sprawdzanie statusu misji
jest włączone - sprawdza (A.2).
11. Zadanie aktywne:
$numer_misji =
$numer_podp =
Misje.new.podpunkt_aktywny
12. Zadanie źle wykonane:
$numer_misji =
$numer_podp =
Misje.new.podpunkt_nieudany
13. Zadanie obecnie niemożliwe do wykonania:
$numer_misji =
$numer_podp =
Misje.new.podpunkt_niemozliwy
WAŻNE! Patrz punkt C.15.!
14. Nagroda za zadanie do odebrania:
$numer_misji =
$numer_podp =
Misje.new.podpunkt_nagroda
15. Powód, dla którego misja/zadanie jest niemożliwe do wykonania:
Możemy wyświetlić wiadomość, czemu dana część misji jest niemożliwa do
wykonania, czyli co trzeba zrobić/mieć/jakie warunki spełnić, by zadanie stało
się aktywne. Będzie to informacja w kolorze komunikatu o misji niemożliwej
(A.3.), jeśli kolory liter będą włączone na "true".
W "class Misje" w definicji "initialize" na początku widnieje linijka
"$powody = {}". W tej jednej linijce umieszczamy wszystkie ewentualne powody
"niemożliwości" zadań. W nawiasie klamrowym wpisujemy odniesienie do
wiadomości i samą wiadomość w cudzysłowach. Powinno to wyglądać tak:
$powody = {"odniesienie" => "wiadomość"}
Jeśli jest tych wiadomości więcej trzeba oddzielić je przecinkiem i dla
przejrzystości można zapisać je np. tak:
$powody = {
"kasia nieznana" => "Nie znasz Kasi!",
"brak harpuna" => "Musisz kupić harpun!",
"warszawa" => "Aby wykonać musisz być w Warszawie!"
}
Odniesienia użyjesz to przypisania powodu do zadania, a robi się to tak:
Polecenie przy włączonej aktywności wielu zadań na raz:
$numer_misji =
$numer_podp =
$odniesienie = ""
Misje.new.powod
Np.:
$numer_misji = 1
$numer_podp = 2
$odniesienie = "kasia nieznana"
Misje.new.powod
Po takim poleceniu w dzienniku przy podglądzie zadania drugiego misji
pierwszej będzie widniał napis "Nie znasz Kasi!". Będzie on jednak widoczny
tylko, gdy to zadanie będzie miało status niemożliwego do wykonania!
Polecenie przy wyłączonej aktywności wielu zadań na raz:
$numer_misji =
$odniesienie = ""
Misje.new.powod
Wiadomość tą można zmienić w dowolnym momencie dla każdego zadania.
Wystarczy wpisać polecenie jeszcze raz zmieniając odniesienie.
Wyświetlanie powodu "niemożliwości" misji nie jest obowiązkowe, więc
wystarczy nie wpisywać polecenia, to nam się nie wyświetli. Jednak
w przypadku, gdy chcemy by powód przestał być wyświetlany, po wcześniejszym
jego ustawieniu (dla konkretnego zadania), to najlepiej w "initialize" zrobić
tak:
$powody = {
"brak" => "",
"kasia nieznana" => "Nie znasz Kasi!",
"brak harpuna" => "Musisz kupić harpun!",
"warszawa" => "Aby wykonać musisz być w Warszawie!"
}
i wówczas wystarczy wpisać polecenie z odniesieniem "brak".
D. Warunki w zdarzeniach
Jeśli potrzebujesz stworzyć warunki zależne od jakichś danych dotyczących
różnych misji/zadań i chcesz do tego używać jednego przełącznika do wszystkich
zdarzeń, przeczytaj uważnie poniższe punkty instrukcji. Wybrany skrypt (z tych
poniżej) musisz wpisać przed każdym warunkiem, w którym wykorzystujesz wybrany
przez siebie przełącznik. Te przykłady będą się opierać za przełączniku numer 5,
ale możesz go zmienić.
4. Nagroda do odbioru = true/false:
$game_switches[5] = $nagroda_do_odebrania[4]
5. Zadanie wykonane prawidłowo = true/false:
$game_switches[5] = $podp_udany[4][2]
6. Zadanie niezaliczone = true/false:
$game_switches[5] = $podp_nieudany[4][2]
7. Zadanie niemożliwe do wykonania = true/false:
$game_switches[5] = $podp_niemozliwy[4][2]
8. Nagroda za zadanie do odbioru = true/false:
$game_switches[5] = $podp_odbior_nagrody[4][2]
9. Aktywność przycisku na mapie:
$game_switches[5] = $aktywnosc_dziennik_mapa
10. Aktywna misja/zadanie = true false:
Przy tym niestety trochę roboty jest. Nie ma zmiennej, "jeśli aktywna to true"
Misja/zadanie jest aktywne wówczas, gdy zostaną wykluczone pozostałe stany.
Dlatego należy zrobić tak:
Skrypt: $game_switches[5] = $misja_zakonczona[4]
Warunek: jeśli przełącznik 5 jest off to:
Skrypt: $game_switches[5] = $misja_nieudana[4]
Warunek: jeśli przełącznik 5 jest off to:
$game_switches[5] = $misja_niemozliwa[4]
Warunek: jeśli przełącznik 5 jest off to:
$game_switches[5] = $nagroda_do_odebrania[4]
Warunek: jeśli przełącznik 5 jest off to:
to co chcemy, jeśli misja jest aktywna.
Tak samo z zadaniem. Jednak sposób ten działa tylko, gdy zadanie to zostało
wcześniej dodane! Jeżeli chcesz sprawdzić, czy dane zadanie już zostało
dodane, przeczytaj podpunkt poniżej!
11. Zależność od ilości aktywnych zadań danej misji:
Jak już wcześniej wspominałam, zadania zawsze są dodawane po kolei. Jeśli więc
chcemy sprawdzić, czy dane zadanie zostało już dodane, wystarczy sprawdzić
ilość dodanych zadań. Jest to chyba jedyny przypadek, gdzie zamiast
przełącznika przyda nam się zmienna:
$game_variables[8] = $ktory_podp[2]
W ten sposób do zmiennej 8 zostanie przypisana ilość dodanych zadań dla misji
drugiej.
Gdy chcemy sprawdzić, czy misja została dodana, wystarczy w warunku ustawić,
by zmienna była większa od zera.
To już koniec tej instrukcji. Życzę miłego korzystania z Dziennika Misji ^^ .
W razie czego proszę pytać na forum.
=end
Kolejna część w drugim poście, bo skrypty są za długie i się nie mieści wszystko.
def dodaj_podp
if $aktywnosc_podp == false
$podp_udany[$numer_misji][$ktory_podp[$numer_misji]] = true
end
$ktory_podp[$numer_misji] += 1
$podp_udany[$numer_misji][$ktory_podp[$numer_misji]] = false
$podp_nieudany[$numer_misji][$ktory_podp[$numer_misji]] = false
$podp_niemozliwy[$numer_misji][$ktory_podp[$numer_misji]] = false
$podp_odbior_nagrody[$numer_misji][$ktory_podp[$numer_misji]] = false
if $aktywnosc_podp == false
if Avara_Dziennik::AUTOMATYCZNE_SPRAWDZANIE == true
misja_sprawdz
end
end
end
def usun_podp
$ktory_podp[$numer_misji] -= 1
if $aktywnosc_podp == false
$podp_udany[$numer_misji][$ktory_podp[$numer_misji]] = false
end
if Avara_Dziennik::AUTOMATYCZNE_SPRAWDZANIE == true
misja_sprawdz
end
end
def podpunkt_udany
$podp_udany[$numer_misji][$numer_podp] = true
$podp_nieudany[$numer_misji][$numer_podp] = false
$podp_niemozliwy[$numer_misji][$numer_podp] = false
$podp_odbior_nagrody[$numer_misji][$numer_podp] = false
if Avara_Dziennik::AUTOMATYCZNE_SPRAWDZANIE == true
misja_sprawdz
end
end
def podpunkt_aktywny
$podp_udany[$numer_misji][$numer_podp] = false
$podp_nieudany[$numer_misji][$numer_podp] = false
$podp_niemozliwy[$numer_misji][$numer_podp] = false
$podp_odbior_nagrody[$numer_misji][$numer_podp] = false
if Avara_Dziennik::AUTOMATYCZNE_SPRAWDZANIE == true
misja_sprawdz
end
end
def podpunkt_nieudany
$podp_udany[$numer_misji][$numer_podp] = false
$podp_nieudany[$numer_misji][$numer_podp] = true
$podp_niemozliwy[$numer_misji][$numer_podp] = false
$podp_odbior_nagrody[$numer_misji][$numer_podp] = false
if $aktywnosc_podp == false
misja_nieudana
else
if Avara_Dziennik::AUTOMATYCZNE_SPRAWDZANIE == true
misja_sprawdz
end
end
end
def podpunkt_niemozliwy
$podp_udany[$numer_misji][$numer_podp] = false
$podp_nieudany[$numer_misji][$numer_podp] = false
$podp_niemozliwy[$numer_misji][$numer_podp] = true
$podp_odbior_nagrody[$numer_misji][$numer_podp] = false
if $aktywnosc_podp == false
misja_niemozliwa
else
if Avara_Dziennik::AUTOMATYCZNE_SPRAWDZANIE == true
misja_sprawdz
end
end
end
def podpunkt_nagroda
$podp_udany[$numer_misji][$numer_podp] = false
$podp_nieudany[$numer_misji][$numer_podp] = false
$podp_niemozliwy[$numer_misji][$numer_podp] = false
$podp_odbior_nagrody[$numer_misji][$numer_podp] = true
if Avara_Dziennik::AUTOMATYCZNE_SPRAWDZANIE == true
misja_sprawdz
end
end
def misja_sprawdz
wynik0 = true
i = 0 + @la
if $podp_niemozliwy[$numer_misji][$zaliczenie[$numer_misji][0 + i]] == true
wynik0 = false
end
if wynik0 == false
@la = 0
misja_niemozliwa
else
if i == $zaliczenie[$numer_misji].size - 1
@la = 0
misja_nieudana_sprawdz
else
@la += 1
misja_sprawdz
end
end
end
def misja_nieudana_sprawdz
wynik1 = true
i = 0 + @la
if $podp_nieudany[$numer_misji][$zaliczenie[$numer_misji][0 + i]] == true
wynik1 = false
end
if wynik1 == false
@la = 0
misja_nieudana
else
if i == $zaliczenie[$numer_misji].size - 1
@la = 0
nagroda_sprawdz
else
@la += 1
misja_nieudana_sprawdz
end
end
end
def nagroda_sprawdz
wynik2 = true
b = 1 + @la
if $podp_odbior_nagrody[$numer_misji][b] == true
wynik2 = false
end
if wynik2 == false
@la = 0
nagroda_do_odebrania
else
if b == $nazwa_podp[$numer_misji].size - 1
@la = 0
misja_udana_sprawdz
else
@la += 1
nagroda_sprawdz
end
end
end
def misja_udana_sprawdz
wynik3 = true
i = 0 + @la
if $podp_udany[$numer_misji][$zaliczenie[$numer_misji][0 + i]] == false
wynik3 = false
end
if wynik3 == false
@la = 0
misja_aktywna
else
if i == $zaliczenie[$numer_misji].size - 1
@la = 0
misja_udana
else
@la += 1
misja_udana_sprawdz
end
end
end
def powod
if $aktywnosc_podp == true
$niemozliwy_powod[$numer_misji][$numer_podp] = $powody[$odniesienie]
else
$niemozliwy_powod[$numer_misji][$zaliczenie[$numer_misji]] = $powody[$odniesienie]
end
end
end
Kod:
Spoiler:
Kod:
#********************************************************************
#* Dziennik Misji by Avara *
#* Autor: Avara *
#* Specjalne podziękowania dla: Sabikku *
#********************************************************************
alias up update
def update
up
if $aktywnosc_dziennik_mapa == true
if $game_message.visible == false
if Input.trigger?(Avara_Dziennik::PRZYCISK_DZ_MAPA)
$scene = Scene_Dziennik.new
end
end
end
$kategoria = 1
if $suma_misji_kat[1] >= 1
for z in $numer_menu[1][0]..$numer_menu[1][$suma_misji_kat[1] - 1]
if $numer_menu[1][$suma_misji_kat[1] - 1] == z
$okno_opisu = z
end
end
else
$okno_opisu = 0
end
end
end
if $suma_misji_kat[$kategoria] >= 1
for z in 0...$suma_misji_kat[$kategoria]
if $numer_menu[$kategoria][@okno_menu.index] == $numer_menu[$kategoria][z]
$okno_opisu = $numer_menu[$kategoria][z]
$okno_opisu_podp = $ktory_podp[$okno_opisu]
if @okno_menu.active == true
if Input.trigger?(Input::DOWN)
odswiezanie_podpunktow
elsif Input.trigger?(Input::UP)
odswiezanie_podpunktow
end
end
end
end
end
if $suma_misji_kat[$kategoria] >= 1
if $ktory_podp[$okno_opisu] >= 1
@okno_podp.refresh
@okno_podp.update
end
end
if $suma_misji_kat[$kategoria] >= 1
if @okno_podp.active == true
$okno_opisu_podp = @okno_podp.index + 1
end
end
if @pomoc2.visible == true
if Input.trigger?(Input::B)
@pomoc2.visible = false
end
else
if Input.trigger?(Avara_Dziennik::PRZYCISK_POMOC)
@pomoc2.visible = true
end
if @okno_menu.active == true
if Input.trigger?(Input::RIGHT)
if $kategoria == $ilosc_kategorii
@okno_podp.visible = false
$kategoria = 1
$okno_opisu = $numer_menu[$kategoria][$suma_misji_kat[$kategoria] - 1]
@okno_menu.visible = false
@opis.visible = false
@kat.visible = false
@nazwa.visible = false
@pomoc.visible = false
return start
else
@okno_podp.visible = false
$kategoria += 1
$okno_opisu = $numer_menu[$kategoria][$suma_misji_kat[$kategoria] - 1]
@okno_menu.visible = false
@opis.visible = false
@kat.visible = false
@nazwa.visible = false
@pomoc.visible = false
return start
end
end
if Input.trigger?(Input::LEFT)
if $kategoria == 1
@okno_podp.visible = false
$kategoria = $ilosc_kategorii
$okno_opisu = $numer_menu[$kategoria][$suma_misji_kat[$kategoria] - 1]
@okno_menu.visible = false
@opis.visible = false
@kat.visible = false
@nazwa.visible = false
@pomoc.visible = false
return start
elsif $kategoria == $ilosc_kategorii
@okno_podp.visible = false
$kategoria -= 1
$okno_opisu = $numer_menu[$kategoria][$suma_misji_kat[$kategoria] - 1]
@okno_menu.visible = false
@opis.visible = false
@kat.visible = false
@nazwa.visible = false
@pomoc.visible = false
return start
end
end
if Input.trigger?(Input::C)
@okno_menu.active = false
@okno_podp.active = true
if $suma_misji_kat[$kategoria] >=1
@okno_podp.index = $ktory_podp[$okno_opisu] - 1
else
@okno_podp.index = 0
end
end
end
if $suma_misji_kat[$kategoria] >= 1
if @okno_podp.active == true
if Input.trigger?(Input::B)
@okno_menu.active = true
@okno_podp.active = false
if $suma_misji_kat[$kategoria] >=1
@okno_podp.index = $ktory_podp[$okno_opisu] - 1
end
end
else
if Input.trigger?(Input::B)
$kategoria = 1
@okno_podp.visible = false
$okno_opisu = $numer_menu[1][0]
@okno_menu.visible = false
@opis.visible = false
@kat.visible = false
@nazwa.visible = false
@pomoc.visible = false
$scene = Scene_Map.new
end
end
else
if Input.trigger?(Input::B)
$kategoria = 1
@okno_podp.visible = false
$okno_opisu = $numer_menu[$kategoria][$suma_misji_kat[$kategoria] - 1]
@okno_menu.visible = false
@opis.visible = false
@kat.visible = false
@nazwa.visible = false
@pomoc.visible = false
$scene = Scene_Map.new
end
end
end
end
end
class Okno_OpisMisji < Window_Base
def initialize(x = 194, y = 56, width = 350, height = 360)
super(x,y,width,height)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = ("Verdana")
self.contents.font.size = 22
if Avara_Dziennik::WYGLAD_OKNA_PODSTAWOWY == true
self.back_opacity = 160
else
self.windowskin = Cache.system("Window2.png")
self.back_opacity = 255
end
refresh
end
alias oldupdate update
def update
refresh
oldupdate
end
def text_color(n)
x = 64 + (n % 8) * 8
y = 96 + (n / 8) * 8
return windowskin.get_pixel(x, y)
end
def refresh
self.contents.clear
if $suma_misji_kat[$kategoria] == 0
self.contents.draw_text(0, 0, 318, 24, "Brak misji", 0)
else
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_NAZWY_MISJI)
end
self.contents.draw_text(0, 0, 318, 24, $nazwa_misji[$okno_opisu], 1)
if Avara_Dziennik::AKTYWNE_OBRAZKI_TWARZE == true
if Avara_Dziennik::KOLOROWE_LITERY == true
self .contents.font.color = text_color(Avara_Dziennik::KOLOR_OPISU)
end
if $npc[$okno_opisu] != nil
self.contents.draw_text(101, 24, 217, 24, "Od: " + $npc[$okno_opisu].to_s, 0)
end
self.contents.draw_text(101, 48, 217, 24, $opis_misji_linijka1[$okno_opisu], 0)
self.contents.draw_text(101, 72, 217, 24, $opis_misji_linijka2[$okno_opisu], 0)
if $misja_zakonczona[$okno_opisu] == true
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_MISJA_UDANA)
end
self.contents.draw_text(101, 96, 217, 24, Avara_Dziennik::MISJA_UDANA, 2)
elsif $misja_nieudana[$okno_opisu] == true
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_MISJA_NIEUDANA)
end
self.contents.draw_text(101, 96, 217, 24, Avara_Dziennik::MISJA_NIEUDANA, 2)
elsif $misja_niemozliwa[$okno_opisu] == true
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_MISJA_NIEMOZLIWA)
end
self.contents.draw_text(101, 96, 217, 24, Avara_Dziennik::MISJA_NIEMOZLIWA, 2)
elsif $nagroda_do_odebrania[$okno_opisu] == true
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_NAGRODA_DO_ODEBRANIA)
end
self.contents.draw_text(101, 96, 217, 24, Avara_Dziennik::NAGRODA_DO_ODEBRANIA, 2)
end
else
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_OPISU)
end
if $npc[$okno_opisu] != nil
self.contents.draw_text(101, 24, 217, 24, "Od: " + $npc[$okno_opisu].to_s, 0)
end
self.contents.draw_text(0, 48, 318, 24, $opis_misji_linijka1[$okno_opisu], 0)
self.contents.draw_text(0, 72, 318, 24, $opis_misji_linijka2[$okno_opisu], 0)
if $misja_zakonczona[$okno_opisu] == true
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_MISJA_UDANA)
end
self.contents.draw_text(0, 96, 318, 24, Avara_Dziennik::MISJA_UDANA, 2)
elsif $misja_nieudana[$okno_opisu] == true
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_MISJA_NIEUDANA)
end
self.contents.draw_text(0, 96, 318, 24, Avara_Dziennik::MISJA_NIEUDANA, 2)
elsif $misja_niemozliwa[$okno_opisu] == true
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_MISJA_NIEMOZLIWA)
end
self.contents.draw_text(0, 96, 318, 24, Avara_Dziennik::MISJA_NIEMOZLIWA, 2)
elsif $nagroda_do_odebrania[$okno_opisu] == true
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_NAGRODA_DO_ODEBRANIA)
end
self.contents.draw_text(0, 96, 318, 24, Avara_Dziennik::NAGRODA_DO_ODEBRANIA, 2)
end
end
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_NAZWAY_PODP)
end
self.contents.draw_text(0, 120, 318, 24, $nazwa_podp[$okno_opisu][$okno_opisu_podp], 1)
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_OPISU)
end
self.contents.draw_text(0, 144, 318, 24, $opis_podp_linijka1[$okno_opisu][$okno_opisu_podp], 0)
self.contents.draw_text(0, 168, 318, 24, $opis_podp_linijka2[$okno_opisu][$okno_opisu_podp], 0)
self.contents.draw_text(0, 192, 318, 24, $opis_podp_linijka3[$okno_opisu][$okno_opisu_podp], 0)
self.contents.draw_text(0, 216, 318, 24, $opis_podp_linijka4[$okno_opisu][$okno_opisu_podp], 0)
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_MISJA_NIEMOZLIWA)
end
if $podp_niemozliwy[$okno_opisu][$okno_opisu_podp] == true
self.contents.draw_text(0, 240, 318, 24, $niemozliwy_powod[$okno_opisu][$okno_opisu_podp], 2)
end
if $podp_nagroda[$okno_opisu][$okno_opisu_podp] != nil
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_PODP_NAGRODA)
end
self.contents.draw_text(0, 272, 318, 24, "Nagroda za zadanie: " + $podp_nagroda[$okno_opisu][$okno_opisu_podp].to_s, 0)
end
if $nagroda[$okno_opisu] != nil
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_MISJA_NAGRODA)
end
self.contents.draw_text(0, 300, 318, 24, "Nagroda za misję: " + $nagroda[$okno_opisu].to_s, 0)
end
if Avara_Dziennik::AKTYWNE_OBRAZKI_TWARZE == true
if Avara_Dziennik::OBRAZKI_TWARZE == true
img = Cache.picture($zdjecie[$okno_opisu])
src_rect = Rect.new(0, 0, img.width, img.height)
self.contents.blt(0, 24, img, src_rect)
else
draw_face($twarz_nazwa[$okno_opisu], $twarz_numer[$okno_opisu], 0, 24)
end
end
end
end
end
class Okno_Kategoria < Window_Base
def initialize(x = 194, y = 0, width = 350, height = 56)
super(x,y,width,height)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = ("Verdana")
self.contents.font.size = 22
if Avara_Dziennik::WYGLAD_OKNA_PODSTAWOWY == true
self.back_opacity = 160
else
self.windowskin = Cache.system("Window2.png")
self.back_opacity = 255
end
refresh
end
alias oldupdate update
def update
refresh
oldupdate
end
def text_color(n)
x = 64 + (n % 8) * 8
y = 96 + (n / 8) * 8
return windowskin.get_pixel(x, y)
end
def refresh
self.contents.clear
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_DZIENNIK_I_KATEGORIA)
end
self.contents.draw_text(0, 0, 318, 24, $nazwa_kategorii[$kategoria].to_s, 1)
end
end
class Okno_Nazwa < Window_Base
def initialize(x = 0, y = 0, width = 194, height = 56)
super(x,y,width,height)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = ("Verdana")
self.contents.font.size = 22
if Avara_Dziennik::WYGLAD_OKNA_PODSTAWOWY == true
self.back_opacity = 160
else
self.windowskin = Cache.system("Window2.png")
self.back_opacity = 255
end
refresh
end
def text_color(n)
x = 64 + (n % 8) * 8
y = 96 + (n / 8) * 8
return windowskin.get_pixel(x, y)
end
def refresh
self.contents.clear
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_DZIENNIK_I_KATEGORIA)
end
self.contents.draw_text(0, 0, 162, 24, Avara_Dziennik::NAZWA_W_DZIENNIKU, 1)
end
end
class Okno_Pomoc < Window_Base
def initialize(x = 0, y = 360, width = 194, height = 56)
super(x,y,width,height)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = ("Verdana")
self.contents.font.size = 22
if Avara_Dziennik::WYGLAD_OKNA_PODSTAWOWY == true
self.back_opacity = 160
else
self.windowskin = Cache.system("Window2.png")
self.back_opacity = 255
end
refresh
end
def text_color(n)
x = 64 + (n % 8) * 8
y = 96 + (n / 8) * 8
return windowskin.get_pixel(x, y)
end
def refresh
self.contents.clear
if Avara_Dziennik::KOLOROWE_LITERY == true
self.contents.font.color = text_color(Avara_Dziennik::KOLOR_DZIENNIK_I_KATEGORIA)
end
self.contents.draw_text(0, 0, 162, 24, Avara_Dziennik::NAPIS_POMOC, 1)
end
end
alias cr_co_wi create_command_window
def create_command_window
cr_co_wi
if Avara_Dziennik::OPCJA_W_MENU == true
s1 = Vocab::item
s2 = Vocab::skill
s3 = Vocab::equip
s4 = Vocab::status
s5 = Vocab::save
s6 = Avara_Dziennik::NAZWA_W_MENU
s7 = Vocab::game_end
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
@command_window.index = @menu_index
if $game_party.members.size == 0
@command_window.draw_item(0, false)
@command_window.draw_item(1, false)
@command_window.draw_item(2, false)
@command_window.draw_item(3, false)
end
if $game_system.save_disabled
@command_window.draw_item(4, false)
end
end
end
alias up_co_se update_command_selection
def update_command_selection
up_co_se
if Avara_Dziennik::OPCJA_W_MENU == true
if Input.trigger?(Input::C)
case @command_window.index
when 0
$scene = Scene_Item.new
when 1,2,3
start_actor_selection
when 4
$scene = Scene_File.new(true, false, false)
when 5
$scene = Scene_Dziennik.new
when 6
$scene = Scene_End.new
end
end
end
end
alias up_ac_se update_actor_selection
def update_actor_selection
up_ac_se
if Avara_Dziennik::OPCJA_W_MENU == true
if Input.trigger?(Input::C)
$game_party.last_actor_index = @status_window.index
Sound.play_decision
case @command_window.index
when 1
$scene = Scene_Skill.new(@status_window.index)
when 2
$scene = Scene_Equip.new(@status_window.index)
when 3
$scene = Scene_Status.new(@status_window.index)
end
end
end
end
end
Materiały dodatkowe:
Wszystkie materiały zawarte są w paczce do pobrania
Dziennik w demie bardzo mi się podoba, tylko strasznie ciężka ta konfiguracja - wiesz, szczególnie dodawanie nowych misji. Dużo się nad tym naharowałaś i wyszło ładnie, ale przede wszystkim życzę powodzenia w dalszej nauce ruby ;).
Dobry skrypt! Gdybym nie miał już innego skryptu na zadania na pewno użyłbym tego Nie wiem jak inni ale ja podziwiam ludzi którzy potrafią pisać takie skrypty
Jest to mój pierwszy skrypt. Dlatego jest tak mało przystępny i ustawiłam taką ikonkę tematu. Miesiąc temu o skryptach wiedziałam tyle co nic o tak -> o.O lub tak -> @.@ . Starałam się jednak zrobić szczegółową instrukcję. W razie czego będę pomagać na forum rozwiązać problemy ze skryptem.
I jeszcze jedno: podziękowania należą się w dużej części Sabikkowi. Co prawda on nie robił tego skryptu, ale bez niego nic bym nie zrobiła
Jak będą prośby o przerobienie skryptu (w zależności też od tego w jakim stopniu), to postaram się pomóc
Oczywiście skrypt jest jak najbardziej godny braw i pokłonów. Super, że piszesz skrypty. Jak będę robił kiedyś grę na vx to jest duża możliwość, że go użyję :)
Skrypt bardzo skomplikowany, ale użyje go dlatego, bo widzę, że bardzo się starałaś :) Napisze tak jak wszyscy: "powodzenia w dalszym programowaniu" :)
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum