UltimaForum

Skrypty [VX] - Dziennik Misji by Avara

Avara - Pon 08 Sie, 2011 15:46
Temat postu: Dziennik Misji by Avara
Dziennik Misji by Avara (VX)


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.
   
      AKTYWNOSC_WIELU_PODPUNKTOW_NARAZ = true/false  <- true - tak; false - nie
      AUTOMATYCZNE_SPRAWDZANIE = true/false          <- true - tak; false - nie
      AKTYWNE_OBRAZKI_TWARZE = true/false            <- true - tak; false - nie
      OBRAZKI_TWARZE = true/false              <- true - obrazki; false - twarze
     
      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         <- true - kolorowe litery w dzienniku;
                                              false - białe
     
    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!).
     
    Moja propozycja dla wyglądu okna podstawowego:
      KOLOR_NAZWY_MISJI = 12
      KOLOR_NPC = 4
      KOLOR_OPISU = 4
      KOLOR_NAZWAY_PODP = 3
      KOLOR_PODP_NAGRODA = 14
      KOLOR_MISJA_NAGRODA = 14
      KOLOR_MENU_MISJE = 4
      KOLOR_MENU_PODP = 4
      KOLOR_DZIENNIK_I_KATEGORIA = 21
      KOLOR_MISJA_UDANA = 29
      KOLOR_MISJA_NIEUDANA = 8
      KOLOR_MISJA_NIEMOZLIWA = 2
      KOLOR_NAGRODA_DO_ODEBRANIA = 6

    Moja propozycja do wyglądu wybranego z moją propozycją pliku "Window2.png"
    (kolory kratek w pliku niezmienione):
      KOLOR_NAZWY_MISJI = 12
      KOLOR_NPC = 4
      KOLOR_OPISU = 6
      KOLOR_NAZWAY_PODP = 3
      KOLOR_PODP_NAGRODA = 20
      KOLOR_MISJA_NAGRODA = 20
      KOLOR_MENU_MISJE = 21
      KOLOR_MENU_PODP = 21
      KOLOR_DZIENNIK_I_KATEGORIA = 25
      KOLOR_MISJA_UDANA = 29
      KOLOR_MISJA_NIEUDANA = 8
      KOLOR_MISJA_NIEMOZLIWA = 2
      KOLOR_NAGRODA_DO_ODEBRANIA = 6
     
  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.). 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.
   
  3. Przykłady misji (wzory) i kilka uwag:
 
    Misja pierwsza, 2 zadania, nagroda za 1. zadanie, różne długości opisów zadań,
    nagroda za misję, kategoria pierwsza, zaliczenie - oba zadania, twarz:
      $nazwa_misji[1] = ""
      $npc[1] = ""
      $opis_misji_linijka1[1] = ""
      $opis_misji_linijka2[1] = ""
      $nazwa_podp[1][1] = ""
      $podp_nagroda[1][1] = ""
      $opis_podp_linijka1[1][1] = ""
      $opis_podp_linijka2[1][1] = ""
      $nazwa_podp[1][2] = ""
      $opis_podp_linijka1[1][2] = ""
      $opis_podp_linijka2[1][2] = ""
      $opis_podp_linijka3[1][2] = ""
      $opis_podp_linijka4[1][2] = ""
      $nagroda[1] = ""
      $nr_kategorii_misji[1] = 1
      $zaliczenie[1] = [1, 2]
      $twarz_nazwa[1] = "Actor1"
      $twarz_numer[1] = 0
     
    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.
 
  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
     
    Zmienia status konkretnego zadania na aktywny. Jeśli sprawdzanie statusu misji
    jest włączone - sprawdza (A.2).
   
  12. Zadanie źle wykonane:
 
      $numer_misji =
      $numer_podp =
      Misje.new.podpunkt_nieudany
     
    Zmienia status konkretnego zadania na nieudany. Jeśli sprawdzanie statusu
    misji jest włączone - sprawdza (A.2).
   
  13. Zadanie obecnie niemożliwe do wykonania:
 
      $numer_misji =
      $numer_podp =
      Misje.new.podpunkt_niemozliwy
 
    Zmienia status konkretnego zadania na niemożliwy. Jeśli sprawdzanie statusu
    misji jest włączone - sprawdza (A.2). WAŻNE! Patrz punkt C.15.!
   
  14. Nagroda za zadanie do odebrania:
 
      $numer_misji =
      $numer_podp =
      Misje.new.podpunkt_nagroda
     
    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ć.
   
  1. Misja udana = true/false:
     
      $numer_misji = 4
      $game_switches[5] = $misja_zakonczona[$numer_misji]
    Lub:
      $game_switches[5] = $misja_zakonczona[4]
     
    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.
   
      AKTYWNOSC_WIELU_PODPUNKTOW_NARAZ = true/false
      AUTOMATYCZNE_SPRAWDZANIE = true/false
      AKTYWNE_OBRAZKI_TWARZE = true/false       <- true - tak; false - nie
      OBRAZKI_TWARZE = true/false               <- true - obrazki; false - twarze
     
      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!).
     
    Moja propozycja dla wyglądu okna podstawowego:
      KOLOR_NAZWY_MISJI = 12
      KOLOR_NPC = 4
      KOLOR_OPISU = 4
      KOLOR_NAZWAY_PODP = 3
      KOLOR_PODP_NAGRODA = 14
      KOLOR_MISJA_NAGRODA = 14
      KOLOR_MENU_MISJE = 4
      KOLOR_MENU_PODP = 4
      KOLOR_DZIENNIK_I_KATEGORIA = 21
      KOLOR_MISJA_UDANA = 29
      KOLOR_MISJA_NIEUDANA = 8
      KOLOR_MISJA_NIEMOZLIWA = 2
      KOLOR_NAGRODA_DO_ODEBRANIA = 6

    Moja propozycja do wyglądu wybranego z moją propozycją pliku "Window2.png"
    (kolory kratek w pliku niezmienione):
      KOLOR_NAZWY_MISJI = 12
      KOLOR_NPC = 4
      KOLOR_OPISU = 6
      KOLOR_NAZWAY_PODP = 3
      KOLOR_PODP_NAGRODA = 20
      KOLOR_MISJA_NAGRODA = 20
      KOLOR_MENU_MISJE = 21
      KOLOR_MENU_PODP = 21
      KOLOR_DZIENNIK_I_KATEGORIA = 25
      KOLOR_MISJA_UDANA = 29
      KOLOR_MISJA_NIEUDANA = 8
      KOLOR_MISJA_NIEMOZLIWA = 2
      KOLOR_NAGRODA_DO_ODEBRANIA = 6
     
  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.
   
  7. Misja nieudana:
      $numer_misji =
      Misje.new.misja_nieudana
   
  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ć.
   
  1. Misja udana = true/false:
      $game_switches[5] = $misja_zakonczona[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]
   
  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.

Avara - Pon 08 Sie, 2011 15:47
Temat postu: c.d.

Sabikku - Wto 09 Sie, 2011 00:25

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 ;).
Squall - Wto 09 Sie, 2011 09:57

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 :-)
Avara - Wto 09 Sie, 2011 10:53

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 :mrgreen:

Jak będą prośby o przerobienie skryptu (w zależności też od tego w jakim stopniu), to postaram się pomóc ;-)

Feniks - Wto 09 Sie, 2011 21:47

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ę :)
Melvin - Wto 09 Sie, 2011 22:01

LOOOOOOOOOOL!
Świetnie Av! Pro! Mega!

Konfiguracja dłuższa od mojej :-D

Powodzenia w dalszym programowaniu ;-)

MrBoomGood - Wto 23 Sie, 2011 12:09

Skrypt bardzo skomplikowany, ale użyje go dlatego, bo widzę, że bardzo się starałaś :) Napisze tak jak wszyscy: "powodzenia w dalszym programowaniu" :)

Powered by phpBB modified by Przemo © 2003 phpBB Group