Opis
Jest to mój pierwszy skrypt tego typu.
Dziennik zadań pozwala na wpisaniu do 10 zadań.
Zalety:
- Szybki podgląd ukończonych zadań.
- Łatwy w konfiguracji.
- Ładna animacja wjazdowa.
- Nie powinien kolidować z innymi skryptami.
Wady:
- Tylko do 10 zadań. (Dla chętnych mogę przerobić skrypt)
- Brak opisu zadań.
- Brak podziału na "Ukończone" i na"Nieukończone".
- Gracz zna od początku wszystkie zadania.
- Do jego działania potrzebna jest duża ilość zmiennych.
Autor skryptu
Melvin (Ja)
Kompatybilność
Tylko XP
Skrypt
Spoiler:
Kod:
#==============================================================================
# Scene_Zadania
#------------------------------------------------------------------------------
# Dziennik zadań by Melvin (v1.4)
#==============================================================================
# Konfiguracja
module MOG
# Klawisz odpowiadający za pokazywanie okna
MPINP1 = Input::A
# Klawisz odpowiadający za chowanie okna
MPINP2 = Input::A
# Nazwa czcionki
MPFONT1 = "Times New Roman"
# Rozmiar czcionki
MPFONT2 = 22
# Przezroczystość okna
MPOPC = 255
# Szybkość wjazdowa okna
MPXYW = 40
# Szybkość wyjazdowa okna
MPXYE = 20
# Pozycja okna
# 0 = Górny prawy róg (Wjazd z lewej strony)
# 1 = Dolny prawy róg (Wjazd z lewej strony)
# 2 = Górny lewy róg (Wjazd z lewej strony)
# 3 = Dolny lewy róg (Wjazd z lewej strony)
# 4 = Na środku
# 5 = Pełny ekran
# 6 = Dowolnie
MPNMPS = 2
# Zmiana współrzędnych jeśli wybrano 7
if MOG::MPNMPS == 10
MPXYP1 = -320 # Pozycja X początkowa okna
MPXYP2 = 0 # Pozycja Y początkowa okna
MPXYP3 = 320 # Pozycja X wjeżdżającego okna (Wjazd)
MPXYP4 = 320 # Pozycja X wjeżdżającego okna (Zatrzymanie)
MPXYP5 = -320 # Pozycja X wyjeżdżającego okna (Wyjazd)
MPXYP6 = -320 # Pozycja X wyjeżdżającego okna (Zatrzymanie)
MPIR1 = 160 # Pozycja okna X
MPIR2 = 120 # Pozycja okna Y
MPIR3 = 320 # Szerokość okna
MPIR4 = 240 # Wysokość okna
end
# Koniec
end
if MOG::MPNMPS == 0
MPXYP1 = -320 # Pozycja X początkowa okna
MPXYP2 = 0 # Pozycja Y początkowa okna
MPXYP3 = 320 # Pozycja X wjeżdżającego okna (Wjazd)
MPXYP4 = 320 # Pozycja X wjeżdżającego okna (Zatrzymanie)
MPXYP5 = -320 # Pozycja X wyjeżdżającego okna (Wyjazd)
MPXYP6 = -320 # Pozycja X wyjeżdżającego okna (Zatrzymanie)
MPIR1 = 160 # Pozycja okna X
MPIR2 = 120 # Pozycja okna Y
MPIR3 = 320 # Szerokość okna
MPIR4 = 240 # Wysokość okna
end
if MOG::MPNMPS == 1
MPXYP1 = -320 # Pozycja X początkowa okna
MPXYP2 = 240 # Pozycja Y początkowa okna
MPXYP3 = 320 # Pozycja X wjeżdżającego okna (Wjazd)
MPXYP4 = 320 # Pozycja X wjeżdżającego okna (Zatrzymanie)
MPXYP5 = -320 # Pozycja X wyjeżdżającego okna (Wyjazd)
MPXYP6 = -320 # Pozycja X wyjeżdżającego okna (Zatrzymanie)
MPIR1 = 160 # Pozycja okna X
MPIR2 = 120 # Pozycja okna Y
MPIR3 = 320 # Szerokość okna
MPIR4 = 240 # Wysokość okna
end
if MOG::MPNMPS == 2
MPXYP1 = -320 # Pozycja X początkowa okna
MPXYP2 = 0 # Pozycja Y początkowa okna
MPXYP3 = 0 # Pozycja X wjeżdżającego okna (Wjazd)
MPXYP4 = 0 # Pozycja X wjeżdżającego okna (Zatrzymanie)
MPXYP5 = -320 # Pozycja X wyjeżdżającego okna (Wyjazd)
MPXYP6 = -320 # Pozycja X wyjeżdżającego okna (Zatrzymanie)
MPIR1 = 160 # Pozycja okna X
MPIR2 = 120 # Pozycja okna Y
MPIR3 = 320 # Szerokość okna
MPIR4 = 240 # Wysokość okna
end
if MOG::MPNMPS == 3
MPXYP1 = -320 # Pozycja X początkowa okna
MPXYP2 = 240 # Pozycja Y początkowa okna
MPXYP3 = 0 # Pozycja X wjeżdżającego okna (Wjazd)
MPXYP4 = 0 # Pozycja X wjeżdżającego okna (Zatrzymanie)
MPXYP5 = -320 # Pozycja X wyjeżdżającego okna (Wyjazd)
MPXYP6 = -320 # Pozycja X wyjeżdżającego okna (Zatrzymanie)
MPIR1 = 160 # Pozycja okna X
MPIR2 = 120 # Pozycja okna Y
MPIR3 = 320 # Szerokość okna
MPIR4 = 240 # Wysokość okna
end
if MOG::MPNMPS == 4
MPXYP1 = -320 # Pozycja X początkowa okna
MPXYP2 = 120 # Pozycja Y początkowa okna
MPXYP3 = 140 # Pozycja X wjeżdżającego okna (Wjazd)
MPXYP4 = 140 # Pozycja X wjeżdżającego okna (Zatrzymanie)
MPXYP5 = -320 # Pozycja X wyjeżdżającego okna (Wyjazd)
MPXYP6 = -320 # Pozycja X wyjeżdżającego okna (Zatrzymanie)
MPIR1 = 160 # Pozycja okna X
MPIR2 = 120 # Pozycja okna Y
MPIR3 = 320 # Szerokość okna
MPIR4 = 240 # Wysokość okna
end
if MOG::MPNMPS == 5#(x = 160, y = 120, width = 320, height = 240)
MPXYP1 = -640 # Pozycja X początkowa okna
MPXYP2 = 0 # Pozycja Y początkowa okna
MPXYP3 = 0 # Pozycja X wjeżdżającego okna (Wjazd)
MPXYP4 = 0 # Pozycja X wjeżdżającego okna (Zatrzymanie)
MPXYP5 = -640 # Pozycja X wyjeżdżającego okna (Wyjazd)
MPXYP6 = -640 # Pozycja X wyjeżdżającego okna (Zatrzymanie)
MPIR1 = 0 # Pozycja okna X
MPIR2 = 0 # Pozycja okna Y
MPIR3 = 640 # Szerokość okna
MPIR4 = 480 # Wysokość okna
end
#-----------------------------------------------------------------------------
# class Scene_Map
#-----------------------------------------------------------------------------
class Scene_Map < Scene_Map
def main
@spriteset = Spriteset_Map.new
@message_window = Window_Message.new
Graphics.transition
loop do
if Input.trigger?(MOG::MPINP1)
$scene = Scene_Zadania.new
end
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@spriteset.dispose
@message_window.dispose
if $scene.is_a?(Scene_Title)
Graphics.transition
Graphics.freeze
end
end
end
#-----------------------------------------------------------------------------
# class Scene_Zadania
#-----------------------------------------------------------------------------
class Scene_Zadania
def main
@zadania = Window_Zadania.new
$game_system.se_play($data_system.decision_se)
@zadania.x = MPXYP1
@zadania.y = MPXYP2
@spriteset = Spriteset_Map.new
@appearing = true
@disappearing = false
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@zadania.dispose
@spriteset.dispose
end
def appear
@zadania.x += MOG::MPXYW if @zadania.x < MPXYP3
if @zadania.x == MPXYP4
@appearing = false
end
end
def disappear
@zadania.x -= MOG::MPXYE if @zadania.x > MPXYP5
if @zadania.x == MPXYP6
$scene = Scene_Map.new
end
end
def update
if @appearing
appear
end
if @disappearing
disappear
end
@zadania.update
@spriteset.update
if Input.trigger?(Input::A)
$game_system.se_play($data_system.cancel_se)
@disappearing = true
end
end
end
#-----------------------------------------------------------------------------
# class Window_Zadania
#-----------------------------------------------------------------------------
class Window_Zadania < Window_Base
def initialize (x = MPIR1, y = MPIR2, width = MPIR3, height = MPIR4)
super(x, y, width, height)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = MOG::MPFONT1
self.contents.font.size = MOG::MPFONT2
self.back_opacity = MOG::MPOPC
refresh
end
def refresh
self.contents.draw_text(0, 0, 288, 32, "Zadania", 1)
if $game_variables[1] == 1
self.contents.draw_text(0, 0, 288, 64, "1 Zadanie - Ukończone", 1)
else
self.contents.draw_text(0, 0, 288, 64, "1 Zadanie - Nieukończone", 1)
end
if $game_variables[2] == 1
self.contents.draw_text(0, 0, 288, 96, "2 Zadanie - Ukończone", 1)
else
self.contents.draw_text(0, 0, 288, 96, "2 Zadanie - Nieukończone", 1)
end
if $game_variables[3] == 1
self.contents.draw_text(0, 0, 288, 128, "3 Zadanie - Ukończone", 1)
else
self.contents.draw_text(0, 0, 288, 128, "3 Zadanie - Nieukończone", 1)
end
if $game_variables[4] == 1
self.contents.draw_text(0, 0, 288, 160, "4 Zadanie - Ukończone", 1)
else
self.contents.draw_text(0, 0, 288, 160, "4 Zadanie - Nieukończone", 1)
end
if $game_variables[5] == 1
self.contents.draw_text(0, 0, 288, 192, "5 Zadanie - Ukończone", 1)
else
self.contents.draw_text(0, 0, 288, 192, "5 Zadanie - Nieukończone", 1)
end
if $game_variables[6] == 1
self.contents.draw_text(0, 0, 288, 224, "6 Zadanie - Ukończone", 1)
else
self.contents.draw_text(0, 0, 288, 224, "6 Zadanie - Nieukończone", 1)
end
if $game_variables[7] == 1
self.contents.draw_text(0, 0, 288, 256, "7 Zadanie - Ukończone", 1)
else
self.contents.draw_text(0, 0, 288, 256, "7 Zadanie - Nieukończone", 1)
end
if $game_variables[8] == 1
self.contents.draw_text(0, 0, 288, 288, "8 Zadanie - Ukończone", 1)
else
self.contents.draw_text(0, 0, 288, 288, "8 Zadanie - Nieukończone", 1)
end
if $game_variables[9] == 1
self.contents.draw_text(0, 0, 288, 320, "9 Zadanie - Ukończone", 1)
else
self.contents.draw_text(0, 0, 288, 320, "9 Zadanie - Nieukończone", 1)
end
if $game_variables[10] == 1
self.contents.draw_text(0, 0, 280, 352, "10 Zadanie - Ukończone", 1)
else
self.contents.draw_text(0, 0, 280, 352, "10 Zadanie - Nieukończone", 1)
end
end
end
Demo
Instrukcja
1 - Wkleić skrypt nad main w edytorze skryptów(F11).
2 - Zrobić typowe, równoległe zdarzenie startujące na określony przełącznik.
3 - W typowym zdarzeniu umieścić warunek: "Kiedy przycisk A zostanie naciśnięty".
4 - W warunku: "skrypt:$scene = Scene_Zadania.new".
5 - Aby zakończyć zadanie numer 5, trzeba wywołać zmienną w zdarzeniu numer 5 i ustawić ją na liczbę na 1.
Konfiguracja
Podstawowa zmiana ustawień skryptu.
Spoiler:
Cytat:
1 - Aby zmienić nazwę zadania wejdź w edytor skryptów i w "Dziennik zadań".
2 - Następnie zjedź do linijki np. 219(Zadanie 1) i zmień fioletową nazwę zadania ukończonego i nieukończonego.
3 - Aby zmienić zmienną przypisaną do danego zadania, wejdź w edytor skryptów i w "Dziennik zadań".
4 - Następnie zjedź do linijki np. 218(Zadanie 1) i zmień liczbę w nawiasie kwadratowym([1]) na zmienną jaką chcesz przyporządkować do zadania.
Pozostała konfiguracja znajduje się na początku skryptu.
Dodatkowe informacje
- Działa na polskiej jak i angielskiej wersji R'M XP
Fajnie, że ktoś uczy się Ruby. Mógłbyś podać mi sposób jak się go nauczyłeś.
Cytat:
- Tylko do 10 zadań. (Dla chętnych mogę przerobić skrypt)
- Brak opisu zadań.
- Brak podziału na "Ukończone" i na"Nieukończone".
- Gracz zna od początku wszystkie zadania.
- Do jego działania potrzebna jest duża ilość zmiennych.
Wiesz, że to są największe wady Dziennika Misji, ale trochę popracujesz lub poprosisz Ayene i będzie spoko.
________________________ ...Amelanduil & FireBlade words will be remembered... ...Amelanduil & FireBlade acts will be remembered... ...Amelanduil & FireBlade never gonna die...
To bardzo proste... Ściągałem wiele skryptów i patrzyłem jak są zbudowane.
Jak wyskakiwał mi błąd w np. 15 linijce... kasowałem ją
A potem pisałem to co zaobserwowałem w innych skryptach...
No i oczywiście wiele poradników.
Cytat:
- Tylko do 10 zadań. (Dla chętnych mogę przerobić skrypt)
Naprawiłem to. Teraz można ustawić nawet do 60 zadań.
1 - Aby zmienić nazwę zadania wejdź w edytor skryptów i w "Dziennik zadań".
2 - Następnie zjedź do linijki np. 219(Zadanie 1) i zmień fioletową nazwę zadania ukończonego i nieukończonego.
3 - Aby zmienić zmienną przypisaną do danego zadania, wejdź w edytor skryptów i w "Dziennik zadań".
4 - Następnie zjedź do linijki np. 218(Zadanie 1) i zmień liczbę w nawiasie kwadratowym([1]) na zmienną jaką chcesz przyporządkować do zadania.
Pozostała konfiguracja znajduje się na początku skryptu.
Było w konfiguracji.
WPROWADZIŁEM KONFIGURACJE!
Nowy skrypt!
Napisałem zupełnie od nowa!
Zaraz założę temat!
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